S7ProSim V5.3 incl. SP1 Control ActiveX

SIMATIC S7ProSim V5.3 incl. SP1 Control ActiveX Manual del usuario Edición: 1/2005 A5E00425528-01 1 Copyright y consignas de seguridad Este man...
6 downloads 1 Views 278KB Size
SIMATIC

S7ProSim V5.3 incl. SP1 Control ActiveX

Manual del usuario

Edición: 1/2005

A5E00425528-01

1

Copyright y consignas de seguridad Este manual contiene las informaciones necesarias para la seguridad personal, así como para la prevención de daños materiales. Las señales que figuran a continuación representan distintos grados de peligro: Peligro Significa que, si no se adoptan las medidas preventivas adecuadas, se producirá la muerte, o bien lesiones corporales graves o daños materiales considerables. Precaución Significa que, si no se adoptan las medidas preventivas adecuadas, puede producirse la muerte, lesiones corporales graves o daños materiales considerables. Cuidado Junto con el símbolo de aviso, significa que, si no se adoptan las medidas preventivas adecuadas, pueden producirse lesiones corporales leves o moderadas. Cuidado Sin el símbolo de aviso, significa que, si no se adoptan las medidas preventivas adecuadas, pueden producirse daños materiales. Nota Sin el símbolo de aviso, significa que, si no se adoptan las medidas preventivas adecuadas, pueden producirse resultados o estados impredecibles.

Personal cualificado La puesta en funcionamiento y el servicio del equipo sólo deben ser llevados a cabo conforme a lo descrito en este manual. Sólo está autorizado a intervenir en este equipo el personal cualificado. En el sentido del manual se trata de personas que disponen de los conocimientos técnicos necesarios para poner en funcionamiento, conectar a tierra y marcar los aparatos, sistemas y circuitos de acuerdo con las normas estándar de seguridad.

Uso conforme Considere lo siguiente: Precaución El equipo y los componentes del sistema sólo se podrán utilizar para los casos de aplicación previstos en el catálogo y en la descripción técnica, y sólo con los equipos y componentes de proveniencia tercera recomendados y homologados por Siemens. El funcionamiento correcto y seguro del producto presupone un transporte, un almacenamiento, una instalación y un montaje conforme a las prácticas de la buena ingeniería, así como un manejo y un mantenimiento rigurosos.

Marcas registradas ®

®

Siemens y SIMATIC son marcas registradas de SIEMENS AG. STEP 7™ y S7™son marcas registradas de SIEMENS AG. Microsoft ®, Windows ®, Windows 95 ®, Windows 98 ®, Windows NT ®, Windows ME ®y Windows 2000 ® son marcas registradas de Microsoft Corporation. ActiveX™ es una marca registrada de Microsoft Corporation. Copyright Siemens Energy & Automation, Inc. 2005 Reservados todos los derechos La divulgación y reproducción de este documento, así como el uso y la comunicación de su contenido, no están autorizados, a no ser que se obtenga el consentimiento expreso para ello. Los infractores quedan obligados a la indemnización de los daños. Se reservan todos los derechos, en particular para el caso de concesión de patentes o de modelos de utilidad.

Exención de responsabilidad Hemos probado el contenido de esta publicación con la concordancia descrita para el hardware y el software. Sin embargo, es posible que se den algunas desviaciones que nos impiden tomar garantía completa de esta concordancia. El contenido de esta publicación está sometido a revisiones regularmente y en caso necesario se incluyen las correcciones en la siguiente edición. Agradecemos sugerencias.

Siemens Energy & Automation, PCbA One Internet Plaza Johnson City, TN 37602-4991, USA

© Siemens Energy & Automation, Inc. 2005 Sujeto a cambios sin previo aviso.

Prólogo S7ProSim ofrece un acceso programático a la interfaz de simulación de procesos de S7-PLCSIM. S7ProSim permite escribir programas para realizar tareas tales como cambiar la posición del selector de modo del PLC simulado, ejecutar un solo ciclo del programa de control, leer o escribir valores de/en el PLC y muchas otras funciones más. Destinatarios El manual está dirigido a ingenieros, programadores y técnicos de instalación que dispongan de conocimientos sobre los sistemas de automatización S7 y que tengan experiencia en la programación con Visual Basic (6.0 o .NET), o bien Visual C++ (6.0 o .NET). Objeto del manual Este documento describe las características y el funcionamiento de S7ProSim V5.3, , incluyendo el Service Pack 1. Manuales complementarios Encontrará más información en la Ayuda en pantalla de STEP 7 y S7-PLCSIM, así como en los manuales indicados a continuación: •

Programar con STEP 7. Este manual proporciona informaciones básicas sobre cómo diseñar y crear programas de control. Utilice este manual si desea crear un programa de control con el software de automatización STEP 7.



Software de sistema para SIMATIC S7-300/400 – Funciones estándar y funciones de sistema. En este manual se describen las funciones del sistema, los bloques de organización y las funciones estándar para desarrollar un programa de control.



STEP 7 – Introducción y ejercicios prácticos – Getting Started. Este manual explica cómo utilizar el software de automatización STEP 7, ofreciendo una panorámica de los procedimientos utilizados para configurar un PLC y para desarrollar programas de control.



S7-PLCSIM – Comprobar el programa de la CPU S7. En este manual se describe la interfaz de usuario y el funcionamiento de S7-PLCSIM, el simulador de PLCs S7.

Para encontrar estos y otros manuales más, elija los comandos Inicio > Simatic > Documentación a partir del menú Inicio del PC en el que está instalado STEP 7.

Asistencia técnica Si tiene preguntas técnicas, si necesita información sobre los cursillos de entrenamiento en relación con este producto, o bien para efectuar pedidos, diríjase por favor a su representante de Siemens más próximo.. Norteamérica y Suramérica Teléfono: +1 (800) 333-7421 Fax: +1 (423) 262-2200 [email protected]

Europa y África Asia y región del Pacífico Teléfono: +49 (0) 180 5050 222 Teléfono: +86 10 64 75 75 75 Fax: +49 (0) 180 5050 223 Fax: +86 10 64 74 74 74 [email protected] [email protected]

iii

Contenido Resumen breve de S7ProSim ............................................................................. 1 Insertar el control S7ProSim en una aplicación de Visual Basic ................................... 2 Acceder a las propiedades del control S7ProSim en Visual Basic................................ 3 Utilizar S7ProSim para programar una interfaz con S7-PLCSIM .................................. 4

Métodos................................................................................................................. 5 AboutBox ....................................................................................................................... 6 BeginScanNotify ............................................................................................................ 7 Connect ......................................................................................................................... 8 Disconnect ..................................................................................................................... 9 EndScanNotify ............................................................................................................. 10 ExecuteNmsScan ........................................................................................................ 11 ExecuteNScans ........................................................................................................... 12 ExecuteSingleScan...................................................................................................... 13 ReadOutputImage ....................................................................................................... 14 ReadOutputPoint ......................................................................................................... 15 WriteInputImage .......................................................................................................... 16 WriteInputPoint ............................................................................................................ 17

Eventos................................................................................................................ 19 ConnectionError........................................................................................................... 20 PLCSimStateChanged................................................................................................. 21 ScanFinished ............................................................................................................... 22

Propiedades........................................................................................................ 23 AutoConnect ................................................................................................................ 24 ControlEngine .............................................................................................................. 25 Enabled........................................................................................................................ 26 ScanMode.................................................................................................................... 27

