Está en la página 1de 466

33002530 05/2010

Unity Pro
Comunicación
Biblioteca de bloques
05/2010
33002530.09

www.schneider-electric.com
La información que se ofrece en esta documentación contiene descripciones de
carácter general y/o características técnicas sobre el rendimiento de los productos
incluidos en ella. La presente documentación no tiene como objetivo sustituir ni
debe emplearse para determinar la idoneidad o fiabilidad de dichos productos para
aplicaciones de usuario específicas. Los usuarios o integradores tienen la
responsabilidad de llevar a cabo un análisis de riesgos adecuado y exhaustivo, así
como la evaluación y pruebas de los productos en relación con la aplicación o uso
en cuestión de dichos productos. Ni Schneider Electric ni ninguna de sus filiales o
asociados asumirán responsabilidad alguna por el uso inapropiado de la
información contenida en este documento. Si tiene sugerencias para mejoras o
modificaciones o ha hallado errores en esta publicación, le rogamos que nos lo
notifique.
No se podrá reproducir este documento de ninguna forma, ni en su totalidad ni en
parte, ya sea por medios electrónicos o mecánicos, incluida la fotocopia, sin el
permiso expreso y por escrito de Schneider Electric.
Al instalar y utilizar este producto es necesario tener en cuenta todos los sistemas
de seguridad relacionados, ya sean regionales, locales o estatales. Por razones de
seguridad y para garantizar que se siguen los consejos de la documentación del
sistema, las reparaciones sólo podrá realizarlas el fabricante.
Cuando se utilicen dispositivos para aplicaciones con requisitos técnicos de
seguridad, siga las instrucciones pertinentes.
Si no se utiliza el software de Schneider Electric o un software compatible con
nuestros productos de hardware pueden producirse daños, lesiones o un funciona-
miento inadecuado del equipo.
Si no se tiene en cuenta esta información se pueden causar daños personales o en
el equipo.
© 2010 Schneider Electric. Reservados todos los derechos.

2 33002530 05/2010
Tabla de materias

Información de seguridad . . . . . . . . . . . . . . . . . . . . . . . . 9
Acerca de este libro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Parte I Generalidades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Capítulo 1 Tipos de bloques y utilización. . . . . . . . . . . . . . . . . . . . . 15
Tipos de bloques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Estructura de FFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
EN y ENO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Capítulo 2 Disponibilidad de los módulos en las diferentes
plataformas de hardware . . . . . . . . . . . . . . . . . . . . . . . . . 25
Disponibilidad de bloques en las diversas plataformas de hardware . . . . 25
Capítulo 3 Operación de la comunicación EF . . . . . . . . . . . . . . . . . 27
3.1 Información general sobre las funciones de comunicación de Premium y
Atrium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Reglas de uso de las funciones de comunicación en PLC Premium y
Atrium . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Las funciones de comunicación en autómatas Premium y Atrium . . . . . . 29
Estructura de las funciones de comunicación de Premium y Atrium . . . . 31
Dirección del destinatario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Estructura de los parámetros de gestión. . . . . . . . . . . . . . . . . . . . . . . . . . 33
Parámetros de gestión: informes de comunicación y funcionamiento . . . 35
Parámetros de gestión: longitud y timeout . . . . . . . . . . . . . . . . . . . . . . . . 38
Función Servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Parte II Extensiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Capítulo 4 ADDM: Conversión de direcciones. . . . . . . . . . . . . . . . . 45
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Capítulo 5 ADDR: conversión de direcciones . . . . . . . . . . . . . . . . . 49
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Capítulo 6 CANCEL: detención de un intercambio en curso . . . . . 51
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Ejemplo de cómo cancelar un intercambio . . . . . . . . . . . . . . . . . . . . . . . . 54

33002530 05/2010 3
Capítulo 7 CREAD_REG: lectura continua de registro. . . . . . . . . . . 57
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Tipos de datos derivados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Modo de funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Descripción de los parámetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Capítulo 8 CWRITE_REG: escritura continua de registro . . . . . . . . 65
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Tipos de datos derivados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Modo de funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Descripción de los parámetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Capítulo 9 DATA_EXCH: intercambio de datos entre aplicaciones 73
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Pantalla de entrada asistida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Ejemplo de cómo utilizar una red Fipway . . . . . . . . . . . . . . . . . . . . . . . . 81
Capítulo 10 INPUT_BYTE: recepción de cadenas de caracteres. . . . 83
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Capítulo 11 INPUT_CHAR: recepción de cadenas de caracteres . . . 87
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Pantalla de entrada asistida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Ejemplo de lectura de cadenas de caracteres a través de la red Fipway 95
Ejemplo de lectura de cadenas de caracteres mediante la conexión serie
de procesadores Modicon M340 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Capítulo 12 MBP_MSTR: Maestro Modbus Plus . . . . . . . . . . . . . . . . . 99
Descripción del bloque. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Códigos de función de operación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Estructuras de bloque de control de red . . . . . . . . . . . . . . . . . . . . . . . . . 105
Leer datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Escribir datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Obtener estadísticas locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Eliminación de estadísticas locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Escritura de datos globales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Lectura de datos globales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Obtener estadísticas remotas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Borrar estadísticas remotas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Funcionamiento de Peer Cop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Restablecimiento de módulos opcionales . . . . . . . . . . . . . . . . . . . . . . . . 121
Lectura de CTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Escritura de CTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Envío de correo electrónico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Leer/escribir datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Estado de funcionamiento de las comunicaciones Peer Cop . . . . . . . . . 130
Estadísticas de red Modbus Plus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Estadísticas de red de Ethernet TCP/IP . . . . . . . . . . . . . . . . . . . . . . . . . 138
Códigos de error de Modbus Plus, SY/MAX y Ethernet TCP/IP . . . . . . . 141

4 33002530 05/2010
Códigos de error específicos de SY/MAX . . . . . . . . . . . . . . . . . . . . . . . . . 146
Códigos de error de TPC/IP Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Códigos de error CTE para Ethernet SY/MAX y TCP/IP. . . . . . . . . . . . . . 152
Códigos de error del servicio de correo . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Capítulo 13 ModbusP_ADDR: dirección de Modbus Plus . . . . . . . . 155
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Descripción detallada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
Capítulo 14 OUT_IN_CHAR: envío/recepción de cadenas de
caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Pantalla de entrada asistida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
Ejemplo de cómo enviar/recibir una cadena de caracteres . . . . . . . . . . . 168
Capítulo 15 OUT_IN_MBUS: función de comunicación Modbus . . . 171
15.1 Presentación general del bloque de comunicación OUT_IN_MBUS . . . . . 172
Descripción de la función . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Casos de uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
15.2 Descripción del bloque de comunicación OUT_IN_MBUS . . . . . . . . . . . . 177
Representaciones y parámetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Parámetro MbusCmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Parámetro RetryLmt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Parámetro DataBits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Parámetro RespTout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Parámetro MasterDataArea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Parámetro Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
15.3 Instalación del bloque de comunicación OUT_IN_MBUS . . . . . . . . . . . . . 189
Configuración de la conexión serie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Procedimiento para programar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
Uso de un módem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
15.4 Ejemplo de uso del bloque de comunicación OUT_IN_MBUS . . . . . . . . . 197
Descripción del ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
Estructura de programación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Declaración de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Programación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Capítulo 16 PRINT_CHAR: envío de cadenas de caracteres . . . . . . 209
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Pantalla de entrada asistida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Ejemplo de envío de cadenas de caracteres a través de la red Fipway . . 216
Ejemplo de envío de cadenas de caracteres mediante la conexión serie
de procesadores Modicon M340 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Capítulo 17 RCV_TLG: recepción de telegramas. . . . . . . . . . . . . . . . 221
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Ejemplo de cómo recibir un telegrama . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

33002530 05/2010 5
Capítulo 18 READ_ASYN: lectura asíncrona de datos . . . . . . . . . . . . 225
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Capítulo 19 READ_GDATA: lectura de datos globales Modbus Plus 229
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Capítulo 20 READ_REG: lectura de registro . . . . . . . . . . . . . . . . . . . . 231
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
Tipos de datos derivados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Modo de funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Descripción de los parámetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Capítulo 21 READ_VAR: lectura de variables . . . . . . . . . . . . . . . . . . . 241
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Pantalla de entrada asistida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Ejemplo de utilización en un bus Uni-Telway . . . . . . . . . . . . . . . . . . . . . 249
Ejemplo de bits de lectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Ejemplo de uso en una red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Ejemplo de lectura de palabras a través de la conexión serie de
procesadores Modicon M340. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Ejemplo de comprobación de ejecución . . . . . . . . . . . . . . . . . . . . . . . . . 258
Capítulo 22 SEND_EMAIL: Envío de un correo electrónico. . . . . . . . 261
Send_Email . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Capítulo 23 SEND_REQ: peticiones de envío . . . . . . . . . . . . . . . . . . . 265
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Lista de peticiones UNI-TE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Pantalla de entrada asistida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Ejemplo de cómo enviar una petición UNI-TE . . . . . . . . . . . . . . . . . . . . . 278
Modificación de parámetros IP con SEND_REQ (ejemplo). . . . . . . . . . . 280
Utilización de la función SEND_REQ . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Capítulo 24 SEND_TLG: envío de telegramas . . . . . . . . . . . . . . . . . . . 283
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Ejemplo de cómo enviar un telegrama . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Capítulo 25 SYMAX_IP_ADDR: dirección SY/MAX IP . . . . . . . . . . . . . 289
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Descripción detallada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Capítulo 26 TCP_IP_ADDR: dirección TCP/IP . . . . . . . . . . . . . . . . . . . 295
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Descripción detallada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
Capítulo 27 UNITE_SERVER: servidor inmediato . . . . . . . . . . . . . . . . 301
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Ejemplo de servidor inmediato. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Capítulo 28 WRITE_ASYN: escritura asíncrona de datos . . . . . . . . . 307
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307

6 33002530 05/2010
Capítulo 29 WRITE_GDATA: escritura de datos globales Modbus
Plus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Capítulo 30 WRITE_REG: escritura del registro . . . . . . . . . . . . . . . . 317
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
Tipos de datos derivados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Modo de funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
Descripción de los parámetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
Capítulo 31 WRITE_VAR: variables de escritura . . . . . . . . . . . . . . . . 327
Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
Pantalla de entrada asistida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Ejemplo de cómo escribir palabras en una red . . . . . . . . . . . . . . . . . . . . . 335
Ejemplo de escritura de palabras mediante la conexión serie de PLC
Modicon M340. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Ejemplo de comprobación de ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . 339
Capítulo 32 XXMIT: transmisión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
32.1 Introducción a XXMIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
Funciones de XXMIT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342
32.2 XXMIT: funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Breve descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
Representación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Descripción detallada de parámetros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Funciones de comunicación de XXMIT. . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Funciones ASCII de XXMIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Funciones de módem de XXMIT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
Funciones Modbus de XXMIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
FIFO y control de flujo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
Ejemplos de aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
32.3 XXMIT: normas de programación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
Normas de programación de XXMIT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
32.4 Referencias técnicas para XXMIT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
Consulta Modbus/Límites de los parámetros de respuesta . . . . . . . . . . . 394
Configuración del bloque de funciones XXMIT mediante módems de
marcación compatible con Hayes (sólo) . . . . . . . . . . . . . . . . . . . . . . . . . . 395
Ejemplo de aplicación Hayes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
32.5 Información de cableado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
Asignación de pins de cable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
Kits de adaptador de cable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418
Apéndices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
Apéndice A Códigos de error y valores EFB . . . . . . . . . . . . . . . . . . . 425
Tablas de códigos de error de la librería de comunicación. . . . . . . . . . . . 426
Errores comunes de coma flotante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429

33002530 05/2010 7
Apéndice B Objetos de sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
Introducción de bits de sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
Descripción de los bits de sistema de %S15 a %S21 . . . . . . . . . . . . . . . 433
Descripción de las palabras de sistema %SW12 a %SW29 . . . . . . . . . . 436
Glosario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
Índice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465

8 33002530 05/2010
Información de seguridad
§

Información importante

AVISO
Lea atentamente estas instrucciones y observe el equipo para familiarizarse con el
dispositivo antes de instalarlo, utilizarlo o realizar su mantenimiento. Los mensajes
especiales que se ofrecen a continuación pueden aparecer a lo largo de la
documentación o en el equipo para advertir de peligros potenciales o para ofrecer
información que aclara o simplifica los distintos procedimientos.

33002530 05/2010 9
TENGA EN CUENTA
La instalación, manejo, puesta en servicio y mantenimiento de equipos eléctricos
deberán ser realizados sólo por personal cualificado. Schneider Electric no se hace
responsable de ninguna de las consecuencias del uso de este material.
Una persona cualificada es aquella que cuenta con capacidad y conocimientos
relativos a la construcción, el funcionamiento y la instalación de equipos eléctricos
y que ha sido formada en materia de seguridad para reconocer y evitar los riesgos
que conllevan tales equipos.

10 33002530 05/2010
Acerca de este libro

Presentación

Objeto
En este documento se describen las funciones y los bloques de función de la
biblioteca de comunicación.

Campo de aplicación
Este documento es válido para Unity Pro a partir de la versión 5.0.

Documentos relacionados

Título de la documentación Número de


referencia
Bloque de función XXMIT para Quantum mediante Unity Pro, manual -
de usuario

Puede descargar estas publicaciones técnicas y otra información técnica de nuestro


sitio web www.schneider-electric.com.

Comentarios del usuario


Envíe sus comentarios a la dirección electrónica techcomm@schneider-
electric.com.

33002530 05/2010 11
12 33002530 05/2010
Generalidades
33002530 05/2010

Generalidades

I
Visión general
Esta sección contiene información general sobre la biblioteca de comunicación.

Contenido de esta parte


Esta parte contiene los siguientes capítulos:
Capítulo Nombre del capítulo Página
1 Tipos de bloques y utilización 15
2 Disponibilidad de los módulos en las diferentes plataformas de 25
hardware
3 Operación de la comunicación EF 27

33002530 05/2010 13
Generalidades

14 33002530 05/2010
Tipos de bloques y utilización
33002530 05/2010

Tipos de bloques y utilización

1
Vista general
Este capítulo describe los distintos tipos de bloques y su utilización.

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Tipos de bloques 16
Estructura de FFB 18
EN y ENO 21

33002530 05/2010 15
Tipos de bloques y utilización

Tipos de bloques

Tipos de bloques
En Unity Pro se utilizan distintos tipos de bloques. El término general que abarca los
tipos de bloques es FFB.
Debemos distinguir los siguientes tipos de bloques:
z Función elemental (EF)
z Bloques de funciones elementales (EFB)
z Bloque de funciones derivado (DFB)
z Procedimiento

NOTA: Los bloques de funciones de movimiento no están disponibles en la


plataforma Quantum.

Función elemental

ATENCIÓN
COMPORTAMIENTO INESPERADO DEL EQUIPO
No utilice enlaces para conectar salidas de bloques de funciones cuando la
aplicación dependa de los datos de salida persistentes de una EF.
Si no se siguen estas instrucciones pueden producirse lesiones personales
o daños en el equipo.

Las funciones elementales (EF) no disponen de estado interno y solo cuentan con
una salida. Si en las entradas aparecen los mismos valores, el valor de la salida
será el mismo cuando se ejecute la función; por ejemplo, siempre que se ejecuta la
suma de dos valores, el resultado es el mismo.
En los lenguajes gráficos (FBD y LD), una función elemental se representa como un
bloque de datos con entradas y una salida. En él, las entradas aparecen a la
izquierda y las salidas a la derecha. El nombre de la función, es decir, el tipo de
función, aparece centrado dentro del bloque de datos.
El número de entradas puede aumentarse con algunas funciones elementales.
NOTA: La desactivación de una EF (EN=0) ocasiona el reinicio de los enlaces
conectados a su entrada/salida. No utilice un enlace para transferir el estado de la
señal. Una variable debe conectarse a la salida de la EF y utilizarse para conectar
la entrada del elemento.

16 33002530 05/2010
Tipos de bloques y utilización

Bloques de funciones elementales


Los bloques de funciones elementales (EF) tienen estados internos. Si las entradas
disponen del mismo valor, el valor de la salida puede variar cada vez que se
ejecuten los bloques de funciones. Por ejemplo, con un contador aumenta el valor
de la salida.
En los lenguajes gráficos (FBD y LD), un bloque de funciones elementales se
representa como un bloque de datos con entradas y salidas. En él, las entradas
aparecen a la izquierda y las salidas a la derecha. El nombre del bloque de
funciones, es decir, el tipo de bloque de funciones, aparece centrado dentro del
bloque de datos El nombre de la instancia aparece encima del bloque de datos.

Bloques de funciones derivados


Los bloques de funciones derivados (DFB) presentan las mismas propiedades que
los bloques de funciones elementales. Sin embargo, el usuario los crea en los
lenguajes de programación FBD, LD, IL o ST.

Procedimiento
Los procedimientos son funciones con distintas salidas. No disponen de estado
interno.
La única diferencia con las funciones elementales es que los procedimientos
pueden tener más de una salida y admiten variables del tipo de datos VAR_IN_OUT.
Los procedimientos no devuelven ningún valor.
Los procedimientos son una ampliación de la norma CEI 61131-3 y se deben
habilitar de forma explícita.
Los procedimientos no se distinguen visualmente de las funciones elementales.

33002530 05/2010 17
Tipos de bloques y utilización

Estructura de FFB

Estructura
Cada FFB está compuesto por una operación (nombre del FFB), los operandos
necesarios para la operación (parámetros formales y reales) y, en el caso de los
bloques de funciones elementales o derivados, un nombre de instancia.
Para llamar a un bloque de funciones en el lenguaje de programación FBD:
[

ATENCIÓN
COMPORTAMIENTO INESPERADO DE LA APLICACIÓN
No llame varias veces la misma instancia de bloques dentro del ciclo de un PLC
Si no se siguen estas instrucciones pueden producirse lesiones personales
o daños en el equipo.

Para llamar formalmente a un bloque de funciones en el lenguaje de programación


ST:

18 33002530 05/2010
Tipos de bloques y utilización

Operación
La operación establece la función que debe ejecutar el FFB, por ejemplo, registro
de desplazamientos u operaciones de conversión.

Operando
El operando especifica con qué se debe ejecutar la operación. En el caso de los
FFB, se trata de parámetros formales y reales.

Parámetros formales y parámetros reales


Las entradas y salidas se necesitan para transferir valores desde y hasta un FFB.
Se conocen como parámetros formales.
A los parámetros formales se les vinculan objetos que contienen los estados
actuales del proceso. Se conocen como parámetros reales.
Los valores del proceso se transfieren al FFB a través de los parámetros actuales
durante el tiempo de ejecución del programa y se vuelven a emitir después del
procesamiento.
El tipo de datos del parámetro actual debe ser el mismo que el de la entrada o salida
(parámetros formales). Las únicas excepciones son las entradas y salidas
genéricas, cuyo tipo de datos se determina mediante el parámetro real. Si los
parámetros reales constan de literales, se selecciona un tipo de dato apropiado
para el bloque de funciones.

Llamada de un FFB en IL/ST


En los lenguajes de texto IL y ST, los FFB pueden llamarse en formato formal e
informal. Si desea más información, consulte el Manual de referencia.
Ejemplo de una llamada de función formal:
out:=LIMIT (MN:=0, IN:=var1, MX:=5);
Ejemplo de una llamada de función informal:
out:=LIMIT (0, var1, 5);
NOTA: La utilización de EN y ENO sólo es posible para las llamadas formales.

Variable VAR_IN_OUT
A menudo, los FFB se utilizan para leer una variable en la entrada (variables de
entrada), procesarla y devolver los valores modificados de esta variable (variables
de salida).
Este caso específico de variable de entrada/salida también se denomina variable
VAR_IN_OUT.
La correspondencia de las variables de entrada y salida aparece representada con
una línea en los lenguajes gráficos (FBD y LD).

33002530 05/2010 19
Tipos de bloques y utilización

Bloque de funciones con variable VAR_IN_OUT en FBD:

Bloque de funciones con variable VAR_IN_OUT en ST:


MY_EXAMP1 (IN1:=Input1, IN2:=Input2, IO1:=Comb_IN_OUT,
OUT1=>Output1, OUT2=>Output2);
Tenga en cuenta las siguientes particularidades al utilizar FFB con variables
VAR_IN_OUT:
z Hay que asignar obligatoriamente una variable a las entradas VAR_IN_OUT.
z No es posible asignar literales o constantes a las entradas/salidas VAR_IN_OUT.

Además, en el caso de los lenguajes gráficos (FBD y LD) también se aplican las
siguientes restricciones:
z Las conexiones gráficas sólo permiten conectar salidas VAR_IN_OUT a entradas
VAR_IN_OUT.
z Sólo es posible enlazar una conexión gráfica a una salida/entrada VAR_IN_OUT.
z Es posible vincular a la entrada VAR_IN_OUT y a la salida VAR_IN_OUT distintas
variables o componentes de variables. En tal caso, el valor de la variable o de su
componente en la entrada se copiará en la variable o componente de variable en
la salida.
z No se puede utilizar ninguna negación en las entradas/salidas VAR_IN_OUT.
z En el caso de las salidas VAR_IN_OUT no es posible combinar una
variable/dirección con conexiones gráficas.

20 33002530 05/2010
Tipos de bloques y utilización

EN y ENO

Descripción
Se puede configurar una entrada EN y una salida ENO para los FFB.
Si el valor de EN es "0", al llamar el FFB no se ejecutarán los algoritmos definidos
por dicho FFB, y ENO se ajustará a "0".
Si el valor de EN es "1", al llamar el FFB se ejecutarán los algoritmos definidos por
dicho FFB. Una vez que se han ejecutado los algoritmos correctamente, el valor de
ENO pasa a "1". Si se detectan determinadas condiciones de error al ejecutar estos
algoritmos, ENO pasa a "0".
Si el pin EN no tiene un valor asignado, cuando se llama a FFB, se ejecuta el
algoritmo definido por el FFB (del mismo modo que cuando EN es igual a "1").
Consulte Mantener conexiones de salida en EF desactivadas (véase Unity Pro,
Modalidades de funcionamiento, ).
Si se ejecutan los algoritmos correctamente, el valor de ENO pasa a "1". De lo
contrario, el valor de ENO pasa a "0".
Si ENO pasa a "0" (porque EN = 0 o bien porque existe una condición de error
detectado durante la ejecución o una ejecución incorrecta del algoritmo):
z Bloques de funciones
z Manipulación de EN/ENO con bloques de funciones que (sólo) tienen un
enlace como parámetro de salida:

Si EN de FunctionBlock_1 se define como "0", la conexión de salida OUT


de FunctionBlock_1 conserva el estado que tenía en el último ciclo
ejecutado correctamente.
z Manipulación de EN/ENO con bloques de funciones que tienen una variable
y un enlace como parámetros de salida:

Si EN de FunctionBlock_1 se define como "0", la conexión de salida OUT


de FunctionBlock_1 conserva el estado que tenía en el último ciclo
ejecutado correctamente. La variable OUT1 del mismo pin conserva su estado
anterior o se puede modificar de forma externa sin influir en la conexión. La
variable y el enlace se guardan de forma independiente entre sí.

33002530 05/2010 21
Tipos de bloques y utilización

z Funciones/procedimientos
Como se define en IEC61131-3, no se han definido las salidas de las funciones
desactivadas (entrada EN definida como "0"). (Esto es aplicable a los
procedimientos.)
A continuación se explican los estados de salida en este caso:
z Manipulación de EN/ENO con funciones/procedimientos que (sólo) tienen un
enlace como parámetro de salida:

Si EN de Function/Procedure_1 se establece en "0", la conexión de salida


OUT de Function/Procedure_1 también se establece en "0".
z Manipulación de EN/ENO con bloques de funciones que tienen una variable
y un enlace como parámetros de salida:

Si EN de Function/Procedure_1 se establece en "0", la conexión de salida


OUT de Function/Procedure_1 también se establece en "0". La variable
OUT1 del mismo pin conserva su estado anterior o se puede modificar de
forma externa sin influir en la conexión. La variable y el enlace se guardan de
forma independiente entre sí.
El comportamiento del FFB no depende de si los FFB se llaman sin EN/ENO o con
EN=1.

Llamada de FFB condicional/incondicional


Las llamadas "incondicionales" o "condicionales" son posibles con cada FFB. La
condición se lleva a cabo vinculando previamente la entrada EN.
z EN conectado
llamadas condicionales (el FFB sólo se procesa si EN = 1)
z EN mostrado, ocultado y marcado como TRUE, o mostrado y no ocupado
llamadas incondicionales (FFB se procesa de manera independiente de EN)
NOTA: Para bloques de funciones deshabilitados (EN = 0) con una función de
tiempo interna (por ejemplo, DELAY), el tiempo sigue avanzando, ya que se calcula
con la ayuda de un reloj del sistema, y por tanto es independiente del ciclo de
programa y de la apertura del bloque.

22 33002530 05/2010
Tipos de bloques y utilización

ATENCIÓN
EQUIPO DE APLICACIÓN INESPERADO
No deshabilite los bloques de funciones con una función de tiempo interna durante
el funcionamiento.
Si no se siguen estas instrucciones pueden producirse lesiones personales
o daños en el equipo.

Nota para IL y ST
El uso de EN y ENO sólo es posible en los lenguajes de texto para una llamada FFB
formal, por ejemplo,
MY_BLOCK (EN:=enable, IN1:=var1, IN2:=var2,
ENO=>error, OUT1=>result1, OUT2=>result2);
La asignación de variables a ENO se debe llevar a cabo con el operador =>.
Con una llamada no formal, EN y ENO no se pueden utilizar.

33002530 05/2010 23
Tipos de bloques y utilización

24 33002530 05/2010
Disponibilidad de los módulos
33002530 05/2010

Disponibilidad de los módulos en


las diferentes plataformas de
hardware 2
Disponibilidad de bloques en las diversas plataformas de hardware

Introducción
No todos los bloques están disponibles para cada una de las plataformas de
hardware. La disponibilidad de módulos en función de la plataforma de hardware
puede encontrarse en la tabla siguiente.
NOTA: Las funciones, los procedimientos y los bloques de funciones de esta
librería no están definidos en IEC 61131-3.

Expandido
Disponibilidad de los módulos:

Nombre del bloque Tipo de bloque M340 Premium Quantum


ADDR EF - + -
ADDM EF + - -
CANCEL Procedimiento + + -
CREAD_REG EFB - - +
CWRITE_REG EFB - - +
DATA_EXCH Procedimiento + + -
INPUT_BYTE Procedimiento + + -
INPUT_CHAR Procedimiento + + -
MBP_MSTR EFB - - +
MODBUSP_ADDR EFB - - +
OUT_IN_CHAR Procedimiento - + -
OUT_IN_MBUS DFB - + -
PRINT_CHAR Procedimiento + + -
RCV_TLG Procedimiento - + -

33002530 05/2010 25
Disponibilidad de los módulos

Nombre del bloque Tipo de bloque M340 Premium Quantum


READ_ASYN Procedimiento - + -
READ_GDATA Procedimiento - + -
READ_REG EFB - - +
READ_VAR Procedimiento + + -
SEND_REQ Procedimiento - + -
SEND_EMAIL EF + - -
SEND_TLG Procedimiento - + -
SYMAX_IP_ADDR EFB - - +
TCP_IP_ADDR EFB - - +
UNITE_SERVER Procedimiento - + -
WRITE_ASYN Procedimiento - + -
WRITE_GDATA Procedimiento - + -
WRITE_REG EFB - - +
WRITE_VAR Procedimiento + + -
XXMIT EFB - - +

Leyenda:
+ Sí
- No

26 33002530 05/2010
Operación de la comunicación EF
33002530 05/2010

Operación de la comunicación EF

3.1 Información general sobre las funciones de


comunicación de Premium y Atrium

Objetivo de esta sección


Esta sección describe el funcionamiento y la gestión de las funciones de
comunicación de los PLC Premium y Atrium.

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
Reglas de uso de las funciones de comunicación en PLC Premium y Atrium 28
Las funciones de comunicación en autómatas Premium y Atrium 29
Estructura de las funciones de comunicación de Premium y Atrium 31
Dirección del destinatario 32
Estructura de los parámetros de gestión 33
Parámetros de gestión: informes de comunicación y funcionamiento 35
Parámetros de gestión: longitud y timeout 38
Función Servidor 40

33002530 05/2010 27
Operación de la comunicación EF

Reglas de uso de las funciones de comunicación en PLC Premium y Atrium

Presentación
Las funciones de comunicación utilizadas con PLC Premium y Atrium tienen
algunas características exclusivas que las diferencian de las otras funciones de la
biblioteca. Esta documentación se ajusta a la norma de documentación relativa a la
biblioteca de funciones, pero también contiene información adicional relacionada
con las particularidades de la aplicación específica de comunicación.

Variables ubicadas
Todas las funciones de comunicación que no requieren programación en el PLC del
servidor (READ_VAR, WRITE_VAR, etc.) proporcionan acceso a las variables
ubicadas de PLC remotos. No se puede acceder a las variables no ubicadas.
NOTA: Para llevar a cabo transferencias de variables no ubicadas entre PLC, se
debe emplear la función DATA_EXCH. Otra solución es hacer copias locales en las
áreas de variables ubicadas.
Aparte del primer ejemplo de la función WRITE_VAR (sólo Unity Pro M o superior),
el resto de ejemplos se realiza mediante variables de direccionamiento directo
(véase Unity Pro, Lenguajes y estructura del programa, Manual de referencia ) (uso
de direcciones, variables ubicadas).

Lenguaje de programación
El lenguaje de programación más conciso para crear aplicaciones de comunicación
es el lenguaje de texto estructurado (ST, del inglés Structured Text). Todos los
ejemplos, excepto el de la función READ_VAR (véase página 241), están, por
tanto, escritos en ST.

28 33002530 05/2010
Operación de la comunicación EF

Las funciones de comunicación en autómatas Premium y Atrium

Presentación
Estas funciones permiten la comunicación entre equipos. Algunas son comunes a
varios tipos de vía de comunicación, mientras que otras pueden ser específicas de
una sola vía de comunicación.
NOTA: El tratamiento de las funciones de comunicación es asincrónico con
respecto al tratamiento de la tarea de aplicación que ha permitido su activación. Las
funciones de emisión/recepción de telegrama y de parada de funcionamiento son
las únicas excepciones, ya que su ejecución es sincrónica con la ejecución de la
tarea de activación.

Funciones de comunicación asincrónica


Una función de comunicación es asincrónica cuando se ejecuta durante uno o
varios ciclos después del que la ha activado.
La siguiente tabla muestra las funciones de comunicación en las que la ejecución
es asincrónica:

Función Su función es...


READ_VAR leer objetos de lenguaje básico: palabras y bits internos, palabras y bits de
sistema, temporizadores, monoestables, programadores cíclicos,
registros, contadores.
WRITE_VAR escribir objetos de lenguaje básico: palabras y bits internos, palabras y bits
de sistema.
SEND_REQ emitir peticiones UNI-TE.
DATA_EXCH emitir o solicitar la recepción de datos.
PRINT_CHAR escribir una cadena de caracteres.
INPUT_CHAR leer una cadena de caracteres.
OUT_IN_CHAR emitir una cadena de caracteres y esperar una respuesta.
READ_GDATA leer datos comunes de Modbus Plus.

33002530 05/2010 29
Operación de la comunicación EF

Función Su función es...


WRITE_GDATA escribir datos comunes de Modbus Plus.
SERVER tratar las peticiones READ_VAR y WRITE_VAR en Modbus de forma
inmediata (Servidor inmediato).
READ_Asyn leer 1 Kbyte en mensajería.
WRITE_Asyn escribir 1 Kbyte en mensajería.

NOTA: se recomienda iniciar las funciones asincrónicas en flanco y no en estado


para no saturar los búferes de los equipos mediante el envío de varias peticiones.
Por el mismo motivo, se aconseja gestionar el bit de actividad (véase página 33) y
las palabras de confirmación (véase página 35) durante la ejecución de cada
función de comunicación.

Funciones de comunicación sincrónica


Una función de comunicación es sincrónica cuando se ejecuta por completo
durante la tarea del autómata que la activa.
La tabla siguiente muestra las funciones de comunicación en las que la ejecución
es sincrónica:

Función Su función es ...


SEND_TLG emitir un telegrama.
RCV_TLG recibir un telegrama.
CANCELAR detener un intercambio en curso.
DIR convertir una cadena de caracteres en una dirección (tabla de 6 enteros)
que la función de comunicación puede aprovechar directamente.

30 33002530 05/2010
Operación de la comunicación EF

Estructura de las funciones de comunicación de Premium y Atrium

Presentación
Una función de comunicación en PLC Premium y Atrium utiliza:
z un parámetro de dirección,
z parámetros específicos de una operación de comunicación,
z parámetros de gestión.

Sintaxis
La sintaxis de una función de comunicación es la siguiente:
Función (dirección de destino, parámetros específicos,
parámetros de gestión)
La tabla siguiente describe las diferentes entidades que componen una función:

Entidad Descripción
Función Corresponde al tipo de función de comunicación.
Dirección de destino Indica la dirección del destino del intercambio.
Parámetros específicos Depende del tipo de función de comunicación. Se proporciona una
descripción de ellos para cada tipo de función de comunicación.
Parámetros de gestión Los parámetros de gestión son comunes a todas las funciones de
comunicación asíncronas. Están compuestos de lo siguiente:
z un parámetro que proporciona datos sobre la actividad de la
función,
z un parámetro que especifica el número de intercambio que
identifica la transacción en curso,
z un parámetro que contiene el informe de intercambio (informe
de comunicación e informe de funcionamiento),
z un parámetro de timeout que se puede utilizar para comprobar
si no hay respuesta,
z un parámetro de longitud que se puede utilizar para almacenar
el número de bytes que se van a enviar o el número de bytes
recibidos.

33002530 05/2010 31
Operación de la comunicación EF

Dirección del destinatario

Presentación
Este parámetro indica la dirección del equipo de destino (véase Premium, Atrium y
Quantum en Unity Pro, Arquitecturas y servicios de comunicación, Manual de
referencia) del intercambio.
Puede encontrarse:
z mediante el uso de palabras internas (%MW) o constantes internas (%KW),
z o escrito directamente como un valor inmediato.
Para facilitar la fase de preparación del intercambio, existe la función ADDR (sólo
Unity Pro M o superior), que convierte un valor inmediato de tipo dirección (cadena
de caracteres) en una tabla formada siempre por seis palabras internas (%MW).
Ejemplo
%MWi:6:=ADDR(’{2.4}SYS’);

32 33002530 05/2010
Operación de la comunicación EF

Estructura de los parámetros de gestión

Presentación
Los parámetros de gestión se agrupan en una matriz de cuatro enteros. Los valores
contenidos en esta matriz se pueden utilizar para gestionar las funciones de
comunicación.
NOTA: En la documentación técnica, a estos parámetros de gestión también se les
denomina tabla de gestión o informe.
NOTA: Las dos primeras palabras son gestionadas por el sistema. Las dos últimas
palabras dependen del usuario.

Estructura
La tabla siguiente describe la estructura de los datos de la tabla de gestión de
comunicación:

Orden de Byte de mayor valor Byte de menor valor


la palabra
Datos gestionados por el 1 Número de intercambio Bit de actividad
sistema
2 Informe de Informe de
funcionamiento comunicación
(véase página 36) (véase página 35)
Datos gestionados por el 3 Timeout (véase página 38)
usuario
4 Longitud (véase página 38)

Bit de actividad
Este bit indica el estado de ejecución de la función de comunicación.
Se configura en 1 al iniciar y vuelve a 0 cuando se completa la ejecución.
Es el primer bit del primer elemento de la tabla.
Ejemplo: Si la tabla de gestión indica lo siguiente:
Tab_Gest ARRAY [1..4] OF INT, el bit de actividad es el bit con la anotación
Tab_Gest[1].0.
NOTA: La anotación utilizada previamente requiere la configuración de las
propiedades del proyecto de manera que se permita la extracción de bits de los
tipos enteros. De lo contrario, no se puede acceder a Tab_Gest[1].0 de esta
forma.

33002530 05/2010 33
Operación de la comunicación EF

Número de intercambio
Cuando se envía una función de comunicación, el sistema le atribuye automáti-
camente un número, de forma que se permite la identificación del intercambio.
Este número puede utilizarse donde sea necesario para detener el intercambio en
curso (mediante la función CANCEL (véase página 52)).

34 33002530 05/2010
Operación de la comunicación EF

Parámetros de gestión: informes de comunicación y funcionamiento

Presentación
Los informes de comunicación y funcionamiento forman parte de los parámetros de
gestión.
NOTA: Se recomienda comprobar siempre los informes de las funciones de
comunicación en cuanto se haya completado su ejecución y antes de reactivarlos.
En el arranque en frío, es obligatorio que todos los parámetros de gestión de las
funciones de comunicación se comprueben y se restablezcan en 0.

Informe de comunicación
Este informe es común a todas las funciones. Es significativo cuando el valor del bit
de actividad cambia de 1 a 0.
Los informes cuyo valor está entre 16#01 y 16#FE se refieren a errores detectados
por el procesador que ejecutó la función.
En la tabla siguiente se indican los diferentes valores de este informe:

Valor Confirmación de comunicación (byte menos significativo)


16#00 Intercambio correcto
16#01 Detención del intercambio al producirse un timeout
16#02 Detención del intercambio a petición del usuario (CANCEL)
16#03 Formato de dirección incorrecto
16#04 Dirección de destino incorrecta
16#05 Formato incorrecto de parámetro de gestión
16#06 Parámetros específicos incorrectos
16#07 Problema en el envío al destino
16#08 Reservado
16#09 Tamaño del búfer de recepción insuficiente
16#0A Tamaño del búfer de envío insuficiente
16#0B Sin recursos de sistema del procesador
16#0C Número de intercambio incorrecto
16#0D Ningún telegrama recibido
16#0E Longitud incorrecta
16#0F Servicio de telegramas sin configurar
16#10 Módulo de red ausente

33002530 05/2010 35
Operación de la comunicación EF

Valor Confirmación de comunicación (byte menos significativo)


16#11 Petición ausente
16#12 Servidor de la aplicación ya activo
16#13 Número de transacción UNI-TE V2 incorrecto
16#FF Mensaje rechazado

NOTA: La función puede detectar un error de parámetros antes de activar el


intercambio. En este caso, el bit de actividad se mantiene a 0 y el informe se
inicializa con los valores correspondientes al error.
NOTA: Se devuelve el valor 16#FF para indicar un intercambio correcto utilizando
la función WRITE_VAR en una petición de broadcast Modbus. El valor registrado se
implementa en SCY 21601 desde V2.8 IE46, en SCY 11601 desde V1.2 IE11 y en
TSX SCP 111/114 desde V3.2 IR25.

Informe de operación
Este byte de informe es específico de cada función y especifica el resultado de la
operación en la aplicación remota.
Sólo es significativo si el informe de comunicación tiene los valores siguientes:
z 16#00 (intercambio correcto),
z 16#FF (mensaje rechazado).

Si el valor del informe de comunicación es 16#00, el informe de operación tendrá


los valores siguientes:

Valor Confirmación de operación (byte más significativo)


16#00 Resultado positivo
16#01 Petición no procesada
16#02 Respuesta incorrecta
16#03 Reservado
NOTA: En Premium, este informe indica un tamaño
inadecuado del búfer de recepción (el búfer de recepción es
demasiado pequeño para dar cabida a la respuesta).
Código de petición + 16#30 Si la respuesta es positiva para algunas solicitudes
16#FB Si existe una respuesta a solicitudes menores
16#FD Error operativo
16#FE Si la respuesta es positiva para ciertas solicitudes

36 33002530 05/2010
Operación de la comunicación EF

Si el valor del informe de comunicación es 16#FF, el informe de operación tendrá


los valores siguientes:

Valor Confirmación de operación (byte más significativo)


16#01 No hay recursos respecto al procesador
16#02 No hay recursos de línea
16#03 Sin dispositivo o bien dispositivo sin recursos (*)
16#04 Error de línea
16#05 Error de longitud
16#06 Canal de comunicación defectuoso
16#07 Error de direccionamiento
16#08 Error de aplicación
16#0B Sin recursos de sistema
16#0C Función de comunicación inactiva
16#0D Destino ausente
16#0F Problema de acceso entre estaciones o canal sin configurar
16#11 Formato de dirección no gestionado
16#12 Sin recursos de destino
16#14 Conexión no operativa (ejemplo: Ethernet TCP/IP)
16#15 Sin recurso en el canal local
16#16 Acceso no autorizado (ejemplo: Ethernet TCP/IP)
16#17 Configuración de red incoherente (ejemplo: Ethernet TCP/IP)
16#18 Conexión no disponible temporalmente
16#21 Servidor de la aplicación detenido
16#30 Error de transmisión

Leyenda:
(*) Código gestionado sólo por tarjetas PCMCIA: TSX FPP20 y TSX FPP10

33002530 05/2010 37
Operación de la comunicación EF

Parámetros de gestión: longitud y timeout

Presentación
Estos dos parámetros dependen del usuario.

Longitud
El parámetro de longitud se utiliza tanto para especificar el número de caracteres
(en bytes) que se van a enviar durante la transmisión, como para almacenar el
número de caracteres (en bytes) recibidos tras la recepción de un mensaje.
Antes de iniciar determinadas funciones de comunicación (SEND_REQ,
DATA_EXCH, PRINT_CHAR, SEND_TLG), es obligatorio para algunas, y se
recomienda para otras, actualizar el parámetro de longitud.
NOTA: Con la función PRINT_CHAR, por ejemplo, si otra función de la aplicación
está utilizando la misma tabla de informe en la que el número de bytes que se van
a enviar es diferente del de la función previa, es obligatorio inicializar el parámetro
de longitud con el número nuevo de bytes que se va a transmitir. De lo contrario,
mantiene el mismo número de bytes enviados por la función anterior.

Timeout
El timeout determina el tiempo máximo de espera para la respuesta. La base de
tiempo para este parámetro es 100 ms (el valor 0 corresponde a un valor de espera
infinita).
Cuando transcurre el timeout, el intercambio termina con un informe de error.
Asimismo, el sistema no acepta ninguna respuesta al término del timeout.
Ejemplo

NOTA: El valor de timeout de una función de comunicación debe ser suficiente para
garantizar que la respuesta a la pregunta formulada se ha recibido (uso de un
módem externo en una conexión basada en protocolo, por ejemplo).

38 33002530 05/2010
Operación de la comunicación EF

NOTA: Para la comunicación del maestro Modbus, el timeout de la aplicación


establecido para las funciones de comunicación debe ser mayor que el timeout de
la pantalla de configuración multiplicado por el número de reintentos (timeout de
hardware).
NOTA: El timeout de los EF de comunicación (por ejemplo, WRITE_VAR o
READ_VAR) debe ser mayor que el timeout del equipo maestro de comunicación
(retardo en la respuesta).

33002530 05/2010 39
Operación de la comunicación EF

Función Servidor

Presentación
La función de servidor puede utilizarse para responder a las peticiones de los
dispositivos cliente.
Los procesadores TSX 57 35• y PCX 57 35• proporcionan dos servidores de
peticiones:
z un servidor principal (recomendado para peticiones de menos de 256 bytes),
z un servidor auxiliar (recomendado para peticiones de hasta 1.024 bytes).
Estos dos servidores se pueden activar simultáneamente.

Ilustración
El diagrama siguiente muestra las peticiones enviadas a los servidores en el ciclo
del PLC:

40 33002530 05/2010
Operación de la comunicación EF

Servidor principal
Este servidor corresponde al puerto 0 (servidor UNI-TE). Se activa al comienzo del
ciclo MAST del PLC.
El tiempo de respuesta del PLC cliente depende del tiempo de ciclo del PLC del
servidor. Esto puede utilizarse para procesar hasta cuatro peticiones simultáneas
por ciclo del PLC.
Se admiten todas las peticiones UNI-TE. El tamaño de la petición debe ser inferior
a 256 bytes.
Es posible direccionar esta entidad en la dirección topológica SYS o
{network.station}SYS.

Servidor auxiliar
Este servidor corresponde al puerto 7 (servidor asíncrono). Se activa únicamente
para tareas periódicas al final del ciclo del PLC, una vez que la tarea MAST se ha
procesado, mientras se espera el comienzo del ciclo siguiente.
El inicio del siguiente ciclo de mayor prioridad podría interrumpir una petición en
curso. El acceso al servidor está, por tanto, reservado a las aplicaciones que no
requieren coherencia en sus datos de lectura/escritura.
El tiempo de respuesta de la aplicación dependerá fundamentalmente del tiempo
del ciclo del PLC. El tamaño de la petición puede ser de hasta 1.024 bytes. No se
puede acceder a ésta desde una función de comunicación; el servidor procesa el
objeto (bit o palabra), las peticiones de LECTURA/ESCRITURA, etc.

33002530 05/2010 41
Operación de la comunicación EF

42 33002530 05/2010
Extensiones
33002530 05/2010

Extensiones

II
Visión general
En esta parte se describen las funciones y bloques de función elementales de la
familia Extensiones.

Contenido de esta parte


Esta parte contiene los siguientes capítulos:
Capítulo Nombre del capítulo Página
4 ADDM: Conversión de direcciones 45
5 ADDR: conversión de direcciones 49
6 CANCEL: detención de un intercambio en curso 51
7 CREAD_REG: lectura continua de registro 57
8 CWRITE_REG: escritura continua de registro 65
9 DATA_EXCH: intercambio de datos entre aplicaciones 73
10 INPUT_BYTE: recepción de cadenas de caracteres 83
11 INPUT_CHAR: recepción de cadenas de caracteres 87
12 MBP_MSTR: Maestro Modbus Plus 99
13 ModbusP_ADDR: dirección de Modbus Plus 155
14 OUT_IN_CHAR: envío/recepción de cadenas de caracteres 161
15 OUT_IN_MBUS: función de comunicación Modbus 171
16 PRINT_CHAR: envío de cadenas de caracteres 209
17 RCV_TLG: recepción de telegramas 221
18 READ_ASYN: lectura asíncrona de datos 225
19 READ_GDATA: lectura de datos globales Modbus Plus 229
20 READ_REG: lectura de registro 231
21 READ_VAR: lectura de variables 241
22 SEND_EMAIL: Envío de un correo electrónico 261
23 SEND_REQ: peticiones de envío 265

33002530 05/2010 43
Extensiones

Capítulo Nombre del capítulo Página


24 SEND_TLG: envío de telegramas 283
25 SYMAX_IP_ADDR: dirección SY/MAX IP 289
26 TCP_IP_ADDR: dirección TCP/IP 295
27 UNITE_SERVER: servidor inmediato 301
28 WRITE_ASYN: escritura asíncrona de datos 307
29 WRITE_GDATA: escritura de datos globales Modbus Plus 313
30 WRITE_REG: escritura del registro 317
31 WRITE_VAR: variables de escritura 327
32 XXMIT: transmisión 341

44 33002530 05/2010
ADDM
33002530 05/2010

ADDM: Conversión de direcciones

4
Descripción

Descripción de la función
La función ADDM se utiliza para convertir una cadena de caracteres en una dirección
que las siguientes funciones de comunicación pueden utilizar directamente:
READ_VAR, WRITE_VAR, INPUT_CHAR, PRINT_CHAR, DATA_EXCH, SEND_EMAIL.
Pueden configurarse los parámetros EN y ENO adicionales.

Representación en FBD
Representación:

Representación en LD
Representación:

33002530 05/2010 45
ADDM

Representación en IL
Representación:
LD Addr_String
ADDM
ST Addr_Array

Representación ST
Representación:
Addr_Array := ADDM(Addr_String);

Descripción de parámetros
En la siguiente tabla se describe el parámetro de entrada:

Parámetro Tipo Comentario


IN Cadena de caracteres Dirección de dispositivo en un bus o una red.

Para direccionar una estación en Ethernet, el parámetro IN adopta la forma:


z ‘ConexRed{DirHost}’
z ‘ConexRed{DirHost}TCP.MBS’
z ‘ConexRed{DirHost}nodo’
z ‘r.m.c{DirHost}’
z ‘r.m.c{DirHost}TCP.MBS’
z ‘r.m.c{DirHost}nodo’
z ‘{DirHost}’
z ‘{DirHost}TCP.MBS’
z ‘{DirHost}nodo’

También existe la posibilidad de usar la conexión de red predeterminada mediante


la notación simplificada para dirigir una estación en Ethernet:
z ADDM‘{DirHost}’
A conexión de red predeterminada es la conexión de red configurada más
próxima desde la CPU.
Donde:
z ConexRed: nombre de red establecido en el campo Conexión de red del canal
Ethernet.
z DirHost: dirección IP del dispositivo.
z r: número de bastidor (rack).
z m: posición del módulo.
z c: número de canal (channel).
z nodo: nodo Modbus o CANopen detrás de una pasarela (pasarela identificada
con DirHost).
z TCP.MBS: para el direccionamiento de un servidor Modbus TCP.

46 33002530 05/2010
ADDM

Para direccionar un dispositivo en un bus CANopen, el parámetro IN adopta la


forma ‘r.m.c.e’, donde:
z r: número de bastidor (rack).
z m: posición del módulo.
z c: número de canal (channel) del puerto CANopen (2).
z e: nodo de esclavo CANopen (equipment) (rango de 1 a 127).

Para direccionar un dispositivo mediante el protocolo Modbus, el parámetro IN


adopta la forma:
z ‘r.m.c.e.MBS’

Donde:
z r: número de bastidor (rack).
z m: posición del módulo.
z c: número de canal (channel) del puerto Modbus (0).
z e: número del esclavo de Modbus (equipment) (rango de 1 a 247).
z MBS: para el direccionamiento de un servidor Modbus.

Para direccionar un dispositivo mediante el protocolo de modo de caracteres, el


parámetro IN adopta la forma ‘r.m.c’ o ‘r.m.c.SYS’, donde:
z r: número de bastidor (rack).
z m: posición del módulo.
z c: número de canal (channel) del puerto de modo de caracteres (0).
z SYS: palabra clave utilizada para estipular el sistema de servidor de la estación.
SYS puede omitirse.
Para obtener más información, consulte la descripción general del direccionamiento
de PLC M340 del manual de usuario Arquitecturas de comunicación.
En la siguiente tabla se describe el parámetro de salida:

Parámetro Tipo Comentario


OUT ADDM_TYPE Matriz que representa la dirección de un
Matriz de 8 enteros simples. dispositivo. Este parámetro se puede utilizar
como parámetro de entrada para varias
funciones de comunicación.

El bloque ADDM analiza la sintaxis de la cadena de direccionamiento (parámetro


IN) y coloca el resultado en una matriz de 8 enteros simples que define la dirección
de destino. La dirección de destino puede proporcionarse mediante el parámetro
OUT de la función ADDM o directamente mediante una matriz de 8 objetos INT. Sin
embargo, se recomienda encarecidamente utilizar la función ADDM para
direccionar una comunicación EF.

33002530 05/2010 47
ADDM

La estructura de la dirección de destino es la siguiente:

Campo Tamaño Valor


Tipo Byte Reservado.
ClientID Byte Reservado.
Bastidor Byte Número de ranuras del bastidor.
Slot Byte Número de ranuras del módulo.
Channel Byte Número de canal.
ProtId Byte Reservado. 0 para Modbus.
AddrLen Byte Este byte puede tener los siguientes valores:
z Valor 0 si el servidor de módulo o canal está direccionado
(no se utilizan UnitId ni AddrExt).
z Valor 1 si se especifica el número de dispositivo.
z Valor >1 si también se utiliza AddrExt.

UnitId Byte Número de dispositivo, dispositivo Modbus por ejemplo.


AddrExt Matriz[7] Reservado. Se utiliza para codificar información adicional de la
dirección para direcciones TCP/IP.

ADVERTENCIA
COMPORTAMIENTO INESPERADO DE LA APLICACIÓN
El uso de parámetros reservados es responsabilidad de los usuarios y puede
provocar un funcionamiento incorrecto.
Si no se siguen estas instrucciones pueden producirse lesiones personales
graves o mortales o daños en el equipo.

48 33002530 05/2010
ADDR
33002530 05/2010

ADDR: conversión de direcciones

5
Descripción

Descripción de la función
La función ADDR se utiliza para convertir una cadena de caracteres en una dirección
que puede ser utilizada por las funciones de comunicación directamente.
Pueden configurarse los parámetros adicionales EN y ENO.

Representación en FBD
Representación:

Representación LD
Representación:

33002530 05/2010 49
ADDR

Representación en IL
Representación:
LD Addr_String
ADDR
ST Addr_Array

Representación en ST
Representación:
Addr_Array := ADDR(Addr_String);

Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:

Parámetro Tipo Comentario


Addr_String STRING La variable de tipo de cadena de caracteres representa
la dirección de dispositivo en un bus o una red.
Ejemplos: ‘{5.6}SYS’, ‘{1.2}0.4.5.2’

En la siguiente tabla, se describen los parámetros de salida:

Parámetro Tipo Comentario


Addr_Array ADDR_TYPE Matriz de 6 enteros que representa la dirección
o bien Addr_String.
ARRAY [0..5] OF Addr_Array puede ser utilizado directamente como
INT primer parámetro de entrada de los EF de
comunicación.

ATENCIÓN
COMPORTAMIENTO INESPERADO DE LA APLICACIÓN
No utilice parámetros de dirección erróneos. Por ejemplo:
z No establezca un parámetro de dirección que no corresponda al equipo de
destino.
z No utilice un valor superior a 98 en la función ADDR (el campo "e" para la
dirección del equipo) al utilizar el puerto serie incorporado CPU o el canal
TSXSCY21601 0 ó 1.
Si no se siguen estas instrucciones pueden producirse lesiones personales
o daños en el equipo.

50 33002530 05/2010
CANCEL
33002530 05/2010

CANCEL: detención de un
intercambio en curso
6
Objetivo
En este capítulo se describe la función CANCEL.

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Descripción 52
Ejemplo de cómo cancelar un intercambio 54

33002530 05/2010 51
CANCEL

Descripción

Descripción de la función
La función CANCELAR permite interrumpir una función de comunicación asincrónica
en curso. El número de intercambio asignado a cada comunicación permite
identificar la función que se va a detener.
El periodo entre la petición de la función CANCELAR y la acción de CANCELAR
depende del número de funciones de comunicación en curso. El uso de una función
CANCELAR implica, para todos los canales y EF, que:
z Las funciones de comunicación asincrónica en curso se cancelarán.
z Las tramas especializadas almacenadas en el búfer con la función CANCELAR
pueden ser enviadas.
NOTA: En la modalidad de caracteres, las funciones elementales asignadas
INPUT_CHAR, INPUT_BYTE y/o OUT_IN_CHAR en curso se cancelarán y el canal
de conexión serie asincrónica asociada se desbloqueará cuando esté a la espera
de los criterios de finalización.
NOTA: La ejecución de esta función es síncrona a la ejecución del programa
autómata (la función de comunicación se detiene en el ciclo del PLC en el que se
ha ejecutado la función CANCELAR).
Los parámetros adicionales EN y ENO se pueden configurar.

Representación en FBD
Representación:

Representación Ladder
Representación:

52 33002530 05/2010
CANCEL

Representación en IL
Representación:
LD Exchange_Num
CANCELAR
ST Report

Representación en ST
Representación:
CANCEL(Exchange_Num, Report);

Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:

Parámetro tipo Comentario


Exchange_Num INT Este parámetro especifica el número del intercambio en el
que debe interrumpirse la ejecución.

La siguiente tabla describe los parámetros de salida:

Parámetro tipo Comentario


Confirmación INT Esta confirmación de operación toma uno de los valores
siguientes:
z 16#00: Operación correcta. La comunicación se
interrumpe, el bit de actividad de la función interrumpida
se encuentra a 0 y la confirmación toma el valor 2.
z 16#0C: Número de intercambio incorrecto.

33002530 05/2010 53
CANCEL

Ejemplo de cómo cancelar un intercambio

Presentación
Este ejemplo ilustra cómo cancelar un intercambio realizado con la función
OUT_IN_CHAR.
Cuando se inicia el intercambio, se le asigna un número único. Este número es
válido hasta el final del intercambio.
La función CANCEL emplea este número para interrumpir el intercambio al que está
asignada.

Programación de la función OUT_IN_CHAR


Programación en ST:
IF RE(%I0.3.8) AND NOT %MW170.0 THEN
(* inicialización de los datos que se van a enviar *)
%MW173 := 10;
(* función de comunicación *)

OUT_IN_CHAR(ADDR(‘{20.5}0.0.0.SYS’),1,Str_Out,Str_In,%MW170:
4);
END_IF;

Programación de la función CANCEL


Programación en ST:
%MW180 := SHRZ_INT(%MW170,8);
IF RE(%I0.3.9) THEN
CANCEL(%MW180,%MW185);
END_IF;
La función CANCEL afecta a dos parámetros:
z en entradas: al número del intercambio que se va a cancelar,
z en salidas: al informe.
Es necesario inicializar el primer parámetro con el número del intercambio que se
va a cancelar. Este número se encuentra en el byte de mayor valor de la primera
palabra de la tabla de gestión. En este caso, se trata del byte de mayor valor de
%MW170. Antes de enviar la función CANCEL, resulta necesario crear un desplaza-
miento de ocho bits para recuperar los ocho bits de mayor valor de %MW170.

54 33002530 05/2010
CANCEL

Parámetros de petición:

Parámetros Descripción
%MW180 El bit de menor valor contiene el número del intercambio que se va a
cancelar. ATENCIÓN: El byte de mayor valor debe ser cero.
%MW185 Informe de la función.

33002530 05/2010 55
CANCEL

56 33002530 05/2010
CREAD_REG
33002530 05/2010

CREAD_REG: lectura continua de


registro
7
Introducción
En este capítulo se describe el bloque CREAD_REG.

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Descripción 58
Tipos de datos derivados 60
Modo de funcionamiento 62
Descripción de los parámetros 63

33002530 05/2010 57
CREAD_REG

Descripción

Descripción de funciones
Este bloque de función está ideado para leer de forma continua un área de registro.
Lee datos de un participante direccionado a través de Modbus Plus, Ethernet
TCP/IP o Ethernet SY/MAX.
Como parámetros adicionales se pueden configurar EN y ENO.
NOTA: Para programar la función CREAD_REG debe conocer los procedimientos de
acceso utilizados en la red. La descripción detallada de las estructuras de ruta de
acceso Modbus Plus se encuentra en "Modbus Plus Network Planning and
Installation Guide". En el caso de que se implemente la ruta de acceso de Ethernet
TCP/IP o SY/MAX, se deberán utilizar los productos estándar de ruta de acceso de
Ethernet-IP. La descripción detallada de las rutas de acceso TCP/IP figura en el
manual "Manual de usuario sobre la configuración de Quantum con Unity
ProTCP/IP".
NOTA: En el programa puede utilizar diversos ejemplares de este bloque de
función. No obstante, no es posible instanciar estos ejemplares de forma múltiple.

Representación en FBD
Representación:

Representación en LD
Representación:

58 33002530 05/2010
CREAD_REG

Representación en IL
Representación:
CAL CREAD_REG_Instance (SLAVEREG:=OffsetAddress,
NO_REG:=NumberOfRegisters, ADDRFLD:=DataStructure,
REG_READ=>RegisterToRead, STATUS=>ErrorCode)

Representación en ST
Representación:
CREAD_REG_Instance (SLAVEREG:=OffsetAddress,
NO_REG:=NumberOfRegisters, ADDRFLD:=DataStructure,
REG_READ=>RegisterToRead, STATUS=>ErrorCode) ;

Descripción de los parámetros


Descripción de los parámetros de entrada

Parámetro Tipo de datos Significado


SLAVEREG DINT Dirección de la primera dirección %MW en el slave
desde el que se debe leer.
NO_REG INT Número de direcciones que se deben leer desde el
slave.
ADDRFLD WordArr5 Estructura de datos para la descripción de la dirección
Modbus Plus, TCI/IP o SY/MAX-IP.

Descripción de los parámetros de salida

Parámetro Tipo de datos Significado


REG_READ ANY Datos que se van a leer.
Se debe declarar una estructura de datos como Located
Variable para los datos que se van a leer.
STATUS WORD En caso de que se produzca un error al ejecutar la
función, el código de error permanecerá en esta salida
durante un ciclo.
Para código de error, consulte:
z Códigos de error de Modbus Plus, SY/MAX y
Ethernet TCP/IP, página 141
z Códigos de error específicos de SY/MAX, página 146
z Códigos de error de TPC/IP Ethernet, página 148

Error de ejecución
Para obtener una lista de todos los códigos y los valores de error del módulo,
consulte Extendido, página 426.

33002530 05/2010 59
CREAD_REG

Tipos de datos derivados

Tipo de datos derivado WordArr5 en Modbus Plus


Descripción de los elementos:

Elemento Tipo de datos Descripción


WordArr5[1] WORD Byte menos significativo:
El registro de ruta de acceso 1 se utiliza para
determinar la dirección (dirección de ruta de acceso
una de cinco) del participante de destino en una
transmisión de red.
El último byte en la ruta de acceso que no se
corresponda con cero es el participante de destino.
Byte más significativo:
dirección de participante de origen.
z posición de slot del módulo al utilizar el puerto
Modbus Plus en el módulo NOM.
z establecido en 0 al utilizar el puerto Modbus Plus en
la CPU (independientemente del slot de la CPU).
WordArr5[2] WORD Registro de ruta de acceso 2
WordArr5[3] WORD Registro de ruta de acceso 3
WordArr5[4] WORD Registro de ruta de acceso 4
WordArr5[5] WORD Registro de ruta de acceso 5

Descripción de elementos para WordArr5 en Ethernet TCP/IP


Descripción de elementos para WordArr5 en Ethernet TCP/IP

Elemento Tipo de datos Descripción


WordArr5[1] WORD Byte menos significativo:
índice de asignación MET (transportador de MBP por
Ethernet)
Byte más significativo:
slot del módulo NOE
WordArr5[2] WORD Byte 4 (MSB) de la dirección IP de 32 bits de destino
WordArr5[3] WORD Byte 3 de la dirección IP de 32 bits de destino
WordArr5[4] WORD Byte 2 de la dirección IP de 32 bits de destino
WordArr5[5] WORD Byte 1 (LSB) de la dirección IP de 32 bits de destino

60 33002530 05/2010
CREAD_REG

Descripción de elementos para WordArr5 en Ethernet SY/MAX


Descripción de elementos para WordArr5 en Ethernet SY/MAX

Elemento Tipo de datos Descripción


WordArr5[1] WORD Byte menos significativo:
índice de asignación MET (transportador de MBP por
Ethernet)
Byte más significativo:
slot del módulo NOE
WordArr5[2] WORD Número de estación de destino (o establecer en FF hex)
WordArr5[3] WORD Terminador (establecer en FF hex)
WordArr5[4] WORD Sin significado
WordArr5[5] WORD Sin significado

33002530 05/2010 61
CREAD_REG

Modo de funcionamiento

Modo de funcionamiento del bloque CREAD_REG


Se puede programar un gran número de bloques de función CREAD_REG, pero
solamente pueden estar activas cuatro operaciones de lectura al mismo tiempo. En
este caso, no tiene importancia si dichas operaciones se realizan por medio de este
bloque de función u otros (p. ej. MBP_MSTR, MSTR o READ_REG). Todos los bloques
de función emplean una ruta de transacción de datos y necesitan varios ciclos para
completar una orden.
NOTA: La comunicación TCP/IP entre un autómata Quantum (NOE 211 00) y un
autómata Momentum (todas las CPU TCP/IP y todos los módulos de E/S TCP/IP)
sólo es posible cuando en cada ciclo del autómata únicamente se lleva a cabo una
orden de escritura o de lectura. Si se envían varias órdenes por cada ciclo del
autómata, la comunicación permanece estancada, sin generar ningún mensaje de
error en el registro de estado del bloque de función.
La información de acceso completa está incluida en la estructura de datos
WordArr5 de la entrada ADDRFLD. El tipo del bloque de función conectado a esta
entrada se orienta de acuerdo con la red utilizada.
Utilice:
z El bloque de función ModbusP_ADDR para Modbus Plus.
z El bloque de función TCP_IP_ADDR para Ethernet TCP/IP.
z El bloque de función SYMAX_IP_ADDR para Ethernet SY/MAX.

NOTA: La estructura de datos WordArr5 también se puede utilizar con constantes.


NOTA: Este bloque de función supone una gran carga para la red; por lo tanto, se
debe vigilar atentamente la carga de la red. En caso de que la carga de la red sea
demasiado alta, se debería repasar nuevamente la lógica del programa para poder
trabajar con el bloque de función READ_REG, una variación de este bloque de
función que no trabaja en modalidad continua, sino controlado por comandos.

62 33002530 05/2010
CREAD_REG

Descripción de los parámetros

SLAVEREG
Principio del área en el slave direccionado en la que se leen los datos de origen. El
área de origen se encuentra siempre dentro del área del rango de direcciones
%MW.
NOTA: Para slaves de un PLC que no sea Unity Pro:
El área de origen se encuentra siempre dentro del área de registro 4x. SLAVEREG
espera la dirección de origen como offset dentro del área 4x. El "4" de la izquierda
no se tiene en cuenta (p. ej. 59 (contenido de las variables o valor del literal) =
40059).
El parámetro se puede indicar como dirección, Located Variable, Unlocated
Variable o literal.

NO_REG
Número de direcciones que se deben leer desde el slave direccionado (1 a 100).
El parámetro se puede indicar como dirección, Located variable o Unlocated
variable.

REG_READ
Para este parámetro se debe definir una matriz (ARRAY) del tamaño del envío
requerido (≥ NO_REG). El nombre de esta matriz se transferirá como parámetro. Si
se define una matriz demasiado pequeña, sólo se transferirá la cantidad de datos
que tenga cabida en la matriz.
El parámetro se debe indicar como Located Variable.

STATUS
En caso de que se produzca un error al ejecutar la función, el código de error
permanecerá en esta salida durante un ciclo.
Para código de error, consulte:
z Códigos de error de Modbus Plus, SY/MAX y Ethernet TCP/IP, página 141
z Códigos de error específicos de SY/MAX, página 146
z Códigos de error de TPC/IP Ethernet, página 148

El parámetro se puede indicar como dirección, Located variable o Unlocated


variable.

33002530 05/2010 63
CREAD_REG

64 33002530 05/2010
CWRITE_REG
33002530 05/2010

CWRITE_REG: escritura continua


de registro
8
Introducción
En este capítulo se describe el bloque CWRITE_REG.

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Descripción 66
Tipos de datos derivados 69
Modo de funcionamiento 71
Descripción de los parámetros 72

33002530 05/2010 65
CWRITE_REG

Descripción

Descripción de funciones
Este bloque de función está ideado para escribir de forma continua un área de
registro. Transmite datos desde el autómata a través de Modbus Plus, Ethernet
TCP/IP o Ethernet SY/MAX a un slave direccionado.
Como parámetros adicionales se pueden configurar EN y ENO.
NOTA: Para programar la función CWRITE_REG debe conocer los procedimientos
de acceso utilizados en la red. La descripción detallada de las estructuras de ruta
de acceso Modbus Plus se encuentra en "Modbus Plus Network Planning and
Installation Guide". En el caso de que se implemente la ruta de acceso de Ethernet
TCP/IP o SY/MAX, se deberán utilizar los productos estándar de ruta de acceso de
Ethernet-IP. La descripción detallada de las rutas de acceso TCP/IP figura en el
manual "Manual de usuario sobre la configuración de Quantum con Unity
ProTCP/IP".
NOTA: En el programa puede utilizar diversos ejemplares de este bloque de
función. No obstante, no es posible instanciar estos ejemplares de forma múltiple.

Representación en FBD
Representación:

66 33002530 05/2010
CWRITE_REG

Representación en LD
Representación:

Representación en IL
Representación:
CAL CWRITE_REG_Instance (SLAVEREG:=OffsetAddress,
NO_REG:=NumberOfRegisters, REG_WRIT:=SourceDataArea,
ADDRFLD:=DataStructure, STATUS=>ErrorCode)

Representación en ST
Representación:
CWRITE_REG_Instance ( SLAVEREG:=OffsetAddress,
NO_REG:=NumberOfRegisters, REG_WRIT:=SourceDataArea,
ADDRFLD:=DataStructure, STATUS=>ErrorCode) ;

33002530 05/2010 67
CWRITE_REG

Descripción de los parámetros


Descripción de los parámetros de entrada

Parámetro Tipo de datos Significado


SLAVEREG DINT Dirección de la primera dirección %MW del slave en el que
se debe escribir.
NO_REG INT Número de direcciones que se deben escribir desde el slave.
REG_WRIT ANY Datos de origen
(Se debe declarar una estructura de datos como Located
Variable para los datos de origen).
ADDRFLD WordArr5 Estructura de datos para la transmisión de la dirección
Modbus Plus, TCI/IP o SY/MAX-IP.

Descripción de los parámetros de salida

Parámetro Tipo de datos Significado


STATUS WORD En caso de que se produzca un error al ejecutar la función,
el código de error permanecerá en esta salida durante un
ciclo.
Para código de error, consulte:
z Códigos de error de Modbus Plus, SY/MAX y Ethernet
TCP/IP, página 141
z Códigos de error específicos de SY/MAX, página 146
z Códigos de error de TPC/IP Ethernet, página 148

Error de ejecución
Para obtener una lista de todos los códigos y los valores de error del módulo,
consulte Extendido, página 426.

68 33002530 05/2010
CWRITE_REG

Tipos de datos derivados

Descripción de elementos para WordArr5 en Modbus Plus


Descripción de elementos para WordArr5 en Modbus Plus:

Elemento Tipo de datos Descripción


WordArr5[1] WORD Byte menos significativo:
El registro de ruta de acceso 1 se utiliza para
determinar la dirección (dirección de ruta de acceso
una de cinco) del participante de destino en una
transmisión de red.
El último byte en la ruta de acceso que no se
corresponda con cero es el participante de destino.
Byte más significativo:
dirección de participante de origen.
z posición de slot del módulo al utilizar el puerto
Modbus Plus en el módulo NOM.
z establecido en 0 al utilizar el puerto Modbus Plus
en la CPU (independientemente del slot de la
CPU).
WordArr5[2] WORD Registro de ruta de acceso 2
WordArr5[3] WORD Registro de ruta de acceso 3
WordArr5[4] WORD Registro de ruta de acceso 4
WordArr5[5] WORD Registro de ruta de acceso 5

Descripción de elementos para WordArr5 en Ethernet TCP/IP


Descripción de elementos para WordArr5 en Ethernet TCP/IP

Elemento Tipo de datos Descripción


WordArr5[1] WORD Byte menos significativo:
índice de asignación MET (transportador de MBP por
Ethernet)
Byte más significativo:
slots del módulo NOE
WordArr5[2] WORD Byte 4 (MSB) de la dirección IP de 32 bits de destino
WordArr5[3] WORD Byte 3 de la dirección IP de 32 bits de destino
WordArr5[4] WORD Byte 2 de la dirección IP de 32 bits de destino
WordArr5[5] WORD Byte 1 (LSB) de la dirección IP de 32 bits de destino

33002530 05/2010 69
CWRITE_REG

Descripción de elementos para WordArr5 en Ethernet SY/MAX


Descripción de elementos para WordArr5 en Ethernet SY/MAX

Elemento Tipo de datos Descripción


WordArr5[1] WORD Byte menos significativo:
índice de asignación MET (transportador de MBP por
Ethernet)
Byte más significativo:
slot del módulo NOE
WordArr5[2] WORD Número de estación de destino (o establecer en FF
hex)
WordArr5[3] WORD Terminador (establecer en FF hex)
WordArr5[4] WORD Sin significado
WordArr5[5] WORD Sin significado

70 33002530 05/2010
CWRITE_REG

Modo de funcionamiento

Modo de funcionamiento del bloque CWRITE_REG


Se puede programar un gran número de bloques de función CWRITE_REG, pero
sólo pueden estar activas cuatro operaciones de escritura al mismo tiempo. En este
caso, no tiene importancia si dichas operaciones se realizan por medio de este
bloque de función u otros (p. ej. MBP_MSTR, MSTR o WRITE_REG). Todos los
bloques de función emplean una ruta de transacción de datos y necesitan varios
ciclos para completar una orden.
Si se utilizan varios bloques de función CWRITE_REG en una aplicación, hay que
diferenciarlos al menos en los valores de los parámetros NO_REG o REG_WRIT.
NOTA: La comunicación TCP/IP entre un autómata Quantum (NOE 211 00) y un
autómata Momentum (todas las CPU TCP/IP y todos los módulos de E/S TCP/IP)
sólo es posible cuando en cada ciclo del autómata únicamente se lleva a cabo una
orden de escritura o de lectura. Si se envían varias órdenes por cada ciclo del
autómata, la comunicación permanece estancada, sin generar ningún mensaje de
error en el registro de estado del bloque de función.
La información de acceso completa está incluida en la estructura de datos
WordArr5 de la entrada ADDRFLD. El tipo del bloque de función conectado a esta
entrada se orienta de acuerdo con la red utilizada.
Utilice:
z El bloque de función ModbusP_ADDR para Modbus Plus.
z El bloque de función TCP_IP_ADDR para Ethernet TCP/IP.
z El bloque de función SYMAX_IP_ADDR para Ethernet SY/MAX.

NOTA: La estructura de datos WordArr5 también se puede utilizar con constantes.


NOTA: Este bloque de función supone una gran carga para la red; por lo tanto, se
debe vigilar atentamente la carga de la red. En caso de que la carga de la red sea
demasiado alta, hay que repasar de nuevo la lógica del programa para poder
trabajar con el bloque de función WRITE_REG, una variación de este bloque de
función que no trabaja en modo continuo, sino controlado por comandos.

33002530 05/2010 71
CWRITE_REG

Descripción de los parámetros

SLAVEREG
Comienzo del área en el slave direccionado donde se van a escribir los datos de
origen. El área de destino se encuentra siempre dentro del área del rango de
direcciones %MW.
NOTA: Para slaves de un PLC que no sea Unity Pro:
Esta área de destino siempre se encuentra dentro del área de registro 4x.
SLAVEREG espera la dirección de destino como offset dentro del área 4x. El "4" de
la izquierda no se tiene en cuenta (p. ej. 59 (contenido de las variables o valor del
literal) = 40059).
El parámetro se puede indicar como dirección, Located Variable, Unlocated
Variable o literal.

NO_REG
Número de registros que deben escribirse en el procesador slave (1 a 100). El
parámetro se puede indicar como dirección, Located Variable, Unlocated Variable
o literal.

STATUS
En caso de que se produzca un error al ejecutar la función, el código de error
permanecerá en esta salida durante un ciclo.
Para código de error, consulte:
z Códigos de error de Modbus Plus, SY/MAX y Ethernet TCP/IP, página 141
z Códigos de error específicos de SY/MAX, página 146
z Códigos de error de TPC/IP Ethernet, página 148

El parámetro se puede indicar como dirección, Located variable o Unlocated


variable.

REG_WRIT
Para este parámetro se debe definir una matriz (ARRAY) del tamaño del envío
deseado (≥ NO_REG). El nombre de esta matriz se transferirá como parámetro. Si
se define una matriz demasiado pequeña, sólo se transferirá la cantidad de datos
que tenga cabida en la matriz.
El parámetro se debe indicar como Located Variable.

72 33002530 05/2010
DATA_EXCH
33002530 05/2010

DATA_EXCH: intercambio de
datos entre aplicaciones
9
Objetivo
En este capítulo se describe la función DATA_EXCH.

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Descripción 74
Pantalla de entrada asistida 79
Ejemplo de cómo utilizar una red Fipway 81

33002530 05/2010 73
DATA_EXCH

Descripción

Descripción de la función
La función DATA_EXCH permite transferir datos de un dispositivo a otro con PLC
Premium y M340:
z emisión de datos,
z recepción de datos,
z emisión seguida de una recepción de datos.

NOTA:
El tipo de petición que se puede enviar depende del tipo de PLC:
z En PLC Modicon M340, esta función se puede utilizar para enviar peticiones
Modbus a otro dispositivo.
z En PLC Premium, esta función se puede utilizar para enviar peticiones UNI-TE o
Modbus a otro dispositivo. Para ello, es necesario asegurarse de que los datos
enviados constituyen la totalidad de la trama necesaria para el protocolo
utilizado.
Pueden configurarse los parámetros adicionales EN y ENO.

Representación en FBD
Representación:

74 33002530 05/2010
DATA_EXCH

Representación en LD
Representación:

Representación en IL
Representación:
Dirección LD
DATA_EXCH Action, Data_to_Send, Management_Param,
Received_Data

Representación en ST
Representación:
DATA_EXCH(Address, Action, Data_to_Send, Management_Param,
Received_Data);

33002530 05/2010 75
DATA_EXCH

Descripción de parámetros
En la siguiente tabla se describen los parámetros de entrada:

Parámetro Tipo Comentario


Address ARRAY [0.. 5] OF Dirección de la entidad de destino del intercambio. Si
INT para el parámetro Acción es del tipo emisión/recepción,
Premium las direcciones de difusión están prohibidas.
ARRAY [0.. 7] OF Para PLC Premium:
INT para z Debe utilizarse la función ADDR.
Modicon M340 Para PLC Modicon M340:
z Debe utilizarse la función ADDM.
z La entidad de destino del intercambio es una
matriz de 8 palabras: %MWx:8.
%MWx:8: Inicializada por medio del bloque de
conversión ADDM.
%MW0:8:=ADDM(‘0.3.0.0’)
Action INT Tipo de acción que se va a realizar.
Para PLC Premium, los valores posibles son:
z 1: Emisión seguida de recepción en espera (esta
acción no puede efectuarse en Uni-Telway
esclavo).
z 2: Emisión simple.
z 3: Modo de recepción.

Para PLC Modicon M340, el valor posible es:


z 1: emisión seguida de recepción en espera.

Data_to_Send ARRAY [n... m] Tabla de enteros que se enviará al dispositivo de


OF INT destino de la petición.
Advertencia: Debe tener, como mínimo, una
longitud de 1 elemento, aunque no haya datos que
enviar (por ejemplo, código 3 para esta acción).
Nota: Antes del inicio de la función y para que ésta
se ejecute correctamente, la longitud de los datos
que se van a emitir (en número de bytes) debe estar
asignada a la cuarta palabra de la tabla de gestión.

76 33002530 05/2010
DATA_EXCH

En la siguiente tabla se describen los parámetros de entrada/salida:

Parámetro Tipo Comentario


Management_Param ARRAY [0... 3] OF Tabla de gestión de intercambio
INT (véase página 33).
En PLC Modicon M340, existe un bit de
cancelación disponible en la palabra de rango 1
de la tabla de gestión de intercambio.
La palabra de rango 1 consta de 2 bytes:
z Byte más significativo: número de
intercambio.
z Byte menos significativo: bit de actividad
(rango 0) y bit de cancelación (rango 1).
La EF DATA_EXCH puede anularse mediante la
CANCEL EF o poniendo en 1 el bit de
cancelación de la tabla de gestión
(véase Modicon M340 con Unity Pro, Conexión
serie, Manual del usuario).

En la siguiente tabla se describen los parámetros de salida:

Parámetro Tipo Comentario


Received_Data ARRAY [n... m] Tabla de enteros que contiene los datos
OF INT recibidos durante el modo de recepción o una
acción de emisión/recepción.
Advertencia: incluso si la acción es una simple
emisión, la tabla Received_Data debe existir
y tener un tamaño mínimo de 1.
Nota: el sistema escribe automáticamente el
tamaño de los datos recibidos (en número de
bytes) en la cuarta palabra de la tabla de
gestión (véase página 38).

Servicios de Modicon M340


En los PLC Modicon M340, el usuario puede codificar un protocolo privado y libre
para enviar cualquier petición Modbus. Ofrece la posibilidad de enviar o recibir una
cadena de bytes libre sobre soporte Modbus.
La EF DATA_EXCH se puede usar en todos los puertos de comunicaciones
excepto el puerto CANopen. Las limitaciones de la longitud de SendBuffer vienen
dadas por las características del puerto de destino.
En la tabla siguiente se indica la longitud de todos los puertos de comunicaciones:

Puerto Longitud
Ethernet (NOE o puerto incorporado) 1 kb
Modbus 256 bytes

33002530 05/2010 77
DATA_EXCH

La longitud del mensaje que se va a enviar o recibir se indica en la cuarta palabra


de la tabla de gestión (véase página 38).
El bloque de conversión ADDM se utiliza para indicar el destino de la petición.
Véase la función ADDM.
NOTA: Se debe especificar la palabra clave TCP.MBS al utilizar la EF DATA_EXCH
para comandos Modbus sobre Ethernet.
No se admite ninguna otra entidad de Ethernet. La EF DATA_EXCH no gestiona
directamente una conexión sobre TCP.
Para el protocolo de usuario abierto sobre Modbus, se acepta la sintaxis siguiente:
z bastidor.módulo: servidor de módulo
z bastidor.módulo.canal.dispositivo.MBS: protocolo Modbus
z bastidor.módulo.canal.dispositivo: protocolo de usuario

Ejemplo de servicio de Modicon M340


Objetivo: escribir en un único registro %MW100, longitud = 5
(* PETICIÓN ESCRITURA ÚNICO REGISTRO %MW100 Longitud := 5 *)
(* Data_to_send = codificación de petición Modbus *)
(* Byte 1 = dirección de registro superior = 0; Byte 0 = código de función = 06 *)
Data_to_Send[0] = 6;
(* Byte 3 = valor de registro superior; Byte 2 = dirección de registro inferior = 100 *)
Data_to_Send[1] := (RegisterValue & 16#FF00) + 100;
(* Byte 5 = no se utiliza; Byte 4 = valor de registro inferior)
Data_to_Send[2] = RegisterValue & 16#FF;
IF ((Management_Param[ACTIVITY] & 1) = 0 ) THEN
Management_Param[LENGTH] := 5; (* LONGITUD PET ESCRITURA *)
DATA_EXCH (ADDM('0.0.0.1'), 1, Data_To_Send, Management_Param,
Received_Data);
END_IF;
NOTA: El bus Modbus es BIG-ENDIAN y las palabras P-UNIT son LITTLE-
ENDIAN. Para algunas peticiones, es necesario llevar a cabo una conversión.
Se puede utilizar la instrucción ROL:
Value_read := ROL(Received_Data[1], 8); (* CONVERTIR BIG/LITTLE ENDIAN *)

78 33002530 05/2010
DATA_EXCH

Pantalla de entrada asistida

Presentación
Para esta función de comunicación, puede solicitar la pantalla de entrada asistida.
Tenga en cuenta que la pantalla de entrada asistida no está disponible para
Modicon M340.
NOTA: Los símbolos de variable se aceptan en los diferentes campos de la
pantalla.

Ilustración
La pantalla siguiente muestra una pantalla de entrada asistida de la función:

Dirección
Para PLC Premium, los tipos de objetos posibles son los siguientes:
z ADDR(STRING),
z ARRAY [0..5] OF INT.
NOTA: Si introduce un valor directamente en un campo, el botón de entrada de
dirección asistida se vuelve gris.

Modo
Las opciones posibles son las siguientes:
z 1: intercambio,
z 2 : transmisión,
z 3 : recepción.
NOTA: Si utiliza el campo de entrada en lugar del menú, puede introducir una
variable de tipo INT, esté o no localizada.

33002530 05/2010 79
DATA_EXCH

Datos para enviar


La variable para la transmisión es una matriz de enteros. La matriz puede
localizarse o no.

Datos para recibir


El área de recepción es una matriz de cuatro enteros, que puede o no localizarse.
El tamaño de la matriz depende del número de objetos que se van a recibir.

Informe
El informe es una matriz de cuatro enteros, que puede o no localizarse.
NOTA: Tenga cuidado de no utilizar varias áreas de memoria idénticas para las
tablas de informes; de lo contrario, la función de lectura de variables podría no
funcionar.

80 33002530 05/2010
DATA_EXCH

Ejemplo de cómo utilizar una red Fipway

Presentación
Supongamos que deseamos que dos estaciones de PLC se comuniquen mediante
una red Fipway. La estación 1 debe enviar los datos (20 bytes ubicados en
%MW70:10) a la estación 2, que los recibe en una tabla ubicada en %MW80:10.
Cada PLC cuenta con una tabla de gestión que comienza con la dirección %MW90.
Para la estación 1, la palabra %MW93 debe contener la longitud de los datos que se
van a enviar, o 20 (se van a enviar diez palabras).
Para la estación 2, la palabra %MW93 se define en 0 antes del intercambio, con el fin
de ver el número de caracteres recibidos al final del intercambio.
La función DATA_EXCH requiere que los dos PLC estén programados, uno para
enviar y el otro para recibir.

Ilustración
Las dos estaciones se conectan mediante una red Fipway:

Transmisión programada en la estación 1


Programación en ST:

SI RE(%I0.3.2) Y NO %MW90.0 ENTONCES


(* inicialización de los datos para enviar *)
%MW93:= 20;
(* función de comunicación *)
DATA_EXCH(ADDR(’{20.2}APP’),2,%MW70:10,%MW90:4,%MW80:1);
END_IF;

33002530 05/2010 81
DATA_EXCH

Parámetros de petición:

Parámetros Descripción
ADDR(‘{20.2}APP’) z 20 : red
z 2 : estación
z APP: aplicación de la estación 2

2 Tipo de comunicación: transmisión


%MW70:10 Datos para enviar
%MW90:4 Tabla de gestión
%MW80:1 Área de recepción para respuestas. Aquí no hay datos que
recibir. No obstante, se debe reservar una palabra (obligatorio).

Recepción programada en la estación 2


SI RE(%I0.3.4) Y NO %MW90.0 ENTONCES
(* inicialización de los datos para recibir *)
%MW93:= 0;
(* función de comunicación *)
DATA_EXCH(ADDR(’{20.1}APP’),3,%MW70:1,%MW90:4,%MW80:10);
END_IF;

Parámetros de petición:

Parámetros Descripción
ADDR(‘{20.1}APP’) z 20 : red
z 1 : estación
z APP: aplicación de la estación 1

3 Tipo de comunicación: recepción


%MW70:1 Datos para enviar. Aquí no hay ningún dato. No obstante, se debe
reservar una palabra.
%MW90:4 Tabla de gestión
%MW80:10 Zona de recepción: se proporcionan diez palabras de la estación 1.

82 33002530 05/2010
INPUT_BYTE
33002530 05/2010

INPUT_BYTE: recepción de
cadenas de caracteres
10
Descripción

Descripción de las funciones


INPUT_BYTE se utiliza para enviar una solicitud de lectura de una matriz de bytes
a un módulo de comunicación de modalidad de caracteres. El mensaje recibido se
almacena en una matriz de bytes.
NOTA: En general, INPUT_BYTE proporciona las mismas funciones que
INPUT_CHAR, pero permite pasar una tabla de bytes en vez de una cadena como
parámetro de salida. Debido a esto, es posible leer un valor de byte 0 (NULL) en un
flujo de bytes desde un puerto serie.
Para PLC Premium, esta función se utiliza para recibir hasta 4 Kbytes (120 bytes
para el puerto de terminal).
Para PLC Modicon M340 esta función se utiliza para recibir hasta 1.024 bytes.
Existen dos posibilidades exclusivas disponibles:
z Lectura de un número de bytes: no debe configurarse ninguna condición.
z Lectura de un mensaje: debe configurarse una condición de detención en la
pantalla de configuración.
Pueden configurarse los parámetros adicionales EN y ENO.

Representación FBD
Representación:

33002530 05/2010 83
INPUT_BYTE

Representación LD
Representación:

Representación IL
Representación:
Dirección LD
INPUT_BYTE Reset, Buffer_Length, Management_Param,
Received_Data

Representación ST
Representación:
INPUT_BYTE(Address, Reset, Buffer_Length, Management_Param,
Received_Data);

84 33002530 05/2010
INPUT_BYTE

Descripción de parámetros
La tabla siguiente describe los parámetros de entrada:

Parámetro Tipo Comentario


ADR ARRAY [0.. 5] Para PLC Premium:
OF INT para z La función ADDR proporciona la dirección del canal de
PLC Premium recepción del mensaje en modalidad de caracteres.
ARRAY [0.. 7] z Sólo son posibles las direcciones que terminan en
OF INT para SYS (por ejemplo, el puerto de terminal del
PLC Modicon procesador 0.0.0.SYS).
M340
Para PLC Modicon M340:
z La función ADDM proporciona la dirección del canal de
recepción del mensaje en modalidad de caracteres.
z La sintaxis de la dirección es del tipo ADDM
(‘r.m.c.node’). Asiento es un campo opcional
que puede ser SYS o estar vacío (por ejemplo,
ADDM(‘0.0.0.SYS’) es igual a ADDM(‘0.0.0’)).
RAZ INT Restablecer. Este parámetro se utiliza para restablecer
la memoria de recepción del acoplador.
z Valor = 0: sin restablecimiento de memoria.
z Valor = 1: restablecimiento de memoria.

Nota: Para las comunicaciones de puerto de terminal de


PLC Premium, el valor debe ser 1.
Nota: En PLC Modicon M340, la EF INPUT_CHAR
puede programarse con este parámetro o sin él.
NB INT Longitud del búfer o número de bytes que van a
recibirse.
z Valor = 0: lectura del mensaje en cuanto esté
disponible en el canal. Aquí, debe especificarse una
condición de detención en la pantalla de
configuración.
z Valor mayor que 0: especifica el búfer o número de
bytes que van a leerse.
Nota: Para las comunicaciones de puerto de terminal de
PLC Premium, 0 es el único valor permitido. Aquí, el
carácter de fin del mensaje predeterminado es un
retorno de carro (CR).

33002530 05/2010 85
INPUT_BYTE

En la siguiente tabla, se describen los parámetros de entrada/salida:

Parámetro Tipo Comentario


GEST ARRAY [0.. 3] Tabla de gestión de intercambio (véase página 33).
OF INT Sólo en los PLC Modicon M340, hay un bit de
cancelación disponible.
El bit de cancelación está ubicado en la palabra 1 del
rango de la tabla de gestión de intercambio y consta de
2 bytes:
z Byte de mayor valor: número de intercambio.
z Byte de menor valor: bit de actividad (rango 0) y bit
de cancelación (rango 1).
El bloque de funciones INPUT_CHAR puede cancelarse
mediante el bloque de funciones CANCEL o
estableciendo en 1 el bit de cancelación de la tabla de
gestión; consulte también Cancelación de un
intercambio (véase Modicon M340 con Unity Pro,
Conexión serie, Manual del usuario).

La tabla siguiente describe los parámetros de salida:

Parámetro Tipo Comentario


RECP ARRAY OF BYTE Bytes recibidos. Se almacenan en una matriz deBYTES.

Normas de programación
Cuando se inician varias INPUT_BYTE simultáneamente, el parámetro Reset debe
establecerse en 0 (memoria de recepción del módulo no restablecida).
Puede solicitarse el restablecimiento de la memoria del módulo en el próximo
mensaje para evitar la recepción de datos antiguos.
Cuando el parámetro Reset está establecido en 1, la función INPUT_BYTE debe
iniciarse antes del envío de datos.
En PLC Premium, son necesarios varios ciclos de PLC para recibir una cadena de
bytes de más de 240 bytes (la cadena está fragmentada). Por tanto, es importante
asegurarse de que no se modifiquen los datos de gestión durante el procesamiento
de la función. El sistema recibe la cadena coherentemente en varios fragmentos.
En PLC Modicon M340, sólo es necesario un ciclo de PLC para recibir una cadena
de bytes de una longitud máxima de 1.024 bytes. Por ello, es importante asegurarse
de que no se modifiquen los datos de gestión durante el procesamiento de la
función.
El puerto serie del PLC Modicon M340 es dúplex completo, por lo que es posible
enviar una función PRINT_CHAR, incluso si se ha enviado una función INPUT_CHAR
y todavía está pendiente.

86 33002530 05/2010
INPUT_CHAR
33002530 05/2010

INPUT_CHAR: recepción de
cadenas de caracteres
11
Objetivo
En este capítulo se describe la función INPUT_CHAR.

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Descripción 88
Pantalla de entrada asistida 93
Ejemplo de lectura de cadenas de caracteres a través de la red Fipway 95
Ejemplo de lectura de cadenas de caracteres mediante la conexión serie de 97
procesadores Modicon M340

33002530 05/2010 87
INPUT_CHAR

Descripción

Descripción de la función
La función INPUT_CHAR se emplea para enviar una petición de lectura de cadena
de caracteres a un módulo de comunicación de modalidad de caracteres (esperar
la recepción de las cadenas de caracteres). El mensaje recibido se almacena en
una cadena de caracteres.
Para PLC Premium, esta función se utiliza para recibir hasta 4 Kbytes (120 bytes
para el puerto de terminal).
Para PLC Modicon M340 esta función se utiliza para recibir hasta 1.024 bytes.
Existen dos posibilidades exclusivas disponibles:
z Lectura de un número de caracteres: no debe configurarse ninguna condición.
z Lectura de un mensaje: debe configurarse una condición de detención en la
pantalla de configuración.
Los parámetros adicionales EN y ENO se pueden configurar.

Representación en FBD
Representación:

88 33002530 05/2010
INPUT_CHAR

Representación en LD
Representación:

Representación en IL
Representación:
Dirección LD
INPUT_CHAR Reset, String_Length, Management_Param,
Received_Data

Representación en ST
Representación:
INPUT_CHAR(Address, Reset, String_Length, Management_Param,
Received_Data);

33002530 05/2010 89
INPUT_CHAR

Descripción de parámetros
En la siguiente tabla se describen los parámetros de entrada:

Parámetro Tipo Comentario


Dirección ARRAY [0.. 5] OF Las instrucciones siguientes sólo son válidas para
INT para PLC PLC Premium:
Premium z La función ADDR proporciona la dirección del
ARRAY [0.. 7] OF canal de recepción del mensaje en modalidad de
INT para PLC caracteres.
Modicon M340 z Únicamente las direcciones que acaban en SYS
son posibles (por ejemplo: puerto de terminal del
procesador 0.0.0.SYS).
Las instrucciones siguientes sólo son válidas para
PLC Modicon M340:
z La función ADDM proporciona la dirección del
canal de recepción del mensaje en modalidad de
caracteres.
z La sintaxis de la dirección es del tipo ADDM
(‘r.m.c.asiento’). Nodo es un campo opcional que
puede ser SYS o estar vacío (por ejemplo,
ADDM(‘0.0.0.SYS’) es igual a ADDM(‘0.0.0’).
Reset INT Restablecer. Este parámetro se utiliza para
restablecer la memoria de recepción del acoplador.
z Valor = 0: sin restablecimiento de memoria.
z Valor = 1: restablecimiento de memoria.

NOTA: Para las comunicaciones de puerto de


terminal de PLC Premium, el valor debe ser 1.
NOTA: En PLC Modicon M340, la EF INPUT_CHAR
puede programarse con este parámetro o sin él.
String_Length INT Longitud de la cadena de caracteres o número de
caracteres que deben recibirse.
z Valor = 0: lectura del mensaje en cuanto esté
disponible en el canal. Debe especificarse en
este campo una condición de detención en la
pantalla de configuración.
z Valor mayor que 0: especifica el número de
caracteres que deben leerse.
NOTA: Para las comunicaciones de puerto de
terminal de PLC Premium, 0 es el único valor
permitido. Aquí, el carácter de fin del mensaje
predeterminado es un retorno de carro (CR).

90 33002530 05/2010
INPUT_CHAR

En la siguiente tabla se describen los parámetros de entrada y salida:

Parámetro Tipo Comentario


Management_Param ARRAY [0.. 3] OF Tabla de gestión de intercambio
INT (véase página 33).
Únicamente en PLC Modicon M340, existe un
nuevo bit de cancelación disponible en la
palabra de rango 1 de la tabla de gestión de
intercambio.
Este bit de cancelación se encuentra ubicado
en la palabra de rango 1, que consta de 2 bytes:
z Byte más significativo: número de
intercambio
z Byte menos significativo: bit de actividad
(rango 0) y bit de cancelación (rango 1).
La EF INPUT_CHAR puede anularse mediante
la EF CANCEL o estableciendo en 1 el bit de
cancelación de la tabla de gestión
(véase Modicon M340 con Unity Pro, Conexión
serie, Manual del usuario).

En la siguiente tabla se describen los parámetros de salida:

Parámetro Tipo Comentario


Received_Data STRING Cadena recibida. Posteriormente se almacena
en una cadena de caracteres.

Reglas de programación
Cuando se inician varias INPUT_CHAR simultáneamente, el parámetro Reset debe
establecerse en 0 (memoria de recepción del módulo no restablecida).
Puede solicitarse el restablecimiento de la memoria del módulo en el próximo
mensaje para evitar la recepción de datos antiguos.
Cuando el parámetro Reset se pone a 1, la función INPUT_CHAR debe iniciarse
antes del envío de datos.
En PLC Premium, son necesarios varios ciclos de PLC para recibir una cadena de
caracteres de más de 240 bytes (la cadena está fragmentada). Por tanto, es
importante asegurarse de que no se modifiquen los datos de gestión durante el
procesamiento de la función. El sistema recibe la cadena coherentemente en varios
fragmentos.
En PLC Modicon M340, sólo es necesario un ciclo de PLC para recibir una cadena
de caracteres de una longitud máxima de 1.024 bytes. Por ello, es importante
asegurarse de que no se modifiquen los datos de gestión durante el procesamiento
de la función.

33002530 05/2010 91
INPUT_CHAR

El puerto serie del PLC Modicon M340 es dúplex completo, por lo que es posible
enviar una función PRINT_CHAR, incluso si se ha enviado una función INPUT_CHAR
y todavía está pendiente.
Es posible iniciar la función INPUT_CHAR antes de terminar los caracteres en el
PLC.
Si se utilizan los caracteres de terminación, en caso de que en el búfer haya muchos
de estos caracteres y de que no se haya restablecido el búfer, cada función
INPUT_CHAR recibe la cadena de inicio del búfer hasta alcanzar el primer carácter
de terminación y, a continuación, el búfer se elimina de los caracteres de lectura.
Funciona igual al leer un número de caracteres.
Si los caracteres de terminación están configurados, puede utilizarse la función de
número de caracteres.
NOTA: Gestión de RTS/CTS: En la comunicación en modalidad de caracteres, al
utilizar EF INPUT_CHAR, los caracteres recibidos en la conexión de serie se
almacenan en un búfer de anillo. El tamaño de este búfer es 1.024. Cuando el búfer
está lleno, los demás caracteres se pierden. Para evitar esta pérdida de caracteres,
puede seleccionar la gestión de RTS/CTS. En este caso, cuando el búfer de anillo
está casi lleno, la CPU restablece su señal RTS para detener el envío de
caracteres.

ADVERTENCIA
PÉRDIDA DE DATOS
Al utilizar la gestión de RTS/CTS, la cantidad máxima de caracteres permitidos de
una cadena que va a enviar el equipo remoto es 1.000 (incluido el carácter de fin).
Si se envía una cadena de más de 1.000 caracteres (por ejemplo, 1.013), el RTS
sólo permitirá la recepción de los 1.000 primeros caracteres, mientras que la
función INPUT_CHAR esperará indefinidamente la recepción del carácter de fin
(en caso de que no se haya definido ningún timeout con la función).
Si no se siguen estas instrucciones pueden producirse lesiones personales
graves o mortales o daños en el equipo.

NOTA: Si desea enviar una cadena de más de 1.000 caracteres (1.013, por
ejemplo), deberá enviar la cadena dos veces, la primera con los primeros 1.000
caracteres y la segunda con los 13 restantes, por ejemplo.

92 33002530 05/2010
INPUT_CHAR

Pantalla de entrada asistida

Presentación
Para esta función de comunicación, puede solicitar la pantalla de entrada asistida.
Tenga en cuenta que la pantalla de entrada asistida no está disponible para
Modicon M340.
NOTA: Los símbolos de variable se aceptan en los diferentes campos de la
pantalla.

Ilustración
La pantalla siguiente muestra un ejemplo de la pantalla de entrada asistida de la
función:

Dirección
Para PLC Premium, el tipo de objeto posible es el siguiente:
z ADDR(STRING).
z ARRAY [0..5] OF INT.
NOTA: Si introduce un valor directamente en un campo, el botón de entrada de
dirección asistida se vuelve gris.

33002530 05/2010 93
INPUT_CHAR

Resetear memoria del módulo


A continuación se indica la selección de tipo INT posible:
z Yes,
z No.
NOTA: Al seleccionar los botones Sí/No, inmediatamente se muestra el valor 1 ó 0.

Tipo de lectura
Los dos botones de opción seleccionan la modalidad de funcionamiento; esta
selección debe realizarse de acuerdo con la configuración del canal utilizado.

Número de caracteres
Puede introducir un entero, en forma de variable o valor inmediato.

Cadena para recibir


El área de recepción es una variable de tipo STRING. El tamaño de esta variable es
una función del número de caracteres que se van a recibir. Esta variable debe
declararse antes de emplearse en esta pantalla.

Informe
El informe es una matriz de 4 enteros.
NOTA: Tenga cuidado de no utilizar varias áreas de memoria idénticas para las
tablas de informes; de lo contrario, la función de lectura de variables podría no
funcionar.

94 33002530 05/2010
INPUT_CHAR

Ejemplo de lectura de cadenas de caracteres a través de la red Fipway

Presentación
Desde una estación con una dirección de 1 en una red Fipway 20, es posible leer
una cadena de caracteres enviada por un terminal de visualización (pantalla y
teclado) conectado al puerto TER del PLC con una dirección de red de 20, estación
5.
Esta cadena de caracteres se almacena en la variable Str_1, la tabla de gestión
de la función de comunicación es %MW110:4.

Ilustración
Las dos estaciones se conectan a través de una red Fipway.

Programación
Programación en ST:

SI RE(%I0.3.6) Y NO %MW110.0 ENTONCES


INPUT_CHAR(ADDR(’{20.5}0.0.SYS’), 1, 0, %MW110:4, Str_1);
END_IF;

33002530 05/2010 95
INPUT_CHAR

Parámetros de petición:

Parámetros Descripción
ADDR(‘{20.5}0.0.0.SYS’) z {20.5} : red 20, estación 5
z 0 : bastidor
z 0 : módulo
z 0 : canal 0
z SYS: dirección de sistema (puerto de terminal)
1 Restablecer
0 Leer la cadena de caracteres completa
%MW110:4 Tabla de gestión
Str_1 Variable de tipo STRING que va a recibir el mensaje

96 33002530 05/2010
INPUT_CHAR

Ejemplo de lectura de cadenas de caracteres mediante la conexión serie de


procesadores Modicon M340

Presentación
Imagine que desea leer una cadena de caracteres enviada por un terminal de
entrada/visualización de datos conectado a una puerto serie del procesador
Modicon M340.
Esta cadena de caracteres se almacena en la variable Str, la tabla de gestión de
la función de comunicación es gestion.

Ilustración
Un PLC Modicon M340 está conectado a un terminal de entrada/visualización de
datos TM8501:

Programación
Programación en ST:

SI (%M15) ENTONCES
INPUT_CHAR(ADDM(’0.0.0’), 1, 0, gestion, Str);
END_IF;

33002530 05/2010 97
INPUT_CHAR

Parámetros de petición:

Parámetros Descripción
ADDM(‘0.0.0’) z 0 : bastidor
z 0 : módulo
z 0 : canal 0
z SYS: dirección del sistema (opcional en los PLC Modicon M340)
1 Restablecer
0 Leer la cadena de caracteres completa
gestion Tabla de gestión
Str Variable de tipo STRING que va a recibir el mensaje

98 33002530 05/2010
MBP_MSTR
33002530 05/2010

MBP_MSTR: Maestro Modbus


Plus
12
Introducción
En este capítulo se describe el bloque MBP_MSTR.

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Descripción del bloque 101
Códigos de función de operación 104
Estructuras de bloque de control de red 105
Leer datos 108
Escribir datos 110
Obtener estadísticas locales 112
Eliminación de estadísticas locales 114
Escritura de datos globales 115
Lectura de datos globales 116
Obtener estadísticas remotas 117
Borrar estadísticas remotas 119
Funcionamiento de Peer Cop 120
Restablecimiento de módulos opcionales 121
Lectura de CTE 122
Escritura de CTE 124
Envío de correo electrónico 126
Leer/escribir datos 128
Estado de funcionamiento de las comunicaciones Peer Cop 130
Estadísticas de red Modbus Plus 132
Estadísticas de red de Ethernet TCP/IP 138
Códigos de error de Modbus Plus, SY/MAX y Ethernet TCP/IP 141

33002530 05/2010 99
MBP_MSTR

Apartado Página
Códigos de error específicos de SY/MAX 146
Códigos de error de TPC/IP Ethernet 148
Códigos de error CTE para Ethernet SY/MAX y TCP/IP 152
Códigos de error del servicio de correo 153

100 33002530 05/2010


MBP_MSTR

Descripción del bloque

Descripción de funciones
Puede seleccionar una de las 14 operaciones de comunicación de red disponibles
(véase página 104) mediante el bloque de funciones MBP_MSTR.
En función del protocolo de comunicaciones que se esté utilizando, se puede
disponer de hasta 16 bloques de funciones MBP_MSTR activos al mismo tiempo.
z Modbus Plus admite hasta cuatro bloques al mismo tiempo.
z Ethernet TCP/IP admite hasta 16 bloques al mismo tiempo.

Todos los bloques de funciones utilizan una ruta de transacciones de datos y


necesitan varios ciclos para completar una operación.
EN y ENO pueden configurarse como parámetros adicionales.
NOTA: Deberá estar familiarizado con los procedimientos de enrutamiento de su
red cuando programe un bloque de funciones MBP_MSTR. La descripción detallada
de las estructuras de ruta de acceso Modbus Plus se encuentra en la Guía de
instalación y planificación de la red Modbus Plus. En el caso de que se implemente
la ruta de acceso de Ethernet TCP/IP o SY/MAX, se deberán utilizar los productos
estándar de ruta de acceso de Ethernet-IP. Puede obtener una descripción
completa del enrutamiento TCP/IP en la Guía de usuario de configuración de
Quantum con Unity Pro TCP/IP.
NOTA: En las secciones FBD y LD, este bloque de funciones puede utilizarse en el
nivel de programa y con bloques de funciones derivados (DFB). Al utilizar los DFB,
los parámetros CONTROL y DATABUF deben conectarse directamente a los pines de
E/S de los DFB.
NOTA: Una comunicación TCP/IP entre un PLC Quantum y un PLC Momentum
sólo es posible cuando sólo se lleva a cabo una tarea de lectura o escritura en cada
ciclo. Si se envían varias tareas por ciclo de PLC, la comunicación se detiene sin
generar un mensaje de error en el registro de estado del bloque de funciones.
Ejemplo:
z Puede enviar MBP_MSTR.Enable:=(HSBY_NOEPLCMSTR_ON) AND
(%SW61.1) AND NOT (%SW61.0)
o bien
z Puede crear una variable booleana primary_state:=(%SW61.1) AND NOT
(%SW61.0), e insertarla para ejecutar la sección
NOTA: Para evitar la anterior CPU del controlador Standby, que ha cambiado su
estado de la ejecución de funciones de comunicación a RUN offline, debe añadir
una condición en los bits de estado para desactivar la función, si la CPU está offline.
NOTA: Se pueden utilizar varias copias de este bloque de funciones en el
programa. No obstante, no es posible instanciar estos ejemplares de forma múltiple.

33002530 05/2010 101


MBP_MSTR

Representación en FBD

Representación en LD

Parámetros de entrada

Parámetro Tipo de datos Descripción


ENABLE BOOL Cuando está en ON, la operación especificada en el
primer elemento del registro CONTROL se habilita.
ABORT BOOL Cuando está en ON, se cancela la operación activa
(véase página 104) en ese momento.

102 33002530 05/2010


MBP_MSTR

Parámetros de salida

Parámetro Tipo de datos Descripción


ACTIVE BOOL ON cuando la operación está activa.
ERROR BOOL Cuando está activado, la operación se cancela sin éxito.
SUCCESS BOOL Cuando está activado, la operación finaliza correctamente.
CONTROL WORD Este campo contiene el bloque de control. El primer
elemento CONTROL[1] contiene el número de código de
operación de la operación que se va a realizar
(véase página 104). El contenido del registro de secuencia
está determinado por la operación.
El campo de datos debe declararse como una variable
ubicada.
La estructura del bloque de control difiere en función de la
red utilizada (véase página 105).
DATABUF WORD Para las operaciones que proporcionan datos, por ejemplo,
una operación de escritura, el campo de datos es la
fuente de datos. Para las operaciones de recepción de
datos, por ejemplo, la operación de lectura, el campo de
datos es el destino de los datos.
Con las operaciones de lectura y escritura de
Ethernet CTE, el campo de datos conserva el contenido de
la tabla de ampliación de la configuración Ethernet.
DATABUF debe definirse como una matriz de al menos 10
elementos en este caso.
El campo de datos debe declararse como una variable
ubicada.

Error de ejecución
En caso de que surja un error durante una operación MBP_MSTR, aparecerá un
código de error hexadecimal en el registro CONTROL[2] del bloque de control para
un ciclo.
Los códigos de error de funciones son específicos de la red:
z Códigos de error de Ethernet Modbus Plus y SY/MAX (véase página 141)
z Códigos de error específicos de SY/MAX (véase página 146)
z Códigos de error de Ethernet TCP/IP (véase página 148)
z Códigos de error CTE para Ethernet SY/MAX y TCP/IP (véase página 152)
z Códigos de error de envío de correo electrónico (véase página 153)

NOTA: Para obtener una lista de todos los valores y códigos de error de los
bloques, consulte Tablas de códigos de error para la biblioteca de comunicación.

33002530 05/2010 103


MBP_MSTR

Códigos de función de operación

Códigos de función MBP_MSTR válidos


Mediante el bloque MBP_MSTR, puede activarse una de las 14 operaciones de
comunicación de red disponibles a través de la red. Cada operación tiene un código
de función asignado a ella. La disponibilidad de las operaciones específicas
depende del tipo de red y de módulo que se esté utilizando.

Código de Operación Modbus Ethernet Ethernet


función Plus TCP/IP SY/MAX
1 Escribir datos X X X
2 Leer datos X X X
3 Obtener estadísticas locales X X -
4 Eliminar estadísticas locales X X -
7 Obtener estadísticas remotas X X -
8 Borrar estadísticas remotas X X -
(véase página 119)
10 Restablecer módulo opcional - X X
11 Leer CTE (ampliación de configuración) - X X
12 Escribir CTE (ampliación de configuración) - X X
13 Enviar correo electrónico (véase página 126) - X -
23 Leer/escribir datos (véase página 128) - X -

donde:
z X indica Sí
z - indica No

104 33002530 05/2010


MBP_MSTR

Estructuras de bloque de control de red

Resumen
La estructura de bloque de control MBP_MSTR varía en función del tipo de red que
se está utilizando. Las estructuras para Modbus Plus, Ethernet TCP/IP y Ethernet
SyMax se describen a continuación.

Bloque de control de Modbus Plus

Registro Contenido
CONTROL[1] Indica una operación que es válida para Modbus Plus
CONTROL[2] Indica el estado de error
CONTROL[3] Indica la longitud, es decir, el número de unidades de datos transferidas,
(máx. 100)
CONTROL[4] Indica la información que depende de la operación MSTR
CONTROL[5] Registro de acceso 1: utilizado para especificar un nodo de destino
durante la transferencia de red (direcciones de la ruta de acceso de uno a
cinco).
Byte de mayor valor: dirección de nodo de origen, es decir, la slot del
módulo de opciones de red Modbus Plus (NOM).
Cuando utilice el puerto Modbus Plus en la CPU, este byte deberá
establecerse en 0 (independientemente de la ranura de la CPU).
Byte de menor valor: dirección de nodo de destino, es decir, un valor que
representa una dirección directa o de puente. Si no hay puente, este valor
contiene la dirección de asiento de destino. Si hay un puente, este valor
contiene la dirección del puente.
Si se inserta el NOM en la ranura 7 del bastidor de módulos, el byte de
mayor valor del registro de acceso 1 tiene el aspecto siguiente (valor
0x0706):

Byte de mayor valor Ranuras 1 – 16


Byte de menor valor Dirección de destino (valor binario entre 1 y 64
[normal] o 65 – 255 [ampliado])
CONTROL[6] Registro de acceso 2, la dirección de nodo de destino (módulos puente o
Modbus Plus más lejanos). Si ha finalizado el direccionamiento en el
registro de acceso anterior, el valor se establece en 0.

33002530 05/2010 105


MBP_MSTR

Registro Contenido
CONTROL[7] Registro de acceso 3, similar al registro de acceso 2.
CONTROL[8] Registro de acceso 4, similar al registro de acceso 2 (consulte Registro de
acceso 2).
CONTROL[9] Registro de acceso 5, similar al registro de acceso 2 (consulte Registro de
acceso 2).

Bloque de control para Ethernet TCP/IP

Registros Contenido
CONTROL[1] Indica una operación que es válida para TCP/IP.
CONTROL[2] Indica el estado de error
CONTROL[3] Indica la longitud, es decir, el número de unidades de datos transferidas,
(máx. 100)
CONTROL[4] Indica la información que depende de la operación MSTR
CONTROL[5] Registro de acceso: utilizado para especificar un nodo de destino durante
la transferencia de red.
Byte más significativo: dirección de nodo de origen, es decir, el slot NOE
para el módulo NOE.
Cuando utilice un Ethernet integrado en la CPU, este byte deberá
establecerse en 254 (FE hex) independientemente de la ranura de la CPU.
Byte de menor valor: dirección de nodo de destino, es decir, un valor que
representa una dirección directa o de puente. Si no hay puente, el valor en
el byte de menor valor se establece en 0. Si hay un puente, este valor
contiene el MBP para el índice de mapping Ethernet (MET).
Si se inserta el NOM en la ranura 7 del bastidor de módulos, y el índice de
asignación Ethernet (MET) es 6, el registro de acceso tiene el siguiente
aspecto (valor 0x0706):

Byte más significativo Slot 1 a 16


Byte menos significativo índice de mapping MET (transportador de
MBP por Ethernet).
CONTROL[6] Byte 4, MSB de la dirección IP de destino de 32 bits
CONTROL[7] Byte 3 de la dirección IP de destino de 32 bits
CONTROL[8] Byte 2 de la dirección IP de destino de 32 bits

106 33002530 05/2010


MBP_MSTR

Registros Contenido
CONTROL[9] Byte 1, LSB de la dirección IP de destino de 32 bits
CONTROL[10] Indica la información que depende de la operación MSTR
CONTROL[11] Indica la información que depende de la operación MSTR

NOTA: CONTROL[10] y CONTROL[11] se utilizan al configurar el bloque


MBP_MSTR para una operación de lectura o escritura de datos (código de
función 23).

Bloque de control para Ethernet SY/MAX

Registros Contenido
CONTROL[1] Indica una operación que es válida para SY/MAX.
CONTROL[2] Indica el estado de error
CONTROL[3] Indica la longitud, es decir, el número de registros transferidos (máx. 100)
CONTROL[4] Indica la información que depende de la operación MSTR
CONTROL[5] Registro de acceso: utilizado para especificar un nodo de destino durante
la transferencia de red.
Byte más significativo: dirección de nodo de origen, es decir, el slot para el
módulo NOE.
Byte menos significativo: dirección de nodo de destino, es decir, un valor
que representa una dirección directa o de puente. Si no hay puente, el
valor en el byte menos significativo se establece en 0. Si hay un puente,
este valor contiene el MBP para el índice de mapping Ethernet (MET).
Si se inserta el NOM en la ranura 7 del bastidor de módulos, y el índice de
mapping Ethernet (MET) es 6, el registro de acceso tiene el siguiente
aspecto (valor 0x0706):

Byte más significativo Slot 1 a 16


Byte menos significativo índice de mapping MET (transportador de
MBP por Ethernet).
CONTROL[6] Número de estación de destino (o establecido en FF hex)
CONTROL[7] Terminador (establecido en FF hex)

33002530 05/2010 107


MBP_MSTR

Leer datos

Significado
Una operación de lectura transfiere datos de un dispositivo origen esclavo
especificado a un dispositivo maestro de destino en la red. Utiliza una ruta de
transacciones de maestro y puede que necesite varios ciclos para completarse.
Para programar un bloque MBP_MSTR para que realice una operación de escritura,
utilice el código de función 2 (véase página 104).
NOTA: No intente programar un MBP_MSTR para leer su propia dirección de
estación. Esta acción hace que el bloque de funciones genere un error en el registro
CONTROL[2] del bloque de control (véase página 105).
Se puede realizar una operación de lectura en un registro esclavo no existente. El
esclavo detecta el estado y lo registra. Esto puede durar varios ciclos.

Implantación de red
La operación de lectura puede realizarse en las redes Modbus Plus, Ethernet
TCP/IP y Ethernet SY/MAX.

Uso del bloque de control de Modbus Plus

Registro Significado
CONTROL[1] 2 = leer datos
CONTROL[2] Indica el estado de error
CONTROL[3] Cantidad de registros que se debe leer del esclavo
CONTROL[4] Determina el registro de inicio %MW en el esclavo del que se leen los
datos, por ejemplo, 1 = %MW1, 49 = %MW49
CONTROL[5] Registro de acceso 1 se utiliza para especificar la dirección (dirección de
... ruta de acceso de 1 a 5) del nodo durante una transferencia de red.
CONTROL[9] El último byte de la ruta de acceso que no es 0 es el nodo de destino.

108 33002530 05/2010


MBP_MSTR

Uso del bloque de control para Ethernet TCP/IP

Registros Significado
CONTROL[1] 2 = leer datos
CONTROL[2] Indica el estado de error.
CONTROL[3] Cantidad de direcciones que se debe leer del esclavo
CONTROL[4] Determina el registro de inicio %MW en el esclavo del que se leen los
datos, por ejemplo, 1 = %MW1, 49 = %MW49
CONTROL[5] Registro de acceso:
Byte de mayor valor: ranura de módulo adaptador de red
Byte de menor valor: índice de mapping MET (transportador de MBP por
Ethernet).
CONTROL[6] Cada dirección contiene un byte de la dirección IP de 32 bits, donde MSB
... está en CONTROL[6] y LSB en CONTROL[9].
CONTROL[9]

Uso del bloque de control para Ethernet SY/MAX

Registros Significado
CONTROL[1] 2 = leer datos
CONTROL[2] Indica el estado de error.
CONTROL[3] Cantidad de direcciones que se debe leer del esclavo
CONTROL[4] Determina el registro de inicio %MW en el esclavo en el que se escriben
los datos, por ejemplo, 1 = %MW1, 49 = %MW49
CONTROL[5] Registro de acceso
Byte más significativo: slot de módulo adaptador de red
Byte de menor valor: número de estación de destino
CONTROL[6] Terminador: FF hex
...
CONTROL[9]

33002530 05/2010 109


MBP_MSTR

Escribir datos

Significado
Una operación de escritura transfiere datos de un dispositivo maestro de origen a
un dispositivo esclavo de destino especificado en la red. Utiliza una ruta de
transacciones de maestro y puede que necesite varios ciclos para completarse.
Para programar un bloque MBP_MSTR para que realice una operación de escritura,
utilice el código de función 1 (véase página 104).
NOTA: No intente programar un MBP_MSTR para escribir su propia dirección de
estación. Esta acción hace que el bloque de funciones genere un error en el registro
CONTROL[2] del bloque de control (véase página 105).
Se puede realizar una operación de escritura en un registro esclavo no existente. El
esclavo detecta el estado y lo registra. Esto puede durar varios ciclos.

Implantación de red
La operación de escritura puede realizarse en las redes Modbus Plus, Ethernet
TCP/IP y Ethernet SY/MAX.

Uso del bloque de control de Modbus Plus

Registro Significado
CONTROL[1] 1 = escribir datos
CONTROL[2] Indica el estado de error
CONTROL[3] Cantidad de direcciones enviadas al esclavo
CONTROL[4] Determina el registro de inicio %MW en el esclavo en el que se escriben
los datos, por ejemplo, 1 = %MW1, 49 = %MW49.
CONTROL[5] Registro de acceso 1 se utiliza para especificar la dirección (dirección de
... ruta de acceso de 1 a 5) del nodo durante una transferencia de red.
CONTROL[9] El último byte de la ruta de acceso que no es 0 es el nodo de destino.

110 33002530 05/2010


MBP_MSTR

Uso del bloque de control para Ethernet TCP/IP

Registros Significado
CONTROL[1] 1 = escribir datos
CONTROL[2] Indica el estado de error
CONTROL[3] Cantidad de direcciones enviadas al esclavo
CONTROL[4] Determina la dirección de inicio CONTROL[ ] del esclavo en el que se
escriben los datos
CONTROL[5] Registro de acceso
Byte de mayor valor: ranura de módulo adaptador de red
Byte de menor valor: índice de mapping MET (transportador de MBP por
Ethernet).
CONTROL[6] Cada dirección contiene un byte de la dirección IP de 32 bits.
...
CONTROL[7]

Uso del bloque de control para Ethernet SY/MAX

Registros Significado
CONTROL[1] 1 = escribir datos
CONTROL[2] Indica el estado de error
CONTROL[3] Cantidad de direcciones enviadas al esclavo
CONTROL[4] Determina el registro de inicio %MW en el esclavo en el que se escriben
los datos, por ejemplo, 1 = %MW1, 49 = %MW49.
CONTROL[5] Registro de acceso
Byte más significativo: slot de módulo adaptador de red
Byte de menor valor: número de estación de destino
CONTROL[6] Terminador: FF hex
...
CONTROL[9]

33002530 05/2010 111


MBP_MSTR

Obtener estadísticas locales

Descripción
Una operación Obtener estadísticas locales lee los datos del asiento local
en un ciclo y no necesita una ruta de transacción de maestro. Para programar un
bloque MBP_MSTR para Obtener estadísticas locales, utilice el código de
función 3 (véase página 104).

Implantación de red
Las operaciones Obtener estadísticas locales se pueden realizar en
redes Modbus Plus y Ethernet TCP/IP (véase página 138).

Uso del bloque de control para Modbus Plus

Registro Significado
CONTROL[1] 3 = obtener estadísticas locales
CONTROL[2] Indica el estado de error
CONTROL[3] Número de direcciones que se debe leer de las estadísticas locales (0...37)
Nota: databuf debe tener, como mínimo, el mismo tamaño que esta
entrada.
CONTROL[4] Primera dirección desde la que se debe leer la tabla de estadísticas
(Reg1=0)
CONTROL[5] Registro de acceso 1 se utiliza para especificar la dirección (dirección de
ruta de acceso de 1 a 5) del nodo durante una transferencia de red.
El último byte de la ruta de acceso que no es 0 es el nodo de destino.

112 33002530 05/2010


MBP_MSTR

Uso del bloque de control para Ethernet TCP/IP

Registro Significado
CONTROL[1] 3 = obtener estadísticas locales
CONTROL[2] Indica el estado de error
CONTROL[3] Número de direcciones que se debe leer de las estadísticas locales
(0...37)
Nota: databuf debe tener el mismo tamaño que esta entrada.
CONTROL[4] Primera dirección desde la que se debe leer la tabla de estadísticas
(Reg1=0)
CONTROL[5] Registro de acceso
Byte de mayor valor: ranura de módulo adaptador de red
CONTROL[6] No utilizados
...
CONTROL[9]

33002530 05/2010 113


MBP_MSTR

Eliminación de estadísticas locales

Significado
Una operación de eliminación de estadísticas locales borra los valores de las
palabras 13 - 22 en la tabla de estadísticas del nodo local. La operación se realiza
en un ciclo y no necesita una ruta de transacción de maestro. Para programar un
bloque MBP_MSTR para eliminar históricos locales, utilice el código de función 4
(véase página 104).

Implantación de red
La operación de eliminación de estadísticas locales puede realizarse en redes
Modbus Plus y Ethernet TCP/IP (véase página 138).

Uso del bloque de control de Modbus Plus

Registro Significado
CONTROL[1] 4 = eliminar estadísticas locales
CONTROL[2] Indica el estado de error.
CONTROL[3] Reservado
CONTROL[4] Reservado
CONTROL[5] Registro de acceso 1 se utiliza para especificar la dirección (dirección de
ruta de acceso de 1 a 5) del nodo durante una transferencia de red.
El último byte de la ruta de acceso que no es 0 es el nodo de destino.

Uso del bloque de control para Ethernet TCP/IP

Registro Significado
CONTROL[1] 4 = eliminar estadísticas locales
CONTROL[2] Indica el estado de error.
CONTROL[3] Reservado
CONTROL[4] Reservado
CONTROL[5] Registro de acceso
Byte de mayor valor: ranura de módulo adaptador de red
CONTROL[6] Reservado
...
CONTROL[9]

114 33002530 05/2010


MBP_MSTR

Escritura de datos globales

Significado
Una operación de escritura de datos globales transfiere datos al procesador de
comunicaciones del nodo actual; los datos pueden transmitirse por la red tan pronto
como el nodo recibe el token y, a continuación, los leen todos los nodos conectados
a la red local (véase página 116).
Una operación de escritura de datos globales se realiza en un ciclo y no necesita
una ruta de transacción de maestro. Para programar un bloque MBP_MSTR para
escribir datos globales, utilice el código de función 5 (véase página 104).

Implantación de red
Una operación de escritura de datos globales sólo puede realizarse en redes
Modbus Plus. Las operaciones de lectura y escritura de datos globales comprenden
una función de Modbus Plus conocida como Peer Cop.

Uso del bloque de control de Modbus Plus

Registro Significado
CONTROL[1] 5 = escribir datos globales
CONTROL[2] Indica el estado de error.
CONTROL[3] Número de direcciones que se van a escribir de la memoria de señal en la
memoria de datos globales (procesador de comandos) (1 – 32)
CONTROL[4] Reservado
CONTROL[5] Si se envían datos globales a través de un NOM, introduzca la ranura de
módulo NOM en el byte de mayor valor de este registro.

33002530 05/2010 115


MBP_MSTR

Lectura de datos globales

Significado
Una operación de lectura de datos globales lee datos del procesador de comunica-
ciones de un nodo de la red que presenta datos globales escritos
(véase página 115). No se necesita una ruta de transacciones de maestro.
Una operación de lectura de datos globales puede llevar varios ciclos si los datos
globales no están disponibles actualmente con los asientos activados. Si los datos
globales están disponibles, la operación se ejecuta en un ciclo. Para programar un
bloque MBP_MSTR para escribir datos globales, utilice el código de función 6
(véase página 104).

Implantación de red
Una operación de lectura de datos globales sólo puede realizarse en redes Modbus
Plus. Las operaciones de lectura y escritura de datos globales comprenden una
función de Modbus Plus conocida como Peer Cop.

Uso del bloque de control de Modbus Plus

Registro Significado
CONTROL[1] 6 = leer datos globales
CONTROL[2] Indica el estado de error.
CONTROL[3] Número de direcciones que se van a enviar desde la memoria de datos
globales (procesador de comandos) (1 – 32)
CONTROL[4] Muestra las direcciones disponibles en el asiento explorado. (Este registro
se actualiza automáticamente.)
CONTROL[5] El byte de menor valor contiene la dirección del asiento cuyos datos
globales van a leerse. Puede ser un valor en el rango 1 – 64.
Si se reciben datos globales a través de un NOM, introduzca la ranura de
módulo NOM en el byte de mayor valor de esta dirección.

116 33002530 05/2010


MBP_MSTR

Obtener estadísticas remotas

Descripción
Una operación de obtención de estadísticas remotas puede utilizarse para leer
datos de nodos remotos de la red. Con cada consulta, el procesador de comunica-
ciones remoto proporciona una tabla completa de estadísticas, aunque la consulta
no haga referencia a toda la tabla. Entonces, sólo copia las palabras consultadas
en direcciones $MW identificadas.
Una operación puede llevar varios ciclos para completarse; no necesita una ruta de
transacción de datos maestra. Para programar un bloque MBP_MSTR para obtener
estadísticas remotas, utilice el código de función 7 (véase página 104).

Implantación de red
La operación de obtención de estadísticas remotas puede realizarse en redes
Modbus Plus y Ethernet TCP/IP.

Uso del bloque de control para Modbus Plus

Registro Significado
CONTROL[1] 7 = obtener estadísticas remotas
CONTROL[2] Indica el estado de error
CONTROL[3] Número de direcciones que se van a leer del campo de datos de
estadísticas (0 ... 37).
Nota: databuf debe tener, como mínimo, el mismo tamaño que esta
entrada.
CONTROL[4] Primera dirección desde la que se deben leer las estadísticas del nodo. El
número de registros de estadísticas disponibles no se puede superar.
CONTROL[5] Dirección de acceso 1 ... 5 del nodo.
... El último byte de la ruta de acceso que no es 0 es el nodo de destino.
CONTROL[9]

33002530 05/2010 117


MBP_MSTR

Uso del bloque de control para Ethernet TCP/IP

Registro Significado
CONTROL[1] 7 = obtener estadísticas remotas
CONTROL[2] Indica el estado de error
CONTROL[3] Número de direcciones que se van a leer del campo de datos de
estadísticas (0 ... 37).
Nota: databuf debe tener, como mínimo, el mismo tamaño que esta
entrada.
CONTROL[4] Primera dirección desde la que se deben leer las estadísticas del nodo. El
número de registros de estadísticas disponibles no se puede superar.
CONTROL[5] Registro de acceso
Byte de mayor valor: ranura de módulo adaptador de red
CONTROL[6] Cada dirección contiene un byte de la dirección IP de 32 bits, donde el valor
... de CONTROL[6] es el MSB y el valor de CONTROL[9] es el LSB.
CONTROL[9]

118 33002530 05/2010


MBP_MSTR

Borrar estadísticas remotas

Significado
Una operación de eliminación de las estadísticas remotas elimina los valores de los
nodos remotos de las palabras 13 – 22 en la tabla de estadísticas del nodo local.
Utiliza una ruta de transacciones de maestro y puede que necesite varios ciclos
para completarse. Para programar un bloque MBP_MSTR para realizar una
operación de eliminación de estadísticas remotas, utilice el código de función 8
(véase página 104).

Implantación de red
La operación de eliminación de estadísticas remotas puede realizarse en redes
Modbus Plus y Ethernet TCP/IP (véase página 138).

Uso del bloque de control de Modbus Plus

Registro Significado
CONTROL[1] 8 = eliminar estadísticas remotas
CONTROL[2] Indica el estado de error
CONTROL[3] Reservado
CONTROL[4] Reservado
CONTROL[5] Registro de acceso 1 se utiliza para especificar la dirección (dirección de
... ruta de acceso de 1 a 5) del nodo de destino durante una transferencia de
CONTROL[9] red.
El último byte de la ruta de acceso que no es 0 es el nodo de destino.

Uso del bloque de control para Ethernet TCP/IP

Registro Significado
CONTROL[1] 8 = eliminar estadísticas remotas
CONTROL[2] Indica el estado de error
CONTROL[3] Reservado
CONTROL[4] Reservado
CONTROL[5] Registro de acceso
Byte de mayor valor: ranura de módulo adaptador de red
CONTROL[6] Cada dirección contiene un byte de la dirección IP de 32 bits, donde MSB
... está en CONTROL[6] y LSB en CONTROL[9].
CONTROL[9]

33002530 05/2010 119


MBP_MSTR

Funcionamiento de Peer Cop

Significado
Una operación de estado funcional de Peer Cop lee datos seleccionados de la tabla
de estado funcional de comunicaciones de Peer Cop y descarga los datos a las
direcciones %MW especificadas en la memoria de señal. Para programar un bloque
MBP_MSTR para realizar una operación de eliminación de históricos remotos,
utilice el código de función 9 (véase página 104).
NOTA: El estado funcional de Peer Cop sólo está operativo cuando se ha
configurado un explorador de E/S basado en Peer Cop.
La tabla de estado funcional de comunicaciones de Peer Cop tiene una longitud de
12 palabras; MBP_MSTR indexa estas palabras con los números 0 – 11.

Implantación de red
Una operación de estado funcional de Peer Cop sólo puede realizarse en redes
Modbus Plus.

Uso del bloque de control de Modbus Plus

Registro Significado
CONTROL[1] 9 = funcionamiento de Peer Cop
CONTROL[2] indica el estado de error.
CONTROL[3] Número de palabras solicitadas por la tabla Peer Cop (1 – 12)
CONTROL[4] Primera palabra que se va a leer de la tabla de Peer Cop, donde 0 = la
primera palabra y 11 = la última palabra
CONTROL[5] Dirección de acceso 1
Si éste es el segundo de dos asientos locales, establezca el valor del byte
alto en 1.

120 33002530 05/2010


MBP_MSTR

Restablecimiento de módulos opcionales

Significado
Una operación de restablecimiento de módulos opcionales hace que un módulo de
comunicaciones Quantum NOE Ethernet o el puerto Ethernet de un módulo de CPU
140CPU65150/60 CPU introduzca un ciclo que restablece su entorno de trabajo.
Para programar un bloque MBP_MSTR con el fin de realizar una operación de
restablecimiento de módulos opcionales, utilice el código de función 10
(véase página 104).

Implantación de red
La operación de restablecimiento de módulos opcionales puede realizarse en las
redes Ethernet TCP/IP (véase página 138) y Ethernet SY/MAX.

Uso del bloque de control para Ethernet TCP/IP

Registro Significado
CONTROL[1] 10 = restablecer módulos opcionales
CONTROL[2] indica el estado de error.
CONTROL[3] Sin significado
CONTROL[4] Sin significado
CONTROL[5] Registro de acceso
El valor mostrado en el byte alto del área 1 – 16 indica la ranura del plano
posterior de Quantum en la que se ubica el módulo NOE.
CONTROL[6] Sin significado
...
CONTROL[9]

Uso del bloque de control para Ethernet SY/MAX (CONTROL)

Registro Significado
CONTROL[1] 10 = restablecer módulos opcionales
CONTROL[2] indica el estado de error.
CONTROL[3] Sin significado
CONTROL[4] Sin significado
CONTROL[5] Registro de acceso
MSB: ranura de módulo adaptador de red
CONTROL[6] Sin significado
...
CONTROL[9]

33002530 05/2010 121


MBP_MSTR

Lectura de CTE

Significado
Una operación de lectura de CTE lee un número especificado de bytes de la tabla
de ampliación de configuración Ethernet en el búfer especificado de la memoria del
PLC. Los bytes que se van a leer comienzan por un offset de byte al principio de la
tabla CTE. El contenido de la tabla CTE se muestra en el parámetro de salida
DATABUF . (véase página 102)Para programar un bloque MBP_MSTR para realizar
una operación de eliminación de estadísticas remotas, utilice el código de función
11 (véase página 104).

Implantación de red
Una operación de lectura CTE puede realizarse en redes Ethernet TCP/IP y
Ethernet SY/MAX.

Uso del bloque de control para Ethernet TCP/IP

Registro Significado
CONTROL[1] 11 = leer CTE
CONTROL[2] indica el estado de error.
CONTROL[3] El ajuste de la longitud: un valor entre 12 y 37.
CONTROL[4] Sin significado
CONTROL[5] Registro de acceso
Byte de menor valor = índice de asignación
Un valor mostrado en el byte del registro o no utilizado.
-
byte de mayor valor = ranura de módulo adaptador de red
CONTROL[6] El número mostrado en el byte de menor valor en el área 1–16 indica la
... ranura en la que se ubica el módulo opcional.
CONTROL[9]

122 33002530 05/2010


MBP_MSTR

Uso del bloque de control para Ethernet SY/MAX

Registro Significado
CONTROL[1] 11 = leer CTE
CONTROL[2] indica el estado de error.
CONTROL[3] Número de palabras transferidas.
CONTROL[4] Offset de byte en la estructura de registro de PLC, que especifica dónde
se van a leer los bytes CTE.
CONTROL[5] Registro de acceso
MSB: ranura del módulo NOE
CONTROL[6] Terminador: FF hex.
...
CONTROL[9]

Implantación del indicador CTE (DATABUF)


Los valores de la tabla CTE se muestran en la salida DATABUF cuando se
implementa una operación de lectura de CTE. Los registros muestran los datos CTE
siguientes:
Implantación del indicador CTE (DATABUF):

Parámetro Registro Contenido


Tipo de trama DATABUF[0] 1 = 802.3
2 = Ethernet
Dirección IP DATABUF[1] Primer byte de la dirección IP
DATABUF[2] Segundo byte de la dirección IP
DATABUF[3] Tercer byte de la dirección IP
DATABUF[4] Cuarto byte de la dirección IP
Máscara de red inferior DATABUF[5] Palabra de mayor valor
DATABUF[6] Palabra de menor valor
Pasarela DATABUF[7] Primer byte de la pasarela
DATABUF[8] Segundo byte de la pasarela
DATABUF[9] Tercer byte de la pasarela
DATABUF[10] Cuarto byte de la pasarela

33002530 05/2010 123


MBP_MSTR

Escritura de CTE

Significado
Una operación de escritura de CTE escribe la tabla de configuración CTE de los
datos especificados (DATABUF) en una tabla de ampliación de configuración
Ethernet especificada o una ranura específica. Para programar un bloque
MBP_MSTR con el fin de realizar una operación de escritura CTE, utilice el código
de función 12 (véase página 104).

Implantación de red
Una operación de escritura CTE puede realizarse en redes Ethernet TCP/IP
(véase página 138) y Ethernet SY/MAX.

Uso del bloque de control para Ethernet TCP/IP

Registro Significado
CONTROL[1] 12 = escribir CTE
CONTROL[2] indica el estado de error.
CONTROL[3] El ajuste de la longitud: un valor entre 12 y 37.
CONTROL[4] Sin significado
CONTROL[5] Registro de acceso
Byte de menor valor = índice de asignación
Un valor mostrado en el byte de la dirección o no utilizado.
-
byte de mayor valor = ranura de módulo adaptador de red
CONTROL[6] El número mostrado en el byte de menor valor en el área 1–16 indica la
... ranura en la que se ubica el módulo opcional.
CONTROL[9]

124 33002530 05/2010


MBP_MSTR

Uso del bloque de control para Ethernet SY/MAX

Registro Significado
CONTROL[1] 12 = escribir CTE (tabla de ampliación de configuración)
CONTROL[2] indica el estado de error.
CONTROL[3] Número de palabras transferidas.
CONTROL[4] Offset de byte en la estructura de dirección de PLC, que especifica dónde
se van a escribir los bytes CTE.
CONTROL[5] Registro de acceso
Bit de mayor valor = ranura de módulo NOE
Byte de menor valor = número de estación de destino
CONTROL[6] Terminador: FF hex.
CONTROL[7] Sin significado
...
CONTROL[9]

Implantación del indicador CTE (DATABUF)


Los valores de la tabla de ampliación de configuración Ethernet se muestran en el
campo de salida DATABUF cuando se implementa una operación de escritura de
CTE. Los registros se utilizan para transferir los datos CTE siguientes:
Implantación del indicador CTE (DATABUF):

Parámetro Registro Contenido


Tipo de trama DATABUF[0] 1 = 802.3
2 = Ethernet
Dirección IP DATABUF[1] Primer byte de la dirección IP
DATABUF[2] Segundo byte de la dirección IP
DATABUF[3] Tercer byte de la dirección IP
DATABUF[4] Cuarto byte de la dirección IP
Máscara de red inferior DATABUF[5] Palabra de mayor valor
DATABUF[6] Palabra de menor valor
Pasarela DATABUF[7] Primer byte de la pasarela
DATABUF[8] Segundo byte de la pasarela
DATABUF[9] Tercer byte de la pasarela
DATABUF[10] Cuarto byte de la pasarela

33002530 05/2010 125


MBP_MSTR

Envío de correo electrónico

Descripción
El servicio de notificación por correo electrónico permite que los proyectos basados
en controladores informen de alarmas o eventos. El controlador supervisa el
sistema y crea dinámicamente un mensaje de correo electrónico que avisa a los
usuarios locales o remotos.
Un evento o condición definidos por el usuario accionan el bloque MSTR para crear
un mensaje. Cada mensaje utiliza uno de los tres encabezamientos definidos por el
usuario. Cada mensaje enviado por el controlador puede contener texto e
información variable (con un máximo de 238 bytes).
El proyecto selecciona el encabezamiento adecuado. Cada encabezamiento
contiene:
z Nombre del remitente
z Lista de destinatarios
z Asunto
Para programar un bloque MBP_MSTR para enviar correo electrónico, utilice el
código de función 13 (véase página 104).

Implantación de red
Se puede realizar una operación de envío de correo electrónico a través de una red
Ethernet TCP/IP.

Uso del bloque de control para Ethernet TCP/IP

Registro Significado
CONTROL[1] 13 = enviar correo electrónico
CONTROL[2] Indica los códigos de error específicos de correo electrónico
(véase página 153).
CONTROL[3] Número de palabras transferidas.
CONTROL[4] Sin utilizar
CONTROL[5] Byte de mayor valor: dirección de ranura del módulo NOE o 0xFE para
140 CPU 651 60.
Byte de menor valor: siempre 0
CONTROL[6] Sin utilizar
...
CONTROL[9]

126 33002530 05/2010


MBP_MSTR

Descripción del parámetro DATABUF

Registro Contenido
DATABUF 1 El encabezado del correo es el byte de menor valor con un valor de 1, 2 ó 3.
El byte de mayor valor contiene el número (n) de caracteres en el asunto;
un valor entre 0 y 238.
DATABUF 2 Los datos (en formato ASCII) que se copiarán en el mensaje de correo
... electrónico.
DATABUF 119 Los primeros n caracteres se agregarán al asunto del correo electrónico
configurado. Los caracteres restantes (2 * N -2 - n) son parte del cuerpo
del mensaje, donde N es el número de palabras transferidas.

33002530 05/2010 127


MBP_MSTR

Leer/escribir datos

Introducción
En una única transacción, las operaciones de lectura y escritura de MSTR pueden
transferir datos desde un dispositivo maestro de origen a un dispositivo esclavo de
destino especificado y, a continuación, transferir datos desde ese esclavo de origen
especificado al maestro. Utiliza una ruta de transacciones de maestro y puede que
necesite varios ciclos para completarse. Para programar un bloque MBP_MSTR con
el fin de realizar una operación de lectura/escritura combinada, utilice el código de
función 23 (véase página 104).
La operación de lectura/escritura combinada sólo puede utilizarse con estos dos
modelos Quantum:
z NOE 771 01 (versión 3.0 o posteriores)
z NOE 771 11 (versión 3.0 o posteriores)

Uso del bloque de control

Registro Contenido
CONTROL[1] 23 = datos de lectura/escritura.
CONTROL[2] Indica el estado de error.
CONTROL[3] Número de registros que se deben enviar al esclavo.
CONTROL[4] Especifica el registro de inicio %MW del esclavo donde se van a escribir
los datos (p. ej. 1 = %MW1, 49 = %MW49).
CONTROL[5] Registro de acceso:
Byte de mayor valor: slot de módulo adaptador de red.
Byte de menor valor: MBP en el índice de asignación Ethernet
Transporter (MET).
CONTROL[6] Cada dirección contiene un byte de la dirección IP de 32 bits, donde MSB
... está en CONTROL[6] y LSB en CONTROL[9].
CONTROL[9]
CONTROL[10] Número de registros que se van a leer del esclavo.
CONTROL[11] Especifica el registro de inicio %MW en el esclavo del que se leen los
datos, por ejemplo, 1 = %MW1, 49 = %MW49.

NOTA:
Tenga en cuenta que, durante la configuración del bloque MBP_MSTR para una
operación de lectura o escritura de datos,
z el parámetro de salida DATABUF permite almacenar los siguientes elementos en
el siguiente orden:
1 los datos que se van a escribir
2 los datos que se van a leer.

128 33002530 05/2010


MBP_MSTR

z El tamaño del parámetro de salida DATABUF debe ser igual al tamaño total de los
datos que se escribirán y los datos que se leerán; si fuera inferior, los datos se
sobrescribirán, por lo que podrían perderse.
z Los parámetros CONTROL y DATABUF deben almacenarse en direcciones
localizadas, como por ejemplo direcciones %MW.

33002530 05/2010 129


MBP_MSTR

Estado de funcionamiento de las comunicaciones Peer Cop

Estado de funcionamiento de las comunicaciones Peer Cop


La tabla que contiene la información de estado de Peer Cop completa 12 registros
contiguos indexados con los números 0 – 11 en una operación MBP_MSTR. Cada bit
individual de las palabras de la tabla se utiliza para presentar un aspecto del
funcionamiento de las comunicaciones para un asiento específico de la red Modbus
Plus. Para programar un bloque MBP_MSTR con el fin de obtener el estado de
funcionamiento de Peer Cop, utilice el código de función 9 (véase página 104).

Implantación de red
Una operación de estado de funcionamiento de las comunicaciones Peer Cop sólo
puede realizarse en redes Modbus Plus.

Relación de bits del asiento de red


Los bits de las palabras 0 – 3 representa el funcionamiento en la entrada de
comunicaciones globales de los asientos 1 – 64. Los bits de las palabras 4 – 7
representan el funcionamiento de la salida de un asiento específico.
Los bits en las palabras 8 – 11 representan el funcionamiento de la entrada de un
asiento específico.

Tipo de estado Índice de palabra Relación de bits del asiento de red


Recepción global 0

Envío directo 4

130 33002530 05/2010


MBP_MSTR

Tipo de estado Índice de palabra Relación de bits del asiento de red


Recepción directa 8

10

11

Estado del bit de estado funcional


El estado del bit de estado funcional de Peer Cop indica el estado actual de las
comunicaciones del asiento asignado. Un bit de estado funcional se establece
cuando el asiento asociado acepta la entrada de su bloque de datos Peer Cop o
cuando recibe una señal de que otro asiento ha aceptado los datos de salida
específicos de su bloque de datos de salida de Peer Cop. Se eliminará un bit de
estado funcional si el bloque de datos asociado no acepta ninguna comunicación
en el periodo de timeout de funcionamiento de Peer Cop configurado.
Todos los bits de estado funcional se eliminan cuando el comando de interfaz
Aplicar Peer Cop se ejecuta durante el arranque del PLC. Los valores de la tabla
pasan a ser válidos cuando el token se ha omitido por completo, una vez realizado
el comando Aplicar Peer Cop. El bit de estado funcional de un asiento específico
siempre es 0 cuando la entrada de Peer Cop asignada es 0.

33002530 05/2010 131


MBP_MSTR

Estadísticas de red Modbus Plus

Estadísticas de red Modbus Plus


La tabla siguiente muestra las estadísticas disponibles en Modbus Plus. Puede
obtener estos datos si ejecuta la operación MBP_MSTR correspondiente (código de
función 8 de Modbus).
NOTA: Si modifica la operación eliminar estadísticas locales (véase página 114) o
eliminar estadísticas remotas (véase página 119), sólo se eliminarán las palabras
13 – 22 de la tabla de estadísticas.

Palabra Bits Descripción


00 ID de tipo de asiento
0 Tipo de asiento desconocido
1 Asiento PLC
2 Asiento puente Modbus
3 Asiento host
4 Asiento Bridge Plus
5 Asiento E/S Peer
6 ... 15 Reservado
01 0 – 11 Número de versión de software como valor hexadecimal (para leerlo,
se deben aislar los bits 12 – 15 de la palabra)
12 – 14 Reservado
15 Define contadores de errores desde la palabra 15.
El bit de mayor valor define el uso de contadores de error en la
palabra 15. La mitad de menor valor del byte de mayor valor junto con
el byte de menor valor contiene la versión de
software.

02 Dirección de red de esta estación

132 33002530 05/2010


MBP_MSTR

Palabra Bits Descripción


03 Variable de estado MAC:
0 Estado de arranque
1 Señales del indicador de estado fuera de línea
2 Estado fuera de línea duplicado
3 Estado inactivo
4 Estado de utilización del token
5 Estado de respuesta de trabajo
6 Estado de transferencia del token
7 Estado de petición de respuesta
8 Comprobación de estado de transferencia
9 Estado de petición del token
10 Estado de petición de respuesta
04 El estado de Peer (código LED); indica el estado de este dispositivo respecto a
la red:
0 Operación de conexión de control
32 Operación de conexión normal
64 Nunca recibe token
96 Estación única
128 Estación duplicada
05 Contador de transferencias de token; aumenta cada vez que esta estación recibe
un token
06 Tiempo de ciclo de token en ms
07 LOW Error del maestro de datos de representación de bit durante la
posesión del token
HIGH Error del maestro de programa (mapa de bits) de representación de
bit durante la posesión del token
08 LOW Posesión del token de actividad de mapa de bits del maestro de
datos
HIGH Posesión del token de actividad de mapa de bits del maestro de
programa
09 LOW Posesión del token de actividad de mapa de bits del esclavo de datos
HIGH Posesión del token de actividad de mapa de bits del esclavo de
programa
10 LOW
HIGH Lectura de dotación de esclavo/esclavo de datos de comando de
petición de transferencia de mapa de bits

33002530 05/2010 133


MBP_MSTR

Palabra Bits Descripción


11 LOW Lectura de dotación del maestro/maestro de programa de petición de
transferencia de respuesta de mapa de bits
HIGH Lectura de dotación de esclavo/esclavo de programa de comando de
petición de transferencia de mapa de bits
12 LOW Estado de conexión del mapa de bits del maestro de programa
HIGH Cierre de sesión automático de mapa de bits del esclavo de
programa
13 LOW Contador de errores de retardo de pretransferencia
HIGH Contador de errores de desborde de DMA del búfer de recepción
14 LOW Comando de repetición de contador recibido
HIGH Tamaño del bloque de datos de contador de errores
15 Si el bit 15 de la palabra 1 no se ha definido, la palabra 15 tiene el significado
siguiente:
LOW Cancelación de la colisión del receptor del contador de errores
HIGH Alineación del receptor del contador de errores
Si el bit 15 de la palabra 1 se ha establecido, la palabra 15 tiene el significado
siguiente:
LOW Error de bloque de datos en el cable A
HIGH Error de bloque de datos en el cable B
16 LOW Receptor CRC de contador de errores
HIGH Longitud de paquete incorrecta del contador de errores
17 LOW Dirección de conexión incorrecta del contador de errores
HIGH Almacenamiento en búfer de transferencia con transgresión por
debajo de rango DMA de contador de errores
18 LOW Longitud de paquete interno incorrecta del contador de errores
HIGH Código de función MAC incorrecta del contador de errores
19 LOW Contador de reintentos de comunicación
HIGH Error de comunicaciones del contador de errores
20 LOW Recepción de paquete de contador realizada con éxito
HIGH Sin recepción de respuesta del contador de errores
21 LOW Recepción inesperada de respuesta del contador de errores
HIGH Ruta inesperada de contador de errores
22 LOW Respuesta inesperada del contador de errores
HIGH Transacción omitida del contador de errores

134 33002530 05/2010


MBP_MSTR

Palabra Bits Descripción


23 LOW Tabla de estaciones activas de mapa de bits, asientos 1 – 8
HIGH Tabla de estaciones activas de mapa de bits, asientos 9 – 16
24 LOW Tabla de estaciones activas de mapa de bits, asientos 17 – 24
HIGH Tabla de estaciones activas de mapa de bits, asientos 25 – 32
25 LOW Tabla de estaciones activas de mapa de bits, asientos 33 – 40
HIGH Tabla de estaciones activas de mapa de bits, asientos 41 – 48
26 LOW Tabla de estaciones activas de mapa de bits, asientos 49 – 56
HIGH Tabla de estaciones activas de mapa de bits, asientos 57 – 64
27 LOW Tabla de estaciones de token de mapa de bits, asientos 1 – 8
HIGH Tabla de estaciones de token de mapa de bits, asientos 9 – 16
28 LOW Tabla de estaciones de token de mapa de bits, asientos 17 – 24
HIGH Tabla de estaciones de token de mapa de bits, asientos 25 – 32
29 LOW Tabla de estaciones de token de mapa de bits, asientos 33 – 40
HIGH Tabla de estaciones de token de mapa de bits, asientos 41 – 48
30 LOW Tabla de estaciones de token de mapa de bits, asientos 49 – 56
HIGH Tabla de estaciones de token de mapa de bits, asientos 57 – 64
31 LOW Tabla de mapa de bits respecto a la existencia de datos globales,
asientos 1 – 8
HIGH Tabla de mapa de bits respecto a la existencia de datos globales,
asientos 9 – 16
32 LOW Tabla de mapa de bits respecto a la existencia de datos globales,
asientos 17 – 24
HIGH Tabla de mapa de bits respecto a la existencia de datos globales,
asientos 25 – 32
33 LOW Tabla de mapa de bits respecto a la existencia de datos globales,
asientos 33 – 40
HIGH Tabla de mapa de bits respecto a la existencia de datos globales,
asientos 41 – 48
34 LOW Tabla de mapa de bits respecto a la existencia de datos globales,
asientos 49 – 56
HIGH Tabla de mapa de bits respecto a la existencia de datos globales,
asientos 57 – 64
35 LOW Búfer de recepción de mapa de bits utilizado, búferes 1 – 8
HIGH Búfer de recepción de mapa de bits utilizado, búferes 9 – 16

33002530 05/2010 135


MBP_MSTR

Palabra Bits Descripción


36 LOW Búfer de recepción de mapa de bits utilizado, búferes 17 – 24
HIGH Búfer de recepción de mapa de bits utilizado, búferes 25 – 32
37 LOW Búfer de recepción de mapa de bits utilizado, búferes 33 – 40
HIGH Contador de comandos procesados activados para la administración
de estaciones
38 LOW Ruta 1 de salida del comando de activación de contador del maestro
de datos
HIGH Ruta 2 de salida del comando de activación de contador del maestro
de datos
39 LOW Ruta 3 de salida del comando de activación de contador del maestro
de datos
HIGH Ruta 4 de salida del comando de activación de contador del maestro
de datos
40 LOW Ruta 5 de salida del comando de activación de contador del maestro
de datos
HIGH Ruta 6 de salida del comando de activación de contador del maestro
de datos
41 LOW Ruta 7 de salida del comando de activación de contador del maestro
de datos
HIGH Ruta 8 de salida del comando de activación de contador del maestro
de datos
42 LOW Ruta 41 de entrada de procesamiento de comando de contador del
esclavo de datos
HIGH Ruta 42 de entrada de procesamiento de comando de contador del
esclavo de datos
43 LOW Ruta 43 de entrada de procesamiento de comando de contador del
esclavo de datos
HIGH Ruta 44 de entrada de procesamiento de comando de contador del
esclavo de datos
44 LOW Ruta 45 de entrada de procesamiento de comando de contador del
esclavo de datos
HIGH Ruta 46 de entrada de procesamiento de comando de contador del
esclavo de datos
45 LOW Ruta 47 de entrada de procesamiento de comando de contador del
esclavo de datos
HIGH Ruta 48 de entrada de procesamiento de comando de contador del
esclavo de datos

136 33002530 05/2010


MBP_MSTR

Palabra Bits Descripción


46 LOW Ruta 81 de salida de activación de comando de contador del maestro
de programas
HIGH Ruta 82 de salida de activación de comando de contador del maestro
de programas
47 LOW Ruta 83 de salida de activación de comando de contador del maestro
de programas
HIGH Ruta 84 de salida de activación de comando de contador del maestro
de programas
48 LOW Ruta 85 de salida de activación de comando de contador del maestro
de programas
HIGH Ruta 86 de salida de activación de comando de contador del maestro
de programas
49 LOW Ruta 87 de salida de activación de comando de contador del maestro
de programas
HIGH Ruta 88 de salida de activación de comando de contador del maestro
de programas
50 LOW Ruta C1 de entrada de procesamiento de comando de contador del
esclavo de programa
HIGH Ruta C2 de entrada de procesamiento de comando de contador del
esclavo de programa
51 LOW Ruta C3 de entrada de procesamiento de comando de contador del
esclavo de programa
HIGH Ruta C4 de entrada de procesamiento de comando de contador del
esclavo de programa
52 LOW Ruta C5 de entrada de procesamiento de comando de contador del
esclavo de programa
HIGH Ruta C6 de entrada de procesamiento de comando de contador del
esclavo de programa
53 Ruta C7 de entrada de procesamiento de comando de contador del
esclavo de programa
HIGH Ruta C8 de entrada de procesamiento de comando de contador del
esclavo de programa

33002530 05/2010 137


MBP_MSTR

Estadísticas de red de Ethernet TCP/IP

Estadísticas de red de Ethernet TCP/IP


Un módulo de Ethernet TCP/IP responde a comandos de estadísticas remotas y
locales del bloque MBP_MSTR con el contenido de la matriz databuf (consulte la
información en la tabla siguiente):

Palabra Significado
De 00 a 02 Dirección MAC Palabra Contenido
Por ejemplo, la dirección MAC 00 00 54 00 12 34 se 00 00 54
muestra de la forma siguiente: 01 00 34
02 00 12
03 Estado de la tarjeta (consulte la tabla siguiente)
04 y 05 Número de interrupts de receptor
06 y 07 Número de interrupts de transferencia
08 y 09 Conteo de errores de timeout de transferencia
10 y 11 Conteo de errores de detección de colisiones
12 y 13 Paquetes omitidos
14 y 15 Conteo de errores de memoria
16 y 17 Número de veces que el controlador ha reiniciado el sistema
18 y 19 Conteo de errores de bloques de datos de recepción
20 y 21 Receptor de conteo de errores de desborde
22 y 23 Contador de errores CRC de recepción
24 y 25 Contador de errores de búfer de recepción
26 y 27 Contador de errores de búfer de transferencia
28 y 29 Contador de transgresión por debajo de rango de bin de transferencia
30 y 31 Contador de últimas colisiones
32 y 33 Contador de portadora perdida
34 y 35 Número de reintentos
36 y 37 Dirección IP Palabra Contenido
Por ejemplo, la dirección IP 198.202.137.113 (o c6 36 89 C6
CA 89 71) se representa de la forma siguiente: 37 71 CA

138 33002530 05/2010


MBP_MSTR

Definición del bit de palabra de estado de tarjeta


NOTA: Es mejor ver la palabra de estado de tarjeta en formato binario.
En la siguiente tabla se describen las definiciones de bit de la palabra de estado de
tarjeta:
z 140 NOE 771 x1, versiones 2.0, 3.0, 3.1, 3.3 y 3.6 o superior
z 140 NOE 771 x0, versiones 3.0, 3.3 y 3.4 o superior

N.º de bit Definición


15 0 = indicador LED Link apagado 1 = indicador LED Link encendido
14 0 = indicador LED Appl apagado 1 = indicador LED Appl encendido
13 0 = par trenzado 1 = fibra
12 0 = 10 Mbits 1 = 100 Mbits
11 ... 8 (Reservados)
7 ... 4 Tipo de módulo (consulte la tabla siguiente)
3 (Reservados)
2 0 = semidúplex 1 = dúplex completo
1 0 = no configurado 1 = configurado
0 0 = no está en funcionamiento 1 = está en funcionamiento

NOTA: Los bits se numeran de derecha a izquierda empezando por el bit 0 (bit
bajo). Por ejemplo, PLC en funcionamiento = 0000 0000 0000 0001 y Conexión
de LED = 1000 0000 0000 0000.
En la siguiente tabla se describen las definiciones de bit de palabra del estado de
la tarjeta para:
z 140 NOE 771 x1, versión 3.5
z 140 NOE 771 x0, versiones 1.02 y 2.0
z 140 CPU 651 x0

N.º de bit Definición


15 ... 12 Tipo de módulo (consulte la tabla a continuación)
11 (Reservados)
10 0 = semidúplex 1 = dúplex completo
9 0 = no configurado 1 = configurado
8 0 = PLC no está en funcionamiento 1 = PLC/NOE está en funcionamiento
7 0 = indicador LED Link apagado 1 = indicador LED Link encendido

33002530 05/2010 139


MBP_MSTR

6 0 = indicador LED Appl apagado 1 = indicador LED Appl encendido


5 0 = par trenzado 1 = fibra
4 0 = 10 Mbits 1 = 100 Mbits
3 ... 0 (Reservados)

NOTA: Los bits se contabilizan de derecha a izquierda empezando por el bit 0 (bit
bajo). Por ejemplo, PLC en ejecución = 0x0100, LED Application = 0x0040 y
Conexión de LED = 0x0080.

Definición del bit de palabra de estado de la tarjeta por tipo de módulo


En la siguiente tabla se describen los valores de los tipos de módulos:

Valor de los bits 7...4 ó 15...12 Tipo de módulo


Nota: Consulte las tablas anteriores para conocer el rango
de bit que se aplica a la versión de software de su módulo.
0 NOE 2x1
1 ENT
2 M1E
3 NOE 771 00
4 ETY
5 CIP
6 (reservados)
7 140 CPU 651 x0
8 (reservados)
9 (reservados)
10 NOE 771 10
11 NOE 771 01
12 NOE 771 11
13 ... 15 (reservados)

140 33002530 05/2010


MBP_MSTR

Códigos de error de Modbus Plus, SY/MAX y Ethernet TCP/IP

Forma del código de error de la función


Los códigos de error de la función para las transacciones Ethernet SY/MAX y
Modbus Plus aparecen como Mmss, donde:
z M es el código mayor.
z m es el código menor.
z ss es un subcódigo.

Errores de red Ethernet SY/MAX y Modbus Plus


Códigos de error hexadecimales para Ethernet SY/MAX y Modbus Plus:

Códigode error hex. Descripción


1001 Cancelado por el usuario
2001 Se ha especificado un tipo de operación incompatible en el bloque
de control.
2002 Se modificaron uno o más parámetros del bloque de control
mientras el elemento MSTR estaba activo (esto sólo es aplicable a
operaciones que requieren varios ciclos para completarse). Los
parámetros del bloque de control sólo pueden modificarse en
componentes MSTR inactivos.
2003 Valor no válido en el campo longitud del bloque de control.
2004 Valor no válido en el campo offset del bloque de control.
2005 Valor no válido en los campos longitud y offset del bloque de
control.
2006 Campo de datos no autorizado en esclavo.
2007 Campo de red no autorizado en esclavo.
2008 Ruta de acceso a redes no autorizada en esclavo.
2009 Ruta de acceso equivalente a las propias direcciones.
200A Intento de obtener más palabras de datos globales de las que
están disponibles.
200C Modelo incorrecto para la petición de cambio de dirección.
200D Dirección incorrecta para la petición de cambio de dirección.
200E El bloque de control no está asignado o algunas partes del bloque
de control están ubicadas fuera del rango %MW (4x).
30ss Respuesta de excepción del esclavo Modbus. (véase página 144)

33002530 05/2010 141


MBP_MSTR

Códigode error hex. Descripción


4001 Respuesta incoherente del esclavo Modbus.
5001 Respuesta incoherente de la red.
6007 ID de ranura no válido.
6mss Error de ruta de acceso (véase página 144)
El subcampo m muestra dónde se ha producido el error (un valor
0 indica un nodo local, 2 indica que el segundo dispositivo está en
ruta, etc.).

Errores de red Ethernet TCP/IP


Códigos de error hexadecimales para Ethernet TCP/IP:

Código de error hex. Significado


5004 Llamada del sistema interrumpida
5005 Error de E/S
5006 No existe esa dirección
5009 La identificación del socket no es válida
500C Memoria insuficiente
500D Permiso denegado
5011 Entrada ya existente
5016 Argumento no válido
5017 La tabla interna se ha quedado sin espacio
5020 Conexión interrumpida
5028 Se necesita dirección de destino
5029 Tipo de protocolo incorrecto para el socket
502A Protocolo no disponible
502B Protocolo no admitido
502C Tipo de socket no admitido
502D Operación no admitida en un socket
502E Familia de protocolo no admitida
502F Familia de direcciones no compatible
5030 La dirección está siendo utilizada
5031 No se puede asignar la dirección solicitada
5032 Operación socket no en socket
5033 No es posible tener acceso a la red

142 33002530 05/2010


MBP_MSTR

Código de error hex. Significado


5034 La red cerró la conexión al restablecer
5035 Anulación de conexión provocada por la red
5036 Conexión restablecida por el interlocutor
5037 No hay espacio de búfer disponible
5038 Socket ya conectado
5039 Socket no conectado
503A No se puede enviar después de cerrar el socket
503B Demasiadas referencias: no es posible empalmar
503C Se agotó el tiempo de conexión (véase nota a continuación)
503D Conexión rechazada
503E Red desconectada
503F Archivo de texto ocupado
5040 Demasiados niveles de vínculos
5041 No hay ruta al host
5042 Se necesita dispositivo de bloques
5043 El host está desconectado
5044 Operación en curso
5045 La operación ya se está ejecutando
5046 Se bloquearía la operación
5047 Función no implementada
5048 Longitud hardware no válida
5049 No se puede hallar la ruta especificada
504A Colisión al seleccionar llamada: otra tarea ya ha seleccionado
estas condiciones
504B ID de tarea no válido
5050 Sin recurso de red
5051 Error de longitud
5052 Error de direccionamiento
5053 Error de aplicación
5054 Cliente en estado incorrecto para petición

33002530 05/2010 143


MBP_MSTR

Código de error hex. Significado


5055 Sin recurso remoto: puede indicar que no hay ruta al dispositivo
remoto (véase nota a continuación)
5056 Conexión TCP no operativa
5057 Configuración incoherente

NOTA:
z El código de error 5055 puede ocurrir antes de un error 503C.
z Ningún dispositivo remoto tiene prioridad sobre un tiempo de espera.

Valor hexadecimal ss en código de error de 30ss


Valor hexadecimal ss en código de error de 30ss:

Valor ss hex. Descripción


01 El esclavo no admite la operación solicitada.
02 Se solicitaron registros del esclavo no existentes.
03 Se solicitó un valor de datos no autorizado.
05 El esclavo ha aceptado un comando de programa largo.
06 La función no puede llevarse a cabo en estos momentos: comando
largo en ejecución.
07 El esclavo ha rechazado un comando de programa largo.

Valor hexadecimal ss en código de error de 6mss


NOTA: El subcampo m en código de error de 6mss es un Índice de la información
de acceso que muestra dónde se ha detectado el error (un valor 0 indica un nodo
local, 2 indica que el segundo dispositivo está en ruta, etc.).
El subcampo ss en el código de error 6mss es de la siguiente manera:

Valor hexadecimal ss Descripción


01 Sin recepción de respuesta.
02 Acceso al programa denegado.
03 Nodo fuera de servicio; no puede establecer la comunicación.
04 Respuesta inusual recibida.
05 Ruta de datos encaminador-nodo ocupada.
06 Esclavo fuera de servicio.
07 Dirección de destino incorrecta.
08 Tipo de nodo no autorizado en la ruta de acceso.

144 33002530 05/2010


MBP_MSTR

Valor hexadecimal ss Descripción


10 El esclavo ha rechazado el comando.
20 El esclavo ha perdido una transacción activada.
40 Ruta de salida maestro inesperada recibida.
80 Respuesta inesperada recibida.
F001 Se ha especificado un nodo de destino incorrecto para la
operación MSTR.

33002530 05/2010 145


MBP_MSTR

Códigos de error específicos de SY/MAX

Códigos de error específicos de SY/MAX


Si utiliza Ethernet SY/MAX, puede registrar otros tres tipos de errores en el registro
CONTROL[1] del bloque de control ().
Los códigos de error tienen el siguiente significado:
z Error 71xx: Error descubierto por el equipo remoto SY/MAX
z Error 72xx: Error descubierto por el servidor
z Error 73xx: Error descubierto por el combinador Quantum

Códigos de error hex. específicos de SY/MAX


Códigos de error hex. específicos de SY/MAX:

Código de Significado
error Código
de error
7101 Código operacional no válido descubierto por el equipo remoto SY/MAX
7103 Dirección inválida descubierta por el equipo remoto SY/MAX
7109 Intento de escribir en un registro descubierto por un equipo remoto SY/MAX
protegido contra escritura
F710 Rebasamiento del receptor descubierto por el equipo remoto SY/MAX
7110 Longitud inválida descubierta por el equipo remoto SY/MAX
7111 Equipo remoto inactivo, sin conexión (sucede después de agotar los
intentos de repetición y la desconexión de tiempo), descubierto por un
equipo remoto SY/MAX
7113 Parámetro inválido en una operación de lectura descubierto por el equipo
remoto SY/MAX
711D Ruta inválida descubierta por el equipo remoto SY/MAX
7149 Parámetro inválido en una operación de escritura descubierto por el equipo
remoto SY/MAX
714B Número de estación inválido descubierto por el equipo remoto SY/MAX
7101 Código operacional no válido descubierto por el servidor SY/MAX
7203 Dirección inválida descubierta por el servidor SY/MAX
7209 Intento de escribir en un registro encontrado por el servidor SY/MAX y
protegido contra escritura
F720 Rebasamiento del receptor descubierto por un servidor SY/MAX
7210 Longitud inválida descubierta por el servidor SY/MAX

146 33002530 05/2010


MBP_MSTR

Código de Significado
error Código
de error
7211 Equipo remoto inactivo, sin conexión (sucede después de agotar los
intentos de repetición y la desconexión de tiempo), descubierto por el
servidor SY/MAX
7213 Parámetro inválido en una operación de lectura descubierto por el servidor
SY/MAX
721D Ruta inválida descubierta por el servidor SY/MAX
7249 Parámetro inválido en una operación de escritura descubierto por el servidor
SY/MAX
724B Número de estación inválido descubierto por el servidor SY/MAX
7301 Código operacional inválido en una solicitud de bloque MSTR del combinador
Quantum
7303 Estado del módulo QSE de lectura/escritura (dirección de acceso 200 fuera
del rango)
7309 Intento de escribir en un registro protegido cuando se ejecuta una escritura
de estado(ruta 200)
731D Ruta inválida descubierta por el combinador Quantum
Rutas válidas:
z dest_drop, 0xFF
z 200, dest_drop, 0xFF
z 100+drop, dest_drop, 0xFF
z Todos los demás valores de ruta generarán un error

734B Ha surgido uno de los siguientes errores:


z No se ha configurado ninguna tabla CTE (extensión de la configuración).
z No se ha creado ninguna entrada de tabla CTE para el número de slot
de modelo QSE.
z No se ha definido ninguna estación válida.
z El módulo QSE no se ha restablecido después de crear la CTE.
Nota: Después de escribir y configurar la CTE y cargarla en el módulo
QSE, deberá restablecer dicho módulo para que se apliquen los
cambios.
z Al utilizar una instrucción MSTR no se ha definido ningún slot o estación.

33002530 05/2010 147


MBP_MSTR

Códigos de error de TPC/IP Ethernet

Códigos de error de TPC/IP Ethernet


Un error en una rutina MSTR a través de TCP/IP Ethernet puede provocar uno de los
siguientes errores en el bloque de control MSTR:
El código de error aparece como Mmss, donde:
z M es el código mayor.
z m es el código menor.
z ss es un subcódigo.

Códigos de error HEX de TPC/IP Ethernet


Códigos de error HEX de TPC/IP Ethernet:

Hex. Código de error Significado


1001 Cancelado por el usuario
2001 Se ha especificado un tipo de operación incompatible en el bloque
de control
2002 Se modificaron uno o más parámetros del bloque de control
mientras el elemento MSTR estaba activo (esto sólo es aplicable a
operaciones que requieren varios ciclos para completarse). Los
parámetros del bloque de control sólo pueden modificarse en
componentes MSTR inactivos.
2003 Valor no válido en el campo longitud del bloque de control
2004 Valor no válido en el campo offset del bloque de control
2005 Valor no válido en los campos longitud y offset del bloque de control
2006 Campo de datos no autorizado en esclavo
2008 Ruta de acceso a redes no autorizada en esclavo
200E El bloque de control no está asignado o algunas partes del bloque
de control están ubicadas fuera del rango %MW (4x).
3000 Código de fallo Modbus genérico
30ss Respuesta de excepción del esclavo del Modbus
(véase página 149)
4001 Respuesta incoherente del esclavo del Modbus

148 33002530 05/2010


MBP_MSTR

Valor hexadecimal ss en código de error de 30ss


Valor hexadecimal ss en código de error de 30ss:

Valor hex. ss Significado


01 El esclavo no admite la operación solicitada
02 Se solicitaron registros del esclavo no existentes
03 Se solicitó un valor de datos no autorizado
05 El esclavo ha aceptado un comando de programa largo
06 La función no puede llevarse a cabo en estos momentos: comando
largo en ejecución
07 El esclavo ha rechazado un comando de programa largo

Códigos de error HEX de red TPC/IP Ethernet:


Un error en la red TCP/IP Ethernet puede dar lugar por sí mismo a uno de los
errores siguientes en el registro CONTROL[1] del bloque de control.
Códigos de error HEX de red TPC/IP Ethernet:

Código de error hex. Significado


5004 Ejecución del sistema interrumpida
5005 Código de error de E/S
5006 No existe tal dirección
5009 El descriptor del socket no es válido
500C No hay suficiente espacio de almacenamiento
500D Autorización denegada
5011 Entrada existente
5016 Uno de los argumentos no es válido
5017 Una tabla interna no dispone de más espacio
5020 Existe una interferencia en la conexión
5023 Esta operación se bloqueó y el socket no es de bloqueo
5024 El socket no es de bloqueo y la conexión no se puede cerrar
5025 El socket no es de bloqueo y el intento de conexión anterior no ha
concluido
5026 Operación socket en un non-socket
5027 La dirección de destino no es válida
5028 Mensaje demasiado largo
5029 Tipo de protocolo incorrecto para el socket

33002530 05/2010 149


MBP_MSTR

Código de error hex. Significado


502A Protocolo no disponible
502B Protocolo no admitido
502C Tipo de socket no admitido
502D Operación no admitida en socket
502E Familia de protocolo no admitida
F502 Familia de dirección no admitida
5030 La dirección ya se está utilizando
5031 La dirección no está disponible
5032 Red fuera de servicio
5033 No es posible establecer conexión con la red
5034 La red ha cerrado la conexión durante el restablecimiento
5035 Conexión terminada por el interlocutor
5036 Conexión restablecida por el interlocutor
5037 Es necesario un búfer interno, pero no es posible asignarlo
5038 El socket ya está conectado
5039 El socket no está conectado
503A La transmisión no es posible una vez desconectado el socket
503B Demasiadas referencias; no es posible empalmar
503C Se agotó el tiempo de conexión
503D Se ha denegado el intento de conexión
5040 El host está fuera de servicio
5041 No es posible establecer conexión con el host de destino desde
este asiento
5042 El directorio no está vacío
5046 NI_INIT ha devuelto -1
5047 El MTU no es válido.
5048 La longitud del hardware no es válida
5049 No se puede encontrar la ruta especificada
504A Colisión al ejecutar Seleccionar; estas condiciones ya se
seleccionaron en otro trabajo
504B La ID del trabajo no es válida
5050 No existen recursos de red
5051 Error de longitud
5052 Error de direccionamiento

150 33002530 05/2010


MBP_MSTR

Código de error hex. Significado


5053 Error de aplicación
5054 El cliente no puede procesar la petición
5055 No existen recursos de red
5056 Conexión TPC no operativa
5057 Configuración incoherente
6003 FIN o RST no esperados
F001 En modalidad de restablecimiento
F002 Componente no inicializado totalmente

33002530 05/2010 151


MBP_MSTR

Códigos de error CTE para Ethernet SY/MAX y TCP/IP

Códigos de error CTE para Ethernet SY/MAX y TCP/IP


Los siguientes códigos de error en el registro CONTROL[1] del bloque de control
aparecen cuando en la configuración de programa hay un problema con la tabla de
extensión de configuración Ethernet (CTE).
Códigos de error CTE para Ethernet SY/MAX y TCP/IP:

Código de Significado
error hex.
7001 No hay ninguna extensión de la configuración
7002 Acceso no disponible a la CTE
7003 Offset inválido
7004 Offset + longitud inválidos
7005 Fallos en el campo de datos de la CTE

152 33002530 05/2010


MBP_MSTR

Códigos de error del servicio de correo

Códigos de error
El servicio de notificación de correo electrónico admite los códigos de error
siguientes:

Código de error hex. Descripción


5100 Error interno.
5101 Componente SMTP no operativo.
5102 Encabezamiento de correo no configurado.
5103 Valor de encabezamiento de correo no válido (debería ser 1, 2 o 3).
5104 No es posible conectarse al servidor SMTP.
5105 Error al transmitir el contenido del cuerpo del mensaje de correo
electrónico al servidor SMTP.
5106 Se ha producido un error al cerrar la conexión SMTP con el
servidor.
5107 Error de petición SMTP HELO.
5108 Error de petición SMTP MAIL. El servidor SMTP puede requerir una
autenticación.
5109 Error de petición SMTP RCPT.
510A El servidor SMTP no ha aceptado ningún destinatario.
510B Error de petición SMTP DATA.
510C La petición de envío de correo electrónico tiene una longitud no
válida.
510D Fallo de la autenticación.
510E Se ha recibido una petición de reinicialización de componente
mientras la conexión estaba abierta.

33002530 05/2010 153


MBP_MSTR

154 33002530 05/2010


MODBUSP_ADDR
33002530 05/2010

ModbusP_ADDR: dirección de
Modbus Plus
13
Introducción
En este capítulo se describe el bloque ModbusP_ADDR.

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Descripción 156
Descripción detallada 159

33002530 05/2010 155


MODBUSP_ADDR

Descripción

Descripción de la función
Este bloque de función permite indicar la dirección Modbus Plus para los bloques
de función REAG_REG, CREAD_REG, WRITE_REG y CWRITE_REG. La dirección se
transmite en forma de una estructura de datos.
Como parámetros adicionales se pueden configurar EN y ENO.
NOTA: Para programar el bloque de funciónModbusP_ADDR debe conocer los
procedimientos de acceso utilizados en la red. La descripción detallada de las
estructuras de ruta de acceso Modbus Plus se encuentra en "Modbus Plus Network
Planning and Installation Guide".

Representación en FBD
Representación

156 33002530 05/2010


MODBUSP_ADDR

Representación en LD
Representación

Representación en IL
Representación
CAL ModbusP_ADDR_Instance (SLOT_ID:=NOMModuleSlot,
ROUTING1:=BYTE_variable1, ROUTING2:=BYTE_variable2,
ROUTING3:=BYTE_variable3, ROUTING4:=BYTE_variable4,
ROUTING5:=BYTE_variable5,
ADDRFLD=>DataStructureModbusPlusAddress)

Representación en ST
Representación
ModbusP_ADDR_Instance (SLOT_ID:=NOMModuleSlot,
ROUTING1:=BYTE_variable1, ROUTING2:=BYTE_variable2,
ROUTING3:=BYTE_variable3, ROUTING4:=BYTE_variable4,
ROUTING5:=BYTE_variable5,
ADDRFLD=>DataStructureModbusPlusAddress) ;

33002530 05/2010 157


MODBUSP_ADDR

Descripción de parámetros
Descripción de los parámetros de entrada

Parámetro Tipo de datos Significado


SLOT_ID BYTE ID del slot
Slot del módulo NOM
ROUTING1 BYTE La ruta de acceso 1 se emplea para el
establecimiento de la dirección (direcciones de ruta
de acceso una de cinco) del participante de destino
durante una transmisión de red.
El último byte en la ruta de acceso que no se
corresponda con cero es el participante de destino.
ROUTING2 BYTE Ruta de acceso 2
ROUTING3 BYTE Ruta de acceso 3
ROUTING4 BYTE Ruta de acceso 4
ROUTING5 BYTE Ruta de acceso 5

Descripción de los parámetros de salida

Parámetro Tipo de datos Significado


ADDRFLD WordArr5 Estructura de datos para la transmisión de la
dirección Modbus Plus

158 33002530 05/2010


MODBUSP_ADDR

Descripción detallada

Tipos de datos derivados


Descripción de elementos para WordArr5

Elemento Tipo de datos Significado


WordArr5[1] WORD Registro de ruta de acceso 1
Byte de menor valor:
Se emplea para el establecimiento de la dirección
(direcciones de ruta de acceso una de cinco) del
participante de destino durante una transmisión de red.
Byte de mayor valor:
Slot del modulo adaptador de red (NOM), si existe.
WordArr5[2] WORD Registro de ruta de acceso 2
WordArr5[3] WORD Registro de ruta de acceso 3
WordArr5[4] WORD Registro de ruta de acceso 4
WordArr5[5] WORD Registro de ruta de acceso 5

Slot_ID
Cuando un módulo opcional de red Modbus Plus (NOM) del bastidor accede a un
controlador Quantum como participante de destino, el valor de la entrada Slot_ID
representa el slot físico del NOM, es decir, cuando el NOM está insertado en el slot
7 del bastidor, el valor tiene el siguiente aspecto:

Ruta de acceso x
La entrada Ruta de acceso x se emplea para el establecimiento de la dirección
(direcciones de ruta de acceso una de cinco) del participante de destino durante una
transmisión de red. El último byte en la ruta de acceso que no se corresponda con
cero es el participante de destino.

33002530 05/2010 159


MODBUSP_ADDR

Registro de ruta de acceso 1


Si un módulo opcional de red (NOM) Modbus Plus del bastidor accede a un
controlador Quantum como participante de destino, el valor del byte de mayor valor
representa el slot físico del NOM. Si el participante de destino es una CPU, el byte
de mayor valor se pone a "0" (independientemente del slot de la CPU).
Si el NOM está instalado en el slot 7 del bastidor, el byte de mayor valor del registro
de acceso 1 tiene el siguiente aspecto:

Byte de mayor valor Slot 1 a 16


Byte de menor valor Dirección de destino (valor binario entre 1 y 64 (normal) o entre 65 y 255
(extendido))

160 33002530 05/2010


OUT_IN_CHAR
33002530 05/2010

OUT_IN_CHAR: envío/recepción
de cadenas de caracteres
14
Objetivo
En este capítulo se describe la función de comunicación OUT_IN_CHAR.

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Descripción 162
Pantalla de entrada asistida 166
Ejemplo de cómo enviar/recibir una cadena de caracteres 168

33002530 05/2010 161


OUT_IN_CHAR

Descripción

Descripción de la función
La función OUT_IN_CHAR permite emitir una cadena de caracteres de 210 bytes
como máximo (120 para el conector terminal), seguida de una solicitud de recepción
de mensaje (la emisión o la recepción solas también son posibles).
La cadena de caracteres puede estar contenida en una variable estática
(véase Unity Pro, Lenguajes y estructura del programa, Manual de referencia ) o
determinada en forma de valor inmediato (serie de bytes entre apóstrofes,
por ejemplo: 'Mensaje que se va a enviar').
Estas cadenas de caracteres pueden contener caracteres especiales y deben
empezar por el carácter $ seguido del valor hexadecimal del carácter que se va a
transmitir, por ejemplo, $0D.
Pueden utilizarse algunos caracteres especiales (véase Unity Pro, Lenguajes y
estructura del programa, Manual de referencia ), como, por ejemplo:
$R = CR (retorno de carro), $L = LF (retorno de línea), $N = CR+LF.
Los parámetros adicionales EN y ENO se pueden configurar.

Representación en FBD
Representación:

162 33002530 05/2010


OUT_IN_CHAR

Representación en LD
Representación:

Representación en IL
Representación:
Dirección LD
OUT_IN_CHAR Mode, Data_to_Send, Management_Param,
Received_Data

Representación en ST
Representación:
OUT_IN_CHAR(Address, Mode, Data_to_Send, Management_Param,
Received_Data);

33002530 05/2010 163


OUT_IN_CHAR

Descripción de los parámetros


En la siguiente tabla se describen los parámetros de entrada:

Parámetro Tipo Comentario


Dirección ARRAY [0..5] OF Dirección de la entidad de destino del
INT intercambio. Sólo se admiten las direcciones
que terminan en SYS (ejemplo:
{Red.Estación}SYS).
Modalidad INT Modo de funcionamiento:
z 1: emisión seguida de una puesta en modo
de recepción
z 2: emisión de un mensaje
z 3: puesta en modo de recepción del
mensaje
Data_to_Send STRING Cadena de caracteres que se va a enviar. Esta
cadena de caracteres debe existir en el
momento de la llamada de la función, aunque
no se vaya a emitir ningún dato (modo de
recepción simple, por ejemplo).

En la siguiente tabla se describen los parámetros de entrada/salida:

Parámetro Tipo Comentario


Management_Param ARRAY [0..3] OF Tabla de gestión del intercambio
INT (véase página 33).

En la siguiente tabla se describen los parámetros de salida:

Parámetro Tipo Comentario


Received_Data STRING Cadena de caracteres recibida. Esta cadena de
caracteres debe existir obligatoriamente en el
momento de la llamada de la función, aunque
no se vaya a recibir ningún dato (por ejemplo,
modo de emisión simple).

NOTA: Durante una emisión o una emisión seguida de una recepción, se


recomienda inicializar la cuarta palabra de la tabla de gestión (longitud) antes de la
ejecución de la función. Por otro lado, la longitud de la cadena de caracteres
recibida se memoriza en esta misma palabra al final del intercambio. No obstante,
es necesario definir en el momento de la configuración una condición de parada
(véase Premium y Atrium en Unity Pro, Enlace serie asíncrono, Manual del usuario).
Para enviar cadenas de caracteres que contienen caracteres de final de cadena
(NULL), es necesario:

164 33002530 05/2010


OUT_IN_CHAR

z Utilizar STRING localizados,


z Inicializar la última palabra de la tabla de gestión de intercambios con el número
de caracteres que se van a emitir. Si inicializa la palabra con el valor 0, la cadena
enviada se detendrá en el primer carácter NULO que encuentre. Si inicializa la
palabra con un valor, la longitud de la cadena de caracteres enviada será igual a
este valor.

33002530 05/2010 165


OUT_IN_CHAR

Pantalla de entrada asistida

Presentación
Para esta función de comunicación, puede solicitar la pantalla de entrada asistida.
Tenga en cuenta que la pantalla de entrada asistida no está disponible para
Modicon M340.
NOTA: Los símbolos de variable se aceptan en los diferentes campos de la
pantalla.

Ilustración
La pantalla siguiente muestra un ejemplo de la pantalla de entrada asistida de la
función:

Dirección
Para PLC Premium, el tipo de objeto posible es el siguiente:
z ADDR(STRING).
z ARRAY [0..5] OF INT.
NOTA: Si introduce un valor directamente en un campo, el botón de entrada de
dirección asistida se vuelve gris.

166 33002530 05/2010


OUT_IN_CHAR

Modo
La selección de la lista desplegable es la siguiente:
z intercambio,
z transmisión,
z recepción.
Muestra directamente el valor inmediato 1, 2 o 3.
NOTA: Basta con seleccionar la solución que desee en el menú desplegable.
NOTA: Si utiliza el campo de entrada en lugar del menú, puede introducir una
variable de tipo INT, esté o no localizada.

Cadena para enviar


La cadena que se va a enviar es una variable de tipo STRING. Esta variable se debe
declarar antes de su uso.
Si la elección de la cadena es una variable (por ejemplo, String_0), el campo de
entrada de valor inmediato desaparece.

Cadena para recibir


El área de recepción es una variable de tipo STRING. El tamaño de esta variable es
una función del número de caracteres que se van a recibir. Esta variable debe
declararse antes de emplearse en esta pantalla.

Informe
El informe es una matriz de 4 enteros.
NOTA: Tenga cuidado de no utilizar varias áreas de memoria idénticas para las
tablas de informes; de lo contrario, la función de lectura de variables podría no
funcionar.

33002530 05/2010 167


OUT_IN_CHAR

Ejemplo de cómo enviar/recibir una cadena de caracteres

Presentación
Supongamos que desea enviar una cadena de caracteres Str_1 de la estación 1
de la red 20 al puerto de terminal del la estación 5, y después recibir una cadena de
caracteres Str_2 del puerto de terminal de la estación 5 de la misma red.
En este caso, una terminal de visualización está conectada al puerto de terminal
de la estación 5 de la red 20.
La cadena que se va a enviar contiene diez caracteres.
La tabla de gestión de la función está compuesta por la tabla de palabras
%MW170:4.

Ilustración
Las dos estaciones se conectan a través de una red Fipway.

Programación
Programación en ST:

SI RE(%I0.3.8) Y NO %MW170.0 ENTONCES


(* inicialización de los datos para enviar *)
%MW173 := 10;
(* función de comunicación *)

OUT_IN_CHAR(ADDR(’{20.5}0.0.0.SYS’),1,Str_1,%MW170:4,Str_2);
END_IF;

168 33002530 05/2010


OUT_IN_CHAR

Parámetros de petición:

Parámetros Descripción
ADDR(‘{20.5}0.0.0.SYS’) z {20.5}: red 20, estación 5
z 0: bastidor
z 0: módulo
z 0: canal 0
z SYS: dirección de sistema
1 Transmisión seguida de recepción
Str_1 Variable de tipo STRING que contiene el mensaje para enviar
%MW170:4 Tabla de gestión
Str_2 Variable de tipo STRING que contendrá el mensaje recibido

NOTA: Antes de que la función se inicie, inicialice el parámetro de longitud (en el


ejemplo: %MW173) con el valor correspondiente al número de caracteres (en bytes)
para enviar a Str_1.
Al final del intercambio, %MW173 contendrá la longitud de los datos recibidos (en
bytes).

33002530 05/2010 169


OUT_IN_CHAR

170 33002530 05/2010


OUT_IN_MBUS
33002530 05/2010

OUT_IN_MBUS: función de
comunicación Modbus
15
Objetivo
En este capítulo se describe la función de comunicación OUT_IN MBUS.

Contenido de este capítulo


Este capítulo contiene las siguientes secciones:
Sección Apartado Página
15.1 Presentación general del bloque de comunicación 172
OUT_IN_MBUS
15.2 Descripción del bloque de comunicación OUT_IN_MBUS 177
15.3 Instalación del bloque de comunicación OUT_IN_MBUS 189
15.4 Ejemplo de uso del bloque de comunicación OUT_IN_MBUS 197

33002530 05/2010 171


OUT_IN_MBUS

15.1 Presentación general del bloque de comunicación


OUT_IN_MBUS

Objeto
Este subcapítulo ofrece una breve descripción del bloque de comunicación
OUT_IN_MBUS.

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
Descripción de la función 173
Casos de uso 174
Funciones 176

172 33002530 05/2010


OUT_IN_MBUS

Descripción de la función

Introducción
La función OUT_IN_MBUS se utiliza para emular una comunicación de maestro
Modbus desde un enlace serie configurado en modalidad de caracteres.
En combinación con la posibilidad de pasar una configuración de esclavo Modbus
sobre la marcha a una configuración en modo de caracteres mediante la función
WRITE_CMD, esta función permite al PLC funcionar como maestro o esclavo
Modbus en el mismo enlace.
NOTA: Esta función sólo es útil cuando funcionan simultáneamente las dos
modalidades de maestro y esclavo Modbus. Si no es el caso, se recomienda utilizar
los estándares de EF READ_VAR y WRITE_VAR para gestionar la función de
maestro Modbus (la función de esclavo Modbus la gestiona implícitamente el
sistema). En este caso, consulte la documentación de Modbus.
NOTA: Procure que dos maestros (en el mismo bus) no envíen dos peticiones
simultáneamente. De lo contrario, ambas se perderán y cada informe tendrá un mal
resultado, que podría ser 16#0100 (la petición no se ha podido procesar) o
16#ODFF (falta el esclavo).

ADVERTENCIA
COMPORTAMIENTO INESPERADO DE LA APLICACIÓN: ESCRITURA DE
VARIABLES EN ESCLAVOS
Antes de escribir variables de un maestro en un esclavo, asegúrese de que el
comportamiento resultante de la aplicación siga siendo aceptable.
Si no se siguen estas instrucciones pueden producirse lesiones personales
graves o mortales o daños en el equipo.

33002530 05/2010 173


OUT_IN_MBUS

Casos de uso

Modalidad nominal
La mayoría de las aplicaciones constan de un PC que contiene las aplicaciones de
supervisión. El supervisor es un maestro de Modbus y se comunica con diferentes
esclavos. Esta modalidad de funcionamiento recibe el nombre de modalidad
nominal.
En la ilustración siguiente se representa la modalidad nominal (supervisor a
esclavo):

174 33002530 05/2010


OUT_IN_MBUS

Modalidad de excepción
Si así se solicita, un PLC debe tener la capacidad de pasar del estado esclavo de
Modbus al estado maestro Modbus con el fin de enviar peticiones a otros PLC o
dispositivos. Este paso de una modalidad a otra recibe el nombre de modalidad de
excepción.
Una vez finalizada la modalidad de excepción, el sistema debe poder recuperar su
estado inicial (modalidad nominal).
En la ilustración siguiente se representa la modalidad de excepción (de maestro a
esclavo):

33002530 05/2010 175


OUT_IN_MBUS

Funciones

Presentación
La función OUT_IN_MBUS admite:
z Los códigos Modbus 1, 2, 3, 4, 5, 6, 15 y 16 (véase página 181)
z Las modalidades ASCII y RTU (véase página 185)
z El direccionamiento completo (véase página 181)
La función OUT_IN_MBUS se presenta en forma de DFB cuya ejecución debe
reiniciarse en cada ciclo del PLC cuando el bit de actividad está en 1.
La función está disponible en PLC Premium a través de una tarjeta de comunicación
TSXSCP111 o TSXSCP114 instalada en el procesador, o bien de un módulo host
(TSXSCY21601 o TSXSCY11601).

Restricciones
En cada puerto, no debe activarse más de un DFB OUT_IN_MBUS
simultáneamente. Igualmente, no deben utilizarse simultáneamente los bloques
PRINT_CHAR, INPUT_CHAR o OUT_IN_CHAR.
La función OUT_IN_MBUS no admite:
z cambio de parámetros de las capas físicas o de conexión: flujo, formato de
caracteres, paso de RTU a ASCII o inversión o gestión de señales RS232.
z conflictos y errores de comunicación que puedan resultar de la presencia de 2
maestros de Modbus activos de forma simultánea en la misma conexión.
z ninguna modalidad de servicio que pueda resultar de un fallo o de la conexión
temporal de una tarjeta de comunicación.
z configuración ni gestión de módems.

176 33002530 05/2010


OUT_IN_MBUS

15.2 Descripción del bloque de comunicación


OUT_IN_MBUS

Objeto
Este subcapítulo ofrece una descripción detallada del bloque de comunicación
OUT_IN_MBUS.

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
Representaciones y parámetros 178
Parámetro MbusCmd 181
Parámetro RetryLmt 184
Parámetro DataBits 185
Parámetro RespTout 186
Parámetro MasterDataArea 187
Parámetro Status 188

33002530 05/2010 177


OUT_IN_MBUS

Representaciones y parámetros

Representación FBD
Representación:

Representación LD
Representación:

178 33002530 05/2010


OUT_IN_MBUS

Representación IL
Representación:
Dirección LD
OUT_IN_MBUS AD, MC, RL, DB, AB, MDA, RT, AC, DO, ERR, ST

Representación ST
Representación:
OUT_IN_MBUS(AD, MC, RL, DB, AB, MDA, RT, AC, DO, ERR, ST);

Descripción de parámetros
En la siguiente matriz se describen los parámetros de entrada:

Parámetro Tipo Comentario


ADDR ADDR_TYPE Información acerca de la dirección del puerto
de comunicación del dispositivo esclavo.
Esta dirección debe aparecer de la forma
siguiente: ADDR(’r.m.c.SYS’).
Abreviaturas utilizadas: r = bastidor, m = slot del
módulo, c = canal.
MBUSCMD ARRAY [1.. 4] OF Definición (véase página 181)de la matriz
INT Modbus.
RETRYLMT INT Número de intentos (véase página 184) del
bloque para enviar un mensaje creado por el
bloque.
DATABITS BOOL Mensajes (véase página 185) Modbus para
enviar en modalidad ASCII (DATABITS =0) o
en modalidad RTU (DATABITS=1).
RESPTOUT INT Tiempo de espera (véase página 186) del
bloque.
ABORT BOOL Bit de cancelación de DFB.

33002530 05/2010 179


OUT_IN_MBUS

En la siguiente matriz se describe el parámetro de entrada y salida:

Parámetro Tipo Comentario


MASTERDATAAREA ARRAY [x.. y] OF Área de datos (véase página 187) del PLC
INT maestro.

NOTA: Para leer uno de los últimos ocho bits de la memoria, es necesario leerlos
todos ya que, de lo contrario, la función devuelve un informe de estado de error.
Entonces es posible extraer el bit que necesite.
NOTA: Si el parámetro de entrada y salida utiliza una matriz dinámica, debe marcar
en las matrices dinámicas Unity Pro Allow [ANY_ARRAY_XXX] en herramienta →
opción de proyecto →extensión de lenguaje.
En la siguiente matriz se describen los parámetros de salida (solo lectura):

Parámetro Tipo Comentario


RETRY INT El valor visualizado muestra el número actual
de intentos realizados por el bloque.
ACTIVE BOOL El valor 1 indica que se está realizando una
operación.
DONE BOOL El valor 1 indica que la operación se ha
completado.
ERROR BOOL El valor 1 indica que se ha producido un error.
STATUS INT El valor muestra un código de estado
(véase página 188) generado por el bloque.

180 33002530 05/2010


OUT_IN_MBUS

Parámetro MbusCmd

Definición del parámetro MbusCmd


El parámetro MbusCmd corresponde al comando Modbus.
El parámetro MbusCmd consta de una matriz de 4 registros como la que se muestra
a continuación:

Contenido Descripción Descripción


MbusCmd[1] Dirección de Esta palabra contiene la dirección del PLC Modbus esclavo.
esclavo El rango de direcciones permitidas es de 0 a 248.
La dirección 0 está reservada para enviar un mensaje
Modbus a diversos PLC. Este tipo de transmisión recibe el
nombre de modalidad de difusión.
La modalidad de difusión admite únicamente los códigos de
función Modbus que escriben los datos del PLC maestro a
los PLC esclavos. Por el contrario, no admite los códigos de
función Modbus que leen los datos procedentes de PLC
esclavos.
La dirección 248 esta reservada para la comunicación punto
a punto en los casos en que no se conozca la dirección del
esclavo. No todos los dispositivos admiten esta dirección.
MbusCmd[2] Código de El bloque OUT_IN_MBUS admite los siguientes códigos de
función función:
Modbus z 01 = lectura de varios bits de salida (0x)
z 02 = lectura de varios bits de entrada (1x)
z 03 = lectura de varios registros de salida (4x)
z 04 = lectura de varios registros de entrada (3x)
z 05 = escritura de un solo bit de salida (0x)
z 06 = escritura de un solo registro de salida (4x)
z 15 = escritura de varios bits de salida (0x)
z 16 = escritura de varios registros de salida (4x)

Nota: Cuando el PLC esclavo es de tipo Premium, todos los


bits se convierten en %M, mientras que los registros se
convierten en %MW.

33002530 05/2010 181


OUT_IN_MBUS

Contenido Descripción Descripción


MbusCmd[3] Área de En los comandos de lectura, el área de datos del PLC
datos del esclavo es el origen de los datos. En los comandos de
PLC esclavo escritura, el área de datos del PLC esclavo es el destino de
los datos.
Por ejemplo:
z Para leer los bits de salida del 300 al 500 de un PLC
esclavo, introduzca 300 en este campo.
z Para escribir los datos de un PLC maestro en el registro
100 de tipo 4x de un PLC esclavo, introduzca 100 en este
campo.
En función del tipo de comando Modbus (lectura o escritura),
las áreas de datos de origen y de destino deberán coincidir
con las de la siguiente tabla (véase página 182).
MbusCmd[4] Cantidad Este registro contiene la cantidad de datos de deben
escribirse o leerse en el PLC esclavo.
Por ejemplo, introduzca 100 para leer 100 registros de salida
en el PLC esclavo, o 32 para escribir 32 bits de salida en un
PLC esclavo.
Existe un límite de tamaño que dependerá del código de
función Modbus utilizado y de la modalidad de transmisión
(RTU o ASCII). Los valores límite de MbusCmd[4] aparecen
detallados en la siguiente tabla (véase página 183). Este
tamaño no es significativo para los códigos de función 5 y 6.
Nota: El límite del área de memoria dependerá del
dispositivo y de los parámetros del esclavo.

MbusCmd[3]
La tabla siguiente presenta el área de datos del PLC esclavo para MbusCmd[3].
Esta área de datos depende del código de función Modbus utilizado y del tipo de
PLC esclavo:

Código de función Área de datos para Área de datos para


dispositivo Modbus PLC Premium
estándar
01 (lectura de varios bits de salida [0x]) 0x (origen) %M (origen)
02 (lectura de varios bits de entrada [1x]) 1x (origen) %M (origen)
03 (lectura de varios registros de salida [4x]) 4x (origen) %MW (origen)
04 (lectura de varios registros de entrada [3x]) 3x (origen) %MW (origen)
05 (escritura de un solo bit de salida [0x]) 0x (destino) %M (destino)
06 (escritura de un solo registro de salida [4x]) 4x (destino) %MW (destino)
15 (escritura de varios bits de salida [0x]) 0x (destino) %M (destino)
16 (escritura de varios registros de salida [4x]). 4x (destino) %MW (destino)

182 33002530 05/2010


OUT_IN_MBUS

MbusCmd[4]
La tabla siguiente presenta el valor límite de MbusCmd[4]. Este valor depende del
código de función Modbus utilizado y de la modalidad de transmisión:

Código de función Modalidad RTU Modalidad ASCII


(8 bits) (7 bits)
01 (lectura de varios bits de salida [0x]) 1.000 500
02 (lectura de varios bits de entrada [1x]) 1.000 500
03 (lectura de varios registros de salida [4x]) 100 50
04 (lectura de varios registros de entrada [3x]) 100 50
05 (escritura de un solo bit de salida [0x]) 1 1
06 (escritura de un solo registro de salida [4x]) 1 1
15 (escritura de varios bits de salida [0x]) 1.000 500
16 (escritura de varios registros de salida [4x]) 100 50

33002530 05/2010 183


OUT_IN_MBUS

Parámetro RetryLmt

Definición
Este parámetro indica el número de intentos de envío de un mensaje efectuados por
el bloque OUT_IN_MBUS hasta la recepción de una respuesta correcta por parte de
un dispositivo esclavo (PLC, módem, etc.).
Cuando la respuesta no se estructura completamente en el tiempo indicado, el
bloque genera un error y un código de error.
El número de reintentos debe estar comprendido entre 0 y 32.767.
Este campo se utiliza de forma conjunta con RespTout.

184 33002530 05/2010


OUT_IN_MBUS

Parámetro DataBits

Definición
Los mensajes Modbus pueden enviarse en modalidad ASCII o RTU.
El modo ASCII utiliza 7 bits de datos, mientras que la modalidad RTU utiliza 8. Para
enviar mensajes en caracteres RTU, Databits debe tomar el valor 1.
El valor deberá corresponderse con la configuración de la tarjeta de
comunicación.
NOTA: Para evitar problemas en caso de modificación de la configuración, utilice
constantes del sistema de tipo %KWr.m.c.1.8 para inicializar este parámetro.

33002530 05/2010 185


OUT_IN_MBUS

Parámetro RespTout

Definición
Este parámetro indica el tiempo de espera del bloque OUT_IN_MBUS hasta la
recepción de una respuesta correcta por parte de un dispositivo esclavo (PLC,
módem, etc.).
Cuando la respuesta no se estructura completamente en el tiempo indicado, el
bloque genera un error. Una vez transcurrido este tiempo, el sistema no admitirá
ninguna respuesta.
La base de tiempo es de 100 ms. Los valores válidos están comprendidos entre 0
(espera infinita) y 32767.
El timeout empieza la cuenta atrás con el envío del último carácter del mensaje.

186 33002530 05/2010


OUT_IN_MBUS

Parámetro MasterDataArea

Definición
En los comandos de lectura, el área de datos del PLC maestro será el destino de
los datos reenviados por el esclavo.
En los comandos de escritura, el área de datos del PLC maestro es el origen de los
datos.
En los códigos de comandos Modbus 1, 2, 5 y 15, la codificación de los bits se lleva
a cabo de la forma siguiente:
z Los bits de 1 a 16 se almacenan en el primer elemento de la matriz de INT del
argumento, siendo el primer bit el menos significativo del elemento.
z Los bits de 17 a 32 se almacenan en el segundo elemento de la matriz, siendo
el bit 17 el menos significativo del elemento.
z Y así sucesivamente.

De esta forma, para intercambiar 1.000 bits, conviene declarar una matriz de 63 INT
(1.000/16 + 8).
NOTA: Se puede utilizar una área de datos de tipo entero %MW directamente en el
parámetro MasterDataArea (por ejemplo: %MW100:50 designa una matriz de 50
enteros que empieza en la dirección 100).
Primero se deberá convertir y volver a copiar una sucesión de elementos de una
matriz de bit de tipo %M en una matriz de enteros (INT), según la codificación
descrita a continuación.

33002530 05/2010 187


OUT_IN_MBUS

Parámetro Status

Definición
Este parámetro muestra un código de estado generado por el bloque
OUT_IN_MBUS.
La tabla siguiente muestra los diferentes códigos de estado:

Código de estado Descripción del estado


1 Excepción de Modbus – Función incorrecta
2 Excepción de Modbus – Dirección de datos incorrecta
3 Excepción de Modbus – Valor de datos incorrecto
4 Excepción de Modbus – Error de asiento esclavo
5 Excepción de Modbus – Confirmación
6 Excepción de Modbus – Asiento esclavo ocupado
7 Excepción de Modbus – Confirmación negativa
8 Excepción de Modbus – Error de paridad de memoria
104 La longitud de los datos no puede ser igual a cero.
108 Error indefinido
113 Suma de control LRC del PLC esclavo no válida
114 Suma de control CRC del PLC esclavo no válida
115 Código de función Modbus no válido
116 Timeout de mensaje de respuesta Modbus
124 Estado interno indefinido
125 Modalidad de difusión no permitida por esta función Modbus.
128 Respuesta inesperada procedente del esclavo de Modbus
130 Palabra de comando modificada durante la actividad
131 Número de caracteres incorrecto
200 Dirección de esclavo no comprendida en los límites
201 Error de comunicación con el puerto serie
202 Número binario no válido
203 Cantidad de datos excesiva
204 Área de datos del maestro insuficiente
205 El timeout debe tener un valor positivo.
206 Excepción de Modbus desconocida
207 Acción cancelada por el usuario
208 RetryLmt debe ser positivo.

188 33002530 05/2010


OUT_IN_MBUS

15.3 Instalación del bloque de comunicación


OUT_IN_MBUS

Objeto
Este subcapítulo describe la instalación del bloque de comunicación
OUT_IN_MBUS.

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
Configuración de la conexión serie 190
Procedimiento para programar 193
Uso de un módem 195

33002530 05/2010 189


OUT_IN_MBUS

Configuración de la conexión serie

Introducción
La utilización del bloque OUT_IN_MBUS requiere una correcta configuración previa
de la conexión serie.
Existen dos tipos de parámetros:
z Parámetros relativos a la transmisión y configurados desde Unity Pro
z Parámetros relativos a la aplicación y cuyo argumento ha pasado a la función

Recuperación de los parámetros de transmisión


La conexión serie de las tarjetas se configura desde Unity Pro. Estos parámetros
son:
z Velocidad de transmisión
z Retardo entre caracteres
z Bits de datos
z Bit de parada
z Paridad
Para permitir el intercambio de datos entre todos los dispositivos conectados al bus,
los parámetros de la conexión serie deben ser idénticos para todos.
La pantalla de configuración que permite introducir los parámetros depende de la
configuración de la modalidad nominal.

190 33002530 05/2010


OUT_IN_MBUS

Parámetros de transmisión de la modalidad Modbus


La ilustración siguiente representa una pantalla de configuración cuando la
modalidad nominal está en modalidad Modbus.

NOTA: El valor del parámetro de entrada Databit (véase página 185) del bloque
OUT_IN_MBUS debe corresponderse con el valor seleccionado en la ventana
‘Datos’ de la pantalla de configuración.
El uso de OUT_IN_MBUS requiere una conmutación dinámica en modalidad de
caracteres. En esta modalidad, las condiciones de parada (en caracteres o en
silencio) se encuentran desactivadas y no pueden modificarse desde la aplicación.
Por lo tanto, la función OUT_IN_CHAR no podrá utilizarse en la modalidad de
recepción (parada en timeout). En esta modalidad, sólo podrán usarse las
funciones INPUT_CHAR y INPUT_BYTES, para lo que se necesitará un número de
caracteres por recibir.

33002530 05/2010 191


OUT_IN_MBUS

Parámetros de transmisión de la modalidad de caracteres


La ilustración siguiente representa una pantalla de configuración cuando la
modalidad nominal está en modalidad de caracteres.

NOTA: El valor del parámetro de entrada Databit (véase página 185) del bloque
OUT_IN_MBUS debe corresponderse con el valor seleccionado en la ventana
‘Datos’ de la pantalla de configuración.
Cuando la configuración de la tarjeta usa la modalidad de caracteres:
z Las condiciones de parada (en modalidad de caracteres o silencio) configurables
en esta modalidad deben desactivarse para un correcto funcionamiento de
OUT_IN_MBUS. Por lo tanto, la función OUT_IN_CHAR no podrá utilizarse en
modalidad de recepción (parada en timeout). Sólo podrán usarse en esta
modalidad las funciones INPUT_CHAR y INPUT_BYTES, para lo que se
necesitará un número de caracteres por recibir.
z El retardo entre caracteres no puede configurarse. Por lo tanto, es conveniente
asegurarse de que el valor de este parámetro en los dispositivos Modbus
remotos sea compatible con la configuración de la modalidad de caracteres.

Parámetros relativos a la aplicación


Existen dos parámetros relativos a la aplicación que se transmiten como argumento
a la función OUT_IN_MBUS.
Estos parámetros son:
z Número de repeticiones (véase página 184)
z Retardo de respuesta (véase página 186)

192 33002530 05/2010


OUT_IN_MBUS

Procedimiento para programar

Procedimiento
La tabla siguiente contiene el procedimiento para programar el
bloque OUT_IN_MBUS:

Paso Acción Detalles


1 Preparar el puerto de z Si el puerto serie no se ha configurado en la modalidad
comunicación de caracteres, cambie la modalidad Modbus del puerto
a modalidad de caracteres enviando al puerto serie el
comando WRITE_CMD (véase página 194).
z Si se trata de una transmisión de módem, envíe el
comando HAYES utilizando el bloque PRINT_CHAR o
OUT_IN_CHAR para configurar el módem
(véase página 195).
z En las transmisiones de módem, utilice el comando
HAYES para enviar al módem un mensaje de
numeración utilizando el bloque PRINT_CHAR o
OUT_IN_CHAR. El mensaje de numeración se utiliza
para enviar un número de teléfono al módem
(véase página 195).
2 Inicializar parámetros Inicialice los parámetros de entrada del bloque DFB. No es
necesario repetir esta operación en cada ciclo del PLC.
3 Llamar al bloque z Se debe efectuar una llamada a OUT_IN_MBUS en cada
OUT_IN_MBUS ciclo del PLC hasta que el bit de actividad se ponga a
cero.
z Cuando el bit de actividad esté a cero, se deberá forzar
un bit en la condición de llamada para evitar llamadas
posteriores.
z Verifique el bit de error (en caso de error, la palabra de
estado exigirá la causa del error).
4 Reinicializar el puerto z Si se trata de una transmisión de módem, envíe el
de comunicación comando HAYES para enviar un mensaje de
desconexión al módem (véase página 195) utilizando el
bloque PRINT_CHAR o OUT_IN_CHAR.
z Si el puerto se ha conmutado a la modalidad de
caracteres (en el paso 1), vuelva a la modalidad inicial
del puerto con el comando WRITE_CMD
(véase página 194).

33002530 05/2010 193


OUT_IN_MBUS

Escritura de palabras de comando en un puerto de comunicación


Para enviar un WRITE_CMD a un puerto de comunicación deben seguirse estos
pasos:

Paso Acción
1 Comprobar si existe algún comando en espera
z Antes de ejecutar WRITE_CMD, comprobar si existe algún intercambio en
proceso que utilice el objeto de lenguaje %MWr.m.c.0. Para actualizar esta
palabra, conviene utilizar el bloque READ_STS.
2 Asignar la palabra de comando
z A continuación, se deberá modificar el valor del objeto de lenguaje de
comandos para ejecutar el comando deseado. En conexiones Modbus, el
objeto de lenguaje es la palabra interna %MWr.m.c.15. Por ejemplo, para
pasar de la modalidad Modbus a la modalidad de caracteres, %MWr.m.c.15
debe estar en 16#4000 (%MWr.m.c.15.14=1).
Nota: Sólo será necesario conmutar un único bit de 0 a 1 antes de transmitir el
WRITE_CMD.
3 Enviar el comando
z Por último, deberá ejecutarse WRITE_CMD para confirmar el comando.

En el ejemplo (véase página 197) siguiente, se utiliza la interfaz IODDT correspon-


diente para comunicar con el canal del puerto serie de comunicación.

194 33002530 05/2010


OUT_IN_MBUS

Uso de un módem

Descripción
Conviene familiarizarse con tres comandos para comunicar los módems telefónicos
con los PLC. Estos comandos son:
z Inicializar el módem
z Marcar el número
z Desconectar el módem
Es imprescindible enviar al módem un mensaje de inicialización, y después de
marcación, antes de enviarle mensajes ASCII o Modbus.
Una vez realizada la conexión entre los dos módems, se podrá enviar un número
ilimitado de mensajes ASCII o de mensajes de Modbus.
Cuando se haya enviado la totalidad de los mensajes, deberá enviar la cadena de
desconexión al módem.

Inicializar el módem
El mensaje de inicialización es un mensaje ASCII que contiene 512 caracteres
como máximo aunque, por lo general, basta con 50 caracteres para inicializar el
módem.
Puede utilizar cualquier comando Hayes AT como componente de la cadena de
incialización.
Ejemplo: mensaje Hayes típico de inicialización:
z AT&F&K0&Q0&D0V1X0Q0 <CR><LF>
NOTA: A fin de simplificar la programación, puede inicializar el módem desde un
terminal (por ejemplo: hiperterminal de Windows ) y no utilizar la función
OUT_IN_CHAR. Una vez cargados los parámetros en el módem, podrán guardarse
en la memoria no volátil con un comando AT, generalmente &W.

33002530 05/2010 195


OUT_IN_MBUS

Marcar el número del módem


El mensaje de marcación se utiliza para enviar el número de teléfono al módem.
Sólo se deberá incluir en el mensaje los comandos AT relativos a la marcación.
Ejemplo 1: marcación por frecuencia
z AT DT 6800326 <CR><LF>
Ejemplo 2: marcación por pulsos
z AT DP 6800326 <CR><LF>
Ejemplo 3: marcación por frecuencia con espera de tono
z AT DT W,6800326 <CR><LF>
NOTA: El valor de TimeOut debe ser alto puesto que la conexión entre dos módems
tarda algún tiempo (por ejemplo, defina el timeout en 3.0000ms). Si el valor es
demasiado bajo, se generará un código de estado (véase página 188) 116 desde el
bloque OUT_IN_MBUS. Es posible que se necesiten varios intentos antes de
encontrar el tiempo óptimo.

Desconectar el módem
El mensaje de desconexión se utiliza para desconectar el módem.
Ejemplo 1: mensaje Hayes típico de desconexión:
z +++AT H0 <CR><LF>
NOTA: El valor de TimeOut debe ser alto puesto que la desconexión de un módem
tarda algún tiempo (por ejemplo, defina el timeout en 30.000ms). Si el valor es
demasiado bajo, se generará un código de estado (véase página 188) 116 desde el
bloque OUT_IN_MBUS. Es posible que se necesiten varios intentos antes de
encontrar el tiempo óptimo.

196 33002530 05/2010


OUT_IN_MBUS

15.4 Ejemplo de uso del bloque de comunicación


OUT_IN_MBUS

Objeto
Este subcapítulo ofrece un ejemplo de uso del bloque de comunicación
OUT_IN_MBUS.

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
Descripción del ejemplo 198
Estructura de programación 199
Declaración de variables 201
Programación 202

33002530 05/2010 197


OUT_IN_MBUS

Descripción del ejemplo

Presentación
El ejemplo seleccionado corresponde a una aplicación de Modbus mediante
módems.
El ejemplo se explica en la ilustración siguiente:

Los dispositivos se comunican entre sí a través de un módem. El supervisor es un


maestro de Modbus, mientras que los PLC X e Y son esclavos.
La finalidad del ejemplo consiste en describir los valores de un área de datos del
PLC X en Y.
El PLC X debe escribir un área de datos de 41 enteros que empiece con la dirección
%MW100 en el PLC Y a partir de %MW100.
Para ello, el PLC X debe definirse como maestro de Modbus. La dirección de
Modbus del PLC X es 9, mientras que la de Y es 10.
A fin de simplificar la programación, los módems se inicializan con los parámetros
correctos mediante un terminal de programación. Estos parámetros se almacenan
en la memoria no volátil con los comandos AT&W.

198 33002530 05/2010


OUT_IN_MBUS

Estructura de programación

Comentarios sobre el procedimiento


La tabla siguiente resume el procedimiento de programación del ejemplo:

Paso n.º Descripción


0 Estado inicial de la función
Espera de la puesta a 1 del bit Start_4 para ir al paso 5.
5 Si no existe ningún comando en proceso en el puerto serie, se envía un
comando para que dicho puerto pase de la modalidad Modbus a la modalidad
de caracteres.
Avance hasta el paso 10.
10 Lectura del estado del puerto serie
z Si se produce un error en el puerto serie:
z Error_4 está en -2.
z avance hasta el paso 65.

z Si no se produce ningún error en el puerto serie y


z la modalidad de caracteres está activa, avance al paso 15.
z y la modalidad de caracteres no está activa, compruebe el estado del
paso a la modalidad de caracteres en 1.000 ciclos. Si, una vez concluidos
los 1.000 ciclos, el módem no ha cambiado, Error_4 estará en -1, y se
avanza hasta el paso 65.
15 Envío de un comando de numeración al módem a través del bloque
PRINT_CHAR y espera de la respuesta a través de INPUT_CHAR.
Ir al paso 20.
20 Si el resultado de PRINT_CHAR es correcto, se avanza hasta el paso 25. De lo
contrario, se avanza hasta el paso 65 con Error_4 en -3.
25 Si el resultado de INPUT_CHAR es correcto, se avanza hasta el paso 30. De lo
contrario, se avanza hasta el paso 65 con Error_4 en -4.
30 Si el módem responde, se avanza hasta el paso 35. De lo contrario, se avanza
hasta el paso 65 con Error_4 en -5.
35 Inicialización de los parámetros del bloque OUT_IN_MBUS
Avance hasta el paso 40.
40 z Llamada al bloque OUT_IN_MBUS
z Si el bit Active_4 está en 0
z y el bit Flag_Error_4 está en 0, avance hasta el paso 45.
z y el bit Flag_Error_4 está en 1, avance hasta el paso 45 con Error_4
en -6.
45 Envío de un comando de desconexión al módem desde el bloque PRINT_CHAR
Avance hasta el paso 50.

33002530 05/2010 199


OUT_IN_MBUS

Paso n.º Descripción


50 Si el resultado de PRINT_CHAR es correcto, avance hasta el paso 55. De lo
contrario, avance hasta el paso 65 con Error_4 definido con el valor 1.
55 Si no existe ningún comando en proceso en el puerto serie, se envía un
comando para que dicho puerto pase de la modalidad de caracteres a la
modalidad Modbus.
Avance hasta el paso 60.
60 Lectura del estado del puerto serie
z Si se produce un error en el puerto serie:
z Error_4 esta en 3.
z avance hasta el paso 65.

z Si no se produce ningún error en el puerto serie y


z se pasa a la modalidad Modbus, avance hasta el paso 65.
z y no se ha pasado a la modalidad Modbus, compruebe el estado del paso
a Modbus en 1.000 ciclos. Si, una vez concluidos los 1.000 ciclos, el
módem no ha cambiado, Error_4 estará en -2, y se avanza hasta el
paso 65.
65 Regreso al paso 0 (estado inicial de la función) con el bit Start_4 en 0.

200 33002530 05/2010


OUT_IN_MBUS

Declaración de variables

Presentación
En la tabla siguiente se detallan las variables utilizadas:

Variable Tipo Definición


Start_4 BOOL Bit de inicio de la función
Step_4 INT Paso de la función
Error_4 INT Código de error de la función
MngtPrint_4 ARRAY[0..4] of INT Matriz de parámetros de comunicación para el
bloque INPUT_CHAR
MngtInput_4 ARRAY[0..4] of INT Matriz de parámetros de comunicación para el
bloque PRINT_CHAR
ReqString_4 CADENA DE Comando de una cadena de caracteres al módem
CARACTERES
AnsString_4 CADENA DE Respuesta de una cadena de caracteres del
CARACTERES módem
Out_In_Mbus_4 OUT_IN_MBUS Instancia del bloque OUT_IN_MBUS
Adr_4 INT Puerto de comunicación de PLC esclavo
MbusCmd_4[1] INT Código de función Modbus
MbusCmd_4[2] INT Cantidad de datos por leer
MbusCmd_4[3] INT Dirección Modbus del PLC esclavo
MbusCmd_4[4] INT Comienzo del área de datos por leer del esclavo
RetryLmt_4 INT Cantidad de intentos
DataBits_4 INT Modalidad de transmisión (1 para RTU y 0 para
ASCII)
RespTout_4 INT Timeout
Retry_4 INT Número de intentos efectuados por el bloque
Active_4 BOOL El valor 1 indica que la operación está en proceso.
Done_4 BOOL El valor 1 indica que la operación ha concluido con
éxito.
Flag_Error_4 BOOL El valor 1 indica que se ha producido un error o
que la operación actual ha concluido.
Status_4 INT Código de estado generado por el bloque

33002530 05/2010 201


OUT_IN_MBUS

Programación

Programación en lenguaje ST
El siguiente ejemplo está programado en lenguaje literal estructurado ST. La
sección especializada se encuentra en la tarea maestra (MAST).
(* Function to write %MW100 to %MW140 in slave Y *)
(* --------------------------------------------- *)

CASE Step_4 OF

0:
(* Inicialización *)
IF (Start_4) THEN (* trigger flag *)
Error_4 := 0;
Step_4 := 5; (* next step *)
END_IF;

5:
(* Send command to switch serial port from modbus to
character mode *)

READ_STS(Ioddt_Pcmcia_0_3_1); (* read serial port status *)


IF (Ioddt_Pcmcia_0_3_1.EXCH_STS = 0) THEN (* no active
command *)
Ioddt_Pcmcia_0_3_1.CONTROL := 16#00; (* reset control
word *)
SET(Ioddt_Pcmcia_0_3_1.MB_TO_CHAR); (* set MB_TO_CHAR
command bit *)
WRITE_CMD (Ioddt_Pcmcia_0_3_1); (* send command *)
i := 0; (* initialize retry counter *)
Step_4 := 10; (* next step *)
END_IF;

202 33002530 05/2010


OUT_IN_MBUS

10:
(* Test result of switch command *)
READ_STS(Ioddt_Pcmcia_0_3_1); (* read serial port status *)
IF (Ioddt_Pcmcia_0_3_1.EXCH_STS = 0) THEN (* command
completed *)
RESET(Ioddt_Pcmcia_0_3_1.MB_TO_CHAR); (* reset
MB_TO_CHAR command bit *)
IF (Ioddt_Pcmcia_0_3_1.EXCH_RPT = 0) THEN (* no error *)
IF (AND(Ioddt_Pcmcia_0_3_1.PROTOCOL, 16#0F) = 03)
THEN (* character mode OK *)
Step_4 := 15; (* next step *)
ELSE
i := i + 1;
IF (i > 1000) THEN
Error_4 := -1; (* error *)
Step_4 := 65; (* next step = end *)
END_IF;
END_IF;
ELSE (* error in sending command to port *)
Error_4 := -2; (* error *)
Step_4 := 65; (* next step = end *)
END_IF;
END_IF;

15:
(* Send dial command to modem *)

Adr_4 := ADDR('0.3.1.SYS'); (* communication port *)


MngtPrint_4[3] := 50; (* timeout *)
MngtPrint_4[4] := 16; (* number of bytes to send *)
ReqString_4 := 'ATDT0102030405$N'; (* dial message *)
PRINT_CHAR(Adr_4, ReqString_4, MngtPrint_4);
MngtInput_4[3] := 300; (* timeout *)

33002530 05/2010 203


OUT_IN_MBUS

MngtInput_4[4] := 0; (* number of bytes to send *)


INPUT_CHAR(Adr_4, 0, 12, MngtPrint_4, AnsString_4); (* wait
modem reply *)
Step_4 := 20; (* next step *)

20:
(* Test PRINT_CHAR function result *)
IF (NOT MngtPrint_4[1].1) THEN
IF (MngtPrint_4[2] = 0) THEN
Step_4 := 25; (* success : next step *)
ELSE
Error_4 := -3; (* error *)
Step_4 := 65; (* next step = end *)
END_IF;
END_IF;

25:
(* Test INPUT_CHAR function result *)
IF (NOT MngtPrint_4[1].1) THEN
IF (MngtPrint_4[2] = 0) THEN
Step_4 := 30; (* success : next step *)
ELSE
Error_4 := -4; (* error *)
Step_4 := 65; (* next step = end *)
END_IF;
END_IF;

204 33002530 05/2010


OUT_IN_MBUS

30:
(* Test Modem reply *)
IF (AnsString_4 = 'CONNECT 9600') THEN
Step_4 := 35; (* success : next step *)
ELSE
Error_4 := -5; (* error *)
Step_4 := 65; (* next step = end *)
END_IF;

35:
(* Initialize OUT_IN_MBUS parameters *)
MbusCmd_4[1] := 10; (* slave PLC address *)
MbusCmd_4[2] := 16#06; (* Modbus function 16#06 *)
MbusCmd_4[3] := 100; (* slave PLC area = %MW100 *)
MbusCmd_4[4] := 41; (* quantity of data *)
RetryLmt_4 := 2; (* number of retry *)
DataBits_4 := %KW0.3.1.1.8; (* 1 = 8 bits -> RTU mode, 0
= 7 bits -> ASCII mode *)
RespTout_4 := 300; (* timeout = 30s *)
Flag_Error_4 := 0;
Step_4 := 40; (* next step *)

40:
(* Call OUT_IN_MBUS *)
Out_In_Mbus_4 (Adr_4, MbusCmd_4, RetryLmt_4, DataBits_4,
RespTout_4, Abort_4,
%MW100:41, Retry_4, Active_4, Done_4,
Flag_Error_4, Status_4);

33002530 05/2010 205


OUT_IN_MBUS

IF (NOT Active_4) THEN (* request completed *)


IF (NOT Flag_Error_4) THEN (* no error *)
Step_4 := 45; (* next step *)
ELSE (* error *)
Error_4 := -6; (* error *)
Step_4 := 45; (* next step *)
END_IF;
END_IF;

45:
(* Hangup modem *)
MngtPrint_4[3] := 50; (* timeout *)
MngtPrint_4[4] := 9; (* number of bytes to send *)
ReqString_4 := '+++ATH0$N'; (* hangup message *)
PRINT_CHAR(Adr_4, ReqString_4, MngtPrint_4);
Step_4 := 50; (* next step *)

50:
(* Test PRINT_CHAR function result *)
IF (NOT MngtPrint_4[1].1) THEN
IF (MngtPrint_4[2] = 0) THEN
(* Success : next step *)
Step_4 := 55;
ELSE
(* End on error *)
Error_4 := 1;
Step_4 := 65;
END_IF;
END_IF;

206 33002530 05/2010


OUT_IN_MBUS

55:
(* Send command to switch serial port from Modbus to
character mode *)
READ_STS(Ioddt_Pcmcia_0_3_1); (* read serial port status *)
IF (Ioddt_Pcmcia_0_3_1.EXCH_STS = 0) THEN (* no active
command *)
Ioddt_Pcmcia_0_3_1.CONTROL := 16#00; (* reset control
word *)
SET(Ioddt_Pcmcia_0_3_1.CHAR_TO_MB); (* set MB_TO_CHAR
command bit *)
WRITE_CMD (Ioddt_Pcmcia_0_3_1); (* send command *)
i := 0; (* initialize retry counter *)
Step_4 := 60; (* next step *)
END_IF;

60:
(* Test result of switch command *)
READ_STS(Ioddt_Pcmcia_0_3_1); (* read serial port status *)
IF (Ioddt_Pcmcia_0_3_1.EXCH_STS = 0) THEN (* command
completed *)
RESET(Ioddt_Pcmcia_0_3_1.CHAR_TO_MB); (* reset
CHAR_TO_MB command bit *)
IF (Ioddt_Pcmcia_0_3_1.EXCH_RPT = 0) THEN (* no error *)
IF (AND(Ioddt_Pcmcia_0_3_1.PROTOCOL, 16#0F) = 07)
THEN (* Modbus mode OK *)
Step_4 := 65; (* next step *)
ELSE
i := i + 1;
IF (i > 1000) THEN
Error_4 := 2; (* error *)
Step_4 := 65; (* next step *)
END_IF;
END_IF;
ELSE (* error in sending command to port *)

33002530 05/2010 207


OUT_IN_MBUS

Error_4 := 3; (* error *)
Step_4 := 65; (* next step *)
END_IF;
END_IF;

65:
(* End *)
Start_4 := 0; (* allow new demand *)
Step_4 := 0; (* goto waiting state *)

END_CASE;

208 33002530 05/2010


PRINT_CHAR
33002530 05/2010

PRINT_CHAR: envío de cadenas


de caracteres
16
Objetivo
En este capítulo se describe la función PRINT_CHAR.

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Descripción 210
Pantalla de entrada asistida 214
Ejemplo de envío de cadenas de caracteres a través de la red Fipway 216
Ejemplo de envío de cadenas de caracteres mediante la conexión serie de 218
procesadores Modicon M340

33002530 05/2010 209


PRINT_CHAR

Descripción

Descripción de las funciones


Para PLC Premium, la función PRINT_CHAR se utiliza para enviar una cadena de
caracteres de 4 Kbytes como máximo, 120 bytes al puerto de terminal, que debe
transmitirse a una conexión de modalidad de caracteres.
Para PLC Modicon M340, la función PRINT_CHAR se utiliza para enviar una cadena
de caracteres de 1.024 bytes como máximo.
La cadena de caracteres puede estar contenida en una variable estática
(véase Unity Pro, Lenguajes y estructura del programa, Manual de referencia ) o
definida en forma de valor inmediato (serie de bytes entre apóstrofes, por ejemplo,
'Mensaje que se va a enviar').
Estas cadenas de caracteres pueden contener caracteres especiales, y deben
empezar por el carácter $ seguido del valor hexadecimal del carácter que se va a
enviar, por ejemplo $0D.
Pueden utilizarse algunos caracteres especiales (véase Unity Pro, Lenguajes y
estructura del programa, Manual de referencia ), como por ejemplo:
$R = CR (retorno de carro), $L = LF (salto de línea), $N = CR+LF.
Pueden configurarse los parámetros adicionales EN y ENO.

Representación FBD
Representación:

210 33002530 05/2010


PRINT_CHAR

Representación LD
Representación:

Representación IL
Representación:
Dirección LD
PRINT_CHAR String_to_Send, Management_Param

Representación ST
Representación:
PRINT_CHAR(Address, String_to_Send, Management_Param);

33002530 05/2010 211


PRINT_CHAR

Descripción de parámetros
En la siguiente tabla se describen los parámetros de entrada:

Parámetro Tipo Comentario


Dirección ARRAY [0...5] OF Las instrucciones siguientes sólo son válidas
INT para PLC para PLC Premium:
Premium z La función ADDR proporciona la dirección del
ARRAY [0...7] OF canal de recepción del mensaje en modalidad
INT para PLC de caracteres.
Modicon M340 z Únicamente las direcciones que acaban en
SYS son posibles (por ejemplo: puerto de
terminal del procesador 0.0.0.SYS).
Las instrucciones siguientes sólo son válidas
para PLC Modicon M340:
z La función ADDM proporciona la dirección del
canal de recepción del mensaje en modalidad
de caracteres.
z La sintaxis de la dirección es del tipo ADDM
(‘r.m.c.node’). Asiento es un campo opcional
que puede ser SYS o estar vacío (por ejemplo,
ADDM(‘0.0.0.SYS’) es igual a ADDM(‘0.0.0’).
String_to_Send STRING Cadena de caracteres para enviar. Está
enclavada en una cadena de caracteres o se
proporciona como valor inmediato.
Nota: Debe incluirse esta cadena de caracteres,
incluso si no existen datos para enviar.

En la tabla siguiente se describen los parámetros de entrada/salida:

Parámetro Tipo Comentario


Management_Param ARRAY [0...3] OF Tabla de palabras utilizada para gestionar el
INT intercambio (véase página 33).
En PLC Modicon M340, existe un nuevo bit de
cancelación disponible en la palabra de rango 1
de la tabla de gestión de intercambio.
Este bit de cancelación se encuentra ubicado en
la palabra 1 de rango, que consta de dos bytes:
z Byte de mayor valor: número de intercambio.
z Byte de menor valor: bit de actividad (rango
0) y bit de cancelación (rango 1).
La EF PRINT_CHAR puede anularse mediante
la EF CANCEL, o estableciendo en 1 el bit de
cancelación de la tabla de gestión
(véase Modicon M340 con Unity Pro, Conexión
serie, Manual del usuario).

212 33002530 05/2010


PRINT_CHAR

Normas de programación
En la cadena que se va a transmitir, los caracteres especiales van precedidos del
carácter $. Los caracteres $ no los transmite el emisor; por lo tanto, no deben
confirmarse durante la inicialización del parámetro de longitud.
Los espacios entre dos caracteres se contabilizan con un byte.
Del mismo modo, en el ejemplo PRINTING IN PROGRESS$L$R, la longitud de los
datos que se van a emitir es de 22 bytes.
En PLC Premium, son necesarios varios ciclos de PLC para enviar una cadena de
caracteres de más de 240 bytes (la cadena está fragmentada). Por tanto, es
importante asegurarse de que no se modifiquen los datos de gestión durante el
procesamiento de la función. El sistema transmite la cadena de forma coherente en
varios fragmentos, pero no prohíbe la transmisión de otra cadena de caracteres
entre dos fragmentos.
En PLC Modicon M340, es necesario un ciclo de PLC para enviar una cadena de
caracteres de una longitud máxima de 1.024 bytes. Por ello, es importante
asegurarse de que no se modifiquen los datos de gestión durante el procesamiento
de la función.
El puerto serie del PLC Modicon M340 es dúplex completo, por lo que es posible
enviar una función PRINT_CHAR, incluso si se ha enviado una función INPUT_CHAR
y todavía está pendiente.
NOTA: Para enviar cadenas de caracteres que contienen el final de los caracteres
de cadena (cero), es necesario:
z utilizar CADENAS localizadas,
z inicializar la última palabra de la tabla de gestión de intercambio con el número
de caracteres que deben enviarse. Si inicializa la palabra con el valor 0, la
cadena que se envía se detendrá en el primer carácter Cero que encuentre. Si
inicializa la palabra con un valor, la longitud de la cadena de caracteres enviada
será igual a este valor.

33002530 05/2010 213


PRINT_CHAR

Pantalla de entrada asistida

Presentación
Para esta función de comunicación, puede solicitar la pantalla de entrada asistida.
Tenga en cuenta que la pantalla de entrada asistida no está disponible para
Modicon M340.
NOTA: Los símbolos de variable se aceptan en los diferentes campos de la
pantalla.

Ilustración
La pantalla siguiente muestra un ejemplo de la pantalla de entrada asistida de la
función:

Dirección
Para PLC Premium, el tipo de objeto posible es el siguiente:
z ADDR(STRING).
z ARRAY [0..5] OF INT.
NOTA: Si introduce un valor directamente en un campo, el botón de entrada de
dirección asistida se vuelve gris.

214 33002530 05/2010


PRINT_CHAR

Cadena para enviar


La cadena que se va a enviar es una variable de tipo STRING o un valor inmediato.
En caso de seleccionar una variable de tipo STRING, el campo de valor
desaparece.

Informe
El informe es una matriz de cuatro enteros, que puede o no localizarse.
NOTA: Tenga cuidado de no utilizar varias áreas de memoria idénticas para las
tablas de informes; de lo contrario, la función de lectura de variables podría no
funcionar.

33002530 05/2010 215


PRINT_CHAR

Ejemplo de envío de cadenas de caracteres a través de la red Fipway

Presentación
Supongamos que desea enviar una cadena de caracteres a un terminal de
visualización conectado a una conexión integrada del módulo TSX SCY 21601 de
un PLC con una dirección de red de 20, estación 3. El módulo TSX SCY 21601 está
ubicado en el slot 2 del bastidor base.
La tabla de gestión se encuentra en %MW110:4 y la cadena que se va a enviar está
ubicada en la variable Str_1.

Ilustración
Las dos estaciones se conectan a través de una red Fipway.

Transmisión
Programación en ST:

SI RE(%I0.3.6) Y NO %MW110.0 ENTONCES


PRINT_CHAR(ADDR(’{20.3}0.2.0.SYS’),Str_1,%MW110:4);
END_IF;

216 33002530 05/2010


PRINT_CHAR

Parámetros de petición:

Parámetros Descripción
ADDR(‘{20.3}0.2.0.SYS’) z {20.3}: red 20, estación 3
z 0: bastidor
z 2: módulo
z 0: canal 0
z SYS: dirección de sistema
Str_1 Cadena de caracteres para enviar, la variable Str_1 es
del tipo STRING.
%MW110:4 Tabla de gestión

NOTA: Cada vez que la función se inicia, inicialice el parámetro de longitud (en el
ejemplo: %MW113) con el valor correspondiente al número de caracteres (en bytes)
para enviar a Str_1.

33002530 05/2010 217


PRINT_CHAR

Ejemplo de envío de cadenas de caracteres mediante la conexión serie de


procesadores Modicon M340

Presentación
Imagine que desea enviar una cadena de caracteres a un terminal de
entrada/visualización de datos compacto conectado a un puerto serie del
procesador Modicon M340.
La tabla de gestión se encuentra en %MW110:4 y la tabla que se va a enviar está
ubicada en la variable caract.

Ilustración
Un PLC Modicon M340 está conectado a un terminal de entrada/visualización de
datos TM8501:

Transmisión
Programación en ST:

SI (%M16) ENTONCES
PRINT_CHAR(ADDM(’0.0.0’),caract,gestion);
END_IF;

218 33002530 05/2010


PRINT_CHAR

Parámetros de petición:

Parámetros Descripción
ADDM(’0.0.0’) z 0: bastidor
z 0: módulo
z 0: canal 0
z SYS: dirección del sistema (opcional en los PLC Modicon M340)
caract Cadena de caracteres para enviar, variable caract.
gestion Tabla de gestión

NOTA: Cada vez que la función se inicia, inicialice el parámetro de longitud (por
ejemplo: %MW113 si la tabla de gestión está ubicada de %MW110 a %MW113) con el
valor correspondiente al número de caracteres (en bytes) para enviar a caract.

33002530 05/2010 219


PRINT_CHAR

220 33002530 05/2010


RCV_TLG
33002530 05/2010

RCV_TLG: recepción de
telegramas
17
Objetivo
En este capítulo se describe la función RCV_TLG.

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Descripción 222
Ejemplo de cómo recibir un telegrama 224

33002530 05/2010 221


RCV_TLG

Descripción

Descripción de las funciones


La función RCV_TLG se utiliza para leer datos de tipo telegrama desde una
aplicación remota.
Los datos recibidos deben tener una longitud máxima de 16 bytes. Al contrario que
las otras funciones de comunicación, esta función de procesa inmediatamente
(sincronizada). Por tanto, no hay bit de actividad ni parámetros de timeout.
Como consecuencia de esto, la tabla de enteros asignada a los parámetros de
gestión utiliza solo dos palabras en lugar de cuatro (los números de intercambio y
timeout no son necesarios).
NOTA: Esta función puede utilizarse en Fipway en el procesador únicamente, y
para las estaciones 0 a 15.
Se pueden configurar los parámetros adicionales EN y ENO.

Representación FBD
Representación:

Representación LD
Representación:

222 33002530 05/2010


RCV_TLG

Representación IL
Representación:
LD Management_Param
RCV_TLG Address, Received_Data

Representación ST
Representación:
RCV_TLG(Management_Param, Address, Received_Data);

Descripción de parámetros
En la tabla siguiente se describen los parámetros de entrada/salida:

Parámetro Tipo Comentario


Management_Param ARRAY [0.. 1] OF Tabla de palabras utilizadas para gestionar el intercambio. Esta tabla
INT está compuesta de 2 palabras: la palabra del informe y la palabra que
indica la cantidad de datos recibidos (en número de bytes). El informe
incluye:
z el informe de funcionamiento (byte de mayor valor de la primera
palabra),
z el informe de comunicación (byte de menor valor de la primera
palabra).
El informe de comunicación utiliza uno de los valores siguientes:
z 16#00 : intercambio correcto,
z 16#05 : parámetros de gestión incorrectos,
z 16#06 : parámetros específicos incorrectos,
z 16#09 : tamaño del búfer de recepción insuficiente,
z 16#0B: sin recursos de sistema,
z 16#0D: no se ha recibido ningún telegrama,
z 16#10 : módulo de red ausente,
z 16#0F: servicio de telegrama sin configurar.

En la tabla siguiente, se describen los parámetros de salida:

Parámetro Tipo Comentario


Dirección INT Dirección de la entidad que transmite el telegrama al final del
intercambio.
z El byte de menor valor corresponde al número de red hexadecimal.
z El byte de mayor valor corresponde al número de estación
hexadecimal.
Received_Data ARRAY [n... m] Búfer de recepción. Tabla de enteros que contiene los datos recibidos.
OF INT Esta tabla debe tener una longitud máxima de 8 enteros (16 bytes).

33002530 05/2010 223


RCV_TLG

Ejemplo de cómo recibir un telegrama

Presentación
Supongamos que desea recibir un telegrama de ocho palabras (16 bytes) de una
aplicación remota en una red Fipway.

Ilustración
Las dos estaciones se conectan a través de una red Fipway.

Programación
Programación en ST:

SI RE(%I0.3.11) ENTONCES
RCV_TLG(%MW200:2, %MW300,%MW310:8);
END_IF;

Parámetros de petición:

Parámetros Descripción
%MW200:2 Tabla de gestión
%MW300 Contiene la dirección del remitente al final del intercambio
%MW310:8 Contenido del telegrama recibido

NOTA: Cuando una función RCV_TLG se programa en una tarea de eventos, no se


puede utilizar en las tareas MAST o FAST.
Para ejecutar esta función de forma sincronizada, es necesario comprobar el
informe de funcionamiento inmediatamente después de la línea del programa que
activa la ejecución de esta función.

224 33002530 05/2010


READ_ASYN
33002530 05/2010

READ_ASYN: lectura asíncrona


de datos
18
Descripción

Descripción de la función
La función READ_ASYN permite leer 1 Kbyte de datos por el canal de mensajería
asincrónica de los acopladores TSX ETY en modo TCP/IP.
Los datos a los que se puede acceder en lectura son los siguientes:
z Bits internos y
z palabras internas.
La lectura asincrónica sólo se puede llevar a cabo entre dos estaciones del mismo
segmento de red Ethernet TCP/IP.
La función READ_ASYN se emite al final de la tarea MAST, únicamente si ésta se
encuentra configurada en modo periódico. Es posible activar ocho funciones al
mismo tiempo.
El principio de funcionamiento es idéntico al de la función WRITE_ASYN
(véase página 308).
El tamaño de los búferes de emisión y de recepción se expresa en palabras. Es de
512 palabras, es decir, 1024 bytes.
NOTA: La función de servidor asincrónico es compatible con los protocolos UNI-TE
V2.0 o V1. La función READ_ASYN utiliza el protocolo UNI-TE V2.0.
Los parámetros adicionales EN y ENO se pueden configurar.

33002530 05/2010 225


READ_ASYN

Representación en FBD
Representación:

Representación en LD
Representación:

Representación en IL
Representación:
LD Address
READ_ASYN Object_Type, First_Object, Object_Number,
Management_Param, Receiving_Array

Representación en ST
Representación:
READ_ASYN(Address, Object_Type, First_Object, Object_Number,
Management_Param, Receiving_Array);

226 33002530 05/2010


READ_ASYN

Descripción de los parámetros


En la siguiente tabla se describen los parámetros de entrada:

Parámetro Tipo Comentario


Address ARRAY [0.. 5] OF Dirección de la entidad de destino del
INT intercambio. Las direcciones son de tipo:
ADDR(’{Red.Estación}SYS.
Object_Type CADENA DE Tipo de objetos que se van a leer:
CARACTERES z ’%M’: bits internos,
z ’%MW’: palabras internas,
z ’%S’: bits de sistema y
z ’%SW’: palabras de sistema.
First_Object DINT Índice del primer objeto que se va a leer:
Object_Number INT Número de objetos que se van a leer.

En la siguiente tabla se describen los parámetros de entrada/salida:

Parámetro Tipo Comentario


Management_Param ARRAY [0.. 3] OF Tabla de gestión del intercambio
INT (véase página 33)

En la siguiente tabla se describen los parámetros de salida:

Parámetro Tipo Comentario


Receiving_Array ARRAY [n... m] Tabla de palabras que contiene el valor de los
OF INT objetos leídos.

33002530 05/2010 227


READ_ASYN

228 33002530 05/2010


READ_GDATA
33002530 05/2010

READ_GDATA: lectura de datos


globales Modbus Plus
19
Descripción

Descripción de la función
La función READ_GDATA permite leer los datos compartidos, llamados también
datos globales en una red Modbus Plus.
Los datos globales se comparten entre un máximo de 64 estaciones de una misma
red Modbus Plus. Cada estación puede escribir hasta 32 enteros que pueden
utilizar todas las estaciones de la red. A su vez, cada estación puede leer los 32
(como máximo) enteros de cada estación de la red.
Los parámetros adicionales EN y ENO se pueden configurar.

Representación en FBD
Representación:

Representación en LD
Representación:

33002530 05/2010 229


READ_GDATA

Representación en IL
Representación:
LD Address
READ_GDATA Management_Param, Receiving_Array

Representación en ST
Representación:
READ_GDATA (Address, Management_Param, Receiving_Array);

Descripción de los parámetros


En la siguiente tabla se describen los parámetros de entrada:

Parámetro Tipo Comentario


Address ARRAY [0.. 5] OF Dirección de la entidad de destino del
INT intercambio. Esta dirección se inicializa, antes
del intercambio, con el valor del nodo al que se
conecta la estación cuyos datos globales se
desean conocer.
Ejemplo de dirección: ADDR(’0.0.1.10’)
corresponde a la estación conectada al nodo 10
de la red. Las tres primeras cifras, 0.0.1,
corresponden a la dirección de la vía, tarjeta
PCMCIA Modbus Plus de Premium.

En la siguiente tabla se describen los parámetros de entrada/salida:

Parámetro Tipo Comentario


Management_Param ARRAY [0.. 3] OF Tabla de gestión del intercambio
INT (véase página 33).
No es necesario inicializar el parámetro de
longitud antes del inicio del intercambio.
Al finalizar este intercambio, el parámetro de
longitud (la cuarta palabra) contiene el número
de bytes de los que constan los datos
generados por la estación especificada en la
dirección.

En la siguiente tabla se describen los parámetros de salida:

Parámetro Tipo Comentario


Receiving_Array ARRAY [n... m] Tabla de palabras que contiene el valor de los
OF INT objetos leídos.

230 33002530 05/2010


READ_REG:
33002530 05/2010

READ_REG: lectura de registro

20
Introducción
En este capítulo se describe el bloque READ_REG.

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Descripción 232
Tipos de datos derivados 235
Modo de funcionamiento 237
Descripción de los parámetros 238

33002530 05/2010 231


READ_REG:

Descripción

Descripción de funciones
Con cada flanco ascendente en la entrada REQ, este bloque de función lee un área
de registro de un slave direccionado a través de Modbus Plus, Ethernet TCP/IP o
Ethernet SY/MAX.
NOTA: Para programar la función READ_REG debe conocer los procedimientos de
acceso utilizados en la red. La descripción detallada de las estructuras de ruta de
acceso Modbus Plus se encuentra en "Modbus Plus Network Planning and
Installation Guide". En el caso de que se implemente la ruta de acceso de Ethernet
TCP/IP o SY/MAX, se deberán utilizar los productos estándar de ruta de acceso de
Ethernet-IP. La descripción detallada de las rutas de acceso TCP/IP figura en el
"Manual de usuario sobre la configuración de Quantum con Unity Pro TCP/IP".
NOTA: En el programa puede utilizar diversos ejemplares de este bloque de
función. No obstante, no es posible instanciar estos ejemplares de forma múltiple.
Como parámetros adicionales se pueden configurar EN y ENO.

Representación en FBD
Representación:

232 33002530 05/2010


READ_REG:

Representación en LD
Representación:

Representación en IL
Representación:
CAL READ_REG_Instance (REQ:=StartReadOnce,
SLAVEREG:=OffsetAddress, NO_REG:=NumberOfRegisters,
ADDRFLD:=DataStructure, NDR=>SetAfterReadingNewData,
ERROR=>SetInCaseOfError, REG_READ=>RegisterToRead,
STATUS=>ErrorCode)

Representación en ST
Representación:
READ_REG_Instance (REQ:=StartReadOnce,
SLAVEREG:=OffsetAddress, NO_REG:=NumberOfRegisters,
ADDRFLD:=DataStructure, NDR=>SetAfterReadingNewData,
ERROR=>SetInCaseOfError, REG_READ=>RegisterToRead,
STATUS=>ErrorCode) ;

33002530 05/2010 233


READ_REG:

Descripción de los parámetros


Descripción de los parámetros de entrada

Parámetro Tipo de datos Significado


REQ BOOL Con cada flanco ascendente en la entrada REQ, este
bloque de función lee un área de registro de un slave
direccionado a través de Modbus Plus, Ethernet TCP/IP
o Ethernet SY/MAX.
SLAVEREG DINT Dirección de la primera dirección %MW en el slave desde
el que se debe leer.
NO_REG INT Número de direcciones que se deben leer desde el slave.
ADDRFLD WordArr5 Estructura de datos para la descripción de la dirección
Modbus Plus, TCP/IP o SY/MAX-IP.

Descripción de los parámetros de salida

Parámetro Tipo de datos Significado


NDR BOOL Ajustado a "1" durante un ciclo cuando se han leído datos
nuevos.
ERROR BOOL Ajustado a "1" durante un ciclo cuando se produce un
error.
STATUS WORD En caso de que se produzca un error al ejecutar la
función, el código de error permanecerá en esta salida
durante un ciclo.
Para código de error, consulte:
z Códigos de error de Modbus Plus, SY/MAX y Ethernet
TCP/IP, página 141
z Códigos de error específicos de SY/MAX, página 146
z Códigos de error de TPC/IP Ethernet, página 148

REG_READ ANY Datos que se van a leer.


(Se debe declarar una estructura de datos como Located
Variable para los datos que se van a leer).

Error de ejecución
Para obtener una lista de todos los códigos y los valores de error del módulo,
consulte Extendido, página 426.

234 33002530 05/2010


READ_REG:

Tipos de datos derivados

Descripción de elementos para WordArr5 en Modbus Plus


Descripción de elementos para WordArr5 en Modbus Plus:

Elemento Tipo de datos Descripción


WordArr5[1] WORD Byte menos significativo:
El registro de ruta de acceso 1 se utiliza para
determinar la dirección (dirección de ruta de acceso
una de cinco) del participante de destino en una
transmisión de red.
El último byte en la ruta de acceso que no se
corresponda con cero es el participante de destino.
Byte más significativo:
dirección de participante de origen.
z posición de slot del módulo al utilizar el puerto
Modbus Plus en el módulo NOM.
z establecido en 0 al utilizar el puerto Modbus Plus
en la CPU (independientemente del slot de la
CPU).
WordArr5[2] WORD Registro de ruta de acceso 2
WordArr5[3] WORD Registro de ruta de acceso 3
WordArr5[4] WORD Registro de ruta de acceso 4
WordArr5[5] WORD Registro de ruta de acceso 5

Descripción de elementos para WordArr5 en Ethernet TCP/IP


Descripción de elementos para WordArr5 en Ethernet TCP/IP

Elemento Tipo de datos Descripción


WordArr5[1] WORD Byte menos significativo:
índice de asignación MET (transportador de MBP por
Ethernet)
Byte más significativo:
slot del módulo NOE (16#FE si Ethernet está integrada
en la CPU)
WordArr5[2] WORD Byte 4 (MSB) de la dirección IP de 32 bits de destino
WordArr5[3] WORD Byte 3 de la dirección IP de 32 bits de destino
WordArr5[4] WORD Byte 2 de la dirección IP de 32 bits de destino
WordArr5[5] WORD Byte 1 (LSB) de la dirección IP de 32 bits de destino

33002530 05/2010 235


READ_REG:

Descripción de elementos para WordArr5 en Ethernet SY/MAX


Descripción de elementos para WordArr5 en Ethernet SY/MAX:

Elemento Tipo de datos Descripción


WordArr5[1] WORD Byte menos significativo:
índice de asignación MET (transportador de MBP por
Ethernet)
Byte más significativo:
slot del módulo NOE
WordArr5[2] WORD Número de estación de destino (o establecer en FF
hex)
WordArr5[3] WORD Terminador (establecer en FF hex)
WordArr5[4] WORD Sin significado
WordArr5[5] WORD Sin significado

236 33002530 05/2010


READ_REG:

Modo de funcionamiento

Modo de funcionamiento de los bloques READ_REG


Se puede programar un gran número de bloques de función READ_REG, pero
solamente pueden estar activas cuatro operaciones de lectura al mismo tiempo. En
este caso, no tiene importancia si dichas operaciones se realizan por medio de este
bloque de función u otros (p. ej. MBP_MSTR o CREAD_REG). Todos los bloques de
función emplean una ruta de transacción de datos y necesitan varios ciclos para
completar una orden.
NOTA: La comunicación TCP/IP entre un autómata Quantum (NOE 211 00) y un
autómata Momentum (todas las CPU TCP/IP y todos los módulos de E/S TCP/IP)
sólo es posible cuando en cada ciclo del autómata únicamente se lleva a cabo una
orden de escritura o de lectura. Si se envían varias órdenes por cada ciclo del
autómata, la comunicación permanece estancada, sin generar ningún mensaje de
error en el registro de estado del bloque de función.
La información de acceso completa está incluida en la estructura de datos
WordArr5 de la entrada ADDRFLD. El tipo del bloque de función conectado a esta
entrada se orienta de acuerdo con la red utilizada.
Utilice:
z El bloque de función ModbusP_ADDR para Modbus Plus.
z El bloque de función TCP_IP_ADDR para Ethernet TCP/IP.
z El bloque de función SYMAX_IP_ADDR para Ethernet SY/MAX.

NOTA: La estructura de datos WordArr5 también se puede utilizar con constantes.

33002530 05/2010 237


READ_REG:

Descripción de los parámetros

REQ
Un flanco ascendente inicia la transacción de lectura.
El parámetro se puede indicar como dirección directa, Located Variable, Unlocated
Variable o literal.

SLAVEREG
Principio del área en el slave direccionado en la que se leen los datos de origen. El
área de origen se encuentra siempre dentro del área del rango de direcciones
%MW.
NOTA: Para slaves de un PLC que no sea Unity Pro:
El área de origen se encuentra siempre dentro del área de registro 4x. SLAVEREG
espera la dirección de origen como offset dentro del área 4x. El "4" de la izquierda
no se tiene en cuenta (p. ej. 59 (contenido de las variables o valor del literal) =
40059).
El parámetro se puede indicar como dirección directa, Located Variable, Unlocated
Variable o literal.

NO_REG
Número de direcciones que se deben leer desde el slave direccionado (1 a 100).
El parámetro se puede indicar como dirección directa, Located Variable, Unlocated
Variable o literal.

NDR
La transición a estado ON durante un ciclo de programa implica la recepción datos
nuevos que están dispuestos para ser procesados.
El parámetro se puede indicar como dirección directa, Located Variable o Unlocated
Variable.

ERROR
La transición a estado ON durante un ciclo de programa implica que se ha
descubierto un nuevo error.
El parámetro se puede indicar como dirección directa, Located Variable o Unlocated
Variable.

238 33002530 05/2010


READ_REG:

REG_READ
Para este parámetro se debe definir una matriz (ARRAY) del tamaño del envío
requerido (≥ NO_REG). El nombre de esta matriz se transferirá como parámetro. Si
se define una matriz demasiado pequeña, sólo se transferirá la cantidad de datos
que tenga cabida en la matriz.
El parámetro se debe indicar como Located Variable.

STATUS
En caso de que se produzca un error al ejecutar la función, el código de error
permanecerá en esta salida durante un ciclo.
Para código de error, consulte:
z Códigos de error de Modbus Plus, SY/MAX y Ethernet TCP/IP, página 141
z Códigos de error específicos de SY/MAX, página 146
z Códigos de error de TPC/IP Ethernet, página 148

El parámetro se puede indicar como dirección, Located variable o Unlocated


variable.

33002530 05/2010 239


READ_REG:

240 33002530 05/2010


READ_VAR
33002530 05/2010

READ_VAR: lectura de variables

21
Objetivo
En este capítulo se describe la función de comunicación READ_VAR.

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Descripción 242
Pantalla de entrada asistida 247
Ejemplo de utilización en un bus Uni-Telway 249
Ejemplo de bits de lectura 251
Ejemplo de uso en una red 253
Ejemplo de lectura de palabras a través de la conexión serie de procesadores 255
Modicon M340
Ejemplo de comprobación de ejecución 258

33002530 05/2010 241


READ_VAR

Descripción

Descripción de la función
La función READ_VAR se utiliza para leer el valor de uno o más objetos de lenguaje:
z Bits internos
z Palabras internas

Los objetos de lectura deben ser siempre consecutivos. Pueden estar ubicados en
una CPU remota o en un dispositivo conectado a un canal de comunicación.
En los PLC Modicon M340, la función READ_VAR puede leer hasta 2000 bits
consecutivos en un dispositivo remoto.
En los PLC Premium, la función READ_VAR puede leer hasta 1000 bits consecutivos
en un dispositivo remoto, independientemente del dispositivo o del protocolo
utilizado (Uni-Telway o Modbus/Jbus).
NOTA: Sólo en el caso de los PLC Premium, la lectura de más de 1000 bits requiere
el uso de la función SEND_REQ.

ADVERTENCIA
INCOMPATIBILIDAD DE DATOS INTERCAMBIADOS
Las alineaciones de la estructura de datos no son las mismas para
Premium/Quantum y M340, así que compruebe que los datos intercambiados son
compatibles. Consulte DDT: la página Normas de asignación (véase Unity Pro,
Lenguajes y estructura del programa, Manual de referencia ) para las normas de
alineación.
Si no se siguen estas instrucciones pueden producirse lesiones personales
graves o mortales o daños en el equipo.

Pueden configurarse los parámetros adicionales EN y ENO.

Representación en FBD
Representación:

242 33002530 05/2010


READ_VAR

Representación en LD
Representación:

Representación en IL
Representación:
LD Address
READ_VAR Object_Type, First_Object, Object_Number,
Management_Param, Receiving_Array

Representación en ST
Representación:
READ_VAR(Address, Object_Type, First_Object, Object_Number,
Management_Param, Receiving_Array);

33002530 05/2010 243


READ_VAR

Descripción de parámetros
En la siguiente tabla se describen los parámetros de entrada:

Parámetro Tipo Comentario


Address ARRAY [0.. 5] OF INT Las instrucciones siguientes sólo son válidas para PLC Premium:
para Premium z La función ADDR proporciona la dirección del canal de
ARRAY [0.. 7] OF INT recepción del mensaje en modalidad de caracteres.
para Modicon M340 z Dirección de la entidad de destino del intercambio. Las
direcciones siguientes están prohibidas:
z {Red.Estación}APP,
z {Red.Estación}APP.núm.

Las instrucciones siguientes sólo son válidas para PLC Modicon


M340:
z La función ADDM proporciona la dirección del canal de
recepción del mensaje en modalidad de caracteres.
z La sintaxis de la dirección es del tipo ADDM ('r.m.c.nodo').

Object_Type STRING Tipo de objetos de lectura para PLC Premium:


z ’%M’: bits internos,
z ’%MW’: Palabras internas
z ’%S’: Bits de sistema
z ’%SW’: Palabras de sistema
z ’%I’: bits de entrada.
z ’%IW’: palabras de entrada.
Tipo de objetos de lectura para PLC Modicon M340:
z ’%M’: bits internos,
z ’%MW’: palabras internas,

First_Object DINT Índice del primer objeto que se va a leer.


Object_Number INT Número de objetos que se van a leer.

En la siguiente tabla se describen los parámetros de entrada/salida:

Parámetro Tipo Comentario


Management_Param ARRAY [0.. 3] OF INT Tabla de gestión de intercambio (véase página 33)
En los PLC Modicon M340, existe un nuevo bit de cancelación
disponible en la palabra de rango 1 de la tabla de gestión de
intercambio.
Este bit de cancelación se encuentra ubicado en la palabra de
rango 1, que consta de 2 bytes:
z Byte más significativo: Número de intercambio
z Byte menos significativo: Bit de actividad (rango 0) y bit de
cancelación (rango 1)
La EF READ_VAR puede anularse con CANCEL EF o
estableciendo en 1 el bit de cancelación de la tabla de gestión
(véase Modicon M340 con Unity Pro, Conexión serie, Manual del
usuario).

244 33002530 05/2010


READ_VAR

En la siguiente tabla se describen los parámetros de salida:

Parámetro Tipo Comentario


Receiving_Array ARRAY [n... m] OF INT Tabla de palabras que contiene el valor de los objetos leídos.

Normas de uso
Los tipos de objetos deben introducirse de forma coherente. Las entradas deben
escribirse todas en minúsculas o en mayúsculas; de lo contrario, la función
devuelve un informe igual a 16#06 (parámetros específicos incorrectos).
En el caso de los PLC Micro, Premium o Atrium que reciben la función READ_VAR,
el acceso de sólo lectura a los bits internos tiene las particularidades siguientes:
z El valor de forzado de los bits se devuelve en la respuesta.
z Como consecuencia, la lectura de un bit constituye dos bytes de respuesta:
z El primero contiene el valor de los 8 bits desde el bit solicitado.
z El segundo indica si dichos bits se han forzado.

z Para leer uno de los últimos 8 bits de la memoria, es necesario leerlos todos ya
que, de lo contrario, la función devuelve un informe de operación 16#01. Esta
particularidad se presenta también en los PLC Modicon M340.
NOTA: Se debe reservar espacio para los bytes de indicación de forzado en la tabla
de recepción; de lo contrario, se enviará en el informe un código de error 16#03.
NOTA: En el caso de los PLC Modicon M340, las funciones READ_VAR y
WRITE_VAR no pueden acceder a los bits forzados, ya que el protocolo Modbus no
admite esta acción.

33002530 05/2010 245


READ_VAR

Transacciones simultáneas
En la tabla siguiente se detallan las capacidades de cada canal de comunicación
para procesar transacciones de forma simultánea, de acuerdo con las distintas
configuraciones de los PLC Micro y Premium.

Configuración Micro TSX 57 10 TSX 57 20 TSX 57 TSX 57 46/56


23/30/40/45/55,
PCX 57, PMX 57
Puerto de terminal maestro Uni-Telway 4 4 4 4 8
Conexión PCMCIA o SCY maestro Uni- 1 8 8 8 8
Telway
Puerto de terminal esclavo cliente Uni- 4 1 1 1 8
Telway
Conexión PCMCIA o SCY esclava 1 1 1 1 1
cliente Uni-Telway
Puerto de terminal esclavo servidor Uni- 4 4 4 4 4
Telway
Conexión PCMCIA o SCY esclava 4 6 6 6 6
servidor Uni-Telway
Puerto de terminal Modbus 4 - - - -
Conexión PCMCIA o SCY Modbus 4 8 8 8 8
Modalidad de caracteres, bloque de 1 1 1 1 1
terminales
Conexión PCMCIA o SCY de modalidad 4 8 8 8 8
de caracteres
PCMCIA CANopen - 10 10 10 10
Conexión PCMCIA o SCY Fipway 4 8 8 8 8
Modbus Plus 4 4 4 4 4
Ethernet - 16 16 16 16
Ethernet incorporado - - - - 64

En la tabla siguiente se detallan las capacidades de cada canal de comunicación


para procesar transacciones de forma simultánea, de acuerdo con las distintas
configuraciones de los PLC Modicon M340.

Configuración BMX P34 1000 BMX P34 2000 BMX P34 BMX P34 2020 BMX P34
2010/20102 2030/20302
CANopen incorporado - - 16 - 16
Ethernet incorporado - - - 16 16
Puerto serie maestro 8 16 16 16 -
Modbus

246 33002530 05/2010


READ_VAR

Pantalla de entrada asistida

Presentación
Para esta función de comunicación, puede solicitar la pantalla de entrada asistida.
Tenga en cuenta que la pantalla de entrada asistida no está disponible para
Modicon M340.
NOTA: Los símbolos de variable se aceptan en los diferentes campos de la
pantalla.

Ilustración
En la pantalla siguiente se muestra un ejemplo de la pantalla de entrada asistida de
la función:

Dirección
Para PLC Premium, el tipo de objeto posible es el siguiente:
z ADDR(STRING).
z ARRAY [0..5] OF INT.

NOTA: Si introduce un valor directamente en un campo, el botón de entrada de


dirección asistida se vuelve gris.

33002530 05/2010 247


READ_VAR

Tipo de objeto para leer


Para PLC Premium, las opciones posibles son las siguientes:
z ‘%M’ para la lectura de bits internos.
z ‘%MW’ para la lectura de palabras internas.
z ‘%S’ para la lectura de bits de sistema.
z ‘%SW’ para la lectura de palabras de sistema.
z ‘%I’ para la lectura de bits de entrada.
z ‘%IW’ para la lectura de palabras de entrada.

Para PLC Modicon M340, las opciones posibles son las siguientes:
z ‘%M’ para la lectura de bits internos.
z ‘%MW’ para la lectura de palabras internas.

NOTA: Basta con seleccionar la solución que desee en el menú desplegable.

Dirección del primer objeto para leer


Los objetos posibles son de tipo DINT:
z variables,
z constantes,
z valor inmediato.

NOTA: Si introduce una constante, aparecerá un campo de entrada para ello. Si


introduce una variable, ésta puede o no localizarse.

Número de objetos consecutivos para leer


Los objetos posibles son del tipo INT:
z variables,
z constantes,
z valor inmediato.

NOTA: Si introduce una constante, aparecerá un campo de entrada para ello. Si


introduce una variable, ésta puede o no localizarse.

Área de recepción
El área de recepción es una matriz de enteros. El tamaño de la matriz depende del
número de objetos que deben leerse. Esta matriz de enteros puede o no localizarse.

Informe
El informe es una matriz de 4 enteros.
NOTA: Tenga cuidado de no utilizar varias áreas de memoria idénticas para las
tablas de informes; de lo contrario, la función de lectura de variables podría no
funcionar.

248 33002530 05/2010


READ_VAR

Ejemplo de utilización en un bus Uni-Telway

Presentación
El PLC maestro debe leer las palabras internas de %MW100 a %MW109 de la estación
de dirección 6 de un bus Uni-Telway. Los valores de las palabras leídas se
clasifican en función de la palabra interna %MW10, y los parámetros de gestión se
almacenan en función de %MW40.

Ilustración
Ambas estaciones están conectadas mediante un bus Uni-Telway.

33002530 05/2010 249


READ_VAR

Programación
Programación en LD:

Parámetros de petición:

Parámetros Descripción
’0.0.0.6’ z 0: bastidor
z 0: módulo
z 0: canal 0
z 6: dirección de destino
’%MW’ Tipo de objeto (palabra interna)
100 Dirección del primer objeto
10 Número de objetos consecutivos
%MW40:4 Informe
%MW10:10 Contenido de la respuesta

250 33002530 05/2010


READ_VAR

Ejemplo de bits de lectura

Presentación
En PLC Modicon M340, las funciones READ_VAR y WRITE_VAR no pueden acceder
a los bits forzados, ya que el protocolo Modbus no admite esta acción. Por lo tanto,
las instrucciones siguientes sobre bits forzados no pueden aplicarse a PLC
Modicon M340.
Los ejemplos siguientes ilustran la función de comunicación READ_VAR para la
lectura de bits. En este caso, la tabla de recepción contiene de forma consecutiva
el valor de los bits, así como la indicación de forzado.

Lectura de 32 bits internos


En ST, la sintaxis de la función de lectura de bits internos se presenta del modo
siguiente:
READ_VAR (ADDR(‘{20.1}0.5.1.3’),‘%M’, 0, 32, %MW100:4,
%MW50:4);
La tabla de recepción debe incluir ocho bytes (cuatro palabras), cuatro bytes para
el valor y cuatro bytes para la indicación de forzado.

Palabra Byte 3 Byte 2 Byte 1 Byte 0


Valor %MW100 0000 0000 1100 1100
%MW101 1111 1111 0000 1111
Forzado %MW102 0000 0000 0101 0101
%MW103 0000 0000 0000 1111

Es posible llevar a cabo el forzado de cada bit %MW102 o %MW103 establecido en 1;


el valor de forzado corresponderá a la lectura de bits.
Ejemplo:

Valor de los primeros cuatro bits Forzado de los primeros cuatro bits Descripción
(byte 0 de la palabra %MW100) (byte 0 de la palabra %MW102)
0 1 El bit se fuerza a 0.
0 0 El bit no se fuerza.
1 1 El bit se fuerza a 1.
1 0 El bit no se fuerza.

33002530 05/2010 251


READ_VAR

Lectura de 18 bits internos


En ST, la sintaxis de la función de lectura de bits internos se presenta del modo
siguiente:
READ_VAR (ADDR(‘{20.1}0.5.1.3’),‘%M’, 0, 18, %MW100:3,
%MW50:4);
La tabla de recepción debe contener tres palabras (o seis bytes). De hecho, para
obtener el valor de los 18 bits, son necesarios tres bytes más tres bytes adicionales,
con el fin de contener el valor de forzado de los 18 bits.

252 33002530 05/2010


READ_VAR

Ejemplo de uso en una red

Presentación
La estación 2 de la red 20 debe leer una tabla de cinco palabras de %MW0 a %MW4
del esclavo Uni-Telway, dirección de red 20, estación 1, módulo de comunicación
TSX SCM 2116 en el slot 5, canal 1 del módulo de comunicación, dirección de
servidor Ad0 = 3.

Ilustración
Las dos estaciones se conectan a través de una red Fipway.

33002530 05/2010 253


READ_VAR

Programación
Programación en LD:

Parámetros de petición:

Parámetros Descripción
ADDR(‘{20.1}0.5.1.3’) z {20.1} : red 20, estación 1
z 0 : bastidor
z 5 : módulo
z 1 : canal 1
z 3 : lectura de la dirección del esclavo de destino
’%MW’ Tipo de objeto (palabra interna)
0 Dirección del primer objeto
5 Número de objetos consecutivos
%MW50:4 Tabla de gestión
%MW20:5 Contenido de la respuesta

254 33002530 05/2010


READ_VAR

Ejemplo de lectura de palabras a través de la conexión serie de procesadores


Modicon M340

Presentación
El ejemplo utiliza dos procesadores Modicon M340 que se comunican a través de
la conexión serie Modbus. El PLC maestro Modbus debe leer las palabras internas
de %MW100 a %MW109 del PLC esclavo Modbus.

Descripción del ejemplo


Los valores de las palabras que se leen se clasifican en base a la palabra interna
%MW10.
El ejemplo siguiente utiliza variables no ubicadas y abarca la recepción de datos en
una tabla de 10 palabras no ubicadas Tab_recp (declarada como una MATRIZ
[0..9] DE INT). Los parámetros de gestión están ubicados en una tabla de
cuatro enteros llamados Management_Parameter (declarados como MATRIZ
[0..3] DE INT).
En dicho ejemplo, el número de esclavos Modbus es 7, así que el parámetro ADDM
de entrada es ‘0.0.0.7’:
z 0: número de bastidor del procesador igual a 0
z 0: número de slot del procesador dentro del bastidor, igual a 0 ya que el número
de slot de un procesador Modicon M340 es siempre 0
z 0: número de canal, igual a 0, ya que la conexión serie de un procesador Modicon
M340 es siempre el canal 0
z 7: el número de esclavo configurado es 7.

33002530 05/2010 255


READ_VAR

Ilustración
Los dos procesadores Modicon 340 están conectados a través de una conexión
Modbus:

256 33002530 05/2010


READ_VAR

Programación
Programación en LD:

Los parámetros de solicitud son los siguientes:

Parámetros Descripción
ADDM(’0.0.0.7’) z 0: número de bastidor del procesador esclavo
z 0: número de slot del procesador esclavo
z 0: número de canal (número del puerto serie)
z 7: número de esclavo configurado
’%MW’ Tipo de objeto (palabra interna)
100 Dirección del primer objeto para leer
10 Número de objetos consecutivos para leer
Tab_recp Contenido de la respuesta
Management_Parameter Tabla de gestión

33002530 05/2010 257


READ_VAR

Ejemplo de comprobación de ejecución

Presentación
El ejemplo siguiente ilustra la función READ_VAR con una comprobación de
parámetro de gestión.

Programación de la función
Programación en ST:

SI NO %M21 Y %I0.1.2 ENTONCES


%MW210:4 := 0;
%MW212 := 50;
READ_VAR(ADDR(’0.3.1.7’),’%MW’,20,1,%MW210:4,%MW1701:1);
SET %M21;
END_IF;
z El bit de entrada %I0.1.2 controla la función.
z El bit de Internet %M21 se utiliza para comprobar la actividad de la función.
z %MW210:4 := 0; inicializa la tabla de gestión en 0.
z MW212 := 50; inicializa el valor de timeout en 5 segundos.
NOTA:
READ_VAR(ADDM(‘0.3.1.7’),’%MW’,20,1,%MW210:4,%MW1701:1); La
sintaxis debe utilizarse para PLC Modicon M340, ya que la función ADDR no puede
ser utilizada por un PLC Modicon M340.

Programación de la comprobación de intercambio


Programación en ST:
SI %M21 Y NO %M210.0 ENTONCES
INC %MW214;
IF %MW211 = 0 THEN
INC %MW215;
ELSE
SET %Q0.2.2;
INC %MW216;
%MW217 := %MW211;
END_IF;
END_IF;

258 33002530 05/2010


READ_VAR

z %MW214 contabiliza el número de intercambios.


z %MW215 contabiliza el número de intercambios correctos.
z %MW216 contabiliza el número de intercambios que generan errores.
z %MW217 almacena el mensaje de error.
z %Q0.2.2 indica un fallo de intercambio.

33002530 05/2010 259


READ_VAR

260 33002530 05/2010


Send_Email
33002530 05/2010

SEND_EMAIL: Envío de un correo


electrónico
22
Send_Email

Descripción de la función
La función SEND_EMAIL se utiliza para enviar un correo electrónico a través del
puerto Ethernet de la CPU de un PLC M340.
El servicio SEND_EMAIL está limitado al puerto Ethernet integrado. Un módulo NOE
no puede llevar a cabo esta función.
NOTA: Para que el servicio SEND_EMAIL funcione correctamente, primero es
necesario configurar en el software Unity Pro la dirección IP del servidor SMTP y los
destinos de correo electrónico utilizados.

Representación en FBD
Representación:

33002530 05/2010 261


Send_Email

Representación en LD
Representación:

Representación en ST
SEND_EMAIL (ADR, HEAD_KEY, SUBJ_STR, BODY_STR, ManagWords);

Descripción de parámetros
En la siguiente tabla, se describen los parámetros de entrada:

Parámetro Tipo Descripción


ADR ARRAY [0.. 7] OF INT Dirección o resultado de la función ADDM. Utiliza
la función ADDM EF para crear este campo.
(véase página 45)
La única posibilidad de enviar correos
electrónicos es a través del puerto Ethernet de la
CPU (0.0.3).
HEAD_KEY INT Corresponde a las direcciones de correo
electrónico administradas con el software Unity
Pro (sólo se aceptan la 1, 2 y 3).
SUBJ_STR STRING Representa la parte dinámica del asunto que se
adjunta a la cadena de asunto estática.
BODY_STR STRING Representa el cuerpo del correo electrónico.

262 33002530 05/2010


Send_Email

En la siguiente tabla se describen los parámetros de entrada/salida:

Parámetro Tipo Comentario


Management_Param ARRAY [0... 3] OF Tabla de gestión del intercambio
INT (véase página 33)
Se utiliza la tabla de 4 palabras para controlar
los parámetros de la ejecución.
El parámetro de longitud (4ª palabra de la tabla
de gestión) es un parámetro de salida. El
sistema escribe esta palabra con la longitud
total del correo electrónico (encabezado +
cuerpo). El tamaño máximo del encabezado +
cuerpo es de 1.024 caracteres.

Normas de Send_Email
Después de la ejecución de un bloque de funciones SEND_EMAIL EF, se establece
el bit de actividad hasta que se envía el correo electrónico. Sin embargo, no hay
ninguna confirmación de que el mensaje haya llegado al destino. Si se programa un
tiempo de espera (3ª palabra de gestión <> 0), el correo electrónico se cancela si
no se envía durante el intervalo programado. En tal caso, la 2ª palabra de gestión
recibe una respuesta negativa Intercambio detenido tras tiempo de espera
(0x01).
Características del tiempo de ejecución: el sistema puede gestionar cuatro
solicitudes de envío a la vez procedentes de cuatro EF. El quinto EF que intenta
enviar un correo electrónico recibirá el mensaje No hay recursos de sistema del
procesador (0x0B) hasta que un recurso se encuentre libre.

Ejemplo del servicio Send_Email


IF (default_id = 0) THEN
(* PUMP IS OK *)
SEND_EMAIL(ADDM('0.0.3'), 1, 'Pump n° 3 is OK', ' ' , Mng_send_email);
ELSE
(* PUMP IS FAULTY *)
str_default := INT_TO_STRING(default_id);
str_email_body := CONCAT_STR(' Default = ', str_default);
SEND_EMAIL(ADDM('0.0.3'), 1, 'Pump n° 3 is faulty', str_email_body,
Mng_send_email);
END_IF;

33002530 05/2010 263


Send_Email

264 33002530 05/2010


SEND_REQ
33002530 05/2010

SEND_REQ: peticiones de envío

23
Objetivo
En este capítulo se describe la función SEND_REQ.

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Descripción 266
Lista de peticiones UNI-TE 270
Pantalla de entrada asistida 276
Ejemplo de cómo enviar una petición UNI-TE 278
Modificación de parámetros IP con SEND_REQ (ejemplo) 280
Utilización de la función SEND_REQ 281

33002530 05/2010 265


SEND_REQ

Descripción

Descripción de la función
La función SEND_REQ se utiliza para codificar y enviar todas las solicitudes UNI-TE
y Modbus/Jbus, así como recibir las respuestas asociadas.
Los detalles de codificación de las solicitudes UNI-TE se proporcionan en el manual
de referencia: Referencia de comunicación TSX DR NET.
Los detalles de codificación de las solicitudes Modbus/Jbus se proporcionan en el
manual de TSX DG MDB.
Las solicitudes Modbus comunes para todos los dispositivos Schneider se
presentan en el manual Arquitecturas y servicios de comunicación
(véase Premium, Atrium y Quantum en Unity Pro, Arquitecturas y servicios de
comunicación, Manual de referencia).
Pueden configurarse los parámetros adicionales EN y ENO.

Representación FBD

Representación LD

266 33002530 05/2010


SEND_REQ

Representación IL
Dirección LD
SEND_REQ Request_Code, Data_to_Send, Management_Param,
Received_Data

Representación ST
SEND_REQ(Address, Request_Code, Data_to_Send,
Management_Param, Received_Data);

Descripción de los parámetros


En la siguiente tabla se describen los parámetros de entrada:

Parámetro Tipo Comentario


Dirección ARRAY [0.. 5] OF Dirección de la entidad de destino del
INT intercambio. El tipo de la dirección depende de
la solicitud enviada. Por tanto, es posible
difundir la solicitud de ejecución (TODO, 0 para
el módulo TSX SCY 11601), mientras que no
es posible enviar una solicitud de identificación
a varios dispositivos a la vez.
Request_Code INT Solicitud que se desea enviar al dispositivo de
destino, también denominado servidor. Las
solicitudes pueden ser UNI-TE
(véase página 270) o Modbus.
Data_to_Send ARRAY [n... m] Tabla de enteros que se desea enviar al
OF INT dispositivo de destino de la solicitud. Esta tabla
depende de la solicitud enviada.
Debe tener una longitud mínima de un
elemento, incluso si la solicitud utilizada no
requiere envío de datos (por ejemplo, una
solicitud de identificación).
Nota: Es imprescindible que la longitud de los
datos que se desean enviar (en bytes) se
asigne a la cuarta palabra de la tabla de gestión
antes de iniciar la función para su correcta
ejecución.

En la siguiente tabla se describen los parámetros de entrada y salida:

Parámetro Tipo Comentario


Management_Param ARRAY [0.. 3] OF Tabla de gestión de intercambio
INT (véase página 33)

33002530 05/2010 267


SEND_REQ

En la siguiente tabla se describen los parámetros de salida:

Parámetro Tipo Comentario


Received_Data ARRAY [n... m] Tabla de enteros que contiene los datos
OF INT devueltos por el dispositivo servidor, que era el
destino de la solicitud. Aunque algunas
solicitudes no requieren respuesta, (por
ejemplo, una solicitud de ejecución), sigue
siendo necesario reservar una tabla mínima de
un entero cada vez que se utiliza la función
SEND_REQ.
Nota: El sistema escribe automáticamente el
tamaño de los datos recibidos en la cuarta
palabra de la tabla de gestión
(véase página 38).
Nota: En algunos casos (por ejemplo, la lectura
de tablas de palabras) es necesario volver a
definir la secuencia de los objetos recibidos
mediante la función ROR1_ARB (véase Unity
Pro, Obsoleta, Librería de bloques)
(desplazamiento de un byte en un tabla).

268 33002530 05/2010


SEND_REQ

Transacciones simultáneas
En la tabla siguiente se detallan las capacidades de cada canal de comunicación
para procesar transacciones de forma simultánea, de acuerdo con las distintas
configuraciones de los PLC Micro y Premium. (SEND_REQ no está disponible en
PLC Modicon M340.)

Configuración Micro TSX 57 10 TSX 57 20 TSX 57 TSX 57 46/56


23/30/40/45/55,
PCX 57, PMX 57
Puerto de terminal maestro Uni-Telway 4 4 4 4 8
Conexión PCMCIA o SCY maestro Uni- 1 8 8 8 8
Telway
Puerto de terminal esclavo cliente Uni- 4 1 1 1 8
Telway
Conexión PCMCIA o SCY esclava 1 1 1 1 1
cliente Uni-Telway
Puerto de terminal esclavo servidor Uni- 4 4 4 4 4
Telway
Conexión PCMCIA o SCY esclava 4 6 6 6 6
servidor Uni-Telway
Puerto de terminal Modbus 4 - - - -
Conexión PCMCIA o SCY Modbus 4 8 8 8 8
Modalidad de caracteres, bloque de 1 1 1 1 1
terminales
Modalidad de caracteres, conexión 4 8 8 8 8
PCMCIA o SCY
PCMCIA CANopen - 10 10 10 10
Conexión PCMCIA o SCY Fipway 4 8 8 8 8
Modbus Plus 4 4 4 4 4
Ethernet - 16 16 16 16
Ethernet incorporado - - - - 64

33002530 05/2010 269


SEND_REQ

Lista de peticiones UNI-TE

Presentación
El protocolo UNI-TE se utiliza para:
z identificar y diagnosticar todos los dispositivos que tienen un servidor UNI-TE;
z ofrecer un conjunto de servicios que concedan acceso de lectura y escritura para
introducir datos;
z descargar datos de dispositivo a dispositivo;
z proteger un servidor frente a conexiones concurrentes durante un período crítico.
Estos diferentes servicios pueden obtenerse mediante la función SEND_REQ, con la
codificación de la petición UNI-TE que se desea enviar.
NOTA: Para obtener información detallada y la lista de peticiones reconocidas por
cada dispositivo, consulte el manual de referencia de TSX DR NET.
En las tablas siguientes se ofrece una lista no exhaustiva de peticiones reconocidas
por los dispositivos Premium.

Peticiones de uso general


Estas peticiones se utilizan para identificar y diagnosticar todos los dispositivos que
tienen un servidor UNI-TE.

Nombre de petición Código de Código de Comentario


petición informe
IDENTIFICATION 16#0F 16#3F Ofrece la información siguiente:
z rango de producto,
z tipo de aplicación específica,
z tipo de producto,
z referencia de catálogo.
READ_CPU 16#4F 16#7F Lleva a cabo el diagnóstico de sistema en
cualquier dispositivo.
PROTOCOL_VERSION 16#30 16#60 Se utiliza para adaptar la versión del
protocolo entre dos entidades
comunicantes.
MIRROR 16#FA 16#FB Comprueba el acceso correcto de los
datos entre dos dispositivos
comunicantes.

270 33002530 05/2010


SEND_REQ

Modificación dinámica de parámetros IP


Modificación de parámetros IP

Nombre de petición Código de Comentario


petición
REQUEST CODE 16#37 Función de código de petición.
CHANGE IP PARAMETERS 16#13 Cambia la subfunción de parámetro IP.

Para asegurarse de que el módulo ETY está listo para funcionar, deje que el PLC
se ejecute (en modalidad de ejecución) durante 15 segundos después de la última
modalidad de detención antes de enviar la función SEND_REQ. Después de que el
usuario envíe el comando CHANGE IP PARAMETERS y el módulo ETY acepte los
nuevos parámetros, el módulo ETY se restablece y comienza a funcionar con los
nuevos parámetros.
NOTA: Los clientes FDR que utilizan el módulo ETY como servidor deben
reiniciarse una vez completado el cambio de la dirección IP del ETY. De lo contrario,
estos clientes FDR no pueden actualizar sus archivos de parámetros en el servidor
FDR (el módulo ETY).
NOTA: Las palabras constantes contienen los parámetros de configuración
originales, no aquellos que se actualizaron después del cambio de dirección IP.
NOTA: Puede ver la nueva configuración (parámetros IP, máscara de subred y
dirección de pasarela) en la pantalla de depuración de ETY de Unity Pro (véase
Premium y Atrium mediante Unity Pro, Módulos de red Ethernet, Manual de
usuario). También se puede ver la nueva dirección IP asignada en la página web de
estadísticas del módulo Ethernet (véase Premium y Atrium mediante Unity Pro,
Módulos de red Ethernet, Manual de usuario), si bien debe tener en cuenta que los
datos de dirección IP, máscara de subred y pasarela de esta página reflejarán la
configuración antigua.

33002530 05/2010 271


SEND_REQ

Uso de parámetros para el cambio de dirección IP


Esta tabla se basa en una dirección IP de muestra 139.158.10.7, una máscara de
subred 255.255.248.0 y una dirección de pasarela 139.158.8.1.

Parámetro Tipo Valor Comentario


ADDRESS matriz [0...5] de INT ADDR (‘rack.slot.channel.SYS’) Ejemplo: ADDR (0.x.0.SYS’) x = slot en
el que se instala el módulo ETY
REQUEST_CODE INT 16#37
Data_to_Send matriz [0...8] de INT byte 1: subfunción (13h) byte de mayor valor
byte 2: subfunción (96h) byte de menor valor
byte 3: 0 se hace caso omiso del valor
byte 4: 0 se hace caso omiso del valor
byte 5: dirección IP 2 (158) 1-239 (byte de mayor valor)
byte 6: dirección IP 1 (139) 0-255 (byte de menor valor)
byte 7: dirección IP 4 (7) 0-255 (byte de mayor valor)
byte 8: dirección IP 3 (10) 0-255 (byte de menor valor)
byte 9: máscara de subred 2 (255) 255
byte 10: máscara de subred 1 (255) 0-255
byte 11: máscara de subred 4 (0) 0-255
byte 12: máscara de subred 3 (248) 0-255
byte 13: pasarela 2 (158) 1-239 (la dirección de la pasarela debe
encontrarse en la misma subred que la
dirección IP)
byte 14: pasarela 1 (139) 0-255
byte 15: pasarela 4 (1) 0-255
byte 16: pasarela 3 (8) 0-255
Manage_Param número de palabra byte de mayor valor byte de menor valor
1 informe de actividad 00
2 informe de funcionamiento informe de comunicación (consulte la
(consulte la nota) nota)
3 timeout (ms)
4 longitud: 18 (INT)
NOTA: En la tabla siguiente se ofrece información detallada para los códigos de dirección IP
(correctos e incorrectos).

Consulte el ejemplo de cambio de los parámetros IP mediante SEND_REQ


(véase página 280).

272 33002530 05/2010


SEND_REQ

Cambio de códigos de dirección IP

Informe de Informe de Significado


funcionamiento comunicación
código correcto
FE (hex) 00 (hex) (SEND_REQ) cambió correctamente la dirección IP.
códigos de error
01 (hex) FF (hex) valor de código de petición no válido (por ejemplo, 16#37 no)
00 (hex) 03 (hex) SEND_REQ a la dirección IP de ETY en lugar de a través de la placa de
conexiones
00 (hex) 07 (hex) direccionamiento incorrecto a ETY
16 (hex) FF (hex) dirección IP no válida
17 (hex) FF (hex) subred no válida
18 (hex) FF (hex) dirección de pasarela no válida
19 (hex) FF (hex) dirección de red no válida
1A (hex) FF (hex) La dirección IP del ETY ya se ha definido para SEND_REQ.
FD (hex) 00 (hex) (SEND_REQ) no cambió correctamente la dirección IP.

33002530 05/2010 273


SEND_REQ

Utilización de parámetros para el comando de restablecimiento de módulos


Una operación de restablecimiento de módulos hace que los módulos de comunica-
ciones ETY y ETY PORT de Premium entren en un ciclo para restablecer el entorno
de trabajo. Para programar un bloque de funciones SEND_REQ con el fin de
ejecutar un comando de restablecimiento de módulos, utilice el código de función
37 y el código de subfunción 10.

Parámetro Tipo Valor Comentario


ADDRESS matriz [0...5] de INT ADDR Ejemplo: ADDR (0.x.0.SYS’) x = slot en el que
(‘rack.slot.channel.SYS’) se instala el módulo ETY
REQUEST_CODE INT 16#37
Data_to_send matriz [0...1] de INT byte 1: subfunción (10h) byte de mayor valor
byte 2: subfunción (96h) byte de menor valor
bytes 3, 4: 0 reservado
Manage_Param número de palabra byte de mayor valor byte de menor valor
1 informe de actividad 00
2 informe de funcionamiento informe de comunicación (consulte la nota)
(consulte la nota)
3 timeout (ms)
4 longitud: 4 (INT) (en este ejemplo)
NOTA: En la tabla siguiente se ofrece información detallada sobre los códigos de
restablecimiento de módulos (correctos e incorrectos).

Códigos del comando de restablecimiento de módulos

Informe de Informe de Significado


funcionamiento comunicación
código correcto
FE (hex) 00 (hex) SEND_REQ ha restablecido el módulo correctamente.
códigos de error
01 (hex) FF (hex) valor de código de petición no válido (por ejemplo, 16#37 no)
00 (hex) 07 (hex) direccionamiento incorrecto a ETY
FD (hex) 00 (hex) SEND_REQ no ha restablecido el módulo.

274 33002530 05/2010


SEND_REQ

Acceso a objetos
Estas peticiones ofrecen un conjunto de servicios que proporciona acceso de
lectura y escritura a los datos de bit interno y de tipo de palabra, de bit del sistema
y de tipo de palabra, de coma flotante, de constante y de SFC.

Nombre de petición Código de petición Código de informe Comentario


READ_OBJECT 16#36 16#66 Se utiliza para leer uno o más objetos
consecutivos del mismo tipo.
WRITE_OBJECT 16#37 16#FE Se utiliza para escribir uno o más objetos
consecutivos del mismo tipo.
READ_INTERNAL_BIT 16#00 16#30 Se utiliza para leer el valor de un bit
interno.
WRITE_INTERNAL_BIT 16#10 16#FE Se utiliza para escribir el valor de un bit
interno.
READ_INTERNAL_WORD 16#04 16#34 Se utiliza para leer el valor de una palabra
interna.
WRITE_INTERNAL_WORD 16#14 16#FE Se utiliza para escribir el valor de una
palabra interna.

Gestión de modalidades de funcionamiento


Estas peticiones ofrecen un conjunto de servicios que puede utilizarse para
gestionar las modalidades de funcionamiento de un procesador.

Nombre de petición Código de petición Código de informe Comentario


RUN 16#24 16#FE Se utiliza para iniciar la ejecución de las
tareas de un procesador.
STOP 16#25 16#FE Se utiliza para detener la ejecución de las
tareas de un procesador.
INIT 16#33 16#63 Se utiliza para disparar un inicio en frío o
en caliente.

Gestión de reservas
Estas peticiones ofrecen un mecanismo de reserva que se utiliza para proteger el
servidor frente a conexiones concurrentes durante un período crítico.

Nombre de petición Código de petición Código de informe Comentario


RESERVE 16#1D 16#FE Permite a un cliente reservar general o
parcialmente las funciones de un servidor.
RELEASE 16#1E 16#FE Permite a un cliente liberar el servidor
reservado.
I_AM_ALIVE 16#2D 16#FE Se utiliza para mantener la reserva.

33002530 05/2010 275


SEND_REQ

Pantalla de entrada asistida

Presentación
Para esta función de comunicación, puede solicitar la pantalla de entrada asistida.
Tenga en cuenta que la pantalla de entrada asistida no está disponible para
Modicon M340.
NOTA: Los símbolos de variable se aceptan en los diferentes campos de la
pantalla.

Ilustración
La pantalla siguiente muestra un ejemplo de la pantalla de entrada asistida de la
función:

Dirección
Para PLC Premium, el tipo de objeto posible es el siguiente:
z ADDR(STRING).
z ARRAY [0..5] OF INT.
NOTA: Si introduce un valor directamente en un campo, el botón de entrada de
dirección asistida se vuelve gris.

Código de petición
Los objetos posibles son del tipo INT:
z variables,
z constantes,
z valor inmediato.
NOTA: Si introduce una constante, aparecerá un campo de entrada para ello. Si
introduce una variable, puede localizarse o no.

276 33002530 05/2010


SEND_REQ

Datos para enviar


Estos datos que se van a enviar se almacenan en forma de matriz de enteros. La
matriz puede localizarse o no.

Área de recepción
El área de recepción es una matriz de enteros. La matriz puede localizarse o no, y
su tamaño depende del código de petición utilizado.

Informe
El informe es una matriz de 4 enteros.
NOTA: Tenga cuidado de no utilizar varias áreas de memoria idénticas para las
tablas de informes; de lo contrario, la función de lectura de variables podría no
funcionar.

33002530 05/2010 277


SEND_REQ

Ejemplo de cómo enviar una petición UNI-TE

Presentación
La estación 2 de la red 20 debe enviar una petición de identificación al dispositivo
con dirección Ad0=3 del bus Uni-Telway de la estación 1 de la misma red. La
petición de identificación tiene el código decimal 15 (o 16#0F).
La tabla de gestión se encuentra en %MW10:4.

Ilustración
Las dos estaciones se conectan mediante una red Fipway:

Programación
Programación en ST:

SI RE(%I0.3.2) Y NO %MW10.0 ENTONCES


SEND_REQ(ADDR(’{20.1}0.5.1.3’),15,%MW0:1,
%MW10:4,%MW100:24);
END_IF;

278 33002530 05/2010


SEND_REQ

Parámetros de petición:

Parámetros Descripción
ADDR(‘{20.1}0.5.1.3’) z {20.1}: red 20, estación 1
z 0: bastidor
z 5: módulo
z 1: canal 1
z 3: dirección de destino
15 Petición 15 (o 16#0F si la codificación es hexadecimal)
%MW0:1 Datos enviados (por ejemplo: no hay datos para enviar)
%MW10:4 Tabla de gestión
%MW100:24 Contenido de la respuesta (recepción de 24 palabras)

NOTA: Cada vez que la función se inicia, inicialice el parámetro de longitud (en el
ejemplo: %MW13 = 0).

33002530 05/2010 279


SEND_REQ

Modificación de parámetros IP con SEND_REQ (ejemplo)

Ilustración
El gráfico muestra cómo definir los parámetros IP del módulo ETY del slot 2 con el
bloque SEND_REQ:

Nota:
z ADR: refleja la posición del ETY en el slot 2.
z CODE: refleja el valor de REQUEST_CODE.
z EMIS: contiene los parámetros IP de Data_to_Send:
z dirección (139.158.10.7)
z máscara de subred (255.255.248.0)
z pasarela (139.158.8.1)

z GEST: refleja Management_Param (parámetros de gestión).


Tiene que asignar un tiempo a la tercera palabra de Management_Param. La
cuarta palabra debería tener el valor INT 18.
z RECP: Este parámetro requiere un valor mínimo INT de 1, incluso cuando no se
devuelva ningún mensaje de respuesta, como en el caso de una petición de
cambio de IP.

280 33002530 05/2010


SEND_REQ

Utilización de la función SEND_REQ

Presentación
La función SEND_REQ se utiliza para codificar y enviar todas las peticiones UNI-TE
y Modbus/Jbus, así como recibir las respuestas asociadas.
En algunos casos (por ejemplo, la lectura de tablas de palabras) es necesario volver
a definir la secuencia de los objetos recibidos mediante la función ROR1_ARB
(desplazamiento de un byte en un tabla). .

Ejemplo
Objetos para leer:
16#0201
16#0403
16#0605
16#0807
16#0A09
Tabla de recepción tras la ejecución de SEND_REQ (objeto de lectura):
%MW100=16#0107
%MW101=16#0302
%MW102=16#0504
%MW103=16#0706
%MW104=16#0908
%MW105=16#000A
Tabla de recepción tras ROR1_ARB(%MW100:6):
%MW100=16#0201
%MW101=16#0403
%MW102=16#0605
%MW103=16#0807
%MW104=16#0A09
%MW105=16#0700

33002530 05/2010 281


SEND_REQ

282 33002530 05/2010


SEND_TLG
33002530 05/2010

SEND_TLG: envío de telegramas

24
Objetivo
En este capítulo se describe la función SEND_TLG.

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Descripción 284
Ejemplo de cómo enviar un telegrama 287

33002530 05/2010 283


SEND_TLG

Descripción

Descripción de la función
La función SEND_TLG se utiliza para enviar datos de tipo telegrama a una aplicación
remota.
Los datos que se van a enviar deben tener una longitud máxima de 16 bytes. Al
contrario que las otras funciones de comunicación, esta función de procesa
inmediatamente (sincronizada). Por tanto, no hay bit de actividad ni parámetros de
timeout.
Como consecuencia de esto, la tabla de enteros asignada a los parámetros de
gestión utiliza solo dos palabras en lugar de cuatro (los números de intercambio y
timeout no son necesarios).

ADVERTENCIA
FUNCIÓN INOPERATIVA: CONFIGURACIÓN NO VÁLIDA
Para utilizar la función SEND_TLG en Fipway: instale la tarjeta TSX FPP20
únicamente en las estaciones 0 a 15.
Si no se siguen estas instrucciones pueden producirse lesiones personales
graves o mortales o daños en el equipo.

Los parámetros adicionales EN y ENO se pueden configurar.

Representación en FBD
Representación:

284 33002530 05/2010


SEND_TLG

Representación en LD
Representación:

Representación en IL
Representación:
Dirección LD
SEND_TLG Data_to_Send, Management_Param

Representación en ST
Representación:
SEND_TLG (Address, Data_to_Send, Management_Param)

Descripción de parámetros
En la tabla siguiente se describen los parámetros de entrada:

Parámetro Tipo Comentario


Address ARRAY [0.. 5] OF Dirección de la entidad de destino del
INT intercambio. Solo están autorizadas las
direcciones {Red.Estación}APP o
{Red.Estación}APP.núm.
Data_to_Send ARRAY [n... m] Tabla de enteros que se debe enviar al
OF INT dispositivo de destino de la petición.
Debe tener una longitud máxima de ocho
enteros (16 bytes).
Nota: Es fundamental que el número de bytes
que se van a enviar se coloque en la segunda
palabra de la tabla de gestión antes de realizar
el intercambio.

33002530 05/2010 285


SEND_TLG

En la siguiente tabla, se describen los parámetros de entrada/salida:

Parámetro Tipo Comentario


Management_Param ARRAY [0.. 1] OF Tabla de palabras utilizadas para gestionar el
INT intercambio. Esta tabla está compuesta de 2
palabras: la palabra de informe y la palabra de
longitud de los datos que se van a enviar. El
informe incluye:
z el informe de funcionamiento (byte de mayor
valor de la primera palabra),
z el informe de comunicación (byte de menor
valor de la primera palabra).
El informe de funcionamiento toma uno de los
siguientes valores:
z 16#00: intercambio correcto,
z 16#03: formato de dirección incorrecta,
z 16#04: dirección de destino incorrecta,
z 16#05: parámetros de gestión incorrectos
(por ejemplo, la longitud),
z 16#06: parámetros específicos incorrectos,
z 16#07: módulo defectuoso,
z 16#0A: tamaño del búfer de emisión
insuficiente,
z 16#0B: sin recursos de sistema,
z 16#0F: servicio de telegramas sin
configurar.

286 33002530 05/2010


SEND_TLG

Ejemplo de cómo enviar un telegrama

Presentación
Supongamos que desea enviar un telegrama de ocho palabras desde la estación 1
a la estación remota 3 de la red Fipway 20.
La tabla %MW190:8 recogerá las palabras que se van a enviar, y la tabla %MW200:2
la tabla de gestión de intercambio.

Ilustración
Las dos estaciones están conectadas a través de una red Fipway.

Programación
Programación en ST:

IF RE(%I0.3.10) THEN
SEND_TLG(ADDR(’{20.3}APP’), %MW190:8, %MW200:2);
END_IF;

Parámetros de petición:

Parámetros Descripción
ADDR(’{20.3}APP’) z {20.2}: red 20, estación 3
z APP: aplicación

%MW190:8 Contenido del telegrama que se va a enviar


%MW200:2 Tabla de gestión

NOTA: La palabra %MW 201 debe inicializarse en 16 (ocho palabras) antes del
envío de la petición.
Para ejecutar esta función de forma sincronizada, es necesario comprobar el
informe de funcionamiento inmediatamente después de la línea del programa que
activa la ejecución de esta función.
33002530 05/2010 287
SEND_TLG

288 33002530 05/2010


SYMAX_IP_ADDR
33002530 05/2010

SYMAX_IP_ADDR: dirección
SY/MAX IP
25
Introducción
En este capítulo se describe el bloque SYMAX_IP_ADDR.

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Descripción 290
Descripción detallada 292

33002530 05/2010 289


SYMAX_IP_ADDR

Descripción

Descripción de funciones
Este bloque de función permite indicar la dirección IP SY/MAX para los bloques de
función REAG_REG, CREAD_REG, WRITE_REG y CWRITE_REG. La dirección se
transmite en forma de una estructura de datos.
Como parámetros adicionales se pueden configurar EN y ENO.
NOTA: Debe conocer la red empleada cuando programe el módulo de función
SYMAX_IP_ADDR.

Representación en FBD
Representación:

Representación en LD
Representación:

290 33002530 05/2010


SYMAX_IP_ADDR

Representación en IL
Representación:
CAL SYMAX_IP_ADDR_Instance (DROP_NO:=MappingIndex,
SLOT_ID:=NOEModuleSlot, DESTDROP:=DestinationDropNumber,
TERMINAT:=Terminator, ADDRFLD=>DataStructureSYMAX_IP)

Representación en ST
Representación:
SYMAX_IP_ADDR_Instance (DROP_NO:=MappingIndex,
SLOT_ID:=NOEModuleSlot, DESTDROP:=DestinationDropNumber,
TERMINAT:=Terminator, ADDRFLD=>DataStructureSYMAX_IP) ;

Descripción de parámetros
Descripción de los parámetros de entrada:

Parámetro Tipo de datos Significado


DROP_NR BYTE Índice de copiado de un Transporter MBP a Ethernet
(MET)
SLOT_ID BYTE Slot del módulo NOE
DESTDROP WORD Número de estación de destino (o ajustar a FF hex)
TERMINAT WORD Terminador (ajustar a FF hex)

Descripción de los parámetros de salida:

Parámetro Tipo de datos Significado


ADDRFLD WordArr5 Estructura de datos para la transmisión de la dirección
SY/MAX

33002530 05/2010 291


SYMAX_IP_ADDR

Descripción detallada

Descripción de elementos de WordArr5


Descripción de elementos para WordArr5:

Elemento Tipo de datos Significado


WordArr5[1] WORD Byte de mayor valor:
Dirección de slot del módulo NOE
Byte de menor valor:
Índice de copiado de un Transporter MBP a Ethernet
(MET)
WordArr5[2] WORD Número de estación de destino (o ajustar a FF hex)
WordArr5[3] WORD Terminador (ajustar a FF hex)
WordArr5[4] WORD Sin significado
WordArr5[5] WORD Sin significado

DROP_NR
En la entrada DROP_NR se indica el índice de copiado del Transporter MBP a
Ethernet (MET), es decir, cuando el MET es 6, el valor tiene el siguiente aspecto:

SLOT_ID
Cuando se accede a un NOE en el bastidor de un controlador Quantum como
participante de destino, el valor de la entrada SLOT_ID representará el slot físico
del NOE, es decir, cuando el NOE está insertado en el slot 7 del bastidor, el valor
tiene el siguiente aspecto:

292 33002530 05/2010


SYMAX_IP_ADDR

ADDRFLD
Cuando un NOE del bastidor accede a un controlador Quantum como participante
de destino, el valor del byte de mayor valor representa el slot físico del NOE, y el
byte de menor valor, el índice de copiado del Transporter MBP a Ethernet (MET);
es decir, cuando el NOE está insertado en el slot 7 del bastidor y el índice de
copiado MET es 6, el primer elemento de la estructura de datos tiene el siguiente
aspecto:

Byte de mayor valor Slot 1 a 16


Byte de menor valor Índice de copiado de un Transporter MBP a Ethernet (MET)

33002530 05/2010 293


SYMAX_IP_ADDR

294 33002530 05/2010


TCP_IP_ADDR
33002530 05/2010

TCP_IP_ADDR: dirección TCP/IP

26
Introducción
En este capítulo se describe el bloque TCP_IP_ADDR.

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Descripción 296
Descripción detallada 299

33002530 05/2010 295


TCP_IP_ADDR

Descripción

Descripción de las funciones


Este bloque de funciones permite la entrada de direcciones TCP/ IP para los
bloques de funciones READ_REG, CREAD_REG, WRITE_REG y CWRITE_REG. La
dirección se transfiere como estructura de datos.
EN y ENO pueden configurarse como parámetros adicionales.
NOTA: Debe estar familiarizado con su red cuando programe el bloque d funciones
TCP_IP_ADDR. La "Guía de usuario del módulo TCP/IP de Quantum" ofrece una
descripción completa de las rutas de acceso TCP/IP.

Representación en FBD
Representación:

296 33002530 05/2010


TCP_IP_ADDR

Representación en LD
Representación:

Representación en IL
Representación:
CAL TCP_IP_ADDR_Instance (MAP_IDX:=MapIndex,
SLOT_ID:=NOEModuleSlot, IP_B4:=Byte4OfIPAddress,
IP_B3:=Byte3OfIPAddress, IP_B2:=Byte2OfIPAddress,
IP_B1:=Byte1OfIPAddress,
ADDRFLD=>DataStructureTCP_IPAddress)

Representación en ST
Representación:
TCP_IP_ADDR_Instance (MAP_IDX:=MapIndex,
SLOT_ID:=NOEModuleSlot, IP_B4:=Byte4OfIPAddress,
IP_B3:=Byte3OfIPAddress, IP_B2:=Byte2OfIPAddress,
IP_B1:=Byte1OfIPAddress,
ADDRFLD=>DataStructureTCP_IPAddress) ;

33002530 05/2010 297


TCP_IP_ADDR

Descripción de parámetros
Descripción de los parámetros de entrada:

Parámetros Tipo de datos Descripción


MAP_IDX BYTE Índice de asignación
MBP en el índice de asignación Ethernet Transporter (MET)
Slot_ID BYTE ID de slot
Slot del módulo NOE
IP_B4 BYTE Byte 4 (MSB) de la dirección IP de 32 bits de destino
IP_B3 BYTE Byte 3 (MSB) de la dirección IP de 32 bits de destino
IP_B2 BYTE Byte 2 (MSB) de la dirección IP de 32 bits de destino
IP_B1 BYTE Byte 1 (LSB) de la dirección IP de 32 bits de destino

NOTA: Para el parámetro Slot_ID: Si utiliza un módulo de Ethernet integrado en la


CPU como 140 CPU 651 x0, la ID de slot debe ser 254 (FE hex) independien-
temente del slot de la CPU.
Descripción de los parámetros de salida:

Parámetros Tipo de datos Descripción


ADDRFLD WordArr5 Estructura de datos utilizada para transferir la dirección
TCP/IP

298 33002530 05/2010


TCP_IP_ADDR

Descripción detallada

Descripción de elementos de WordArr5


Descripción de elementos de WordArr5:

Elemento Tipo de datos Descripción


WordArr5[1] WORD Byte de mayor valor:
Slot del módulo NOE
Byte de menor valor:
MBP en el índice de asignación Ethernet Transporter
(MET)
WordArr5[2] WORD Byte 4 de la dirección IP de 32 bits de destino
WordArr5[3] WORD Byte 3 de la dirección IP de 32 bits de destino
WordArr5[4] WORD Byte 2 de la dirección IP de 32 bits de destino
WordArr5[5] WORD Byte 1 de la dirección IP de 32 bits de destino

MAP_IDX
El MBP para índice de asignación Ethernet Transporter (MET) viene dado por la
salida Map_Idx+, es decir, si MET es 6, el valor aparece como se muestra a
continuación:

Slot_ID
Si un NOE del bastidor de un controlador Quantum, se direcciona como asiento de
destino; el valor en la entradaSLOT_ID representa el spot NOE físico. Ejemplo: si
el NOE se conecta en el spot 7 del bastidor, el valor aparece como se muestra a
continuación:

NOTA: Si utiliza un módulo de Ethernet integrado en la CPU como 140 CPU 651
x0, la ID de slot debe ser 254 (FE hex) independientemente del slot de la CPU.

33002530 05/2010 299


TCP_IP_ADDR

ADDRFLD
Si un NOE del bastidor de un controlador Quantum se direcciona como asiento de
destino, el valor del byte de mayor valor representa el spot físico del NOE y el del
byte de menor valor representa el MBP en el índice de asignación Ethernet
Transporter (MET); es decir, si el NOE se introduce en el spot 7 del bastidor y el
índice de asignación de MET es 6, el primer elemento de la estructura de datos
presenta el siguiente aspecto:

Byte de mayor valor Slots del 1 al 16


Byte de menor valor MBP en el índice de asignación Ethernet Transporter (MET)

300 33002530 05/2010


UNITE_SERVER
33002530 05/2010

UNITE_SERVER: servidor
inmediato
27
Objetivo
En este capítulo se describe la función de comunicación UNITE_SERVER.

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Descripción 302
Ejemplo de servidor inmediato 305

33002530 05/2010 301


UNITE_SERVER

Descripción

Descripción de las funciones


La función UNITE_SERVER se utiliza para procesar peticiones UNI-TE
inmediatamente desde el programa de la aplicación.
Esta función puede activarse en la tarea MAST o en la tarea FAST.
NOTA: En cualquier momento, la aplicación solo puede activar una función
UNITE_SERVER.
NOTA: La función UNITE_SERVER se utiliza para procesar peticiones desde una
conexión Modbus (tarjeta TSX SCP 114 PCMCIA en un módulo TSX SCY 21601
module configurado como esclavo Modbus con servidor inmediato (véase Premium
y Atrium en Unity Pro, Enlace serie asíncrono, Manual del usuario)).
Los parámetros adicionales EN y ENO se pueden configurar.

Principio de intercambio
El diagrama siguiente muestra los intercambios realizados durante la utilización de
la función de comunicación UNITE_SERVER.

302 33002530 05/2010


UNITE_SERVER

Representación FBD
Representación:

Representación LD
Representación:

Representación IL
Representación:
LD Management_Param
UNITE_SERVER Address, Received_Codes

Representación ST
Representación:
UNITE_SERVER(Management_Param, Address, Received_Codes);

33002530 05/2010 303


UNITE_SERVER

Descripción de parámetros
En la tabla siguiente se describen los parámetros de entrada/salida:

Parámetro Tipo Comentario


Management_Param ARRAY [0.. 1] OF Tabla de palabras utilizadas para gestionar el
INT intercambio. Esta tabla está compuesta de 2
palabras: la primera palabra contiene el número
de intercambio y el bit de actividad; la segunda
palabra contiene el informe. El informe incluye:
z el informe de funcionamiento (byte de mayor
valor),
z el informe de comunicación (byte de menor
valor).
El informe de comunicación utiliza uno de los
valores siguientes:
z 16#00: intercambio correcto,
z 16#01: detención en timeout, no se pudo
enviar la respuesta en 2 segundos,
z 16#02: detención a petición del usuario
(STOP, %S0, INIT, reinicio en frío o en
caliente),
z 16#03: formato de dirección desconocido,
z 16#05: parámetros de gestión incorrectos,
z 16#07: problema en el envío al destino,
z 16#11: no se ha recibido ninguna petición,
z 16#12: otra tarea ha solicitado ya la función
UNITE_SERVER,
z 16#FF: mensaje rechazado.
Nota: Cuando se rechaza un mensaje (código
16#FF), el informe de funcionamiento puede
tomar el valor 16#14 (servidor detenido).

En la tabla siguiente, se describen los parámetros de salida:

Parámetro Tipo Comentario


Dirección ARRAY [0.. 2] OF Dirección de la entidad de destino del
INT intercambio. Esta dirección corresponde al
canal al que está conectado el remitente de la
petición.
Received_Codes INT Al final del intercambio, esta palabra contiene:
z el código de petición recibido (byte de menor
valor),
z el código de respuesta devuelto (byte de
mayor valor).

304 33002530 05/2010


UNITE_SERVER

Ejemplo de servidor inmediato

Presentación
Este ejemplo muestra la implementación de una función UNITE_SERVER como
servidor inmediato para una función de comunicación READ_VAR. La conexión
Modbus correspondiente se conecta a la tarjeta PCMCIA de un módulo
TSX SCY 21601 ubicado en el slot 2 del bastidor de base.

Programación
Programación en ST:

IF NOT %MW100:X0 THEN


UNITE_SERVER(%MW100:2, %MW110:3, %MW10);
END_IF;

Parámetros de petición:

Parámetros Descripción
%MW100:2 Tabla de gestión
%MW110:3 Ejemplo: el servidor inmediato es SCP114, configurado como
esclavo 49 en SCY21601 (slot 4, bastidor 0).
z Palabra 1: 16#FE00 corresponde al bastidor.
z Palabra 2: 16#0405 corresponde al slot.
z Palabra 3: 16#0095 corresponde al canal.

Para obtener más detalles, consulte modalidades de


direccionamiento X-WAY (véase Controladores de comunicación,
Manual de instalación, ) .
%MW10 Respuesta:
z Byte de menor valor: 16#03, código de recepción de la función
de palabras n de lectura UNITE.
z Byte de mayor valor: 16#03, código de respuesta de la función
de palabras n de lectura UNITE.

33002530 05/2010 305


UNITE_SERVER

306 33002530 05/2010


WRITE_ASYN
33002530 05/2010

WRITE_ASYN: escritura
asíncrona de datos
28
Descripción

Descripción de la función
La función WRITE_ASYN permite escribir 1 Kbyte de datos por el canal de
mensajería asincrónica de los acopladores TSX ETY en modo TCP/IP.
Los datos a los que se puede acceder en escritura son los siguientes:
z Bits internos y
z palabras internas.
La escritura asincrónica sólo se puede llevar a cabo entre dos estaciones de un
mismo segmento de red Ethernet TCP/IP.
La función WRITE_ASYN se emite al final de la tarea MAST sólo si ésta se encuentra
configurada en modo periódico. Es posible activar ocho funciones al mismo tiempo.
El tamaño de los búferes de emisión y de recepción se expresa en palabras. Es de
512 palabras, es decir, 1024 bytes.
NOTA: la función de servidor asincrónico es compatible con los protocolos UNI-TE
V2.0 o V1. La función WRITE_ASYN utiliza el protocolo UNI-TE V2.0.
Los parámetros adicionales EN y ENO se pueden configurar.

33002530 05/2010 307


WRITE_ASYN

Principio de los intercambios


En la siguiente figura se muestran los intercambios entre dos estaciones para una
función WRITE_ASYN :

308 33002530 05/2010


WRITE_ASYN

Representación en FBD
Representación:

Representación en LD
Representación:

Representación en IL
Representación:
LD Address
WRITE_ASYN Object_Type, First_Object, Object_Number,
Data_to_Write, Management_Param

33002530 05/2010 309


WRITE_ASYN

Representación en ST
Representación:
WRITE_ASYN(Address, Object_Type, First_Object, Object_Number,
Data_to_Write, Management_Param);

Descripción de los parámetros


En la siguiente tabla se describen los parámetros de entrada:

Parámetro Tipo Comentario


Address ARRAY [0.. 5] OF Dirección de la entidad de destino del intercambio.
INT Las direcciones son de tipo:
ADDR(’{Red.Estación}SYS.
Object_Type CADENA DE Tipo de objetos que se van a escribir:
CARACTERES z ’%M’: bits internos,
z ’%MW’: palabras internas,
z ’%S’: bits de sistema y
z ’%SW’: palabras de sistema.
First_Object DINT Índice del primer objeto que se va a escribir en el
equipo de destino.
Object_Number INT Número de objetos que se van a escribir.
Data_to_Write ARRAY [n... m] Tabla de palabras que contiene el valor de los
OF INT objetos que se van a escribir.

310 33002530 05/2010


WRITE_ASYN

En la siguiente tabla se describen los parámetros de entrada/salida:

Parámetro Tipo Comentario


Management_Param ARRAY [0.. 3] OF Tabla de gestión del intercambio
INT (véase página 33). La confirmación de
operación toma uno de los siguientes valores:
z 16#00: intercambio correcto,
z 16#01: parada por timeout, la respuesta no
se ha podido emitir en menos de dos
segundos,
z 16#02: parada por solicitud del usuario
(STOP, S0, INIT, rearranque en frío o en
caliente),
z 16#03: formato de dirección incorrecta,
z 16#05: parámetros de gestión incorrectos,
z 16#07: destinatario ausente,
z 16#09: tamaño del búfer de recepción
insuficiente,
z 16#10: tamaño del búfer de emisión
insuficiente,
z 16#11: ausencia de recursos del sistema (ya
hay ocho funciones activas),
z 16#19: número de intercambio incorrecto y
z 16#FF: mensaje rechazado.
Nota: se debe programar un valor de timeout
para detener un intercambio en curso cuando al
emisor no le llega la respuesta.

33002530 05/2010 311


WRITE_ASYN

312 33002530 05/2010


WRITE_GDATA
33002530 05/2010

WRITE_GDATA: escritura de
datos globales Modbus Plus
29
Descripción

Descripción de la función
La función WRITE_GDATA permite escribir los datos compartidos, conocidos
también como datos globales, en una red Modbus Plus.
Los datos globales se comparten entre un máximo de 64 estaciones de una misma
red Modbus Plus. Cada estación puede escribir hasta 32 enteros que pueden
utilizar todas las estaciones de la red. A su vez, cada estación puede leer los 32
enteros (como máximo) de cada estación de la red.
Los parámetros adicionales EN y ENO se pueden configurar.

Representación en FBD
Representación:

33002530 05/2010 313


WRITE_GDATA

Representación en LD
Representación:

Representación en IL
Representación:
LD Address
WRITE_GDATA Data_to_Write, Management_Param

Representación en ST
Representación:
WRITE_GDATA(Address, Data_to_Write, Management_Param);

314 33002530 05/2010


WRITE_GDATA

Descripción de los parámetros


En la siguiente tabla se describen los parámetros de entrada:

Parámetro Tipo Comentario


Address ARRAY [0.. 5] OF Dirección de la tarjeta PCMCIA que conecta el
INT Premium a la red Modbus Plus. Esta dirección
equivale a: ADDR(’0.0.1.SYS’).
Nota: la escritura de los datos se efectúa en la
tarjeta PCMCIA que, a continuación, se
encarga de compartir los datos.
Data_to_Write ARRAY [n... m] Tabla de palabras que contiene el valor de los
OF INT objetos que se van a escribir. El tamaño de
esta tabla debe ser siempre de 32 enteros de
16 bits, que es el tamaño máximo de los datos
globales en una red Modbus Plus.

En la siguiente tabla se describen los parámetros de entrada/salida:

Parámetro Tipo Comentario


Management_Param ARRAY [0.. 3] OF Tabla de gestión del intercambio
INT (véase página 33).
No es necesario inicializar el parámetro de
longitud antes del inicio del intercambio.

33002530 05/2010 315


WRITE_GDATA

316 33002530 05/2010


WRITE_REG
33002530 05/2010

WRITE_REG: escritura del


registro
30
Introducción
En este capítulo se describe el bloque WRITE_REG.

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Descripción 318
Tipos de datos derivados 321
Modo de funcionamiento 323
Descripción de los parámetros 324

33002530 05/2010 317


WRITE_REG

Descripción

Descripción de funciones
Con cada flanco ascendente en la entrada REQ, este bloque de función escribe un
área de registro del PLC a través de Modbus Plus, Ethernet TCP/IP o Ethernet
SY/MAX en un slave direccionado.
Como parámetros adicionales se pueden configurar EN y ENO.
NOTA: Para programar la función WRITE_REG debe conocer los procedimientos de
acceso utilizados en la red. La descripción detallada de las estructuras de ruta de
acceso Modbus Plus se encuentra en "Modbus Plus Network Planning and
Installation Guide". En el caso de que se implemente la ruta de acceso de Ethernet
TCP/IP o SY/MAX, se deberán utilizar los productos estándar de ruta de acceso de
Ethernet-IP. La descripción detallada de las rutas de acceso TCP/IP figura en el
manual "Manual de usuario sobre la configuración de Quantum con Unity
ProTCP/IP".
NOTA: En el programa puede utilizar diversos ejemplares de este bloque de
función. No obstante, no es posible instanciar estos ejemplares de forma múltiple.

Representación en FBD
Representación:

318 33002530 05/2010


WRITE_REG

Representación en LD
Representación:

Representación en IL
Representación:
CAL WRITE_REG_Instance (REQ:=StartWriteOnce,
SLAVEREG:=OffsetAddress, NO_REG:=NumberOfRegisters,
REG_WRIT:=SourceDataArea,
ADDRFLD:=DataStructureForTransfer,
DONE=>SetAfterWritingData, ERROR=>SetInCaseOfError,
STATUS=>ErrorCode)

Representación en ST
Representación:
WRITE_REG_Instance (REQ:=StartWriteOnce,
SLAVEREG:=OffsetAddress, NO_REG:=NumberOfRegisters,
REG_WRIT:=SourceDataArea,
ADDRFLD:=DataStructureForTransfer,
DONE=>SetAfterWritingData, ERROR=>SetInCaseOfError,
STATUS=>ErrorCode) ;

33002530 05/2010 319


WRITE_REG

Descripción de los parámetros


Descripción de los parámetros de entrada

Parámetro Tipo de datos Significado


REQ BOOL Con cada flanco ascendente en la entrada REQ, este bloque
de función escribe un área de registro del PLC a través de
Modbus Plus, Ethernet TCP/IP o Ethernet SY/MAX en un
slave direccionado.
SLAVEREG DINT Dirección de la primera dirección %MW del slave en el que
se debe escribir.
NO_REG INT Número de direcciones que se deben escribir desde el
slave.
REG_WRIT ANY Área de datos de origen
(Se debe declarar una estructura de datos como Located
Variable para los datos de origen).
ADDRFLD WordArr5 Estructura de datos para la transmisión de la dirección
Modbus Plus, TCP/IP o SY/MAX-IP.

Descripción de los parámetros de salida

Parámetro Tipo de datos Significado


DONE BOOL Ajustado a "1" durante un ciclo si se han escrito datos.
ERROR BOOL Ajustado a "1" durante un ciclo cuando se produce un error.
STATUS WORD En caso de que se produzca un error al ejecutar la función,
el código de error permanecerá en esta salida durante un
ciclo.
Para código de error, consulte:
z Códigos de error de Modbus Plus, SY/MAX y Ethernet
TCP/IP, página 141
z Códigos de error específicos de SY/MAX, página 146
z Códigos de error de TPC/IP Ethernet, página 148

Error de ejecución
Para obtener una lista de todos los códigos y los valores de error del módulo,
consulte Extendido, página 426.

320 33002530 05/2010


WRITE_REG

Tipos de datos derivados

Descripción de elementos para WordArr5 en Modbus Plus


Descripción de elementos para WordArr5 en Modbus Plus:

Elemento Tipo de datos Descripción


WordArr5[1] WORD Byte menos significativo:
El registro de ruta de acceso 1 se utiliza para
determinar la dirección (dirección de ruta de acceso
una de cinco) del participante de destino en una
transmisión de red.
El último byte en la ruta de acceso que no se
corresponda con cero es el participante de destino.
Byte más significativo:
dirección de participante de origen.
z posición de slot del módulo al utilizar el puerto
Modbus Plus en el módulo NOM.
z establecido en 0 al utilizar el puerto Modbus Plus
en la CPU (independientemente del slot de la
CPU).
WordArr5[2] WORD Registro de ruta de acceso 2
WordArr5[3] WORD Registro de ruta de acceso 3
WordArr5[4] WORD Registro de ruta de acceso 4
WordArr5[5] WORD Registro de ruta de acceso 5

Descripción de elementos para WordArr5 en Ethernet TCP/IP


Descripción de elementos para WordArr5 en Ethernet TCP/IP

Elemento Tipo de datos Descripción


WordArr5[1] WORD Byte más significativo:
slot del módulo NOE
Byte menos significativo:
índice de asignación MET (transportador de MBP por
Ethernet)
WordArr5[2] WORD Byte 4 (MSB) de la dirección IP de 32 bits de destino
WordArr5[3] WORD Byte 3 de la dirección IP de 32 bits de destino
WordArr5[4] WORD Byte 2 de la dirección IP de 32 bits de destino
WordArr5[5] WORD Byte 1 (LSB) de la dirección IP de 32 bits de destino

33002530 05/2010 321


WRITE_REG

Descripción de elementos para WordArr5 en Ethernet SY/MAX


Descripción de elementos para WordArr5 en Ethernet SY/MAX:

Elemento Tipo de datos Descripción


WordArr5[1] WORD Byte más significativo:
slot del módulo NOE
Byte menos significativo:
índice de asignación MET (transportador de MBP por
Ethernet)
WordArr5[2] WORD Número de estación de destino (o establecer en FF
hex)
WordArr5[3] WORD Terminador (establecer en FF hex)
WordArr5[4] WORD Sin significado
WordArr5[5] WORD Sin significado

322 33002530 05/2010


WRITE_REG

Modo de funcionamiento

Modo de funcionamiento del bloque WRITE_REG


Se puede programar un gran número de bloques de función WRITE_REG, pero sólo
pueden estar activas cuatro operaciones de escritura al mismo tiempo. En este
caso, no tiene importancia si dichas operaciones se realizan por medio de este
bloque de función u otros (p. ej. MBP_MSTR o CWRITE_REG). Todos los bloques de
función emplean una ruta de transacción de datos y necesitan varios ciclos para
completar una orden.
Si se utilizan varios bloques de función WRITE_REG en una aplicación, hay que
diferenciarlos al menos en los valores de los parámetros NO_REG o REG_WRIT.
NOTA: La comunicación TCP/IP entre un autómata Quantum (NOE 211 00) y un
autómata Momentum (todas las CPU TCP/IP y todos los módulos de E/S TCP/IP)
sólo es posible cuando en cada ciclo del autómata únicamente se lleva a cabo una
orden de escritura o de lectura. Si se envían varias órdenes por cada ciclo del
autómata, la comunicación permanece estancada, sin generar ningún mensaje de
error en el registro de estado del bloque de función.
Las señales de estado DONE y ERROR indican al programa de aplicación el estado
del bloque de función.
La información de acceso completa está incluida en la estructura de datos
WordArr5 de la entrada ADDRFLD. El tipo del bloque de función conectado a esta
entrada se orienta de acuerdo con la red utilizada.
Utilice:
z El bloque de función ModbusP_ADDR (véase página 155) para Modbus
Plus.
z El bloque de función TCP_IP_ADDR (véase página 295) para Ethernet
TCP/IP.
z El bloque de función SYMAX_IP_ADDR (véase página 289) para Ethernet
SY/MAX.
NOTA: La estructura de datos WordArr5 también se puede utilizar con constantes.

33002530 05/2010 323


WRITE_REG

Descripción de los parámetros

REQ
Un flanco ascendente inicia la transacción de escritura.
El parámetro se puede indicar como dirección, Located Variable, Unlocated
Variable o literal.

SLAVEREG
Comienzo del área en el slave direccionado donde se van a escribir los datos de
origen. El área de destino se encuentra siempre dentro del área del rango de
direcciones %MW.
NOTA: Para slaves de un PLC que no sea Unity Pro:
Esta área de destino siempre se encuentra dentro del área de registro 4x.
SLAVEREG espera la dirección de destino como offset dentro del área 4x. El "4" de
la izquierda no se tiene en cuenta (p. ej. 59 (contenido de las variables o valor del
literal) = 40059).
El parámetro se puede indicar como dirección, Located Variable, Unlocated
Variable o literal.

NO_REG
Número de direcciones que deben escribirse en el procesador slave (1 a 100).
El parámetro se puede indicar como dirección, Located Variable, Unlocated
Variable o literal.

REG_WRIT
Para este parámetro se debe definir una matriz (ARRAY) del tamaño del envío que
se va a realizar (≥ NO_REG), que se utilizará como área de datos de origen. El
nombre de esta matriz se transferirá como parámetro. Si se define una matriz
demasiado pequeña, sólo se transferirá la cantidad de datos que tenga cabida en
la matriz.
El parámetro se debe indicar como Located Variable.

DONE
La transición a estado ON durante un ciclo de programa implica que se han
transmitido los datos.
El parámetro se puede indicar como dirección, Located variable o Unlocated
variable.

324 33002530 05/2010


WRITE_REG

ERROR
La transición a estado ON durante un ciclo de programa implica que se ha
descubierto un nuevo error.
El parámetro se puede indicar como dirección, Located variable o Unlocated
variable.

STATUS
En caso de que se produzca un error al ejecutar la función, el código de error
permanecerá en esta salida durante un ciclo.
Para código de error, consulte:
z Códigos de error de Modbus Plus, SY/MAX y Ethernet TCP/IP, página 141
z Códigos de error específicos de SY/MAX, página 146
z Códigos de error de TPC/IP Ethernet, página 148

El parámetro se puede indicar como dirección, Located variable o Unlocated


variable.

33002530 05/2010 325


WRITE_REG

326 33002530 05/2010


WRITE_VAR
33002530 05/2010

WRITE_VAR: variables de
escritura
31
Objetivo
En este capítulo se describe la función de comunicación WRITE_VAR.

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Descripción 328
Pantalla de entrada asistida 333
Ejemplo de cómo escribir palabras en una red 335
Ejemplo de escritura de palabras mediante la conexión serie de PLC 337
Modicon M340
Ejemplo de comprobación de ejecución 339

33002530 05/2010 327


WRITE_VAR

Descripción

Descripción de funciones
La función WRITE_VAR se utiliza para escribir el valor de uno o varios objetos de
lenguaje del mismo tipo:
z bits internos,
z palabras internas.
Los objetos que se van a escribir deben ser siempre consecutivos. Tienen que estar
ubicados en una CPU remota o en un dispositivo conectado a un canal de
comunicación.

ADVERTENCIA
INCOMPATIBILIDAD DE DATOS INTERCAMBIADOS
Las alineaciones de la estructura de datos no son las mismas para
Premium/Quantum y M340, así que compruebe que los datos intercambiados son
compatibles. Consulte DDT: Normas de asignación (véase Unity Pro, Lenguajes y
estructura del programa, Manual de referencia ) para las normas de alineación.
Si no se siguen estas instrucciones pueden producirse lesiones personales
graves o mortales o daños en el equipo.

Pueden configurarse los parámetros adicionales EN y ENO.

Representación en FBD
Representación:

328 33002530 05/2010


WRITE_VAR

Representación en LD
Representación:

Representación en IL
Representación:
Dirección LD
WRITE_VAR Object_Type, First_Object, Object_Number,
Data_to_Write, Management_Param

Representación en ST
Representación:
WRITE_VAR(Address, Object_Type, First_Object, Object_Number,
Data_to_Write, Management_Param);

33002530 05/2010 329


WRITE_VAR

Descripción de los parámetros


En la siguiente tabla se describen los parámetros de entrada:

Parámetro Tipo Comentario


Dirección ARRAY [0.. 5] OF Las instrucciones siguientes sólo son válidas para
INT para PLC Premium:
Premium z La función ADDR proporciona la dirección del
ARRAY [0.. 7] OF canal de recepción del mensaje en modalidad
INT para de caracteres.
Modicon M340 z Dirección de la entidad de destino del
intercambio. Las direcciones siguientes están
prohibidas:
z {Red.Estación}APP,
z {Red.Estación}APP.núm y
z direcciones de difusión (TODAS, 0 para el
módulo TSX SCY 11601).
Las instrucciones siguientes sólo son válidas para
PLC Modicon M340:
z La función ADDM proporciona la dirección del
canal de recepción del mensaje en modalidad
de caracteres.
z La sintaxis de la dirección es del tipo ADDM
(‘r.m.c.node’).
Object_Type STRING Tipo de objetos que deben escribirse para PLC
Premium:
z ’%M’: bits internos,
z ’%MW’: palabras internas,
z ’%S’: bits de sistema y
z ’%SW’: palabras de sistema.

Tipo de objetos que deben escribirse para PLC


Modicon M340:
z ’%M’: bits internos,
z ’%MW’: palabras internas.

First_Object DINT Índice del primer objeto que se va a escribir en el


equipo de destino.
Object_Number INIT Número de objetos que se van a escribir.
Data_to_Write ARRAY [n... m] Tabla de palabras que contiene el valor de los
OF INT objetos que se van a escribir.

330 33002530 05/2010


WRITE_VAR

En la siguiente tabla se describen los parámetros de entrada y salida:

Parámetro Tipo Comentario


Management_Param ARRAY [0.. 3] OF Tabla de gestión del intercambio
INT (véase página 33)
En los PLC Modicon M340, existe un nuevo bit
de cancelación disponible en la palabra de
rango 1 de la tabla de gestión de intercambio.
Este bit de cancelación se encuentra ubicado
en la palabra de rango 1, que consta de 2 bytes:
z Byte de mayor valor: número de
intercambio.
z Byte de menor valor: bit de actividad
(rango 0) y bit de cancelación (rango 1).
La EF WRITE_VAR puede anularse con
CANCEL EF o estableciendo en 1 el bit de
cancelación de la tabla de gestión
(véase Modicon M340 con Unity Pro, Conexión
serie, Manual del usuario).

NOTA: El parámetro de longitud no debe inicializarse antes de iniciar la función.

33002530 05/2010 331


WRITE_VAR

Transacciones simultáneas
En la tabla siguiente se detallan las capacidades de cada canal de comunicación
para procesar transacciones de forma simultánea, de acuerdo con las distintas
configuraciones de los PLC Micro y Premium.

Configuración Micro TSX 57 10 TSX 57 20 TSX 57 TSX 57 46/56


23/30/40/45/55,
PCX 57, PMX 57
Puerto de terminal maestro Uni-Telway 4 4 4 4 8
Conexión PCMCIA o SCY maestro Uni- 1 8 8 8 8
Telway
Puerto de terminal esclavo cliente Uni- 4 1 1 1 8
Telway
Conexión PCMCIA o SCY esclava 1 1 1 1 1
cliente Uni-Telway
Puerto de terminal esclavo servidor Uni- 4 4 4 4 4
Telway
Conexión PCMCIA o SCY esclava 4 6 6 6 6
servidor Uni-Telway
Puerto de terminal Modbus 4 - - - -
Conexión PCMCIA o SCY Modbus 4 8 8 8 8
Modalidad de caracteres, bloque de 1 1 1 1 1
terminales
Modalidad de caracteres, conexión 4 8 8 8 8
PCMCIA o SCY
PCMCIA CANopen - 10 10 10 10
Conexión PCMCIA o SCY Fipway 4 8 8 8 8
Modbus Plus 4 4 4 4 4
Ethernet - 16 16 16 16
Ethernet incorporado - - - - 64

En la tabla siguiente se detallan las capacidades de cada canal de comunicación


para procesar transacciones de forma simultánea, de acuerdo con las distintas
configuraciones de los PLC Modicon M340.

Configuración BMX P34 1000 BMX P34 2000 BMX P34 BMX P34 2020 BMX P34
2010/20102 2030/20302
CANopen incorporado - - 16 - 16
Ethernet incorporado - - - 16 16
Puerto serie maestro 8 16 16 16 -
Modbus

332 33002530 05/2010


WRITE_VAR

Pantalla de entrada asistida

Presentación
Para esta función de comunicación, puede solicitar la pantalla de entrada asistida.
Tenga en cuenta que la pantalla de entrada asistida no está disponible para
Modicon M340.
NOTA: Los símbolos de variable se aceptan en los diferentes campos de la
pantalla.

Ilustración
La pantalla siguiente muestra un ejemplo de la pantalla de entrada asistida de la
función:

Dirección
Para PLC Premium, los tipos de objetos posibles son los siguientes:
z ADDR(STRING),
z ARRAY [0..5] OF INT.
NOTA: Si introduce un valor directamente en un campo, el botón de entrada de
dirección asistida se vuelve gris.

Tipo de objeto para escribir


Para PLC Premium, las opciones posibles son las siguientes:
z ‘%M’ para la escritura de bits internos.
z ‘%MW’ para la escritura de palabras internas.
z ‘%S’ para la escritura de bits de sistema.
z ‘%SW’ para la escritura de palabras de sistema.

33002530 05/2010 333


WRITE_VAR

Para PLC Modicon M340, las opciones posibles son las siguientes:
z ‘%M’ para la escritura de bits internos.
z ‘%MW’ para la escritura de palabras internas.
NOTA: Basta con seleccionar la solución que desee en el menú desplegable.

Dirección del primer objeto para escribir


Los objetos posibles son de tipo DINT:
z variables,
z constantes,
z valor inmediato.
NOTA: Si introduce una constante, aparecerá un campo de entrada para ello. Si
introduce una variable, ésta puede o no localizarse (véase página 462). Por otro
lado, los objetos que deben escribirse son variables ubicadas obligatorias.

Número de objetos consecutivos para escribir


Los objetos posibles son del tipo INT:
z variables,
z constantes,
z valor inmediato.
NOTA: Si introduce una constante, aparecerá un campo de entrada para ello. Si
introduce una variable, ésta puede o no localizarse.

Datos para escribir


Los datos del área de escritura son una matriz de enteros. El tamaño de la matriz
depende del número de objetos que deben escribirse. Esta matriz de enteros puede
o no localizarse.

Informe
El informe es una matriz de 4 enteros.
NOTA: Tenga cuidado de no utilizar varias áreas de memoria idénticas para las
tablas de informes; de lo contrario, la función de lectura de variables podría no
funcionar.

334 33002530 05/2010


WRITE_VAR

Ejemplo de cómo escribir palabras en una red

Presentación
Hasta ahora, los ejemplos se han escrito utilizando el direccionamiento directo (uso
de %MWi), pero también es posible crear estos mismos ejemplos mediante
variables no ubicadas.
El ejemplo siguiente utiliza variables no ubicadas e incluye la escritura de una tabla
de 50 palabras no ubicadas llamada Tab_1 (declarada como una MATRIZ [0..49]
DE INT) en el esclavo Uni-Telway, con la dirección:
z Red 20
z Estación 1
z Módulo SCM2116 en TSX 87 en slot 5 del bastidor base
z Canal 1
z Dirección del servidor del esclavo Ad0 = 3.
Los valores que deben escribirse se encuentran en la variable Tab_1 del emisor.
Los parámetros de gestión están ubicados en una tabla de cuatro enteros
denominada Management_Parameter (declarada como MATRIZ [0..3] DE INT).

Ilustración
Las dos estaciones se conectan a través de una red Fipway.

33002530 05/2010 335


WRITE_VAR

Programación
Programación en ST:

SI RE(%I0.3.1) Y NO Management_Parameter[0].0 ENTONCES

WRITE_VAR(ADDR(’{20.1}0.5.1.3’),’%MW’,0,50,Tab_1,Management_
Parameter);

END_IF;
Parámetros de petición:

Parámetros Descripción
ADDR(‘{20.1}5.1.3’) z {20.1}: red 20, estación 1
z 0: bastidor
z 5: módulo
z 1: canal 1
z 3: dirección de destino
’%MW’ Tipo de objeto (palabra interna)
0 Dirección del primer objeto para escribir
50 Número de objetos consecutivos para escribir
Tab_1 Datos para escribir
Management_Parameter Tabla de gestión

336 33002530 05/2010


WRITE_VAR

Ejemplo de escritura de palabras mediante la conexión serie de PLC


Modicon M340

Presentación
El ejemplo utiliza dos procesadores Modicon M340 que se comunican a través de
la conexión serie Modbus.

Descripción del ejemplo


El ejemplo siguiente utiliza variables no ubicadas e incluye la escritura de una tabla
de 50 palabras no ubicadas llamada Tab_1 (declarada como MATRIZ [0..49]
DE INT) en el esclavo Modbus. Los parámetros de gestión están ubicados en una
tabla de cuatro enteros llamados Management_Parameter (declarados como
MATRIZ [0..3] DE INT).
En dicho ejemplo, el número de esclavos Modbus es 7, así que el parámetro ADDM
de entrada es ‘0.0.0.7’:
z 0: número de bastidor del procesador igual a 0,
z 0: número de slot del procesador dentro del bastidor, igual a 0 ya que el número
de slot de un procesador Modicon M340 es siempre 0,
z 0: número de canal, igual a 0, ya que la conexión serie de un procesador
Modicon M340 es siempre el canal 0,
z 7: el número de esclavo configurado es 7.
Los valores que deben escribirse se encuentran en la variable Tab_1 del emisor.

Ilustración
Los dos procesadores Modicon 340 están conectados a través de una conexión
Modbus:

33002530 05/2010 337


WRITE_VAR

Programación
Programación en ST:

SI RE(%I0.3.1) Y NO Management_Parameter[0].0 ENTONCES

WRITE_VAR(ADDM(’0.0.0.7’),’%MW’,0,50,Tab_1,Management_Parame
ter);

END_IF;
Los parámetros de solicitud son los siguientes:

Parámetros Descripción
ADDM(’0.0.0.7’) z 0: número de bastidor del procesador esclavo
z 0: número de slot del procesador esclavo
z 0: número de canal (número del puerto serie)
z 7: número de esclavo configurado
’%MW’ Tipo de objeto (palabra interna)
0 Dirección del primer objeto para escribir
50 Número de objetos consecutivos para escribir
Tab_1 Datos para escribir
Management_Parameter Tabla de gestión

338 33002530 05/2010


WRITE_VAR

Ejemplo de comprobación de ejecución

Presentación
El ejemplo siguiente ilustra la función WRITE_VAR con una comprobación del
parámetro de gestión.

Programación de la función
Programación en ST:

SI NO %M20 Y %I0.1.2 ENTONCES


%MW200:4:= 0;
INC %MW1700
%MW202:= 50;
WRITE_VAR(ADDR(’0.3.1.7’),’%MW’,20,1,%MW1700:1,%MW200:4);
SET %M20;
END_IF;
z El bit de entrada %I0.1.2 controla la función.
z El bit de Internet %M20 se utiliza para comprobar la actividad de la función.
z %MW200:4:= 0; establece la tabla de gestión en 0.
z INC %MW1700; incrementa la palabra %MW1700.
z MW202:= 50; inicializa el valor de timeout en 5 segundos.
NOTA:
WRITE_VAR(ADDM(‘0.3.1.7’),’%MW’,20,1,%MW1700:4,%MW200:4); La
sintaxis debe utilizarse para PLC Modicon M340, ya que la función ADDR no puede
ser utilizada por un PLC Modicon M340.

Programación de la comprobación de intercambio


Programación en ST:

SI %M20 Y %M200.0 ENTONCES


INC %MW204;
IF %MW201 = 0 THEN
INC %MW205;
ELSE
SET %Q0.2.2;
INC %MW206;

33002530 05/2010 339


WRITE_VAR

%MW207 := %MW201;
END_IF;
END_IF;

z %MW204 contabiliza el número de intercambios.


z %MW205 contabiliza el número de intercambios correctos.
z %MW206 contabiliza el número de intercambios que generan errores.
z %MW207 almacena el mensaje de error.
z %Q0.2.2 indica un fallo de intercambio.

340 33002530 05/2010


XXMIT
33002530 05/2010

XXMIT: transmisión

32
Introducción
En este capítulo se describe el bloque XXMIT.

Contenido de este capítulo


Este capítulo contiene las siguientes secciones:
Sección Apartado Página
32.1 Introducción a XXMIT 342
32.2 XXMIT: funciones 343
32.3 XXMIT: normas de programación 391
32.4 Referencias técnicas para XXMIT 393
32.5 Información de cableado 404

33002530 05/2010 341


XXMIT

32.1 Introducción a XXMIT

Funciones de XXMIT

Vista general de la función


XXMIT permite la utilización del puerto serie de los PLC para realizar una
comunicación bajo el control del programa de aplicación.
Se permiten los siguientes tipos de comunicación:
z Modbus como maestro
z Entrada/Salida ASCII simple
z Entrada ASCII con uno o dos caracteres de finalización
z Comunicación con módem

Descripción de las funciones


XXMIT envía mensajes Modbus desde un PLC "maestro" a varios PLC esclavos o
envía cadenas de caracteres desde el puerto esclavo Modbus número 1 de los PLC
a impresoras y terminales ASCII. XXMIT envía estos mensajes por medio de
módems de marcación telefónica, radio módems o simplemente mediante
conexiones directas. El bloque XXMIT realiza funciones de entrada ASCII
generales en la modalidad de comunicación, incluidas las ASCII sencillas y las
ASCII finalizadas. Podrá importar y exportar datos binarios o ASCII en su PLC.
XXMIT posee un sistema de diagnóstico integrado que realiza las comprobaciones
necesarias para asegurarse de que no hay ningún otro XXMIT activo en el mismo
puerto del PLC. Dentro del XXMIT, las entradas de control permiten al usuario
controlar los enlaces de comunicación entre el PLC y los dispositivos DCE (Data
Communication Equipment o equipo de comunicación de datos) conectados al
puerto Modbus número 1 del PLC. XXMIT activa el LED del puerto cuando se
transmiten datos.

ATENCIÓN
DATOS NO VÁLIDOS
En el caso de mensajes ASCII, no hay control (similar a un CRC o a una suma de
chequeado) que garantice la validez de los datos recibidos.
Para evitar la recepción de una dato no válido debido a perturbaciones eléctricas,
es recomendable utilizar mensajes Modbus que incluyan una verificación por
redundancia cíclica (Cyclical Redundancy Checking, o CRC).
Si no se siguen estas instrucciones pueden producirse lesiones personales
o daños en el equipo.

342 33002530 05/2010


XXMIT

32.2 XXMIT: funciones

Descripción general
En esta sección se describe XXMIT.

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
Breve descripción 344
Representación 345
Descripción detallada de parámetros 349
Funciones de comunicación de XXMIT 360
Funciones ASCII de XXMIT 361
Funciones de módem de XXMIT 367
Funciones Modbus de XXMIT 369
FIFO y control de flujo 376
Ejemplos de aplicación 380

33002530 05/2010 343


XXMIT

Breve descripción

Descripción de la función
Los bloques de funciones XXMIT envían mensajes Modbus desde un PLC
“maestro” a varios PLC esclavos o envían cadenas de caracteres ASCII desde el
puerto esclavo Modbus número 1 a impresoras y terminales ASCII. XXMIT envía
estos mensajes por medio de módems de marcación telefónica, radio módems o
simplemente mediante conexiones directas.
NOTA: El bloque de función XXMIT sólo se puede usar en la tarea MAST. Se
produce un código de error inmediato (127) si se inicia en las tareas FAST/AUX o
EVENT (no hay ningún control por parte de Unity Pro en el momento de la creación).
NOTA: EN y ENO NO deben utilizarse con XXMIT; de lo contrario, los parámetros
de salida podrían inmovilizarse.
NOTA: La comunicación Modbus mediante radio módems con PLC Quantum sólo
es posible con el bloque de funciones XXMIT configurado como maestro Modbus.
NOTA: Procure que dos maestros (en el mismo bus) no envíen dos peticiones
simultáneamente. De lo contrario, ambas se perderán y cada informe tendrá un mal
resultado, que podría ser 16#0100 (la petición no se ha podido procesar) o
16#ODFF (falta el esclavo).

Requisitos de software y hardware


Software
XXMIT requiere el siguiente software:
z Unity Pro 2.3 o superior.
z PLC Quantum con la versión 2.3 del sistema operativo o superior.

NOTA: Para importar en Unity Pro una sección de programa que contenga unos
bloques de funciones XXMIT, es necesario configurar un PLC Quantum con una
versión igual a 2.30 o superior.
Hardware
XXMIT no admite el siguiente hardware:
z PLC Quantum que no admiten lenguajes Unity Pro IEC
z PLC de seguridad Quantum
z PLC Premium
z PLC Modicon M340
z Simulador de PLC

344 33002530 05/2010


XXMIT

Representación

Representación FBD
Representación:

33002530 05/2010 345


XXMIT

Representación LD
Representación:

Representación IL
Representación:
CAL XXMIT_instance(Start:=Start_param,
Command:=Command_param, MsgOut:=MsgOut_param,
MsgLen:=Msglen_param, Port:=Port_param,
Baudrate:=Baudrate_param, Databits:=Databits_param,
Stopbits:=Stopbits_param, Parity:=Parity_param,
RespTout:=RespTout_param, RetryLmt:=RetryLmt_param,
StartDly:=StartDly_param, EndDly:=EndDly_param,
Error=>Error_param, MsgIn=>MsgIn_param,
RecCount=>RecCount_param, Status=>Status_param,
Retry=>Retry_param)

346 33002530 05/2010


XXMIT

Representación ST
Representación:
XXMIT_instance (Start:=Start_param, Command:=Command_param,
MsgOut:=MsgOut_param, MsgLen:=Msglen_param,
Port:=Port_param, Baudrate:=Baudrate_param,
Databits:=Databits_param, Stopbits:=Stopbits_param,
Parity:=Parity_param, RespTout:=RespTout_param,
RetryLmt:=RetryLmt_param, StartDly:=StartDly_param,
EndDly:=EndDly_param, Error=>Error_param,
MsgIn=>MsgIn_param, RecCount=>RecCount_param,
Status=>Status_param, Retry=>Retry_param);

Descripción de parámetros
Descripción del parámetro del bloque:

Parámetros Tipo de datos Significado


Start BOOL El valor 1 inicia la operación de XXMIT
(véase página 349) (véase página 349)
Command WORD Especifica el comando que se va a ejecutar
(véase página 349) (véase página 349)
MsgOut ANY Mensaje que se va a enviar (véase página 352)
(véase página 352)
MsgLen INT Longitud del mensaje de salida (véase página 353)
(véase página 353)
Port BYTE Selección de la interfase de comunicación (sólo
(véase página 353) puerto 1) (véase página 353)
Baudrate INT Tasa de baudios (véase página 353)
(véase página 353)
Databits BYTE Bits de datos (véase página 353)
(véase página 353)
Stopbits BYTE Bits de parada (véase página 354)
(véase página 354)
Parity BYTE Paridad (véase página 354)
(véase página 354)
RespTout INT Tiempo de espera para una respuesta válida
(véase página 354) (véase página 354)
RetryLmt INT Número de reintentos hasta recibir una respuesta
(véase página 354) válida (véase página 354)
StartDly INT Tiempo de espera antes de la transmisión del
(véase página 354) mensaje (véase página 354)

33002530 05/2010 347


XXMIT

Parámetros Tipo de datos Significado


EndDly INT Tiempo de espera después de la transmisión del
(véase página 355) mensaje (véase página 355)
Active BOOL El valor 1 indica que se está realizando una
(véase página 355) operación de XXMIT (véase página 355)
Done BOOL El valor 1 indica que la operación de XXMIT se ha
(véase página 355) completado satisfactoriamente. (véase página 355)
Error BOOL El valor 1 indica que ha surgido un error o que la
(véase página 355) operación de XXMIT ha terminado.
(véase página 355)
Msgln ANY Mensaje entrante (véase página 356)
(véase página 356)
RecCount INT Muestra el número de caracteres recibidos
(véase página 356) (véase página 356)
Status INT Muestra un código de fallo generado por XXMIT
(véase página 356) (véase página 356)
Retry INT Indica el número actual de reintentos realizados por
(véase página 359) XXMIT (véase página 359)

348 33002530 05/2010


XXMIT

Descripción detallada de parámetros

Inicio
Un valor de 1 en la señal de inicio activa la operación de XXMIT. El valor 1 deberá
aplicarse hasta que la operación se haya completado o hasta que se produzca un
error.
NOTA: Los parámetros de entrada de XXMIT se deben inicializar antes de ajustar
la entrada START. No se deben cambiar mientras el bloque de funciones está
activo.

Comando
XXMIT interpreta cada bit de la palabra de comando como una función que debe
realizarse. Si los bits 9 y 8 están activados simultáneamente, si dos o más de los
bits 3, 2, 1 ó 0 están activados simultáneamente o si el bit 9 no está activado cuando
los bits 3, 2, 1 ó 0 están activados, se genera un error 129. Para obtener más
detalles, consulte Funciones de comunicación de XXMIT, página 360. A
continuación, se muestra una tabla con las definiciones de cada bit.
Estructura de las palabras de comando

Definiciones de los bits de las palabras de comando del bloque de funciones XXMIT

Bit Definición
Bit 15 (msb) Reservado
Bit 14 Habilitar Se establece en 1 cuando un DCE que está conectado al PLC requiere
control de módem un protocolo de hardware que utilice el control RTS/CTS. Este bit se
RTS/CTS puede utilizar junto con los valores incluidos en StartDly y EndDly. El
retardo de inicio de transmisión mantiene RTS asegurado durante el
tiempo establecido en StartDly (ms) antes de que XXMIT envíe un
mensaje desde el puerto del PLC. Asimismo, el retardo de fin de
transmisión mantiene RTS asegurado durante el tiempo establecido en
EndDly (ms) después de que XXMIT haya terminado de enviar un
mensaje desde el puerto del PLC. Una vez finalizado el tiempo
establecido como retardo de fin de transmisión, XXMIT anula RTS.
Bit 13 Habilitar Se establece en 1 cuando el puerto seleccionado debe funcionar en la
modalidad RS485 modalidad RS485. En cualquier otro caso, su valor predeterminado será
0, que es la modalidad RS232.
Al utilizar el puerto Modbus en modalidad RS485 con mensajes
Modbus, no olvide utilizar exactamente los mismos parámetros
(baudrate, databits, stopbits, parity) para el bloque XXMIT que los que
están configurados para ese puerto.

33002530 05/2010 349


XXMIT

Bit Definición
Bit 12 Reservado
Bit 11 Entrada Se establece en 1 para eliminar y rechazar todos los caracteres de FIFO
ASCII finalizada hasta coincidir con la cadena inicial; a continuación, estos caracteres
iniciales y los siguientes se escriben en MsgIn hasta coincidir con la
secuencia final. La cadena final también se escribe en MsgIn. Consulte
el capítulo Función de entradas ASCII finalizadas, página 362 para
obtener más información.
Bit 10 Entrada Se establece en 1 para eliminar los caracteres ASCII de FIFO y
ASCII simple escribirlos en la matriz MsgIn. Consulte el capítulo Función de entradas
ASCII simples, página 365 para obtener más información.
Bit 9 Habilitar Se establece en 1 cuando desea enviar mensajes ASCII fuera del PLC.
mensajes de XXMIT envía cadenas ASCII de hasta 1.024 caracteres de longitud.
cadena ASCII Puede programar el mensaje ASCII en MsgOut. Utilice sólo el bit 9 o el
bit 8; no intente usar los dos.
Bit 8 Habilitar Se establece en 1 cuando desea enviar mensajes Modbus fuera del
mensajes PLC. Los mensajes Modbus pueden estar en formato RTU o ASCII.
Modbus Cuando el número de bits de datos es igual a 8, XXMIT utiliza el formato
Modbus RTU. Cuando el número de bits de datos es igual a 7, XXMIT
utiliza el formato Modbus ASCII. Utilice sólo el bit 9 o el bit 8; no intente
usar los dos.
Bit 7 Habilitar Se establece en 1 para que el bloque XXMIT pueda controlar el puerto
FIFO de seleccionado (1) desde el PLC. El bloque comienza a recibir los
recepción ASCII caracteres ASCII en FIFO circular vacío de 512 bytes. Consulte el
capítulo FIFO de recepción ASCII, página 376 para obtener más
información.
Bit 6 Habilitar Se establece en 1 para poder realizar una gestión especial del carácter
retroceso de retroceso ASCII (BS, 8 Hex) si se utiliza una entrada ASCII simple
(bit 10) o una entrada ASCII finalizada (bit 11). Si se establece el bit 6,
todos los caracteres de retroceso NO se almacenarán en MsgIn.
Consulte el capítulo Habilitación de retroceso, página 376 para obtener
más información.
Bit 5 Habilitar Se establece en 1 para permitir el control de flujo de hardware de dúplex
control de flujo completo con las señales de establecimiento de enlace RTS y CTS para
RTS/CTS los mensajes ASCII. RTS/CTS funciona tanto en modalidad de entrada
como de salida. Consulte el capítulo Habilitación del Control de flujo
RTS/CTS, página 377 para obtener más información.
Bit 4 Habilitar Se establece en 1 para permitir el control de flujo de software de dúplex
control de flujo completo con el carácter Xon ASCII (DC1, 11 Hex) y el carácter Xoff
Xon/Xoff ASCII (DC3, 13 Hex). Xon/Xoff funciona tanto en la modalidad de
entrada como de salida. Consulte el capítulo Habilitación del Control de
flujo Xon/Xoff, página 378 para obtener más información.

350 33002530 05/2010


XXMIT

Bit Definición
Bit 3 Marcar en Se establece en 1 cuando se utiliza un módem de marcación compatible
módem por con Hayes y desea una marcación por pulsos de un número de teléfono.
pulsos El número de teléfono se programa en MsgOut. La longitud del mensaje
debe estar comprendida en MsgLen. Los números marcados por pulsos
se envían al módem de forma automática precedidos por ATDT y con el
retorno de carro <CR> y el avance de línea <LF> adjuntos. Como el
mensaje marcado es una cadena ASCII, el bit 9 debe estar CON antes
de enviar el número que se va a marcar.
Bit 2 Colgar Se establece en 1 cuando se utiliza un módem de marcación compatible
módem con Hayes y desea colgar el módem. Debe usar la lógica de usuario
para poner en CON este bit. Como el mensaje de interrupción de la
conexión es una cadena ASCII, el bit 9 debe estar CON antes de enviar
el mensaje. Los mensajes de interrupción de la conexión se envían al
módem de forma automática precedidos por +++AT y con el retorno de
carro <CR> y el avance de línea <LF> adjuntos. XXMIT busca una
respuesta de desconexión correcta del módem antes de poner en CON
la señal de salida Ejecutado y señalar una finalización satisfactoria.
Bit 1 Marcar en Se establece en 1 cuando se utiliza un módem de marcación compatible
módem por tonos con Hayes y desea una marcación por tonos de un número de teléfono.
El número de teléfono se programa en MsgOut. La longitud del mensaje
debe estar comprendida en MsgLen. Los números de marcación por
tonos se envían al módem automáticamente precedidos por ATDT y con
el retorno de carro <CR> y el avance de línea <LF> adjuntos. Como el
mensaje marcado es una cadena ASCII, el bit 9 debe estar CON antes
de enviar el número que se va a marcar.
Bit 0 Inicializar Se establece en 1 cuando se utiliza un módem de marcación compatible
módem con Hayes y desea inicializar el módem. Puede programar el mensaje
de inicialización en MsgOut y la longitud del mensaje en MsgLen. Todos
los mensajes se envían al módem automáticamente precedidos por AT
y con el retorno de carro <CR> y el avance de línea <LF> adjuntos.
Como el mensaje de inicialización es una cadena ASCII, el bit 9 debe
estar CON antes de enviar el mensaje.

NOTA: En comparación con la palabra de comando XXMIT Concept, ha cambiado


la numeración de bits de la palabra de comando Unity:

33002530 05/2010 351


XXMIT

Conversión de la palabra de comando

En caso de aplicar la conversión de Concept a Unity, se debe tener en cuenta la


nueva numeración de bits cuando los bits acceden a la palabra de comando. Esto
NO se aplica cuando las palabras acceden a la palabra de comunicación.

MsgOut
MsgOut contiene los datos del mensaje que se van a transferir; por ejemplo,
caracteres ASCII para una transferencia ASCII, la definición de los caracteres de
terminación para una entrada ASCII finalizada o las plantillas Modbus para los
mensajes del maestro Modbus.
El tipo de datos que se asigne al parámetro debe cumplir los requisitos de la función
que se va a efectuar. En caso de la operación Modbus, el tipo de datos de MsgOut
y MsgIn debe ser igual.
NOTA: Para todos los tipos de comunicación (maestro Modbus, entrada/salida
ASCII), los parámetros MsgOut y MsgIn se deben asignar a una variable. Las dos
variables deben ser Data Type Byte Array o Word Array. Otros tipos pueden
producir resultados impredecibles.
NOTA: Para los mensajes Modbus, MsgOut debe ser un campo de palabras. El
tamaño mínimo de la matriz es WordArr9.

352 33002530 05/2010


XXMIT

MsgLen
Debe introducir la longitud del mensaje actual según la función XXMIT
seleccionada.
La tabla siguiente ofrece una visión general de las funciones Modbus y ASCII:

Función XXMIT Subfunción Longitud de mensaje


Mensajería Modbus 01, 02, 03, 04, 05, 5
06, 08, 15, 16
Entrada ASCII finalizada 5
Entrada ASCII simple 1...1024.
Mensajes de cadena ASCII 1...1024. La longitud seleccionada debe
coincidir con el tamaño de la matriz
asignada a MsgOut. De lo contrario,
obtendrá el error 129.

NOTA: Para los códigos de función Modbus, el valor de MsgLen puede ser superior
a cinco palabras, pero sólo las primeras cinco palabras de la tabla de definición
Modbus se tienen en cuenta en tiempo de ejecución.

Port
El término Port especifica la interfaz de comunicación. 1 es el único valor
autorizado.

Baudrate
XXMIT admite las velocidades de transmisión de datos siguientes: 50, 75, 110, 134,
150, 300, 600, 1200, 1800, 2000, 2400, 3600, 4800, 7200, 9600, 19200. Para
configurar la velocidad de transmisión de datos, introduzca el número decimal
correspondiente. Si se introduce una velocidad de datos no válida, el bloque
muestra un error de configuración no válido (código de error 127) en el elemento de
estado de XXMIT.

Databits
XXMIT admite los bits de datos siguientes: 7 y 8. Para configurar un tamaño de bits
de datos, introduzca el número decimal correspondiente en este elemento. Se
pueden enviar los mensajes Modbus en modalidad ASCII o RTU. La modalidad
ASCII requiere 7 bits de datos, mientras que la modalidad RTU requiere 8 bits de
datos. Cuando se envía un mensaje con caracteres ASCII, puede utilizar 7 u 8 bits
de datos. Si se introduce un número de bits de datos no válido, el bloque muestra
un error de configuración no válida (código de error 127) en el elemento de estado
de XXMIT. Para obtener más información sobre los formatos de mensajes Modbus,
consulte la Guía de referencia de protocolos Modbus de Modicon
(www.modbus.org).

33002530 05/2010 353


XXMIT

Stopbits
XXMIT admite uno o dos bits de parada. Escriba un decimal: 1 = un bit de parada o
2 = dos bits de parada. Si se introduce un número de bits de parada no válido, el
bloque muestra un error de configuración no válida (código de error 127) en el
elemento de estado de XXMIT.

Paridad
XXMIT admite las paridades siguientes: ninguna, impar o par. Escriba un decimal:
0 = sin paridad, 1 = paridad impar o 2 = paridad par. Si se introduce una paridad no
válida, el bloque muestra un error de configuración no válida (código de error 127)
en el elemento de estado de XXMIT.

RespTout
Se debe introducir el valor del tiempo en milisegundos (ms) para determinar cuánto
tiempo va a esperar XXMIT un mensaje de respuesta válido del equipo esclavo
(PLC, módem, etc.). Además, el tiempo hace referencia a transmisiones ASCII y a
operaciones de control de flujo. Cuando el mensaje de respuesta no surge durante
el transcurso del tiempo especificado, XXMIT señala un fallo. El rango válido es de
0 a 32.767 ms. El timeout se iniciará después de que se haya enviado el último
carácter del mensaje.

RetryLmt
Es necesario introducir el número de reintentos para determinar cuántas veces
XXMIT debe enviar un mensaje para obtener una respuesta válida del equipo
esclavo (PLC, módem, etc.). Cuando el mensaje de respuesta no surge dentro del
tiempo especificado, XXMIT indica un fallo y muestra un código de error. El rango
válido es de 0 a 32.767. Número de reintentos. Este campo se utiliza junto con
RespTout.

StartDly
Es necesario introducir el tiempo en milisegundos (ms) cuando el control RTS/CTS
está activado para determinar cuánto debe esperar XXMIT tras recibir CTS para
transmitir un mensaje al puerto del PLC. Además, puede utilizar este registro
aunque RTS/CTS NO esté controlado. En esta situación, el valor de tiempo
introducido determina cuánto tiene que esperar XXMIT antes de enviar un mensaje
desde el puerto del PLC. Se puede utilizar como temporizador de retardo de
premensaje. El rango válido es de 0 a 32.767 ms.

354 33002530 05/2010


XXMIT

EndDly
Es necesario introducir el tiempo en milisegundos (ms) cuando el control RTS/CTS
está activado para determinar cuánto debe XXMIT mantener RTS una vez se envía
el mensaje desde el puerto del PLC. Cuando el tiempo ha transcurrido, XXMIT
anula el RTS. Además, puede utilizar este registro aunque RTS/CTS NO esté
controlado. En esta situación, el valor de tiempo introducido determina cuánto tiene
que esperar XXMIT después de enviar un mensaje desde el puerto del PLC. Se
puede utilizar como temporizador de retardo de postmensaje. El rango válido es de
0 a 32.767 ms.

NOTA: En la comunicación de RS 485, la señal de transmisión se mantiene en ‘1’


durante el tiempo EndDly. En las conexiones de dos conductores, se perderá
cualquier carácter entrante procedente del otro participante en la comunicación. Por
tanto, establezca EndDly en 0 ms si no es necesaria la función.

Activo
Un valor 1 indica que XXMIT está realizando una operación.

Done
Un valor 1 indica que la operación de XXMIT se ha completado satisfactoriamente.

Error
Un valor 1 indica que ha surgido un error o que XXMIT ha terminado la operación
que estaba llevando a cabo.

33002530 05/2010 355


XXMIT

MsgIn
MsgIn contiene los datos del mensaje entrante, para entradas ASCII finalizadas o
ASCII simples.
En el caso de la operación Modbus, el tipo de datos debe ser igual al tipo del campo
MsgOut.

RecCount
Este elemento muestra el número de caracteres recibidos.
NOTA: Cuando se reciben demasiados caracteres sin que se detecte ningún
carácter de terminal, aparece un error en el parámetro Estado (131) y el parámetro
RecCount se establece en MsgLen-1.

Status
Este elemento muestra un código de error generado por XXMIT.
A continuación, se muestra una tabla con la lista completa de errores.
Estado de error

Código de error Descripción del error


1 Excepción Modbus: función no válida.
2 Excepción Modbus: dirección de datos no válida.
3 Excepción Modbus: valor de datos no válido.
4 Excepción Modbus: error en equipo participante esclavo.
5 Excepción Modbus: confirmación.
6 Excepción Modbus: participante esclavo ocupado.
7 Excepción Modbus: confirmación negativa.
8 Excepción Modbus: error de paridad de memoria.
9... 99 Reservado
100 El área de datos del PLC esclavo no puede ser 0.
101 El área de datos del PLC maestro no puede ser cero.
102 Bit (%M) no configurado.
103 Palabra de memoria del PLC maestro (%MW) no configurada.
104 La longitud de datos no puede ser igual a cero.
105, 106 Reservado
107 Timeout de la transferencia de mensajes (este error aparece cuando el
UART no puede completar una transmisión en diez segundos o menos.
Este error pasa por alto el contador de reintentos y activa la salida de
error en el primer error, consulte Información adicional para el error
107).

356 33002530 05/2010


XXMIT

Código de error Descripción del error


108 Error no definido.
109 El módem ha devuelto ERROR.
110 El módem ha devuelto SIN PORTADORA.
111 El módem ha devuelto SIN TONO DE MARCACIÓN.
112 El módem ha devuelto OCUPADO.
113 Suma de control LRC no válida desde el PLC esclavo, consulte 1) más
abajo.
114 Suma de control CRC no válida desde el PLC esclavo, consulte 1) más
abajo.
115 Código de función Modbus no válido.
116 Timeout de mensaje de respuesta Modbus, consulte 2) más abajo.
117 Timeout de respuesta del módem.
118 XXMIT no recibió acceso al puerto de comunicaciones número 1 del
PLC.
119 XXMIT no puede activar el receptor del puerto PLC.
120 XXMIT no puede definir UART del PLC.
121 Reservado
122 Puerto no válido.
123 Reservado
124 Estado interno sin definir.
125 No se permite la modalidad Broadcast con este código de función
Modbus.
126 DCE no ha validado CTS.
127 z Configuración no válida (velocidad de datos, bits de datos, paridad o
bits de parada).
z Ejecución en una tarea diferente a MAST.

z Código de función Modbus no válido.

z Dirección de esclavo superior a 247.

z El parámetro de longitud de datos es superior a los límites que se


describen en este documento.
z El número de puerto no es 1.

z Los valores RespTout, StartDly, EndDly, RecCount, MsgLen,


RetryLmt son inferiores a 0.
128 Respuesta inesperada recibida desde el esclavo de Modbus, consulte
1) más abajo.

33002530 05/2010 357


XXMIT

Código de error Descripción del error


129 Ajustes de palabra de comando no válidos.
130 Palabra de comando modificada mientras se encontraba activa.
131 Conteo de caracteres no válido.
132 Reservado
133 Error de desborde FIFO en entrada ASCII.
134 Cantidad no válida de caracteres de inicio o de caracteres de
finalización.
135...149 Reservado
150 El puerto configurado ya está ocupado por otra instancia del bloque de
funciones XXMIT o este PLC no lo admite.
151 MsgOut es menor de 12 bytes cuando está seleccionada la función de
mensajes del maestro de Modbus. También incluye el valor del
parámetro MsgLen inferior a 5.
152 La variable conectada a MsgOut es menor que el valor del parámetro
MsgLen cuando está seleccionada la función de mensajes de cadena
ASCII.
153 La variable conectada a MsgIn es menor que el valor del parámetro
MsgLen cuando está seleccionada la función Entrada ASCII finalizada
o Entrada ASCII simple.
154 Bit de inicio XXMIT definido en 1 en un PLC Hot Standby Quantum que
no se encuentra en modalidad primaria.

NOTA: 1) Este código de error aparece si el esclavo de Modbus responde


demasiado rápido.
En caso de que el esclavo de Modbus utilizado sea un PLC Modicon, compruebe la
Configuración del puerto Modbus de la configuración del PLC.
2) Para el bloque XXMIT en la modalidad master Modbus, si el error 116 persiste
después de realizar una configuración correcta con el teclado o modificaciones
online, regenere y transfiera la aplicación al PLC.

358 33002530 05/2010


XXMIT

Información adicional para el error 107


El error 107 aparece cuando se detecta una discrepancia en la configuración de
XXMIT. Si la configuración del puerto interno XXMIT está en la modalidad RS232 y
la palabra de comando está en la modalidad RS485 (#2100). Es necesario cambiar
la modalidad de comunicación.
La tabla siguiente muestra cómo cambiar la modalidad de comunicación si se
produce el error 107:

Paso Acción
1 Conecte el PC a Unity
2 Ponga el PLC en STOP
3 Cambie la configuración del puerto Modbus (RS232 o RS 485)
4 Cambie la palabra de comando de acuerdo con la modalidad solicitada
5 Regenere la aplicación
6 Descargue la aplicación
7 Ponga el PLC en RUN

NOTA: Tenga en cuenta que:


z El cambio de la modalidad RS232 a RS485 tarda 3 segundos cuando la
configuración de los puertos internos y las palabras de comando coinciden.
Durante estos 3 segundos aparece el código de error 126 (DCE no asegurado,
sólo para la modalidad RS232).
z El cambio de la modalidad RS485 a RS232 es inmediato, ya que coincide con la
configuración predeterminada.

Retry
El valor visualizado muestra el número de reintentos realizados por XXMIT. Este
elemento es de sólo lectura.

33002530 05/2010 359


XXMIT

Funciones de comunicación de XXMIT

Palabra de comando de XXMIT


El bloque XXMIT realiza seis funciones que se muestran a continuación. Se deben
establecer determinados bits de la palabra de comando para cada función.

Bits de la palabra de comando


La palabra de comando funciona en relación con bits

Función Bits de la palabra Bits que se deben establecer en = 0


de comando que
se pueden
establecer en 1
Entrada ASCII finalizada 14,7,6,5,4 10,9,8,3,2,1,0
(bit 11=1) (consulte la nota
que aparece a continuación)
Entrada ASCII simple 14,7,6,5,4 11,9,8,3,2,1,0
(bit 10=1) (consulte la nota
que aparece a continuación)
Salida ASCII simple (bit 9=1) 14,7,6,5,4 11,10,8,3,2,1,0
Salida de módem (bit 9=1) 14,3,2,1,0 11,10,8,7,6,5,4 (más uno, pero SÓLO
uno, de los siguientes bits se
establece en 1: 3,2,1 ó 0, mientras que
los otros tres bits se deben establecer
en 0)
Salida de los mensajes 14, 11,10,9,7,6,5,4,3,2,1,0
Modbus maestro (bit 8=1)

NOTA: Cuando se utilice una de estas funciones, DEBE establecer Habilitar FIFO
de recepción ASCII (bit 7) en 1. Se reservan el bit 15 (MSB) y los bits 13 y 12.
(Consulte la tabla de Comando, página 349)

360 33002530 05/2010


XXMIT

Funciones ASCII de XXMIT

Presentación
XXMIT admite las funciones de comunicación ASCII siguientes:
z Entrada ASCII finalizada
z Entrada ASCII simple
z Mensajes de cadena ASCII

Configuración de puertos Modbus


La función XXMIT se configura a través de su bloque de funciones. El bloque de
funciones inicia el puerto 1 de Modbus siempre que está activo, con los parámetros
establecidos. Los parámetros de XXMIT pueden verse en la pantalla de LCD del
controlador.
NOTA: Los ajustes configurados en la pantalla de configuración de la CPU o a
través de la pantalla de LCD del controlador no afectan a los valores de transmisión
en la modalidad de maestro.
Ejemplo de configuración del bloque de funciones de XXMIT:

33002530 05/2010 361


XXMIT

Ejemplo de la pantalla de configuración de la CPU con un conjunto de valores


diferentes:

Ejemplo de ajustes en la pantalla de LCD del controlador:

Los tres gráficos anteriores reflejan valores diferentes de la función XXMIT. Con
independencia de los ajustes o de la información que aparezca en la pantalla de
configuración de la CPU o en la pantalla de LCD, los valores reales usados para la
transmisión son los del bloque de funciones XXMIT:
z Caudal: 2400
z Paridad: Par
z Bits de datos: 7
z Bits de parada: 2

Función de entradas ASCII finalizadas


Cuando está activado el bit 11 de la palabra de comando para los mensajes de
entradas ASCII finalizadas, la matriz MsgOut deberá contener la tabla de definición
de entradas ASCII. Dependiendo del tipo de datos que haya seleccionado para
MsgOut, la tabla de definición de ASCII finalizada consta de tres palabras o 6 bytes.
A continuación, se muestra la tabla de definición de entradas ASCII finalizadas.
Tabla de definición de entradas ASCII finalizadas (tipo de datos WordArray)

Símbolo Byte de mayor valor Byte de menor valor:


MsgOut[1] Número de caracteres de inicio Número de caracteres de terminador
(contenido permitido = 0, 1, 2) (contenido permitido = 1, 2)
MsgOut[2] Primer carácter de inicio Segundo carácter de inicio
MsgOut[3] Primer carácter de terminador Segundo carácter de terminador

362 33002530 05/2010


XXMIT

Tabla de definición de entradas ASCII finalizadas (tipo de datos ByteArray)

Byte Función
MsgOut[1] Longitud de la cadena de inicio (0, 1 ó 2)
MsgOut[2] Longitud de la cadena de finalización (1 ó 2)
MsgOut[3] Primer carácter de inicio
MsgOut[4] Segundo carácter de inicio
MsgOut[5] Primer carácter de finalización
MsgOut[6] Segundo carácter de finalización

Durante el proceso, RecCount contiene un conteo permanente de los caracteres


escritos en la matriz MsgIn. Una vez recibida la cadena finalizada, la salida
Ejecutado del módulo XXMIT pasa a CON y RecCount contiene la longitud total de
la cadena recibida, incluidas las cadenas de inicio y de terminación. En este punto,
XXMIT sigue disponiendo del puerto y continúa guardando los caracteres más
nuevos recibidos en el FIFO de recepción ASCII, ya que el bit 7 de la palabra de
comando Habilitar FIFO de recepción ASCII está CON.
Por medio de la lógica del programa, podrá borrar los bits de entrada ASCII simples
antes del ciclo siguiente, mientras mantiene CON el bit Habilitar FIFO de recepción
ASCII. Por lo tanto, la matriz MsgIn NO se borra con los nuevos datos FIFO, que
siguen recogiéndose en FIFO. Mediante la lógica del programa, podrá borrar los
dos bits para habilitar FIFO de recepción ASCII (Bit 7) y la entrada ASCII finalizada
(Bit 11) con el fin de devolver el control del puerto al PLC.
Si se han introducido demasiados caracteres en la matriz MsgIn sin haber
detectado un terminador, o la matriz MsgIn está fuera del rango permitido para el
PLC configurado, se informará de un error en Estado y el parámetro RecCount no
tendrá ningún significado. El límite de caracteres es la opción más pequeña de
1.024 o dos veces el tamaño de la matriz MsgIn.

Ejemplo de ASCII finalizada


Considere que el XXMIT se activa con la palabra de comando bit 7 y bit 11 activada.
Habilite ASCII FIFO y ASCII finalizada. El puerto recibe la cadena ASCII siguiente:
"AMScrlf$weight = 1245 GRAMScrlf$wei". Consulte la tabla de definición de
entradas ASCII que muestra los contenidos marcados con ( ) utilizados en este
ejemplo.

33002530 05/2010 363


XXMIT

Tabla de definición de entradas ASCII finalizadas (contenido para el tipo de datos


Byte Array)

Byte Contenido
MsgOut[1] Número de caracteres de inicio (0x01)
MsgOut[2] Número de caracteres de terminador (0x02)
MsgOut[3] Primer carácter de inicio ('$')
MsgOut[4] Segundo carácter de inicio (no utilizado)
MsgOut[5] Primer carácter de terminador ('cr')
MsgOut[6] Segundo carácter de terminador ('lf')

Ejemplo de tabla de definición de entradas ASCII finalizadas (contenido para el tipo


de datos Word Array)

Símbolo Byte de mayor valor Byte de menor valor:


MsgOut[1] Número de caracteres de inicio (0x01) Número de caracteres de terminador
(0x02)
MsgOut[2] Primer carácter de inicio ('$') Segundo carácter de inicio (no
utilizado)
MsgOut[3] Primer carácter de terminador ('cr') Segundo carácter de terminador ('lf')

XXMIT pasa a CON y rechaza los cinco caracteres iniciales de la entrada FIFO,
"AMScrlf", puesto que no coinciden con el primer carácter de inicio establecido en
'$'. En el ciclo lógico después de que se haya recibido '$', XXMIT continúa CON y
copia el carácter '$' y los siguientes en la matriz MsgIn, actualizando RecCount con
el conteo realizado hasta el momento a medida que entran los caracteres.
Tras recibir el último carácter de finalización, se activará la salida Ejecutado y
MsgLen contendrá la longitud total igual a 22 caracteres (0x0016). La matriz MsgIn
contiene: "$weight = 1245 GRAMScrlf" como matriz de bytes (o: "$w", "ei", "gh", "t
", "= ", "12", "45", " G", "RA", "MS", "crlf" si utiliza el Word Array).
En el ciclo en que se activa la salida Ejecutado, los caracteres ya recibidos del
mensaje siguiente ("$wei"), que llegaron después de la cadena de finalización,
permanecen en el FIFO de entrada ASCII. Esto da a la lógica del programa la
oportunidad de desactivar la entrada ASCII finalizada antes del próximo ciclo del
XXMIT para este puerto, manteniendo esos caracteres en FIFO hasta que el PLC
termine de procesar el mensaje actual, lo que puede durar varios ciclos.

364 33002530 05/2010


XXMIT

Función de entradas ASCII simples


Todos los caracteres entrantes se ubican en la matriz MsgIn. Si define la matriz
MsgIn como Byte Array (como se recomienda), los caracteres entrantes se irán
guardando de manera simple: el primer carácter en el primer elemento de la matriz,
el segundo carácter en el segundo elemento, y así sucesivamente. Si define MsgIn
como Word Array, se guardarán dos caracteres en cada elemento. El primer
carácter se guarda en el byte de mayor valor del primer elemento. El segundo
carácter se guarda en el byte de menor valor del primer elemento. El tercer carácter
se almacena en el byte de mayor valor del segundo elemento, etc. La variable de
longitud de mensaje (MsgLen) contiene la longitud del mensaje (1 - 1.024
caracteres).
NOTA: Cuando se definen la entrada ASCII simple (bit 10) y FIFO de recepción
ASCII (bit 7), los nuevos caracteres se transfieren constantemente de FIFO a la
misma matriz MsgIn, sobrescribiendo de manera constante los caracteres
anteriormente almacenados en la misma.

Mensajes de cadena ASCII


Cuando está activado el bit 9 de la palabra de comando para los mensajes de
cadena, la matriz MsgOut deberá contener la información ASCII que debe
transmitirse. La longitud del mensaje MsgLen debe establecerse en la longitud del
mensaje que se va a transmitir.
Como se indica en Descripción detallada de parámetros (véase página 349),
MsgOut puede ser de cualquier tipo de datos. Para los mensajes de cadena ASCII,
el tipo Byte Array refleja mejor la naturaleza de las cadenas: El primer byte contiene
el primer carácter, y así sucesivamente. (Si desea más informaciónconsulte Envío
ASCII simple (véase página 384).)

Transmitir - Recibir transición


Si la aplicación requiere la recepción de una respuesta por parte de otro dispositivo
participante tras la transmisión de un mensaje (petición - respuesta), es necesario
XXMIT para cambiar de la modalidad de transmisión a la modalidad de recepción
con el fin de leer la respuesta del participante en la comunicación. El primer punto
en el tiempo para cambiar la modalidad de XXMIT de transmisión a recepción es el
ciclo que sigue a la operación de transmisión. El usuario tiene la responsabilidad de
garantizar que la respuesta se retrase al menos un tiempo de ciclo del PLC de
petición para evitar un fallo de comunicación.
El retardo de transmisión por parte del participante en la comunicación resulta
especialmente importante en caso de tiempos de ciclo largo en los participantes de
comunicación rápidos y próximos del solicitante.

33002530 05/2010 365


XXMIT

Consideraciones de temporización del tiempo de retardo del participante:

En la figura anterior (no para poner a escala) puede estimar la influencia de los tres
tiempos distintos (tiempo de ciclo del solicitante, tiempo de transmisión y tiempo de
ciclo del participante) en el tiempo de retardo del participante requerido. Los ciclos
de programa del solicitante y del participante son asíncronos, de manera que el
tiempo de ciclo del participante no debe tenerse en cuenta. El tiempo de transmisión
depende de la longitud del telegrama y de la velocidad de transmisión. Un mensaje
que se compone de 18 caracteres a 9.600 baudios tarda 14 ms. Obviamente, la
contribución principal proviene del tiempo de ciclo del solicitante. Incluso si el
tiempo de retardo mínimo del participante es inferior al tiempo de ciclo del
solicitante, se recomienda utilizar el tiempo de ciclo del solicitante como tiempo de
retardo mínimo del participante para garantizar una comunicación de sonido.

366 33002530 05/2010


XXMIT

Funciones de módem de XXMIT

Presentación
XXMIT permite al usuario comunicarse con un módem compatible con Hayes
utilizando las funciones incluidas en la siguiente tabla:
Funciones de módem

Bit en palabra de comando Función


Bit 3 Marcar en módem por pulsos
Bit 2 Colgar módem
Bit 1 Marcar en módem por tonos
Bit 0 Inicializar módem

Marcar en módem por pulsos


Establezca el bit 3 de la palabra de comando en 1 cuando utilice un módem de
marcación compatible con Hayes y desee una marcación por pulsos de un número
de teléfono. Puede programar el número de teléfono en la matriz MsgOut. La
longitud del mensaje debe estar comprendida en MsgLen. Los números marcados
por pulsos se envían al módem automáticamente precedidos por ATDP y con el
retorno de carro <CR> y el avance de línea <LF> adjuntos. Como el mensaje
marcado es una cadena ASCII, el bit 9 debe estar CON antes de enviar el número
que se va a marcar.

Colgar módem
Establezca el bit 2 de la palabra de comando en 1 cuando se utiliza un módem de
marcación compatible con Hayes si desea colgar el módem. Debe usar la lógica del
programa para poner este bit en CON. Como el mensaje de interrupción de la
conexión es una cadena ASCII, el bit 9 debe estar CON antes de enviar el mensaje.
Los mensajes de interrupción de la conexión se envían al módem de forma
automática precedidos por +++AT y con el retorno de carro <CR> y el avance de
línea <LF> adjuntos. XXMIT busca una respuesta de desconexión correcta del
módem antes de poner en CON la señal de salida Ejecutado y señalar una
finalización satisfactoria.

33002530 05/2010 367


XXMIT

Marcar en módem por tonos


Establezca el bit 1 de la palabra de comando en 1 cuando se utiliza un módem de
marcación compatible con Hayes y desea una marcación por tonos de un número
de teléfono. Puede programar el número de teléfono en la matriz MsgOut. La
longitud del mensaje debe estar comprendida en MsgLen. Los números marcados
por tonos se envían al módem automáticamente precedidos por ATDT y con el
retorno de carro <CR> y el avance de línea <LF> adjuntos. Como el mensaje
marcado es una cadena ASCII, el bit 9 debe estar CON antes de enviar el número
que se va a marcar.

Inicializar módem
Establezca el bit 0 de la palabra de comando en 1 cuando se utiliza un módem de
marcación compatible con Hayes y desea inicializar el módem. Puede programar el
mensaje de inicialización en la matriz MsgOut y la longitud del mensaje en MsgLen.
Todos los mensajes se envían al módem automáticamente precedidos por AT y con
el retorno de carro <CR> y el avance de línea <LF> adjuntos. Como el mensaje de
inicialización es una cadena ASCII, el bit 9 debe estar CON antes de enviar el
mensaje.

368 33002530 05/2010


XXMIT

Funciones Modbus de XXMIT

Presentación
XXMIT admite los códigos de función Modbus siguientes:
z 01 ... 06 y 15... 16
z 08

Configuración de puertos Modbus


La función XXMIT se configura a través de su bloque de funciones. El bloque de
funciones inicia el puerto 1 de Modbus siempre que está activo, con los parámetros
establecidos. Los parámetros de XXMIT pueden verse en la pantalla de LCD del
controlador.
NOTA: Los ajustes configurados en la pantalla de configuración de la CPU o a
través de la pantalla de LCD del controlador no afectan a los valores de transmisión
en la modalidad de transmisión.
Ejemplo de configuración del bloque de funciones de XXMIT:

33002530 05/2010 369


XXMIT

Ejemplo de la pantalla de configuración de la CPU con un conjunto de valores


diferentes:

Ejemplo de ajustes en la pantalla de LCD del controlador:

Los tres gráficos anteriores reflejan valores diferentes de la función XXMIT. Con
independencia de los ajustes o de la información que aparezca en la pantalla de
configuración de la CPU o en la pantalla de LCD, los valores reales usados para la
transmisión son los del bloque de funciones XXMIT:
z Caudal: 19.200
z Paridad: Par
z Bits de datos: 8
z Bits de parada: 1

Transmitir - Recibir transición


A excepción de los mensajes de difusión, todas las funciones Modbus requieren el
bloque de función XXMIT para pasar de la modalidad de transmisión a la modalidad
de recepción para leer la respuesta del esclavo. XXMIT cambia de la modalidad de
transmisión a la modalidad de recepción en el ciclo que sigue a la operación de
transmisión. El usuario tiene la responsabilidad de garantizar que la respuesta del
esclavo se retrase al menos un tiempo de ciclo del maestro para evitar un fallo de
comunicación.
El retardo de transmisión por parte del esclavo es esencial en los casos de tiempos
de ciclo largo de maestro y esclavos rápidos.

370 33002530 05/2010


XXMIT

Consideraciones de temporización del tiempo de retardo del esclavo:

En la figura anterior (no para poner a escala) puede estimar la influencia de los tres
tiempos distintos (tiempo de ciclo del maestro, tiempo de transmisión y tiempo de
ciclo del esclavo) en el tiempo de retardo del esclavo requerido. Los ciclos de
programa del maestro y del esclavo son asíncronos, de manera que el tiempo de
ciclo del esclavo no debe tenerse en cuenta. El tiempo de transmisión depende del
tipo de telegrama, de la velocidad de transmisión y del protocolo. Una petición de
lectura estándar a una velocidad de 9.600 baudios utilizando un protocolo ASCII
tarda, por ejemplo, 14 ms. La principal contribución proviene obviamente del tiempo
de ciclo del maestro. Incluso si el tiempo de retardo mínimo del esclavo es inferior
al tiempo de ciclo del maestro, se recomienda utilizar el tiempo de ciclo del maestro
como tiempo de retardo mínimo del esclavo para garantizar una comunicación de
sonido.
NOTA: Puede especificar el tiempo de retardo en el cuadro de diálogo Ajustes en
puerto Modbus para los PLC Quantum. El tiempo de retardo puede especificarse
entre 10 y 1.000 ms, que puede redondearse automáticamente para poder dividirse
por 10.
Debe introducir el tiempo de retardo requerido más 10 ms. Por ejemplo, para tener
un retardo de 110 ms deberá introducir 120 en este campo.

33002530 05/2010 371


XXMIT

Códigos de función Modbus (01… 06, 15 y 16)


Para los mensajes Modbus, la matriz MsgOut debe contener la tabla de definición
Modbus. Debe definirse como un campo de palabras. La tabla de definición Modbus
para los códigos de función Modbus: 01, 02, 03, 04, 05, 06, 15 y 16 tiene una
longitud de cinco palabras. Asimismo, se deberá establecer MsgLen en 5 para un
funcionamiento satisfactorio de XXMIT. A continuación se muestra la tabla de
definición Modbus.
Códigos de función de la tabla de definición Modbus (01… 06, 15 y 16)

Contenido Descripción
Código de función XXMIT admite los códigos de función siguientes:
Modbus (MsgOut[1]) 01 = Leer varios bits (%Q)
02 = Leer varios bits binarios (%I)
03 = Leer varias palabras (%MW)
04 = Leer varias palabras de entrada (%IW)
05 = Escribir un bit (%Q)
06 = Escribir una palabra (%MW)
15 = Escribir varios bits (%Q)
16 = Escribir varias palabras (%MW)
Cantidad Introduzca el número de datos que desee escribir en el PLC esclavo
(MsgOut[2]) o leer desde él. Por ejemplo, introduzca 100 para leer 100 palabras
del PLC esclavo o introduzca 32 para escribir 32 bits en un PLC
esclavo. Existe un límite de tamaño en cuanto a la cantidad que
depende del modelo de PLC. Consulte el apéndice A para obtener
información completa sobre los límites.
Dirección del PLC Introduzca la dirección del PLC Modbus esclavo. Normalmente, el
esclavo (MsgOut[3]) rango de dirección Modbus oscila entre 1 y 247. Para enviar un
mensaje Modbus a varios PLC, escriba 0 para la dirección del PLC
esclavo. Esto se denomina modalidad Broadcast. Esta modalidad
sólo admite códigos de función Modbus que escriban datos del PLC
maestro a los PLC esclavos. La modalidad Broadcast NO admite los
códigos de función Modbus que lean datos de los PLC esclavos.

372 33002530 05/2010


XXMIT

Contenido Descripción
Área de datos del Para un comando de lectura, el área de datos del PLC esclavo es el
PLC esclavo origen de los datos. Para un comando de escritura, el área de datos
(MsgOut[4]) del PLC esclavo es el destino de los datos. Por ejemplo, si desea leer
bits (%I300 - %I500) desde un PLC esclavo, introduzca 300 en este
campo. Si desea escribir datos desde un PLC maestro e introducirlos
en palabras (%MW100) de un PLC esclavo, escriba 100 en este
campo. Según el tipo de comando Modbus (escritura o lectura), los
campos de datos origen y de destino se deberán definir como se
indica en la tabla de áreas de datos origen y de destino siguiente.
Área de datos del Para un comando de lectura, el área de datos del PLC maestro es el
PLC maestro destino de los datos que devuelve el esclavo. Para un comando de
(MsgOut[5]) escritura, el área de datos del PLC maestro es el origen de los datos.
Por ejemplo, si desea escribir bits (%M16… %M32) ubicados en el
PLC maestro en un PLC esclavo, introduzca 16 en este campo. Si
desea leer palabras (%IW1 - %IW100) desde un PLC esclavo y
colocar los datos en el área de datos del PLC maestro (%MW100…
%MW199), introduzca 100 en este campo. Según el tipo de comando
Modbus (escritura o lectura), los campos de datos fuente y de destino
se deberán definir como se indica en la tabla de áreas de datos
origen y de destino siguiente.

Áreas de datos origen y de destino de los códigos de función (01… 06, 15 y 16)

Código de función Área de datos del PLC Área de datos del PLC
maestro esclavo
03 (leer varios 4x) %MW (destino) %MW (origen)
04 (leer varios 3x) %MW (destino) %IW (origen)
01 (leer varios 0x) %M (destino) %Q (origen)
02 (leer varios 1x) %M (destino) %I (origen)
16 (escribir varios 4x) %MW (origen) %MW (destino)
15 (escribir varios 0x) %M (origen) %Q (destino)
05 (escribir un 0x) %M (origen) %Q (destino)
06 (escribir un 4x) %MW (origen) %MW (destino)

Si desea enviar 20 mensajes Modbus desde el PLC, deberá transferir una a una 20
tablas de definición Modbus a MsgOut después de cada operación correcta de
XXMIT, o programar 20 XXMIT por separado y activarlos uno a uno mediante la
lógica de usuario.

33002530 05/2010 373


XXMIT

Código de función Modbus (08)


Para los mensajes Modbus, la matriz MsgOut debe contener la tabla de definición
Modbus. Debe definirse como un campo de palabras. La tabla de definición Modbus
para los códigos de función Modbus: 08 tiene una longitud de cinco palabras.
Asimismo, se debe establecer en 5 la matriz MsgLen para un funcionamiento
satisfactorio de XXMIT. A continuación se muestra la tabla de definición Modbus.
Códigos de función de la tabla de definición Modbus (08)

Contenido Descripción
Código de XXMIT admite el código de función siguiente:
función Modbus 08 = Diagnóstico
(MsgOut[1])
Diagnóstico En este campo, introduzca el valor decimal del código de la subfunción
(MsgOut[2]) de diagnóstico para poder realizar la función específica de diagnóstico
deseada. Se admiten las siguientes subfunciones de diagnóstico:
Código de Descripción
subfunción
00 Devolver datos de interrogación
01 Reiniciar opción de comunicación
02 Devolver palabra de diagnóstico
03 Cambiar delimitador de entrada ASCII
04 Forzar la modalidad de sólo escucha
05 ... 09 Reservado.
10 Borrar contadores
11 (& palabras de diagnóstico en 384, 484)
12 Devolver conteo de mensajes de bus
13 Devolver conteo de errores de com. de bus
14 ... 15 Devolver conteo de excepciones de bus
16 No admitido
17 Devolver conteo de esclavos NAK
18 Devolver conteo de esclavos ocupados
19 ... 21 Devolver conteo de desborde de caract. de bus
Dirección del Introduzca la dirección del PLC Modbus esclavo. Normalmente, el rango
PLC esclavo de dirección Modbus oscila entre 1 y 247. El código de función 8 NO
(MsgOut[3]) admite la modalidad Broadcast (dirección 0).

374 33002530 05/2010


XXMIT

Contenido Descripción
Contenido del Deberá introducir el valor decimal necesario para el área de datos de la
campo de datos subfunción de diagnóstico específica:
Función de
Código de Descripción
diagnóstico subfunción
(MsgOut[4])
02, 04, 10, Este valor queda definido automáticamente como cero en
11, 12, 13, el mensaje Modbus enviado al esclavo (este valor no se
16, 17 y 18 ve reflejado en el búfer de MsgOut).
00, 01 y 03 Es necesario introducir el valor deseado del campo de
datos. Para más información, consulte la Guía de
referencia de protocolos Modbus de Modicon
(www.modbus.org).
Área de datos Para todas las subfunciones, el área de datos del PLC maestro es el
del PLC maestro destino de los datos que devuelve el esclavo.
(MsgOut[5]) Deberá especificar una palabra de memoria % que indique el comienzo
del área de datos en la que se sitúan los datos devueltos.
Por ejemplo, para colocar los datos en el área de datos del PLC maestro
comenzando por (%MW100), introduzca 100 en este campo. La
subfunción 04 NO devolverá ninguna respuesta. Para más información,
consulte la Guía de referencia de protocolos Modbus de Modicon
(www.modbus.org).

33002530 05/2010 375


XXMIT

FIFO y control de flujo

Presentación
XXMIT permite que el usuario defina el uso de un búfer FIFO de recepción, el
control de flujo y la función de los retrocesos recibidos.

FIFO de recepción ASCII


La configuración en 0 del bit 7 de la palabra de comando finaliza esta función.
Cuando el dispositivo FIFO recibe 512 caracteres, se establece un desbordamiento
interno. En este caso, se omiten todos los caracteres posteriores, finalizan todas
las operaciones de entrada ASCII (simples y finalizadas) y el bloque indica un error
hasta que se modifique (bit 7). Cuando (bit 7) se modifica, se omiten todos los datos
del dispositivo FIFO y los dos bits de control de entrada ASCII (ASCII simple [bit 10],
ASCII finalizada [bit 11]), y cuando no hay controles de salida ASCII seleccionados,
se devuelve el control del puerto serie (1) al PLC.
Debe configurar la ASCII finalizada (bit 11) o la ASCII simple (bit 10) para eliminar
los caracteres ASCII del dispositivo FIFO para el procesamiento. No se puede
establecer más de uno de los tres bits siguientes de forma simultánea: ASCII
finalizada (bit 11), ASCII simple (bit 10) o Mensajes de cadena ASCII (bit 9).
La operación dúplex completo puede conseguirse si se configuran el dispositivo
FIFO de recepción ASCII (bit 7) y los Mensajes de cadena ASCII (bit 9). De esta
forma, se permite la transmisión de ASCII simple al exterior del PLC mientras se
reciben caracteres ASCII en el dispositivo FIFO. Esto resulta útil cuando se trabaja
con terminales simples. Cuando se configura un dispositivo FIFO de recepción
ASCII (bit 7), no se permite ninguno de los controles de salida ASCII siguientes:
Mensajes Modbus Master (bit 8), marcar en módem por pulsos (bit 3), colgar
módem (bit 2), marcar en módem por tonos (bit 1) e inicializar módem (bit 0).

Habilitación de retroceso
Cuando se detecta un retroceso (BS), NO se almacena en la matriz MsgIn. De
hecho, elimina el carácter anterior y, por lo tanto, reduce el valor del contador de
caracteres RecCount. Por el contrario, cuando se detecta un carácter ASCII normal,
se almacena en la matriz MsgIn y el valor del contador de caracteres RecCount
aumenta.
NOTA: Los retrocesos NO PUEDEN eliminar caracteres de una matriz MsgIn, por
lo que el valor del contador de caracteres RecCount nunca es inferior a 0.

376 33002530 05/2010


XXMIT

Esta función de retroceso junto con el eco interno habilitado en el terminal resultan
muy útiles cuando se trabaja con terminales simples. Se activa una XXMIT de
entrada ASCII finalizada que busca "cr" con un dispositivo FIFO de recepción ASCII
(bit 7) y un retroceso (bit 6) configurados. No se necesita ninguna lógica de
programa adicional mientras se introducen y modifican caracteres sobre la marcha
mediante el retroceso. Cuando se introduce "cr", XXMIT activa la salida Ejecutado
y los datos corregidos se alinean de forma adecuada en la matriz MsgIn.

Habilitación del Control de flujo RTS/CTS


Lo siguiente se aplica a la modalidad de salida. El estado de XXMIT pasa a
recepción BLOQUEADA cuando el dispositivo de recepción indica que no puede
procesar caracteres adicionales mediante la configuración de CTS como DES. De
igual modo, el estado de XXMIT pasa a DESBLOQUEADO cuando CTS está CON
y los dispositivos de recepción indican que PUEDE procesar caracteres
adicionales.
Cuando la transmisión está DESBLOQUEADA y la Salida ASCII simple (bit 9) y el
Control de flujo RTS/CTS (bit 5) están configurados, los datos de salida de
transmisión se envían en paquetes de 16 bytes. Después de enviar todos los
paquetes de salida, la salida Ejecutado en XXMIT pasa a ON para indicar que la
operación se ha realizado de forma satisfactoria.
Si, durante la transmisión, pasa súbitamente a BLOQUEADO, sólo se enviarán los
caracteres restantes en el paquete de salida actual, sin superar en ningún caso los
16 caracteres, y XXMIT permanece ACTIVO de forma indefinida. La salida ASCII
sólo reanudará el envío de los paquetes de salida restantes cuando CTS esté en
ON.
Lo siguiente se aplica a la modalidad de entrada. Como RTS es una señal de
salida, se puede utilizar independientemente del proceso de transmisión de salida
ASCII para BLOQUEAR o DESBLOQUEAR dispositivos de envío. Cuando se
configura un dispositivo FIFO de recepción ASCII (bit 7), el Control de flujo
RTS/CTS funciona en la modalidad de entrada. Cuando se configura un dispositivo
FIFO de recepción ASCII (bit 7) y no se configura ninguna de las dos entradas
ASCII, la Entrada ASCII simple (bit 10) o la Entrada ASCII finalizada (bit 11), los
caracteres recibidos completarán el dispositivo FIFO en el que se insertan. Mientras
tanto, el Control de flujo RTS (bit 5) está en ON, lo que permite que el dispositivo de
envío pueda continuar.
Cuando el dispositivo FIFO (512 caracteres) contenga caracteres en más de tres
cuartos de su capacidad, el Control de flujo RTS (bit 5 se liberará para BLOQUEAR
el dispositivo de envío) El control de flujo RTS (bit 5) permanece libre hasta que la
Entrada ASCII simple (bit 10) o la Entrada ASCII finalizada (bit 11) hayan eliminado
suficientes caracteres del dispositivo FIFO, con lo que éstos ocuparán menos de un
cuarto. Llegados a este punto, el Control de flujo RTS (bit 5) pasa a ON.

33002530 05/2010 377


XXMIT

ATENCIÓN
BLOQUEO DE LA TRANSMISIÓN
Si se fuerza la señal CTS de forma indefinida a OFF por parte del dispositivo de
recepción (o si existe un problema con el cable que fuerza la señal CTS a OFF),
el bloque XXMIT no completará nunca la transmisión y el dispositivo de recepción
no recibirá nunca el comando. Para evitar este tipo de bloqueo, se aconseja iniciar
un temporizador cuando se inicie el bloque XXMIT y advierta al programa de la
aplicación cuando se alcance el tiempo interno del temporizador. También es
aconsejable restablecer el bit de inicio de XXMIT.
Si no se siguen estas instrucciones pueden producirse lesiones personales
o daños en el equipo.

NOTA: El algoritmo de Control de flujo RTS/CTS es diferente del de Control de


módem RTS/CTS. El primero está relacionado con la recepción en dúplex completo
de un desbordamiento de búfer. El segundo lo está con el proceso de transmisión
que obtiene acceso a un medio de transmisión compartido. Por lo tanto, no se
pueden solicitar ambos algoritmos RTS/CTS de forma simultánea.
NOTA: NO PUEDE seleccionar cualquier tipo de señal de establecimiento de
enlace de control de flujo RTS/CTS (bit 5) cuando el puerto está en modalidad RS
485 (bit 13), ya que estas señales NO existen en la modalidad RS 485.

Habilitación del Control de flujo Xon/Xoff


Lo siguiente se aplica a la modalidad de salida. El estado de XXMIT pasa a
BLOQUEADO cuando se recibe un carácter Xoff. De igual modo, el estado de
XXMIT pasa a DESBLOQUEADO cuando se recibe un carácter Xon. En ningún
caso se insertarán Xon o Xoff en el dispositivo FIFO.
Cuando la transmisión está DESBLOQUEADA, y la Salida ASCII simple (bit 9) y el
Control de flujo Xon/Xoff (bit 4) están configurados, los datos de salida de
transmisión se envían en paquetes de 16 bytes. Después de enviar todos los
paquetes de salida, la salida Ejecutado en el bloque XXMIT pasa a ON.
Si, durante la transmisión, pasa súbitamente a BLOQUEADO, sólo se enviarán los
caracteres restantes en el paquete de salida actual, sin superar en ningún caso los
16 caracteres, y el bloque XXMIT permanece ACTIVO de forma indefinida. La salida
ASCII sólo reanudará el envío de los paquetes de salida restantes cuando se reciba
el carácter Xon siguiente.

378 33002530 05/2010


XXMIT

Lo siguiente se aplica a la modalidad de entrada. Xon/Xoff puede utilizarse para


BLOQUEAR o DESBLOQUEAR dispositivos de envío. Cuando se configura un
dispositivo FIFO de recepción ASCII (bit 7) el Control de flujo Xon/Xoff (bit 4)
funciona en la modalidad de entrada. Cuando se configura un dispositivo FIFO de
recepción ASCII (bit 7) y no se configura ninguna de las dos entradas ASCII, la
Entrada ASCII simple (bit 10) o la Entrada ASCII finalizada (bit 11), los caracteres
recibidos completarán el dispositivo FIFO en el que se insertan.
Cuando se han completado más de tres cuartos del dispositivo FIFO con caracteres
y se reciben más caracteres, la variable de estado de FIFO se configura para enviar
caracteres XOFF fuera del puerto serie tras un retardo correspondiente al tiempo
de envío de hasta 16 caracteres, lo que BLOQUEA al emisor y libera la variable de
estado de FIFO.
Cuando todas las funciones de salida ASCII (bits 8, 3, 2, 1 y 0) están DES y el
Control de flujo Xon/Xoff (bit 4) está CON, el tiempo de retardo es, de forma
predeterminada, el tiempo correspondiente al envío de un carácter. Por el contrario,
cuando todas las funciones de salida ASCII (bits 8, 3, 2, 1 y 0) están CON y el
Control de flujo Xon/Xoff (bit 4) está CON, la salida ASCII se divide en paquetes de
16 bytes. De este modo, los caracteres Xoff pendientes NO tienen que esperar más
que el tiempo correspondiente al tiempo de envío de 16 caracteres antes de
BLOQUEAR al emisor.
Una vez que el emisor ha detenido la transmisión, el PLC elimina los caracteres de
FIFO mediante la Entrada ASCII simple (bit 10) o la Entrada ASCII finalizada (bit
11).
Cuando menos de un cuarto del dispositivo FIFO se ha completado con caracteres,
la variable de estado de FIFO se configura para enviar XON, con lo que se envía un
carácter Xon fuera del puerto serie para DESBLOQUEAR al emisor.
NOTA: Para evitar el bloqueo debido a un cable desconectado u otros errores de
comunicación intermitente, cuando el emisor está BLOQUEADO y NO ha recibido
el carácter Xon de forma correcta, se utiliza el algoritmo siguiente. Cuando el
dispositivo FIFO se vacía y no se reciben caracteres posteriormente, se transmite
un flujo regular de caracteres Xon con una periodicidad de uno cada cinco
segundos.
NOTA: El Control de flujo Xon/Xoff (bit 4) es diferente del Control de flujo RTS/CTS
(bit 5). El primero utiliza caracteres Xon y Xoff para evitar recibir desbordamientos
de búfer en la modalidad dúplex completo. El segundo utiliza señales de estableci-
miento de comunicación de hardware para conseguir el mismo objetivo. Por lo
tanto, no está permitido solicitar ambos algoritmos de control de flujo de forma
simultánea, porque el Control de módem de control de flujo RTS/CTS (bit 5)
conlleva una red de semidúplex, mientras que el Control de flujo Xon/Xoff (bit 4)
conlleva una red de dúplex completo.

33002530 05/2010 379


XXMIT

Ejemplos de aplicación

Descripción
El programa siguiente es una pequeña aplicación de demostración con cuatro
instancias de XXMIT que muestra las cuatro funciones principales:
z Maestro Modbus
z Entrada ASCII simple
z Salida mensajes ASCII
z Entrada ASCII finalizada

Maestro Modbus
La siguiente operación del maestro Modbus es una petición de lectura para un
dispositivo esclavo (por ejemplo, dirección 4) conectado al puerto 1 del maestro:
z Leer de %MW1 a %MW10 del esclavo
z en %MW11 a %MW20 local.

El esclavo (dirección 4) debe configurarse con los parámetros de puerto siguientes:


z 9 600 baudios
z 8 bits de datos
z 1 bit de parada
z paridad par (2)

El maestro utiliza los ajustes de XXMIT

Declaración de variables para el maestro Modbus


La siguiente tabla contiene las variables utilizadas en el ejemplo del maestro
Modbus:

Nombre de variable Tipo de Valor Comentario


datos inicial
StartModbusMstr BOOL
ModbusMstrActive BOOL
ModbusMstrCommand WORD 16#0100 Bit 8 establecido
ModbusMstrDone BOOL
ModbusMstrError BOOL
ModbusMstrSettings WordArr9
ModbusMstrSettings[1] 3 Código Modbus: lectura de varias
palabras.
ModbusMstrSettings[2] 10 Número de palabras que se van a leer
ModbusMstrSettings[3] 4 Dirección de Modbus esclavo
ModbusMstrSettings[4] 1 Palabra fuente

380 33002530 05/2010


XXMIT

Nombre de variable Tipo de Valor Comentario


datos inicial
ModbusMstrSettings[5] 11 Palabra destino
ModbusMstrSettings[6] 0 no utilizado
ModbusMstrSettings[7] no utilizado
ModbusMstrSettings[8] no utilizado
ModbusMstrSettings[9] no utilizado
ModbusMstrStatus INT
ModbusMstrNode WORD 4 Introducir dirección de esclavo
ModbusMstrErrorCounter INT
ModbusMstrDoneCounter INT

Sección IEC para maestro Modbus


Programe lo siguiente en una sección FBD:
Asignación de direcciones de nodos esclavos

Asignaciones al bloque de función XXMIT:

33002530 05/2010 381


XXMIT

Errores y acciones realizadas correctamente del conteo

Recepción ASCII simple


Recibe cualquier elemento que llegue al puerto 1. La longitud del búfer de recepción
se asigna como 'SimpleReceiveLength', que tiene un valor inicial de 10.
Los caracteres recibidos se encuentran en la matriz MsgIn, el número de caracteres
recibidos se muestra en RecCount.

Declaración de variables para Recepción ASCII simple


La siguiente tabla contiene las variables utilizadas en el ejemplo de Recepción
ASCII simple:

Nombre de variable Tipo de Valor Comentario


datos inicial
StartSimpleReceive BOOL
SimpleReceiveActive BOOL
SimpleReceiveCharCounter INT
SimpleReceiveCommand WORD 16#0480 Bits 7 y 10 establecidos. FIFO
habilitado.
SimpleReceiveDone BOOL
SimpleReceiveError BOOL
SimpleReceiveLength INT 10
SimpleReceiveRetryCounter INT

382 33002530 05/2010


XXMIT

Nombre de variable Tipo de Valor Comentario


datos inicial
SimpleReceiveStatus INT
SimpleRecMessage ByteArr12
SimpleReceiveDoneCounter INT
SimpleReceiveErrorCounter INT

Sección IEC para Recepción ASCII simple


Programe lo siguiente en una sección FBD:

Errores y acciones realizadas correctamente del conteo

33002530 05/2010 383


XXMIT

Envío ASCII simple


Envía un mensaje ASCII simple fuera del puerto 1. El mensaje es 'Hello World!!'
(¡Hola mundo!)

Declaración de variables para Envío ASCII simple


La siguiente tabla muestra las variables utilizadas en el ejemplo de Envío ASCII
simple:

Nombre de variable Tipo de Valor Comentario


datos inicial
StartSimpleSend BOOL
SimpleSendActive BOOL
SimpleSendCommand WORD 16#0200 Bit 9 establecido.
SimpleSendDone BOOL
SimpleSendError BOOL
SimpleSendLength INT 14 Número de caracteres que se van a
enviar
SimpleSendMessage ByteArr36 'Hello World !!' (¡Hola mundo!)
SimpleSendMessage[1] 16#48
SimpleSendMessage[2] 16#65
SimpleSendMessage[3] 16#6C
SimpleSendMessage[4] 16#6C
SimpleSendMessage[5] 16#6F
SimpleSendMessage[6] 16#20
SimpleSendMessage[7] 16#57
SimpleSendMessage[8] 16#6F
SimpleSendMessage[9] 16#72
SimpleSendMessage[10] 16#6C
SimpleSendMessage[11] 16#64
SimpleSendMessage[12] 16#20
SimpleSendMessage[13] 16#21
SimpleSendMessage[14] 16#21
SimpleSendRetryCounter INT
SimpleSendStatus INT
SimpleSendDoneCounter INT
SimpleSendErrorCounter INT

384 33002530 05/2010


XXMIT

Sección IEC para Envío ASCII simple


Programe lo siguiente en una sección FBD:

Errores y acciones realizadas correctamente del conteo

33002530 05/2010 385


XXMIT

Recepción ASCII finalizada


Tras recibir los caracteres de inicio "AB", el bloque de función coloca todos los
caracteres recibidos en el búfer de recepción MsgIn. El receptor se detendrá
cuando se reciban los caracteres de finalización "CD", por los que se establecerá la
salida "Done", para indicar que se ha realizado de forma correcta. La longitud
máxima del búfer de recepción se asigna como "TermReceiveLength", que se
establece con un valor inicial de 20 en este ejemplo.

Declaración de variables para Recepción ASCII finalizada


La siguiente tabla muestra las variables utilizadas en el ejemplo de Recepción
ASCII finalizada:

Nombre de variable Tipo de Valor Comentario


datos inicial
StartTermReceive BOOL
TermReceiveActive BOOL
TermReceiveCharCounter INT
TermReceiveCommand WORD 16#0880 Bits 11 y 7 establecidos. FIFO
habilitado.
TermReceiveDone BOOL
TermReceiveError BOOL
TermReceiveLength INT 20
TermReceiveMessage ByteArr36 Caracteres recibidos.
TermReceiveRetryCounter INT
TermReceiveSettings ByteArr36
TermReceiveSettings[1] 16#02 Longitud de la cadena de
TermReceiveSettings[2] 16#02 finalización (1 ó 2)
TermReceiveSettings[3] 16#41 Longitud de la cadena de inicio (0, 1
TermReceiveSettings[4] 16#42 ó 2)
TermReceiveSettings[5] 16#43 Segundo carácter de inicio
TermReceiveSettings[6] 16#44 Primer carácter de inicio
Segundo carácter de finalización
Primer carácter de finalización
TermReceiveStatus INT
TermReceiveDoneCounter INT
TermReceiveErrorCounter INT

386 33002530 05/2010


XXMIT

Sección IEC para Recepción ASCII finalizada


Programe lo siguiente en una sección FBD:

Errores y acciones realizadas correctamente del conteo

33002530 05/2010 387


XXMIT

Introducción de cadenas como valores iniciales


El Editor de datos de Unity Pro permite introducir cadenas fácilmente como valores
iniciales en matrices de bytes.
La sección siguiente presenta una corta descripción de cómo definir una variable
'DemoString' como 'ByteArr36' e introducir una cadena 'My Text !' (¡Mi texto!) como
valor inicial.
Abra el editor de datos
En el menú principal seleccione:
Herramientas -> Editor de datos.
Editor de datos

388 33002530 05/2010


XXMIT

Declaración de un nombre de cadena nuevo

Declare el nombre de cadena para la matriz haciendo clic en junto al tipo (en
este caso, bool). Esto abrirá una ventana de selección de tipo de variable.
Definición del tipo de elemento 1

33002530 05/2010 389


XXMIT

Definición del tipo de elemento


Seleccione la casilla Matriz y defina el tipo de elemento de matriz y el número de
elementos. Ahora es posible visualizar y modificar los valores para byteArr36
expandido.
Definición del tipo de elemento 2

Definición de ByteArr36

390 33002530 05/2010


XXMIT

32.3 XXMIT: normas de programación

Normas de programación de XXMIT

Descripción de las normas de programación


Se puede tardar varios ciclos de PLC en enviar una petición Modbus o una cadena
de caracteres. Los bits de inicio, activación, ejecución y error funcionan de la
siguiente manera:

La aplicación escribe la señal de inicio. La aplicación lee las señales de activación,


ejecución y error.

ATENCIÓN
TRANSMISIÓN MULTIPLE
Si se mantiene en 1 la señal de inicio tras la finalización, se reiniciará el bloque
XXMIT Esto generará una transmisión múltiple del mismo mensaje Modbus o
ASCII al dispositivo de recepción. Para evitar esta transmisión múltiple, es
recomendable restablecer el bit de inicio tan pronto como se vea el bit de
finalización en 1.
Si no se siguen estas instrucciones pueden producirse lesiones personales
o daños en el equipo.

33002530 05/2010 391


XXMIT

Si se mantiene en 1 la señal de inicio tras la finalización, se reiniciará el XXMIT


No se pueden activar varios XXMIT al mismo tiempo. Si se activa más de un XXMIT,
el primer bloque explorado se pondrá en funcionamiento y evitará que el resto de
los XXMIT entren en funcionamiento hasta que haya finalizado. El siguiente bloque
del ciclo que se llama generará un código de fallo 150 inmediato.
El bloque de función XXMIT sólo se puede usar en la tarea MAST. Se produce un
código de error inmediato (127) si se inicia en las tareas FAST/AUX o EVENT (no
hay ningún control por parte de Unity Pro en el momento de la creación).
NOTA: El parámetro de entrada de XXMIT debe inicializarse antes de ajustar la
entrada INICIO. No se deben cambiar mientras el bloque de función está activo. Si
el bit INICIO se restablece en 0 antes de la finalización, el bloque de función se
detiene (bit de activación en 0). Para que se complete la ejecución del bloque, el
valor 1 deberá aplicarse en el bit INICIO hasta que la operación se haya completado
o hasta que se haya producido un error.

392 33002530 05/2010


XXMIT

32.4 Referencias técnicas para XXMIT

Descripción general
En esta sección se describen las referencias técnicas para XXMIT.

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
Consulta Modbus/Límites de los parámetros de respuesta 394
Configuración del bloque de funciones XXMIT mediante módems de 395
marcación compatible con Hayes (sólo)
Ejemplo de aplicación Hayes 400

33002530 05/2010 393


XXMIT

Consulta Modbus/Límites de los parámetros de respuesta

Límites de parámetros basados en el código de función


Los parámetros de consulta/respuesta se limitan en función del tipo de código de
función que utilice. Consulte la tabla que aparece a continuación.
Tabla de parámetros máximos de PLC Quantum:

Código de función Descripción Consulta Respuesta


1 Lectura de varios bits 2.000 bits 2.000 bits
2 Lectura de varios bits 2.000 bits 2.000 bits
3 Lectura de varias palabras 125 palabras 125 palabras
4 Lectura de varias palabras 125 palabras 125 palabras
5 Escritura de un único bit 1 bit 1 bit
6 Escritura de una única palabra 1 palabra 1 palabra
15 Escritura de varios bits 800 bits 800 bits
16 Escritura de varias palabras 100 palabras 100 palabras

394 33002530 05/2010


XXMIT

Configuración del bloque de funciones XXMIT mediante módems de marcación


compatible con Hayes (sólo)

Descripción
Existen tres comandos con los que debe familiarizarse a la hora de interconectar
módems de marcación al bloque de funciones XXMIT.
Estos comandos son:
z Inicializar módem
z Marcar módem
z Colgar módem

Antes de que un mensaje ASCII o un mensaje Modbus pase por el módem, debe
enviar al módem en primer lugar una cadena de inicialización y después una
cadena de marcación. Una vez que el módem haya marcado el número de teléfono
y se haya conectado al módem remoto, puede enviar un número ilimitado de
mensajes ASCII o Modbus mediante el módem. Para enviar varios mensajes,
deberá aumentar el pointer de mensajes al mensaje siguiente después de cada
operación correcta del XXMITT. Cuando se envíen todos los mensajes, podrá
enviar la cadena de interrupción de la conexión al módem.

Mensaje de inicialización
El mensaje de inicialización es como cualquier otro mensaje ASCII y puede tener
una longitud máxima de 512 caracteres, si bien 50 caracteres son normalmente
más que suficientes para inicializar un módem. Puede ejecutar cualquier comando
AT de Hayes como parte de la cadena de inicialización. Se recomiendan los
comandos siguientes al inicializar un módem para utilizarlo con XXMIT.
Mensaje de inicialización para módem de marcación

Mensaje de AT&F&K0&Q0&D0V1Q0X0E1
inicialización =
AT= Autocalibrar módem 1
&F= Restablecer la configuración de fábrica como la configuración activa 1
&K0= Deshabilitar el control de flujo local 2
&Q0= Comunicar en modalidad asíncrona 2
&D0= Ignorar estado de la señal DTR 1
V1= Mostrar códigos de resultado como palabras 1
Si no se utiliza V1 o si el módem no puede devolver respuestas
detalladas, XXMIT devuelve el error 117 (timeout de respuesta del
módem).

33002530 05/2010 395


XXMIT

Mensaje de AT&F&K0&Q0&D0V1Q0X0E1
inicialización =
Q0= Devolver códigos de resultado 1
X0= Proporcionar códigos de resultado del progreso de llamada básicos:
conectar, sin portadora y anillo 1
E1= Envía caracteres desde el teclado a la pantalla en estado de comando 1
1 Estos parámetros siempre deben formar parte de la cadena de inicialización para que
XXMIT funcione correctamente.
2 Estos parámetros deben formar parte de la cadena de inicialización para que XXMIT
transmita un mensaje a un módem remoto correctamente. Sólo un usuario de módem
experimentado debería cambiar o no utilizar dichos parámetros.

NOTA: Aunque algunos fabricantes de módems aseguren la plena compatibilidad


con Hayes, puede que aún sean ligeramente distintos. Por tanto, se recomienda
utilizar solamente aquellos comandos que presenten la misma definición que los
mencionados anteriormente.
El mensaje de inicialización debe comenzar siempre con el comando AT estándar
de Hayes. XXMIT antepone de forma automática los mensajes de comando de
módem con AT y agrega el mensaje con retorno de carro (0x0D) y caracteres de
avance de línea (0x0A), puesto que todos los mensajes de control de módem los
necesitan. Otros mensajes ASCII (no controladores) no deben terminar con un
retorno de carro y un avance de línea.
Por ejemplo, un mensaje de inicialización típico que XXMIT envía al módem.

Mensaje Longitud

(AT)&F&K0&Q0&D0V1X0Q0 (<CR><LF>) 1 17 caracteres

1 Los caracteres entre paréntesis se envían de forma automática.

Por ejemplo, también puede utilizarse el mensaje de inicialización para establecer


los registros S del módem.

Mensaje Longitud

(AT)S0=1 (<CR><LF>) 1 4 caracteres

1 Los caracteres entre paréntesis se envían de forma automática.

396 33002530 05/2010


XXMIT

Para que XXMIT envíe una mensaje de inicialización al módem, los bits 9 y 0 de la
palabra de comando deben estar CON. Cuando el bit 0 está CON, los bits 1 y 2 no
deben estarlo o XXMIT no completará la operación correctamente. Para enviar
realmente el mensaje, la entrada Inicio de XXMIT debe estar CON y permanecer
CON hasta que se complete la operación u ocurra un error. Cuando XXMIT
determina que el mensaje se envió correctamente al módem, pasa a CON la salida
Ejecutado. Cuando se produce un error, la salida Error pasa a CON. La salida
Activo está CON mientras se envía el mensaje al módem.
NOTA: Para eliminar la programación de lógica de aplicación, puede inicializar el
módem con parámetros por medio de un programa terminal y no utilizar XXMIT.
Una vez que los parámetros se encuentren en la memoria del módem pueden
guardarse como memoria no volátil con un comando AT, normalmente &W.

Mensaje de marcación
Se utiliza el mensaje de marcación para enviar un número de teléfono al módem.
Sólo los comandos AT relativos al marcaje de un número deben incluirse en este
mensaje. A continuación, se muestran ejemplos de mensajes de marcación típicos
utilizados con XXMIT.
Por ejemplo, marcar número de teléfono mediante marcación por tonos.

Mensaje Longitud

(AT)DT)6800326 (<CR><LF>) 1 7 caracteres

1 Los caracteres entre paréntesis se envían de forma automática.

Por ejemplo, marcar número de teléfono mediante marcación por pulsos.

Mensaje Longitud

(AT)DP)6800326 (<CR><LF>) 1 7 caracteres

1 Los caracteres entre paréntesis se envían de forma automática.

Por ejemplo, marcar número de teléfono mediante marcación por tonos, esperar a
escuchar el tono de marcación antes de marcar el número, y hacer una pausa antes
de marcar el resto del número.

Mensaje Longitud

(AT)DT)W,6800326 (<CR><LF>) 1 9 caracteres

1 Los caracteres entre paréntesis se envían de forma automática.

33002530 05/2010 397


XXMIT

Para que XXMIT envíe una mensaje de marcación por tonos al módem, los bits 9 y
1 de la palabra de comando deben estar CON. Cuando el bit 1 está CON, los bits 0
y 2 no deben estarlo o XXMIT no completará la operación correctamente. Para
enviar realmente el mensaje, la entrada Inicio de XXMIT debe estar CON y
permanecer CON hasta que se complete la operación u ocurra un error. Cuando
XXMIT determina que el mensaje se envió correctamente al módem, pasa a CON
la salida Ejecutado. Cuando se produce un error, la salida Error pasa a CON. La
salida Activo está CON mientras se envía el mensaje al módem.
NOTA: Debido a que un módem local tarda mucho en conectarse a un módem
remoto, el valor de timeout, en RespTout debe ser bastante largo al enviar un
mensaje de marcación a un módem. Por ejemplo, establezca el timeout para 30.000
ms al enviar un mensaje de marcación. Cuando el valor de timeout sea demasiado
corto, XXMIT emitirá un mensaje de timeout. Puede que tenga que probar varios
ajustes antes de encontrar el tiempo óptimo.

Mensaje de interrupción de la conexión


Se utiliza el mensaje de interrupción de la conexión para colgar el módem. Sólo los
comandos AT relativos a la interrupción de la conexión del módem deberían
utilizarse en este mensaje. A continuación, se muestra un ejemplo de un mensaje
de interrupción de la conexión del módem típico.
Por ejemplo, mensaje de colgar módem.

Mensaje Longitud

(+++AT)H0 (<CR><LF>) 1 2 caracteres

1 Los caracteres entre paréntesis se envían de forma automática.

Cuando se envía el mensaje de interrupción de la conexión a un módem que ya está


conectado a un módem remoto, XXMIT debe establecer en primer lugar el módem
local en modalidad de comando. Esto lo realiza XXMIT mediante el envío de una
secuencia de escape +++ al módem. XXMIT asume que +++ establece el módem
en modalidad de comando. Algunos fabricantes de módems permiten al usuario
cambiar esta secuencia de escape predeterminada. Para que XXMIT funcione
correctamente, se debe establecer el módem para que acepte la secuencia de
escape +++.
Para que XXMIT envíe una mensaje de interrupción de la conexión al módem, los
bits 9 y 2 de la palabra de comando deben estar CON. Cuando el bit 2 está CON,
los bits 0 y 1 no deben estarlo o XXMIT no completará la operación correctamente.
Para enviar realmente el mensaje, la entrada Inicio de XXMIT debe estar CON y
permanecer CON hasta que se complete la operación u ocurra un error. Cuando
XXMIT determina que el mensaje se envió correctamente al módem, pasa la salida
Ejecutado a CON. Cuando se produce un error, la salida Error pasa a CON. La
salida Ejecutado está CON mientras se envía el mensaje al módem.

398 33002530 05/2010


XXMIT

NOTA: Experto: Debido a que un módem local tarda mucho en colgarse una vez
que recibe el comando colgar, el valor de timeout en RespTout debería ser bastante
largo al enviar un mensaje de marcación a un módem. Por ejemplo, establezca el
timeout para 30.000 ms al enviar un mensaje de marcación. Cuando el valor de
timeout sea demasiado corto, XXMIT emitirá un mensaje de timeout. Puede que
tenga que probar varios ajustes antes de encontrar el tiempo óptimo.

33002530 05/2010 399


XXMIT

Ejemplo de aplicación Hayes

Descripción
El siguiente programa es una breve aplicación de demostración para enviar el
mensaje "Hola mundo" a través de un módem compatible con Hayes (Com One,
Deskline 56K).
Para iniciar la aplicación, la variable "stage" se debe definir en 1 en una tabla de
animación de Unity Pro.

Tipos de datos de variables

start_xxmit_block BOOL
command WORD
msgout ARRAY[0.40] OF BYTE
Msg_Size INT
xmit_DONE BOOL
xmit_ERROR BOOL
xmit_ACTIVE BOOL
xxmit_RESPTOUT INT
xxmit_STARTDLY INT
xxmit_ENDDLY INT

xmit_STATUS_mem INT
counter INT
stage WORD

400 33002530 05/2010


XXMIT

Sección IEC para XXMIT


Programe lo siguiente en una sección FBD:

Sección IEC para comandos de módem


Programe lo siguiente en una sección ST:
(* %S6 is used to generate a 2 second delay *) %m6 := %s6;
if xxmit_STATUS_Mem = 0 then if not(xxmit_STATUS
= 0) then xxmit _STATUS_Mem :=
xxmit_STATUS; end_if; end_if;
(* If XXMIT error, the function block is stopped *) if
xmit_ERROR=1 then stage := 0; counter :=
0; start_xxmit_block:=0; end_if;
if stage = 1 then (* Initialization message*)
xxmit_STATUS_Mem := 0; counter := 0;
xxmit_ENDDLY := 700; xxmit_STARTDLY :=
600; xxmit_RESPTOUT := 700; (* Command
word init *) command:=2#0000001000000001;
msgout[0] := 16#26;(*&->26*) msgout[1]
:= 16#46;(*F->46*) msgout[2] := 16#26;(*&->26*)
msgout[3] := 16#4B;(*K->46*) msgout[4]
:= 16#30;(*0->30*) msgout[5] := 16#26;(*&->26*)
msgout[6] := 16#44;(*D->44*) msgout[7]

33002530 05/2010 401


XXMIT

:= 16#30;(*0->30*) msgout[8] := 16#56;(*V->56*)


msgout[9] := 16#31;(*1->31*) msgout[10]
:= 16#51;(*Q->51*) msgout[11] := 16#30;(*0->30*)
msgout[12] := 16#58;(*X->58*)
msgout[13] := 16#30;(*0->30*)
msgout[14] := 16#45;(*E->45*)
msgout[15] := 16#31;(*1->31*) Msg_Size
:= 16; start_xxmit_block:=1; stage := 2;
end_if;
if stage = 3 then (* Dial message *)
xxmit_STARTDLY := 100; xxmit_ENDDLY :=
100; xxmit_RESPTOUT := 32000; (* Command
word init *) command:=2#0000001000000010;
(* Extension number *) msgout[0] :=
16#32;(*2*) msgout[1] := 16#35;(*5*)
msgout[2] := 16#37;(*7*) msgout[3] :=
16#34;(*4*) start_xxmit_block:=1;
Msg_Size := 4; stage := 4; end_if;
if (stage = 5)then if RE(%m6) then
counter := counter + 1; end_if;
(* Two seconds delay *) if stage = 5 and
counter = 2 then counter := 0;
stage := 7; end_if; end_if;
if stage = 7 then (* ASCII message to be send *)
xxmit_STARTDLY := 300; xxmit_ENDDLY :=
400; xxmit_RESPTOUT := 32000; (* Command
word init *) command:2=#0100001000000000;
msgout[0] := 16#48; (*H*) msgout[1] :=
16#65; (*e*) msgout[2] := 16#6C; (*l*)
msgout[3] := 16#6C; (*l*) msgout[4] :=
16#6F; (*o*) msgout[5] := 16#20; (* *)
msgout[6] := 16#57; (*W*) msgout[7] :=
16#6F; (*o*) msgout[8] := 16#72; (*r*)
msgout[9] := 16#6C; (*l*) msgout[10] :=
16#64; (*d*) msgout[11] := 16#20; (* *)
msgout[12] := 16#21; (*!*) msgout[13] :=
16#21; (*!*) Msg_Size := 14;
start_xxmit_block:=1; stage := 8;
end_if;

402 33002530 05/2010


XXMIT

if stage = 100 then (* Hangup message *)


command:=2#0000001000000100;
xxmit_STARTDLY := 300; xxmit_ENDDLY :=
400; xxmit_RESPTOUT := 500; msgout[0] :=
16#48;(* *) msgout[1] := 16#30;(*CR*)
Msg_Size := 2; start_xxmit_block:=1;
end_if;
(* Change of state after each XXMIT operation *) if xmit_DONE
= 1 then start_xxmit_block:=0; if stage
= 2 then stage := 3; end_if;
if stage = 4 then counter :=
0; stage := 5; end_if;
if stage = 8 then stage := 99;
end_if;
if stage = 99 then stage
:=100; end_if; end_if;

33002530 05/2010 403


XXMIT

32.5 Información de cableado

Descripción general
En esta sección se describen los cables y la asignación de pins de los componentes
de hardware que se utilizan con XXMIT.

Contenido de esta sección


Esta sección contiene los siguientes apartados:
Apartado Página
Asignación de pins de cable 405
Kits de adaptador de cable 418

404 33002530 05/2010


XXMIT

Asignación de pins de cable

Asignación de pins del cable de la interfaz


Necesita generar un cable de interfaz entre el PLC y el módem o la impresora. El
cable real está conectado al puerto que admite el PLC y al puerto RS232 del módem
o impresora, o directamente a otro puerto Modbus del PLC. Debido a que XXMIT
admite muchos módems e impresoras, la asignación de pins variará. A continuación
se proporcionan algunas asignaciones de pins.

9 pins (RS-232) a 25 pins (módem) sin control RTS/CTS


Consulte la ilustración para obtener vistas frontales de los conectores.

Consulte la tabla de asignación de pins del conector.

Asignación de pins del conector


Conector de 9 pins D-shell de 25 pins
Nombre de la Asignación de Asignación de pins Asignación de Nombre de la
señal pins conectada a… pins señal
RXD 2 Sí 3 RXD
TXD 3 Sí 2 TXD
RTS 7 puenteados 4 puenteados RTS
CTS 8 puenteados 5 puenteados CTS
DSR 4 puenteados 6 puenteados DSR
6 puenteados 20 puenteados
DTR DTR
GND 5 Sí 7 GND

33002530 05/2010 405


XXMIT

9 pins (RS-232) a 25 pins (módem) con control RTS/CTS


Consulte la ilustración para obtener vistas frontales de los conectores.

Consulte la tabla de asignación de pins del conector.

Asignación de pins del conector


Conector de 9 pins D-shell de 25 pins
Nombre de la Asignación de Asignación de pins Asignación de Nombre de la
señal pins conectada a… pins señal
RXD 2 Sí 3 RXD
TXD 3 Sí 2 TXD
RTS 7 Sí 4 RTS
CTS 8 Sí 5 CTS
DSR 4 puenteados 6 puenteados DSR
6 puenteados 20 puenteados
DTR DTR
GND 5 Sí 7 GND

406 33002530 05/2010


XXMIT

9 pins a 9 pins (sin módem)


Consulte la ilustración para obtener vistas frontales de los conectores.

Consulte la tabla de asignación de pins del conector.

Asignación de pins del conector


Conector de 9 pins Conector de 9 pins
Nombre de la Asignación de Asignación de pins Asignación de Nombre de la
señal pins conectada a… pins señal
RXD 2 Sí 3 TXD
TXD 3 Sí 2 RXD
RTS 7 puenteados 7 puenteados RTS
8 puenteados 8 puenteados
CTS CTS
DSR 4 puenteados 4 puenteados DSR
DTR 6 puenteados 6 puenteados DTR
GND 5 Sí 5 GND

33002530 05/2010 407


XXMIT

9 pins a 9 pins (módem)


Consulte la ilustración para obtener vistas frontales de los conectores.

Consulte la tabla de asignación de pins del conector.

Asignación de pins del conector


Conector de 9 pins Conector de 9 pins
Nombre de la Asignación de Asignación de pins Asignación de Nombre de la
señal pins conectada a… pins señal
TXD 2 Sí 2 TXD
RXD 3 Sí 3 RXD
RTS 7 Sí 7 RTS
CTS 8 Sí 8 CTS
DSR 4 puenteados 4 puenteados DSR
6 puenteados 6 puenteados
DTR DTR
GND 5 Sí 5 GND

408 33002530 05/2010


XXMIT

9 pins a 25 pins (sin módem)


Consulte la ilustración para obtener vistas frontales de los conectores.

Consulte la tabla de asignación de pins del conector.

Asignación de pins del conector


Conector de 9 pins D-shell de 25 pins
Nombre de la Asignación de Asignación de pins Asignación de Nombre de la
señal pins conectada a… pins señal
RXD 2 Sí 2 TXD
TXD 3 Sí 3 RXD
RTS 7 puenteados 4 puenteados RTS
8 puenteados 5 puenteados
CTS CTS
DSR 4 puenteados 6 puenteados DSR
6 puenteados 20 puenteados
DTR DTR
GND 5 Sí 7 GND

33002530 05/2010 409


XXMIT

RJ45-(8x8) a 25 pins (sin módem) 110XCA20401


Consulte la ilustración para obtener vistas frontales de los conectores.

Consulte la tabla de asignación de pins del conector.

Asignación de pins del conector


Conector RJ45 D-shell de 25 pins
Nombre de la Asignación de Asignación de pins Asignación de Nombre de la
señal pins conectada a… pins señal
RXD 4 Sí 2 TXD
TXD 3 Sí 3 RXD
RTS 6 puenteados 4 puenteados RTS
7 puenteados 5 puenteados
CTS CTS
GND 5 Sí 7 GND
DSR 2 Sí 6 DSR
20
DTR
Puesta a tierra 8 Sí 1 Puesta a tierra
del chasis del chasis

ATENCIÓN
RIESGO DE CORTOCIRCUITO DE 5 V
El pin 1 del RJ45 recibe 5 V desde el PLC.
Si no se siguen estas instrucciones pueden producirse lesiones personales
o daños en el equipo.

410 33002530 05/2010


XXMIT

RJ45-(8x8) a 9 pins (sin módem) 110XCA20301


Consulte la ilustración para obtener vistas frontales de los conectores.

Consulte la tabla de asignación de pins del conector.

Asignación de pins del conector


Conector RJ45 D-shell de 9 pins
Nombre de la Asignación de Asignación de pins Asignación de Nombre de la
señal pins conectada a… pins señal
RXD 4 Sí 3 TXD
TXD 3 Sí 2 RXD
RTS 6 puenteados 7 puenteados RTS
CTS 7 puenteados 8 puenteados CTS
GND 5 Sí 5 GND
DSR 2 Sí 4 DTR
6 DSR
Puesta a tierra 8 Sí Caja del conector
del chasis

ATENCIÓN
RIESGO DE CORTOCIRCUITO DE 5 V
El pin 1 del RJ45 recibe 5 V desde el PLC.
Si no se siguen estas instrucciones pueden producirse lesiones personales
o daños en el equipo.

33002530 05/2010 411


XXMIT

RJ45-(8x8) a 25 pins (módem) 110XCA20401


Consulte la ilustración para obtener vistas frontales de los conectores.

Consulte la tabla de asignación de pins del conector.

Asignación de pins del conector


Conector RJ45 D-shell de 25 pins
Nombre de la Asignación de Asignación de pins Asignación de Nombre de la
señal pins conectada a… pins señal
RXD 4 Sí 3 RXD
TXD 3 Sí 2 TXD
RTS 6 puenteados 4 puenteados RTS
7 puenteados 5 puenteados
CTS CTS
GND 5 Sí 7 GND
DSR 2 Sí 6 DSR
20
DTR
Puesta a tierra 8 Sí 1 Puesta a tierra
del chasis del chasis

ATENCIÓN
RIESGO DE CORTOCIRCUITO DE 5 V
El pin 1 del RJ45 recibe 5 V desde el PLC.
Si no se siguen estas instrucciones pueden producirse lesiones personales
o daños en el equipo.

412 33002530 05/2010


XXMIT

RJ45-(8x8) a 25 pins (módem) 110XCA20401


Consulte la ilustración para obtener vistas frontales de los conectores.

Consulte la tabla de asignación de pins del conector.

Asignación de pins del conector


Conector RJ45 D-shell de 25 pins
Nombre de la Asignación de Asignación de pins Asignación de Nombre de la
señal pins conectada a… pins señal
RXD 4 Sí 3 RXD
TXD 3 Sí 2 TXD
RTS 6 Sí 4 RTS
CTS 7 Sí 5 CTS
GND 5 Sí 7 GND
6 puenteados DSR
20 puenteados
DTR
Puesta a tierra 8 Sí 1 Puesta a tierra
del chasis del chasis

ATENCIÓN
RIESGO DE CORTOCIRCUITO DE 5 V
El pin 1 del RJ45 recibe 5 V desde el PLC.
Si no se siguen estas instrucciones pueden producirse lesiones personales
o daños en el equipo.

33002530 05/2010 413


XXMIT

RJ45-(8x8) a RJ45-(8x8) (módem)


Consulte la ilustración para obtener vistas frontales de los conectores.

Consulte la tabla de asignación de pins del conector.

Asignación de pins del conector


Conector RJ45 Conector RJ45
Nombre de la Asignación de Asignación de pins Asignación de Nombre de la
señal pins conectada a… pins señal
RXD 4 Sí 4 RXD
TXD 3 Sí 3 TXD
RTS 6 Sí 6 RTS
CTS 7 Sí 7 CTS
GND 5 Sí 5 GND
DSR 2 Sí 2 DSR
Puesta a tierra 8 Sí 8 Puesta a tierra
del chasis del chasis

ATENCIÓN
RIESGO DE CORTOCIRCUITO DE 5 V
El pin 1 del RJ45 recibe 5 V desde el PLC.
Si no se siguen estas instrucciones pueden producirse lesiones personales
o daños en el equipo.

414 33002530 05/2010


XXMIT

9 pins a RJ45-(8x8) (módem) 110XCA20301


Consulte la ilustración para obtener vistas frontales de los conectores.

Consulte la tabla de asignación de pins del conector.

Asignación de pins del conector


Conector RJ45 Conector de 9 pins
Nombre de la Asignación de Asignación de pins Asignación de Nombre de la
señal pins conectada a… pins señal
RXD 4 Sí 2 RXD
TXD 3 Sí 3 TXD
RTS 6 puenteados 7 puenteados RTS
7 puenteados 8 puenteados
CTS CTS
GND 5 Sí 5 GND
DSR 2 Sí 6 DSR
4
DTR
Puesta a tierra 8 Sí Caja del conector
del chasis

ATENCIÓN
RIESGO DE CORTOCIRCUITO DE 5 V
El pin 1 del RJ45 recibe 5 V desde el PLC.
Si no se siguen estas instrucciones pueden producirse lesiones personales
o daños en el equipo.

33002530 05/2010 415


XXMIT

9 pins a RJ45-(8x8) (módem) 110XCA20301


Consulte la ilustración para obtener vistas frontales de los conectores.

Consulte la tabla de asignación de pins del conector.

Asignación de pins del conector


Conector RJ45 Conector de 9 pins
Nombre de la Asignación de Asignación de pins Asignación de Nombre de la
señal pins conectada a… pins señal
RXD 4 Sí 2 RXD
TXD 3 Sí 3 TXD
RTS 6 Sí 7 RTS
CTS 7 Sí 8 CTS
GND 5 Sí 5 GND
6 puenteados DSR
4 puenteados DTR
Puesta a tierra 8 Sí Caja del conector
del chasis

ATENCIÓN
RIESGO DE CORTOCIRCUITO DE 5 V
El pin 1 del RJ45 recibe 5 V desde el PLC.
Si no se siguen estas instrucciones pueden producirse lesiones personales
o daños en el equipo.

416 33002530 05/2010


XXMIT

RJ 45 High end CPU RS 422/RS 485


Consulte la ilustración para obtener una vista frontal del conector de la CPU.

Tabla de asignación de pins para el conector RJ 45 High end Quantum


RS 422/RS 485.

Pin Señal RS-422 Señal RS-485


1 RX - D-
2 RX + D+
3 TX +
4 Nc Nc
5 GND GND
6 TX -
7 Nc Nc
8 PE opcional PE opcional

NOTA: En el caso del RS-485, los pins de protocolo 1, 2, 3 y 6 deben estar


cortocircuitados.

33002530 05/2010 417


XXMIT

Kits de adaptador de cable

Kits de adaptador de cable para el conector RJ45


Es posible que necesite comprar kits de adaptador de cable para los requisitos del
conector RJ45 (8x8) en lugar de hacerlos. La tabla que aparece a continuación
proporciona una lista de los kits disponibles.
Kits de adaptador de cable disponibles

Descripción Número de serie


RJ45-(8x8) a 25 pins (macho) 110XCA20401
RJ45-(8x8) a 9 pins (macho) 110XCA20301
RJ45-(8x8) a 9 pins (hembra) 110XCA20302
RJ45-(8x8) a 25 pins (hembra) 110XCA20402

418 33002530 05/2010


XXMIT

Kits de adaptador de DB a RJ45

33002530 05/2010 419


XXMIT

Ejemplo 1 de conexión del cable


Se puede utilizar una conexión de 3 pins para una terminal estándar que funcione
a baja velocidad o que utilice control de flujo de software.
RJ45 a DB9

PLC Quantum Conector de módem


RJ 45 DB9
RJ45-3 TXD RXD DB25-2
RJ45-4 RXD TXD DB-25-3
RJ45-5 GND GND DB25-5

420 33002530 05/2010


XXMIT

Ejemplo 2 de conexión
RJ45 a DB25

PLC Quantum Conector de módem


RJ 45 DB25
RJ45-3 TXD RXD DB25-3
RJ45-4 RXD TXD DB-25-2
RJ45-5 GND GND DB25-7

33002530 05/2010 421


XXMIT

422 33002530 05/2010


33002530 05/2010

Apéndices

Visión general
Esta sección contiene los anexos.

Contenido de este anexo


Este anexo contiene los siguientes capítulos:
Capítulo Nombre del capítulo Página
A Códigos de error y valores EFB 425
B Objetos de sistema 431

33002530 05/2010 423


424 33002530 05/2010
Códigos de error y valores EFB
33002530 05/2010

Códigos de error y valores EFB

A
Introducción
En las tablas siguientes se muestran los códigos y valores de error creados para los
EFB de la librería de comunicación.

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Tablas de códigos de error de la librería de comunicación 426
Errores comunes de coma flotante 429

33002530 05/2010 425


Códigos de error y valores EFB

Tablas de códigos de error de la librería de comunicación

Introducción
En las tablas siguientes se muestran los códigos y valores de error creados para los
EFB de la librería de comunicación.

Extendido
Tabla de códigos y valores de error creados para los EFB de la familia Extendido.

Nombre de Código de error Estado Valor de Valor de Descripción del error


EFB de ENO error en error en
en caso dec. hex.
de error
CREAD_REG E_EFB_MSTR_ERROR F -30.191 16#8A11 Error de comunicación MSTR.
CREAD_REG E_EFB_NOT_STATE_RAM_4X F -30.531 Variable no asignada al campo
16#88BD % MW (4x).
CREAD_REG - F 8.195 16#2003 Valor mostrado en la palabra de
estado.
(Aparece con
E_EFB_MSTR_ERROR.)
CREAD_REG - F 8.206 16#200E Valor mostrado en la palabra de
estado.
Aparece con
E_EFB_NOT_STATE_RAM_4X.
CREAD_REG - F - - Consulte las tablas de:
z Códigos de error de Modbus Plus
y SY/MAX EtherNet
(véase página 141)
z Códigos de error específicos de
SY/MAX (véase página 146)
z Códigos de error TCP/IP
EtherNet (véase página 148)
CWRITE_REG E_EFB_MSTR_ERROR F -30.191 16#8A11 Error de comunicación MSTR.
CWRITE_REG - F 8.195 16#2003 Valor mostrado en la palabra de
estado.
Aparece con
E_EFB_MSTR_ERROR.
CWRITE_REG - F 8.206 16#200E Valor mostrado en la palabra de
estado.
Aparece con
E_EFB_NOT_STATE_RAM_4X.

426 33002530 05/2010


Códigos de error y valores EFB

Nombre de Código de error Estado Valor de Valor de Descripción del error


EFB de ENO error en error en
en caso dec. hex.
de error
CWRITE_REG - F - - Consulte las tablas de:
z Códigos de error de Modbus Plus
y SY/MAX EtherNet
(véase página 141)
z Códigos de error específicos de
SY/MAX (véase página 146)
z Códigos de error TCP/IP
EtherNet (véase página 148)
MBP_MSTR E_EFB_OUT_OF_RANGE F -30.192 16#8A10 Error interno: EFB ha detectado una
violación (por ejemplo, que la
escritura sobrepasa los límites de
%MW [4x])
MBP_MSTR E_EFB_NOT_STATE_RAM_4X F -30.531 Variable no asignada al campo
16#88BD % MW (4x).
MBP_MSTR - F 8.195 16#2003 Valor mostrado en la palabra de
estado.
Aparece con
E_EFB_MSTR_ERROR en el
estado del bloque de control.
MBP_MSTR - F 8.206 16#200E Valor mostrado en la palabra de
estado.
Aparece con
E_EFB_NOT_STATE_RAM_4X en
el estado del bloque de control.
MBP_MSTR - F - - Consulte las tablas de:
z Códigos de error de Modbus Plus
y SY/MAX EtherNet
(véase página 141)
z Códigos de error específicos de
SY/MAX (véase página 146)
z Códigos de error TCP/IP
EtherNet (véase página 148)
READ_REG W_WARN_OUT_OF_RANGE F 30.110 16#759E Parámetro fuera de rango.
READ_REG E_EFB_NOT_STATE_RAM_4X F -30.531 Variable no asignada al campo
16#88BD % MW (4x).
READ_REG E_EFB_MSTR_ERROR F -30.191 16#8A11 Error de comunicación MSTR.
READ_REG - F 8.195 16#2003 Valor mostrado en la palabra de
estado.
Aparece con
W_WARN_OUT_OF_RANGE.

33002530 05/2010 427


Códigos de error y valores EFB

Nombre de Código de error Estado Valor de Valor de Descripción del error


EFB de ENO error en error en
en caso dec. hex.
de error
READ_REG MBPUNLOC F 8.206 16#200E Valor mostrado en la palabra de
estado.
Aparece con
E_EFB_NOT_STATE_RAM_4X.
READ_REG - F - - Consulte las tablas de:
z Códigos de error de Modbus Plus
y SY/MAX EtherNet
(véase página 141)
z Códigos de error específicos de
SY/MAX (véase página 146)
z Códigos de error TCP/IP
EtherNet (véase página 148)
WRITE_REG W_WARN_OUT_OF_RANGE F 30.110 16#759E Parámetro fuera de rango.
WRITE_REG E_EFB_NOT_STATE_RAM_4X F -30.531 Variable no asignada al campo
16#88BD % MW (4x).
WRITE_REG E_EFB_MSTR_ERROR F -30.191 16#8A11 Error de comunicación MSTR.
WRITE_REG - F 8.195 16#2003 Valor mostrado en la palabra de
estado.
Aparece con
W_WARN_OUT_OF_RANGE.
WRITE_REG - F 8.206 16#200E Valor mostrado en la palabra de
estado.
Aparece con
E_EFB_NOT_STATE_RAM_4X.
WRITE_REG - F - - Consulte las tablas de:
z Códigos de error de Modbus Plus
y SY/MAX EtherNet
(véase página 141)
z Códigos de error específicos de
SY/MAX (véase página 146)
z Códigos de error TCP/IP
EtherNet (véase página 148)

428 33002530 05/2010


Códigos de error y valores EFB

Errores comunes de coma flotante

Introducción
En la tabla siguiente se muestran los códigos y valores de error comunes creados
para los errores de coma flotante.

Errores comunes de coma flotante


Tabla de errores comunes de coma flotante

Códigos de error Valor de error Valor de Descripción del error


en Dec error en Hex
FP_ERROR -30150 16#8A3A Valor de base (no aparece como valor de
error)
E_FP_STATUS_FAILED_IE -30151 16#8A39 Operación de coma flotante ilegal
E_FP_STATUS_FAILED_IE -30152 16#8A38 El operando no está normalizado, no es un
número REAL válido
E_FP_STATUS_FAILED_ZE -30154 16#8A36 División por cero ilegal
E_FP_STATUS_FAILED_ZE_IE -30155 16#8A35 Operación de coma flotante ilegal / División
por cero
E_FP_STATUS_FAILED_OE -30158 16#8A32 Rebasamiento de coma flotante
E_FP_STATUS_FAILED_OE_IE -30159 16#8A31 Operación de coma flotante ilegal /
Rebasamiento
E_FP_STATUS_FAILED_OE_ZE -30162 16#8A2E Rebasamiento de coma flotante / División
por cero
E_FP_STATUS_FAILED_OE_ZE_IE -30163 16#8A2D Operación de coma flotante ilegal /
Rebasamiento / División por cero
E_FP_NOT_COMPARABLE -30166 16#8A2A Error interno

33002530 05/2010 429


Códigos de error y valores EFB

430 33002530 05/2010


Objetos de sistema
33002530 05/2010

Objetos de sistema

B
Objeto
Este capítulo describe los bits y las palabras de sistema del lenguaje Unity Pro.
Nota: los símbolos asociados a cada objeto de bit o de palabra del sistema a los
que se hace referencia en las tablas descriptivas de dichos objetos no están
incluidos de serie en el programa, se pueden introducir a través del editor de datos.
Se proponen para homogeneizar su denominación en las diferentes aplicaciones.

Contenido de este capítulo


Este capítulo contiene los siguiente apartados:
Apartado Página
Introducción de bits de sistema 432
Descripción de los bits de sistema de %S15 a %S21 433
Descripción de las palabras de sistema %SW12 a %SW29 436

33002530 05/2010 431


Objetos de sistema

Introducción de bits de sistema

General
Los autómatas Modicon M340, Premium, Atrium y Quantum utilizan bits de sistema
%Si que indican los estados del autómata o que permiten controlar el funciona-
miento de éste.
Dichos bits pueden probarse en el programa del usuario con el fin de detectar
cualquier evolución de funcionamiento que conlleve un procedimiento de
procesamiento establecido.
Algunos de estos bits deben volver a su estado inicial o normal por programa. No
obstante, los bits de sistema que vuelven a su estado inicial o normal a través del
sistema, no deben hacerlo a través del programa ni del terminal

432 33002530 05/2010


Objetos de sistema

Descripción de los bits de sistema de %S15 a %S21

Descripción detallada
Descripción de los bits de sistema de %S15 a %S21:

Bit Función Descripción Estado Modicon Premium Quantum


Símbolo inicial M340 Atrium
%S15 Fallo de Normalmente en estado 0, este bit pasa al 0 SÍ SÍ SÍ
STRINGERROR lectura de estado 1 cuando el área de destino de una (excepto
cadena transferencia de cadena de caracteres no para PLC
tiene el tamaño suficiente (incluido el de
número de caracteres y el carácter de fin de seguridad)
cadena de caracteres) para recibirla.
La aplicación se detiene debido a un error si
el bit %S78 se ha puesto a 1.
La aplicación debe resetear el bit a 0.
Este bit no está disponible en PLC de
seguridad Quantum.
%S16 Fallo de Normalmente en estado 1, el sistema vuelve 1 SÍ SÍ SÍ
IOERRTSK salidas/entr a establecerlo en 0 cuando se detecta un
adas de fallo en un módulo en bastidor o en un
tarea dispositivo en Fipio (por ejemplo, una
configuración incompatible o fallos de
intercambio o de hardware, etc.).
El usuario debe resetear el bit en 1.

ATENCIÓN
COMPORTAMIENTO INESPERADO DE LA APLICACIÓN - COMPORTAMIEN-
TO ESPECÍFICO DE LA VARIABLE
En Quantum, los errores de comunicación de la red con dispositivos remotos
detectados por los módulos de comunicación (NOM, NOE, NWM, CRA, CRP) y
los módulos de movimiento (MMS) no se notifican en los bits %S10, %S16 ni
%S119.
Si no se siguen estas instrucciones pueden producirse lesiones personales
o daños en el equipo.

33002530 05/2010 433


Objetos de sistema

Bit Función Descripción Estado Modicon Premium Quantum


Símbolo inicial M340 Atrium
%S17 Salida de Normalmente está en estado 0. 0 SÍ SÍ SÍ
CARRY desplazamie Durante una operación de desplazamiento
nto circular circular, este bit adopta el estado del bit
saliente.
%S18 Desborde o Normalmente en estado 0, este bit pasa a 1 en 0 SÍ SÍ SÍ
OVERFLOW error caso de desborde de la capacidad si:
aritmético z El resultado es superior a +32.767 o
inferior a -32.768, en longitud simple.
z El resultado es superior a +65.535, en un
número entero sin signo.
z El resultado es superior a + 2.147.483.647
o inferior a - 2.147.483.648, en longitud
doble.
z El resultado es superior a +4.294.967.296,
en longitud doble o número entero sin
signo.
z los valores reales sobrepasan los límites;
z hay una división entre 0;
z hay una raíz de un número negativo;
z se fuerza un paso inexistente en un
programador cíclico;
z hay un apilamiento de un registro
completo, vaciado de un registro vacío.
Sólo hay un caso en el que los PLC Modicon
M340 no aumentan el bit %S18 cuando los
valores reales superan los límites. Esto sólo
sucede si se utilizan operandos no
normalizados o algunas operaciones que
generan resultados no normalizados
(transgresión por debajo de rango gradual).
Debe comprobarse mediante el programa del
usuario después de cada operación en la que
exista riesgo de desborde; si se produce, el
usuario debe resetear a 0.
Cuando el bit %S18 pasa a 1, la aplicación se
detiene debido a un error si el bit %S78 se ha
establecido en 1.
%S19 Desborde Normalmente en estado 0, el sistema pone 0 SÍ SÍ SÍ
OVERRUN del período este bit en estado 1 en caso de desborde del
de tarea período de ejecución (tiempo de ejecución de
(exploración tarea superior al período definido por el
periódica) usuario en la configuración o programado en
la palabra %SW asociada a la tarea). El
usuario debe resetear el bit en 0. Cada tarea
gestiona su propio bit %S19.

434 33002530 05/2010


Objetos de sistema

Bit Función Descripción Estado Modicon Premium Quantum


Símbolo inicial M340 Atrium
%S20 Desborde Normalmente en estado 0, este bit pasa a 0 SÍ SÍ SÍ
INDEXOVF del índice estado 1 cuando la dirección del objeto de (excepto
índice sea menor que 0 o supere el número de para PLC
objetos declarados en la configuración. de
En este caso, ocurre lo mismo que si el índice seguridad
fuera igual a 0. )
Debe comprobarse mediante el programa del
usuario después de cada operación en la que
exista riesgo de desborde; si esto sucede, se
debe resetear a 0.
Cuando el bit %S20 pasa a 1, la aplicación se
detiene debido a un error si el bit %S78 se ha
establecido en 1.
Este bit no está disponible en PLC de
seguridad Quantum.
%S21 Primer ciclo El bit %S21, que se comprueba en una tarea 0 SÍ SÍ SÍ
1RSTTASKRUN de tarea (Mast, Fast, Aux0, Aux1, Aux2 o Aux3), indica
el primer ciclo de dicha tarea, incluso después
de un inicio en frío con inicio automático de la
ejecución y un inicio en caliente. %S21 se
pone a 1 al comienzo del ciclo y se resetea a
0 al final del ciclo.
Nota: El bit %S21 no tiene el mismo
significado en PL7 y en Unity Pro.

33002530 05/2010 435


Objetos de sistema

Descripción de las palabras de sistema %SW12 a %SW29

Descripción detallada
Descripción de las palabras de sistema %SW12 a %SW29:

Palabra Funcionamiento Descripción Estado Modicon Premium Quantum


Símbolo inicial M340 Atrium
%SW12 Dirección del Para Premium: dirección Uni-Telway - SÍ SÍ NO
UTWPORTADDR puerto serie del del puerto de terminal (en modalidad (consulte
procesador de esclavo) definida en la %SW12 a
configuración y cargada en esta continuaci
palabra en un arranque en frío. El ón)
sistema no tiene en cuenta la
modificación del valor de esta palabra.
Para Modicon M340: proporciona la
dirección del esclavo de Modbus del
puerto serie de la CPU. No se tiene en
cuenta la modificación. Es 0, si la CPU
no dispone de una conexión de puerto
serie.
%SW12 Modalidad del Únicamente para PLC de seguridad 16#A501 NO NO SÍ
APMODE procesador de la Quantum, esta palabra indica la Sólo en
aplicación modalidad de servicio del procesador PLC de
de la aplicación del módulo CPU. seguridad
z 16#A501 = modalidad de
mantenimiento
z 16#5AFE = modalidad segura

Cualquier otro valor se interpreta


como un error.
Nota: En un sistema de seguridad Hot
Standby, esta palabra se intercambia
desde el PLC primario hasta el PLC
Standby para informar al PLC Standby
de la modalidad segura o de
mantenimiento.
%SW13 Dirección Esta palabra indica lo siguiente para la 254 NO SÍ NO
XWAYNETWADDR principal de la red principal (Fipway o Ethway): (16#00FE) (consulte
estación z el número de la estación (byte de %SW13 a
menor valor) de 0 a 127, continuaci
z el número de la red (byte de mayor ón)
valor) de 0 a 63,
(valor de los microinterruptores de la
tarjeta PCMCIA).

436 33002530 05/2010


Objetos de sistema

Palabra Funcionamiento Descripción Estado Modicon Premium Quantum


Símbolo inicial M340 Atrium
%SW13 Modalidad del Únicamente para PLC de seguridad - NO NO SÍ
INTELMODE procesador Intel Quantum, esta palabra indica la Sólo en
modalidad de servicio del procesador PLC de
Intel Pentium del módulo CPU. seguridad
z 16#501A = modalidad de
mantenimiento
z 16#5AFE = modalidad segura

Cualquier otro valor se interpreta


como un error.
Nota: En un sistema de seguridad Hot
Standby, esta palabra se intercambia
desde el PLC primario hasta el PLC
Standby para informar al PLC Standby
de la modalidad segura o de
mantenimiento.
%SW14 Versión Esta palabra contiene la versión de - SÍ SÍ SÍ
OSCOMMVERS comercial del sistema operativo (SO) del
procesador del procesador del PLC.
PLC Ejemplo: 16#0135
Versión: 01
Número de emisión: 35
%SW15 Versión del Esta palabra contiene la versión - SÍ SÍ SÍ
OSCOMMPATCH parche del comercial del parche para el
procesador del procesador del PLC.
PLC La codificación se lleva a cabo en el
byte de menor valor de la palabra.
Codificación: 0 = sin parche, 1 = A, 2 =
B...
Ejemplo: 16#0003 corresponde al
parche C.
%SW16 Número de Esta palabra contiene el número de - SÍ SÍ SÍ
OSINTVERS versión del versión en formato hexadecimal del
firmware firmware del procesador del PLC.
Ejemplo: 16#0011
Versión: 2.1
N.º de versión: 17

33002530 05/2010 437


Objetos de sistema

Palabra Funcionamiento Descripción Estado Modicon Premium Quantum


Símbolo inicial M340 Atrium
%SW17 Estado de fallo en Cuando se detecta un fallo en una 0 SÍ SÍ SÍ
FLOATSTAT operación operación aritmética flotante, el bit Sólo en
flotante %S18 pasa a 1 y el estado de error de PLC de
%SW17 se actualiza según la seguridad
codificación siguiente:
z %SW17.0 = operación inválida / el
resultado no es un número;
z %SW17.1 =operando no
normalizado / el resultado es
aceptable (indicador no gestionado
por Modicon M340 o PLC de
seguridad Quantum);
z %SW17.2 = división entre 0 / el
resultado es infinito;
z %SW17.3 = desborde / el resultado
es infinito;
z %SW17.4 = transgresión por
debajo de rango / el resultado es 0;
z De %SW17.5 a 15 = no se utiliza.

El sistema, así como el programa a fin


de reutilizarla, vuelve a poner esta
palabra a 0 en el arranque en frío.
Esta palabra no está disponible en
PLC de seguridad Quantum.

438 33002530 05/2010


Objetos de sistema

Palabra Funcionamiento Descripción Estado Modicon Premium Quantum


Símbolo inicial M340 Atrium
%SD18: Contador de %SW18 representa los bytes de menor 0 SÍ SÍ SÍ
%SW18 y tiempo absoluto valor y %SW19 los bytes de mayor
%SW19 valor de la palabra doble %SD18, que
100MSCOUNTER el sistema incrementa cada décima de
segundo. La aplicación puede leer o
escribir estas palabras para realizar
cálculos de duración.
%SD18 se incrementa
sistemáticamente, incluso en la
modalidad STOP y estados
equivalentes. Sin embargo, no se
tienen en cuenta las veces que el PLC
está apagado, puesto que la función
no está vinculada al administrador de
tiempo real, sino sólo al reloj en
tiempo real.
Para PLC de seguridad Quantum,
sabiendo que los dos procesadores
deben procesar exactamente los
mismos datos, el valor de %SD18 se
actualiza al comienzo de la tarea
MAST y, a continuación, se congela
durante la ejecución de la aplicación.

33002530 05/2010 439


Objetos de sistema

Palabra Funcionamiento Descripción Estado Modicon Premium Quantum


Símbolo inicial M340 Atrium
%SD20: Contador de Para PLC Quantum y M340, el 0 SÍ SÍ SÍ
%SW20 y tiempo absoluto sistema incrementa %SD20 cada
%SW21 milésima de segundo (incluso cuando
MSCOUNTER el PLC está en STOP, %SD20 deja de
incrementarse si el PLC está
apagado). %SD20 puede leerse
mediante el programa de usuario o el
terminal.
%SD20 se restablece en los arranques
en frío.
%SD20 no se restablece en los
arranques en caliente.
Para los PLC Premium
TSX P57 1•4M/2•4M/3•4M/C024M/02
4M y TSX PCI57 204M/354M, el
sistema incrementa %SD20 5 veces
cada 5 milésimas de segundo. Para el
resto de PLC Premium, %SD20 se
establece según el contador de
tiempo a 1 ms, como los PLC
Quantum y M340.
Para PLC de seguridad Quantum,
sabiendo que los dos procesadores
deben procesar exactamente los
mismos datos, el valor de %SD18 se
actualiza al comienzo de la tarea
MAST y, a continuación, se congela
durante la ejecución de la aplicación.
%SW23 Valor del El byte de menor valor contiene el - SÍ NO NO
conmutador conmutador rotativo del procesador
rotativo Ethernet.
Puede leerse mediante el programa
de usuario o el terminal.
%SW26 Número de Esta palabra de sistema permite - SÍ SÍ SÍ
solicitudes verificar en el lado del servidor el
procesadas número de solicitudes procesadas por
PLC por ciclo.

440 33002530 05/2010


Objetos de sistema

Palabra Funcionamiento Descripción Estado Modicon Premium Quantum


Símbolo inicial M340 Atrium
%SW27 Duración de la z %SW27 es la última duración de la - SÍ NO NO
%SW28 administración administración del sistema.
%SW29 del sistema z %SW28 contiene la duración
máxima de la administración del
sistema.
z %SW29 contiene la duración
mínima de la administración del
sistema.
La duración de la administración del
sistema depende de la configuración
(número de E/S...) y de las peticiones
de ciclo actuales (comunicación,
diagnósticos).
Duración de la administración del
sistema = duración del ciclo Mast –
duración de ejecución del código de
usuario.
Pueden leerse y escribirse mediante
el programa de usuario o el terminal.

33002530 05/2010 441


Objetos de sistema

442 33002530 05/2010


Glosario
33002530 05/2010

Glosario

0-9

%I
Según la norma IEC, %I indica un objeto de lenguaje de entrada binaria.

%IW
Según la norma IEC, %IW indica un objeto de lenguaje de entrada analógica.

%KW
Según la norma IEC, %KW indica un objeto de lenguaje de palabra constante.

%M
Según la norma IEC, %M indica un objeto de lenguaje de bit de memoria.

%MW
Según la norma IEC, %MW indica un objeto de lenguaje de palabra de memoria.

%Q
Según la norma IEC, %Q indica un objeto de lenguaje de salida binaria.

%QW
Según la norma IEC, %QW indica un objeto de lenguaje de salida analógica.

33002530 05/2010 443


Glosario

ADDM_TYPE
Este tipo predefinido se utiliza como salida de la función ADDM. Se trata de
ARRAY[0..8] OF Int. Lo encontrará en la biblioteca, en la misma familia que las EF
que lo utilizan.

ADDR_TYPE
Este tipo predefinido se utiliza como salida de la función ADDR. Se trata de
ARRAY[0..5] OF Int. Lo encontrará en la biblioteca, en la misma familia que las EF
que lo utilizan.

ANL_IN
ANL_IN es la forma abreviada del tipo de datos de entrada analógica. Se utiliza
cuando se procesan valores analógicos. Las direcciones %IW del módulo de
entrada analógica configurado, que se especifican en la lista de componentes de
E/S, se asignan automáticamente a los tipos de datos y, en consecuencia, deben
estar ocupadas únicamente por variables que no se hayan asignado.

ANL_OUT
ANL_OUT es la forma abreviada del tipo de datos de salida analógica. Se utiliza
cuando se procesan valores analógicos. Las direcciones %MW del módulo de
entrada analógica configurado, que se especifican en la lista de componentes de
E/S, se asignan automáticamente a los tipos de datos y, en consecuencia, deben
estar ocupadas únicamente por variables que no se hayan asignado.

444 33002530 05/2010


Glosario

ANY
Existe una jerarquía entre los distintos tipos de datos. En los DFB, a veces es
posible declarar las variables que puedan contener varios tipos de valores. Se
utilizan los tipos ANY_xxx.
En la siguiente figura se describe esta estructura jerarquizada:

33002530 05/2010 445


Glosario

ARRAY
Una ARRAY es una tabla que contiene elementos del mismo tipo.
La sintaxis es la siguiente: ARRAY [<límites>] OF <Tipo>
Ejemplo:
ARRAY [1..2] OF BOOL es una tabla de una dimensión compuesta por dos
elementos de tipo BOOL.
ARRAY [1..10, 1..20] OF INT es una tabla de dos dimensiones compuesta
por 10 x 20 elementos de tipo INT.

BCD
BCD es la forma abreviada del formato «Binary Coded Decimal» (decimal
codificado en binario).
BCD permite representar los números decimales comprendidos entre 0 y 9
mediante un grupo de cuatro bits (medio byte).
En este formato, los cuatro bits utilizados para codificar los números decimales
disponen de un rango de combinaciones que no se utilizan.
Ejemplo de la codificación BCD:
z El número 2.450
z se codifica así: 0010 0100 0101 0000

BOOL
BOOL es la forma abreviada del tipo booleano. Se trata del tipo de datos básico en
informática. Una variable de tipo BOOL posee uno de estos valores: 0 (FALSE) o 1
(TRUE).
Un bit extraído de una palabra es de tipo BOOL, por ejemplo: %MW10.4.

BYTE
Cuando se reagrupan ocho bits, se habla de un BYTE (byte). La introducción de un
BYTE se realiza en modalidad binaria o en base 8.
El tipo BYTE está codificado en un formato de 8 bits que, en el formato hexadecimal,
va de 16#00 a 16#FF.

446 33002530 05/2010


Glosario

Cadena
Etapa activa de un SFC.

Cadena única
Modalidad de servicio de un diagrama SFC en la que sólo puede haber un paso
activo en un momento determinado.

Convenciones de designación (identificador)


Un identificador es un conjunto de letras, cifras y signos de subrayado que
comienza por una letra o un signo de subrayado (por ejemplo, el nombre de un tipo
de bloque de funciones, de una instancia, de una variable o de una sección).
Pueden utilizarse letras acentuadas de grupos de caracteres nacionales (como ö,
ü, é y õ), excepto en los nombres de proyectos y DFB. Los signos de subrayado son
significativos en los identificadores. Por ejemplo, A_BCD y AB_CD se interpretan
como identificadores distintos. El uso de varios signos de subrayado consecutivos
o al principio de un identificador es incorrecto.
Los identificadores no pueden contener espacios. No se distingue entre
mayúsculas y minúsculas. Por ejemplo, ABCD y abcd se interpretan como un mismo
identificador.
Según la norma IEC 61131-3, no se permite utilizar cifras antepuestas en los
identificadores. Sin embargo, puede utilizarlos si, en el cuadro de diálogo
Herramientas →Ajustes del proyecto, ficha Extensiones de lenguaje, activa la
casilla de verificación Permitir cifras antepuestas.
Los identificadores no pueden ser palabras clave.

33002530 05/2010 447


Glosario

DATE
El tipo DATE codificado en BCD en un formato de 32 bits contiene la información
siguiente:
z el año codificado en un campo de 16 bits,
z el mes codificado en un campo de 8 bits,
z el día codificado en un campo de 8 bits.
El tipo DATE debe introducirse de la manera siguiente: D# <Año> - <Mes> - <Día>
Esta tabla muestra los límites inferior y superior de cada campo:

Campo Límites Comentario


Año [1990,2099] Año
Mes [01,12] Se muestra el cero a la izquierda; puede omitirse en la
entrada de datos.
Día [01,31] Para los meses 01/03/05/07/08/10/12
[01,30] Para los meses 04/06/09/11
[01,29] Para el mes 02 (años bisiestos)
[01,28] Para el mes 02 (años no bisiestos)

DATE_AND_TIME
Consulte DT.

Datos globales
Los datos globales permiten el intercambio automático de variables de datos para
la coordinación de las aplicaciones del PLC.

DBCD
Representación de un entero doble con formato doble BCD.
El formato BCD (“Binary Coded Decimal”) se utiliza para representar los números
decimales comprendidos entre 0 y 9 mediante un grupo de cuatro bits.
En este formato, los cuatro bits utilizados para codificar los números decimales
disponen de un rango de combinaciones que no se utilizan.
Ejemplo de la codificación DBCD:
z El número 78.993.016
z se codifica así: 0111 1000 1001 1001 0011 0000 0001 0110

448 33002530 05/2010


Glosario

DDT
DDT es la forma abreviada de «Derived Data Type» (tipo de datos derivados).
Un tipo de datos derivados es un conjunto de elementos del mismo tipo (ARRAY) o
de distintos tipos (estructura).

DFB
DFB es la forma abreviada de «Derived Function Block» (bloque de funciones
derivado).
Los tipos DFB son bloques de funciones programables por el usuario en lenguaje
ST, IL, LD o FBD.
El uso de estos tipos DFB en una aplicación permite:
z simplificar la concepción y la entrada del programa;
z aumentar la legibilidad del programa;
z facilitar su depuración y
z reducir el volumen de código generado.

Diagrama de bloques de funciones


Véase FBD.

DINT
DINT es la forma abreviada de «Double INTeger» (entero doble) (codificado en 32
bits).
Los límites inferior y superior figuran a continuación: de -(2 elevado a 31) a (2
elevado a 31) - 1.
Ejemplo:
-2.147.483.648, 2.147.483.647, 16#FFFFFFFF.

DT
DT es la forma abreviada de «Date and Time» (fecha y hora).
El tipo DT, codificado en BCD en un formato de 64 bits, contiene esta información:
z el año codificado en un campo de 16 bits,
z el mes codificado en un campo de 8 bits,
z el día codificado en un campo de 8 bits,
z la hora codificada en un campo de 8 bits,
z los minutos codificados en un campo de 8 bits,
z los segundos codificados en un campo de 8 bits.
NOTA: No se utilizan los 8 bits menos significativos.

33002530 05/2010 449


Glosario

El tipo DT debe introducirse así:


DT# <Año> - <Mes> - <Día> - <Hora> : <Minutos> : <Segundos>
En esta tabla se muestran los límites inferior y superior de cada campo:

Campo Límites Comentario


Año [1990,2099] Año
Mes [01,12] Se muestra el cero a la izquierda; puede omitirse en
la entrada de datos.
Día [01,31] Para los meses 01/03/05/07/08/10/12
[01,30] Para los meses 04/06/09/11
[01,29] Para el mes 02 (años bisiestos)
[01,28] Para el mes 02 (años no bisiestos)
Hora [00,23] Se muestra el cero a la izquierda; puede omitirse en
la entrada de datos.
Minuto [00,59] Se muestra el cero a la izquierda; puede omitirse en
la entrada de datos.
Segundo [00,59] Se muestra el cero a la izquierda; puede omitirse en
la entrada de datos.

DWORD
DWORD es la forma abreviada de «Double Word» (palabra doble).
El tipo DWORD se codifica en un formato de 32 bits.
Esta tabla establece los límites inferior y superior de las bases que pueden
utilizarse:

Base Límite inferior Límite superior


Hexadecimal 16#0 16#FFFFFFFF
Octal 8#0 8#37777777777
Binario 2#0 2#11111111111111111111111111111111

Ejemplos de representación:

Datos Representación en una de las bases


00000000000010101101110011011110 16#ADCDE
00000000000000010000000000000000 8#200000
00000000000010101011110011011110 2#10101011110011011110

450 33002530 05/2010


Glosario

EBOOL
EBOOL es la versión abreviada de «Extended BOOLean» (booleano extendido).
Una variable de tipo EBOOL posee el valor 0 (FALSE) o 1 (TRUE), además de flancos
ascendentes o descendentes y funciones de forzado.
Una variable de tipo EBOOL ocupa un byte de memoria.
El byte se compone de los siguientes elementos:
z un bit del valor,
z un bit del historial (cada vez que cambia el objeto de estado, el valor se copia en
el bit del historial),
z un bit del forzado (igual a 0 si el objeto no se fuerza, igual a 1 si el bit se fuerza).
El valor predeterminado de cada bit es 0 (FALSE).

EF
EF es la forma abreviada de «Elementary Function» (función elemental).
Se trata de un bloque, utilizado en un programa, que realiza una función de software
predefinida.
Una función no dispone de información sobre el estado interno. Varias llamadas de
la misma función con los mismos parámetros de entrada mostrarán los mismos
valores de salida. Encontrará información sobre la forma gráfica de la llamada de la
función en el «[bloque funcional (instancia)]». Al contrario que las llamadas de
bloques de funciones, las llamadas de función constan únicamente de una salida a
la que no se ha asignado un nombre y cuyo nombre coincide con el de la función.
En FBD, cada llamada se indica mediante un [número] único a través del bloque
gráfico. Este número se genera automáticamente y no puede modificarse.
Coloque y configure estas funciones en el programa para ejecutar su aplicación.
También puede desarrollar otras funciones mediante el kit de desarrollo de SDKC.

EFB
EFB es la forma abreviada de «Elementary Function Block» (bloque de funciones
elementales).
Se trata de un bloque, utilizado en un programa, que realiza una función lógica
predefinida.
Los EFB cuentan con estados y parámetros internos. Aunque las entradas sean
idénticas, los valores de las salidas pueden ser diferentes. Por ejemplo, un contador
dispone de una salida que indica que se ha alcanzado el valor de preselección.
Esta salida se establece en 1 cuando el valor actual coincide con el valor de
preselección.

33002530 05/2010 451


Glosario

EN
EN significa «ENable» (habilitar); se trata de una entrada de bloque opcional.
Cuando la entrada EN está habilitada, se establece automáticamente una salida
ENO.
Si EN = 0, el bloque no está habilitado, su programa interno no se ejecuta y ENO se
establece en 0.
Si EN = 1, se ejecuta el programa interno del bloque y ENO se establece en 1. Si se
produce un error, ENO se establece en 0.
Si la entrada EN no está conectada, se establece automáticamente en 1.

ENO
ENO significa «Error NOtification» (notificación de error); se trata de la salida
asociada a la entrada opcional EN.
Si ENO se establece en 0 (porque EN = 0 o en caso de que se produzca un error de
ejecución):
z el estado de las salidas de bloques de funciones permanece idéntico a aquél en
el que estaban durante el último ciclo de exploración ejecutado correctamente;
z la(s) salida(s) de funciones, así como los procedimientos, se establecen en 0.

Exploración de E/S
La exploración de E/S realiza un sondeo continuo de los módulos de E/S para
recopilar información de diagnóstico, bits de datos, estados y errores. En este
proceso se supervisan las entradas y s