Documente Academic
Documente Profesional
Documente Cultură
EIO0000001477 12/2016
SoMachine Basic
Gua de la biblioteca de funciones
genricas
12/2016
EIO0000001477.07
www.schneider-electric.com
La informacin que se ofrece en esta documentacin contiene descripciones de carcter general
y/o caractersticas tcnicas sobre el rendimiento de los productos incluidos en ella. La presente
documentacin no tiene como objeto sustituir dichos productos para aplicaciones de usuario
especficas, ni debe emplearse para determinar su idoneidad o fiabilidad. Los usuarios o
integradores tienen la responsabilidad de llevar a cabo un anlisis de riesgos adecuado y
completo, as como la evaluacin y las pruebas de los productos en relacin con la aplicacin o el
uso de dichos productos en cuestin. Ni Schneider Electric ni ninguna de sus filiales o asociados
asumirn responsabilidad alguna por el uso inapropiado de la informacin contenida en este
documento. Si tiene sugerencias de mejoras o modificaciones o ha hallado errores en esta
publicacin, 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 electrnicos o mecnicos, incluida la fotocopia, sin el permiso expreso y por escrito de
Schneider Electric.
Al instalar y utilizar este producto es necesario tener en cuenta todas las regulaciones sobre
seguridad correspondientes, ya sean regionales, locales o estatales. Por razones de seguridad y
para garantizar que se siguen los consejos de la documentacin del sistema, las reparaciones solo
podr realizarlas el fabricante.
Cuando se utilicen dispositivos para aplicaciones con requisitos tcnicos de seguridad, siga las
instrucciones pertinentes.
Si con nuestros productos de hardware no se utiliza el software de Schneider Electric u otro
software aprobado, pueden producirse lesiones, daos o un funcionamiento incorrecto del equipo.
Si no se tiene en cuenta esta informacin, se pueden causar daos personales o en el equipo.
2016 Schneider Electric. Reservados todos los derechos.
2 EIO0000001477 12/2016
Tabla de materias
Informacin de seguridad . . . . . . . . . . . . . . . . . . . . . . . . 9
Acerca de este libro . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Captulo 1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Cmo utilizar los ejemplos de cdigo fuente . . . . . . . . . . . . . . . . . . . . 18
Bloques de operacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Bloques de comparacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Captulo 2 Objetos de lenguaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Objetos de bit de memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Objetos de E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Objetos de palabra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Objetos de coma flotante y de palabra doble . . . . . . . . . . . . . . . . . . . 37
Objetos estructurados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Objetos indexados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Objetos de bloques de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Captulo 3 Instrucciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.1 Procesamiento booleano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Instrucciones booleanas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Operadores de carga (LD, LDN, LDR, LDF). . . . . . . . . . . . . . . . . . 54
Operadores de asignacin (ST, STN, R, S) . . . . . . . . . . . . . . . . . . 56
Operadores AND lgicos (AND, ANDN, ANDR, ANDF) . . . . . . . . . . 58
Operadores OR lgicos (OR, ORN, ORR, ORF) . . . . . . . . . . . . . . . . 60
Operadores OR exclusivos (XOR, XORN, XORR, XORF) . . . . . . . . . 62
Operador NOT (N) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Instrucciones de comparacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.2 Procesamiento numrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Introduccin a operaciones numricas . . . . . . . . . . . . . . . . . . . . . . . . 68
Instrucciones de asignacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Asignacin de cadenas de bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Asignacin de palabras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Operadores aritmticos en enteros . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Instrucciones lgicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Instrucciones de desplazamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Instrucciones de conversin de BCD/binario. . . . . . . . . . . . . . . . . . . . 82
Instrucciones de conversin de palabras simples y dobles. . . . . . . . . 84
EIO0000001477 12/2016 3
3.3 Programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Instrucciones END . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Instrucciones NOP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Instrucciones de salto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Instrucciones de subrutina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
3.4 Coma flotante. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Instrucciones aritmticas en objetos de coma flotante . . . . . . . . . . . . 94
Instrucciones trigonomtricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Instrucciones de conversin de ngulos . . . . . . . . . . . . . . . . . . . . . . . 99
Instrucciones de conversin de entero/coma flotante . . . . . . . . . . . . . 100
3.5 ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Instrucciones ROUND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Instrucciones de conversin de ASCII a entero . . . . . . . . . . . . . . . . . . 105
Instrucciones de conversin de entero a ASCII . . . . . . . . . . . . . . . . . . 107
Instrucciones de conversin de ASCII a flotante . . . . . . . . . . . . . . . . . 109
Instrucciones de conversin de flotante a ASCII . . . . . . . . . . . . . . . . . 111
3.6 Operadores de pila. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Instrucciones de pila (MPS, MRD, MPP) . . . . . . . . . . . . . . . . . . . . . . . 113
3.7 Instrucciones sobre tablas de objetos . . . . . . . . . . . . . . . . . . . . . . . . . 115
Asignacin de tablas de palabras, palabras dobles o coma flotante . . 116
Funciones de suma en tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Funciones de comparacin de tablas . . . . . . . . . . . . . . . . . . . . . . . . . 120
Funciones de bsqueda en tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Funciones de bsqueda de valores mximo y mnimo en tablas . . . . 124
Nmero de apariciones de un valor en una tabla . . . . . . . . . . . . . . . . 126
Funciones de desplazamiento circular de tablas . . . . . . . . . . . . . . . . . 127
Funciones de clasificacin en tablas . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Funciones de interpolacin en la tabla de coma flotante (LKUP) . . . . 131
Funciones de MEDIA de los valores de una tabla de coma flotante . . 136
3.8 Instrucciones sobre los objetos de E/S . . . . . . . . . . . . . . . . . . . . . . . . 137
Entrada incrustada digital de lectura instantnea (READ_IMM_IN). . . 138
Salida incrustada digital de escritura instantnea (WRITE_IMM_OUT) 140
Parmetro de bloque de funciones de lectura inmediata (READ_IMM) 142
Parmetro de bloque de funciones de escritura inmediata
(WRITE_IMM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Captulo 4 Objetos de E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
4.1 Contador rpido (%FC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Contador rpido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
4 EIO0000001477 12/2016
4.2 Contador de alta velocidad (%HSC) . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Contador de alta velocidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
4.3 Pulso (%PLS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Pulso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
4.4 Modulacin de ancho de pulsos (%PWM). . . . . . . . . . . . . . . . . . . . . . 149
Modulacin de ancho de pulsos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Captulo 5 Objetos de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Objetos de red . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Captulo 6 Objetos de software . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
6.1 Uso de bloques de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Principios de programacin del bloque de funciones . . . . . . . . . . . . . 155
Aadido de un bloque de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Configuracin de un bloque de funciones . . . . . . . . . . . . . . . . . . . . . . 159
6.2 Temporizador (%TM). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Descripcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Configuracin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
TON: temporizador de retardo de conexin . . . . . . . . . . . . . . . . . . . . 164
TOF: temporizador de retardo de desconexin. . . . . . . . . . . . . . . . . . 167
TP: temporizador de pulso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Ejemplo de programacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
6.3 Contador (%C). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Descripcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
Configuracin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Ejemplo de programacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
6.4 Mensaje (%MSG) e intercambio (EXCH) . . . . . . . . . . . . . . . . . . . . . . 180
Descripcin general. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Descripcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Configuracin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
Ejemplo de programacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Ejemplos de ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Peticiones y ejemplos estndar Modbus . . . . . . . . . . . . . . . . . . . . . . . 196
6.5 Registro LIFO/FIFO (%R) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
Descripcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Configuracin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Funcionamiento del registro LIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Funcionamiento del registro FIFO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Ejemplo de programacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
EIO0000001477 12/2016 5
6.6 Drums (%DR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Descripcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Configuracin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
Ejemplo de programacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
6.7 Registro de bits de desplazamiento (%SBR) . . . . . . . . . . . . . . . . . . . . 222
Descripcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Configuracin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Ejemplo de programacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
6.8 Contador de pasos (%SC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Descripcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Configuracin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Ejemplo de programacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
6.9 Fechadores (%SCH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
Descripcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Programacin y configuracin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
6.10 Reloj de tiempo real (%RTC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Descripcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Configuracin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
6.11 PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Funcin PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
6.12 Pasos de Grafcet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Pasos de Grafcet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Captulo 7 Objetos PTO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
7.1 Motion Task Table (%MT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Motion Task Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
7.2 Salida de tren de pulsos (%PTO). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Salida de tren de pulsos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Captulo 8 Objetos de accionamiento . . . . . . . . . . . . . . . . . . . . . . . . 249
Objetos de accionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
Captulo 9 Objetos de comunicacin . . . . . . . . . . . . . . . . . . . . . . . . . 251
9.1 Leer datos desde un dispositivo remoto (%READ_VAR). . . . . . . . . . . 252
Descripcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Configuracin de la funcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Ejemplo de programacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
9.2 Escritura de datos en un dispositivo Modbus (%WRITE_VAR) . . . . . . 262
Descripcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Configuracin de la funcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
Ejemplo de programacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
6 EIO0000001477 12/2016
9.3 Leer y escribir datos en un dispositivo Modbus
(%WRITE_READ_VAR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Descripcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Configuracin de la funcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Ejemplo de programacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
9.4 Comunicacin en una conexin ASCII (%SEND_RECV_MSG) . . . . . 278
Descripcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Configuracin de la funcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Ejemplo de programacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
9.5 Enviar Recibir SMS (%SEND_RECV_SMS) . . . . . . . . . . . . . . . . . . . . 286
Descripcin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Configuracin de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Captulo 10 Funciones de reloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Funciones de reloj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Marcas de fecha y hora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Ajuste de fecha y hora. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Glosario ......................................... 309
ndice ......................................... 311
EIO0000001477 12/2016 7
8 EIO0000001477 12/2016
Informacin de seguridad
Informacin importante
AVISO
Lea atentamente estas instrucciones y observe el equipo para familiarizarse con el dispositivo
antes de instalarlo, utilizarlo, revisarlo o realizar su mantenimiento. Los mensajes especiales que
se ofrecen a continuacin pueden aparecer a lo largo de la documentacin o en el equipo para
advertir de peligros potenciales, o para ofrecer informacin que aclara o simplifica los distintos
procedimientos.
EIO0000001477 12/2016 9
TENGA EN CUENTA LO SIGUIENTE:
La instalacin, el manejo, las revisiones y el mantenimiento de equipos elctricos debern ser
realizados slo 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
construccin, el funcionamiento y la instalacin de equipos elctricos, y que ha sido formada en
materia de seguridad para reconocer y evitar los riesgos que conllevan tales equipos.
10 EIO0000001477 12/2016
Acerca de este libro
Presentacin
Objeto
En esta gua se describe cmo utilizar bloques de funciones e instrucciones en los programas que
cree con el software SoMachine Basic. Las descripciones se aplican a todos los controladores
lgicos compatibles con SoMachine Basic.
Campo de aplicacin
La informacin de este manual es aplicable slo para SoMachine Basic productos compatibles.
Este documento se ha actualizado para la publicacin de SoMachine Basic V1.5.
Las caractersticas tcnicas de los dispositivos que se describen en este documento tambin se
encuentran online. Para acceder a esta informacin online:
Paso Accin
1 Vaya a la pgina de inicio de Schneider Electric www.schneider-electric.com.
2 En el cuadro Search, escriba la referencia del producto o el nombre del rango de productos.
No incluya espacios en blanco en la referencia ni en el rango de productos.
Para obtener informacin sobre cmo agrupar mdulos similares, utilice los asteriscos (*).
Las caractersticas que se indican en este manual deben coincidir con las que figuran online. De
acuerdo con nuestra poltica de mejoras continuas, es posible que a lo largo del tiempo revisemos
el contenido con el fin de elaborar documentos ms claros y precisos. En caso de que detecte
alguna diferencia entre el manual y la informacin online, utilice esta ltima para su referencia.
EIO0000001477 12/2016 11
Documentos relacionados
Puede descargar estas publicaciones tcnicas y otra informacin tcnica de nuestro sitio
webhttp://www.schneider-electric.com/ww/en/download
12 EIO0000001477 12/2016
Informacin relativa al producto
ADVERTENCIA
PRDIDA DE CONTROL
El diseador del esquema de control debe tener en cuenta las posibles modalidades de fallo
de rutas de control y, para ciertas funciones de control crticas, proporcionar los medios para
lograr un estado seguro durante y despus de un fallo de ruta. Funciones de control crticas
son, por ejemplo, una parada de emergencia y una parada de sobrerrecorrido, un corte de
alimentacin y un reinicio.
Para las funciones de control crticas deben proporcionarse rutas de control separadas o
redundantes.
Las rutas de control del sistema pueden incluir enlaces de comunicacin. Deben tenerse en
cuenta las implicaciones de retardos de transmisin imprevistos o fallos del enlace.
Tenga en cuenta todas las reglamentaciones para la prevencin de accidentes y las
directrices de seguridad locales.1
Cada instalacin de este equipo debe probarse de forma individual y exhaustiva antes de
entrar en servicio.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o dao al
equipo.
1 Para obtener informacin adicional, consulte NEMA ICS 1.1 (ltima edicin), "Safety Guidelines
for the Application, Installation, and Maintenance of Solid State Control" (Directrices de seguridad
para la aplicacin, la instalacin y el mantenimiento del control de estado esttico) y NEMA ICS
7.1 (ltima edicin), "Safety Standards for Construction and Guide for Selection, Installation and
Operation of Adjustable-Speed Drive Systems" (Estndares de seguridad para la construccin y
gua para la seleccin, instalacin y utilizacin de sistemas de unidades de velocidad ajustable) o
su equivalente aplicable a la ubicacin especfica.
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Utilice solo software aprobado por Schneider Electric para este equipo.
Actualice el programa de aplicacin siempre que cambie la configuracin de hardware fsica.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o dao al
equipo.
EIO0000001477 12/2016 13
Terminologa derivada de los estndares
Los trminos tcnicos, smbolos y las descripciones correspondientes del presente manual o que
aparecen en la parte interior o exterior de los propios productos se derivan, por lo general, de los
trminos y las definiciones de estndares internacionales.
En el rea de los sistemas de seguridad funcional, unidades y automatizacin general se incluyen,
pero sin limitarse a ellos, trminos como seguridad, funcin de seguridad, estado de seguridad,
fallo, reinicio tras fallo, avera, funcionamiento incorrecto, error, mensaje de error, peligroso, etc.
Estos estndares incluyen, entre otros:
Estndar Descripcin
EN 61131-2:2007 Controladores programables, parte 2: Requisitos y ensayos de los equipos.
ISO 13849-1:2008 Seguridad de la maquinaria: partes de seguridad de los sistemas de control.
Principios generales del diseo.
EN 61496-1:2013 Seguridad de la maquinaria: equipo de proteccin electrosensible.
Parte 1: Requisitos y ensayos generales.
ISO 12100:2010 Seguridad de las mquinas. Principios generales para el diseo. Evaluacin del
riesgo y reduccin del riesgo
EN 60204-1:2006 Seguridad de las mquinas. Equipo elctrico de las mquinas. Parte 1:
Requisitos generales
EN 1088:2008 Seguridad de la maquinaria. Dispositivos de bloqueo asociados con
ISO 14119:2013 protecciones: principios de diseo y seleccin
ISO 13850:2006 Seguridad de la maquinaria. Parada de emergencia: principios de diseo
EN/IEC 62061:2005 Seguridad de la maquinaria. Seguridad funcional de los sistemas de control
programable de seguridad elctrica y electrnica
IEC 61508-1:2010 Seguridad funcional de sistemas de seguridad programable elctricos y
electrnicos: requisitos generales.
IEC 61508-2:2010 Seguridad funcional de los sistemas de seguridad electrnicos programables
elctricos y electrnicos: requisitos de los sistemas de seguridad electrnicos
programables elctricos y electrnicos.
IEC 61508-3:2010 Seguridad funcional de los sistemas de seguridad electrnicos programables
elctricos y electrnicos: requisitos de software.
IEC 61784-3:2008 Comunicacin digital de datos para la medicin y control: buses de campo de
seguridad funcional.
2006/42/EC Directiva de maquinaria
2014/30/EU Directiva de compatibilidad electromagntica
2014/35/EU Directiva de baja tensin
14 EIO0000001477 12/2016
Adems, los trminos utilizados en este documento se pueden usar de manera tangencial porque
se obtienen de otros estndares como:
Estndar Descripcin
Serie IEC 60034 Mquinas elctricas giratorias
Serie IEC 61800 Accionamientos elctricos de potencia de velocidad variable
Serie IEC 61158 Comunicacin digital de datos para la medicin y control - Bus de campo para
su uso en Sistemas de control
Por ltimo, el trmino zona de funcionamiento se puede utilizar junto con la descripcin de peligros
especficos, y se define como tal para una zona de peligro o zona peligrosa en la Directiva de
maquinaria (2006/42/EC) y ISO 12100:2010.
NOTA: Los estndares mencionados anteriormente podran o no aplicarse a los productos
especficos citados en la presente documentacin. Para obtener ms informacin en relacin con
los diferentes estndares aplicables a los productos descritos en este documento, consulte las
tablas de caractersticas de las referencias de dichos productos.
EIO0000001477 12/2016 15
16 EIO0000001477 12/2016
SoMachine Basic
Introduccin
EIO0000001477 12/2016
Captulo 1
Introduccin
Introduccin
Descripcin general
En este captulo se proporciona informacin sobre cmo utilizar los ejemplos de cdigo fuente y
los bloques que se requieren para ejecutar muchos de los ejemplos de operaciones e
instrucciones de asignacin que se indican en este documento.
EIO0000001477 12/2016 17
Introduccin
Descripcin general
Excepto donde se mencione explcitamente, los ejemplos de cdigo fuente contenidos en este
manual son vlidos para los lenguajes de programacin Diagrama de contactos y Lista de
instrucciones. Puede ser necesario ms de un escaln para un ejemplo completo.
Procedimiento de reversibilidad
Para obtener el cdigo fuente de Diagrama de contactos equivalente:
Paso Accin
1 Seleccione y copie (Ctrl+C) el cdigo fuente del primer escaln del programa de muestra de
este manual.
2
En SoMachine Basic, cree un nuevo escaln haciendo clic en en la barra de
herramientas.
3 En este escaln, haga clic en el botn LD > IL para visualizar el cdigo fuente de Lista de
instrucciones.
4 Seleccione el nmero de lnea 0000, haga clic con el botn derecho del ratn y elija Pegar
instrucciones para pegar el cdigo fuente en el escaln:
NOTA: Recuerde eliminar la instruccin LD de la ltima lnea del escaln si ha pegado las
instrucciones insertando las lneas antes del operador LD predeterminado.
5 Haga clic en el botn IL > LD para visualizar el cdigo fuente de Lista de instrucciones.
6 Repita los pasos previos para cualquiera de los escalones adicionales del programa de
ejemplo.
18 EIO0000001477 12/2016
Introduccin
Ejemplo
Programa Lista de instrucciones:
EIO0000001477 12/2016 19
Introduccin
20 EIO0000001477 12/2016
Introduccin
Bloques de operacin
El Bloque de operacin puede contener varios operandos y niveles de clculo. Por ejemplo:
%MF10 := SIN(%MF12 + 60.0) + COS(%MF13) + %MF10 + 1.2
Para insertar un bloque de operacin en un escaln:
Paso Accin
1
Haga clic en el botn Bloque de operacin en la barra de herramientas.
2 Haga clic en el rea de accin (las ltimas 2 columnas) del escaln para insertar el Bloque de
operacin.
3 Haga doble clic en la lnea de expresin de operacin.
El botn Codificacin inteligente (vase pgina 21) aparece al final de la lnea. Haga clic
en este botn para obtener ayuda sobre la seleccin de una funcin y la sintaxis de la
instruccin.
4 Escriba una operacin de lista de instrucciones vlida o una instruccin de asignacin y pulse
INTRO.
EIO0000001477 12/2016 21
Introduccin
Paso Accin
1 Opcionalmente, filtre la lista por categora de funcin:
Todos los tipos
ASCII
Coma flotante
Objetos de E/S
Coma flotante
Procesamiento numrico
Tabla
PID
22 EIO0000001477 12/2016
Introduccin
EIO0000001477 12/2016 23
Introduccin
Bloques de comparacin
Paso Accin
1
24 EIO0000001477 12/2016
SoMachine Basic
Objetos de lenguaje
EIO0000001477 12/2016
Captulo 2
Objetos de lenguaje
Objetos de lenguaje
EIO0000001477 12/2016 25
Objetos de lenguaje
Objetos
Descripcin general
En SoMachine Basic, el trmino objeto se utiliza para representar un rea de la memoria del
controlador lgico reservada para que la utilice una aplicacin. Los objetos pueden ser:
Variables de software simples, como bits de memoria y palabras.
Direcciones de las entradas y salidas digitales o analgicas.
Variables internas del controlador, como palabras y bits del sistema.
Funciones predefinidas del sistema o de los bloques de funciones, como temporizadores y
contadores.
La memoria del controlador est preasignada para determinados tipos de objetos, o bien se asigna
automticamente cuando una aplicacin se descarga en el controlador lgico.
Los objetos solo pueden ser direccionados por un programa una vez que se ha asignado memoria.
Los objetos se direccionan mediante el prefijo %. Por ejemplo, %MW12 es la direccin de una
palabra de memoria, %Q0.3 es la direccin de una salida digital incrustada y %TM0 es la direccin
de un bloque de funciones Timer.
26 EIO0000001477 12/2016
Objetos de lenguaje
Introduccin
Los objetos de bit de memoria son variables de software de tipo bit que pueden utilizarse como
operandos y verificarse mediante instrucciones booleanas.
Ejemplos de objetos de bit:
Bits de memoria
Bits de sistema
Bits de pasos
Bits extrados de palabras
Sintaxis
Utilice este formato para dirigir objetos de bits de pasos, de memoria y de sistema:
Para obtener informacin sobre cmo dirigir los bits de E/S, consulte Objetos de E/S
(vase pgina 29).
Para obtener informacin sobre cmo dirigir un bit extrado de una palabra, consulte Extraccin
de un bit de un objeto de palabra (vase pgina 36).
EIO0000001477 12/2016 27
Objetos de lenguaje
Descripcin
En esta tabla se enumeran y se describen los objetos de bits de pasos, de memoria y de sistema
que se utilizan como operandos en las instrucciones booleanas:
Ejemplo
En esta pgina se muestran algunos ejemplos de direccionamiento de objetos de bit:
28 EIO0000001477 12/2016
Objetos de lenguaje
Objetos de E/S
Introduccin
Los objetos de E/S incluyen tanto bits como palabras. Todas las entradas y salidas fsicas estn
asignadas a estos objetos en la memoria interna. Los objetos de bit de E/S pueden utilizarse como
operandos y se pueden comprobar con instrucciones booleanas. Los objetos de palabra de E/S
pueden utilizarse en la mayora de las instrucciones no booleanas como funciones e instrucciones
que contienen operaciones aritmticas.
Ejemplos de objetos de E/S:
Entradas digitales
Salidas digitales
Entradas analgicas
Salidas analgicas
Entradas y salidas de comunicacin
El rango de objetos vlidos oscila entre 0 y el mximo configurado y soportado por su controlador
(consulte la Gua de hardware y la Gua de programacin del Logic Controller).
Sintaxis
En esta imagen se muestra el formato de la direccin de entrada/salida:
EIO0000001477 12/2016 29
Objetos de lenguaje
Descripcin
En esta tabla se enumeran y describen todos los objetos de E/S que se utilizan como operandos
en instrucciones:
30 EIO0000001477 12/2016
Objetos de lenguaje
Ejemplos
En la tabla se presentan varios ejemplos de direccionamiento de E/S:
EIO0000001477 12/2016 31
Objetos de lenguaje
Objetos de palabra
Introduccin
Objetos de palabra direccionados en forma de palabras de 16 bits, almacenados en la memoria
de datos y que pueden contener un valor entero desde -32.768 hasta 32.767 (excepto para el
bloque de funciones del Contador Rpido, que est entre 0 y 65.535).
Ejemplos de objetos de palabra:
Valores inmediatos
Palabras de memoria (%MWi)
Palabras constantes (%KWi)
Palabras de intercambio de E/S (%IWi, %QWi, %IWSi, %QWSi)
Palabras de sistema (%SWi)
Bloques de funciones (datos de tiempo de ejecucin o configuracin)
Sintaxis
Utilice este formato para dirigir palabras de sistema, de memoria y constantes:
32 EIO0000001477 12/2016
Objetos de lenguaje
Formato
El contenido de las palabras o los valores se almacena en la memoria de usuario en cdigo binario
de 16 bits (complemento a dos) mediante la convencin que aparece a continuacin:
En la notacin binaria con signo, el bit 15 se asigna por convencin al signo del valor codificado:
Bit 15 establecido en 0: el contenido de la palabra es un valor positivo.
Bit 15 establecido en 1: el contenido de la palabra es un valor negativo (los valores negativos
estn expresados en lgica de complemento a dos).
Las palabras y los valores inmediatos (consulte la lista de excepciones (vase pgina 34) para
conocer los enteros sin signo) pueden introducirse o recuperarse en el formato siguiente:
Decimal
Mn.: -32.768, Mx.: 32.767 (1.579, por ejemplo)
Hexadecimal
Mn.: 16#0000, Mx.: 16#FFFF (por ejemplo, 16#A536)
Sintaxis alternativa: #A536
Las reglas de formato ASCII son las siguientes:
La funcin siempre lee primero el byte ms significativo.
Todo carcter ASCII que se encuentre fuera del intervalo ['0' - '9'] ([16#30 - 16#39]) se
considera un carcter de fin, excepto en el caso de un signo menos '-' (16#2D) cuando se
coloca como primer carcter.
En caso de desbordamiento (>32.767 o <-32.768), el bit del sistema %S18 (desborde
aritmtico o error detectado) se establece en 1 y se devuelve el valor 32.767 o -32.768.
Si el primer carcter de un operando es un carcter de "fin", se devuelve el valor 0 y el bit
%S18 se establece en 1.
Por ejemplo, "HELLO":
%MW0:="HE"
%MW1:="LL"
%MW2:="O"
EIO0000001477 12/2016 33
Objetos de lenguaje
Lista de excepciones
En esta tabla se enumera el rango de valores de los objetos que son enteros sin signo:
Objeto Valor
%SW De 0 a 65.535
%FC.V y %FC.P De 0 a 65.535
%FC.VD y %FC.PD De 0 a 4.294.967.295
%HSC.V, %HSC.P, %HSC.S0, %HSC.S1, y %HSC.C De 0 a 65.535
%HSC.DV, %HSC.PD, %HSC.S0D, %HSC.S1D, y %HSC.CD De 0 a 4.294.967.295
%HSC.T De 100 a 1.000
%PWM.P De 0 a 32.767
%PWM.R De 0 a 100
%PLS.P De 0 a 32.767
%PLS.N De 0 a 32.767
%PLS.ND De 0 a 2.147.483.647
Aparte de los objetos de la lista de excepciones, el resto de los datos tiene los rangos de valores
siguientes:
Palabras: de -32.768 a 32.767
Palabras dobles: de -2.147.483.648 a 2.147.483.647
Descripcin
En esta tabla se describen los objetos de palabra:
34 EIO0000001477 12/2016
Objetos de lenguaje
El nmero mximo de objetos disponibles est determinado por el controlador lgico. Consulte la
gua de programacin de su controlador lgico para conocer el nmero mximo de objetos.
Ejemplo
En esta tabla se presentan diversos ejemplos de direccionamiento de objetos de palabras:
EIO0000001477 12/2016 35
Objetos de lenguaje
36 EIO0000001477 12/2016
Objetos de lenguaje
Introduccin
Un objeto de coma flotante es un nmero real; es decir, un nmero con una parte fraccionaria (por
ejemplo: 3,4E+38, 2,3 o 1,0).
Una palabra doble consta de 4 bytes almacenados en la memoria de datos y que contienen un
valor complementario a dos comprendido entre -2147483648 y +2147483647.
Las operaciones con coma flotante y palabras dobles no se pueden realizar en todos los
controladores lgicos.
Para obtener informacin sobre compatibilidad, consulte la gua de programacin de su
controlador lgico.
EIO0000001477 12/2016 37
Objetos de lenguaje
Comprobacin de validez
Cuando el resultado no se encuentra dentro del rango vlido, el bit de sistema %S18 se establece
en 1.
La palabra de estado %SW17 indica la causa de un error detectado en una operacin de coma
flotante.
Diferentes bits de la palabra %SW17:
El sistema restablece esta palabra a 0 tras un arranque en fro; tambin la puede restablecer el
programa para volver a utilizarla.
Sintaxis
Utilice este formato para dirigir objetos de coma flotante constantes y de memoria:
Utilice este formato para dirigir objetos de palabra doble constantes y de memoria:
38 EIO0000001477 12/2016
Objetos de lenguaje
NOTA: El nmero mximo de objetos est determinado por el controlador lgico; consulte la gua
de programacin de la plataforma de hardware para obtener ms informacin.
EIO0000001477 12/2016 39
Objetos de lenguaje
Ejemplo
En esta tabla se presentan algunos ejemplos del direccionamiento de objetos de palabra doble y
coma flotante:
Objeto Descripcin
%MF15 Objeto de coma flotante de memoria nmero 15
%KF26 Objeto de coma flotante constante nmero 26
%MD15 Palabra doble de memoria nmero 15
%KD26 Palabra doble constante nmero 26
40 EIO0000001477 12/2016
Objetos de lenguaje
Ejemplo:
%MF0 corresponde a %MW0 y %MW1. %KF43 corresponde a %KW43 y %KW44.
EIO0000001477 12/2016 41
Objetos de lenguaje
Objetos estructurados
Introduccin
Los objetos estructurados son combinaciones de objetos adyacentes. SoMachine Basic admite
los siguientes tipos de objetos estructurados:
Cadenas de bits
Tablas de palabras
Tablas de palabras dobles
Tablas de palabras flotantes
Cadenas de bits
Las cadenas de bits son series de bits de objetos adyacentes del mismo tipo y con una longitud
definida (L). Se hace referencia a las cadenas de bits a partir de los lmites de bytes.
Ejemplo: Cadena de bits %M8:6
NOTA: %M8:6 es vlida (8 es mltiple de 8) mientras que %M10:16 no es vlida (10 no es mltiple
de 8).
Las cadenas de bits pueden utilizarse con la instruccin de asignacin (vase pgina 56).
El nmero de bits est determinado por el controlador lgico, consulte la gua de programacin de
la plataforma de hardware para obtener ms informacin.
42 EIO0000001477 12/2016
Objetos de lenguaje
Tablas de palabras
Una tabla de palabras es una serie de palabras adyacentes del mismo tipo y de una longitud
definida (L; el valor mximo es 255).
Ejemplo: Tabla de palabras %KW10:7
Las tablas de palabras pueden utilizarse con la instruccin de asignacin (vase pgina 56).
EIO0000001477 12/2016 43
Objetos de lenguaje
Las tablas de coma flotante pueden utilizarse con la instruccin de asignacin (vase pgina 56).
44 EIO0000001477 12/2016
Objetos de lenguaje
Objetos indexados
Introduccin
Un objeto indexado es una palabra simple o doble o un objeto de coma flotante con una direccin
de objeto indexado. Existen dos tipos de direccionamiento de objetos:
Direccionamiento directo
Direccionamiento indexado
Direccionamiento directo
La direccin directa de un objeto se establece y se define cuando se escribe un programa.
Ejemplo: %M26 es un bit de memoria con la direccin directa 26.
Direccionamiento indexado
Una direccin indexada de un objeto permite modificar la direccin del objeto mediante el aadido
de un ndice a la direccin directa de ste. El contenido del ndice se aade a la direccin directa
del objeto. El ndice lo define una palabra de memoria %MWi.
Ejemplo: %MW108[%MW2] es una palabra con una direccin compuesta por la direccin directa
108 ms el contenido de la palabra %MW2.
Si la palabra %MW2 tiene un valor de 12, escribir en %MW108[%MW2] es igual que escribir en
%MW120 (108 ms 12).
Los objetos indexados pueden utilizarse con la instruccin de asignacin (vase pgina 69) y en
instrucciones de comparacin (vase pgina 65).
EIO0000001477 12/2016 45
Objetos de lenguaje
Este tipo de direccionamiento permite explorar series de objetos del mismo tipo (como palabras
de memoria y constantes) de manera sucesiva, modificando el contenido del objeto del ndice en
el programa.
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Escriba instrucciones de programacin para comprobar la validez de los operandos que se
van a utilizar en operaciones matemticas.
No utilice operandos de diferentes tipos de datos en operaciones matemticas.
Monitorice siempre los bits del sistema asignados para indicar resultados matemticos no
vlidos.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o dao al
equipo.
46 EIO0000001477 12/2016
Objetos de lenguaje
Introduccin
Un bloque de funciones es un objeto reutilizable que acepta uno o varios valores de entrada y
devuelve uno o varios valores de salida. A un bloque de funciones siempre se le llama a travs de
una instancia (una copia de un bloque de funciones con su propio nombre y variables dedicados).
Todas las instancias de bloque de funciones tienen un estado persistente (salidas y variables
internas) desde una llamada a la otra.
NOTA: Los bloques de funciones (%FC, %HSC, %PLS y %PWM) y la alarma de estado dirigen sus
entradas y salidas (%I0.x y %Q0.x, afectadas en la configuracin) directamente sin relacin con
el ciclo del controlador. El controlador no actualiza los bits de imgenes (%I0.x y %Q0.x). Por lo
tanto, estos bits de entrada y salida no se pueden utilizar directamente en el programa del usuario,
y en una tabla de animacin que utilice estas entradas/salidas no se pueden mostrar los estados
actuales de estas.
Ejemplo
En esta ilustracin se muestra un bloque de funciones StepCounter:
EIO0000001477 12/2016 47
Objetos de lenguaje
Objetos de bit
Los objetos de bit corresponden a las salidas del bloque de funciones. A estos bits se puede
acceder mediante las instrucciones de verificacin booleanas a travs de uno de los mtodos
siguientes:
Directamente (por ejemplo, LD E) si estn cableados al bloque en programacin
(vase pgina 155) reversible.
Especificando el tipo de bloque (por ejemplo, LD %Ci.E).
Objetos de palabra
Los objetos de palabra corresponden a parmetros especificados y a valores, tal como se indica
a continuacin:
Parmetros de configuracin de bloque: se puede acceder a algunos parmetros a travs del
programa (por ejemplo, parmetros de preseleccin), pero a otros no (por ejemplo, base de
tiempo).
Valores actuales: por ejemplo, %Ci.V, el valor actual de conteo.
48 EIO0000001477 12/2016
SoMachine Basic
Instrucciones
EIO0000001477 12/2016
Captulo 3
Instrucciones
Instrucciones
EIO0000001477 12/2016 49
Instrucciones
Seccin 3.1
Procesamiento booleano
Procesamiento booleano
50 EIO0000001477 12/2016
Instrucciones
Instrucciones booleanas
Introduccin
Las instrucciones booleanas pueden compararse con los elementos del lenguaje del diagrama de
contactos. Estas instrucciones se resumen en la tabla siguiente:
El resultado booleano de los elementos de prueba se aplica a los elementos de accin como
muestran las siguientes instrucciones:
Escaln Instruccin
0 LD %I0.0
AND %I0.1
ST %Q0.0
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
EIO0000001477 12/2016 51
Instrucciones
Deteccin de un flanco
En esta tabla se resumen las instrucciones de deteccin de flancos y su temporizacin:
Los objetos slo se actualizan al inicio del siguiente ciclo MAESTRO tras la deteccin del flanco. Si se
produce un cambio de estado en un bit de memoria (p. ej., %M0), este se indica con un retardo en la
exploracin.
NOTA: Los flancos ascendentes y descendentes slo se pueden aplicar con objetos de bit de
entrada (%I) y de bit de memoria (%M).
Escaln Instruccin
0 LDR %I0.0
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
52 EIO0000001477 12/2016
Instrucciones
Escaln Instruccin
0 LDF %I0.0
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
EIO0000001477 12/2016 53
Instrucciones
Introduccin
Los operadores de carga LD, LDN, LDR y LDF corresponden respectivamente a los contactos
abierto, cerrado, de flanco ascendente y de flanco descendente. LDR y LDF slo se utilizan con
entradas del logic controller y palabras de memoria.
Sintaxis
En esta tabla se enumeran los tipos de operadores de carga con los equivalentes del diagrama de
contactos y los operandos permitidos:
LDR %I, %M
LDF
Ejemplos de codificacin
Ejemplos de instrucciones de carga:
Escaln Instruccin
0 LD %I0.1
ST %Q0.3
1 LDN %M0
ST %Q0.2
2 LDR %I0.1
ST %Q0.4
3 LDF %I0.3
ST %Q0.5
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
54 EIO0000001477 12/2016
Instrucciones
Diagrama de tiempos
En el siguiente diagrama se muestran la temporizacin (y el efecto en la salida) del cdigo de los
ejemplos de codificacin:
NOTA: La deteccin de flancos del bit de memoria (%M) se lleva a cabo entre exploraciones de
tareas maestras.
EIO0000001477 12/2016 55
Instrucciones
Introduccin
Los operadores de asignacin ST, STN, S y R corresponden respectivamente a las bobinas directa,
inversa, Set y Reset.
Sintaxis
En esta tabla se enumeran los tipos de operadores de asignacin con los equivalentes del
diagrama de contactos y los operandos permitidos:
Ejemplos de codificacin
Ejemplos de instrucciones de asignacin:
Escaln Instruccin
0 LD %I0.1
ST %Q0.3
STN %Q0.2
S %Q0.4
1 LD %I0.2
R %Q0.4
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
56 EIO0000001477 12/2016
Instrucciones
Diagrama de tiempos
En el siguiente diagrama se muestran la temporizacin (y el efecto en la salida) del cdigo de los
ejemplos de codificacin:
EIO0000001477 12/2016 57
Instrucciones
Introduccin
Los operadores AND realizan una operacin lgica AND entre el operando (o su inverso, flanco
ascendente o flanco descendente) y el resultado booleano de la instruccin anterior.
Sintaxis
En esta tabla se enumeran los tipos de operadores AND con los equivalentes del diagrama de
contactos y los operandos permitidos:
ANDR %I, %M
ANDF
Ejemplos de codificacin
Ejemplos de instrucciones AND lgicas:
Escaln Instruccin
0 LD %I0.1
AND %M1
ST %Q0.3
1 LD %M0
ANDN %I0.0
ST %Q0.2
2 LD %I0.3
ANDR %I0.4
S %Q0.4
3 LD %M3
ANDF %I0.5
S %Q0.5
58 EIO0000001477 12/2016
Instrucciones
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Diagrama de tiempos
En el siguiente diagrama se muestran la temporizacin (y el efecto en la salida) del cdigo de los
ejemplos de codificacin:
EIO0000001477 12/2016 59
Instrucciones
Introduccin
Los operadores OR realizan una operacin lgica OR entre el operando (o su inverso, flanco
ascendente o flanco descendente) y el resultado booleano de la instruccin anterior.
Sintaxis
En esta tabla se enumeran los tipos de operadores OR con los equivalentes del diagrama de
contactos y los operandos permitidos:
ORN
ORR %I, %M
ORF
Ejemplos de codificacin
Ejemplos de instrucciones OR lgicas:
Escaln Instruccin
0 LD %I0.1
OR %M1
ST %Q0.0
1 LD %I0.2
ORN %M2
ST %Q0.1
60 EIO0000001477 12/2016
Instrucciones
Escaln Instruccin
2 LD %M0
ORR %I0.3
S %Q0.5
3 LDF %I0.5
ORF %I0.6
S %Q0.0
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Diagrama de tiempos
En el siguiente diagrama se muestran la temporizacin (y el efecto en la salida) del cdigo de los
ejemplos de codificacin:
EIO0000001477 12/2016 61
Instrucciones
Introduccin
El operador XOR lleva a cabo una operacin de OR exclusivo entre el operando y el resultado
booleano de la instruccin anterior.
El operador XORN lleva a cabo una operacin de OR exclusivo entre el inverso del operando y el
resultado booleano de la instruccin anterior.
El operador XORR lleva a cabo una operacin de OR exclusivo entre el flanco ascendente del
operando y el resultado booleano de la instruccin anterior.
El operador XORF lleva a cabo una operacin de OR exclusivo entre el flanco descendente del
operando y el resultado booleano de la instruccin anterior.
Sintaxis
En la tabla siguiente se enumeran los tipos de operadores XOR y los operandos permitidos:
XORN
XORR %I, %M
XORF
Ejemplos de codificacin
En caso de utilizar la instruccin XOR:
Escaln Instruccin
0 LD %I0.1
XOR %M1
ST %Q0.3
62 EIO0000001477 12/2016
Instrucciones
Escaln Instruccin
0 LD %I0.1
ANDN %M1
OR( %M1
ANDN %I0.1
)
ST %Q0.3
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Diagrama de tiempos
En el siguiente diagrama se muestran la temporizacin (y el efecto en la salida) del cdigo de los
ejemplos de codificacin:
Casos especiales
No inserte:
Contactos XOR en la primera posicin de un escaln.
Contactos XOR de forma paralela con otros elementos del diagrama de contactos (consulte el
ejemplo siguiente).
Tal como se muestra en el siguiente ejemplo, la insercin de un elemento de forma paralela con
el contacto XOR generar un error detectado de validacin:
EIO0000001477 12/2016 63
Instrucciones
Introduccin
El operador NOT (N) tiene un operando implcito: el resultado almacenado en el acumulador
booleano. NOT niega el valor del acumulador.
Sintaxis
En esta tabla se muestra el operador N:
Ejemplos de codificacin
Ejemplo de una instruccin NOT:
Escaln Instruccin
0 LD %I0.1
N
ST %Q0.0
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Diagrama de tiempos
En el siguiente diagrama se muestran la temporizacin (y el efecto en la salida) del cdigo de los
ejemplos de codificacin:
64 EIO0000001477 12/2016
Instrucciones
Instrucciones de comparacin
Introduccin
Los operadores de comparacin se utilizan para comparar 2 operandos.
En esta tabla se enumeran los tipos de operadores de comparacin:
Operador Funcin
> Comprueba si Op1 es mayor que Op2
>= Comprueba si Op1 es mayor o igual que Op2
< Comprueba si Op1 es menor que Op2
<= Comprueba si Op1 es menor o igual que Op2
= Comprueba si Op1 es igual que Op2
<> Comprueba si Op1 es distinto de Op2
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar expresiones de
comparacin de la lista de instrucciones (vase pgina 24) en los escalones del diagrama de
contactos utilizando un elemento grfico de Bloque de comparacin.
Sintaxis de las instrucciones de comparacin:
Operador Sintaxis
>, >=, <, <=, =, <> LD [Op1 operador Op2]
AND [Op1 operador Op2]
OR [Op1 operador Op2]
EIO0000001477 12/2016 65
Instrucciones
Ejemplos de codificacin
La comparacin se ejecuta entre corchetes siguiendo las instrucciones LDAND y OR. El resultado
es 1 cuando la comparacin solicitada es verdadera.
Ejemplos de instrucciones de comparacin:
Escaln Instruccin
0 LD %I0.2
AND [%MW10>100]
ST %Q0.3
1 LD %M0
AND [%MW20<%KW35]
ST %Q0.4
2 LD %I0.2
OR [%MF30>=%MF40]
ST %Q0.5
Escaln Instruccin
0 LD %M0
AND( [%MF20>10.0]
OR %I0.0
)
ST %Q0.1
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
66 EIO0000001477 12/2016
Instrucciones
Seccin 3.2
Procesamiento numrico
Procesamiento numrico
EIO0000001477 12/2016 67
Instrucciones
Presentacin
Normalmente, las instrucciones numricas se aplican a palabras de 16 bits y a palabras dobles de
32 bits. Se escriben entre corchetes. Si el resultado de la operacin lgica anterior era verdadero
(acumulador booleano = 1), se ejecuta la instruccin numrica. Si el resultado de la operacin
lgica anterior era falso (acumulador booleano = 0), la instruccin numrica no se ejecuta y el
operando permanece intacto.
68 EIO0000001477 12/2016
Instrucciones
Instrucciones de asignacin
Introduccin
Las instrucciones de asignacin se utilizan para cargar el Op2 (operando 2) en el Op1 (operando
1).
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Sintaxis de las instrucciones de asignacin:
Operador Sintaxis
:= [Op1 := Op2]
Op1 toma el valor de Op2
EIO0000001477 12/2016 69
Instrucciones
Introduccin
Las operaciones se pueden realizar en las siguientes cadenas de bits:
Cadena de bits a cadena de bits (Ejemplo 1)
Cadena de bits a palabra (Ejemplo 2) o palabra doble (indexada)
Palabra o palabra doble (indexada) a cadena de bits (Ejemplo 3)
Valor inmediato a cadena de bits
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Sintaxis de las asignaciones de cadenas de bits:
Operador Sintaxis
:= [Op1 := Op2]
Op1 toma el valor de Op2
NOTA: La abreviatura %BLK.x (por ejemplo, %C0.P) se utiliza para describir cualquier palabra de
bloque de funciones.
70 EIO0000001477 12/2016
Instrucciones
Estructura
Ejemplos de asignaciones de cadenas de bits:
Escaln Instruccin
0 LD 1
[%Q0.0:8:=%M64:8]
1 LD %I0.2
[%MW100:=%M0:16]
2 LDR %I0.3
[%MW104:16:=%KW0]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Normas de uso:
Para asignacin de cadena de bits a palabra: los bits de la cadena se transfieren a la palabra
comenzando por la derecha (primer bit de la cadena al bit 0 de la palabra) y los bits de palabra
no implicados en la transferencia (longitud 16) se establecen en 0.
Para asignacin de palabra a cadena de bits: los bits de palabra se transfieren desde la
derecha (bit de palabra 0 al primer bit de la cadena).
EIO0000001477 12/2016 71
Instrucciones
Asignacin de palabras
Introduccin
Las operaciones de asignacin se pueden ejecutar en las palabras y en las palabras dobles
siguientes:
Palabra (indexada) a palabra (2, por ejemplo) (indexada o no)
Palabra doble (indexada) a palabra doble (indexada o no)
Valor entero inmediato a palabra (Ejemplo 3) o palabra doble (indexada o no)
Cadena de bits a palabra o palabra doble
Coma flotante (indexada o no) a coma flotante (indexada o no)
Palabra o palabra doble a cadena de bits
Valor de coma flotante inmediato a coma flotante (indexado o no)
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Sintaxis de asignaciones de palabras:
Operador Sintaxis
:= [Op1 := Op2]
Op1 toma el valor de Op2
NOTA: La abreviatura %BLK.x (por ejemplo, R3.I) se utiliza para describir cualquier palabra del
bloque de funciones. Para las cadenas de bits %Mi:L, %Si:L y %Xi:L, la direccin de base del
primer bit de la cadena debe ser un mltiplo de 8 (0, 8, 16, ..., 96, ...).
72 EIO0000001477 12/2016
Instrucciones
Estructura
Ejemplos de asignaciones de palabras:
Escaln Instruccin
0 LD 1
[%SW112:=%MW100]
1 LD %I0.2
[%MW0[%MW10]:=%KW0[%MW20]]
2 LD %I0.3
[%MW10:=100]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
EIO0000001477 12/2016 73
Instrucciones
Introduccin
Los operadores aritmticos se utilizan para realizar operaciones aritmticas entre 2 operandos
enteros o en 1 operando entero.
En esta tabla se enumeran los tipos de operadores aritmticos:
Operador Funcin
+ Sumar dos operandos
- Restar dos operandos
* Multiplicar dos operandos
/ Dividir dos operandos
REM Resto de la divisin de los dos operandos
SQRT Raz cuadrada de un operando
INC Aumentar un operando
DEC Disminuir un operando
ABS Valor absoluto de un operando
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Sintaxis de las instrucciones aritmticas:
Operador Sintaxis
+,-,*,/,REM [Op1: = Op2 operador Op3]
INC, DEC [operador Op1]
SQRT (1) [Op1: = SQRT(Op2)]
ABS (1) [Op1: = ABS(Op2)]
74 EIO0000001477 12/2016
Instrucciones
Estructura
Ejemplos de instrucciones aritmticas:
Escaln Instruccin
0 LD %M0
[%MW0:=%MW10+10]
1 LD %I0.2
[%MW0:=SQRT(%MW10)]
2 LDR %I0.3
[%MW10:=32767]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Casos especiales
Suma
Desborde durante la operacin con palabras
Si el resultado supera la capacidad de la palabra de resultados, el bit %S18 (desborde) se
establece en 1 y el resultado no es significativo (consulte el escaln 1 del ejemplo de aplicacin
(vase pgina 77)). El programa de usuario gestiona el bit %S18.
NOTA: Para las palabras dobles, los lmites son -2.147.483.648 y 2.147.483.647.
Multiplicacin
Desborde durante la operacin
Si el resultado supera la capacidad de la palabra resultado, el bit %S18 (desborde) se establece
en 1 y el resultado no es significativo.
EIO0000001477 12/2016 75
Instrucciones
Divisin/resto
Divisin entre 0
Si el divisor es 0, la divisin es imposible y el bit del sistema %S18 se establece en 1. El
resultado es incorrecto.
Desborde durante la operacin
Si el cociente de la divisin supera la capacidad de la palabra resultado, el bit %S18 se
establece en 1.
Extraccin de la raz cuadrada
Desborde durante la operacin
La extraccin de la raz cuadrada slo se realiza en valores positivos. De este modo, el
resultado siempre es positivo. Si el operando de la raz cuadrada es negativo, el bit de sistema
%S18 se establece en 1 y el resultado es incorrecto.
Algunos de los errores matemticos detectados podran tener un efecto importante en la ejecucin
de su aplicacin. Es responsabilidad del usuario monitorizar estos posibles errores y programar
instrucciones para controlar adecuadamente la ejecucin de su aplicacin en caso de que se
produzcan uno o ms de estos errores. Las consecuencias de cualquiera de estos errores
detectados dependen de la configuracin, el equipo utilizado y las instrucciones del programa que
se hayan ejecutado antes y despus de la deteccin de los posibles errores.
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Escriba instrucciones de programacin para comprobar la validez de los operandos que se
van a utilizar en operaciones matemticas.
No utilice operandos de diferentes tipos de datos en operaciones matemticas.
Monitorice siempre los bits del sistema asignados para indicar resultados matemticos no
vlidos.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o dao al
equipo.
76 EIO0000001477 12/2016
Instrucciones
Ejemplo de aplicacin
Desborde durante la suma:
Escaln Instruccin
0 LD %M0
[%MW0:=%MW1+%MW2]
1 LDN %S18
[%MW10:=%MW0]
2 LD %S18
[%MW10 :=32767]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Si %MW1 = 23.241 y %MW2 = 21.853, el resultado sera (45.094), que no puede expresarse en una
palabra de 16 bits con signo. Por lo tanto, el bit %S18 se establece en 1 y el valor de %MW0 (-20.442)
es incorrecto. En este ejemplo, cuando el resultado es superior a 32.767, su valor se fija en
32.767.
EIO0000001477 12/2016 77
Instrucciones
Instrucciones lgicas
Introduccin
Los operadores lgicos pueden utilizarse para realizar operaciones lgicas entre 2 operandos de
palabra o, en el caso del NOT lgico, en 1 operando de palabra.
En esta tabla se enumeran los diferentes tipos de instrucciones lgicas:
Instruccin Funcin
AND AND (mbito de bit) entre dos operandos
OR OR lgico (mbito de bit) entre dos operandos
XOR OR exclusivo (mbito de bit) entre dos operandos
NOT Complemento lgico (mbito de bit) de un operando
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Sintaxis de las instrucciones lgicas:
Estructura
Ejemplos de instrucciones lgicas:
Escaln Instruccin
0 LD %M0
[%MW0:=%MW10 AND 16#00FF]
1 LD 1
[%MW0:=%KW5 OR %MW10]
2 LD %I0.3
[%MW102:=NOT(%MW100)]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
78 EIO0000001477 12/2016
Instrucciones
Ejemplo de aplicacin
Instruccin AND lgica:
[%MW15:=%MW32 AND %MW12]
Cuando %MW32 = 0001 1011 (binario) (27, decimal) y %MW12 = 0011 0110 (binario) (54, decimal),
el resultado ser %MW15 = 0001 0010 (binario) (18, decimal).
EIO0000001477 12/2016 79
Instrucciones
Instrucciones de desplazamiento
Introduccin
Las instrucciones de desplazamiento mueven los bits de un operando un determinado nmero de
posiciones hacia la izquierda o hacia la derecha.
En esta tabla se enumeran los tipos de instrucciones de desplazamiento:
Instruccin Funcin
Desplazamiento lgico
SHL(op2,n) Desplazamiento lgico de n
posiciones hacia la izquierda.
SHR(op2,n) Desplazamiento lgico de n
posiciones hacia la derecha.
Desplazamiento circular
ROL(op2,n) Desplazamiento circular de n
posiciones hacia la izquierda.
ROR(op2,n) Desplazamiento circular de n
posiciones hacia la derecha.
NOTA: El bit de sistema %S17 indica el valor del ltimo bit expulsado.
80 EIO0000001477 12/2016
Instrucciones
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Sintaxis de las instrucciones de desplazamiento:
Operador Sintaxis
SHL, SHR [Op1: = operador (Op2,n)]
ROL, ROR
n Valor inmediato entero para:
palabra: 1-16, ambos incluidos
palabra doble: 1-32, ambos incluidos
Estructura
Ejemplos de instrucciones de desplazamiento:
Escaln Instruccin
0 LDR %I0.1
[%MW0:=SHL(%MW10,5)]
1 LDR %I0.2
[%MW10:=ROR(%KW9,8)]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
EIO0000001477 12/2016 81
Instrucciones
Introduccin
Las instrucciones de conversin realizan conversiones entre distintas representaciones de
nmeros.
En esta tabla se enumeran los tipos de instrucciones de conversin de BCD/binario:
Instruccin Funcin
BTI Conversin de BCD a binario
ITB Conversin de binario a BCD
Decimal 0 1 2 3 4 5 6 7 8 9
BCD 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001
Ejemplos:
La palabra %MW5 expresa el valor BCD 2450 que corresponde al valor binario: 0010 0100 0101
0000.
La palabra%MW12 expresa el valor decimal 2450 que corresponde al valor binario: 0000 1001
1001 0010.
La palabra %MW5 se convierte en la palabra %MW12 mediante la instruccin BTI.
La palabra %MW12 se convierte en la palabra %MW5 mediante la instruccin ITB.
82 EIO0000001477 12/2016
Instrucciones
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Sintaxis de las instrucciones de conversin BCD/binario:
Operador Sintaxis
BTI, ITB [Op1 := operador (Op2)]
Estructura
Ejemplos de instrucciones de conversin BCD/binario:
Escaln Instruccin
0 LD %M0
[%MW0:=BTI(%MW10)]
1 LD %I0.2
[%MW10:=ITB(%KW9)]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Ejemplo de aplicacin
La instruccin BTI se utiliza para procesar un valor de consigna en las entradas del controlador a
travs de las ruedas codificadoras en BCD.
La instruccin ITB se utiliza para mostrar los valores numricos (por ejemplo, el resultado de un
clculo, el valor actual de un bloque de funciones) en monitores de operacin con codificacin
BCD.
EIO0000001477 12/2016 83
Instrucciones
Introduccin
En esta tabla se describen las instrucciones utilizadas para realizar conversiones entre palabras
simples y dobles:
Instruccin Funcin
LW Extrae el byte menos significativo de una palabra doble a una palabra.
HW Extrae el byte ms significativo de una palabra doble a una palabra.
CONCATW Concatena dos palabras para formar una palabra doble.
DWORD Convierte una palabra de 16 bits en una palabra doble de 32 bits.
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Sintaxis de las instrucciones de conversin de palabras simples y dobles:
Estructura
Ejemplos de instrucciones de conversin de palabras simples y dobles:
Escaln Instruccin
0 LD %M0
[%MW0:=HW(%MD10)]
1 LD %I0.2
[%MD10:=DWORD(%KW9)]
2 LD %I0.3
[%MD11:=CONCATW(%MW10,%MW5)]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
84 EIO0000001477 12/2016
Instrucciones
Seccin 3.3
Programa
Programa
EIO0000001477 12/2016 85
Instrucciones
Instrucciones END
Introduccin
Las instrucciones END definen el final de la ejecucin de una exploracin del programa.
Ejemplos
Ejemplo de una instruccin END incondicional:
Escaln Instruccin
0 LD %M1
ST %Q0.1
1 LD %M2
ST %Q0.2
2 END
Escaln Instruccin
0 LD %I0.0
ST %Q0.0
1 LD %I0.1
ST %Q0.1
2 LD %I0.2
ENDC
3 LD %I0.3
ST %Q0.2
4 END
86 EIO0000001477 12/2016
Instrucciones
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
EIO0000001477 12/2016 87
Instrucciones
Instrucciones NOP
Introduccin
Las instrucciones NOP no realizan ninguna operacin. Utilcelas para "reservar" lneas en un
programa para que pueda insertar instrucciones ms adelante sin modificar los nmeros de lnea.
88 EIO0000001477 12/2016
Instrucciones
Instrucciones de salto
Introduccin
Las instrucciones de salto provocan que la ejecucin de un programa se interrumpa
inmediatamente y que contine a partir de la lnea despus de la lnea del programa que contiene
la etiqueta %Li (i = nmero mximo de mdulos).
Ejemplos
Ejemplos de instrucciones de salto:
Escaln Instruccin
0 LD %M15
JMPC %L8
1 LD [%MW24<%MW12]
ST %Q0.3
JMPC %L12
2 %L8:
LD %M12
AND %M13
ST %M12
JMPC %L12
3 LD %M11
S %Q0.0
4 %L12:
LD %I0.0
ST %Q0.4
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
EIO0000001477 12/2016 89
Instrucciones
Directrices
Las instrucciones de salto no estn permitidas entre parntesis y no deben situarse entre las
instrucciones AND, OR y una instruccin de cierre de parntesis ")".
La etiqueta solo puede situarse antes de una instruccin LD, LDN, LDR, LDF o BLK.
El nmero de etiqueta de la etiqueta %Li debe definirse solo una vez en un programa.
El salto de programa se realiza hacia una lnea de programacin ubicada en sentido
ascendente o descendente. Cuando el salto est ubicado en sentido ascendente, debe
prestarse especial atencin al tiempo de exploracin del programa. Un tiempo de exploracin
prolongado puede provocar la activacin del temporizador de watchdog.
90 EIO0000001477 12/2016
Instrucciones
Instrucciones de subrutina
Introduccin
Las instrucciones de subrutina hacen que un programa lleve a cabo una subrutina y luego vuelva
al programa principal en el punto desde el que se llam a la subrutina.
Procedimiento
Se crea una subrutina en una POU disponible. Consulte POU disponibles (vase SoMachine
Basic, Gua de funcionamiento) para obtener informacin sobre cmo crear una POU disponible
y una subrutina, y cmo definir el nmero de subrutina. Consulte tambin Gestin de POU para
obtener ms informacin sobre cmo gestionar POU con tareas y escalones.
Llamada de una subrutina en tres pasos:
1 La instruccin SRn llama a la subrutina a la que hace referencia un SRn de POU disponible si
el resultado de la instruccin booleana anterior es 1.
2 Se hace referencia a la subrutina mediante una POU disponible SRn, donde n es el nmero de
subrutinas.
3 La instruccin de subrutina debe escribirse independientemente de la POU disponible del
programa principal.
Para obtener ms informacin sobre las subrutinas, consulte Creacin de una tarea peridica
(vase SoMachine Basic, Gua de funcionamiento).
Ejemplos
Ejemplo de instrucciones que contienen una subrutina:
Escaln Instruccin
0 LD %M15
AND %M5
ST %Q0.0
1 LD [%MW24>%MW12]
SR1
2 LD %I0.4
AND %M13
ST %Q0.1
END
Escaln Instruccin
0 (SR1) LD %I0.0
ST %Q0.0
EIO0000001477 12/2016 91
Instrucciones
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Directrices
Una subrutina no debe llamar a otra subrutina. Si se intenta llamar a una subrutina de una POU
disponible, se detectar un error del compilador.
Las instrucciones de subrutina no estn permitidas entre parntesis y no deben situarse entre
las instrucciones AND, OR y una instruccin de cierre de parntesis ")".
Cuando una instruccin de asignacin va seguida directamente de una llamada a una subrutina
en IL, se debe tener cuidado. Esto se debe a que es posible que la subrutina modifique el
contenido del acumulador booleano. Por lo tanto, es posible que tenga un valor de retorno
diferente al que tena antes de la llamada.
92 EIO0000001477 12/2016
Instrucciones
Seccin 3.4
Coma flotante
Coma flotante
EIO0000001477 12/2016 93
Instrucciones
Introduccin
Estas instrucciones permiten efectuar una operacin aritmtica entre 2 operandos de coma
flotante o en 1 operando de coma flotante:
Instruccin Objetivo
+ Suma de dos operandos
- Resta de dos operandos
* Multiplicacin de dos operandos
/ Divisin de dos operandos
LOG Logaritmo de Base 10
LN Logaritmo natural
SQRT Raz cuadrada de un operando
ABS Valor absoluto de un operando
TRUNC Parte entera de un valor de coma flotante
EXP Exponencial natural
EXPT Potencia de un entero por un real
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Operadores y sintaxis de las instrucciones aritmticas en coma flotante:
Operadores Sintaxis
+, - *, / Op1:=Op2 operador Op3
SQRT, ABS, TRUNC, LOG, EXP, LN Op1:=operador (Op2)
EXPT Op1:=operador (Op2,Op3)
94 EIO0000001477 12/2016
Instrucciones
Estructura
Ejemplo de una instruccin aritmtica:
Escaln Instruccin
0 LD %M0
[%MF0:=%MF10+129.7]
1 LD %I0.2
[%MF1:=SQRT(%MF10)]
2 LDR %I0.3
[%MF2:=ABS(%MF20)]
3 LDR %I0.4
[%MF3:=TRUNC(%MF2)]
4 LD %M1
[%MF4:=LOG(%MF10)]
5 LD %I0.5
[%MF5:=LN(%MF20)]
6 LD %I0.0
[%MF6:=EXP(%MF30)]
7 LD %I0.1
[%MF7:=EXPT(%MF40,%MW52)]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Reglas de utilizacin
Las operaciones con valores de coma flotante y enteros no se pueden mezclar directamente.
Las operaciones de conversin (vase pgina 99) llevan a cabo la conversin a uno de los
formatos.
El bit de sistema %S18 se gestiona del mismo modo que las operaciones con enteros
(vase pgina 99); la palabra %SW17 indica la causa del error detectado.
Cuando el operando de la funcin es un nmero no vlido (por ejemplo, logaritmo de un nmero
negativo), produce un resultado indeterminado o infinito y cambia el bit de %S18 a 1. La palabra
%SW17 seala la causa del error detectado.
NOTA: En la instruccin TRUNC, el bit de sistema %S17 no se ve afectado.
EIO0000001477 12/2016 95
Instrucciones
Ejemplo Resultado
TRUNC(3.5) 3
TRUNC(324.18765) 324
TRUNC(927.8904) 927
TRUNC(-7.7) -7
TRUNC(45.678E+20) 2 147 483 647 (palabra doble con signo mximo) (1)
%S18 se establece en 1
TRUNC(-94.56E+13) - 2 147 483 648 (palabra doble con signo mnimo) (1)
%S18 se establece en 1
(1) Este ejemplo se aplica a la instruccin TRUNC cuando se utiliza con %MDi. (Cuando se utiliza con %MFi,
la instruccin TRUNC no tiene desborde y, por lo tanto, carece de lmites mximo/mnimo).
96 EIO0000001477 12/2016
Instrucciones
Instrucciones trigonomtricas
Introduccin
Estas instrucciones permiten realizar operaciones trigonomtricas:
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Operadores, operandos y sintaxis de las instrucciones de operaciones trigonomtricas
Estructura
Ejemplo de instrucciones Trigonometric:
Escaln Instruccin
0 LD %M0
[%MF0:=SIN(%MF10)]
1 LD %I0.0
[%MF1:=TAN(%MF20)]
2 LD %I0.3
[%MF2:=ATAN(%MF30)]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
EIO0000001477 12/2016 97
Instrucciones
Reglas de utilizacin
Cuando el operando de la funcin es un nmero no vlido (por ejemplo, el arco coseno de un
nmero superior a 1), produce un resultado indeterminado o infinito y pone el bit %S18 a 1. La
palabra %SW17 indica la causa del error detectado.
Las funciones SIN/COS/TAN admiten como parmetro un ngulo entre y ,
pero la precisin decrece progresivamente cuando se trata de ngulos que se encuentran fuera
del periodo comprendido entre y , debido a que el mdulo provoca una
imprecisin en el parmetro antes de realizar cualquier operacin.
98 EIO0000001477 12/2016
Instrucciones
Introduccin
Estas instrucciones permiten llevar a cabo operaciones de conversin:
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Operadores, operandos y sintaxis de las instrucciones de conversin
Estructura
Ejemplo de instrucciones de conversin:
Escaln Instruccin
0 LD %M0
[%MF0:=DEG_TO_RAD(%MF10)]
1 LD %M2
[%MF2:=RAD_TO_DEG(%MF20)]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Reglas de utilizacin
El ngulo que se va a convertir debe estar comprendido entre -737.280,0 y +737.280,0 (para
conversiones DEG_TO_RAD) o entre y (para conversiones RAD_TO_DEG).
Para los valores no comprendidos entre estos lmites, el resultado mostrado ser +1.#QNAN, los
bits %S18 y %SW17:X0 se establecen en 1.
EIO0000001477 12/2016 99
Instrucciones
Introduccin
Existen cuatro instrucciones de conversin:
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Operadores y sintaxis (conversin de una palabra entera a flotante):
Operadores Sintaxis
INT_TO_REAL Op1=INT_TO_REAL(Op2)
Op1 Op2
%MFi %MWi,%KWi
Operadores Sintaxis
DINT_TO_REAL Op1=DINT_TO_REAL(Op2)
Op1 Op2
%MFi %MDi,%KDi
Operadores Sintaxis
REAL_TO_INT Op1=operador (Op2)
REAL_TO_DINT
Ejemplo:
Conversin de flotante a palabra entera: 5.978,6 a 5.979
Conversin de flotante a palabra doble entera: -1.235.978,6 a -1.235.979
NOTA: Si durante una conversin de real a entero (o de real a palabra doble entera), el valor
flotante est fuera de los lmites de la palabra (o palabra doble), el bit %S18 se establece en 1.
Estructura
Ejemplo de instruccin de conversin de entero/flotante:
Escaln Instruccin
0 LD 1
[%MF0:=INT_TO_REAL(%MW10)]
1 LD %I0.8
[%MD2:=REAL_TO_DINT(%MF9)]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Precisin de redondeo
La norma IEEE 754 define cuatro modalidades de redondeo para las operaciones con flotantes.
La modalidad utilizada en las siguientes instrucciones es la modalidad "redondear al valor ms
cercano":
"Si los valores ms cercanos que se pueden representar estn a la misma distancia del resultado
terico, el valor suministrado ser aquel cuyo bit menos significativo sea igual a 0".
Es decir, el valor se redondear hacia el nmero par, ya sea superior o inferior.
Por ejemplo:
Redondeo del valor 10,5 a 10.
Redondeo del valor 11,5 a 12.
Seccin 3.5
ASCII
ASCII
Instrucciones ROUND
Introduccin
La instruccin ROUND redondea una representacin de coma flotante almacenada en una cadena
ASCII.
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Para la instruccin ROUND, utilice la sintaxis: Op1 := ROUND( Op2,Op3 ).
Por ejemplo:
[%MW0:7:=ROUND(%MW8,4)]
Parmetros
En esta tabla se describen los parmetros de la funcin ROUND:
Parmetros Descripcin
Op1 %MW en el que se almacena el resultado.
Op2 %MW que contiene la coma flotante que se va a redondear.
Op3 Nmero de dgitos significativos necesarios en el redondeo.
Entero de 1 a 8
Reglas de utilizacin
Las reglas de la instruccin ROUND son las siguientes:
El operando se redondea siempre hacia abajo.
El carcter de fin de la cadena del operando se utiliza como carcter de fin de la cadena de
resultado.
El carcter de fin puede ser cualquier carcter ASCII que no se encuentre en el intervalo [0 - 9]
([16#30 - 16#39]), excepto:
punto '.' (16#2E),
menos '-' (16#2D),
ms '+' (16#2B),
EXP 'e' o 'E' (16#65 o 16#45).
Casos especiales
El software comprueba la sintaxis. Los ejemplos siguientes produciran errores de sintaxis:
Ejemplo de aplicacin
En esta tabla se muestran ejemplos de la instruccin ROUND:
Ejemplo Resultado
ROUND("987654321", 5) "987650000"
ROUND("-11.1", 8) "-11.1"
ROUND("NAN") "NAN"
Introduccin
Las instrucciones de conversin de ASCII a entero convierten una cadena ASCII en un valor
entero.
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Para las instrucciones de conversin ASCII a entero, use la sintaxis siguiente:
Op1 := ASCII_TO_INT( Op2 )
Por ejemplo:
[%MW0:=ASCII_TO_INT(%MW8)]
Parmetros
En esta tabla se describen los parmetros de la funcin de conversin de ASCII a entero:
Parmetros Descripcin
Op1 %MW en el que se almacena el resultado
Op2 %MW o %KW
Reglas de utilizacin
Las reglas de las instrucciones de conversin de ASCII a entero son las siguientes:
Op2 debe estar entre -32.768 y 32.767.
La funcin siempre lee primero el byte ms significativo.
Todo carcter ASCII que se encuentre fuera del rango [0 - 9] ([16#30 - 16#39]) se considera un
carcter de fin, excepto en el caso de un signo menos '-' (16#2D) cuando se coloca como primer
carcter.
En caso de desbordamiento (>32.767 o <-32.768), el bit de sistema %S18 (desborde aritmtico
o error detectado) se establece en 1 y se devuelve el valor 32.767 o -32.768.
Si el primer carcter del operando es un carcter "separador", se devuelve el valor 0 y el bit
%S18 se establece en 1.
No se admite la notacin cientfica.
Ejemplo de aplicacin
Tenga en cuenta que los siguientes datos ASCII se han almacenado entre %MW10 y %MW13:
Ejemplo Resultado
%MW20 := ASCII_TO_INT(%MW10) %MW20 = 29318
%MW20 := ASCII_TO_INT(%MW12) %MW20 = 8
%MW20 := ASCII_TO_INT(%MW13) %MW20 = 0 y %S18 se establece en 1
Introduccin
Las instrucciones de conversin de entero a ASCII convierten un entero en un valor de cadena
ASCII.
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Para las instrucciones de conversin de entero a ASCII, use la sintaxis siguiente:
Op1 := INT_TO_ASCII( Op2 )
Por ejemplo:
[%MW0:4:=INT_TO_ASCII(%MW8)]
Parmetros
En esta tabla se describen los parmetros de la funcin de conversin de entero a ASCII:
Parmetros Descripcin
Op1 %MW en el que se almacena el resultado.
Op2 %MW, %KW, %SW, %IW, %QW o cualquier PALABRA.
(No se aceptan valores inmediatos)
Reglas de utilizacin
Las reglas de conversin de entero a ASCII son las siguientes:
Op2 debe estar entre -32.768 y 32.767.
La funcin siempre escribe primero el byte ms significativo.
El carcter de fin es "Enter" (ASCII 13).
La funcin determina automticamente cuntos %MWs se deben llenar con valores ASCII (de 1
a 4).
Errores de sintaxis
El software comprueba la sintaxis. Los ejemplos siguientes produciran errores de sintaxis:
Ejemplo de aplicacin
Para la instruccin MW10:4 := INT_TO_ASCII(%MW1):
Si... Entonces...
Valor entero Valor hexadecimal Valor ASCII
%MW10 = 16#3231 2, 1
%MW1 = 123
%MW11 = 16#0D33 3
%MW10 = 16#3534 5, 4
%MW1 = 45
%MW11 = 16#000D 'enter'
%MW1 = 7 %MW10 = 16#0D37 'enter', 7
%MW10 = 16#3145 1, '-'
%MW11 = 16#3332 3, 2
%MW1 = -12369
%MW10 = 16#3936 9, 6
%MW11 = 16#000D 'enter'
Introduccin
Las instrucciones de conversin de ASCII a flotante convierten una cadena ASCII en un valor de
coma flotante.
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Para las instrucciones de conversin de ASCII a flotante, utilice la sintaxis siguiente:
Op1 := ASCII_TO_FLOAT( Op2 ).
Por ejemplo:
[%MF0:=ASCII_TO_FLOAT(%MW8)]
Parmetros
En esta tabla se describen los parmetros de la funcin de conversin de ASCII a flotante:
Parmetros Descripcin
Op1 %MF
Op2 %MW or %KW
Reglas de utilizacin
Las reglas de conversin de ASCII a flotante son las siguientes:
La funcin siempre lee primero el byte ms significativo.
Todo carcter ASCII que no se encuentre en el intervalo [0 - 9] ([16#30 - 16#39]) se considera
un carcter de "fin", excepto:
punto '.' (16#2E),
menos '-' (16#2D),
ms '+' (16#2B),
EXP 'e' o 'E' (16#65 o 16#45).
El formato de la cadena ASCII puede estar en notacin cientfica (es decir, -2,34567e+13) o
decimal (es decir, 9.826,3457).
En caso de desborde (el resultado del clculo es >3,402824E+38 o <-3,402824E+38):
El bit de sistema %S18 (desborde aritmtico o error detectado) se establece en 1.
%SW17:X3 se establece en 1.
Se devuelve el valor +/- 1.#INF (+ o valor infinito).
Ejemplo de aplicacin
Tenga en cuenta que los siguientes datos ASCII se han almacenado entre %MW10 y %MW14:
Ejemplo Resultado
%MF20 := ASCII_TO_FLOAT(%MW10) %MF20 = -826,5
%MF20 := ASCII_TO_FLOAT(%MW11) %MF20 = 1.#QNAN
%MF20 := ASCII_TO_FLOAT(%MW12) %MF20 = 6500.0
%MF20 := ASCII_TO_FLOAT(%MW13) %MF20 = 1.#QNAN
%MF20 := ASCII_TO_FLOAT(%MW14) %MF20 = 2.0
Introduccin
Las instrucciones de conversin de flotante a ASCII convierten un valor de coma flotante en un
valor de cadena ASCII.
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Para las instrucciones de conversin de flotante a ASCII, use la sintaxis siguiente:
Op1 := FLOAT_TO_ASCII(Op2).
Por ejemplo:
[%MW0:7:=FLOAT_TO_ASCII(%MF8)]
Parmetros
En esta tabla se describen los parmetros de la funcin de conversin de flotante a ASCII:
Parmetro Descripcin
Op1 %MW
Op2 %MF or %KF
Reglas de utilizacin
Las reglas de conversin de flotante a ASCII son las siguientes:
La funcin siempre escribe primero el byte ms significativo.
La representacin se realiza mediante notacin cientfica convencional.
Los resultados "Infinito" o "No es un nmero" devuelven la cadena "NAN".
El carcter de fin es "Enter" (ASCII 13).
La funcin determina automticamente cuntos %MW se deben llenar con valores ASCII.
La precisin de conversin es de 6 cifras.
No se admite la notacin cientfica.
Errores de sintaxis
El software comprueba la sintaxis. Los ejemplos siguientes produciran errores de sintaxis:
Ejemplo de aplicacin
Para la instruccin %MW10:7 := FLOAT_TO_ASCII(%MF1):
Seccin 3.6
Operadores de pila
Operadores de pila
Introduccin
Las instrucciones de pila procesan el acceso a las bobinas. Las instrucciones MPS, MRD y MPP
utilizan un rea de almacenamiento temporal denominada "pila" que puede almacenar hasta 32
expresiones booleanas.
NOTA: Estas instrucciones no se pueden utilizar en una expresin entre parntesis.
Sintaxis
En esta tabla se describen las tres instrucciones de pila:
NOTA: Para cada instruccin MPS (introducir) debe mostrarse una instruccin MPP (extraer)
coincidente en el mismo escaln.
Funcionamiento
En este diagrama se muestra cmo funcionan las instrucciones de pila:
Ejemplo de aplicacin
Ejemplo de uso de instrucciones de pila:
Escaln Instruccin
0 LD %I0.0
AND %M1
MPS
AND %I0.1
ST %Q0.0
MRD
AND %I0.2
ST %Q0.1
MRD
AND %I0.3
ST %Q0.2
MPP
AND %I0.4
ST %Q0.3
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Seccin 3.7
Instrucciones sobre tablas de objetos
Introduccin
Las operaciones de asignacin se pueden ejecutar en las siguientes tablas de objetos:
Valor entero inmediato a la tabla de palabras (vea el escaln 0 de la estructura de ejemplo
(vase pgina 117)) o a la tabla de palabras dobles
Palabra a tabla de palabras (vea el escaln 1 de la estructura de ejemplo (vase pgina 117))
Tabla de palabras a tabla de palabras (vea el escaln 2 de la estructura de ejemplo
(vase pgina 117))
La longitud de la tabla (L) debe ser igual para ambas tablas.
Palabra doble a tabla de palabras dobles
Tabla de palabras dobles a tabla de palabras dobles
La longitud de la tabla (L) debe ser igual para ambas tablas.
Valor de coma flotante inmediato a tabla de coma flotante
Coma flotante a tabla de coma flotante
Tabla de coma flotante a tabla de coma flotante
La longitud de la tabla (L) debe ser igual para ambas tablas.
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Sintaxis de las asignaciones de tablas de palabras, palabras dobles y coma flotante:
Operador Sintaxis
:= [Op1 := Op2]
Op1 toma el valor de Op2
NOTA: La abreviatura %BLK.x (por ejemplo, R3.I) se utiliza para describir cualquier palabra del
bloque de funciones.
Estructura
Ejemplos de asignaciones de tablas de palabras:
Escaln Instruccin
0 LD 1
[%MW0:10:=100]
1 LD %I0.0
[%MW0:10:=%MW11]
2 LDR %I0.3
[%MW10:20:=%KW20:20]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Introduccin
La funcin SUM_ARR realiza la suma de todos los elementos de una tabla de objetos:
Si la tabla se compone de palabras dobles, el resultado se presenta en forma de palabra doble.
Si la tabla se compone de palabras flotantes, el resultado se presenta en forma de palabra
flotante.
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Sintaxis de la instruccin de suma en tabla:
Res:=SUM_ARR(Tab)
Parmetros de la instruccin de suma en tabla:
NOTA: Cuando el resultado no se encuentra dentro del rango vlido de formato de palabra doble
segn el operando de la tabla, el bit de sistema %S18 se establece en 1.
Estructura
Ejemplo de funcin de suma:
Escaln Instruccin
0 LD %I0.2
[%MD5:=SUM_ARR(%MD3:1)]
1 LD 1
[%MD5:=SUM_ARR(%KD5:2)]
2 LD 1
[%MF2:=SUM_ARR(%MF8:5)]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Ejemplo de aplicacin
%MD4:=SUM_ARR(%MD30:4)
Donde %MD30= 10, %MD32= 20, %MD34= 30, %MD36= 40
Por tanto, %MD4:= 10 + 20 + 30 + 40
Introduccin
La funcin EQUAL_ARR realiza la comparacin de dos tablas, elemento por elemento.
Si aparece una diferencia, el rango de los primeros elementos diferentes se muestra en forma de
palabra, de lo contrario, el valor mostrado es igual a -1.
La comparacin se realiza en la totalidad de la tabla.
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Sintaxis de la instruccin de comparacin de tablas:
Res:=EQUAL_ARR(Tab1,Tab2)
Parmetros de las instrucciones de comparacin de tablas:
NOTA: Las tablas deben tener la misma longitud y ser del mismo tipo.
Estructura
Ejemplo de funcin de comparacin de tablas:
Escaln Instruccin
0 LD %I0.2
[%MW5:=EQUAL_ARR(%MD20:7,%KD0:7)]
1 LD 1
[%MW0:=EQUAL_ARR(%MD20:7,%KD0:7)]
2 LD 1
[%MF2:=SUM_ARR(%MF8:5)]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Ejemplo de aplicacin
%MW5:=EQUAL_ARR(%MD30:4,%KD0:4)
Comparacin de las 2 tablas:
Introduccin
Se proponen tres funciones de bsqueda:
FIND_EQR: bsqueda de la posicin en una tabla de palabras dobles o de flotantes del primer
elemento igual a un valor determinado.
FIND_GTR: bsqueda de la posicin en una tabla de palabras dobles o de flotantes del primer
elemento mayor que un valor determinado.
FIND_LTR: bsqueda de la posicin en una tabla de palabras dobles o de flotantes del primer
elemento menor que un valor determinado.
El resultado de estas instrucciones es igual al rango del primer elemento encontrado o a -1 si la
bsqueda es infructuosa.
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Sintaxis de las instrucciones de bsqueda en tablas:
Funcin Sintaxis
FIND_EQR Res:=Funcin(Tab,Val)
FIND_GTR
FIND_LTR
Estructura
Ejemplo de funcin de bsqueda en tablas:
Escaln Instruccin
0 LD %I0.2
[%MW5:=FIND_EQR(%MD20:7,%KD0)]
1 LD %I0.3
[%MW6:=FIND_GTR(%MD20:7,%KD0)]
2 LD 1
[%MW7:=FIND_LTR(%MF40:5,%KF4)]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Ejemplo de aplicacin
%MW5:=FIND_EQR(%MD30:4,%KD0)
Bsqueda de la posicin de la primera palabra doble = %KD0=30 en la tabla:
Introduccin
Se proponen dos funciones de bsqueda:
MAX_ARR: bsqueda del valor mximo en una tabla de palabras dobles y de flotantes.
MIN_ARR: bsqueda del valor mnimo en una tabla de palabras dobles y de flotantes.
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Sintaxis de las instrucciones de bsqueda de valores mximos y mnimos en tablas:
Funcin Sintaxis
MAX_ARR Result:=Function(Tab)
MIN_ARR
NOTA: En L se incluyen slo las direcciones que no se superponen durante la bsqueda. Para
obtener ms informacin, consulte Posibilidad de solapamiento entre objetos (vase pgina 40).
Estructura
Ejemplo de funcin de bsqueda en tablas:
Escaln Instruccin
0 LD %I0.2
[%MD0:=MIN_ARR(%MD20:7)]
1 LD 1
[%MF8:=MIN_ARR(%MF40:5)]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Introduccin
Esta funcin OCCUR_ARR realiza una bsqueda en una tabla de palabras dobles o de flotantes del
nmero de elementos iguales a un valor determinado.
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Sintaxis de las instrucciones de bsqueda de valores mximos y mnimos en tablas:
Funcin Sintaxis
OCCUR_ARR Res:=Funcin(Tab,Val)
Estructura
Ejemplo de nmero de apariciones:
Escaln Instruccin
0 LD %I0.3
[%MW5:=OCCUR_ARR(%MF20:7,%KF0)]
1 LD %I0.2
[%MW5:=OCCUR_ARR(%MD20:7,%MD1)]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Introduccin
Se proponen dos funciones de desplazamiento:
ROL_ARR: realiza el desplazamiento circular de n posiciones desde arriba hacia abajo de los
elementos de la tabla de palabras flotantes.
Ilustracin de las funciones de ROL_ARR
ROR_ARR: realiza el desplazamiento circular de n posiciones desde abajo hacia arriba de los
elementos de la tabla de palabras flotantes.
Ilustracin de las funciones de ROR_ARR
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Sintaxis de las instrucciones de desplazamiento circular en tablas de palabras dobles o de
flotantes ROL_ARR y ROR_ARR
Funcin Sintaxis
ROL_ARR Funcin(n,Tab)
ROR_ARR
Estructura
Ejemplo de funcin de desplazamiento circular en tablas:
Escaln Instruccin
0 LD %I0.2
[ROL_ARR(%KW0,%MD20:7)]
1 LD %I0.3
[ROR_ARR(2,%MD20:7)]
2 LD %I0.4
[ROR_ARR(2,%MF40:5)]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Introduccin
La funcin de clasificacin SORT_ARR realiza las clasificaciones en orden ascendente o
descendente de los elementos de una tabla de palabras dobles o de flotantes y almacena el
resultado en la misma tabla.
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Sintaxis de las funciones de clasificacin en tablas:
Funcin Sintaxis
SORT_ARR Funcin(direccin,Tab)
Estructura
Ejemplo de funcin de clasificacin en tablas:
Escaln Instruccin
0 LD %I0.1
[SORT_ARR(%MW20,%MF0:6)]
1 LD %I0.2
[SORT_ARR(%MW20,%MF0:6)]
2 LD %I0.3
[SORT_ARR(0,%MF40:8)]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Introduccin
La funcin LKUP se usa para interpolar un conjunto de datos de coma flotante de X con respecto
a Y para un valor dado de X.
(Ecuacin 1)
para , donde ;
NOTA: Si dos valores consecutivos Xi cualesquiera son iguales (Xi=Xi+1=X), la ecuacin (1)
resulta en una excepcin no vlida. En este caso, para solucionar esta excepcin se usa el
algoritmo siguiente en lugar de la ecuacin (1):
(Ecuacin 2)
para , donde .
Representacin grfica
Este grfico muestra la regla de interpolacin lineal descrita anteriormente:
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
La funcin LKUP usa tres operandos, dos de los cuales son atributos de funcin, tal como se
describe en esta tabla:
Definicin de Op1
Op1 es la palabra de memoria que contiene la variable de salida de la funcin de interpolacin.
En funcin del valor de Op1, puede saber si la interpolacin se ha realizado correctamente o no,
y qu es lo que puede haber causado un fallo, como se explica en esta tabla:
NOTA: Op1 no contiene el valor (Y) de interpolacin calculado. Para un valor dado (X), el resultado
de la interpolacin (Y) est contenido en %MF2 de la matriz Op3 (vase pgina 133).
Definicin de Op2
Op2 es la variable de coma flotante (%MF0 de la matriz de coma flotante de Op3) que contiene el
valor (X) definido por el usuario para el que se va a calcular el valor (Y) interpolado.
Definicin de Op3
Op3 establece el tamao (Op3 / 2) de la matriz de coma flotante en la que se almacenan los pares
de datos (Xi,Yi).
Los datos Xi e Yi se almacenan en objetos de coma flotante con ndices pares, empezando por
%MF4 (observe que los objetos de coma flotante %MF0 y %MF2 se reservan para la consigna del
usuario X y el valor Y interpolado, respectivamente).
Dada una matriz de (m) pares de datos (Xi,Yi), el ndice superior (u) de la matriz de coma flotante
(%MFu) se establece mediante las relaciones siguientes:
(Ecuacin 3)
(Ecuacin 4)
La matriz de coma flotante Op3 (%MFi) presenta una estructura similar a la de este ejemplo (donde
Op3=8):
NOTA: Como resultado de la estructura de la matriz de coma flotante anterior, Op3 debe cumplir
los dos requisitos siguientes; de lo contrario, se activar un error en la funcin LKUP:
Op3 es un nmero par y
Op3 6 (ya que debe haber, al menos, dos puntos de datos para que pueda haber
interpolacin lineal).
Estructura
Las operaciones de interpolacin se realizan de la forma siguiente:
Escaln Instruccin
0 LD %I0.2
[%MW20:=LKUP(%MF0,%KW1)]
1 LD %I0.3
[%MW22:=LKUP(%MF0,10)]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Ejemplo de aplicacin
Uso de una funcin de interpolacin LKUP:
[%MW20:=LKUP(%MF0,10)]
En este ejemplo:
%MW20 es Op1 (la variable de salida).
%MF0 es el valor (X) definido por el usuario cuyo valor (Y) correspondiente se debe calcular
mediante interpolacin lineal.
%MF2 almacena el valor (Y) calculado resultante de la interpolacin lineal.
10 es Op3 (calculado mediante la ecuacin 3 explicada anteriormente). Establece el tamao de
la matriz de coma flotante. El elemento ms alto de la serie %MFu, donde u=18 se calcula
mediante la ecuacin 4 descrita anteriormente.
Introduccin
La funcin MEAN permite calcular la media de un nmero determinado de valores de una tabla de
coma flotante.
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Sintaxis de la funcin de clculo de la media de una tabla de coma flotante:
Funcin Sintaxis
MEAN Resultado=Funcin(Op1)
Estructura
Ejemplo de funcin de media:
Escaln Instruccin
0 LD %I3.2
[%MF0:=MEAN(%MF10:5)]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Seccin 3.8
Instrucciones sobre los objetos de E/S
Introduccin
La instruccin READ_IMM_IN lee una entrada incrustada digital durante la ejecucin de una tarea
y actualiza la imagen de entrada inmediatamente. As se evita tener que esperar el siguiente
tiempo de ciclo de tarea para actualizar la imagen de entrada.
NOTA: Esta instruccin slo es vlida para las entradas incrustadas digitales (salidas integradas
en el Logic Controller).
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Para la instruccin READ_IMM_IN, utilice la sintaxis siguiente:
Op1 := READ_IMM_IN(Op2)
Donde:
Cdigo Descripcin
0 No se ha detectado ningn error.
1 La entrada declarada es mayor que la entrada mxima permitida.
2 La entrada declarada est forzada.
Ejemplo
%MW0 := READ_IMM_IN(2)
En la ejecucin de este bloque de operacin, el valor actual de la entrada %I0.2 se lee y la imagen
de entrada se actualiza inmediatamente. El cdigo de retorno de la funcin se guarda en la palabra
de memoria %MW0.
Estructura
Ejemplo de la instruccin READ_IMM_IN:
Escaln Instruccin
0 LD %M0
[%MW0:=READ_IMM_IN(%MW5)]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Introduccin
La instruccin WRITE_IMM_OUT escribe fsicamente en una salida digital incrustada
inmediatamente, y el valor se lee desde la imagen de salida. As se evita tener que esperar el
siguiente tiempo de ciclo de tarea para escribir a la salida incrustada.
NOTA: Esta funcin slo es vlida para las salidas digitales incrustadas (salidas integradas en el
Logic Controller).
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Para la instruccin WRITE_IMM_OUT, utilice la sintaxis siguiente:
Op1 := WRITE_IMM_OUT(Op2)
Donde:
Cdigo Descripcin
0 No se ha detectado ningn error.
3 La salida declarada es mayor que la salida mxima permitida.
4 La salida declarada est forzada.
5 La salida declarada se utiliza como una salida de hardware dedicada.
6 La salida declarada se utiliza como una salida de alarma.
Ejemplo
%MW0 := WRITE_IMM_OUT(%MW5) (con %MW5 = 2)
En la ejecucin de este bloque de operacin, la imagen de salida %Q0.2 se escribe fsicamente
en la salida digital incrustada. El cdigo de retorno de la funcin se guarda en la palabra de
memoria %MW0.
Estructura
Ejemplo de la instruccin WRITE_IMM_OUT:
Escaln Instruccin
0 LD %M0
[%MW0:= WRITE_IMM_OUT(%MW4)]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Introduccin
La instruccin READ_IMM lee un parmetro de bloque de funciones durante la ejecucin de una
tarea y actualiza la imagen de entrada durante el mismo ciclo.
Esta funcin slo est disponible para determinados parmetros de bloques de funciones. La
instruccin READ_IMM lee directamente desde los registros HSC.V y HSC.P en bloques de
funciones de Contador de alta velocidad (%HSC). Para obtener ms informacin, consulte
Contador de alta velocidad (%HSC).
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Para la instruccin READ_IMM, utilice la sintaxis siguiente:
READ_IMM(Op1)
Donde:
Ejemplo
A continuacin se muestra un ejemplo de uso de la instruccin READ_IMM:
Escaln Instruccin
0 LD %M0
[READ_IMM(%HSC0.P)]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
NOTA: La aplicacin debe estar configurada con un nivel funcional (vase SoMachine Basic, Gua
de funcionamiento) como mnimo del Nivel 3.3 para utilizar la instruccin READ_IMM.
Introduccin
La instruccin WRITE_IMM escribe un parmetro de bloque de funciones durante la ejecucin de
una tarea y actualiza la imagen de salida durante el mismo ciclo.
Esta funcin slo est disponible para determinados parmetros de bloques de funciones. La
instruccin WRITE_IMM escribe directamente desde los registros HSC.V y HSC.P en bloques de
funciones de Contador de alta velocidad (%HSC). Para obtener ms informacin, consulte
Contador de alta velocidad (%HSC).
Sintaxis
A continuacin, se describe la sintaxis de la lista de instrucciones. Puede insertar operaciones de
lista de instrucciones e instrucciones de asignacin (vase pgina 21) en los escalones del
diagrama de contactos utilizando un elemento grfico de Bloque de operacin.
Para la instruccin WRITE_IMM, utilice la sintaxis siguiente:
WRITE_IMM(Op1)
Donde:
Ejemplo
A continuacin se muestra un ejemplo de uso de la instruccin WRITE_IMM:
Escaln Instruccin
0 LD %M1
[WRITE_IMM(%HSC0.V)]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
NOTA: La aplicacin debe estar configurada con un nivel funcional como mnimo del Nivel 3.3 para
utilizar la instruccin WRITE_IMM.
Captulo 4
Objetos de E/S
Objetos de E/S
Seccin 4.1
Contador rpido (%FC)
Contador rpido
Descripcin general
Consulte la Gua de la biblioteca de funciones avanzadas de su controlador.
Seccin 4.2
Contador de alta velocidad (%HSC)
Descripcin general
Consulte la Gua de la biblioteca de funciones avanzadas de su controlador.
Seccin 4.3
Pulso (%PLS)
Pulso (%PLS)
Pulso
Descripcin general
Consulte la Gua de la biblioteca de funciones avanzadas de su controlador.
Seccin 4.4
Modulacin de ancho de pulsos (%PWM)
Descripcin general
Consulte la Gua de la biblioteca de funciones avanzadas de su controlador.
Captulo 5
Objetos de red
Objetos de red
Objetos de red
Presentacin
Los objetos de red se utilizan para la comunicacin a travs de EtherNet/IP, Modbus TCP o
IOScanner serie Modbus.
Hay dos tipos de objeto de red para la comunicacin EtherNet/IP:
%QWE: Input Assembly
%IWE: Output Assembly
Para IOScanner serie Modbus, se utilizan los siguientes tipos de objetos de red:
%IN: entradas digitales (IOScanner)
%QN: salidas digitales (IOScanner)
%IWN: registros de entrada (IOScanner)
%QWN: registros de salida (IOScanner)
%IWNS: cdigos de diagnstico de red de IOScanner
NOTA: Las referencias a entradas y salidas se realizan desde el punto de vista del maestro
EtherNet/IP o cliente Modbus TCP.
Para obtener ms informacin sobre cmo configurar objetos de red, consulte la gua de
programacin del logic controller.
Captulo 6
Objetos de software
Objetos de software
Seccin 6.1
Uso de bloques de funciones
Descripcin general
Un bloque de funciones es un objeto reutilizable que acepta uno o varios valores de entrada y
devuelve uno o varios valores de salida.
Los parmetros de los bloques de funciones no estn disponibles si:
su controlador no admite el bloque de funciones;
el bloque de funciones no est configurado.
Lnea Instruccin
1.000 CU %C1
1.074 CD %C1
1.209 R %C1
Utilice las instrucciones BLK, OUT_BLK y END_BLK para la programacin reversible de los bloques
de funciones:
BLK: indica el principio del bloque.
OUT_BLK: se emplea para conectar las salidas del bloque directamente.
END_BLK: indica el final del bloque.
NOTA: Se pueden colocar instrucciones de entrada y de prueba en el bloque relevante
nicamente entre las instrucciones BLK y OUT_BLK (o entre BLK y END_BLK cuando no se
programa OUT_BLK).
Escaln Instruccin
0 BLK %C8
LDF %I0.1
R
LD %I0.1
AND %M0
CU
OUT_BLK
LD D
AND %M1
ST %Q0.0
END_BLK
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Escaln Instruccin
0 BLK %C8
LDF %I0.1
R
LD %I0.2
AND %M0
CU
END_BLK
1 LD %C8.D
AND %M1
ST %Q0.4
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Paso Accin
1 Cree un nuevo escaln del diagrama de contactos en el rea de trabajo de programacin de
SoMachine Basic. Consulte la Gua de funcionamiento de SoMachine Basic para obtener ms
detalles.
2 Haga clic en el botn Funcin de la barra de herramientas grfica situada en la parte superior
del rea de trabajo de programacin.
Resultado: Se muestra una lista de todos los objetos de bloques de funciones disponibles
(consulte la tabla siguiente).
3 Seleccione el bloque de funciones.
4 Mueva el bloque de funciones a la posicin deseada en el escaln y, a continuacin, haga clic
para insertarlo.
LIFO/FIFO Register
Step Counter
Counter
Fast Counter
Pulse
Message
Paso Accin
1 Haga clic en la etiqueta [Direccin] dentro del bloque de funciones.
Aparece una direccin predeterminada en el cuadro de texto; por ejemplo, "%TM0" para un
bloque de funciones Timer.
Para modificar la direccin predeterminada, elimine el ltimo dgito de la direccin (el
identificador de la instancia).
Aparece una lista de todas las direcciones disponibles.
Seleccione la direccin que se utilizar para identificar esta instancia del bloque de funciones.
Las propiedades del bloque de funciones aparecen en el centro del objeto de bloque de
funciones y en la tabla Propiedades, en la mitad inferior del rea de trabajo de programacin.
Cuando lo desee, puede hacer doble clic en cualquier parte dentro del bloque de funciones
para visualizar las propiedades.
2 De manera opcional, haga clic en la etiqueta [Introducir comentario] dentro del bloque de
funciones y escriba una breve descripcin del bloque de funciones. Por ejemplo,
Temporizador de pulso.
3 De manera opcional, haga clic en la etiqueta [Smbolo] dentro del bloque de funciones y
comience a escribir el nombre del smbolo para asociarlo con este bloque de funciones.
Aparece una lista de todos los smbolos existentes con nombres que comienzan con el
carcter o caracteres que ha escrito; haga clic en el smbolo para usarlo.
A fin de crear un nuevo smbolo para este bloque de funciones, escriba el nombre del smbolo
para crearlo y seleccione el objeto para asociarlo con el smbolo.
Consulte la Gua de funcionamiento de SoMachine Basic para obtener ms informacin sobre
el uso de smbolos.
4 Configure los parmetros disponibles de cada bloque de funciones, como se explica en el
tema "Parmetros" de las descripciones de cada bloque de funciones.
NOTA: Adems, puede visualizar la tabla Propiedades haciendo doble clic en el bloque de
funciones en un escaln.
Seccin 6.2
Temporizador (%TM)
Temporizador (%TM)
Descripcin
Introduccin
El bloque de funciones Timer se utiliza para especificar un periodo de tiempo antes de hacer
algo; por ejemplo, activar un evento.
Ilustracin
En esta ilustracin se muestra el bloque de funciones Timer.
Entradas
El bloque de funciones Timer contiene la siguiente entrada:
Salidas
El bloque de funciones Timer contiene la siguiente salida:
Configuracin
Parmetros
Para configurar los parmetros, siga el procedimiento de configuracin de un bloque de funciones
(vase pgina 159) y lea la descripcin de las modalidades de asignacin de memoria en la Gua
de funcionamiento de SoMachine Basic.
El bloque de funciones Timer contiene los parmetros siguientes:
Objetos
El bloque de funciones Timer contiene los objetos siguientes:
Introduccin
Utilice el temporizador de tipo TON (On-Delay Timer) para controlar las acciones de retardo de
conexin. Este retardo se puede programar mediante el software.
Casos especiales
La tabla siguiente incluye una lista de casos especiales para programar el bloque de funciones de
temporizador:
Diagrama de tiempos
En este diagrama se muestra el funcionamiento del tipo TON Timer.
(4) En el flanco ascendente de la entrada IN, se inicia de nuevo el temporizador (Timer) desde el valor en el
que se detuvo.
(5) El bit de salida %TMi.Q se establece en 1 cuando el valor alcanza el valor preestablecido %TMi.P.
(6) Cuando se detecta un flanco descendente en la entrada IN, si el temporizador (Timer) ha alcanzado el
valor preestablecido %TMi.P, el valor %TMi.V se establece en 0.
Introduccin
Utilice el tipo de temporizador TOF (Off-Delay Timer) de Timer para controlar las acciones
de retraso. Este retardo se puede programar mediante el software.
Diagrama de tiempos
En este diagrama se muestra el funcionamiento del tipo TOF Timer.
Introduccin
El Timer de tipo TP (temporizador de pulso) se emplea para generar pulsos de una duracin
determinada. Este retardo se puede programar mediante el software.
Diagrama de tiempos
En este diagrama se muestra el funcionamiento del Timer de tipo TP.
(1) El Timer se inicia en el flanco ascendente de la entrada IN. El valor actual %TMi.V se establece en 0 si
el Timer an no se ha iniciado y %TMi.Q se establece en 1 cuando se inicia el Timer.
(2) El valor actual %TMi.V del Timer aumenta de 0 al valor preestablecido %TMi.P en incrementos de 1
unidad por pulso del parmetro de la referencia de tiempo TB.
(3) El bit de salida %TMi.Q se establece en 0 cuando el valor actual ha alcanzado el valor preestablecido
%TMi.P.
(4) El valor actual %TMi.V se establece en 0 cuando %TMi.V es igual a %TMi.P y la entrada IN vuelve a 0.
(5) Este Timer no se puede restablecer.
(6) Cuando %TMi.V es igual a %TMi.P y la entrada IN se establece en 0, %TMi.Q se establece en 0.
Ejemplo de programacin
Introduccin
Los bloques de funciones Timer tienen las siguientes modalidades de funcionamiento:
TON (Timer On-Delay) (vase pgina 164) (temporizador de retardo de conexin): utilizado
para especificar un periodo de tiempo entre la activacin de una entrada especfica y el
encendido de un sensor de salida.
TOF (Timer Off-Delay) (vase pgina 167) (temporizador de retardo de desconexin): utilizado
para especificar un periodo de tiempo entre la no deteccin de una salida asociada con un
sensor y el apagado de la salida correspondiente.
TP (Timer - Pulse) (vase pgina 169) (temporizador de pulso): utilizado para generar un pulso
de duracin determinada.
Los retardos o periodos de pulsos de Timers se pueden programar y configurar desde el
software.
Programacin
Este ejemplo es un bloque de funciones Timer con instrucciones reversibles:
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Seccin 6.3
Contador (%C)
Contador (%C)
Descripcin
Introduccin
El bloque de funciones Counter cuenta los eventos de forma progresiva y regresiva. Estas
2 operaciones se pueden realizar de manera simultnea.
Ilustracin
En esta ilustracin se presenta el bloque de funciones Counter.
Entradas
El bloque de funciones Counter contiene las siguientes entradas:
Salidas
El bloque de funciones Counter contiene las siguientes salidas:
Configuracin
Parmetros
Para configurar los parmetros, siga el procedimiento de configuracin de un bloque de funciones
(vase pgina 159) y lea la descripcin de las modalidades de asignacin de memoria en la Gua
de funcionamiento de SoMachine Basic.
El bloque de funciones Counter contiene los parmetros siguientes:
Objetos
El bloque de funciones Counter contiene los objetos siguientes:
Operaciones
En esta tabla se describen las principales fases de las operaciones del bloque de funciones
Counter:
Casos especiales
En esta tabla se muestra una lista de casos de configuracin/funcionamiento especiales para el
bloque de funciones Counter:
Ejemplo de programacin
Introduccin
El ejemplo siguiente muestra un contador que permite contar hasta un mximo de 5.000
elementos. Cada pulso de entrada %I0.2 (cuando el bit de memoria %M0 est establecido en 1)
aumenta el bloque de funciones Counter %C8 hasta su valor preestablecido final (bit %C8.D=1). El
contador se restablece mediante la entrada %I0.1.
Programacin
Este ejemplo es un bloque de funciones Counter con instrucciones reversibles:
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Configuracin
Durante la configuracin, deben introducirse los parmetros:
En este ejemplo, el valor Preajuste (%Ci.P): se establece en 5.000.
En este ejemplo, %M0 es la orden de aumento (%M0 = Falso) y de disminucin (%M0 = Verdadero).
El contador realiza un conteo del flanco frontal de %I0.0. Si %M0 est establecido en False, en
cada flanco frontal de %I0.0, %C1.V aumenta hasta el valor preestablecido %C1.P y el indicador
Finalizado %C1.D cambia a TRUE. La salida %C1.D establece %M0 y cambia la instruccin en
orden de disminucin. En cada flanco frontal de %I0.0, %C1.V disminuir hasta llegar a 0. El
indicador Vaco (%C1.E) se enciende y restablece %M0 (orden de incremento).
Seccin 6.4
Mensaje (%MSG) e intercambio (EXCH)
Descripcin general
Introduccin
Un controlador lgico puede configurarse para comunicarse en el protocolo Modbus o puede
enviar o recibir mensajes en modalidad de caracteres (ASCII).
SoMachine Basic ofrece las siguientes funciones para este tipo de comunicaciones:
Instruccin de Intercambio (EXCH) para transmitir/recibir mensajes.
Bloque de funciones Message (%MSG) para controlar los intercambios de datos.
Instruccin de intercambio
La instruccin de Intercambio permite a un controlador lgico enviar o recibir informacin dirigida
a dispositivos ASCII o Modbus o procedente de ellos. El usuario define una tabla de palabras
(%MWi:L) que contiene la informacin de control y los datos que se enviarn o recibirn. Consulte
Configuracin de la tabla de transmisin (vase pgina 188). El intercambio de mensajes se
realiza mediante la instruccin de Intercambio.
Sintaxis
A continuacin, se muestra el formato de la instruccin de Intercambio:
[EXCHx %MWi:L]
Donde: x = nmero de puerto; L = nmero total de palabras de la tabla de palabras.
El controlador lgico debe finalizar el intercambio desde la primera instruccin de Intercambio
antes de que se pueda iniciar una segunda instruccin de Intercambio. Se debe utilizar el bloque
de funciones Message cuando se enven varios mensajes.
Protocolo ASCII
El protocolo ASCII proporciona al Logic Controller un protocolo de modalidad de caracteres simple
que permite transmitir o recibir datos mediante un dispositivo simple. Este protocolo se admite
mediante la instruccin de Intercambio y se controla mediante el bloque de funciones Message.
Pueden utilizarse los tres tipos de comunicaciones siguientes con el protocolo ASCII:
Solo transmisin
Transmisin/recepcin
Solo recepcin
Protocolo Modbus
Si se trata de una conexin serie, el protocolo Modbus es un protocolo maestro/esclavo que
permite a un nico maestro solicitar respuestas de los esclavos o realizar acciones dependiendo
de las peticiones. En Ethernet, diversos maestros (clientes) pueden intercambiar con un esclavo
(servidor). Cada esclavo debe tener una direccin exclusiva. El maestro puede dirigirse a los
esclavos individuales o iniciar un mensaje de difusin para todos los esclavos. Los esclavos
devuelven un mensaje (respuesta) a las peticiones que se les envan individualmente. No se
devuelven respuestas a las peticiones de difusin del maestro.
La modalidad maestro Modbus permite al controlador enviar una peticin Modbus a un esclavo y
esperar una respuesta. La modalidad maestro Modbus slo se admite a travs de la instruccin
de Intercambio. La modalidad maestro Modbus admite Modbus ASCII y Modbus RTU.
La modalidad esclavo Modbus permite al controlador responder a las peticiones Modbus estndar
procedentes de un maestro Modbus.
Para obtener informacin detallada sobre el protocolo Modbus, consulte el documento Protocolo
de aplicacin Modbus que est disponible en http://www.modbus.org.
Esclavo Modbus
El protocolo Modbus admite dos capas de conexin de datos de los formatos del modelo OSI:
ASCII y RTU. Cada uno est definido mediante la implementacin de la capa fsica: ASCII utiliza
7 bits de datos y RTU utiliza 8 bits de datos.
Cuando se utiliza la modalidad Modbus ASCII, cada byte del mensaje se enva como dos
caracteres ASCII. La trama Modbus ASCII comienza con un carcter inicial (':') y finaliza con dos
caracteres finales (CR y LF). El carcter de final de trama est predeterminado en 0x0A (LF). El
valor de comprobacin de la trama Modbus ASCII es un complemento a dos simple de la trama,
excluyendo los caracteres inicial y final.
La modalidad Modbus RTU no vuelve a formatear el mensaje antes de enviarlo; sin embargo,
utiliza una modalidad de clculo de suma de comprobacin diferente, especificado como CRC.
La capa de conexin de datos de Modbus tiene las limitaciones siguientes:
Direccin 1-247
Bits: 128 bits previa peticin
Palabras: 125 palabras de 16 bits previa peticin
Descripcin
Introduccin
Ilustracin
En esta ilustracin se presenta el bloque de funciones Message:
Entradas
El bloque de funciones Message contiene la siguiente entrada:
Salidas
El bloque de funciones Message contiene las siguientes salidas:
Configuracin
Error detectado
Si se ha detectado un error al utilizar una instruccin de intercambio, los bits %MSGx.D y %MSGx.E
se establecen en 1, la palabra del sistema %SW63 contiene el cdigo de error para el puerto 1, y
%SW64 contiene el cdigo de error para el puerto 2. Consulte el captulo Palabras de sistema de
la Gua de programacin del logic controller.
Operaciones
En esta tabla se describen las principales fases de las operaciones del bloque de funciones
Message:
Casos especiales
Esta tabla contiene una lista de casos especiales para el funcionamiento de Message:
Limitaciones
Tenga en cuenta las siguientes limitaciones:
La disponibilidad (para protocolo ASCII) y el tipo del puerto 2 (consulte %SW7) solo se
comprueban en el encendido o reseteado.
La presencia (para protocolo Modbus) y configuracin (RS-485) del puerto 2 se comprueban
durante el encendido o restablecimiento.
El procesamiento de cualquier mensaje en el puerto 1 se cancela cuando SoMachine Basic
est conectado.
Las instrucciones de Intercambio anulan los procesamientos del esclavo Modbus activo.
El procesamiento de las instrucciones de Intercambio no se repite en caso de error detectado.
La entrada de restablecimiento (R) puede utilizarse para anular el procesamiento de recepcin
de la instruccin de Intercambio.
Las instrucciones de Intercambio se configuran con un timeout en caso de protocolo Modbus.
Los mensajes mltiples se controlan a travs de %MSGx.D
NOTA: Adems de las peticiones a los esclavos individuales, el controlador maestro Modbus
puede iniciar una peticin de difusin destinada a todos los esclavos. En caso de peticin de
difusin, el byte Comando debe establecerse en 00, mientras que la direccin de esclavo debe
establecerse en 0.
Las entradas x del byte transmitido contienen los datos del protocolo Modbus (codificacin RTU)
que se van a transmitir. Si el puerto de comunicacin est configurado para Modbus ASCII, los
caracteres de trama correctos se agregan a la transmisin. El primer byte contiene la direccin del
dispositivo (especfica o de difusin), el segundo byte contiene el cdigo de funcin y el resto
contiene informacin asociada a ese cdigo de funcin.
NOTA: Se trata de una aplicacin tpica, pero que no define todas las posibilidades. No se
realizar ninguna validacin de los datos que se estn transmitiendo.
Las entradas x de los bytes recibidos contienen los datos del protocolo Modbus (codificacin RTU)
que se van a recibir. Si el puerto de comunicacin est configurado para Modbus ASCII, los
caracteres de trama correctos se eliminan de la respuesta. El primer byte contiene la direccin del
dispositivo, el segundo byte contiene el cdigo de funcin (o cdigo de respuesta) y el resto
contiene informacin asociada a ese cdigo de funcin.
NOTA: Se trata de una aplicacin tpica, pero que no define todas las posibilidades. No se
realizar ninguna validacin de los datos que se estn recibiendo, salvo para la verificacin de la
suma de comprobacin.
Ejemplo de programacin
Introduccin
A continuacin se muestran ejemplos de programacin de un bloque de funciones Message.
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Ejemplos de ASCII
Escritura en aplicacin
Ejemplo de aplicacin ASCII:
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Use SoMachine Basic para crear un programa con tres escalones:
En primer lugar, inicialice las tablas de control y de transmisin que va a utilizar para la
instruccin de Intercambio. En este ejemplo se configura un comando para enviar y recibir
datos. La cantidad de datos a enviar se establece en 4 bytes, como se define en la aplicacin,
seguido por el carcter de fin de trama definido en la configuracin. Los caracteres de inicio y
fin no se visualizan en una tabla de animacin, pues solo se muestran caracteres de datos. En
cualquier caso, cuando se utilizan, estos caracteres se transmiten automticamente o se
verifican en la recepcin (con %SW63 y %SW64).
NOTA: Los caracteres de fin definidos en la configuracin se envan automticamente al final
de la trama. Por ejemplo, si ha configurado el primer carcter de fin en 10 y el segundo carcter
de fin en 13, 16#0A0D (cdigos ASCII, 0A = LF y 0D = CR) se enva al final de la trama.
A continuacin, compruebe el bit de estado asociado a %MSG2 y enve la instruccin EXCH2,
solo si el puerto est preparado. Se especifica un valor de ocho palabras para la instruccin
EXCH2. Existen dos palabras de control (%MW10 y %MW11), dos palabras que se usarn para
transmitir informacin (%MW12 y %MW13) y cuatro palabras para recibir datos (de %MW14 a
%MW17).
Finalmente, el estado del error detectado del %MSG2 se detecta y almacena en el primer bit de
salida de la E/S del controlador base local. Para conseguir ms precisin, podra aadirse un
tratamiento adicional del error utilizando %SW64.
Para visualizar los posibles formatos, haga clic con el botn derecho en la casilla Valores de la
tabla de animacin.
El ltimo paso consiste en descargar la aplicacin al controlador y ejecutarla. Inicialice una tabla
de animacin para animar y visualizar las palabras de %MW10 a %MW16. Esta informacin se
intercambia con el controlador lgico y se visualiza en una tabla de animacin.
NOTA:
Esta peticin no necesita utilizar un offset.
La trama de respuesta es la misma que la de esta peticin (en un caso normal).
NOTA:
Esta peticin no necesita utilizar un offset.
La trama de respuesta es la misma que la de esta peticin (en un caso normal).
NOTA: El offset de transmisin = 7 suprime el sptimo byte de la trama enviada. Permite tambin
una correspondencia correcta entre los valores de las palabras en la tabla de transmisin.
NOTA: El offset de transmisin = 7 suprime el sptimo byte de la trama enviada. Permite tambin
una correspondencia correcta entre los valores de las palabras en la tabla de transmisin.
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Con ayuda de SoMachine Basic, cree un programa de aplicacin para el maestro y el esclavo.
Para el esclavo, escriba algunas palabras de memoria para un conjunto de valores conocidos. En
el maestro, se inicializa la tabla de palabras de la instruccin de Intercambio para leer cuatro
palabras del esclavo en la direccin Modbus 2 que comienza en la ubicacin %MW0.
NOTA: Observe el uso del offset de recepcin establecido en %MW1 del maestro Modbus. El offset
de 3 aadir un byte (valor = 0) en la tercera posicin del rea de recepcin de la tabla. De este
modo, las palabras se alinean en el maestro, de forma que se mantengan correctamente dentro
de los lmites de palabras. Sin este offset, cada palabra de datos se dividira en dos palabras en
el bloque de Intercambio. Este offset se utiliza por comodidad.
Antes de ejecutar la instruccin EXCH2, la aplicacin comprueba el bit de comunicacin asociado
a %MSG2. Por ltimo, el estado de error de %MSG2 se detecta y almacena en el primer bit de salida
de la E/S del controlador de base local. Igualmente, se podra aadir una comprobacin adicional
de errores mediante %SW64 para una mayor precisin.
Inicializacin de la tabla de animacin en la modalidad online correspondiente a la parte de la tabla
de recepcin:
Despus de descargar y configurar los controladores lgicos para que se ejecuten, abra una tabla
de animacin en el maestro. Examine la seccin de respuesta de la tabla para comprobar que el
cdigo de respuesta sea 3 y asegurarse de que se haya ledo el nmero de bytes correcto. En este
ejemplo, las palabras ledas del esclavo (comenzando por %MW7) estn correctamente alineadas
con los lmites de palabras del maestro.
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Con ayuda de SoMachine Basic, cree un programa de aplicacin para el maestro y el esclavo.
Para el esclavo, escriba una nica palabra de memoria %MW18. De este modo, se asignar espacio
en el esclavo para las direcciones de memoria de %MW0 a %MW18. Sin asignar el espacio, la
peticin Modbus intentara escribir en ubicaciones que no existen en el esclavo.
En el maestro, se inicializa la tabla de palabras de la instruccin EXCH2 para leer cuatro bytes en
el esclavo en la direccin Modbus 2 en la direccin %MW16 (10 hexadecimal).
NOTA: Observe el uso del offset de transmisin establecido en %MW1 de la aplicacin del maestro
Modbus. El offset de 7 suprimir el byte alto en la sexta palabra (el valor 00 hexadecimal en %MW5).
De esta forma, se alinean los valores de datos en la tabla de transmisin de la tabla de palabras,
de modo que se mantengan correctamente dentro de los lmites de palabras.
Despus de descargar y configurar todos los controladores lgicos para que se ejecuten, abra una
tabla de animacin en el controlador esclavo. Los dos valores de %MW16 y %MW17 se escriben en
el esclavo.
En el maestro, se puede utilizar una tabla de animacin para examinar la parte de la tabla de
recepcin de los datos de intercambio. Estos datos indican la direccin del esclavo, el cdigo de
respuesta, la primera palabra escrita y el nmero de palabras escritas comenzando por %MW8 en
el ejemplo anterior.
Seccin 6.5
Registro LIFO/FIFO (%R)
Descripcin
Introduccin
Ilustracin
En esta ilustracin se muestra el bloque de funciones LIFO/FIFO Register.
Entradas
El bloque de funciones LIFO/FIFO Register contiene las siguientes entradas:
Salidas
El bloque de funciones LIFO/FIFO Register contiene las siguientes salidas:
Configuracin
Parmetros
Para configurar los parmetros, siga el procedimiento de configuracin de un bloque de funciones
(vase pgina 159) y lea la descripcin de las modalidades de asignacin de memoria en la Gua
de funcionamiento de SoMachine Basic.
El bloque de funciones LIFO/FIFO Register contiene los parmetros siguientes:
Objetos
El bloque de funciones LIFO/FIFO Register contiene los objetos siguientes:
Casos especiales
En esta tabla hay una lista de casos especiales para programar el bloque de funciones
LIFO/FIFO Register:
Introduccin
En la operacin LIFO (Last In, First Out), el ltimo elemento de datos introducido es el primero que
se recupera.
Funcionamiento
En esta tabla se describe el funcionamiento de LIFO:
2 Recuperacin:
Cuando se recibe una peticin de recuperacin (flanco
ascendente en la entrada
O o activacin de la instruccin O), la palabra de datos
superior (la ltima palabra introducida) se carga en la
palabra %Ri.O (fig. b). Cuando el LIFO/FIFO
Register est vaco (salida E=1), no es posible
continuar la recuperacin. La palabra de salida %Ri.O
no se modifica y conserva su valor.
3 Resetear:
La pila se puede restablecer en cualquier momento
(estado 1 en la entrada R o activacin de la instruccin
R). La pila est vaca despus de un reseteado (%Ri.E
=1).
Introduccin
En la operacin FIFO (First In, First Out), el primer elemento de datos introducido es el primero
que se recupera.
Funcionamiento
En esta tabla se describe el funcionamiento de FIFO:
2 Recuperacin:
Cuando se recibe una peticin de recuperacin (flanco
ascendente en la entrada O o activacin de la instruccin
O), la palabra de datos inferior en la cola se carga en la
palabra %Ri.O y los contenidos del LIFO/FIFO
Register se desplazan una posicin hacia abajo en la
cola (fig. b).
Cuando el LIFO/FIFO Register est vaco (salida
E=1), no es posible continuar la recuperacin. La palabra
de salida %Ri.O no se modifica y conserva su valor.
3 Resetear:
La cola se puede restablecer en cualquier momento
(estado 1 en la entrada R o activacin de la instruccin
R). La cola est vaca despus de un reseteado
(%Ri.E=1).
Ejemplo de programacin
Introduccin
El siguiente ejemplo de programacin muestra el contenido de una palabra de memoria (%MW34)
que se carga en un LIFO/FIFO Register (%R2.I) al recibir una peticin de almacenamiento
(%I0.2) si LIFO/FIFO Register %R2 no est completo (%R2.F = 0). La peticin de almacena-
miento en el LIFO/FIFO Register se realiza mediante %M1. La peticin de recuperacin se
confirma mediante la entrada %I0.3, y %R2.O se carga en %MW20 si el registro no est vaco
(%R2.E = 0).
Programacin
Este ejemplo es un bloque de funciones LIFO/FIFO Register con instrucciones reversibles:
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Seccin 6.6
Drums (%DR)
Drums (%DR)
Descripcin
Introduccin
Ilustracin
En esta figura se muestra el bloque de funciones Drum en modalidad offline.
Entradas
El bloque de funciones Drum contiene las siguientes entradas:
Salidas
El bloque de funciones Drum contiene la siguiente salida:
Configuracin
Parmetros
Para configurar los parmetros, siga el procedimiento de configuracin de un bloque de funciones
(vase pgina 159) y lea la descripcin de las modalidades de asignacin de memoria en la Gua
de funcionamiento de SoMachine Basic.
El bloque de funciones Drum contiene los parmetros siguientes:
Objetos
El bloque de funciones Drum contiene el siguiente objeto:
Funcionamiento
El bloque de funciones Drum consta de:
Una matriz de datos constantes (las levas) organizada en 8 pasos (de 0 a 7) y 16 bits (estado
del paso) organizada en columnas numeradas de 0 a 15.
Una lista de bits de control est asociada con una salida configurada (%Qi.j) o una palabra de
memoria (%Mi). En el transcurso del paso actual, los bits de control adquieren los estados
binarios definidos para este paso.
Asistente Drum
Utilice el Asistente Drum para configurar el bloque de funciones Drum.
Configure el campo Nmero de pasos con un valor entre 1 y 8, as como las salidas o los bits de
memoria asociados a cada paso: del Bit0 al Bit15 y, a continuacin, haga clic en OK.
NOTA: La configuracin tambin se puede llevar a cabo mediante bits de memoria (%Mi).
Casos especiales
Esta tabla contiene una lista de casos especiales para el funcionamiento de Drum:
Ejemplo de programacin
Introduccin
A continuacin se muestra un ejemplo de programacin de un Drum que est configurado de
modo que ninguno de los controles est establecido en el paso 0 y los controles estn
establecidos para los pasos 1 a 6 de las salidas %Q0.0 a %Q0.5 respectivamente (consulte la
Configuracin (vase pgina 221)).
Las primeras 6 salidas de %Q0.0 a %Q0.5 se activan sucesivamente cada vez que la entrada
%I0.1 se establece en 1. Cuando el valor de la entrada %I0.0 es alto, los siguientes valores se
restablecen a 0:
Salida de Drum F (%DRi.F = 0)
Nmero del paso actual (%DRi.S = 0)
Programacin
Este ejemplo es un bloque de funciones Programa del bloque de funciones de Drum:
Escaln Instruccin
0 BLK %DR1
LD %I0.0
R
LD %I0.1
U
OUT_BLK
LD F
ST %Q0.7
END_BLK
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Diagrama de tiempos
En este diagrama se muestra el funcionamiento de Drum:
Configuracin
Durante la configuracin se define la siguiente informacin:
Nmero de pasos: 6
Estados de salida (bits de control) para cada paso de Drum:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Paso 0: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Paso 1: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Paso 2: 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
Paso 3: 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
Paso 4: 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0
Paso 5: 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
Seccin 6.7
Registro de bits de desplazamiento (%SBR)
Descripcin
Introduccin
Ilustracin
En esta ilustracin se muestra el bloque de funciones Shift Bit Register:
El valor actual del Shift Bit Register se muestra en el centro del bloque de funciones:
Valor decimal, por ejemplo 7
Valor binario, por ejemplo 111
Valor hexadecimal, por ejemplo 16#7
Entradas
El bloque de funciones Shift Bit Register contiene las siguientes entradas:
Configuracin
Parmetros
Para configurar los parmetros, siga el procedimiento de configuracin de un bloque de funciones
(vase pgina 159) y lea la descripcin de las modalidades de asignacin de memoria en la Gua
de funcionamiento de SoMachine Basic.
El bloque de funciones Shift Bit Register contiene los siguientes parmetros:
Objetos
El bloque de funciones Shift Bit Register contiene los siguientes objetos:
Funcionamiento
En la siguiente ilustracin se muestra un modelo de bit antes y despus de una operacin de
desplazamiento:
Esto tambin es aplicable para una peticin de desplazamiento de un bit a la derecha (bit 15 a bit
0) mediante la instruccin CD. El bit 0 se pierde.
Si un registro de 16 bits no es adecuado, se puede utilizar el programa para mostrar en cascada
diversos registros.
Casos especiales
En esta tabla hay una lista de casos especiales para programar el bloque de funciones Shift
Bit Register:
Ejemplo de programacin
Introduccin
El bloque de funciones Shift Bit Register proporciona un desplazamiento a la izquierda o
a la derecha de bits de datos binarios (0 o 1).
Programacin
En este ejemplo, un bit se desplaza hacia la izquierda cada segundo mientras que el bit 0 asume
el estado al bit 15.
En instrucciones reversibles:
En instrucciones no reversibles:
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Seccin 6.8
Contador de pasos (%SC)
Descripcin
Introduccin
Un bloque de funciones Step Counter permite realizar una serie de pasos a los que se
pueden asignar acciones. El desplazamiento de un paso a otro depende de eventos internos o
externos. Cada vez que un paso est activo, el bit asociado (el bit de Step Counter %SCi.j) se
establece en 1. Solo se puede activar un paso de un Step Counter cada vez.
Ilustracin
Esta ilustracin corresponde a un bloque de funciones Step Counter:
Entradas
El bloque de funciones Step Counter contiene las siguientes entradas:
Configuracin
Parmetros
Para configurar los parmetros, siga el procedimiento de configuracin de un bloque de funciones
(vase pgina 159) y lea la descripcin de las modalidades de asignacin de memoria en la Gua
de funcionamiento de SoMachine Basic.
El bloque de funciones Step Counter contiene los parmetros siguientes:
Objetos
El bloque de funciones Step Counter contiene el siguiente objeto:
Caso especial
Esta tabla contiene una lista de casos especiales de funcionamiento del bloque de funciones Step
Counter:
Ejemplo de programacin
Introduccin
En este ejemplo se muestra un bloque de funciones Step Counter.
El Step Counter 0 se reduce mediante la entrada %I0.1.
El Step Counter 0 se aumenta mediante la entrada %I0.2.
El Step Counter 0 se restablece a 0 mediante la entrada %I0.3 o cuando llega al paso 3.
El paso 0 controla la salida %Q0.1, el paso 1 controla la salida %Q0.2 y el paso 2 controla la
salida %Q0.3.
Programacin
Este ejemplo es un bloque de funciones Step Counter con instrucciones reversibles:
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Diagrama de tiempos
En este diagrama se muestra el funcionamiento del bloque de funciones Step Counter:
Seccin 6.9
Fechadores (%SCH)
Fechadores (%SCH)
Descripcin
Introduccin
Los Schedule blocks se utilizan para controlar las acciones en un mes, da u hora predefinidos.
Los Schedule blocks slo se configuran en SoMachine Basic; no se introducen en el escaln
de un programa del mismo modo que otros bloques de funcin.
NOTA: Compruebe el bit del sistema %S51 y la palabra del sistema %SW118 para confirmar que la
opcin Reloj de tiempo real (RTC) est instalada. La opcin RTC tambin es necesaria para
utilizar Schedule blocks.
Parmetros
Para configurar los parmetros, siga el procedimiento Configuracin de un bloque de funciones
(vase pgina 159) y consulte la descripcin de Modalidades de asignacin de memoria
(vase SoMachine Basic, Gua de funcionamiento).
Los Schedule blocks presentan las siguientes funciones:
Habilitacin de fechadores
Los bits de la palabra de sistema %SW114 habilitan (bit establecido en 1) o deshabilitan (bit
establecido en 0) el funcionamiento de cada uno de los 16 Schedule blocks.
Asignacin de Schedule blocks en %SW114:
De forma predeterminada (o despus de un reinicio en fro), todos los bits de esta palabra de
sistema se establecen en 1. La utilizacin de estos bits por parte del programa es opcional.
Programacin y configuracin
Introduccin
Los Schedule blocks se utilizan para controlar las acciones en un mes, da u hora predefinidos.
Ejemplo de programacin
En esta tabla se muestran los parmetros de ejemplo de un programa de vaporizacin para un
mes veraniego:
Con este programa, los Schedule blocks pueden deshabilitarse mediante un conmutador o un
detector de humedad cableado en la entrada %I0.1:
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Diagrama de tiempos
Este diagrama de tiempos muestra la activacin de la salida %Q0.2:
Seccin 6.10
Reloj de tiempo real (%RTC)
Descripcin
Introduccin
El bloque de funciones de RTC permite leer y escribir en el Reloj de tiempo real (RTC) de
M221 Logic Controller.
Ilustracin
En esta ilustracin se muestra el bloque de funciones de RTC.
Entradas
El bloque de funciones RTC contiene las siguientes entradas:
Salidas
El bloque de funciones RTC contiene las siguientes salidas:
Cdigos de error
A continuacin se indican los cdigos de error que se pueden devolver en el objeto
%RTCi.ErrorId cuando la salida Error se establece en 1.
Configuracin
Presentacin
Configure las propiedades del bloque de funciones RTC con los valores que se van a utilizar para
actualizar el RTC en el logic controller.
Para mostrar la pgina RTC propiedades, siga uno de estos pasos:
Haga doble clic en un bloque de funciones de RTC.
En la ficha Programacin, seleccione Herramientas Objetos de software RTC.
RTC propiedades
Para configurar los parmetros, siga el procedimiento de configuracin de un bloque de funciones
(vase pgina 159) y lea la descripcin de las modalidades de asignacin de memoria en la Gua
de funcionamiento de SoMachine Basic.
La pgina RTC propiedades muestra las propiedades siguientes:
Seccin 6.11
PID
PID
Funcin PID
Introduccin
La funcin PID se utiliza para controlar un proceso dinmico de manera continua. El propsito del
control PID es mantener un proceso en ejecucin tan cerca como sea posible del valor de
consigna deseado.
Consulte la Gua de la biblioteca de funciones avanzadas para obtener informacin detallada
sobre el comportamiento y funcionalidades del PID y la implementacin de la funcin PID:
Modalidades de funcionamiento del PID
Configuracin de ajuste automtico del PID
Configuracin estndar del PID
Asistente de PID
Programacin del PID
Parmetros del PID
Papel principal e influencia de los parmetros del PID
Mtodo de ajuste de los parmetros del PID
Seccin 6.12
Pasos de Grafcet
Pasos de Grafcet
Pasos de Grafcet
Descripcin general
Los objetos de paso de Grafcet (%Xi) se utilizan para identificar el estado del paso Grafcet
correspondiente i de un programa.
Parmetros
La ventana Propiedades de paso de Grafcet muestra las siguientes propiedades:
Captulo 7
Objetos PTO
Objetos PTO
Seccin 7.1
Motion Task Table (%MT)
Descripcin general
Consulte la Gua de la biblioteca de funciones avanzadas de su controlador.
Seccin 7.2
Salida de tren de pulsos (%PTO)
Descripcin general
Consulte la Gua de la biblioteca de funciones avanzadas de su controlador.
Captulo 8
Objetos de accionamiento
Objetos de accionamiento
Objetos de accionamiento
Descripcin general
Los objetos de accionamiento controlan las unidades ATV y otros dispositivos configurados en el
IOScanner serie Modbus.
Consulte la Gua de la biblioteca de funciones avanzadas de su logic controller.
Captulo 9
Objetos de comunicacin
Objetos de comunicacin
Introduccin
Los bloques de funciones de comunicacin se utilizan para la comunicacin con dispositivos
Modbus y enviar/recibir mensajes en la modalidad de caracteres (ASCII).
NOTA: En un puerto de comunicacin slo puede estar activo un bloque de funciones de
comunicacin cada vez durante un ciclo de tarea maestra. Si intenta utilizar varios bloques de
funciones de comunicacin o instrucciones EXCH de manera simultnea en el mismo puerto de
comunicacin, los bloques de funciones devuelven un cdigo de error. Por lo tanto, antes de iniciar
un bloque de funciones de comunicacin o una instruccin EXCH, compruebe que no est en
proceso ningn intercambio activo (%MSGx.D es TRUE) en un puerto de comunicacin.
Seccin 9.1
Leer datos desde un dispositivo remoto (%READ_VAR)
Descripcin
Introduccin
El bloque de funciones %READ_VAR se utiliza para leer datos desde un dispositivo remoto en
Modbus SL o Modbus TCP.
Ilustracin
En esta ilustracin se muestra el bloque de funciones %READ_VAR:
Entradas
El bloque de funciones %READ_VAR contiene las siguientes entradas:
NOTA: Configurar la salida Ejecutar o Anular para TRUE en el primer ciclo de tarea en ejecucin
no se detecta como un flanco ascendente. El bloque de funciones debe ver primero la entrada
como FALSE para detectar un flanco ascendente posterior.
Salidas
El bloque de funciones %READ_VAR contiene las siguientes salidas:
En esta tabla se describen los cdigos de error escritos en el objeto de palabra doble
%READ_VARi.OperError:
Configuracin de la funcin
Propiedades
Haga doble clic en el bloque de funciones para abrir la tabla de propiedades de la funcin
(vase Compact Modbus SL Logic Controller M221 Book, System User Guide).
Las propiedades de este bloque de funciones no se pueden modificar en la modalidad online.
El bloque de funciones %READ_VAR tiene las propiedades siguientes:
Objetos
El bloque de funciones %READ_VAR contiene los objetos siguientes:
Ejemplo de programacin
Introduccin
El bloque de funciones %READ_VAR se puede configurar como se muestra en este ejemplo de
programacin.
Programacin
Este ejemplo es un bloque de funciones Bloque de funciones %READ_VAR:
Escaln Instruccin
0 BLK %READ_VAR0
LD %I0.0
EXECUTE
LD %I0.1
ABORT
OUT_BLK
LD DONE
ST %Q0.0
LD BUSY
ST %Q0.1
LD ABORTED
ST %M1
LD ERROR
ST %Q0.2
END_BLK
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Seccin 9.2
Escritura de datos en un dispositivo Modbus (%WRITE_VAR)
Descripcin
Introduccin
El bloque de funciones %WRITE_VAR se utiliza para escribir datos en un dispositivo externo
utilizando el protocolo Modbus SL o Modbus TCP.
Ilustracin
En esta ilustracin se muestra el bloque de funciones %WRITE_VAR:
Entradas
El bloque de funciones %WRITE_VAR contiene las siguientes entradas:
NOTA: Configurar la salida Ejecutar o Anular para TRUE en el primer ciclo de tarea en ejecucin
no se detecta como un flanco ascendente. El bloque de funciones debe ver primero la entrada
como FALSE para detectar un flanco ascendente posterior.
Salidas
El bloque de funciones %WRITE_VAR contiene las siguientes salidas:
Configuracin de la funcin
Propiedades
Haga doble clic en el bloque de funciones para abrir la tabla de propiedades de la funcin.
Las propiedades de este bloque de funciones no se pueden modificar en la modalidad online.
El bloque de funciones %WRITE_VAR tiene las propiedades siguientes:
Objetos
El bloque de funciones %WRITE_VAR contiene los objetos siguientes:
Ejemplo de programacin
Introduccin
El bloque de funciones %WRITE_VAR se puede configurar como se muestra en este ejemplo de
programacin.
Programacin
Este ejemplo es un bloque de funciones Bloque de funciones %WRITE_VAR:
Escaln Instruccin
0 BLK %WRITE_VAR0
LD %I0.0
EXECUTE
LD %I0.1
ABORT
OUT_BLK
LD DONE
ST %Q0.0
LD BUSY
ST %Q0.1
LD ABORTED
ST %M1
LD ERROR
ST %Q0.2
END_BLK
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Seccin 9.3
Leer y escribir datos en un dispositivo Modbus (%WRITE_READ_VAR)
Descripcin
Introduccin
El bloque de funciones %WRITE_READ_VAR se utiliza para leer y escribir datos guardados en la
memoria de las palabras internas a un dispositivo externo utilizando el protocolo Modbus SL o
Modbus TCP.
Este bloque de funciones ejecuta una nica peticin de escritura seguida de una nica peticin de
lectura en la misma transaccin.
Ilustracin
En esta ilustracin se muestra el bloque de funciones %WRITE_READ_VAR:
Entradas
El bloque de funciones %WRITE_READ_VAR contiene las siguientes entradas:
NOTA: Configurar la salida Ejecutar o Anular para TRUE en el primer ciclo de tarea en ejecucin
no se detecta como un flanco ascendente. El bloque de funciones debe ver primero la entrada
como FALSE para detectar un flanco ascendente posterior.
Salidas
El bloque de funciones %WRITE_READ_VAR contiene las siguientes salidas:
Configuracin de la funcin
Propiedades
Haga doble clic en el bloque de funciones para abrir la tabla de propiedades de la funcin.
Las propiedades de este bloque de funciones no se pueden modificar en la modalidad online.
El bloque de funciones %WRITE_READ_VAR tiene las propiedades siguientes:
Objetos
El bloque de funciones %WRITE_READ_VAR contiene los objetos siguientes:
Ejemplo de programacin
Introduccin
El bloque de funciones %WRITE_READ_VAR se puede configurar como se muestra en este ejemplo
de programacin.
Programacin
Este ejemplo es un bloque de funciones Bloque de funciones %WRITE_READ_VAR:
Escaln Instruccin
0 BLK %WRITE_READ_VAR0
LD %I0.0
EXECUTE
LD %I0.1
ABORT
OUT_BLK
LD DONE
ST %Q0.0
LD BUSY
ST %Q0.1
LD ABORTED
ST %M1
LD ERROR
ST %Q0.2
END_BLK
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Seccin 9.4
Comunicacin en una conexin ASCII (%SEND_RECV_MSG)
Descripcin
Introduccin
El bloque de funciones %SEND_RECV_MSG se utiliza para enviar o recibir datos en una lnea serie
configurada para el protocolo ASCII.
Ilustracin
En esta ilustracin se muestra el bloque de funciones %SEND_RECV_MSG:
Entradas
El bloque de funciones %SEND_RECV_MSG contiene las siguientes entradas:
NOTA: Configurar la salida Ejecutar o Anular para TRUE en el primer ciclo de tarea en ejecucin
no se detecta como un flanco ascendente. El bloque de funciones debe ver primero la entrada
como FALSE para detectar un flanco ascendente posterior.
Salidas
El bloque de funciones %SEND_RECV_MSG contiene las siguientes salidas:
Condiciones de finalizacin
Para una operacin de slo envo, la salida Finalizado se establece en TRUE cuando se han
enviado todos los datos (incluido cualquier carcter de arranque/parada).
Para una operacin de slo recepcin, el sistema recibe caracteres hasta que se cumple la
condicin de finalizacin. Cuando se alcanza la condicin de finalizacin, la salida Finalizado se
establece en TRUE. A continuacin, los caracteres recibidos se copian en BufferToRecv hasta los
caracteres sizeRecvBuffer. sizeRecvBuffer no es una condicin de finalizacin.
Para una operacin de slo recepcin, primero se envan los caracteres a la lnea y entonces se
reciben hasta que se cumple la condicin de finalizacin (el mismo proceso que en slo
recepcin).
Configuracin de la funcin
Propiedades
Haga doble clic en el bloque de funciones para abrir la tabla de propiedades de la funcin.
Las propiedades de este bloque de funciones no se pueden modificar en la modalidad online.
El bloque de funciones %SEND_RECV_MSG tiene las propiedades siguientes:
Objetos
El bloque de funciones %SEND_RECV_MSG contiene los objetos siguientes:
Ejemplo de programacin
Introduccin
El bloque de funciones %SEND_RECV_MSG se puede configurar como se muestra en este ejemplo
de programacin.
Programacin
Este ejemplo es un bloque de funciones Bloque de funciones %SEND_RECV_MSG:
Escaln Instruccin
0 BLK %SEND_RECV_MSG0
LD %I0.0
EXECUTE
LD %I0.1
ABORT
OUT_BLK
LD DONE
ST %Q0.0
LD BUSY
ST %Q0.1
LD ABORTED
ST %M1
LD ERROR
ST %Q0.2
END_BLK
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Seccin 9.5
Enviar Recibir SMS (%SEND_RECV_SMS)
Descripcin
Introduccin
El bloque de funciones %SEND_RECV_SMS sirve para enviar y recibir mensajes SMS (servicio de
mensajes cortos) mediante un mdem conectado a una lnea serie. Por ejemplo, el controlador
puede enviar un SMS para transmitir una alarma a un telfono mvil especificado, o recibir un
SMS para finalizar una funcin de la mquina.
NOTA: La aplicacin debe estar configurada con un nivel funcional como mnimo del Nivel 3.2 para
utilizar la funcin de SMS.
El bloque de funciones %SEND_RECV_SMS se utiliza para una de estas opciones:
Enviar un SMS a un solo destinatario, o
Recibir un SMS filtrado por una tabla de nmeros de telfono aprobados
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Asegrese de que un observador local, competente y cualificado, est presente al utilizarlo
desde una ubicacin remota.
Configure e instale la entrada Run/Stop en la aplicacin con el objetivo de poder mantener el
control local sobre el inicio y la detencin del controlador, independientemente de los
comandos remotos enviados al controlador.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o dao al
equipo.
La funcin de SMS depende de una red de telecomunicaciones externa y sus parmetros. Puede
que los comandos y mensajes SMS transmitidos a la mquina se retrasen, no se enven o no se
reciban. No utilice la funcin de SMS para funciones crticas para la seguridad u otras funciones
crticas.
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
No permita funciones crticas para la seguridad en comandos por SMS.
No utilice comandos o mensajes SMS para ninguna funcin que sea crtica.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o dao al
equipo.
NOTA: Verifique las funciones de SMS y la red de telecomunicaciones asociada durante la puesta
en funcionamiento, y prubela peridicamente para verificar la cobertura de la red.
Ilustracin
En esta ilustracin se muestra el bloque de funciones %SEND_RECV_SMS:
Entradas
En esta tabla se describen las entradas del bloque de funciones:
NOTA: Configurar la salida Execute o Abort para 1 en el primer ciclo de tarea en ejecucin no se
detecta como un flanco ascendente. El bloque de funciones debe ver primero la entrada como 0
para detectar un flanco ascendente posterior.
En esta tabla se describen los objetos de entrada del bloque de funciones:
Salidas
En esta tabla se describen las salidas del bloque de funciones:
Configuracin de funciones
Pasos principales
El siguiente procedimiento describe los pasos principales para configurar el bloque de funciones
%SEND_RECV_SMS tras conectar un mdem a la lnea serie:
Paso Accin
1 En la ficha Configuracin de SoMachine Basic, configure la lnea serie con el mdem, el Comando
Init y el protocolo ASCII. Para obtener ms informacin, consulte la gua de programacin
correspondiente a su controlador lgico.
2 Verifique que el mdem est conectado a la lnea serie del controlador y que:
La tarjeta SIM est desbloqueada, es decir, no protegida mediante un cdigo PIN
El nmero de telfono del centro de SMS est configurado correctamente en la tarjeta SIM
3 En la ficha Programacin:
Aada el bloque de funciones %SEND_RECV_SMS y haga doble clic en el bloque de funciones
para ver la tabla de propiedades de la funcin
Haga clic en el botn Configuracin de SMS para abrir la ventana Asistente de SMS
Edite las tablas Mensajes, Comandos y Nmeros de telfono
Para obtener ms informacin, consulte el Asistente de SMS.
Haga clic en Aplicar para cerrar el Asistente de SMS
ADVERTENCIA
FUNCIONAMIENTO IMPREVISTO DEL EQUIPO
Antes de utilizar el bloque de funciones, verifique que los ndices para los mensajes, comandos
y nmeros de telfono utilizados en el bloque de funciones sean los adecuados.
El incumplimiento de estas instrucciones puede causar la muerte, lesiones serias o dao al
equipo.
Asistente de SMS
Para utilizar el bloque de funciones %SEND_RECV_SMS, configure las tablas de comandos,
mensajes y nmeros de telfono.
Haga clic en el botn Configuracin de SMS en el rea de propiedades de Enviar Recibir SMS
para abrir la ventana Asistente de SMS.
La ventana Asistente de SMS tiene tres fichas con tablas para configurar:
Mensajes
Especifique las cadenas que se utilizan cuando el controlador enva un SMS. Utilice
marcadores de posicin para incluir variables, fecha y hora. Tenga en cuenta los lmites de
nmero de caracteres y el formato.
Comandos
Especifique las cadenas que se utilizan cuando el controlador recibe un SMS. Utilice
marcadores de posicin para incluir variables. Tenga en cuenta los lmites de nmero de
caracteres y el formato.
Nmeros de telfono
Al programar el bloque de funciones para el envo de mensajes SMS, seleccione el destinatario
en esta tabla.
Al programar el bloque de funciones para la recepcin de mensajes SMS, seleccione los
nmeros de telfono de origen autorizados en esta lista. La lista de nmeros de telfono
autorizados seleccionados aade seguridad a la aplicacin. Cuando una llamada y el SMS
correspondiente se transmiten a la aplicacin a travs del mdem, el nmero de telfono de
origen se valida antes de considerar el SMS entrante.
Para obtener ms informacin, consulte la lnea MASKPHONE en Propiedades
(vase pgina 298).
NOTA: Consulte la documentacin del mdem para ver el formato de los cdigos de marcacin
internacionales.
Cada tabla contiene un mximo de 16 entradas con un ndice en cada lnea de 0 a 15.
Las cadenas incluidas en las tablas del asistente se pueden interpretar con los siguientes formatos
y lmite de tamao de mensaje:
Ejemplos
Este ejemplo muestra el uso de marcadores de posicin en los mensajes:
Mensajes
Mensaje $DATE : $TIME - Valor A = $VAD y Valor B = $VBD
configurado
Valores de los VAD = 10; VBD = 2000
marcadores de
posicin
SMS final enviado 15/04/27 : 11:15:43 - Valor A = 10 y Valor B = 2000
Comandos
Comando Valor A = $VAD y Valor B = $VBD
configurado
SMS recibido Valor A = 300 y Valor B = 2
Valores capturados VAD = 300; VBD = 2
Propiedades
Haga doble clic en el bloque de funciones para abrir la tabla de propiedades de la funcin.
Las propiedades de este bloque de funciones no se pueden modificar en la modalidad online.
El bloque de funciones %SEND_RECV_SMS tiene las propiedades siguientes:
Objetos
El bloque de funciones %SEND_RECV_SMS contiene los objetos siguientes:
EIO0000001477 12/2016
Captulo 10
Funciones de reloj
Funciones de reloj
Descripcin general
En este captulo se describen las funciones de gestin de tiempo para los controladores.
Introduccin
En controladores lgicos equipados con una funcin de reloj en tiempo real (RTC), puede utilizar
las siguientes funciones del reloj de fecha/hora cuando SoMachine Basic est conectado al
controlador lgico:
Los bloques de funciones RTC (vase pgina 237) se utilizan para leer la hora y la fecha del
RTC, o para actualizar el RTC en el logic controller con una fecha y hora definidas por el
usuario.
Los bloques de funciones del Programador (vase pgina 233) se utilizan para controlar
acciones a horas predefinidas o calculadas.
Fijacin de fecha y hora (vase pgina 303) se utiliza para asignar fechas y horas a eventos y
para medir la duracin de los eventos.
El reloj de fecha/hora puede ajustarse mediante un programa (vase pgina 303). La batera del
controlador facilita que la configuracin del reloj siga funcionando durante un ao como mximo
aunque el controlador est apagado. El controlador no tiene una batera recargable. La vida til
promedio de la batera es de 4 aos y debe reemplazarse antes del final de su vida til. Con el
objetivo de no perder los datos durante la sustitucin de la batera, cmbiela durante los 120
segundos posteriores a la extraccin de la batera del controlador.
El reloj de fecha y hora tiene formato de 24 horas y tiene en cuenta los aos bisiestos.
Introduccin
Las palabras de sistema %SW49 a %SW53 contienen la fecha y la hora actuales en formato BCD
que resulta til para realizar visualizaciones o transmisiones a un dispositivo perifrico. Estas
palabras de sistema se pueden utilizar para almacenar la fecha y la hora de un evento.
Las instrucciones BTI se utilizan para convertir fechas y horas de formato BCD a formato binario.
Para obtener ms informacin, consulte las Instrucciones de conversin BCD/binaria
(vase pgina 82).
Fechado de un evento
Para asociar una fecha a un evento, basta con utilizar operaciones de asignacin para transferir
el contenido de palabras de sistema a palabras de memoria y luego procesar estas palabras de
memoria (por ejemplo, transmisin a una pantalla mediante la instruccin EXCH).
Ejemplo de programacin
En este ejemplo se muestra cmo fechar un flanco ascendente en una entrada %I0.1:
Escaln Instruccin
0 LDR %I0.1
[%MW11:5:=%SW49:5]
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Una vez detectado un evento, la tabla de palabras tendr el siguiente contenido:
Introduccin
Los ajustes de fecha y hora en el logic controller pueden actualizarse mediante uno de estos
mtodos:
Utilice la ficha Gestin de RTC de la ficha Puesta en funcionamiento de SoMachine Basic. Este
mtodo slo est disponible en modalidad online (vase SoMachine Basic, Gua de
funcionamiento).
Puede elegir entre dos mtodos:
Manual: este mtodo muestra un selector de hora/fecha y le permite seleccionar
manualmente la hora del logic controller.
Automtico: este mtodo utiliza la hora del PC en el que se ejecuta SoMachine Basic.
Para obtener ms informacin, consulte Gestin de RTC (vase SoMachine Basic, Gua de
funcionamiento).
En un programa, mediante los bloques de funciones RTC (vase pgina 237).
En modalidad online, actualice las palabras del sistema, ya sea de forma directa o por
programacin mediante bloques de funciones, de %SW49 a %SW53 o la palabra del sistema
%SW59.
NOTA: La fecha y la hora slo pueden definirse cuando la caracterstica RTC est disponible en
su logic controller (consulte la gua de programacin del logic controller).
Consulte la gua de programacin de su controlador para obtener una lista completa de palabras
y bits de sistema.
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Las palabras de %MW11 a %MW14 contienen la nueva fecha y hora (consulte Revisin del cdigo
BCD (vase pgina 82)) y corresponden a la codificacin de las palabras de %SW50 a %SW53.
NOTA: Se calcula automticamente %SW49 (da de la semana) en funcin de la fecha
proporcionada.
La tabla de palabras debe contener la nueva fecha y hora:
Utilizacin de %SW59
Otro mtodo para actualizar la fecha y la hora es utilizar el bit de sistema %S59 y la palabra de
sistema de ajuste de fecha %SW59.
El establecimiento del bit %S59 en 1 permite configurar la fecha y la hora actuales mediante la
palabra %SW59. %SW59 aumenta o disminuye cada uno de los componentes de fecha y hora en un
flanco ascendente.
Consulte la gua de programacin de su controlador para obtener una lista completa de palabras
y bits de sistema.
Ejemplo de aplicacin
Este panel frontal se ha creado para modificar la hora, los minutos y los segundos del reloj interno.
NOTA: Consulte el procedimiento de reversibilidad (vase pgina 18) para obtener el diagrama de
contactos equivalente.
Glosario
!
%
Segn el estndar IEC, % es un prefijo que identifica direcciones de memoria interna en el
controlador lgico que se utilizan para almacenar el valor de las variables del programa,
constantes, E/S, etc.
%Q
Segn el estndar IEC, %Q representa un bit de salida (por ejemplo, un objeto de lenguaje de tipo
OUT digital).
A
aplicacin
Un programa que incluye datos de configuracin, smbolos y documentacin.
ASCII
(Cdigo estndar estadounidense para el intercambio de informacin) Un protocolo que
representa caracteres alfanumricos (letras, nmeros y algunos caracteres grficos y de control).
B
bloque de funciones
Una unidad de programacin que dispone de una o varias entradas y devuelve una o varias
salidas. Los FBs se llaman mediante una instancia (copia del bloque de funciones con nombre y
variables dedicados), y todas las instancias tienen un estado persistente (salidas y variables
internas) de una llamada a otra.
Ejemplos: temporizadores, contadores
bus de ampliacin
Un bus de comunicacin electrnico entre los mdulos de E/S de ampliacin y un controlador.
C
configuracin
Organizacin e interconexin de los componentes de hardware en un sistema y los parmetros
del hardware y software que determina las caractersticas operativas del sistema.
controlador
Automatiza procesos industriales (tambin conocido como controlador lgico programable o
controlador programable).
E
E/S
(entrada/salida)
entrada analgica
Convierte los niveles de tensin o corriente recibidos en valores numricos. Puede almacenar y
procesar estos valores en el controlador lgico.
L
lenguaje de diagrama de contactos
Una representacin grfica de instrucciones de un programa de controlador con smbolos para
contactos, bobinas y bloques en una serie de escalones ejecutados de forma secuencial por un
controlador (consulte IEC 61131-3).
lenguaje de la lista de instrucciones
Un programa escrito en el lenguaje de la lista de instrucciones que se compone de una serie de
instrucciones basadas en texto y ejecutadas secuencialmente por el controlador. Cada instruccin
incluye un nmero de lnea, un cdigo de instruccin y un operando (consulte IEC 61131-3).
P
programa
El componente de una aplicacin consistente en cdigo fuente compilado capaz de poder ser
instalado en la memoria de un controlador lgico.
R
RTC
(reloj de tiempo real) Un reloj calendario de fecha/hora con respaldo de batera que funciona de
forma continua aunque el controlador no reciba alimentacin, mientras dure la batera.
S
salida analgica
Convierte los valores numricos del controlador lgico y enva niveles de tensin o corriente
proporcionales.
ndice
D
DEG_TO_RAD, 99 G
desborde Grafcet, propiedades de paso, 243
ndice, 46
desborde de ndice, 46
DINT_TO_REAL, 100 H
direccionamiento herramientas
formato, 29 Objetos de accionamiento, 249
objetos de E/S, 29 objetos de red, 151
disminuir, 74
dividir, 74
I
instruccin NOP, 88
O P
objetos palabras de sistema
definicin de, 26 %SW17, 38
direccin directa, 45 PID, 242
direccin indexada, 45 procesamiento numrico
estructurados, 42 asignacin, 69
indexados, 45 descripcin general, 68
red, 151
software, 153
tablas, 42 R
Objetos de accionamiento, 249 R, 56
objetos de bit RAD_TO_DEG, 99
bloque de funciones, 48 raz cuadrada, 74
objetos de bit de memoria READ_IMM_IN, 138
descripcin, 27 REAL_TO_DINT, 100
objetos de coma flotante REAL_TO_INT, 100
descripcin, 37 restar, 74
objetos de palabra resto, 74
bloque de funciones, 48 ROL_ARR, 127
descripcin, 32 ROR_ARR, 127
objetos de palabra doble RTC
bloque de funciones, 48 configuracin, 241
descripcin, 37
objetos de red, 151, 151
OCCUR_ARR, 126 S
operaciones S, 56
insertar en escalones del diagrama de schedule blocks
contactos, 21 descripcin, 233
operador NOT, 64 shift bit register
operadores configuracin, 224
AND, 58 descripcin, 223
asignacin, 56 ejemplo de programacin, 226
carga, 54 SIN, 97
NOT, 64 SORT_ARR, 129
OR, 60 SQRT, 94
XOR, 62 ST, 56
operadores AND, 58 step counter
operadores de asignacin, 56 configuracin, 229
operadores de carga, 54 descripcin, 228
operadores OR, 60 ejemplo de programacin, 230
operadores OR exclusivos, 62 STN, 56
OR, 60 SUM_ARR, 118
ORF, 60 sumar, 74
ORN, 60
ORR, 60
T
tablas
instrucciones, 115
TAN, 97
timer
configuracin, 162
descripcin, 161
ejemplo de programacin, 170
tipo TOF, 167
tipo TON, 164
tipo TP, 169
TRUNC, 94
U
uso de ejemplos de cdigo fuente, 18
V
valor absoluto, 74
W
WRITE_IMM_OUT, 140
X
XOR, 62
XORF, 62
XORN, 62
XORR, 62