Definiciones de tipo ........................................................................................... 29 ImageDataTypeConstants ........................................................................................... 30 PointDataTypeConstants............................................................................................. 31 ScanModeConstants ................................................................................................... 32

Códigos de error ................................................................................................ 33 Proyecto de Ejemplo.......................................................................................... 35 Código del proyecto de ejemplo .................................................................................. 36

v

Resumen breve de S7ProSim S7ProSim es un control ActiveX™ que ofrece un acceso programático a la interfaz de simulación de procesos de S7-PLCSIM. S7ProSim puede utilizarse en cualquier aplicación que acepte controles ActiveX para establecer una conexión con una simulación de procesos de S7-PLCSIM. Este documento electrónico describe cómo agregar S7ProSim a una aplicación, así como las funciones, la interfaz y las operaciones de S7ProSim, incluyendo definiciones de objetos de software de los métodos y eventos. El proyecto de ejemplo demuestra cómo utilizar los métodos y eventos de S7ProSim. La figura siguiente muestra el organigrama de los diversos métodos y eventos utilizados en el proyecto de ejemplo.

1

Resumen breve de S7ProSim

Insertar el control S7ProSim en una aplicación de Visual Basic El control ActiveX de S7ProSim puede utilizarse en diversos contenedores de terceros. Para agregar el control S7ProSim a un formulario de Visual Basic, proceda de la manera siguiente: 1. Elija el comando de menú Proyecto -> Componentes para visualizar el cuadro de diálogo "Componentes". 2. En la lista de controles, seleccione “Siemens S7ProSim Control”. 3. Haga clic en "Aceptar". Un control S7ProSim aparecerá en el cuadro de herramientas (toolbox) a la izquierda del formulario de Visual Basic. 4. Seleccione el control S7ProSim en el cuadro de herramientas e insértelo en el formulario. A continuación podrá acceder a todas las propiedades del control S7ProSim, así como a los métodos y and eventos desde el programa de Visual Basic.

2

Resumen breve de S7ProSim

Acceder a las propiedades del control S7ProSim en Visual Basic Si en el formulario hace clic con el botón derecho del ratón en el control S7ProSim y elige el comando Propiedades del menú contextual, Visual Basic visualizará el cuadro de diálogo "Páginas de propiedades":

La ventana de propiedades permite configurar las siguientes propiedades del control ActiveX S7ProSim: •

Auto Connect: La propiedad AutoConnect determina si el control se debe conectar automáticamente a S7-PLCSIM durante el arranque, o bien al cambiar de modo Design a modo Run.



Control Engine: La propiedad ControlEngine (de sólo lectura) define la dirección del control engine con el que se conecta el control S7ProSim. La dirección es S7-PLCSIM.



Enabled: La propiedad Enabled determina si el control está registrado o no. (Se dispone de los eventos ScanFinished y PLCSIMStateChanged).



Scan Mode: La propiedad ScanMode ajusta el ciclo de S7-PLCSIM. Los modos de ejecución válidos son SingleScan (ciclo individual) o ContinuousScan (ciclo continuo).

3

Resumen breve de S7ProSim

Utilizar S7ProSim para programar una interfaz con S7-PLCSIM Para utilizar S7ProSim con objeto de programar funciones en el PLC simulado en S7-PLCSIM deberá realizar las tareas siguientes: •

Incorporar el control S7ProSim de Siemens en el proyecto como componente de éste último.



Controladores para los de eventos de S7ProSim (opcional). En cada controlador de eventos es posible insertar cualquier código personalizado para la aplicación. Ejemplo: Visual Basic 6.0

Private Sub S7ProSim1_ScanFinished(ByVal ScanInfo As Variant) ... End Sub

Private Sub S7ProSim1_PLCSimStateChanged(ByVal NewState As String) ... End Sub

Private Sub S7ProSim1_ConnectionError(ByVal ControlEngine As String, ByVal error As Long) MsgBox "Connection Error" End Sub



4

Agregue botones de comando, cuadros de texto u otros objetos a su aplicación según sea necesario para acceder a los diversos métodos de S7ProSim. Programe el código para cada controlador de botones de comando, a fin de llamar a los métodos de S7ProSim y ajustar los valores correspondientes para los cuadros de texto deseados.

Métodos AboutBox

Muestra el cuadro de diálogo AboutBox.

Connect

Registra a S7ProSim para devoluciones de llamadas del PLC. Los eventos ScanFinished y PLCSimStateChanged se enviarán cuando éstos ocurran. Conecta S7ProSim con S7-PLCSIM.

Disconnect

Desconecta S7ProSim de S7-PLCSIM.

EndScanNotify

Elimina S7ProSim del registro para devoluciones de llamadas del PLC. Los eventos ScanFinished y PLCSimStateChanged no se envían. Obliga a S7-PLCSIM a ejecutar ciclos durante un tiempo determinado (Nms), sin esperar a que culmine la ejecución del ciclo actual. Si se habilita la notificación, el programa recibirá un aviso cuando S7-PLCSIM haya finalizado los ciclos. Obliga a S7-PLCSIM a ejecutar un número determinado de ciclos sin esperar a que culmine la ejecución del ciclo actual. Si se habilita la notificación, el programa recibirá un aviso cuando S7PLCSIM haya finalizado los ciclos. Obliga a S7-PLCSIM a ejecutar un ciclo individual sin esperar a que culmine la ejecución del ciclo actual. Si se habilita la notificación, el programa recibirá un aviso cuando S7-PLCSIM haya finalizado el ciclo. Lee elementos de la imagen de salidas de periferia (área de memoria PQ) de S7-PLCSIM. Lee un bit en particular (Boolean), un byte (Byte), una palabra de 16 bits (Integer) o una palabra de 32 bits (Long) del área de las salidas periféricas (PQ). Escribe elementos en la imagen de entradas de periferia (área de memoria PI) de S7-PLCSIM, comenzando en el StartIndex de los datos a los que señala pData. Escribe un bit en particular (Boolean), un byte (Byte), una palabra de 16 bits (Integer) o una palabra de 32 bits (Long) del Data Variant en el área de las entradas de periferia (PI).

BeginScanNotify

ExecuteNmsScan

ExecuteNScans

ExecuteSingleScan

ReadOutputImage ReadOutputPoint

WriteInputImage

WriteInputPoint

5

Métodos

AboutBox void AboutBox()

Uso en Visual Basic

6

Métodos

BeginScanNotify STDMETHOD(CS7ProSim::BeginScanNotify)()

Descripción Registra a S7ProSim para devoluciones de llamadas del PLC. Los eventos ScanFinished y PLCSimStateChanged se enviarán cuando éstos ocurran.

Parámetros Ninguno

Valor de retorno Valor S_OK E_FAIL PS_E_NOTCONNECTED PS_E_POWEROFF

Significado 0x00000000 : Código de éxito 0x80004005 : Error no especificado 0x80040211 : S7ProSim no está conectado a S7-PLCSIM 0x80040212 : S7-PLCSIM está desconectado

Uso en Visual Basic

7

Métodos

Connect STDMETHOD(CS7ProSim::Connect)()

Descripción Conecta S7ProSim con S7-PLCSIM.

Parámetros Ninguno

Valor de retorno Valor S_OK E_FAIL PS_E_NOTCONNECTED PS_E_POWEROFF

Uso en Visual Basic

8

Significado 0x00000000 : Código de éxito 0x80004005 : Error no especificado 0x80040211 : S7ProSim no está conectado a S7-PLCSIM 0x80040212 : S7-PLCSIM está desconectado

Métodos

Disconnect STDMETHOD(CS7ProSim::Disconnect)()

Descripción Desconecta S7ProSim de S7-PLCSIM.

Parámetros Ninguno

Valor de retorno Valor S_OK E_FAIL PS_E_POWEROFF

Significado 0x00000000 : Código de éxito 0x80004005 : Error no especificado 0x80040212 : S7-PLCSIM está desconectado

Uso en Visual Basic

9

Métodos

EndScanNotify STDMETHOD(CS7ProSim::EndScanNotify)()

Descripción Elimina S7ProSim del registro para devoluciones de llamadas del PLC. Los eventos ScanFinished y PLCSimStateChanged no se envían.

Parámetros Ninguno

Valor de retorno Valor S_OK E_FAIL PS_E_NOTCONNECTED PS_E_POWEROFF

Significado 0x00000000 : Código de éxito 0x80004005 : Error no especificado 0x80040211 : S7ProSim no está conectado a S7-PLCSIM 0x80040212 : S7-PLCSIM está desconectado 0x80040209 : S7ProSim no está registrado para devoluciones de PS_E_NOTREGISTERED llamadas de S7-PLCSIM

Uso en Visual Basic

10

Métodos

ExecuteNmsScan STDMETHOD(CS7ProSim::ExecuteNmsScan)( long MsNumber)

Descripción Obliga a S7-PLCSIM a ejecutar ciclos durante un tiempo determinado (Nms), sin esperar a que culmine la ejecución del ciclo actual. Si se habilita la notificación, el programa recibirá un aviso cuando S7-PLCSIM haya finalizado los ciclos. Para poder utilizar este método, S7-PLCSIM deberá estar en modo de ciclo individual.

Parámetros MsNumber Tiempo (en milisegundos) durante el que deben ejecutarse los ciclos del programa.

Valor de retorno Valor S_OK E_FAIL PS_E_NOTSINGLESCAN PS_E_PLCNOTRUNNING PS_E_NOTCONNECTED

Significado 0x00000000 : Código de éxito 0x80004005 : Error no especificado 0x8004020A : S7-PLCSIM no está en modo de ciclo individual 0x8004020E : S7-PLCSIM no se está ejecutando 0x80040211 : S7ProSim no está conectado a S7-PLCSIM

Uso en Visual Basic

11

Métodos

ExecuteNScans STDMETHOD(CS7ProSim::ExecuteNScans)( long NScanNumber)

Descripción Obliga a S7-PLCSIM a ejecutar un número determinado de ciclos sin esperar a que culmine la ejecución del ciclo actual. Si se habilita la notificación, el programa recibirá un aviso cuando S7PLCSIM haya finalizado los ciclos. Para poder utilizar este método, S7-PLCSIM deberá estar en modo de ciclo individual.

Parámetros NScanNumber Número de ciclos a ejecutar

Valor de retorno Valor S_OK E_FAIL PS_E_NOTSINGLESCAN PS_E_PLCNOTRUNNING PS_E_NOTCONNECTED

Uso en Visual Basic

12

Significado 0x00000000 : Código de éxito 0x80004005 : Error no especificado 0x8004020A : S7-PLCSIM no está en modo de ciclo individual 0x8004020E : S7-PLCSIM no se está ejecutando 0x80040211 : S7ProSim no está conectado a S7-PLCSIM

Métodos

ExecuteSingleScan STDMETHOD(CS7ProSim::ExecuteSingleScan)()

Descripción Obliga a S7-PLCSIM a ejecutar un ciclo individual sin esperar a que culmine la ejecución del ciclo actual. Si se habilita la notificación, el programa recibirá un aviso cuando S7-PLCSIM haya finalizado el ciclo. Para poder utilizar este método, S7-PLCSIM deberá estar en modo de ciclo individual.

Parámetros Ninguno

Valor de retorno Valor S_OK E_FAIL PS_E_PLCNOTRUNNING PS_E_NOTSINGLESCAN

Significado 0x00000000 : Código de éxito 0x80004005 : Error no especificado 0x8004020E : S7-PLCSIM no se está ejecutando 0x8004020A : S7-PLCSIM no está en modo de ciclo individual 0x8004020C : S7-PLCSIM no ha podido activar el modo de ciclo PS_E_MODENOTPOSSIBLE indicado

Uso en Visual Basic

13

Métodos

ReadOutputImage STDMETHOD(CS7ProSim::ReadOutputImage)( long StartIndex, long ElementsToRead, ImageDataTypeConstants DataType, VARIANT* pData)

Descripción Lee elementos de la imagen de salidas de periferia (área de memoria PQ) de S7-PLCSIM.

Parámetros StartIndex

Representa la posición del byte inicial en el búfer de imagen de las salidas de periferia a leer. Los valores válidos de StartIndex dependen de la CPU.

ElementsToRead

Representa el número de bytes, palabras o palabras dobles a leer del búfer de imagen. Los valores válidos de ElementsToRead dependen de la CPU.

DataType

Representa el tipo de datos a leer. El valor de DataType debe ser una de las ImageDataTypeConstants.

pData

Puntero al espacio de los elementos devueltos. Los valores válidos de los datos dependen de ElementsToRead. Es preciso asignar y liberar esta área de memoria en la aplicación de usuario.

Valor de retorno Valor S_OK E_FAIL PS_E_BADBYTENDX

Significado 0x00000000 : Código de éxito 0x80004005 : Error no especificado 0x80040201 : Índice de byte no válido 0x80040202 : El tamaño del array de datos no es válido para el PS_E_BADBYTECOUNT índice del byte inicial indicado PS_E_READFAILED 0x80040203 : Ha fallado la operación de lectura PS_E_BADTYPE 0x80040206 : Tipo de datos no válido PS_E_NOTALLREADSWORKED 0x8004020F : Han fallado todas las operaciones de lectura PS_E_NOTCONNECTED 0x80040211 : S7ProSim no está conectado a S7-PLCSIM PS_E_POWEROFF 0x80040212 : S7-PLCSIM está desconectado

Uso en Visual Basic

14

Métodos

ReadOutputPoint STDMETHOD(CS7ProSim::ReadOutputPoint)( long ByteIndex, long BitIndex, PointDataTypeConstants DataType, VARIANT* pData)

Descripción Lee un bit en particular (Boolean), un byte (Byte), una palabra de 16 bits (Integer) o una palabra de 32 bits (Long) del área de las salidas periféricas (PQ).

Parámetros ByteIndex

Representa la posición del byte inicial en el búfer de imagen de la periferia a leer. Los valores válidos de ByteIndex dependen de la CPU.

BitIndex

Representa la posición del bit (en bytes) en el búfer de imagen de la periferia a leer. Los valores válidos están comprendidos entre 0 y 7.

DataType

Una de las PointDataTypeConstants

pData

Puntero a los datos a leer. Los valores válidos de Data dependen del tipo de datos.

Notas Si el parámetro DataType es un S7_Bit, ByteIndex y BitIndex deberán tener índices válidos. Si se ejecuta correctamente, el método devolverá el bit indicado en pData y su tipo de datos Variant será booleano. Si el parámetro DataType es S7_Byte, S7_Word o S7_DoubleWord, ByteIndex deberá tener un índice válido (BitIndex se ignorará). Si se ejecuta correctamente, el método devolverá el valor en pData. El tipo de datos de Variant es Byte, Integer, o Long, dependiendo de DataType.

Valor de retorno Valor S_OK E_FAIL PS_E_BADBYTENDX

Significado 0x00000000 : Código de éxito 0x80004005 : Error no especificado 0x80040201 : Índice de byte no válido 0x80040202 : El tamaño del array de datos no es válido para el índice del PS_E_BADBYTECOUNT byte inicial indicado PS_E_READFAILED 0x80040203 : Ha fallado la operación de lectura PS_E_BADBITNDX 0x80040205 : Índice de bit no válido PS_E_BADTYPE 0x80040206 : Tipo de datos no válido PS_E_NOTCONNECTED 0x80040211 : S7ProSim no está conectado a S7-PLCSIM PS_E_POWEROFF 0x80040212 : S7-PLCSIM está desconectado

Uso en Visual Basic

15

Métodos

WriteInputImage STDMETHOD(CS7ProSim::WriteInputImage)( long StartIndex, const VARIANT* pData)

Descripción Escribe elementos en la imagen de las entradas de la periferia (área de memoria PI) de S7-PLCSIM, comenzando en el StartIndex de los datos a los que señala pData.

Parámetros StartIndex

Representa la posición del byte inicial en el búfer de imagen de las entradas de periferia a escribir. Los valores válidos de StartIndex dependen de la CPU.

pData

Puntero a los datos de S7-PLCSIM a escribir. Los valores válidos de data dependen de la CPU. Es preciso asignar y liberar esta área de memoria en la aplicación de usuario.

Notas El tipo de elementos a escribir es determinado por el tipo de elementos de Data. Todos los elementos deben pertenecer a un mismo tipo de datos. Un array Byte escribe bytes, un array Integer escribe palabras y un array Long escribe palabras dobles. Los valores escritos serán datos no procesados, por lo que el método no los interpretará ni los convertirá de manera alguna. El número de elementos escritos depende del tamaño del array al que señala Data.

Valor de retorno Valor S_OK E_FAIL PS_E_BADBYTENDX

Significado 0x00000000 : Código de éxito 0x80004005 : Error no especificado 0x80040201 : Índice de byte no válido 0x80040202 : El tamaño del array de datos no es válido para el PS_E_BADBYTECOUNT índice del byte inicial indicado PS_E_WRITEFAILED 0x80040204 : Ha fallado la operación de escritura PS_E_BADTYPE 0x80040206 : Tipo de datos no válido PS_E_NOTALLWRITESWORKED 0x80040210 : Han fallado todas las operaciones de escritura PS_E_NOTCONNECTED 0x80040211 : S7ProSim no está conectado a S7-PLCSIM PS_E_POWEROFF 0x80040212 : S7-PLCSIM está desconectado

Uso en Visual Basic

16

Métodos

WriteInputPoint STDMETHOD(CS7ProSim::WriteInputPoint)( long ByteIndex, long BitIndex, const VARIANT* pData)

Descripción Escribe un bit en particular (Boolean), un byte (Byte), una palabra de 16 bits (Integer) o una palabra de 32 bits (Long) del Data Variant en el área de las entradas de periferia (PI).

Parámetros ByteIndex

Representa la posición del byte inicial en el búfer de imagen de las entradas de periferia a escribir. Los valores válidos de ByteIndex dependen de la CPU.

BitIndex

Representa la posición del bit (en bytes) en el búfer de imagen de la periferia a escribir. Los valores válidos están comprendidos entre 0 y 7.

pData

Puntero a los datos a escribir. Los valores válidos de Data dependen del tipo de datos.

Notas Si el tipo de datos es booleano, ByteIndex y BitIndex deberán tener índices válidos. Si se ejecuta correctamente, el método escribirá el bit indicado en pData. Si el tipo de datos indicado es Byte, Integer o Long, ByteIndex deberá tener un índice válido (BitIndex se ignorará). Si se ejecuta correctamente, el método escribirá los elementos en pData.

Valor de retorno Valor S_OK E_FAIL PS_E_BADBYTENDX

Significado 0x00000000 : Código de éxito 0x80004005 : Error no especificado 0x80040201 : Índice de byte no válido 0x80040202 : El tamaño del array de datos no es válido para el índice del PS_E_BADBYTECOUNT byte inicial indicado PS_E_WRITEFAILED 0x80040204 : Ha fallado la operación de escritura PS_E_BADBITNDX 0x80040205 : Índice de bit no válido PS_E_BADTYPE 0x80040206 : Tipo de datos no válido PS_E_NOTCONNECTED 0x80040211 : S7ProSim no está conectado a S7-PLCSIM PS_E_POWEROFF 0x80040212 : S7-PLCSIM está desconectado

Uso en Visual Basic

17

Eventos ConnectionError PLCSimStateChanged ScanFinished

Se genera si no es posible establecer una conexión con el control engine. Se genera al detectarse un nuevo estado del selector de modos de operación del PLC. Se genera cuando se ejecuta un ciclo individual.

19

Eventos

ConnectionError HRESULT ConnectionError(BSTR ControlEngine, long Error)

Descripción Se genera si no es posible establecer una conexión con el control engine.

Uso en Visual Basic

20

Eventos

PLCSimStateChanged HRESULT PLCSimStateChanged(BSTR NewState)

Descripción Se genera al detectarse un nuevo estado del selector de modos de operación del PLC.

Uso en Visual Basic

21

Eventos

ScanFinished HRESULT ScanFinished(VARIANT ScanInfo)

Descripción Se genera cuando se ejecuta un ciclo individual.

Uso en Visual Basic

22

Propiedades AutoConnect

Determina si el control debe conectarse automáticamente a S7-PLCSIM durante el arranque, o bien al cambiar de modo Design a modo Run.

ControlEngine

Define la dirección del control engine (de sólo lectura) con el que se conecta el control S7ProSim. El nombre es “S7-PLCSIM”.

Enabled

Activa o desactiva el registro del control para devoluciones de llamadas de eventos ScanFinished y PLCSimStateChanged Activa o desactiva el modo deciclo actual del control engine

ScanMode

23

Propiedades

AutoConnect boolean AutoConnect

Descripción Determina si el control debe conectarse automáticamente a S7-PLCSIM durante el arranque, o bien al cambiar de modo Design a modo Run.

24

Propiedades

ControlEngine BSTR ControlEngine

Descripción Define la dirección del control engine (de sólo lectura) con el que se conecta el control S7ProSim. El nombre es “S7-PLCSIM”.

25

Propiedades

Enabled boolean Enabled

Descripción Activa o desactiva el registro del control para devoluciones de llamadas de eventos ScanFinished y PLCSimStateChanged

26

Propiedades

ScanMode ScanModeConstants ScanMode

Descripción Ajusta el modo de ciclo actual del control engine a SingleScan, o bien ContinuousScan.

27

Definiciones de tipo ImageDataTypeConstants Constantes del método ReadOutputImage PointDataTypeConstants Constantes del método ReadOutputPoint ScanModeConstants

Constantes del modo de ciclo

29

Definiciones de tipo

ImageDataTypeConstants enum { S7Byte = 2, S7Word = 3, S7DoubleWord = 4 }

Descripción Constantes del método ReadOutputImage

Miembros S7Byte S7DoubleWord S7Word

30

Definiciones de tipo

PointDataTypeConstants enum { S7_Bit = 1, S7_Byte = 2, S7_Word = 3, S7_DoubleWord = 4 }

Descripción Constantes del método ReadOutputPoint

Miembros S7_Bit S7_Byte S7_DoubleWord S7_Word

31

Definiciones de tipo

ScanModeConstants enum { SingleScan = 0, ContinuousScan = 1 }

Descripción Constantes del modo de ciclo

Miembros ContinuousScan SingleScan

32

Códigos de error PS_E_BADBITNDX

0x80040205 : Índice de bit no válido

PS_E_BADBYTECOUNT

0x80040202 : El tamaño del array de datos no es válido para el índice del byte inicial indicado

PS_E_BADBYTENDX

0x80040201 : Índice de byte no válido

PS_E_BADTYPE

0x80040206 : Tipo de datos no válido

PS_E_INVALIDCALLBACK

0x80040207 : Devolución de llamada no válida

PS_E_INVALIDDISPATCH

0x80040208 : Distribución no válida

PS_E_INVALIDINPUT

0x80040213 : Introducción no válida

0x8004020B : Tipo de de ciclo no válido, debe ser una de las ScanModeConstants 0x8004020C : S7-PLCSIM no ha podido activar el modo PS_E_MODENOTPOSSIBLE de ciclo indicado 0x8004020F : Han fallado todas las operaciones de PS_E_NOTALLREADSWORKED lectura 0x80040210 : Han fallado todas las operaciones de PS_E_NOTALLWRITESWORKED escritura 0x80040211 : S7ProSim no está conectado a S7PS_E_NOTCONNECTED PLCSIM 0x8004020D : S7ProSim ya está registrado para la PS_E_NOTIFICATION_EXIST notificación 0x80040209 : S7ProSim no está registrado para PS_E_NOTREGISTERED devoluciones de llamadas de S7-PLCSIM 0x8004020A : S7-PLCSIM no está en modo de ciclo PS_E_NOTSINGLESCAN individual PS_E_INVALIDSCANTYPE

PS_E_PLCNOTRUNNING

0x8004020E : S7-PLCSIM is not running

PS_E_POWEROFF

0x80040212 : S7-PLCSIM está desconectado

PS_E_READFAILED

0x80040203 : Ha fallado la operación de lectura

PS_E_WRITEFAILED

0x80040204 : Ha fallado la operación de escritura

E_FAIL

0x80004005 : Error no especificado

E_INVALID_STATE

0x00008002 : Estado no válido

S_OK

0x00000000 : Código de éxito

STG_E_CANTSAVE

0x80030103 : Imposible guardar

33

Proyecto de Ejemplo Este ejemplo en Visual Basic muestra cómo utilizar todas las propiedades, así como todos los métodos y eventos del control ActiveX S7ProSim. Para obtener el código correspondiente a cada uno de los controladores de botones de comando, consulte el tema Código del proyecto de ejemplo utilizando el control ActiveX S7ProSim. Formulario del proyecto de ejemplo

35

Proyecto de ejemplo

Código del proyecto de ejemplo El código siguiente representa el proyecto de ejemplo: '======================================= '¡REA DE DECLARACI”N DE LA HOJA DE TRABAJO '======================================= 'Las variables se deben declarar Option Explicit 'Valores est ndar de los cÛdigos de error de S7ProSim '--------------------------------------Private Const S_OK = &H0 Private Const PS_E_FAIL = &H80004005 Private Const PS_E_INVBYTENDX = &H80040201 Private Const PS_E_INVBYTECOUNT = &H80040202 Private Const PS_E_READFAILED = &H80040203 Private Const PS_E_WRITEFAILED = &H80040204 Private Const PS_E_INVBITNDX = &H80040205 Private Const PS_E_INVTYPE = &H80040206 Private Const PS_E_NOTREGISTERED = &H80040209 Private Const PS_E_NOTSINGLESCAN = &H8004020A Private Const PS_E_MODENOTPOSSIBLE = &H8004020C Private Const PS_E_NOTIFICATION_EXIST = &H8004020D Private Const PS_E_PLCSIMNOTRUNNING = &H8004020E Private Const PS_S_ALLREADSNOTPOSSIBLE = &H8004020F Private Const PS_S_ALLWRITESNOTPOSSIBLE = &H80040210 Private Const PS_E_NOTCONNECTED = &H80040211 Private Const PS_E_POWEROFF = &H80040212 'Texto est ndar de errores '--------------------------------------Private Const MSG_OK = "&H0: El mÈtodo diÛ resultado" Private Const MSG_FAIL = "&H80004005: Ha ocurrido un error desconocido" Private Const MSG_INVBYTENDX = _ "&H80040201: Valor ByteIndex fuera de margen" Private Const MSG_INVBYTECOUNT = _ "&H80040202: ByteIndex y tamaÒo del array Data fuera de margen o BytesToRead fuera de margen" Private Const MSG_READFAILED = _ "&H80040203: S7-PLCSIM ha rechazado leer la peticiÛn de lectura" Private Const MSG_WRITEFAILED = _ "&H80040204: S7-PLCSIM ha rechazado leer la peticiÛn de escritura" Private Const MSG_INVBITNDX = _ "&H80040201: Valor BitIndex fuera de margen" Private Const MSG_INVTYPE = "&H80040206: Tipo de datos no v lido" Private Const MSG_NOTREGISTERED = _ "&H80040209: AplicaciÛn no registrada" Private Const MSG_NOTSINGLESCAN = _ "&H8004020A: S7-PLCSIM no est en modo Ciclo individual" Private Const MSG_NOTIFICATION_EXIST = _ "&H8004020D: La aplicaciÛn ya est registrada" Private Const MSG_PLCSIMNOTRUNNING = _ "&H8004020E: S7-PLCSIM no est en modo Run o Run-P" Private Const MSG_ALLREADSNOTPOSSIBLE = _ "&H8004020F: SÛlo se han podido leer correctamente las salidas configuradas" Private Const MSG_ALLWRITESNOTPOSSIBLE = _ "&H80040210: SÛlo se ha podido escribir correctamente en las entradas configuradas" Private Const MSG_NOTCONNECTED = _ "&H80040211: El S7ProSim Control no est conectado a S7-PLCSIM" Private Const MSG_POWEROFF = _ "&H80040212: S7-PLCSIM se encuentra en estado OFF"

36

Proyecto de ejemplo '======================================= 'C”DIGO DE LOS BOTONES '======================================= 'cmdAutoConnectTrueStart '--------------------------------------Private Sub cmdAutoConnectTrueStart_Click() S7ProSim1.AutoConnect = True End Sub 'cmdAutoConnectTrueEnd '--------------------------------------Private Sub cmdAutoConnectTrueEnd_Click() S7ProSim1.AutoConnect = True End Sub 'cmdCalculateValuesOfProcessSimulation '--------------------------------------Private Sub cmdCalculateValuesOfProcessSimulation_Click() '***** A PROCESAR por el usuario ***** '***** En esta funciÛn debe crear el ***** '***** cÛdigo para simular el proceso. Utilice los ***** '***** valores de las salidas de S7-PLCSIM y ***** '***** calcule los nuevos valores de las entradas de ***** '***** S7-PLCSIM. ***** End Sub 'cmdConnect '--------------------------------------Private Sub cmdConnect_Click() Dim errConnect As Long errConnect = S7ProSim1.Connect If errConnect = S_OK Then MsgBox MSG_OK, vbInformation, "Ejemplo de S7ProSim" Else ShowError errConnect End If End Sub 'cmdDisconnect '--------------------------------------Private Sub cmdDisconnect_Click() Dim errDisconnect As Long errDisconnect = S7ProSim1.Disconnect If errDisconnect = S_OK Then MsgBox MSG_OK, vbInformation, "Ejemplo de S7ProSim" Else ShowError errDisconnect End If End Sub 'cmdEnableTrue '--------------------------------------Private Sub cmdEnableTrue_Click() S7ProSim1.Enabled = True End Sub 'cmdEnableFalse '--------------------------------------Private Sub cmdEnableFalse_Click() S7ProSim1.Enabled = False End Sub 'cmdScanModeSingle '--------------------------------------Private Sub cmdScanModeSingle_Click() S7ProSim1.ScanMode = SingleScan End Sub

37

Proyecto de ejemplo 'cmdScanModeCont '--------------------------------------Private Sub cmdScanModeCont_Click() S7ProSim1.ScanMode = ContinuousScan End Sub 'cmdExecuteSingleScan '--------------------------------------Private Sub cmdExecuteSingleScan_Click() Dim errExecuteSingleScan As Long errExecuteSingleScan = S7ProSim1.ExecuteSingleScan If errExecuteSingleScan = S_OK Then MsgBox MSG_OK, vbInformation, "Ejemplo de S7ProSim" Else ShowError errExecuteSingleScan End If End Sub 'cmdReadOutputImage '--------------------------------------Private Sub cmdReadOutputImage_Click() 'Long Dim errReadOutputImage As Long Dim lStartIndex As Long Dim lElementsToRead As Long 'ImageDataTypeConstants Dim DataType As ImageDataTypeConstants 'Variant Dim vData As Variant '***** Leer 2 bytes en la direcciÛn inicial Q 8.0 ***** DataType = S7Byte 'Leer tipo Byte lStartIndex = 8 'Comenzar en la direcciÛn Q 8.0 lElementsToRead = 2 'Leer 2 elementos (bytes) errReadOutputImage = S7ProSim1.ReadOuputImage(lStartIndex, _ lElementsToRead, DataType, vData) If errReadOutputImage = S_OK Then MsgBox "Valor de QB 8 es: " & CByte(vData(0)) & vbCrLf & _ "Valor de QB 9 es: " & CByte(vData(1)), _ vbInformation, "Ejemplo de S7ProSim" Else ShowError errReadOutputImage End If '***** Leer 2 palabras en la direcciÛn inicial Q 10.0 ***** DataType = S7Word 'Leer tipo palabra lStartIndex = 10 'Comenzar en la direcciÛn Q 10.0 lElementsToRead = 2 'Leer 2 elementos (palabras) errReadOutputImage = S7ProSim1.ReadOuputImage(lStartIndex, _ lElementsToRead, DataType, vData) If errReadOutputImage = S_OK Then MsgBox "Valor de QW 10 es: " & CInt(vData(0)) & vbCrLf & _ "Valor de QW 12 es: " & CInt(vData(1)), _ vbInformation, "Ejemplo de S7ProSim" Else ShowError errReadOutputImage End If '***** Leer 2 palabras dobles en la direcciÛn inicial Q 14.0 ***** DataType = S7DoubleWord 'Leer tipo palabra doble lStartIndex = 14 'Comenzar en la direcciÛn Q 14.0 lElementsToRead = 2 'Leer 2 elementos (palabras dobles) errReadOutputImage = S7ProSim1.ReadOuputImage(lStartIndex, _ lElementsToRead, DataType, vData)

38

Proyecto de ejemplo If errReadOutputImage = S_OK Then MsgBox "Valor de QD 14 es: " & CLng(vData(0)) & vbCrLf & _ "Valor de QD 18 es: " & CLng(vData(1)), _ vbInformation, "Ejemplo de S7ProSim" Else ShowError errReadOutputImage End If '***** DespuÈs de esta secciÛn se pueden efectuar los ***** '***** c lculos para la simulaciÛn del proceso si el valor ***** '***** de retorno es S_OK. ***** End Sub 'cmdReadOutputPoint '--------------------------------------Private Sub cmdReadOutputPoint_Click() 'Long Dim errReadOutputPoint As Long Dim lByteIndex As Long Dim lBitIndex As Long 'PointDataTypeConstants Dim DataType As PointDataTypeConstants 'Variant Dim vData As Variant '***** Leer el bit en la direcciÛn Q 0.5 ***** lByteIndex = 0 'Comenzar en la direcciÛn 0.0 lBitIndex = 5 'Leer bit 5 (del byte 0) DataType = S7_Bit 'Leer tipo bit errReadOutputPoint = S7ProSim1.ReadOutputPoint(lByteIndex, _ lBitIndex, DataType, vData) If errReadOutputPoint = S_OK Then MsgBox "El valor actual de Q 0.5 es: " & CInt(vData), _ vbInformation, "Ejemplo de S7ProSim" Else ShowError errReadOutputPoint End If '***** Leer el byte en la direcciÛn Q 1.0 ***** lByteIndex = 1 'Comenzar en la direcciÛn 1.0 DataType = S7_Byte 'Leer tipo Byte errReadOutputPoint = S7ProSim1.ReadOutputPoint(lByteIndex, _ lBitIndex, DataType, vData) If errReadOutputPoint = S_OK Then MsgBox "El valor actual de QB 1 es: " & CByte(vData), _ vbInformation, "Ejemplo de S7ProSim" Else ShowError errReadOutputPoint End If '***** Leer la palabra en la direcciÛn Q 2.0 ***** lByteIndex = 2 'Comenzar en la direcciÛn 2.0 DataType = S7_Word 'Leer tipo palabra errReadOutputPoint = S7ProSim1.ReadOutputPoint(lByteIndex, _ lBitIndex, DataType, vData) If errReadOutputPoint = S_OK Then MsgBox "El valor actual de QW 2 es: " & CInt(vData), _ vbInformation, "Ejemplo de S7ProSim" Else ShowError errReadOutputPoint End If '***** Leer la palabra doble en la direcciÛn Q 4.0 ***** lByteIndex = 4 'Comenzar en la direcciÛn 4.0 DataType = S7_DoubleWord 'Leer tipo palabra doble

39

Proyecto de ejemplo errReadOutputPoint = S7ProSim1.ReadOutputPoint(lByteIndex, _ lBitIndex, DataType, vData) If errReadOutputPoint = S_OK Then MsgBox "El valor actual de QD 4 es: " & CLng(vData), _ vbInformation, "Ejemplo de S7ProSim" Else ShowError errReadOutputPoint End If '***** DespuÈs de esta secciÛn se pueden efectuar los ***** '***** c lculos para la simulaciÛn del proceso si el valor ***** '***** de retorno es S_OK. ***** End Sub 'cmdWriteInputImage '--------------------------------------Private Sub cmdWriteInputImage_Click() 'Byte Dim cByteArray(0 To 1) As Byte 'Integer Dim iWordArray(0 To 1) As Integer 'Long Dim errWriteInputImage As Long Dim lDoubleWordArray(0 To 1) As Long Dim lStartIndex As Long 'Variant Dim vData As Variant '***** Escribir cByteArray(0) = cByteArray(1) = lStartIndex = 8

2 bytes y comenzar en la direcciÛn I 8.0 ***** 8 'Escribir 8 en el primer elemento (byte) 9 'Escribir 9 en el primer elemento (byte) 'Comenzar en la direcciÛn I 8.0

vData = cByteArray errWriteInputImage = S7ProSim1.WriteInputImage(lStartIndex, _ vData) '***** DespuÈs de esta secciÛn se pueden efectuar los ***** '***** c lculos para la simulaciÛn del proceso si el valor ***** '***** de retorno es S_OK. ***** If errWriteInputImage = S_OK Then MsgBox MSG_OK, vbInformation, "S7ProSim Example" Else ShowError errWriteInputImage End If '***** Escribir 2 palabras y comenzar en la direcciÛn I 10.0 ***** iWordArray(0) = 10 'Escribir 10 en el primer elemento (palabra) iWordArray(1) = 12 'Escribir 12 en el primer elemento (palabra) lStartIndex = 10 'Comenzar en la direcciÛn I 10.0 vData = iWordArray errWriteInputImage = S7ProSim1.WriteInputImage(lStartIndex, _ vData) If errWriteInputImage = S_OK Then MsgBox MSG_OK, vbInformation, "Ejemplo de S7ProSim" Else ShowError errWriteInputImage End If '***** Escribir 2 palabras dobles y comenzar en la direcciÛn I 14.0 ***** lDoubleWordArray(0) = 14 'Escribir 14 en el primer elemento (palabra doble) lDoubleWordArray(1) = 18 'Escribir 18 en el primer elemento (palabra doble) lStartIndex = 14 'Comenzar en la direcciÛn I 14.0 vData = lDoubleWordArray errWriteInputImage = S7ProSim1.WriteInputImage(lStartIndex, _ vData) If errWriteInputImage = S_OK Then MsgBox MSG_OK, vbInformation, "Ejemplo de S7ProSim" Else ShowError errWriteInputImage

40

Proyecto de ejemplo End If End Sub 'cmdWriteInputPoint '--------------------------------------Private Sub cmdWriteInputPoint_Click() 'Boolean Dim bBoolIn As Boolean 'Byte Dim cByteIn As Byte 'Integer Dim iWordIn As Integer 'Long Dim errWriteInputPoint As Long Dim lBitIndex As Long Dim lByteIndex As Long Dim lDoubleWordIn As Long 'Variant Dim vData As Variant '***** Escribir 1 bit en la direcciÛn I 0.5 ***** bBoolIn = 1 'Valor de escritura 1 lByteIndex = 0 'Comenzar en la direcciÛn 0.0 lBitIndex = 5 'Escribir en el bit 5 (del byte 0) vData = bBoolIn errWriteInputPoint = S7ProSim1.WriteInputPoint(lByteIndex, _ lBitIndex, vData) '***** DespuÈs de esta secciÛn se pueden efectuar los ***** '***** c lculos para la simulaciÛn del proceso si el valor ***** '***** de retorno es S_OK. ***** If errWriteInputPoint = S_OK Then MsgBox MSG_OK, vbInformation, "Ejemplo de S7ProSim" Else ShowError errWriteInputPoint End If '***** Escribir 1 byte en la direcciÛn I 1.0 ***** cByteIn = 1 'Valor de escritura 1 lByteIndex = 1 'Comenzar en la direcciÛn 1.0 vData = cByteIn errWriteInputPoint = S7ProSim1.WriteInputPoint(lByteIndex, _ lBitIndex, vData) If errWriteInputPoint = S_OK Then MsgBox MSG_OK, vbInformation, "Ejemplo de S7ProSim" Else ShowError errWriteInputPoint End If '***** Escribir 1 palabra en la direcciÛn I 2.0 ***** iWordIn = 2 'Valor de escritura 2 lByteIndex = 2 'Comenzar en la direcciÛn 2.0 vData = iWordIn errWriteInputPoint = S7ProSim1.WriteInputPoint(lByteIndex, _ lBitIndex, vData) If errWriteInputPoint = S_OK Then MsgBox MSG_OK, vbInformation, "Ejemplo de S7ProSim" Else ShowError errWriteInputPoint End If '***** Escribir 1 palabra doble en la direcciÛn I 4.0 ***** lDoubleWordIn = 4 'Valor de escritura 4 lByteIndex = 4 'Comenzar en la direcciÛn 4.0 vData = lDoubleWordIn errWriteInputPoint = S7ProSim1.WriteInputPoint(lByteIndex, _ lBitIndex, vData)

41

Proyecto de ejemplo If errWriteInputPoint = S_OK Then MsgBox MSG_OK, vbInformation, "Ejemplo de S7ProSim" Else ShowError errWriteInputPoint End If End Sub '======================================= 'CREACI”N DE EVENTOS PARA EL CONTROL '======================================= 'ConnectionError '--------------------------------------Private Sub S7ProSim1_ConnectionError(ByVal ControlEngine As String, _ ByVal Error As Long) Dim errMessage As String errMessage = "Imposible conectar a " & ControlEngine & vbCrLf errMessage = errMessage & vbCrLf & _ "Start " & ControlEngine & vbCrLf errMessage = errMessage & "y conectar a mÈtodo Connect" MsgBox errMessage, vbExclamation, "Error de conexiÛn" End Sub 'PLCStateChanged '--------------------------------------Private Sub S7ProSim1_PLCSIMStateChanged(ByVal NewState As String) Dim cMessage As String cMessage = "El modo de operaciÛn de PLCSIM ha cambiado a " & NewState MsgBox cMessage, vbInformation, "Ejemplo de S7ProSim" End Sub 'ScanFinished '--------------------------------------Private Sub S7ProSim1_ScanFinished(ByVal ScanInfo As Variant) Dim cMessage As String Dim vArrayInfo As Variant '***** Antes de esta secciÛn se deberÌan efectuar los ***** '***** c lculos para la simulaciÛn del proceso. ***** vArrayInfo = ScanInfo cMessage = "El ciclo pasado durÛ " & vArrayInfo(0) & vbCrLf cMessage = cMessage & _ "minimum cyle time " & vArrayInfo(1) & vbCrLf cMessage = cMessage & _ "El tiempo de ejecuciÛn m s prolongado durÛ " & vArrayInfo(2) & vbCrLf cMessage = cMessage & _ "El ciclo medio durÛ " & vArrayInfo(3) MsgBox cMessage, vbInformation, "Ejemplo de S7ProSim" End Sub Private Sub cmdBeginScanNotify_Click() S7ProSim1.BeginScanNotify End Sub Private Sub cmdEndScanNotify_Click() S7ProSim1.EndScanNotify End Sub Private Sub cmdExecuteNmsScan_Click() Dim ReturnValue As Long ReturnValue = S7ProSim1.ExecuteNmsScan(Int(txtScanNumber.Text)) If ReturnValue 0 Then MsgBox "° FallÛ!", vbOKOnly End If End Sub Private Sub cmdExecuteNScan_Click() Dim ReturnValue As Long ReturnValue = S7ProSim1.ExecuteNScans(Int(txtScanNumber.Text)) If ReturnValue 0 Then MsgBox "° FallÛ!", vbOKOnly

42

Proyecto de ejemplo End If End Sub Private Sub Form_Unload(cancel As Integer) Dim errDisconnect As Long errDisconnect = S7ProSim1.Disconnect If errDisconnect = S_OK Then MsgBox MSG_OK, vbInformation, "Ejemplo de S7ProSim" Else ShowError errDisconnect End If End Sub '======================================= 'SUBs PRIVADOS '======================================= 'ShowError '--------------------------------------Private Sub ShowError(ErrorNumber) Select Case ErrorNumber Case PS_E_FAIL MsgBox MSG_FAIL, vbExclamation, "Ejemplo de S7ProSim" Case PS_E_INVBYTENDX MsgBox MSG_INVBYTENDX, vbExclamation, "Ejemplo de S7ProSim" Case PS_E_INVBYTECOUNT MsgBox MSG_INVBYTECOUNT, vbExclamation, "Ejemplo de S7ProSim" Case PS_E_READFAILED MsgBox MSG_READFAILED, vbExclamation, "Ejemplo de S7ProSim" Case PS_E_WRITEFAILED MsgBox MSG_WRITEFAILED, vbExclamation, "Ejemplo de S7ProSim" Case PS_E_INVBITNDX MsgBox MSG_INVBITNDX, vbExclamation, "Ejemplo de S7ProSim" Case PS_E_INVTYPE MsgBox MSG_INVTYPE, vbExclamation, "Ejemplo de S7ProSim" Case PS_E_NOTREGISTERED MsgBox MSG_NOTREGISTERED, vbExclamation, "Ejemplo de S7ProSim" Case PS_E_NOTSINGLESCAN MsgBox MSG_NOTSINGLESCAN, vbExclamation, "Ejemplo de S7ProSim" Case PS_E_NOTIFICATION_EXIST MsgBox MSG_NOTIFICATION_EXIST, vbExclamation, _ "Ejemplo de S7ProSim" Case PS_E_PLCSIMNOTRUNNING MsgBox MSG_PLCSIMNOTRUNNING, vbExclamation, _ "Ejemplo de S7ProSim" Case PS_S_ALLREADSNOTPOSSIBLE MsgBox MSG_ALLREADSNOTPOSSIBLE, vbExclamation, _ "Ejemplo de S7ProSim" Case PS_S_ALLWRITESNOTPOSSIBLE MsgBox MSG_ALLWRITESNOTPOSSIBLE, vbExclamation, _ "Ejemplo de S7ProSim" Case PS_E_NOTCONNECTED MsgBox MSG_NOTCONNECTED, vbExclamation, "Ejemplo de S7ProSim" Case PS_E_POWEROFF MsgBox MSG_POWEROFF, vbExclamation, "Ejemplo de S7ProSim" Case Else MsgBox "Error del sistema: &H" & Hex(ErrorNumber), _ vbExclamation, "Ejemplo de S7ProSim" End Select End Sub

43

Índice alfabético A

Enabled, 3, 26

AboutBox, 6

EndScanNotify, 10

Agregar S7ProSim a una aplicación VB, 2

Escribir

AutoConnect, 3, 24

B BeginScanNotify, 7

C

Entrada, 17 Imagen de las entradas, 16 Eventos, 19 ConnectionError, 20 PLCSimStateChanged, 21

Ciclo Ajustar, 27 Obtener, 27 Códigos de error, 33 Componentes del proyecto, VB, 2

ScanFinished, 22 ExecuteNmsScan, 11 ExecuteNScans, 12 ExecuteSingleScan, 13

I

Connect, 8 ConnectionError, 20

ImageDataTypeConstants, 30

Constantes definidas, 29

Insertar S7ProSim en una aplicación VB, 2

ImageDataTypeConstants, 30

Introducción, 1

L

PointDataTypeConstants, 31 ScanModeConstants, 32 Control S7ProSim de Siemens, agregar a un proyecto VB, 2 Controladores de eventos, 4 ControlEngine, 3, 25

D Definiciones de tipo, 29

Leer Imagen de las salidas, 14 Salida, 15

M Métodos, 5 AboutBox, 6 BeginScanNotify, 7

ImageDataTypeConstants, 30

Connect, 8

PointDataTypeConstants, 31

Disconnect, 9

ScanModeConstants, 32

EndScanNotify, 10

Disconnect, 9

E Ejecutar ciclo continuo

ExecuteNmsScan, 11 ExecuteNScans, 12 ExecuteSingleScan, 13

ScanMode, 27

ReadOutputImage, 14

ScanModeConstants, 32

ReadOutputPoint, 15

Ejecutar ciclo individual ExecuteNmsScan, 11 ExecuteNScans, 12

WriteInputImage, 16 WriteInputPoint, 17 Métodos de ejecución de ciclos

ExecuteSingleScan, 13

ExecuteNmsScan, 11

ScanMode, 27

ExecuteNScans, 12

ScanModeConstants, 32

ExecuteSingleScan, 13

Índice alfabético-1

Índice alfabético

N Nombre del control engine, 25 Notificación de ciclo, 7, 10, 26

P

S S7ProSim Agregar a un proyecto VB, 2 Interfaz con S7-PLCSIM, programar, 4

Panorámica, 1

Panorámica, 1

PLCSimStateChanged, 21

Propiedades, 3

PointDataTypeConstants, 31

ScanFinished, 22

Programar una interfaz de S7ProSim con S7PLCSIM, 4

ScanMode, 3, 27

Propiedades, 3, 23 AutoConnect, 24 ControlEngine, 25 Enabled, 26 ScanMode, 27 Proyecto de ejemplo Código, 36 Panorámica, 35 Proyecto de ejemplo, código, 36

R ReadOutputImage, 14 ReadOutputPoint, 15

Índice alfabético-2

ScanModeConstants, 32

T Tipos enumerados, 29 ImageDataTypeConstants, 30 PointDataTypeConstants, 31 ScanModeConstants, 32

V Valores de retorno, 33 Visual Basic, agregar S7ProSim, 2

W WriteInputImage, 16 WriteInputPoint, 17

Formulario de respuesta Sus observaciones y sugerencias nos permiten mejorar la calidad y utilidad de nuestra documentación. Por ello le rogamos que rellene el presente formulario y lo envíe a Siemens. Por favor, responda a las siguientes preguntas adjudicando una puntuación comprendida entre 1 (muy bien) y 5 (muy mal). ¿Corresponde el contenido del manual a sus exigencias? ¿Resulta fácil localizar las informaciones requeridas? ¿Es comprensible el texto? ¿Corresponde el nivel de los detalles técnicos a sus exigencias? ¿Qué opina de la calidad de las ilustraciones y tablas?

Comentarios adicionales: _____________________________________________________ _____________________________________________________ _____________________________________________________ _____________________________________________________ _____________________________________________________ _____________________________________________________ _____________________________________________________ _____________________________________________________ _____________________________________________________ _____________________________________________________ _____________________________________________________ _____________________________________________________ _____________________________________________________ _____________________________________________________ _____________________________________________________ _____________________________________________________ _____________________________________________________

Por favor, indique el ramo de la industria al que pertenece: Industria del automóvil Industria química Industria eléctrica Industria alimentaria Control e instrumentación Industria mecánica Industria petroquímica Industria farmacéutica Industria del plástico Industria papelera Industria textil Transportes Otros ___________________________

Sírvase enviar el formulario de respuesta a: Siemens Energy & Automation, Inc. ATTN: Techmical Communications One Internet Plaza Johnson City TN USA 37604

Por favor, incluya las siguientes informaciones: Remitente Nombres y apellidos: _________________________________________________ Cargo: _____________________________________________________________ Empresa:___________________________________________________________ Calle:______________________________________________________________ CP y población:______________________________________________________ País: ______________________________________________________________ Teléfono:___________________________________________________________