Está en la página 1de 701

Instrucciones generales de los

controladores Logix5000

Manual de referencia
Nmeros de catlogo 1756-L1x,
1756-L5x, 1756-L6x, 1768-L4x, 1769-
L30, 1769-L31, 1769-L32C, 1769-L32E,
1769-L35CR, 1769-L35E, 1789-L60,
1794-L34, 20D
Informacin importante para el usuario
Los equipos de estado slido tienen caractersticas de funcionamiento distintas de las de los equipos electromecnicos.
El documento Safety Guidelines for the Application, Installation and Maintenance of Solid State Controls
(publicacin SGI-1.1 disponible en la oficina de ventas local del Rockwell Automation o en lnea en
http://literature.rockwellautomation.com) describe algunas diferencias importantes entre los equipos de estado slido y
los dispositivos electromecnicos de lgica cableada. Debido a esta diferencia y tambin a la gran variedad de usos de los
equipos de estado slido, toda persona encargada de la aplicacin de estos equipos debe asegurarse de la idoneidad de
cada una de las aplicaciones concebidas con estos equipos.
En ningn caso Rockwell Automation, Inc. ser responsable ni asumir ninguna obligacin por daos indirectos o
consecuentes que resulten del uso o de la aplicacin de estos equipos.
Los ejemplos y diagramas presentados en este manual se incluyen nicamente con fines ilustrativos. Debido a las
numerosas variables y requisitos asociados con cualquier instalacin en particular, Rockwell Automation, Inc. no puede
asumir responsabilidad u obligacin alguna por el uso de estos equipos basado en ejemplos y diagramas.
Rockwell Automation, Inc. no asume ninguna obligacin de patente con respecto al uso de la informacin, los circuitos,
los equipos o el software descritos en este manual.
Se prohbe la reproduccin total o parcial del contenido de este manual sin la autorizacin escrita de
Rockwell Automation, Inc.
Este manual contiene notas de seguridad en cada circunstancia en que se estimen necesarias.

Identifica informacin sobre prcticas o circunstancias que pueden provocar una explosin en un
ADVERTENCIA
ambiente peligroso, lo que podra causar lesiones personales o la muerte, daos materiales o
prdidas econmicas.

IMPORTANTE Identifica informacin importante para la correcta aplicacin y comprensin del producto.

Identifica informacin sobre prcticas o circunstancias que pueden provocar lesiones personales
ATENCIN
o la muerte, daos materiales o prdidas econmicas. Los mensajes de Atencin le ayudan a
identificar y evitar un peligro, y a reconocer las consecuencias.

PELIGRO DE CHOQUE Puede haber etiquetas en el exterior o en el interior del equipo (por ejemplo, en un variador o un
motor) para advertir sobre la posible presencia de un voltaje peligroso.

PELIGRO DE QUEMADURA Puede haber etiquetas en el exterior o en el interior del equipo (por ejemplo, en un variador o un
motor) para advertir sobre superficies que podran estar a temperaturas peligrosas.

Allen-Bradley, Rockwell Automation y TechConnect son marcas comerciales de Rockwell Automation, Inc.

Las marcas comerciales no pertenecientes a Rockwell Automation son propiedad de sus respectivas empresas.
ndice

Prefacio

Instrucciones generales de Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23


controladores Logix5000 A quin est dirigido este manual . . . . . . . . . . . . . . . . . . . . 23
Propsito de este manual . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Informacin comn para todas las instrucciones. . . . . . . . . . 25
Convenciones y trminos relacionados. . . . . . . . . . . . . . . . . 25
Establecer y borrar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Condicin de rengln de lgica de escalera de rels . . . . 26
Estados del bloque de funciones . . . . . . . . . . . . . . . . . . 27

Captulo 1
Instrucciones basadas en Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Logix para alarmas y eventos Alarma digital (ALMD). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
FactoryTalk Diagramas de estado cuando se requiere
(ALMD, ALMA) confirmacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Diagramas de estado cuando no se requiere
confirmacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Confirmacin de alarma ALMD requerida y enclavada . . . 38
Confirmacin de alarma ALMD requerida y no
enclavada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Confirmacin de alarma ALMD no requerida y
enclavada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Confirmacin de alarma ALMD no requerida y no
enclavada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Alarma Analgica (ALMA) . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Diagramas de estado cuando se requiere
confirmacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Diagramas de estado cuando no se requiere
confirmacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Confirmacin de condicin de nivel ALMA requerida . . . 57
Confirmacin de condicin de nivel ALMA no
requerida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Confirmacin de velocidad de cambio ALMA
requerida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Confirmacin de velocidad de cambio ALMA
no requerida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Configure una instruccin de alarma . . . . . . . . . . . . . . . . . . 62
Introduzca el texto del mensaje de alarma . . . . . . . . . . . . . . 65
Variables de la cadena de mensaje . . . . . . . . . . . . . . . . . 66
Versiones de los mensajes de alarma en mltiples
idiomas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Monitoreo del estado de alarma. . . . . . . . . . . . . . . . . . . . . . 68
Almacenamiento de alarmas en el bfer. . . . . . . . . . . . . . . . 69
Acceda programticamente a informacin de alarmas . . . . . . 70
Suprima o inhabilite alarmas . . . . . . . . . . . . . . . . . . . . . . . . 71
Ejecucin de alarma basada en el controlador . . . . . . . . . . . 72
Uso de la memoria del controlador. . . . . . . . . . . . . . . . . 73
Tiempo de escn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

3Publicacin 1756-RM003K-ES-P Julio 2008 3


ndice

Captulo 2
Instrucciones de bits Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
(XIC, XIO, OTE, OTL, OTU, ONS, Examinar si est cerrado (XIC). . . . . . . . . . . . . . . . . . . . . . . 78
OSR, OSF, OSRI, OSFI) Examinar si est abierto (XIO) . . . . . . . . . . . . . . . . . . . . . . . 80
Activacin de salida (OTE) . . . . . . . . . . . . . . . . . . . . . . . . . 82
Enclavamiento de salida (OTL) . . . . . . . . . . . . . . . . . . . . . . 84
Desenclavamiento de salida (OTU) . . . . . . . . . . . . . . . . . . . 86
Un impulso (ONS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Un impulso en flanco ascendente (OSR) . . . . . . . . . . . . . . . 91
Un impulso en flanco descendente (OSF) . . . . . . . . . . . . . . 94
Un impulso en flanco ascendente con entrada (OSRI) . . . . . 96
Un impulso en flanco descendente con entrada (OSFI). . . . . 99

Captulo 3
Instrucciones de temporizador y Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
contador Temporizador de retardo a la conexin (TON). . . . . . . . . . 104
(TON, TOF, RTO, TONR, TOFR, Temporizador de retardo a la desconexin (TOF) . . . . . . . 108
RTOR, CTU, CTD, CTUD, RES) Temporizador retentivo activado (RTO) . . . . . . . . . . . . . . . 112
Temporizador de retardo a la conexin con
restablecimiento (TONR) . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Temporizador de retardo a la desconexin con
restablecimiento (TOFR) . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Temporizador retentivo activado con restablecimiento
(RTOR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Conteo progresivo (CTU) . . . . . . . . . . . . . . . . . . . . . . . . . 128
Conteo regresivo (CTD) . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Conteo progresivo/regresivo (CTUD) . . . . . . . . . . . . . . . . . 136
Restablecer (RES) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

Captulo 4
Instrucciones de entrada/salida Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
(MSG, GSV, SSV, IOT) Mensaje (MSG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Cdigos de error MSG . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Cdigos de error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Cdigos de error extendidos . . . . . . . . . . . . . . . . . . . . 154
Cdigos de error PLC y SLC (.ERR) . . . . . . . . . . . . . . . . 156
Cdigos de error de transferencia en bloques . . . . . . . . 158
Especifique los detalles de configuracin . . . . . . . . . . . . . . 159
Especifique mensajes de lectura y escritura de la tabla
de datos CIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Reconfigure un mdulo de E/S. . . . . . . . . . . . . . . . . . . 161
Especifique mensajes genricos CIP . . . . . . . . . . . . . . . 162
Especifique mensajes PLC-5 . . . . . . . . . . . . . . . . . . . . . 163
Especifique mensajes SLC. . . . . . . . . . . . . . . . . . . . . . . 165
Especifique mensajes de transferencia en bloques . . . . . 165
Especifique mensajes PLC-3 . . . . . . . . . . . . . . . . . . . . . 166
Especifique mensajes PLC-2 . . . . . . . . . . . . . . . . . . . . . 167
Ejemplos de configuracin MSG . . . . . . . . . . . . . . . . . . . . 168
Especifique los detalles de comunicacin. . . . . . . . . . . . . . 169

4 Publicacin 1756-RM003K-ES-P Julio 2008


ndice

Especifique una ruta . . . . . . . . . . . . . . . . . . . . . . . . . . 169


Para transferencia en bloques. . . . . . . . . . . . . . . . . . . . 172
Especifique un mtodo de comunicacin o una
direccin de mdulo . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Seleccione una opcin de cach. . . . . . . . . . . . . . . . . . 173
Pautas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Obtener valor del sistema (GSV) y establecer valor del
sistema (SSV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Objetos GSV/SSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Acceso al objeto CONTROLLER . . . . . . . . . . . . . . . . . . 180
Acceso al objeto CONTROLLERDEVICE . . . . . . . . . . . . 181
Acceso al objeto CST . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Acceso al objeto DF1 . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Acceso al objeto FAULTLOG . . . . . . . . . . . . . . . . . . . . 187
Acceso al objeto MESSAGE. . . . . . . . . . . . . . . . . . . . . . 188
Acceso al objeto MODULE . . . . . . . . . . . . . . . . . . . . . . 190
Acceso al objeto MOTIONGROUP . . . . . . . . . . . . . . . . 191
Acceso al objeto PROGRAM . . . . . . . . . . . . . . . . . . . . . 192
Acceso al objeto ROUTINE. . . . . . . . . . . . . . . . . . . . . . 193
Acceso al objeto SERIALPORT . . . . . . . . . . . . . . . . . . . 193
Acceso al objeto TASK . . . . . . . . . . . . . . . . . . . . . . . . . 195
Acceso al objeto WALLCLOCKTIME . . . . . . . . . . . . . . . 197
Ejemplo de programacin GSV/SSV . . . . . . . . . . . . . . . . . . 198
Obtenga informacin de fallo . . . . . . . . . . . . . . . . . . . . 198
Establezca los indicadores de habilitacin e
inhabilitacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Salida inmediata (IOT) . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

Captulo 5
Instrucciones de comparacin Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
(CMP, EQU, GEQ, GRT, LEQ, LES, Comparar (CMP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
LIM, MEQ, NEQ) Expresiones CMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Operadores vlidos . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Expresiones de formato . . . . . . . . . . . . . . . . . . . . . . . . 209
Determine el orden de operacin . . . . . . . . . . . . . . . . . 209
Use cadenas en una expresin . . . . . . . . . . . . . . . . . . . 210
Igual a (EQU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Mayor o igual que (GEQ) . . . . . . . . . . . . . . . . . . . . . . . . . 215
Mayor que (GRT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Menor o igual que (LEQ). . . . . . . . . . . . . . . . . . . . . . . . . . 223
Menor que (LES) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Lmite (LIM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Mscara igual que (MEQ) . . . . . . . . . . . . . . . . . . . . . . . . . 237
Introduccin de un valor de mscara inmediato . . . . . . 238
Diferente de (NEQ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242

Publicacin 1756-RM003K-ES-P Julio 2008 5


ndice

Captulo 6
Instrucciones de clculo/ Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
matemticas Calcular (CPT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
(CPT, ADD, SUB, MUL, DIV, MOD, Operadores vlidos . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
SQR, SQRT, NEG, ABS) Expresiones de formato . . . . . . . . . . . . . . . . . . . . . . . . 250
Determine el orden de operacin . . . . . . . . . . . . . . . . . 251
Sumar (ADD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Restar (SUB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Multiplicar (MUL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Dividir (DIV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Mdulo (MOD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Raz cuadrada (SQR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Cambiar signo (NEG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Valor absoluto (ABS). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277

Captulo 7
Instrucciones de movimiento/ Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 281
lgicas Mover (MOV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 283
(MOV, MVM, BTD, MVMT, BTDT, Mover con mscara (MVM) . . . . . . . . . . . . . . . . . . . . . . .. 285
CLR, SWPB, AND, OR, XOR, NOT, Introduzca un valor de mscara inmediato . . . . . . . . .. 286
Movimiento enmascarado con receptor (MVMT). . . . . . . .. 288
BAND, BOR, BXOR, BNOT) Distribuir campo de bits (BTD) . . . . . . . . . . . . . . . . . . . .. 292
Distribuir campo de bits con receptor (BTDT) . . . . . . . . .. 295
Borrar (CLR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 298
Intercambiar byte (SWPB) . . . . . . . . . . . . . . . . . . . . . . . .. 300
Y a nivel de bits (AND) . . . . . . . . . . . . . . . . . . . . . . . . . .. 304
O a nivel de bits (OR) . . . . . . . . . . . . . . . . . . . . . . . . . . .. 307
O exclusivo a nivel de bits (XOR) . . . . . . . . . . . . . . . . . .. 310
NO a nivel de bits (NOT) . . . . . . . . . . . . . . . . . . . . . . . .. 314
Y booleano (BAND) . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 317
O booleano (BOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 320
O exclusivo booleano (BXOR). . . . . . . . . . . . . . . . . . . . .. 323
NO booleano (BNOT) . . . . . . . . . . . . . . . . . . . . . . . . . . .. 326

Captulo 8
Instrucciones de matriz Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
(archivo)/miscelneas Seleccin del modo de operacin . . . . . . . . . . . . . . . . . . . 330
(FAL, FSC, COP, CPS, FLL, AVE, Modo Todos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
SRT, STD, SIZE) Modo numrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
Modo incremental . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Aritmtica y lgica de archivo (FAL) . . . . . . . . . . . . . . . . . 335
Expresiones FAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
Operadores vlidos . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Expresiones de formato . . . . . . . . . . . . . . . . . . . . . . . . 345
Determine el orden de operacin . . . . . . . . . . . . . . . . . 346
Bsqueda y comparacin de archivos (FSC) . . . . . . . . . . . . 347
Expresiones FSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
Operadores vlidos . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
Expresiones de formato . . . . . . . . . . . . . . . . . . . . . . . . 353

6 Publicacin 1756-RM003K-ES-P Julio 2008


ndice

Determine el orden de operacin . . . . . . . . . . . . . . . . . 354


Use cadenas en una expresin . . . . . . . . . . . . . . . . . . . 355
Copiar archivo (COP) Copiar archivo sncrono (CPS) . . . . . 356
Llenar archivo (FLL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Promedio de archivo (AVE) . . . . . . . . . . . . . . . . . . . . . . . . 366
Clasificacin de archivo (SRT) . . . . . . . . . . . . . . . . . . . . . . 371
Desviacin estndar de archivo (STD) . . . . . . . . . . . . . . . . 376
Tamao en elementos (SIZE). . . . . . . . . . . . . . . . . . . . . . . 381

Captulo 9
Instrucciones de matriz Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
(archivo)/desplazamiento Desplazamiento de bits a la izquierda (BSL) . . . . . . . . . . . . 386
(BSL, BSR, FFL, FFU, LFL, LFU) Desplazamiento de bits a la derecha (BSR). . . . . . . . . . . . . 390
Carga FIFO (FFL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
Descarga FIFO (FFU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
Carga LIFO (LFL). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
Descarga LIFO (LFU). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412

Captulo 10
Instrucciones de secuenciador Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
(SQI, SQO, SQL) Secuenciador de entrada (SQI) . . . . . . . . . . . . . . . . . . . . . 420
Introduzca un valor de mscara inmediato . . . . . . . . . . 421
Use SQI sin SQO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
Secuenciador de salida (SQO) . . . . . . . . . . . . . . . . . . . . . . 424
Introduzca un valor de mscara inmediato . . . . . . . . . . 425
Uso de SQI con SQO . . . . . . . . . . . . . . . . . . . . . . . . . . 427
Restablecimiento de la posicin de SQO. . . . . . . . . . . . 427
Carga de secuenciador (SQL). . . . . . . . . . . . . . . . . . . . . . . 428

Captulo 11
Instrucciones de control de Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
programa Saltar a etiqueta (JMP)
(JMP, LBL, JSR, RET, SBR, JXR, Etiqueta (LBL). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
TND, MCR, UID, UIE, AFI, Salto a subrutina (JSR)
Subrutina (SBR) Retorno (RET) . . . . . . . . . . . . . . . . . . . . . 436
NOP, EOT, SFP, SFR, EVENT) Salto a rutina externa (JXR) . . . . . . . . . . . . . . . . . . . . . . . . 447
Fin temporal (TND). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
Restablecimiento de control maestro (MCR) . . . . . . . . . . . . 452
Inhabilitacin de interrupcin de usuario (UID)
Habilitacin de interrupcin de usuario (UIE) . . . . . . . . . . 454
Instruccin siempre falso (AFI) . . . . . . . . . . . . . . . . . . . . . 456
Sin operacin (NOP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Fin de transicin (EOT) . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
Pausa SFC (SFP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
Restablecer SFC (SFR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
Activar tarea de evento (EVENT) . . . . . . . . . . . . . . . . . . . . 464
Determine programticamente si una instruccin
EVENT activ una tarea . . . . . . . . . . . . . . . . . . . . . . . . 464

Publicacin 1756-RM003K-ES-P Julio 2008 7


ndice

Captulo 12
Instrucciones For/Break Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
(FOR, FOR...DO, BRK, EXIT, RET) For (FOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
Interrumpir (BRK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
Retornar (RET) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474

Captulo 13
Instrucciones especiales Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
(FBC, DDT, DTR, PID) Comparacin de bits de archivo (FBC). . . . . . . . . . . . . . . . 478
Seleccin del modo de bsqueda . . . . . . . . . . . . . . . . . 480
Deteccin de diagnstico (DDT) . . . . . . . . . . . . . . . . . . . . 486
Seleccin del modo de bsqueda . . . . . . . . . . . . . . . . . 488
Transicin de datos (DTR). . . . . . . . . . . . . . . . . . . . . . . . . 494
Introduzca un valor de mscara inmediato . . . . . . . . . . 495
Proporcional integral derivativo (PID) . . . . . . . . . . . . . . . . 497
Configure una instruccin PID. . . . . . . . . . . . . . . . . . . . . . 502
Especifique el ajuste. . . . . . . . . . . . . . . . . . . . . . . . . . . 503
Especifique la configuracin. . . . . . . . . . . . . . . . . . . . . 504
Especificacin de alarmas. . . . . . . . . . . . . . . . . . . . . . . 504
Especificacin de escalado . . . . . . . . . . . . . . . . . . . . . . 505
Uso de instrucciones PID . . . . . . . . . . . . . . . . . . . . . . . . . 505
Bloqueo de accin integral y transferencia sin
perturbaciones de manual a automtico . . . . . . . . . . . . 507
Temporizacin de la instruccin PID . . . . . . . . . . . . . . 508
Reinicio sin problemas . . . . . . . . . . . . . . . . . . . . . . . . . 512
Suavizado derivativo . . . . . . . . . . . . . . . . . . . . . . . . . . 513
Establezca la banda muerta . . . . . . . . . . . . . . . . . . . . . 514
Use lmite de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
Ganancia anticipativa o polarizacin de salida . . . . . . . 515
Lazos en cascada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
Control de relacin . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
Teora de PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
Proceso PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
Proceso PID con lazos maestro/esclavo . . . . . . . . . . . . 517

Captulo 14
Instrucciones trigonomtricas Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
(SIN, COS, TAN, ASN, ASIN, ACS, Seno (SIN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
ACOS, ATN, ATAN) Coseno (COS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
Tangente (TAN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526
Arco seno (ASN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
Arco coseno (ACS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532
Arco tangente (ATN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535

8 Publicacin 1756-RM003K-ES-P Julio 2008


ndice

Captulo 15
Instrucciones matemticas Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
avanzadas Logaritmo natural (LN) . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
(LN, LOG, XPY) Logaritmo base 10 (LOG) . . . . . . . . . . . . . . . . . . . . . . . . . 543
X a la potencia de Y (XPY) . . . . . . . . . . . . . . . . . . . . . . . . 546

Captulo 16
Instrucciones de conversin Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549
matemtica Grados (DEG). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
(DEG, RAD, TOD, FRD, TRN, Radianes (RAD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
TRUNC) Convertir a BCD (TOD). . . . . . . . . . . . . . . . . . . . . . . . . . . 556
Convertir a entero (FRD) . . . . . . . . . . . . . . . . . . . . . . . . . . 559
Truncar (TRN). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561

Captulo 17
Instrucciones para puerto serie Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
ASCII Ejecucin de la instruccin. . . . . . . . . . . . . . . . . . . . . . 566
(ABL, ACB, ACL, AHL, ARD, ARL, Cdigos de error ASCII . . . . . . . . . . . . . . . . . . . . . . . . 568
AWA, AWT) Tipos de datos de cadena. . . . . . . . . . . . . . . . . . . . . . . 569
Prueba ASCII para lnea de bfer (ABL) . . . . . . . . . . . . . . . 570
Caracteres ASCII en el bfer (ACB) . . . . . . . . . . . . . . . . . . 573
Borrar ASCII bfer (ACL) . . . . . . . . . . . . . . . . . . . . . . . . . . 575
Lneas de handshake ASCII (AHL) . . . . . . . . . . . . . . . . . . . 577
Lectura ASCII (ARD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
Lectura ASCII de lnea (ARL) . . . . . . . . . . . . . . . . . . . . . . . 585
Escritura ASCII con anexo (AWA) . . . . . . . . . . . . . . . . . . . 589
Escritura ASCII (ASCII Write (AWT)) . . . . . . . . . . . . . . . . . 594

Captulo 18
Instrucciones de cadena ASCII Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
(CONCAT, DELETE, FIND, INSERT, Tipos de datos de cadena. . . . . . . . . . . . . . . . . . . . . . . 600
MID) Concatenacin de cadenas (CONCAT) . . . . . . . . . . . . . . . . 601
Eliminacin de cadena (DELETE). . . . . . . . . . . . . . . . . . . . 603
Encontrar cadena (FIND). . . . . . . . . . . . . . . . . . . . . . . . . . 605
Insertar cadena (INSERT). . . . . . . . . . . . . . . . . . . . . . . . . . 607
Cadena central (MID) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609

Captulo 19
Instrucciones de conversin ASCII Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611
(STOD, STOR, DTOS, RTOS, UPPER, Tipos de datos de cadena. . . . . . . . . . . . . . . . . . . . . . . 613
LOWER) Cadena en DINT (STOD). . . . . . . . . . . . . . . . . . . . . . . . . . 614
Cadena en REAL (STOR) . . . . . . . . . . . . . . . . . . . . . . . . . . 616
DINT en cadena (DTOS) . . . . . . . . . . . . . . . . . . . . . . . . . . 619
REAL en cadena (RTOS) . . . . . . . . . . . . . . . . . . . . . . . . . . 621
Maysculas (UPPER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623
Minsculas (Lower Case (LOWER)) . . . . . . . . . . . . . . . . . . 625

Publicacin 1756-RM003K-ES-P Julio 2008 9


ndice

Captulo 20
Instrucciones de depuracin Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627
(BPT, TPT) Puntos de interrupcin (BPT) . . . . . . . . . . . . . . . . . . . . . . 627
Formato de cadena . . . . . . . . . . . . . . . . . . . . . . . . . . . 628
Puntos de rastreo (TPT). . . . . . . . . . . . . . . . . . . . . . . . . . . 631
Formato de cadena . . . . . . . . . . . . . . . . . . . . . . . . . . . 631

Apndice A
Atributos comunes Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
Valores inmediatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
Conversiones de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
SINT o INT en DINT . . . . . . . . . . . . . . . . . . . . . . . . . . 637
Entero en REAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639
DINT en SINT o INT . . . . . . . . . . . . . . . . . . . . . . . . . . 639
REAL en un nmero entero . . . . . . . . . . . . . . . . . . . . . 640

Apndice B
Atributos de bloque de funciones Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
Seleccin de elementos de bloques de funciones . . . . . . . . 641
Enclavamiento de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . 642
Orden de ejecucin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644
Resolucin de un lazo . . . . . . . . . . . . . . . . . . . . . . . . . 645
Resolucin del flujo de datos entre dos bloques . . . . . . 647
Creacin de un retardo de escn . . . . . . . . . . . . . . . . . 647
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648
Respuestas de bloque de funciones a condiciones de
overflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648
Modos de temporizacin . . . . . . . . . . . . . . . . . . . . . . . . . 649
Parmetros de instruccin comunes para modos de
temporizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651
Descripcin general de los modos de temporizacin . . . 653
Control de programa/operador . . . . . . . . . . . . . . . . . . . . . 654

10 Publicacin 1756-RM003K-ES-P Julio 2008


ndice

Apndice C
Programacin de texto Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659
estructurado Sintaxis del texto estructurado . . . . . . . . . . . . . . . . . . . . . . 659
Asignaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661
Especifique una asignacin no retentiva . . . . . . . . . . . . 662
Asigne un carcter ASCII a una cadena . . . . . . . . . . . . . 663
Expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
Use funciones y operadores aritmticos . . . . . . . . . . . . 665
Use operadores relacionales . . . . . . . . . . . . . . . . . . . . . 666
Use operadores lgicos . . . . . . . . . . . . . . . . . . . . . . . . 668
Use operadores a nivel de bits . . . . . . . . . . . . . . . . . . . 669
Determine el orden de ejecucin . . . . . . . . . . . . . . . . . 669
Instrucciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 670
Construcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671
Algunas palabras clave estn reservadas para uso
futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671
IF...THEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672
CASE...OF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
FORDO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678
WHILEDO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681
REPEATUNTIL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684
Comentarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687
ndice Cdigos de caracteres ASCII . . . . . . . . . . . . . . . . . . . . . 697

Publicacin 1756-RM003K-ES-P Julio 2008 11


ndice

12 Publicacin 1756-RM003K-ES-P Julio 2008


Resumen de cambios

Introduccin Esta versin del documento contiene informacin nueva y actualizada.


Para encontrar la informacin nueva y actualizada, busque barras de
cambio como las mostradas al lado de este prrafo.

Informacin actualizada Este documento contiene los siguientes cambios.

Cambio Pgina
Captulo 1 Se combinaron las instrucciones de alarma digital (ALMD) 29
y de alarma analgica (ALMA) en un captulo. Se aadi informacin
sobre configuracin, cadenas de mensajes y estados.
Captulo 4 Se aadieron nuevos atributos de objeto de controlador 180
GSV/SSV.
Captulo 20 Se aadieron instrucciones de depuracin (PPT, TPT). 627

13Publicacin 1756-RM003K-ES-P Julio 2008 13


Resumen de cambios

Notas:

14 Publicacin 1756-RM003K-ES-P Julio 2008


Ubicacin de instrucciones

Dnde se encuentran las instrucciones


Use esta tabla de ubicacin de instrucciones para encontrar
detalles de referencia acerca de las instrucciones Logix (las
instrucciones atenuadas en color gris estn disponibles en
otros manuales). Esta tabla de ubicacin de instrucciones
tambin indica los lenguajes de programacin disponibles
para las instrucciones.

Si la tabla de ubicacin indica: La instruccin se encuentra en:


un nmero de pgina este manual
control de movimiento Logix5000 Controllers Motion Instruction Set Reference Manual,
publicacin 1756-RM007
PhaseManager PhaseManager User Manual, publicacin LOGIX-UM001
control de procesos Logix5000 Controllers Process Control and Drives Instruction Set
Reference Manual, publicacin 1756-RM006

15Publicacin 1756-RM003K-ES-P Julio 2008 15


Ubicacin de instrucciones

Instruccin: Ubicacin: Lenguajes: Instruccin: Ubicacin: Lenguajes:


ABL 609 lgica de escalera AWA 589 lgica de escalera
Prueba ASCII para lnea de de rels Escritura ASCII con anexo de rels
bfer texto estructurado texto estructurado

ABS 277 lgica de escalera AWT 594 lgica de escalera


de rels Escritura ASCII de rels
Valor absoluto texto estructurado
texto estructurado
bloque de funciones
BAND 317 texto estructurado
Y booleano bloque de funciones
ACB 573 lgica de escalera
Caracteres ASCII en el bfer de rels
texto estructurado BNOT 326 texto estructurado
NO booleano bloque de funciones
ACL 575 lgica de escalera
Borrar ASCII bfer de rels BOR 320 texto estructurado
texto estructurado O booleano bloque de funciones

ACS 532 lgica de escalera BPT 627 lgica de escalera


Arco coseno de rels Puntos de interrupcin de rels
bloque de
funciones, texto BRK 473 lgica de escalera
estructurado de rels
Interrupcin
ADD 252 lgica de escalera
de rels BSL 386 lgica de escalera
Suma de rels
texto estructurado Desplazamiento de bit a la
bloque de funciones izquierda
AFI 456 lgica de escalera BSR 390 lgica de escalera
Instruccin siempre falso de rels Desplazamiento de bit a la de rels
derecha
AHL 577 lgica de escalera
Lneas de handshake ASCII de rels BTD 295 lgica de escalera
texto estructurado Distribuir campo de bits de rels
ALM control de texto estructurado
BTDT 295 texto estructurado
Alarma procesos bloque de funciones bloque de funciones
Distribuir campo de bits con
ALMA 42 lgica de escalera receptor
Alarma analgica de rels
texto estructurado BTR 144 lgica de escalera
bloque de funciones Mensaje de rels
texto estructurado
ALMD 30 lgica de escalera
de rels BTW 144 lgica de escalera
Alarma digital de rels
texto estructurado Mensaje
bloque de funciones texto estructurado

AND 304 lgica de escalera BXOR 323 texto estructurado


de rels O exclusivo booleano bloque de funciones
Y a nivel de bits
texto estructurado
bloque de funciones CC control de texto estructurado
Control coordinado procesos bloque de funciones
ARD 581 lgica de escalera
Lectura ASCII de rels CLR 295 lgica de escalera
texto estructurado Borrar de rels
texto estructurado
ARL 585 lgica de escalera
Lectura ASCII de lnea de rels CMP 206 lgica de escalera
texto estructurado Comparar de rels
ASN 529 lgica de escalera CONCAT 601 lgica de escalera
Arco seno de rels Concatenar cadenas de rels
texto estructurado texto estructurado
bloque de funciones
COP 356 lgica de escalera
ATN 535 lgica de escalera Copiar archivo de rels
Arco tangente de rels texto estructurado
texto estructurado
bloque de funciones COS 523 lgica de escalera
Coseno de rels
AVE 366 lgica de escalera texto estructurado
Promedio de archivo de rels bloque de funciones

16 Publicacin 1756-RM003K-ES-P Julio 2008


Ubicacin de instrucciones

Instruccin: Ubicacin: Lenguajes: Instruccin: Ubicacin: Lenguajes:


CPS 356 lgica de escalera FAL 335 lgica de escalera
Copiar archivo sncrono de rels Aritmtica y lgica de de rels
texto estructurado archivo
CPT 248 lgica de escalera
FBC 478 lgica de escalera
Calcular de rels de rels
Comparacin de bits de
CTD 132 lgica de escalera archivo
Conteo regresivo de rels
FFL 394 lgica de escalera
Carga FIFO de rels
CTU 128 lgica de escalera
Conteo progresivo de rels
FFU 400 lgica de escalera
Descarga FIFO de rels
CTUD 136 texto estructurado
Conteo progresivo/regresivo bloque de funciones
FGEN control de texto estructurado
Generador de funciones procesos bloque de funciones
D2SD control de texto estructurado
Dispositivo discreto de procesos bloque de funciones
FIND 605 lgica de escalera
2 estados de rels
Encontrar cadena
texto estructurado
D3SD control de texto estructurado
Dispositivo discreto de procesos bloque de funciones FLL 362 lgica de escalera
3 estados Llenar archivo de rels

DDT 486 lgica de escalera FOR 470 lgica de escalera


Deteccin de diagnstico de rels Instruccin FOR de rels

DEDT control de texto estructurado FRD 559 lgica de escalera


Tiempo muerto procesos bloque de funciones Convertir en entero de rels
bloque de funciones
DEG 553 lgica de escalera
Grados de rels FSC 347 lgica de escalera
texto estructurado Bsqueda y comparacin de de rels
bloque de funciones archivos
DELETE 603 lgica de escalera GEQ 215 lgica de escalera
Eliminar cadena de rels Mayor o igual que de rels
texto estructurado texto estructurado
bloque de funciones
DERV control de texto estructurado
Derivada procesos bloque de funciones GRT 219 lgica de escalera
Mayor que de rels
DFF control de texto estructurado texto estructurado
Circuito multivibrador D procesos bloque de funciones bloque de funciones

DIV 261 lgica de escalera GSV 176 lgica de escalera


de rels Obtener valor del sistema de rels
Dividir texto estructurado
texto estructurado
bloque de funciones
HLL control de texto estructurado
DTOS 619 lgica de escalera Lmite superior/inferior procesos bloque de funciones
DINT en cadena de rels
texto estructurado HPF control de texto estructurado
Filtro pasaaltos procesos bloque de funciones
DTR 494 lgica de escalera
Transicin de datos de rels ICON 641 bloque de funciones
Conector de cable de entrada
EOT 458 lgica de escalera
Fin de transicin de rels IMC control de texto estructurado
texto estructurado bloque de funciones
Control de modelos interno procesos
EQU 206 lgica de escalera
de rels INSERT 607 lgica de escalera
Igual a de rels
texto estructurado Insertar cadena
bloque de funciones texto estructurado

ESEL control de texto estructurado INTG control de texto estructurado


bloque de funciones Integrador procesos bloque de funciones
Seleccin mejorada procesos
EVENT 464 lgica de escalera IOT 201 lgica de escalera
de rels Salida inmediata de rels
Activar tarea de evento texto estructurado
texto estructurado

Publicacin 1756-RM003K-ES-P Julio 2008 17


Ubicacin de instrucciones

Instruccin: Ubicacin: Lenguajes: Instruccin: Ubicacin: Lenguajes:


IREF 641 bloque de funciones MAG control de lgica de escalera
Referencia de entrada Engranaje de eje de movimiento de rels
movimiento texto estructurado
JKFF control de texto estructurado
Circuito multivibrador JK procesos bloque de funciones MAHD control de lgica de escalera
Aplicar diagnsticos de movimiento de rels
JMP 434 lgica de escalera conexin de movimiento texto estructurado
Saltar a etiqueta de rels
MAH control de lgica de escalera
JSR 436 lgica de escalera Posicin inicial de eje de movimiento de rels
Saltar a subrutina de rels texto estructurado
texto estructurado movimiento
bloque de funciones
MAJ control de lgica de escalera
JXR 447 lgica de escalera Impulso de eje de movimiento de rels
de rels movimiento texto estructurado
Saltar a subrutina externa
LBL 434 lgica de escalera MAM control de lgica de escalera
Etiqueta de rels Mover eje de movimiento movimiento de rels
texto estructurado
LDL2 control de texto estructurado
bloque de funciones MAOC control de lgica de escalera
Avance-retardo de segundo procesos de rels
orden
Leva de salida de brazo de movimiento
movimiento texto estructurado
LDLG control de texto estructurado
bloque de funciones MAPC control de lgica de escalera
Avance-retardo procesos de rels
Leva de posicin de eje de movimiento
movimiento texto estructurado
LEQ 223 lgica de escalera
Menor o igual que de rels
texto estructurado MAR control de lgica de escalera
bloque de funciones Registro de brazo de movimiento de rels
movimiento texto estructurado
LES 227 lgica de escalera
Menor que de rels MASD control de lgica de escalera
texto estructurado de rels
bloque de funciones
Desactivacin de eje de movimiento
movimiento texto estructurado
LFL 406 lgica de escalera
de rels MAS control de lgica de escalera
Carga LIFO de rels
Paro de eje de movimiento movimiento
texto estructurado
LFU 412 lgica de escalera
Descarga LIFO de rels
MASR control de lgica de escalera
Restablecer desactivacin de movimiento de rels
LIM 231 lgica de escalera texto estructurado
Lmite de rels eje de movimiento
bloque de funciones
MATC control de lgica de escalera
LN 540 lgica de escalera Leva de tiempo de eje de movimiento de rels
Logaritmo natural de rels movimiento texto estructurado
texto estructurado
bloque de funciones MAVE control de texto estructurado
Promedio mvil procesos bloque de funciones
LOG (1) lgica de escalera
Logaritmo base 10 de rels
texto estructurado MAW control de lgica de escalera
Observar brazo de movimiento de rels
bloque de funciones texto estructurado
movimiento
LOWER 625 lgica de escalera
Minsculas de rels MAXC control de texto estructurado
texto estructurado Captura mxima procesos bloque de funciones

LPF control de texto estructurado MCCD control de lgica de escalera


Filtro pasabajos procesos bloque de funciones de rels
Dinmica de cambio movimiento
coordinado de movimiento texto estructurado
MAAT control de lgica de escalera
Aplicar ajuste a eje de movimiento de rels MCCM control de lgica de escalera
movimiento texto estructurado de rels
Movimiento circular movimiento
coordinado de movimiento texto estructurado
MAFR control de lgica de escalera
Restablecimiento de fallo de movimiento de rels MCCP control de lgica de escalera
eje de movimiento texto estructurado de rels
Perfil de leva de clculo de movimiento
movimiento texto estructurado

18 Publicacin 1756-RM003K-ES-P Julio 2008


Ubicacin de instrucciones

Instruccin: Ubicacin: Lenguajes: Instruccin: Ubicacin: Lenguajes:


MCD control de lgica de escalera MGSR control de lgica de escalera
Dinmica de cambio de movimiento de rels Restablecimiento de movimiento de rels
movimiento texto estructurado desactivacin de grupo de texto estructurado
movimiento
MCLM control de lgica de escalera
Movimiento lineal de movimiento de rels MID 609 lgica de escalera
coordenadas de movimiento texto estructurado Cadena central de rels
texto estructurado
MCR 452 lgica de escalera
Restablecimiento de control de rels MINC control de texto estructurado
Captura mnima procesos bloque de funciones
maestro
MCSD control de lgica de escalera IMMC control de texto estructurado
de rels Control multivariable procesos bloque de funciones
Desactivacin de movimiento
coordenadas de movimiento texto estructurado modular

MCS control de lgica de escalera MOD 266 lgica de escalera


de rels Mdulo de rels
Paro de coordenadas de movimiento texto estructurado
movimiento texto estructurado
bloque de funciones
MCSR control de lgica de escalera MOV 283 lgica de escalera
Restablecimiento de movimiento de rels Mover de rels
desactivacin de texto estructurado
coordenadas de movimiento MRAT control de lgica de escalera
Ajuste de eje de movimiento movimiento de rels
MCT control de lgica de escalera de marcha texto estructurado
Transformada de movimiento de rels
coordenadas de movimiento texto estructurado MRHD control de lgica de escalera
Diagnsticos de conexin de movimiento de rels
MCTP control de lgica de escalera movimiento de marcha texto estructurado
Posicin de transformada de movimiento de rels
clculo de movimiento texto estructurado MRP control de lgica de escalera
Posicin de redefinir movimiento de rels
MDF control de lgica de escalera texto estructurado
de rels movimiento
Variador directo de movimiento
movimiento desactivado texto estructurado
MSF control de lgica de escalera
Servo de movimiento movimiento de rels
MDOC control de lgica de escalera texto estructurado
de rels desactivado
Leva de salida de movimiento
desactivacin de movimiento texto estructurado
MSG 144 lgica de escalera
Mensaje de rels
MDO control de lgica de escalera texto estructurado
Variador directo de movimiento de rels
movimiento activado texto estructurado MSO control de lgica de escalera
Servo de movimiento movimiento de rels
MDR control de lgica de escalera activado texto estructurado
Registro de desarme de movimiento de rels
movimiento texto estructurado MSTD control de texto estructurado
Desviacin estndar de procesos bloque de funciones
MDW control de lgica de escalera movimiento
Observar desarme de movimiento de rels
movimiento texto estructurado MUL 258 lgica de escalera
Multiplicar de rels
MEQ 237 lgica de escalera texto estructurado
Mscara igual que de rels bloque de funciones
texto estructurado
bloque de funciones MUX control de bloque de funciones
Multiplexor procesos
MGSD control de lgica de escalera
Desactivacin de grupo de movimiento de rels MVM 285 lgica de escalera
movimiento texto estructurado Mover con mscara de rels

MGS control de lgica de escalera MVMT 288 texto estructurado


Paro de grupo de movimiento movimiento de rels Mover con mscara con bloque de funciones
texto estructurado receptor
MGSP control de lgica de escalera NEG 274 lgica de escalera
Posicin de estroboscopio de movimiento de rels Cambiar signo de rels
grupo de movimiento texto estructurado texto estructurado
bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008 19


Ubicacin de instrucciones

Instruccin: Ubicacin: Lenguajes: Instruccin: Ubicacin: Lenguajes:


NEQ 242 lgica de escalera PFL PhaseManager lgica de escalera
Diferente de de rels Fallo de fase de equipo de rels
texto estructurado texto estructurado
bloque de funciones
PIDE control de texto estructurado
NOP 457 lgica de escalera PID mejorado procesos bloque de funciones
Sin operacin de rels
PID 497 lgica de escalera
NOT 314 lgica de escalera Proporcional integral de rels
NO a nivel de bits de rels texto estructurado
texto estructurado derivativo
bloque de funciones
PI control de texto estructurado
Proporcional + Integral procesos bloque de funciones
NTCH control de texto estructurado
Filtro de muesca procesos bloque de funciones
PMUL control de texto estructurado
Multiplicador de impulsos procesos bloque de funciones
OCON 641 bloque de funciones
Conector de cable de salida
POSP control de texto estructurado
ONS 88 lgica de escalera Proporcional de posicin procesos bloque de funciones
Un impulso de rels
POVR PhaseManager lgica de escalera
OR 307 lgica de escalera Comando de anulacin de de rels
O a nivel de bits de rels fase de equipo texto estructurado
texto estructurado
bloque de funciones PPD PhaseManager lgica de escalera
Fase de equipo en pausa de rels
OREF 641 bloque de funciones texto estructurado
Referencia de salida
PRNP PhaseManager lgica de escalera
OSFI 99 texto estructurado Parmetros de nueva fase de de rels
Un impulso en flanco bloque de funciones equipo texto estructurado
descendente con entrada
PSC PhaseManager lgica de escalera
OSF 94 lgica de escalera Estado de fase completo de rels
Un impulso en flanco de rels texto estructurado
descendente lgica de escalera
PXRQ PhaseManager
Solicitud externa de fase de de rels
OSRI 91 texto estructurado
texto estructurado
Un impulso en flanco bloque de funciones equipo
ascendente con entrada lgica de escalera
RAD 553
Radianes de rels
OSR 91 lgica de escalera
texto estructurado
Un impulso en flanco de rels
bloque de funciones
ascendente
RESD control de texto estructurado
OTE 82 lgica de escalera Restablecimiento dominante procesos bloque de funciones
Activacin de salida de rels
RES 141 lgica de escalera
OTL 84 lgica de escalera Restablecer de rels
Enclavamiento de salida de rels
RET 436 y 474 lgica de escalera
OTU 86 lgica de escalera Retorno de rels
Desenclavamiento de salida de rels texto estructurado
bloque de funciones
PATT PhaseManager lgica de escalera
Conectar a fase de equipo de rels RLIM control de texto estructurado
texto estructurado Limitador de rgimen procesos bloque de funciones
PCLF PhaseManager lgica de escalera RMPS control de texto estructurado
Fallo de borrado de fase de de rels bloque de funciones
texto estructurado Rampa y estabilizacin procesos
equipo
RTO 112 lgica de escalera
PCMD PhaseManager lgica de escalera Temporizador retentivo de rels
Comando de fase de equipo de rels
texto estructurado activado

PDET PhaseManager lgica de escalera RTOR 124 texto estructurado


de rels Temporizador retentivo bloque de funciones
Desconectar de fase de
equipo texto estructurado activado con
restablecimiento

20 Publicacin 1756-RM003K-ES-P Julio 2008


Ubicacin de instrucciones

Instruccin: Ubicacin: Lenguajes: Instruccin: Ubicacin: Lenguajes:


RTOS 621 lgica de escalera SSV 176 lgica de escalera
REAL en cadena de rels Establecer valor del sistema de rels
texto estructurado texto estructurado
SBR 436 lgica de escalera STD 376 lgica de escalera
Subrutina de rels Desviacin estndar de de rels
texto estructurado archivo
bloque de funciones
STOD 614 lgica de escalera
SCL control de texto estructurado de rels
bloque de funciones Cadena en DINT
Escalar procesos texto estructurado
SCRV control de texto estructurado STOR 616 lgica de escalera
Curva en S procesos bloque de funciones Cadena en REAL de rels
texto estructurado
SEL control de bloque de funciones
Seleccionar procesos SUB 255 lgica de escalera
Restar de rels
texto estructurado
SETD control de texto estructurado
bloque de funciones
Establecer dominante procesos bloque de funciones
SWPB 300 lgica de escalera
SFP 460 lgica de escalera Intercambiar byte de rels
Pausa SFC de rels texto estructurado
texto estructurado
TAN 526 lgica de escalera
SFR 462 lgica de escalera Tangente de rels
Restablecer SFC de rels texto estructurado
texto estructurado bloque de funciones
SIN 520 lgica de escalera TND 450 lgica de escalera
Seno de rels Fin temporal de rels
texto estructurado
bloque de funciones TOD 556 lgica de escalera
Convertir en BCD de rels
SIZE 381 lgica de escalera bloque de funciones
Tamao en elementos de rels
texto estructurado TOFR 120 texto estructurado
Temporizador de retardo a la bloque de funciones
SNEG control de texto estructurado
Cambiar signo seleccionado procesos bloque de funciones desconexin con
restablecimiento
SOC control de texto estructurado
bloque de funciones TOF 108 lgica de escalera
Controlador de segundo procesos de rels
orden Temporizador de retardo a la
desconexin
SQI 420 lgica de escalera
Secuenciador de entrada de rels TONR 116 texto estructurado
Temporizador de retardo a la bloque de funciones
SQL 428 lgica de escalera conexin con
Carga de secuenciador de rels restablecimiento
SQO 424 lgica de escalera TON 104 lgica de escalera
Secuenciador de salida de rels Temporizador de retardo a la de rels
conexin
SQR 270 lgica de escalera
Raz cuadrada de rels TOT control de texto estructurado
bloque de funciones bloque de funciones
Totalizador procesos
SQRT 270 texto estructurado
Raz cuadrada TPT 631 lgica de escalera
Puntos de rastreo de rels
SRT 371 lgica de escalera
Clasificacin de archivo de rels TRN 561 lgica de escalera
texto estructurado Truncar de rels
bloque de funciones
SRTP control de texto estructurado
Dividir rango de tiempo procesos bloque de funciones TRUNC 561 texto estructurado
proporcional Truncar

SSUM control de texto estructurado UID 454 lgica de escalera


bloque de funciones Inhabilitacin de interrupcin de rels
Sumador seleccionado procesos texto estructurado
de usuario

Publicacin 1756-RM003K-ES-P Julio 2008 21


Ubicacin de instrucciones

Instruccin: Ubicacin: Lenguajes:


UIE 454 lgica de escalera
Habilitacin de interrupcin de rels
de usuario texto estructurado

UPDN control de texto estructurado


Acumulador progresivo/ procesos bloque de funciones
regresivo
UPPER 623 lgica de escalera
Maysculas de rels
texto estructurado
XIC 78 lgica de escalera
Examinar si est cerrado de rels

XIO 80 lgica de escalera


Examinar si est abierto de rels

XOR 310 lgica de escalera


O exclusivo a nivel de bits de rels
texto estructurado
bloque de funciones
XPY 546 lgica de escalera
X a la potencia de Y de rels
texto estructurado
bloque de funciones
(1)

22 Publicacin 1756-RM003K-ES-P Julio 2008


Prefacio

Instrucciones generales de controladores


Logix5000

Introduccin Este manual es uno de varios manuales de instrucciones del sistema


Logix5000.

Tarea/meta Documentos
Programar el controlador para aplicaciones Manual de referencia de instrucciones generales de controladores Logix5000,
secuenciales publicacin 1756-RM003
Usted se encuentra aqu

Programar el controlador para aplicaciones Logix5000 Controllers Process Control and Drives Instructions Reference Manual,
de procesos o de variadores publicacin 1756-RM006
Programar el controlador para aplicaciones Logix5000 Controllers Motion Instruction Set Reference Manual, publicacin
de control de movimiento 1756-RM007
Programar el controlador para usar fases de PhaseManager User Manual, publicacin LOGIX-UM001
equipo
Importar un archivo de texto o tags en un Logix5000 Controllers Import/Export Reference Manual, publicacin 1756-RM084
proyecto
Exportar un proyecto o tags a un archivo de
texto
Convertir una aplicacin de PLC-5 o SLC 500 Logix5550 Controller Converting PLC-5 or SLC 500 Logic to Logix5550 Logic Reference
en una aplicacin Logix5000 Manual, publicacin 1756-6.8.5

A quin est dirigido este Este documento proporciona al programador los detalles acerca de
cada una de las instrucciones disponibles para un controlador basado
manual en Logix. El usuario ya debe estar familiarizado con la manera en que
el controlador basado en Logix almacena y procesa datos.

Los programadores sin experiencia deben leer todos los detalles de


una instruccin antes de usarla. Los programadores con experiencia
pueden consultar la informacin sobre las instrucciones para verificar
detalles.

23Publicacin 1756-RM003K-ES-P Julio 2008 23


Prefacio Instrucciones generales de controladores Logix5000

Propsito de este manual Este manual proporciona una descripcin de cada instruccin en este
formato:

Esta seccin Proporciona este tipo de informacin


Nombre de la instruccin identifica la instruccin

define si la instruccin es una instruccin de entrada o de salida


Operandos lista de todos los operandos de la instruccin
si est disponible en lgica de escalera de rels, describe los operandos

si est disponible en texto estructurado, describe los operandos

si est disponible en bloque de funciones, describe los operandos

Los pines mostrados en un bloque de funciones predeterminado son slo los pines
predeterminados. La tabla de operandos indica todos los pines posibles para un
bloque de funciones.

Estructura de la instruccin indica los bits y valores de estado de control de la instruccin, si los hay
Descripcin describes el uso de la instruccin

define cualquier diferencia cuando la instruccin est habilitada e inhabilitada,


si corresponde
Indicadores de estado define si la instruccin afecta o no los indicadores de estado aritmtico
aritmtico
consulte el apndice Atributos comunes
Condiciones de fallo define si la instruccin genera o no genera fallos menores o mayores

de ser as, define el tipo de fallo y el cdigo


Ejecucin especifica cmo funciona la instruccin
Ejemplo proporciona por lo menos un ejemplo de programacin en cada lenguaje de programacin
disponible

incluye una descripcin que explica cada ejemplo

Los siguientes iconos ayudan a identificar informacin especfica del


lenguaje:

Este icono Indica este lenguaje de programacin


lgica de escalera de rels

texto estructurado

bloque de funciones

24 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones generales de controladores Logix5000 Prefacio

Informacin comn para El conjunto de instrucciones Logix5000 tiene algunos atributos


comunes:
todas las instrucciones
Para esta informacin Vea este apndice
atributos comunes El apndice Atributos comunes define:

indicadores de estado aritmtico


tipos de datos
palabras clave
atributos de bloques de El apndice Atributos de bloque de funciones:
funciones
control del programa y del operador
modos de temporizacin

Convenciones y trminos Establecer y borrar


relacionados
Este manual usa las funciones de establecer y borrar para definir el
estado de los bits (booleanos) y los valores (no booleanos):

Este trmino Significa


establecer el bit se establece en 1 (ON)

un valor se establece en cualquier nmero que no sea


cero
borrar el bit se pone en 0 (desactivado)

todos los bits de un valor se ponen en 0

Si un operando o parmetro acepta ms de un tipo de datos, los tipos


de datos en negrita indican tipos de datos ptimos. Las instrucciones
se ejecutan ms rpidamente y requieren menos memoria si todos los
operandos de instruccin usan el mismo tipo de datos ptimos,
tpicamente DINT o REAL.

Publicacin 1756-RM003K-ES-P Julio 2008 25


Prefacio Instrucciones generales de controladores Logix5000

Condicin de rengln de lgica de escalera de rels

El controlador evala las instrucciones de lgica de escalera segn la


condicin de rengln que precede a la instruccin (condicin de
entrada del rengln). Segn la condicin de entrada de rengln y la
instruccin, el controlador establece la condicin de rengln que
sigue la instruccin (condicin de salida de rengln), lo cual, a su vez,
afecta cualquier instruccin subsiguiente.

instruccin de entrada instruccin de salida

condicin condicin
de entrada de salida
de rengln de rengln

Si la condicin de entrada de rengln de una instruccin de entrada


es verdadera, el controlador evala la instruccin y establece la
condicin de rengln de entrada segn los resultados de la
instruccin. Si la instruccin se evala como verdadera, la condicin
de salida del rengln es verdadera; si la instruccin se evala como
falsa, la condicin de salida del rengln es falsa.

El controlador tambin preescanea las instrucciones. El preescn es un


escn especial de todas las rutinas en el controlador. El controlador
escanea todas las rutinas principales y subrutinas durante el preescn,
pero ignora saltos que podran omitir la ejecucin de las
instrucciones. El controlador ejecuta todos los lazos FOR y llamadas
de subrutina. Si una subrutina se llama ms de una vez, se ejecuta
cada vez que se llama. El controlador usa el preescn de las
instrucciones de lgica de escalera de rels para restablecer E/S no
retentivas y valores internos.

Durante el preescn, los valores de entrada no estn actualizados y no


se escriben las salidas. Las siguientes condiciones generan un
preescn:

Conmutar del modo de programacin al modo de marcha


Entrar automticamente al modo de marcha tras encender la
unidad.

Un preescn no se produce para un programa cuando:

El programa se prioriza mientras el controlador est en


ejecucin.
El programa se desprioriza cuando el controlador entra al modo
de marcha.

26 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones generales de controladores Logix5000 Prefacio

Estados del bloque de funciones

IMPORTANTE Cuando se programa un bloque de funciones, es necesario restringir el rango de


unidades de ingeniera a +/-10+/-15 puesto que los clculos de punto flotante (coma
flotante) internos se realizan usando un punto flotante (coma flotante) de precisin
simple. Las unidades de ingeniera que no se estn dentro de este rango pueden
provocar una prdida de exactitud si los resultados se acercan a las limitaciones de
punto flotante (coma flotante) de precisin simple (+/-10+/-38).

El controlador evala las instrucciones de bloques de funciones segn


el estado de condiciones diferentes.

Posible condicin Descripcin


preescn El preescn para las rutinas de bloques de funciones es igual que para las rutinas de lgica de escalera de
rels. La nica diferencia radica en que el parmetro EnableIn para cada instruccin de bloque de funciones
se borra durante el preescn.
primer escn de instruccin El primer escn de instruccin se refiere a la primera vez que se ejecuta una instruccin despus del
preescn. El controlador usa el primer escn de instruccin para leer las entradas actuales y determinar el
estado apropiado en que estarn
primera ejecucin de La primera ejecucin de instruccin se refiere a la primera vez que la instruccin se ejecuta con una nueva
instruccin instancia de estructura de datos. El controlador usa la primera ejecucin de instruccin para generar
coeficientes y otros almacenamientos de datos que no cambian para un bloque de funciones despus de
una descarga inicial.

Cada instruccin de bloque de funciones incluye tambin los


parmetros EnableIn y EnableOut:

las instrucciones de bloques de funciones se ejecutan


normalmente cuando se establece EnableIn.

cuando EnableIn se borra, la instruccin de bloque de funciones


ejecuta la lgica de preescn, la lgica de post-escn o
simplemente omite la ejecucin del algoritmo normal.

EnableOut es similar a EnableIn; sin embargo, si la ejecucin del


bloque de funciones detecta una condicin de overflow,
EnableOut tambin se borra.

la ejecucin del bloque de funciones se reanuda desde donde se


detuvo cuando EnableIn cambi de borrado a establecido. Sin
embargo, hay algunas instrucciones de bloques de funciones
que especifican una funcionalidad especial, tal como la funcin
de reinicializacin, cuando EnableIn cambia de borrado a
establecido. Para las instrucciones de bloques de funciones con
parmetros basados en tiempo, cada vez que el modo de
temporizacin es sobremuestreo, la instruccin siempre se
reanuda donde se detuvo cuando EnableIn cambi de borrado a
establecido.

Si el parmetro EnableIn no est cableado, la instruccin siempre se


ejecuta como normal y EnableIn permanece establecido. Si usted
borra EnableIn, ste cambia para establecerse la prxima vez que se
ejecute la instruccin.

Publicacin 1756-RM003K-ES-P Julio 2008 27


Prefacio Instrucciones generales de controladores Logix5000

Notas:

28 Publicacin 1756-RM003K-ES-P Julio 2008


Captulo 1

Instrucciones basadas en Logix para alarmas


y eventos FactoryTalk
(ALMD, ALMA)

Introduccin Estas instrucciones de alarma basadas en Logix estn disponibles en


lgica de escalera de rels, texto estructurado y diagrama de bloques
de funciones. Cuando se usan con las versiones 5.0 y posteriores del
software FactoryTalk View SE, estas instrucciones crean un sistema de
alarmas con su paquete de visualizacin. El controlador detecta
condiciones de alarma y publica eventos para los servidores de
alarmas y eventos de FactoryTalk View que propagan las alarmas a los
clientes Factory Talk View SE suscritos para recibir notificaciones.

Si desea Use esta instruccin Disponible en estos lenguajes Vea la pgina


detectar alarmas basadas en condiciones ALMD lgica de escalera de rels 30
booleanas (verdadero/falso)
texto estructurado

bloque de funciones
detectar alarmas en base al nivel o velocidad ALMA lgica de escalera de rels 42
de cambio de un valor
texto estructurado

bloque de funciones

29Publicacin 1756-RM003K-ES-P Julio 2008 29


Captulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA)

Alarma digital (ALMD) La instruccin ALMD detecta alarmas basadas en condiciones


booleanas (verdadero/falso) Los parmetros de control de programa
(Prog) y de operador (Oper) proporcionan una interface para los
comandos de alarma.

Operandos:

Lgica de escalera de rels

En la lgica de escalera de rels, la entrada de condicin de alarma


(In) se obtiene a partir de la condicin de rengln.

Operando Tipo Formato Descripcin


tag ALMD ALARM_DIGITAL Estructura Estructura ALMD
In BOOL Tag Texto estructurado solamente.
Inmediato
El valor se copia a In cuando se ejecuta la instruccin. El valor
de entrada de alarma es comparado para determinar si existe
una alarma.
ProgAck BOOL Tag El valor se copia a ConfProg (ProgAck) cuando se ejecuta la
Inmediato instruccin. En la transicin de borrado a establecido, confirma
la alarma (si se requiere confirmacin).
ProgReset BOOL Tag El valor se copia a RestabProg (ProgReset) cuando se ejecuta
Inmediato la instruccin. En la transicin de borrado a establecido, borra
la alarma (si se requiere).
ProgDisable BOOL Tag El valor se copia a InhabProg (ProgDisable) cuando se ejecuta
Inmediato la instruccin. Cuando se establece, inhabilita la alarma
(no anula los comandos de habilitacin).
ProgEnable BOOL Tag El valor se copia a HabilitProg (ProgEnable) cuando se ejecuta
Inmediato la instruccin. Cuando se establece, habilita la alarma
(tiene precedencia sobre los comandos de inhabilitacin).
MinDurationPRE DINT Inmediato Lgica de escalera de rels solamente.

Especifica la duracin de la alarma antes de que sea reportada


(milisegundos).
MinDurationACC DINT Inmediato Lgica de escalera de rels solamente.

Indica el nmero de milisegundos que han transcurrido desde


que se cumpli la condicin de la alarma.

Texto estructurado
ALMD(ALMD, In, ProgAck,
ProgReset, ProgDisable, Los operandos son iguales a los de la instruccin ALMD de lgica
ProgEnable); de escalera de rels, con algunas excepciones como se indic
anteriormente.

30 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA) Captulo 1

Bloque de funciones

Operando Tipo Formato Descripcin


tag ALMD ALARM_DIGITAL Estructura Estructura ALMD

Estructura ALARM_DIGITAL

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Lgica de escalera de rels:

Corresponde al estado del rengln. No afecta el procesamiento.

Bloque de funciones:

Si se borra, la instruccin no se ejecuta y las salidas no se actualizan.

Si se establece, la instruccin se ejecuta.

La opcin predeterminada es establecido.

Texto estructurado:

Ningn efecto. La instruccin siempre se ejecuta.


In BOOL La entrada de seal digital para la instruccin.

La opcin predeterminada es borrado.

Lgica de escalera de rels:

Sigue la condicin del rengln. Se establece si la condicin del rengln es verdadera.


Se borra si la condicin del rengln es falsa.

Texto estructurado:

Copiado del operando de instruccin.


InFault BOOL Indicador de estado deficiente para la entrada. El usuario puede establecer InFault para
indicar que la seal de entrada tiene un error. Cuando se establece, la instruccin establece
InFaulted (Status.1). Cuando se borra, la instruccin borra InFaulted (Status.1). En cualquier
caso, la instruccin contina evaluando In en lo que respecta a las condiciones de alarma.

La opcin predeterminada es borrado (buen estado).


Condition BOOL Especifica cmo se activa la alarma. Cuando se establece la condicin, se activa la condicin
de alarma cuando In se establece. Cuando se borra la condicin, se activa la condicin de
alarma cuando In se borra.

La opcin predeterminada es establecido.

Publicacin 1756-RM003K-ES-P Julio 2008 31


Captulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA)

Parmetro de Tipo de datos Descripcin


entrada
AckRequired BOOL Especifica si se requiere confirmacin de alarma. Cuando se establece, requiere
confirmacin. Cuando se borra, no se requiere confirmacin y siempre se establece Acked.

La opcin predeterminada es establecido.


Latched BOOL Especifica si la alarma est enclavada. Las alarmas enclavadas permanecen InAlarm cuando
la condicin de alarma se hace falsa, hasta que se reciba un comando de restablecimiento
(Reset). Cuando se establece, se enclava la alarma. Cuando se borra, se desenclava la
alarma.

Una alarma enclavada slo puede restablecerse cuando la condicin de alarma es falsa.

La opcin predeterminada es borrado.


ProgAck BOOL Se establece mediante el programa de usuario para confirmar la alarma. Requiere que una
transicin cambie de borrado a establecido mientras la alarma no est confirmada.

La opcin predeterminada es borrado.

Lgica de escalera de rels:

Copiado del operando de instruccin.

Texto estructurado:

Copiado del operando de instruccin.


OperAck BOOL Se establece mediante la interface del operador para confirmar la alarma. Requiere que una
transicin cambie de borrado a establecido mientras la alarma no est confirmada.
La instruccin borra este parmetro.

La opcin predeterminada es borrado.


ProgReset BOOL Se establece mediante el programa de usuario para restablecer la alarma. Requiere que una
transicin cambie de borrado a establecido mientras la alarma est InAlarm y la condicin In
no est en alarma.

La opcin predeterminada es borrado.

Lgica de escalera de rels:

Copiado del operando de instruccin.

Texto estructurado:

Copiado del operando de instruccin.


OperReset BOOL Se establece mediante la interface del operador para restablecer la alarma. Requiere que
una transicin cambie de borrado a establecido mientras la alarma est InAlarm y la
condicin In no est en alarma. La instruccin de alarma borra este parmetro.

La opcin predeterminada es borrado.


ProgSuppress BOOL Se establece mediante el programa de usuario para suprimir la alarma.

La opcin predeterminada es borrado.


OperSuppress BOOL Se establece mediante la interface del operador para suprimir la alarma. La instruccin de
alarma borra este parmetro.

La opcin predeterminada es borrado.

32 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA) Captulo 1

Parmetro de Tipo de datos Descripcin


entrada
ProgUnsuppress BOOL Se establece mediante el programa de usuario para cancelar la supresin de la alarma. Tiene
precedencia sobre los comandos de supresin.

La opcin predeterminada es borrado.


OperUnsuppress BOOL Se establece mediante la interface del operador para cancelar la supresin de la alarma.
Tiene precedencia sobre los comandos de supresin. La instruccin de alarma borra este
parmetro.

La opcin predeterminada es borrado.


ProgDisable BOOL Se establece mediante el programa de usuario para inhabilitar la alarma.

La opcin predeterminada es borrado.

Lgica de escalera de rels:

Copiado del operando de instruccin.

Texto estructurado:

Copiado del operando de instruccin.


OperDisable BOOL Se establece mediante la interface del operador para inhabilitar la alarma. La instruccin de
alarma borra este parmetro.

La opcin predeterminada es borrado.


ProgEnable BOOL Se establece mediante el programa de usuario para habilitar la alarma. Tiene precedencia
sobre un comando de inhabilitacin.

La opcin predeterminada es borrado.

Lgica de escalera de rels:

Copiado del operando de instruccin.

Texto estructurado:

Copiado del operando de instruccin.


OperEnable BOOL Se establece mediante la interface del operador para habilitar la alarma. Tiene precedencia
sobre un comando de inhabilitacin. La instruccin de alarma borra este parmetro.

La opcin predeterminada es borrado.


AlarmCountReset BOOL Se establece mediante el programa de usuario para restablecer el conteo de alarmas. Una
transicin que cambia de borrado a establecido restablece el conteo de alarmas a cero.

La opcin predeterminada es borrado.


UseProgTime BOOL Especifica si se usa el reloj del controlador o el valor ProgTime para aplicar sello de hora a
eventos de cambio de estado. Cuando se establece, el valor de ProgTime proporciona el sello
de hora. Cuando se borra, el reloj del controlador proporciona el sello de hora.

La opcin predeterminada es borrado.

Publicacin 1756-RM003K-ES-P Julio 2008 33


Captulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA)

Parmetro de Tipo de datos Descripcin


entrada
ProgTime LINT Si UseProgTime se establece, este valor se usa para proporcionar el valor de sello de hora
para todos los eventos. Esto permite que la aplicacin aplique sellos de hora obtenidos del
origen de la alarma, tal como un mdulo de entrada de secuencia de eventos.
Severity DINT Severidad de la alarma. Esto no afecta el procesamiento de alarmas por parte del
controlador, pero puede usarse para clasificar y filtrar funciones en el subscriptor de alarmas.

Vlido = 1...1000 (1000 = ms severa; 1 = menos severa).

Valor predeterminado = 500.


MnDurationPRE DINT Preajuste de duracin mnima (milisegundos) para que la condicin de alarma permanezca
verdadera antes de que la alarma sea marcada como InAlarm y se enve notificacin de
alarma a los clientes. El controlador recolecta los datos de alarma tan pronto como se
detecta la condicin de alarma; por lo tanto, no se pierden datos durante la espera hasta
cumplir con la duracin mnima.

Vlido = 0...2,147,483,647.

Valor predeterminado = 0.

Parmetro de salida Tipo de datos Descripcin


EnableOut BOOL Habilitacin de salida.
InAlarm BOOL Estado activo de alarma. Se establece cuando la alarma est activa. Se borra cuando la
alarma no est activa (estado normal).
Acked BOOL Estado de alarma confirmada. Se establece cuando la alarma est confirmada. Se borra
cuando la alarma no est confirmada.

Acked siempre se establece cuando AckRequired se borra.


InAlarmUnack BOOL Combinacin de alarma activa y estado confirmado. Se establece cuando la alarma est
activa (InAlarm est establecido) y no confirmada (Acked est borrado). Se borra cuando la
alarma est normal (inactiva), confirmada, o ambas.
Suppressed BOOL Estado suprimido de la alarma. Se establece cuando la alarma est suprimida. Se borra
cuando la alarma no est suprimida.
Disabled BOOL Estado inhabilitado de la alarma. Se establece cuando la alarma est inhabilitada. Se borra
cuando la alarma est habilitada.
MnDurationACC DINT Tiempo transcurrido desde que se detect la alarma Cuando este valor llega a
MnDuracinPRE, la alarma se activa (InAlarm est establecido) y se enva una notificacin a
los clientes.
AlarmCount DINT Nmero de veces que se activ la alarma (InAlarm est establecido). Si se llega al valor
mximo, el contador deja el valor en el mximo valor de conteo.
InAlarmTime LINT Sello de hora de la deteccin de alarma.
AckTime LINT Sello de hora de confirmacin de alarma. Si la alarma no requiere confirmacin, este sello de
hora es igual a la hora de la alarma.
RetToNormalTime LINT Sello de hora del retorno de la alarma al estado normal.
AlarmCountResetTime LINT Sello de hora que indica cundo se restableci la alarma.
DeliveryER BOOL Error de entrega del mensaje de notificacin de alarma. Se establece cuando hay un error de
entrega: es decir, ningn subscriptor de alarma estaba suscrito o por lo menos un suscriptor
no recibi el ltimo mensaje de estado de cambio de alarma. Se borra cuando la entrega es
exitosa o est en curso.

34 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA) Captulo 1

Parmetro de salida Tipo de datos Descripcin


DeliveryDN BOOL Entrega del mensaje de notificacin de alarma realizada. Se establece cuando la entrega es
exitosa: por lo menos un suscriptor estaba suscrito y todos los suscriptores recibieron
correctamente el ltimo mensaje de estado de cambio de alarma. Se borra cuando la entrega
no se realiz correctamente o est en curso.
DeliveryEN BOOL Estado de entrega del mensaje de notificacin de alarma. Se establece cuando la entrega
est en curso. Se borra cuando la entrega no est en curso.
NoSubscriber BOOL La alarma no tena suscriptores cuando se intent entregar el mensaje ms reciente. Se
establece cuando no hay suscriptores. Se borra cuando hay por lo menos un suscriptor.
NoConnection BOOL Los subscriptores de la alarma no estaban conectados cuando se intent entregar el mensaje
ms reciente. Se establece cuando todos los suscriptores estn desconectados. Se borra
cuando por lo menos un suscriptor est conectado o cuando no hay suscriptores.
CommError BOOL Error de comunicacin al entregar un mensaje de alarma. Se establece cuando hay errores de
comunicacin y se han usado todos los reintentos. Esto significa que un suscriptor estaba
suscrito y tena una conexin, pero el controlador no recibi confirmacin de la entrega del
mensaje. Se borra cuando todos los suscriptores conectados confirman recepcin del
mensaje de alarma.
AlarmBuffered BOOL Mensaje de alarma almacenado en el bfer debido a error de comunicacin (ComError est
establecido) o prdida de conexin (NoConnection est establecido). Se establece cuando el
mensaje de alarma se almacena en el bfer por lo menos para un suscriptor. Se borra cuando
el mensaje de alarma no se almacena en el bfer.
Subscribers DINT Nmero de suscriptores para esta alarma.
SubscNotified DINT Nmero de suscriptores notificados correctamente acerca del cambio de estado de alarma
ms reciente.
Status DINT Indicadores de estado combinados:

Status.0 = InstructFault.

Status.1 = InFaulted.

Status.2 = SeverityInv.
InstructFault (Status.0) BOOL Existen condiciones de error de instruccin. ste no es un error menor ni mayor del
controlador. Verifique los bits de estado restantes para determinar lo que ocurri.
InFaulted (Status.1) BOOL El programa del usuario estableci InFault para indicar datos de entrada de mala calidad.
La alarma contina evaluando In en lo que respecta a la condicin de alarma.
SeverityInv (Status.2) BOOL La severidad de la alarma no es vlida.

Si la severidad <1, la instruccin usa Severity = 1.

Si la severidad >1000, la instruccin usa Severity = 1000.

Descripcin La instruccin ALMD detecta alarmas con base en condiciones


booleanas (verdadero/falso)

La instruccin ALMD proporciona funcionalidad adicional cuando se


usa con el software RSLinx Enterprise y FactoryTalk View SE. Usted
puede mostrar alarmas en las pantallas Alarm Summary, Alarm
Banner, Alarm Status Explorer y Alarm Log Viewer del software
FactoryTalk View SE.

Publicacin 1756-RM003K-ES-P Julio 2008 35


Captulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA)

El software RSLinx Enterprise se encarga de las alarmas en el


controlador. Use los parmetros de salida para monitorear la
instruccin a fin de ver el estado de suscripcin de alarmas y para
mostrar cambios de estado de alarmas. Si se pierde una conexin con
el software RSLinx Enterprise, el controlador puede almacenar en el
bfer datos de alarmas brevemente hasta que se restaure la conexin.

Diagramas de estado cuando se requiere confirmacin


Enclavado
Latched = Falso
= False

En== Condition,
In Condicin,MinDurationACC
MinDurationACC >=
>= Min DurationPRE
MinDurationPRE
InAlarm = Falso InAlarm = Verdadero
InAlarm = False InAlarm = True
Acked = Verdadero Acked = Falso
Acked = True n n Acked = False
dici itio
!= C=onCond
In In ! EE
nPPRR
u ratio
Ack11 D 1
Ack Min Ack
Ack1
AC
C C >=
C
nA
ttioion In
uurraa I!n= !C
M
MininDD =oCnod
iionn,, nitdioicn
nd itc in
InAlarm = Falso Co
== C
InAlarm = Verdadero
InAlarm = False IInn InAlarm = True
Acked = Verdadero
Acked==False
Acked Falso Acked = True

Enclavado
Latched = Verdadero
= True

In== Condition,
In Condicin, MinDurationACC
MinDurationACC >=
>= MinDurationPRE
MinDurationPRE
InAlarm = Falso InAlarm = Verdadero
InAlarm = False InAlarm = True
Acked = Verdadero
Acked = True Acked == Falso
Acked False
2
In != In != Condicin,
Condition, ResetReset
2

InIn! 1
=!=CC Ack
Ack1
onodnd
itiioci
n,nR,
eRsees 2 2
tet

InAlarm = Verdadero
InAlarm = True
Acked = Verdadero
Acked = True

1
La
1 alarma puede confirmarse de diferentes maneras: ProgAck, OperAck, clientes
Alarm can be acked by several different ways: ProgAck, OperAck, clients (RSLogix 5000
(software RSLogix
software, RSView5000, software RSView).
software).
2
La
2 alarma puede restablecerse de diferentes maneras: ProgReset, OperReset, clientes
Alarm can be reset by several different ways: ProgReset, OperReset, clients (RSLogix 5000
(software RSLogix
software, RSView5000, software RSView).
software).

36 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA) Captulo 1

Diagramas de estado cuando no se requiere confirmacin


Enclavado
Latched = False= Falso
In = Condicin, MinDurationACC >=
MinDurationPRE
In = Condition, MinDurationACC >= MinDurationPRE
InAlarm = Falso
InAlarm = False InAlarm = Verdadero
InAlarm = True Acked= =True
Acked
Verdadero
In In
!=!=Condicin
Condition

Enclavado
Latched = True= Verdadero
In = Condicin, MnDuracinACC >=
MnDuracinPRE
In = Condition, MinDurationACC >= MinDurationPRE
InAlarm
InAlarm == False
Falso InAlarm = Verdadero
InAlarm = True Acked= =True
Acked
Verdadero
1
In In
!=!=Condicin, Resset
Condition, Reset1

1 La alarma puede restablecerse de diferentes maneras: ProgReset, OperReset, clientes


1
Alarm can be reset by several different ways: ProgReset, OperReset, clients (RSLogix 5000
(software RSLogixsoftware)
software, RSView 5000, software RSView).

Indicadores de estado
aritmtico: ninguno

Condiciones de fallo: ninguna

Ejecucin:
Condicin Accin de lgica de escalera de rels
preescn La condicin de salida de rengln se establece como falsa.

InAlarma se borra y Acked se establece.

Todas las peticiones del operador, sellos de hora e


indicadores de entrega se borran.
condicin de entrada de La condicin de salida de rengln se establece como falsa.
rengln es falsa
EnableIn y EnableOut se borran.

El Parmetro In se borra y la instruccin realiza una


evaluacin para determinar el estado de la alarma.
condicin de entrada de La condicin de salida de rengln se establece como
rengln es verdadera verdadera.

EnableIn y EnableOut se establecen

El Parmetro In se establece y la instruccin realiza una


evaluacin para determinar el estado de la alarma.
post-escn La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008 37


Captulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA)

Condicin Accin de bloque de funciones Accin de texto estructurado


preescn Todas las peticiones del operador, sellos de hora e Todas las peticiones del operador, sellos de hora e
indicadores de entrega se borran. indicadores de entrega se borran.

InAlarm se borra y Acked se establece. InAlarm se borra y Acked se establece.


primer escn de instruccin Ninguna. Ninguna.
primera ejecucin de Ninguna. Ninguna.
instruccin
EnableIn se borra La instruccin no se ejecuta. La instruccin se ejecuta.

EnableOut se borra. EnableOut siempre se establece.


EnableIn se establece La instruccin se ejecuta. La instruccin se ejecuta.

EnableOut se establece. EnableOut siempre se establece.


post-escn Ninguna. Ninguna.

Confirmacin de alarma ALMD requerida y enclavada

38 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA) Captulo 1

Confirmacin de alarma ALMD requerida y no enclavada

Confirmacin de alarma ALMD no requerida y enclavada

Publicacin 1756-RM003K-ES-P Julio 2008 39


Captulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA)

Confirmacin de alarma ALMD no requerida y no enclavada

Ejemplo: Se combinan dos seales de fallo de motor, de manera que si se


presenta uno de ellos, se activa una alarma de fallo de motor.
Confirme programticamente la alarma con una transicin de borrado
a establecido del valor del tag Motor101Ack. La lgica de la aplicacin
debe borrar Motor101Ack.

Lgica de escalera de rels

40 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA) Captulo 1

Texto estructurado

Motor101FaultConditions := Motor101Overtemp OR
Motor101FailToStart;

ALMD(Motor101Fault,Motor101FaultConditions,Motor101Ack,
0,0,0 );

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008 41


Captulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA)

Alarma Analgica (ALMA) La instruccin ALMA detecta alarmas basadas en el nivel o velocidad
de cambio de un valor analgico. Los parmetros de control de
programa (Prog) y de operador (Oper) proporcionan una interface
para los comandos de alarma.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


tag ALMA ALARM_ANALOG Estructura Estructura ALMA
In REAL Tag El valor se copia a In cuando se ejecuta la instruccin. El valor
DINT inmediato de entrada de alarma, que se compara con los lmites de
INT alarma para detectar las condiciones de la alarma.
SINT
ProgAckAll BOOL Tag El valor se copia a ProgAckAll cuando se ejecuta la
Inmediato instruccin. En la transicin de borrado a establecido, confirma
todas las condiciones de alarma que requieren confirmacin.
ProgDisable BOOL Tag El valor se copia a ProgDisable cuando se ejecuta la
Inmediato instruccin. Cuando se establece, inhabilita la alarma
(no anula los comandos de habilitacin).

ProgEnable BOOL Tag El valor se copia a ProgEnable cuando se ejecuta la


Inmediato instruccin. Cuando se establece, habilita la alarma
(tiene precedencia sobre los comandos de inhabilitacin).

HHlimit REAL Inmediato Lgica de escalera de rels solamente.

Lmite de alarma alta alta.


HLimit REAL Inmediato Lgica de escalera de rels solamente.

Lmite de alarma alta.


LLimit REAL Inmediato Lgica de escalera de rels solamente.

Lmite de alarma baja.


LLLimit REAL Inmediato Lgica de escalera de rels solamente.

Lmite de alarma baja baja.

42 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA) Captulo 1

Texto estructurado
ALMA(ALMA, In, ProgAckAll,
ProgDisable, ProgEnable);
Los operandos son iguales a los de la instruccin ALMD de lgica
de escalera de rels, con algunas excepciones como se indic
anteriormente.

Bloque de funciones

Operando Tipo Formato Descripcin


tag ALMA ALARM_ANALOG Estructura Estructura ALMA

Publicacin 1756-RM003K-ES-P Julio 2008 43


Captulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA)

Estructura ALARM_ANALOG

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Lgica de escalera de rels:

Corresponde al estado del rengln. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.

Texto estructurado:

Ningn efecto. La instruccin siempre se ejecuta.

Bloque de funciones:

Si se borra, la instruccin no se ejecuta y las salidas no se actualizan.

La opcin predeterminada es establecido.


In REAL El valor de entrada de alarma, el cual se compara con los lmites de alarma para detectar las
condiciones de la alarma.

Valor predeterminado = 0.0.

Lgica de escalera de rels:

Copiado del operando de instruccin.

Texto estructurado:

Copiado del operando de instruccin.


InFault BOOL Indicador de estado deficiente para la entrada. El usuario puede establecer InFault para indicar
que la seal de entrada tiene un error. Cuando se establece, la instruccin establece InFaulted
(Status.1). Cuando se borra, la instruccin borra InFaulted (Status.1). En cualquier caso, la
instruccin contina evaluando In en lo que respecta a las condiciones de alarma.

La opcin predeterminada es borrado (buen estado).


HHEnabled BOOL Deteccin de condicin de alarma alta alta. Se establece para habilitar la deteccin de la
condicin de alarma alta alta. Se borra para inhabilitar la deteccin de la condicin de alarma
alta alta.

La opcin predeterminada es establecido.


HabilitadaA BOOL Deteccin de condicin de alarma alta. Se establece para habilitar la deteccin de la condicin
de alarma alta. Se borra para inhabilitar la deteccin de la condicin de alarma alta.

La opcin predeterminada es establecido.


LEnabled BOOL Deteccin de condicin de alarma baja. Se establece para habilitar la deteccin de la condicin
de alarma baja. Se borra para inhabilitar la deteccin de la condicin de alarma baja.

La opcin predeterminada es establecido.


LLEnabled BOOL Deteccin de condicin de alarma baja baja. Se establece para habilitar la deteccin de la
condicin de alarma baja baja. Se borra para inhabilitar la deteccin de la condicin de alarma
baja baja.

La opcin predeterminada es establecido.

44 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA) Captulo 1

Parmetro de Tipo de datos Descripcin


entrada
AckRequired BOOL Especifica si se requiere confirmacin de alarma. Cuando se establece, requiere confirmacin.
Cuando se borra, la confirmacin no se requiere y HHAcked, HAcked, LAcked, LLAcked,
ROCPosAcked y ROCNegAcked siempre se establecen.

La opcin predeterminada es establecido.


ProgAckAll BOOL Se establece mediante el programa de usuario para confirmar todas las condiciones de esta la
alarma. Requiere que una transicin cambie de borrado a establecido mientras las condiciones
de alarma no estn confirmadas.

La opcin predeterminada es borrado.

Lgica de escalera de rels:

Copiado del operando de instruccin.

Texto estructurado:

Copiado del operando de instruccin.


OperAckAll BOOL Se establece mediante la interface del operador para confirmar todas las condiciones de esta la
alarma. Requiere que una transicin cambie de borrado a establecido mientras las condiciones
de alarma no estn confirmadas. La instruccin de alarma borra este parmetro.

La opcin predeterminada es borrado.


HHProgAck BOOL Confirmacin de programa alta alta. Se establece mediante el programa de usuario para
confirmar una condicin alta alta. Requiere que una transicin cambie de borrado a establecido
mientras la condicin de alarma no est confirmada.

La opcin predeterminada es borrado.


HHOperAck BOOL Confirmacin de operador alta alta. Se establece mediante la interface de operador para
confirmar una condicin alta alta. Requiere que una transicin cambie de borrado a establecido
mientras la condicin de alarma no est confirmada. La instruccin de alarma borra este
parmetro.

La opcin predeterminada es borrado.


HProgAck BOOL Confirmacin de programa alta. Se establece mediante el programa de usuario para confirmar
una condicin alta. Requiere que una transicin cambie de borrado a establecido mientras la
condicin de alarma no est confirmada.

La opcin predeterminada es borrado.


HOperAck BOOL Confirmacin de operador alta. Se establece mediante la interface de operador para confirmar
una condicin alta. Requiere que una transicin cambie de borrado a establecido mientras la
condicin de alarma no est confirmada. La instruccin de alarma borra este parmetro.

La opcin predeterminada es borrado.


LProgAck BOOL Confirmacin de programa baja. Se establece mediante el programa de usuario para confirmar
una condicin baja. Requiere que una transicin cambie de borrado a establecido mientras la
condicin de alarma no est confirmada.

La opcin predeterminada es borrado.


LOperAck BOOL Confirmacin de operador baja. Se establece mediante la interface de operador para confirmar
una condicin baja. Requiere que una transicin cambie de borrado a establecido mientras la
condicin de alarma no est confirmada. La instruccin de alarma borra este parmetro.

La opcin predeterminada es borrado.

Publicacin 1756-RM003K-ES-P Julio 2008 45


Captulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA)

Parmetro de Tipo de datos Descripcin


entrada
LLProgAck BOOL Confirmacin de programa baja baja. Se establece mediante el programa de usuario para
confirmar una condicin baja baja. Requiere que una transicin cambie de borrado a
establecido mientras la condicin de alarma no est confirmada.

La opcin predeterminada es borrado.


LLOperAck BOOL Confirmacin de operador baja baja. Se establece mediante la interface de operador para
confirmar una condicin baja baja. Requiere que una transicin cambie de borrado a
establecido mientras la condicin de alarma no est confirmada. La instruccin de alarma borra
este parmetro.

La opcin predeterminada es borrado.


ROCPosProgAck BOOL Confirmacin de programa de velocidad de cambio positiva. Se establece mediante el programa
de usuario para confirmar una condicin de velocidad de cambio positiva. Requiere que una
transicin cambie de borrado a establecido mientras la condicin de alarma no est
confirmada.

La opcin predeterminada es borrado.


ROCPosOperAck BOOL Confirmacin de operador de velocidad de cambio positivo. Se establece mediante la interface
de operador para confirmar una condicin de velocidad de cambio positiva. Requiere que una
transicin cambie de borrado a establecido mientras la condicin de alarma no est
confirmada. La instruccin de alarma borra este parmetro.

La opcin predeterminada es borrado.


ROCNegProgAck BOOL Confirmacin de programa de velocidad de cambio negativa. Se establece mediante el
programa de usuario para confirmar una condicin de velocidad de cambio negativa. Requiere
que una transicin cambie de borrado a establecido mientras la condicin de alarma no est
confirmada.

La opcin predeterminada es borrado.


ROCNegOperAck BOOL Confirmacin de operador de velocidad de cambio negativa. Se establece mediante la interface
de operador para confirmar una condicin de velocidad de cambio negativa. Requiere que una
transicin cambie de borrado a establecido mientras la condicin de alarma no est
confirmada. La instruccin de alarma borra este parmetro.

La opcin predeterminada es borrado.


ProgSuppress BOOL Se establece mediante el programa de usuario para suprimir la alarma.

La opcin predeterminada es borrado.


OperSuppress BOOL Se establece mediante la interface del operador para suprimir la alarma. La instruccin de
alarma borra este parmetro.

La opcin predeterminada es borrado.


ProgUnsuppress BOOL Se establece mediante el programa de usuario para cancelar la supresin de la alarma. Tiene
precedencia sobre los comandos de supresin.

La opcin predeterminada es borrado.


OperUnsuppress BOOL Se establece mediante la interface del operador para cancelar la supresin de la alarma. Tiene
precedencia sobre los comandos de supresin. La instruccin de alarma borra este parmetro.

La opcin predeterminada es borrado.

46 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA) Captulo 1

Parmetro de Tipo de datos Descripcin


entrada
ProgDisable BOOL Se establece mediante el programa de usuario para inhabilitar la alarma.

La opcin predeterminada es borrado.

Lgica de escalera de rels:

Copiado del operando de instruccin.

Texto estructurado:

Copiado del operando de instruccin.


OperDisable BOOL Se establece mediante la interface del operador para inhabilitar la alarma. La instruccin de
alarma borra este parmetro.

La opcin predeterminada es borrado.


ProgEnable BOOL Se establece mediante el programa de usuario para habilitar la alarma. Tiene precedencia
sobre un comando de inhabilitacin.

La opcin predeterminada es borrado.

Lgica de escalera de rels:

Copiado del operando de instruccin.

Texto estructurado:

Copiado del operando de instruccin.


OperEnable BOOL Se establece mediante la interface del operador para habilitar la alarma. Tiene precedencia
sobre un comando de inhabilitacin. La instruccin de alarma borra este parmetro.

La opcin predeterminada es borrado.


AlarmCountReset BOOL Se establece mediante el programa de usuario para reinicializar los conteos de alarmas para
todas las condiciones. Una transicin que cambia de borrado a establecido pone en cero los
conteos de alarmas.

La opcin predeterminada es borrado.


HHlimit REAL Lmite de alarma alta alta.

Vlido = HLimit < HHLimit < valor con punto flotante (coma flotante) positivo mximo.

Valor predeterminado = 0.0.


HHSeverity DINT Severidad de la condicin de alarma alta alta. Esto no afecta el procesamiento de alarmas por
parte del controlador, pero puede usarse para clasificar y filtrar funciones en el subscriptor de
alarmas.

Vlido = 1...1000 (1000 = la ms severa; 1 = la menos severa).

Valor predeterminado = 500.


HLimit REAL Lmite de alarma alta.

Vlido = LLimit < HLimit < HHLimit.

Valor predeterminado = 0.0.

Publicacin 1756-RM003K-ES-P Julio 2008 47


Captulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA)

Parmetro de Tipo de datos Descripcin


entrada
HSeverity DINT Severidad de la condicin de alarma alta. Esto no afecta el procesamiento de alarmas por parte
del controlador, pero puede usarse para clasificar y filtrar funciones en el subscriptor de
alarmas.

Vlido = 1...1000 (1000 = la ms severa; 1 = la menos severa).

Valor predeterminado = 500.


LLimit REAL Lmite de alarma baja.

Vlido = LLLimit < LLimit < HLimit.

Valor predeterminado = 0.0.


LSeverity DINT Severidad de la condicin de alarma baja. Esto no afecta el procesamiento de alarmas por parte
del controlador, pero puede usarse para clasificar y filtrar funciones en el subscriptor de
alarmas.

Vlido = 1...1000 (1000 = la ms severa; 1 = la menos severa).

Valor predeterminado = 500.


LLLimit REAL Lmite de alarma baja baja.

Vlido = valor con punto flotante (coma flotante) negativo mximo < LLLimit < LLimit.

Valor predeterminado = 0.0.


LLSeverity DINT Severidad de la condicin de alarma baja baja. Esto no afecta el procesamiento de alarmas por
parte del controlador, pero puede usarse para clasificar y filtrar funciones en el subscriptor de
alarmas.

Vlido = 1...1000 (1000 = la ms severa; 1 = la menos severa).

Valor predeterminado = 500.


MnDurationPRE DINT Preajuste de duracin mnima (milisegundos) para que una condicin de nivel de alarma
permanezca verdadera antes de que la condicin sea marcada como InAlarm y se enve
notificacin de la alarma a los clientes. El controlador recolecta datos de alarmas tan pronto
como se detecta la condicin de alarma; por lo tanto, no se pierden datos durante la espera
hasta cumplir con la duracin mnima. No se aplica a condiciones de velocidad de cambio.

MinDurationPRE slo se aplica a la primera excursin de normal en cualquier direccin. Por


ejemplo, una vez que la condicin alta sobrepasa el tiempo de espera, la condicin alta alta se
activa inmediatamente, mientras que una condicin baja esperar el perodo de tiempo de
espera.

Vlido = 0...2,147,483,647.

Valor predeterminado = 0.

48 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA) Captulo 1

Parmetro de Tipo de datos Descripcin


entrada
Deadband REAL Banda muerta para detectar que los niveles de alarma alta alta, alta, baja y baja baja han
regresado a lo normal.

Una banda muerta diferente de cero puede reducir la vibracin de la condicin de alarma si el
valor In est cambiando continuamente pero permanece cerca del nivel de umbral de la
condicin. El valor de la banda muerta no afecta la transicin al estado InAlarm (activo). Una
vez que una condicin de nivel est activa, pero antes de que la condicin regrese al estado
inactivo (normal), el valor In debe, o bien:

caer por debajo del umbral menos la banda muerta (para condiciones alta y alta alta).
o bien
subir por encima del umbral ms la banda muerta (para condiciones baja y baja baja).
La banda muerta no se usa para condicionar la medicin del tiempo de duracin mnima.

Vlido = 0 Deadband < Span desde la primera alarma baja habilitada hasta la primera alarma
alta habilitada.

Valor predeterminado = 0.0.


ROCPosLimit REAL Lmite para una velocidad de cambio creciente, en unidades por segundo. La deteccin se
habilita para cualquiera valor > 0.0 si ROCPeriod tambin es > 0.0.

Vlido = 0.0...valor con punto flotante (coma flotante) mximo posible.

Valor predeterminado = 0.0.


ROCPosSeverity DINT Severidad de la condicin de velocidad de cambio creciente. Esto no afecta el procesamiento de
alarmas por parte del controlador, pero puede usarse para clasificar y filtrar funciones en el
subscriptor de alarmas.

Vlido = 1...1000 (1000 = ms severa; 1 = menos severa).

Valor predeterminado = 500.


ROCNegLimit REAL Lmite para una velocidad de cambio decreciente, en unidades por segundo. La deteccin se
habilita para cualquiera valor > 0.0 si ROCPeriod tambin es > 0.0.

Vlido = 0.0...valor con punto flotante (coma flotante) mximo posible.

Valor predeterminado = 0.0.


ROCNegSeverity DINT Severidad de la condicin de velocidad de cambio decreciente. Esto no afecta el procesamiento
de alarmas por parte del controlador, pero puede usarse para clasificar y filtrar funciones en el
subscriptor de alarmas.

Vlido = 1...1000 (1000 = ms severa; 1 = menos severa).

Valor predeterminado = 500.


ROCPeriod REAL Perodo de tiempo en segundos para calcular (intervalo de muestreo) el valor de la velocidad de
cambio. Cada vez que expira el intervalo de muestreo, se almacena una nueva muestra de In, y
se calcula ROC.

La deteccin de velocidad de cambio se habilita para cualquiera valor > 0.0.

Vlido = 0.0...valor con punto flotante (coma flotante) mximo posible.

Valor predeterminado = 0.0.

Publicacin 1756-RM003K-ES-P Julio 2008 49


Captulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA)

Parmetro de salida Tipo de datos Descripcin


EnableOut BOOL Habilitacin de salida.
InAlarm BOOL Estado activo de alarma. Se establece cuando cualquier condicin de alarma est activa.
Se borra cuando todas las condiciones de alarma no estn activas (estado normal).

AnyInAlarmUnack BOOL Alarma activa y estado confirmado combinados. Se establece cuando una condicin de
alarma se ha detectado y no est confirmada. Se borra cuando todas las alarmas son
normales (inactivas), confirmadas, o ambas.
HHInAlarm BOOL Estado de condicin de alarma alta alta. Se establece cuando existe una condicin de
alarma alta alta. Se borra cuando no existe una condicin de alarma alta alta.
HInAlarm BOOL Estado de condicin de alarma alta. Se establece cuando existe una condicin de alarma
alta. Se borra cuando no existe una condicin de alarma alta.
LInAlarm BOOL Estado de condicin de alarma baja. Se establece cuando existe una condicin de alarma
baja. Se borra cuando no existe una condicin de alarma baja.
LLInAlarm BOOL Estado de condicin de alarma baja baja. Se establece cuando existe una condicin de
alarma baja baja. Se borra cuando no existe una condicin de alarma baja baja.
ROCPosInAlarm BOOL Estado de condicin de alarma de velocidad de cambio positiva. Se establece cuando existe
una condicin de velocidad de cambio positiva. Se borra cuando no existe una condicin de
velocidad de cambio positiva.
ROCNegInAlarm BOOL Estado de condicin de alarma de velocidad de cambio negativa. Se establece cuando
existe una condicin de velocidad de cambio negativa. Se borra cuando no existe una
condicin de velocidad de cambio negativa.
ROC REAL Velocidad de cambio calculada del valor In. Este valor se actualiza cuando la instruccin se
escanea despus de cada ROCPeriod transcurrido. El valor ROC se usa para evaluar
condiciones de ROCPosInAlarm y ROCNegInAlarm.

ROC = (muestra actual de In muestra previa de In)/ROCPeriod


HHAcked BOOL Estado confirmado de condicin alta alta. Se establece cuando se confirma una condicin
alta alta. Siempre se establece cuando AckRequired se borra. Se borra cuando no se
confirma una condicin alta alta.
HAcked BOOL Estado confirmado de condicin alta. Se establece cuando se confirma una condicin alta.
Siempre se establece cuando AckRequired se borra. Se borra cuando no se confirma una
condicin alta.
LAcked BOOL Estado de confirmacin de condicin baja. Se establece cuando se confirma una condicin
baja. Siempre se establece cuando AckRequired se borra. Se borra cuando no se confirma
una condicin baja.
LLAcked BOOL Estado de confirmacin de condicin baja baja. Se establece cuando se confirma una
condicin baja baja. Siempre se establece cuando AckRequired se borra. Se borra cuando
no se confirma una condicin baja baja.
ROCPosAcked BOOL Estado de confirmacin de condicin de velocidad de cambio positiva. Se establece cuando
se confirma una condicin de velocidad de cambio positiva. Siempre se establece cuando
AckRequired se borra. Se borra cuando no se confirma una condicin de velocidad de
cambio positiva.
ROCNegAcked BOOL Estado de confirmacin de condicin de velocidad de cambio negativa. Se establece
cuando se confirma una condicin de velocidad de cambio negativa. Siempre se establece
cuando AckRequired se borra. Se borra cuando no se confirma una condicin de velocidad
de cambio negativa.
HHInAlarmUnack BOOL Estado no confirmado y condicin alta alta activa combinado. Se establece cuando la
condicin alta alta est activa (HHInAlarm est establecido) y no confirmada. Se borra
cuando la condicin alta alta es normal (inactiva), confirmada, o ambas.

50 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA) Captulo 1

Parmetro de salida Tipo de datos Descripcin


HInAlarmUnack BOOL Estado no confirmado y condicin alta activa combinado. Se establece cuando la condicin
alta est activa (HInAlarm est establecido) y no confirmada. Se borra cuando la condicin
alta es normal (inactiva), confirmada, o ambas.
LInAlarmUnack BOOL Estado no confirmado y condicin baja activa combinado. Se establece cuando la condicin
baja est activa (LInAlarm est establecido) y no confirmada. Se borra cuando la condicin
baja es normal (inactiva), confirmada, o ambas.
LLInAlarmUnack BOOL Estado no confirmado y condicin baja baja activa combinado. Se establece cuando la
condicin baja baja est activa (LLInAlarm est establecido) y no confirmada. Se borra
cuando la condicin baja baja es normal (inactiva), confirmada, o ambas.
ROCPosInAlarmUnack BOOL Estado no confirmado y condicin de velocidad de cambio positiva activa combinado. Se
establece cuando la condicin de velocidad de cambio positiva est activa (ROCPosInAlarm
est establecido) y no confirmada. Se borra cuando la condicin de velocidad de cambio
positiva es normal (inactiva), confirmada, o ambas.
ROCNegInAlarmUnack BOOL Estado no confirmado y condicin de velocidad de cambio negativa activa combinado.
Se establece cuando la condicin de velocidad de cambio negativa est activa
(ROCNegInAlarm est establecido) y no confirmada. Se borra cuando la condicin de
velocidad de cambio negativa es normal (inactiva), confirmada, o ambas.
Suppressed BOOL Estado suprimido de la alarma. Se establece cuando la alarma est suprimida. Se borra
cuando la alarma no est suprimida.

Disabled BOOL Estado inhabilitado de la alarma. Se establece cuando la alarma est inhabilitada. Se borra
cuando la alarma est habilitada.

MnDurationACC DINT Tiempo transcurrido desde que se detect una condicin de alarma. Cuando este valor llega
a MinDurationPRE, todas las condiciones de nivel de alarma detectadas se activan
(xInAlarm est establecido) y se enva una notificacin a los clientes.
HHInAlarmTime LINT Sello de hora cuando la instruccin ALMA detect que el valor In excedi el lmite de
condicin alta alta para la transicin ms reciente al estado activo.
HHAlarmCount DINT El nmero de veces que se activ la condicin alta alta. Si se llega al valor mximo,
el contador deja el valor en el mximo valor de conteo.
HInAlarmTime LINT Sello de hora cuando la instruccin ALMA detect que el valor In excedi el lmite de
condicin alta para la transicin ms reciente al estado activo.
HAlarmCount DINT El nmero de veces que se activ la condicin alta. Si se llega al valor mximo, el contador
deja el valor en el mximo valor de conteo.
LInAlarmTime LINT Sello de hora cuando la instruccin ALMA detect que el valor In excedi el lmite de
condicin baja para la transicin ms reciente al estado activo.
LAlarmCount DINT El nmero de veces que se activ la condicin baja. Si se llega al valor mximo, el contador
deja el valor en el mximo valor de conteo.
LLInAlarmTime LINT Sello de hora cuando la instruccin ALMA detect que el valor In excedi el lmite de
condicin baja baja para la transicin ms reciente al estado activo.
LLAlarmCount DINT El nmero de veces que se activ la condicin baja baja. Si se llega al valor mximo,
el contador deja el valor en el mximo valor de conteo.
ROCPosInAlarmTime LINT Sello de hora cuando la instruccin ALMA detect que el valor In excedi el lmite de
condicin de velocidad de cambio positiva para la transicin ms reciente al estado activo.
ROCPosInAlarmCount DINT El nmero de veces que se activ la condicin de velocidad de cambio positiva. Si se llega
al valor mximo, el contador deja el valor en el mximo valor de conteo.
ROCNegInAlarmTime LINT Sello de hora cuando la instruccin ALMA detect que el valor In excedi el lmite de
condicin de velocidad de cambio negativa para la transicin ms reciente al estado activo.
ROCNegAlarmCount DINT El nmero de veces que se activ la condicin de velocidad de cambio negativa. Si se llega
al valor mximo, el contador deja el valor en el mximo valor de conteo.

Publicacin 1756-RM003K-ES-P Julio 2008 51


Captulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA)

Parmetro de salida Tipo de datos Descripcin


AckTime LINT Sello de hora de la confirmacin de condicin ms reciente. Si la alarma no requiere
confirmacin, este sello de hora es igual a la hora de la alarma de condicin ms reciente.
RetToNormalTime LINT Sello de hora del retorno de la alarma al estado normal.
AlarmCountResetTime LINT Sello de hora que indica cundo se restableci la alarma.
DeliveryER BOOL Error de entrega del mensaje de notificacin de alarma. Se establece cuando hay un error
de entrega: ningn subscriptor de alarma estaba suscrito, o por lo menos un suscriptor no
recibi el ltimo mensaje de estado de cambio de alarma. Se borra cuando la entrega se
realiza correctamente o est en curso.
DeliveryDN BOOL Entrega del mensaje de notificacin de alarma realizada. Se establece cuando la entrega se
realiza correctamente: por lo menos un suscriptor estaba suscrito y todos los suscriptores
recibieron correctamente el ltimo mensaje de estado de cambio de alarma. Se borra
cuando la entrega no se realiza correctamente o est en curso.
DeliveryEN BOOL Estado de entrega del mensaje de notificacin de alarma. Se establece cuando la entrega
est en curso. Se borra cuando la entrega no est en curso.

NoSubscriber BOOL La alarma no tena suscriptores cuando se intent entregar el mensaje ms reciente. Se
establece cuando no hay suscriptores. Se borra cuando hay por lo menos un suscriptor.

NoConnection BOOL Los subscriptores de la alarma no estaban conectados cuando se intent entregar el
mensaje ms reciente. Se establece cuando todos los suscriptores estn desconectados.
Se borra cuando por lo menos un suscriptor est conectado o cuando no hay suscriptores.

CommError BOOL Error de comunicacin al entregar un mensaje de alarma. Se establece cuando hay errores
de comunicacin y se han usado todos los reintentos. Esto significa que un suscriptor
estaba suscrito y tena una conexin, pero el controlador no recibi confirmacin de la
entrega del mensaje. Se borra cuando todos los suscriptores conectados confirman la
recepcin del mensaje de alarma.
AlarmBuffered BOOL Mensaje de alarma almacenado en el bfer debido a error de comunicacin (ComError est
establecido) o prdida de conexin (NoConnection est establecido). Se establece cuando
el mensaje de alarma se almacena en el bfer por lo menos para un suscriptor. Se borra
cuando el mensaje de alarma no se almacena en el bfer.
Subscribers DINT Nmero de suscriptores para esta alarma.
SubscNotified DINT Nmero de suscriptores notificados correctamente acerca del cambio de estado de alarma
ms reciente.
Status DINT Indicadores de estado combinados:

Status.0 = InstructFault.

Status.1 = InFaulted.

Status.2 = SeverityInv.

Status.3 = AlarmLimitsInv.

Status.4 = DeadbandInv.

Status.5 = ROCPosLimitInv.

Status.6 = ROCNegLimitInv.

Status.7 = ROCPeriodInv.
InstructFault (Status.0) BOOL Existen condiciones de error de instruccin. ste no es un error menor ni mayor del
controlador. Verifique los bits de estado restantes para determinar lo que ocurri.

52 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA) Captulo 1

Parmetro de salida Tipo de datos Descripcin


InFaulted (Status.1) BOOL El programa del usuario estableci InFault para indicar datos de entrada de mala calidad.
La alarma contina evaluando In en lo que respecta a las condiciones de alarma.
SeverityInv (Status.2) BOOL La severidad de la alarma no es vlida.

Si la severidad <1, la instruccin usa Severity = 1.

Si a severidad >1000, la instruccin usa Severity = 1000.


AlarmLimitsInv BOOL La configuracin de lmite de alarma no es vlida (por ejemplo, LLimit < LLLimit). Si no es
(Status.3) vlido, la instruccin borra todos los bits activos de condiciones de nivel. No se podrn
detectar nuevas condiciones de nivel hasta que se borre el fallo.
DeadbandInv (Status.4) BOOL La configuracin de la banda muerta no es vlida. Si no es vlida, la instruccin usa
Deadband = 0.0.

Vlido = 0 Deadband < Span desde la primera alarma baja habilitada hasta la primera
alarma alta habilitada.
ROCPosLimitInv BOOL Lmite de velocidad de cambio positiva no vlido. Si no es vlido, la instruccin usa
(Status.5) ROCPosLimit = 0.0, lo cual inhabilita la deteccin de velocidad de cambio positiva.
ROCNegLimitInv BOOL Lmite de velocidad de cambio negativa no vlido. Si no es vlido, la instruccin usa
(Status.6) ROCNegLimit = 0.0, lo cual inhabilita la deteccin de velocidad de cambio negativa.
ROCPeriodInv (Status.7) BOOL Perodo de velocidad de cambio no vlido. Si no es vlido, la instruccin usa
ROCPeriod = 0.0, lo cual inhabilita la deteccin de velocidad de cambio.

Descripcin La instruccin ALMA detecta alarmas segn el nivel o velocidad de


cambio de un valor.

La instruccin ALMA proporciona funcionalidad adicional cuando se


usa con el software RSLinx Enterprise y FactoryTalk View SE. Usted
puede mostrar alarmas en las pantallas Alarm Summary, Alarm
Banner, Alarm Status Explorer y Alarm Log Viewer en el software
FactoryTalk View SE.

El software RSLinx Enterprise se suscribe a alarmas en el controlador.


Use los parmetros de salida para monitorear la instruccin a fin de
ver el estado de suscripcin de alarmas y para mostrar cambios de
estado de alarmas. Si se pierde una conexin al software RSLinx
Enterprise, el controlador puede almacenar en el bfer datos de
alarmas brevemente hasta que se restaure la conexin.

Publicacin 1756-RM003K-ES-P Julio 2008 53


Captulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA)

Diagramas de estado cuando se requiere confirmacin


InIn>=>=HLimit,
HLimit,MinDurationACC >=MinDurationPRE
MinDurationACC >= MinDurationPRE InIn>=>=HHLimit,
HHLimit,MinDurationACC >=MinDurationPRE
MinDurationACC >= MinDurationPRE
HinAlarm==False
HInAlarm False HinAlarm
HInAlarm = True
= True HHinAlarm
HHInAlarm == False
False HHinAlarm = True
HHInAlarm = True
HAcked==True
True HAcked
HAcked = False HHAcked = True
True HHAcked
HHAcked = False
HAcked
nd) HHAcked =
ndd) ) = False
dbaand) dbbaan
InIn<<
((HHLLi Deaadb
- e
IInn<<
(H(HHH -- DD
eeaad
mitit - D LLim m it
it
PRE
m (HHLliim ERE HHLLiim
imiit E
t - Dee PnRP
imiitt PoRn
Ack1 1 aaddb InIn<< ( iotnio
arta 1 1 -- DDe < ((HH ranti
rautio 1
Ack baannd nuDru
iniD
Ack1
Ack Ack1
Ack
eaadd
bbaann IInn Di uD
n Ack1
Ack
d)) M dd)) MM in
==M >=>=
CC>> ACCC
AACC AnC
ttioionn rtaiotino
uurraa ura
DDu
Mi n
inD
Minin
M
itit,, M miitt,,
HLLi
im
HLLim
im HinAlarm = True HHinAlarm = False HHinAlarm
HinAlarm = False
HInAlarm = False
>==H HInAlarm = True HHInAlarm = False ==H HHInAlarm = True
= True
HAcked
HAcked = False
= False InIn> HAcked = True
HAcked = True HHAcked
HHAcked == False
False Inn
I >
>
HHAcked
HHAcked == True
True

1 La condicin de alarma H puede confirmarse de diferentes maneras: HProgAck, HOperAck, 1 La condicin de alarma HH puede confirmarse de diferentes maneras: HHProgAck, HHOperAck,
1 1
H alarm condition can be acked by several different ways: HProgAck, HOperAck, ProgAckAll, OperAckAll, HH alarm condition can be acked by several different ways: HHProgAck, HHOperAck, ProgAckAll, OperAckAll,
ProgAckAll, OperAckAll,
clients (RSLogix clientes
5000 software, (software
RSView RSLogix 5000, software RSView).
software). ProgAckAll, OperAckAll,
clients (RSLogix clientes
5000 software, (software
RSView RSLogix 5000, software RSView).
software).

InIn>=<=LLimit,
LLimit,MinDurationACC >=MinDurationPRE
MinDurationACC >= MinDurationPRE InIn>=<=LLLimit,
LLLimit,MinDurationACC >= MinDurationPRE
MinDurationACC >= MinDurationPRE
LinAlarm LinAlarm = True LLinAlarm = False
False LLinAlarm = True
LInAlarm == False
False LInAlarm = True LLInAlarm = LLInAlarm = True
LAcked = True
True LAcked = False
False LAcked ==True ) LAcked ==False
nd))
LAcked = LAcked = LLAcked True LLAcked False
dbaand d b anndd)
a
IInn <> Deaadb IInn < a
Deead
b
(LLLLiim
miitt + im it+- De > ((LL
LLLLim im it +- D
it RE
PREE (LLLLLLim
it
- De (LLLlim PnR
imiitt - oPnRPE
Ack1 adba InIn <> ( atiotino 1 1 +D Deead IInn >< ( uDrua
rtioatni Ack1
uurar Ack1 Ack1 adbba Ack1
Ack1 ndd)
) M ininDD Ack Ack anndd) MM iniDn
>> =
= M ) >==
CCC>
ACCCC
A ionnAAC
tiioonn urraattio
ninDD
uurraat inDDu
Mi Min
it,, M
LinAlarm = False it,itM
Lim
Lim
,
LinAlarm = True LLinAlarm = False LLLimimit
LLinAlarm = True
LInAlarm = False =<=LL LInAlarm = True LLInAlarm = False ==LLL LLInAlarm = True
LAcked
LAcked = False
= False InI>n LAcked
LAcked = True
= True LAcked
LLAcked==False
False InIn>< LAcked ==True
LLAcked True

1 La condicin de alarma H puede confirmarse de diferentes maneras: LProgAck, LOperAck, 11


1
L alarm condition can be acked by several different ways: LProgAck, LOperAck, ProgAckAll, OperAckAll, La
LLcondicin de alarma
alarm condition LLacked
can be puedebyconfirmarse de diferentes
several different maneras:LLOperAck,
ways: LLProgAck, LLProgAck,ProgAckAll,
LLOperAck,OperAckAll,
ProgAckAll,
ProgAckAll, OperAckAll,
clients (RSLogix clientes
5000 software, (software
RSView RSLogix 5000, software RSView).
software). OperAckAll, clientes
clients (RSLogix 5000(software RSLogixsoftware).
software, RSView 5000, software RSView).

Donde se recolecta una nueva muestra en el


In(CurrentSample)
In(Current Sample) -- In(Previou
In(PreviousSample)
sSample) Where a new sample is collected on the
ROC ==
ROC siguiente escn despus de que haya transcurrido
ROCPeriod next scan after the ROCPeriod has elapsed.
ROCPeriod ROCPeriod

ROC <=
ROC >= RocPosLimit
RocPosLimit ROC
ROC <=
<= -RocNegLimit
-RocNegLimit
RocPosInAlarm = False
RocPosInAlarm = False RocPosInAlarm
RocPosInAlarm == True
True RocNegInAlarm
RocNegInAlarm == False
False RocNegInAlarm = True
RocNegInAlarm = True
RocPosAcked
RocPosAcked = True
= True RocPosAcked = False
RocPosAcked = False RocNegAcked
RocNegAcked == True
True RocNegAcked
RocNegAcked = False
it
Limit imitit
Lim
RROOC cP PoossLim RROOC occN NeeggL
C<<
RRooc < RRooc C<>-
R < --RRo
ROOCC
< -Rooc
cPPoo cNNeg RO C>
OC
Ack11 ssLLim R
Ack11 Ack1 1 egLLi R Ack1 1
Ack imiitt Ack Ack miitt
im Ack

it
miitt Limit
ssLLiim NegeLg
im
cPPoo RooccN
Rooc -
<>== R <==-R
RocPosInAlarm = False
RocPosInAlarm = False RO C
C RocPosInAlarm
RocPosInAlarm == True
True RocNegInAlarm
RocNegInAlarm == False
False
RRO
OCC< RocNegInAlarm
RocNegInAlarm == True
True
RocPosAcked
RocPosAcked = False RocPosAcked = True
True RocNegAcked
RocNegAcked == False
False RocNegAcked
RocNegAcked == True
True

1 1
1 La condicin de alarma ROCPos puede confirmarse de diferentes maneras: RocPosProgAck, RocPosOperAck, La
1
condicin de alarma ROCNeg puede confirmarse de diferentes maneras: RocNegProgAck, RocNegOperAck,
ROCPos alarm condition can be acked by several different ways: RocPosProgAck, RocPosOperAck, ProgAckAll, ROCNeg alarm condition can be acked by several different ways: RocNegProgAck, RocNegOperAck, ProgAckAll,
l, ProgAkkAll, ,
ProgAckAll, OperAckAll,
OperAckAll, clients clientes
(RSLogix (softwareRSView
5000 software, RSLogixsoftware).
5000, software RSView). OperAckAll,OperAckAll, clientes
clients (RSLogix 5000(software
software, RSLogix 5000, software RSView).
RSView software).

54 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA) Captulo 1

Diagramas de estado cuando no se requiere confirmacin


In >=
In >= HLimit,MinDurationACC
HLimit, MinDurationACC >=
>= MinDurationPRE
MinDurationPRE
HinAlarm = False HinAlarm = True HAcked = True
HInAlarm = False HInAlarm = True HAcked = True

In In < (HLimit- -Deadband)


< (HLimit Deadband)

In In
<=>=LLimit,
LLLimit,MinDurationACC
MinDurationACC >=
>= MinDurationPRE
MinDurationPRE
LinAlarm = False LinAlarm = True LAcked = True
LInAlarm = False LInAlarm = True LAcked = True

InIn> <(LLimit
(LLimit +- Deadband)
Deadband)

In >=
In >= HHLimit,MinDurationACC
HHLimit, MinDurationACC >=
>=MinDurationPRE
MinDurationPRE
HHinAlarm == False
HHInAlarm False HHinAlarm ==True
HHInAlarm True HHAcked ==True
HHAcked True

InIn< <(HHLimit
(HHLimit -- Deadband)
Deadband)

In >=
In <= LLLimit,MinDurationACC
LLLimit, MinDurationACC >=
>=MinDurationPRE
MinDurationPRE
LLinAlarm = False LLinAlarm = True LLAcked = True
LLInAlarm = False LLInAlarm = True LLAcked = True

In In < (LLLimit+- Deadband)


> (LLLimit Deadband)

In(CurrentSample) Donde
Wheresearecolecta una nueva muestraonenthe
el siguiente
In(Current Sample) -- In(PreviousSample)
In(PreviousSample) new sample is collected
ROC= =
ROC escn despus
next scan de the
after queROCPeriod
haya transcurrido ROCPeriod
has elapsed.
ROCPeriod
ROCPeriod

ROC>=>= ROCPosLimit
ROC ROCPosLimit
RocPosInAlarm ==False
RocPosInAlarm False RocPosInAlarm ==True
RocPosInAlarm True RocPosAcked
RocPosAcked= True
= True

ROC<> ROCPosLimit
ROC ROCPosLimit

ROC<=
ROC >=-ROCNegLimit
-ROCNegLimit
RocNegInAlarm == False
RocNegInAlarm False RocNegInAlarm ==True
RocNegInAlarm True RocNegAcked
RocNegAcked= True
= True

ROC>> -ROCNegLimit
ROC -ROCNegLimit

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico se establecen para la salida ROC.

Condiciones de fallo:
Fallo menor Tipo de fallo Cdigo de fallo
Overflow ROC 4 4

Ejecucin:
Condicin Accin de lgica de escalera de rels
preescn La condicin de salida de rengln se establece como falsa.

Todos los parmetros xInAlarm se borran y se confirman


todas las condiciones de alarma.

Todas las peticiones del operador, sellos de hora e


indicadores de entrega se borran.
condicin de entrada de La instruccin no se ejecuta.
rengln es falsa
EnableOut se borra.
condicin de entrada de La instruccin se ejecuta.
rengln es verdadera
EnableOut se establece.
post-escn La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008 55


Captulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA)

Condicin Accin de bloque de funciones Accin de texto estructurado


preescn Todas las peticiones del operador, sellos de hora e Todas las peticiones del operador, sellos de hora e
indicadores de entrega se borran. indicadores de entrega se borran.

Todos los parmetros xInAlarm se borran y se Todos los parmetros xInAlarm se borran y se
confirman todas las condiciones de alarma. confirman todas las condiciones de alarma.
primer escn de instruccin Ninguna. Ninguna.
primera ejecucin de Ninguna. Ninguna.
instruccin
EnableIn se borra La instruccin no se ejecuta. La instruccin se ejecuta.

EnableOut se borra. EnableOut siempre se establece.


EnableIn se establece La instruccin se ejecuta. La instruccin se ejecuta.

EnableOut se establece. EnableOut siempre se establece.


post-escn Ninguna. Ninguna.

56 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA) Captulo 1

Confirmacin de condicin de nivel ALMA requerida

Publicacin 1756-RM003K-ES-P Julio 2008 57


Captulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA)

Confirmacin de condicin de nivel ALMA no requerida

58 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA) Captulo 1

Confirmacin de velocidad de cambio ALMA requerida

Publicacin 1756-RM003K-ES-P Julio 2008 59


Captulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA)

Confirmacin de velocidad de cambio ALMA no requerida

Ejemplo: Se activa una alarma de tanque si el nivel del tanque sobrepasa el


lmite de alarma alta o alta alta. Confirme programticamente todas las
condiciones de alarma con una transicin de borrado a establecido
del valor de tag Tank32LevelAck. La lgica de la aplicacin debe
borrar Tank32LevelAck.

60 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA) Captulo 1

Lgica de escalera de rels

Texto estructurado

ALMA(Tank32Level,Tank32LT,Tank32LevelAck,0, 0);

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008 61


Captulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA)

Configure una instruccin Despus de introducir una alarma ALMD o ALMA y especificar el
nombre de tag de la alarma, use el dilogo Alarm Configuration para
de alarma especificar los detalles del mensaje.

Haga clic aqu para configurar la instruccin.

El dilogo Properties de la instruccin de alarma incluye la ficha


Configuration.

62 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA) Captulo 1

Para cada instruccin de alarma, configure esta informacin.


Opcin Descripcin
Condition Instruccin ALMD Condicin para activar la alarma.

Seleccione Input=1 para una alarma activa cuando In=1. Seleccione Input=0 para una
alarma activa cuando In=0.
Input Level Instruccin ALMA Nivel de entrada (High High, High, Low o Low Low) o velocidad de cambio de entrada
(positiva o negativa) para activar una alarma.
Input Rate of Change Instruccin ALMA Seleccione las condiciones de la alarma e introduzca los lmites para dichas condiciones.
Inhabilite las condiciones de velocidad de cambio introduciendo un 0 para el perodo o
lmite.
Severity Seleccione un rango de severidades entre 1...1000 para clasificar la importancia de una
condicin de alarma. Una severidad de 1 es para alarmas de baja prioridad, mientras que
una severidad de 1000 es para una condicin de emergencia.
De manera predeterminada, en el sistema FactoryTalk Alarms and Events los rangos de
severidad se asignan a prioridades de la siguiente manera:

1...250 son de baja prioridad


251...500 son de prioridad media.
501...750 son de alta prioridad.
751...1000 son de prioridad urgente.
Usted puede configurar la asignacin de severidad a prioridad en el sistema FactoryTalk
Alarms and Events. Remtase a la ayuda de FactoryTalk para obtener detalles.
Minimum Duration Introduzca el tiempo en ms que una condicin de alarma debe estar activa antes de que se
reporte la alarma.
Latched Instruccin ALMD Seleccione enclavado (Latched) si desea que la alarma permanezca activa (InAlarm)
despus de que la condicin de alarma regresa al estado inactivo (normal). Las alarmas
enclavadas requieren un comando de restablecimiento para cambiar a normal. El comando
de restablecimiento debe recibirse despus de que la condicin regrese al estado normal.

Los comandos de confirmacin no borrarn una alarma enclavada.


Deadband Instruccin ALMA Especifique un valor de banda muerta para reducir la vibracin de la condicin de alarma
causada por pequeas fluctuaciones en el valor In.

El valor de banda muerta no afecta el lmite de alarma para la transicin al estado activo y,
adems, no se usa durante el intervalo de duracin mnima.

Una vez que una condicin de nivel de activa (InAlarm), permanecer activa hasta que el
valor In regrese dentro del lmite mediante la banda muerta especificada. Por ejemplo, si el
lmite alto es 80, el lmite bajo es 20 y la banda muerta es 5, la condicin alta se activar
cuando el valor sea 80 y regresar a lo normal cuando el valor sea 75; la condicin baja
se activar cuando el valor sea 20 y regresar a lo normal cuando el valor sea 25.

La banda muerta no tiene ningn efecto en las condiciones de alarma de velocidad de


cambio.
Acknowledgement Required Las alarmas estn configuradas de manera predeterminada para requerir confirmacin. La
confirmacin indica que un operador tiene conocimiento de la condicin de alarma, ya sea
que las condiciones hayan regresado a lo normal o no.

Borre el ajuste Acknowledgement Required si desea que la alarma aparezca y desaparezca


del resumen de alarmas en el HMI sin interaccin del operador.

Las alarmas que no requieren confirmacin siempre tienen establecido el estado Acked.

Si una alarma digital se configura como enclavada, el comando de restablecimiento


tambin reconoce la alarma.

Publicacin 1756-RM003K-ES-P Julio 2008 63


Captulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA)

Opcin Descripcin
Alarm class Use la clase de alarma para agrupar alarmas relacionadas. Especifique exactamente la
misma clase de alarma para cada alarma que usted desea mantener en la misma clase.
La clase de alarma permite distinguir maysculas de minsculas.
Por ejemplo, especifique Zona de tanques A para agrupar todas las alarmas de los tanques
de un rea especfica. O especifique la clase Lazos de control para agrupar todas las
alarmas de lazos PID.
Despus de ello podr mostrar y filtrar alarmas en la interface operador-mquina (HMI)
segn la clase. Por ejemplo, un operador puede mostrar todas las alarmas de tanques o
todas las alarmas de lazo PID.
La clase de alarma no limita las alarmas a las que se subscribe un objeto del resumen de
alarmas. Use la clase de alarmas para filtrar las alarmas que se muestran a un operador una
vez que stas han sido recibidas por el objeto del resumen de alarmas. El software
FactoryTalk View puede filtrar la clase de alarma sustituyendo comodines por caracteres.
View command Ejecute un comando en la estacin del operador cuando lo solicite el operador para una
alarma especfica. Esto permite que un operador ejecute cualquier comando de FactoryTalk
View estndar, tal como llamar a plantillas y pantallas especficas, ejecutar macros,
acceder a archivos de ayuda e iniciar aplicaciones externas. Cuando se produce la condicin
de alarma y se muestra al operador, un botn en las pantallas de resumen e indicador deja
que el operador ejecute un comando de visualizacin asociado.

Tenga cuidado a fin de ingresar la sintaxis de comando correcta y pruebe el comando en


tiempo de ejecucin, ya que cuando se introduce el comando no se realiza una verificacin
de errores.

Usted puede editar todos los aspectos de la configuracin de alarmas


fuera de lnea y en lnea. Las ediciones en lnea de las alarmas nuevas
y existentes se envan inmediatamente a los suscriptores de
FactoryTalk (los terminales de HMI de versiones anteriores que estn
encuestando [polling] los tags no se actualizan automticamente).
Los suscriptores de FactoryTalk no tienen que volver a suscribirse
para recibir informacin actualizada. Los cambios en lnea
automticamente se propagan desde la estructura de alarmas del
controlador al resto de la arquitectura.

64 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA) Captulo 1

Introduzca el texto del Introduzca el texto de mensaje apropiado que se mostrar cuando
una condicin de alarma est activa (InAlarm). Para una instruccin
mensaje de alarma ALMD, usted introduce la informacin del mensaje en la ficha
Configuration. Para una instruccin ALMA, usted introduce la
informacin de mensaje en la ficha Message.

Para definir un mensaje de alarma, especifique esta informacin.

Opcin Descripcin
Message String La cadena de mensaje contiene la informacin que se mostrar al operador respecto a la
alarma. Adems de introducir texto, tambin puede incorporar informacin variable. En el
editor de mensaje de alarma, seleccione la variable que desee y adala en cualquier lugar
de la cadena de mensaje.
La cadena de mensaje puede tener un mximo de 255 caracteres, incluidos los caracteres
que especifican las variables incorporadas (no el nmero de caracteres en los valores reales
de las variables incorporadas). Por ejemplo, /*S:0 %Tag1*/ especifica un tag de cadena y
aade 13 caracteres a la longitud total de la cadena, pero el valor real del tag de cadena
podra tener 82 caracteres.

Usted no puede acceder programticamente a la cadena del mensaje de alarma desde el


tag de alarma. Para cambiar el mensaje de alarma basado en eventos especficos, configure
uno de los tags asociados como tipo de datos de cadena e incorpore dicho tag asociado en
el mensaje.
Usted puede tener versiones de los mensajes en mltiples idiomas. El idioma adicional se
introduce mediante la utilidad de importacin/exportacin. Para obtener ms informacin,
vea la pgina 67.

Publicacin 1756-RM003K-ES-P Julio 2008 65


Captulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA)

Opcin Descripcin
Associated tags Puede seleccionar hasta cuatro tags adicionales desde el proyecto del controlador para
asociarlos con la alarma. Los valores de estos tags se envan con un mensaje de alarma al
servidor de alarmas. Por ejemplo, una alarma digital para una vlvula de alivio de presin
tambin podra incluir informacin tal como la velocidad de la bomba y la temperatura del
tanque.
Los tags asociados pueden ser de cualquier tipo de datos atmico (BOOL, DINT, INT, SINT o
REAL) o un STRING. Pueden ser elementos en un UDT o una matriz. No se permiten
referencias a matrices variables. Si la alarma est bajo el control del controlador, los tags
asociados tambin deben estar bajo el control del controlador.

Opcionalmente, incorpore los tags asociados en la cadena de texto de mensaje.


Los valores de tag asociados siempre se envan con la alarma, visibles para el operador e
introducidos en el registro del historial, independientemente de que los haya incorporado
en la cadena de mensaje.

Variables de la cadena de mensaje

Puede incorporar esta informacin variable en una cadena de


mensaje.
Variable Se incorpora en la cadena de mensaje Cdigo predeterminado aadido a la cadena
de mensaje
Alarm name El nombre de la alarma, que consiste en el nombre del /*S:0 %AlarmName*/
controlador, nombre del programa y nombre de tag.
Por ejemplo,
[Zone1Controller]Program:Main.MyAlarmTagName.
Condition name La condicin que activa la alarma: /*S:0 %ConditionName*/
la alarma digital muestra el disparo;
la alarma analgica muestra HiHi, Hi, Lo, LoLo,
ROC_POS ROC_NEG.
Input value El valor de entrada para la alarma: /*N:5 %InputValue NOFILL DP:0*/
la alarma digital muestra 0 1;
la alarma analgica muestra el valor de la variable
de entrada que est monitoreando.
Limit value El umbral de la alarma: /*N:5 %LimitValue NOFILL DP:0*/
la alarma digital muestra 0 1;
la alarma analgica muestra la verificacin de
rango configurada actual para la condicin de
alarma analgica.
Severity La severidad configurada de la condicin de alarma. /*N:5 %Severity NOFILL DP:0*/
Values of associated tags El valor de un tag configurado para incluirse con el /*N:5 %Tag1 NOFILL DP:0*/
evento de alarma.

66 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA) Captulo 1

El cdigo vara segn el tipo de tag que seleccione, cuntos dgitos o


caracteres hay en un valor de tag y si desea rellenar los bits vacos con
espacios o ceros a la izquierda. Por ejemplo:

Tag Cdigo
Valor BOOL /*N:1 %Tag1 NOFILL DP:0*/
Valor DINT, 9 dgitos, relleno con espacio a la izquierda /*N:9 %Tag2 SPACEFILL DP:0*/
Valor de entrada REAL, 9 dgitos (incluye decimal) /*N:9 %InputValue NOFILL DP:3*/
3 dgitos despus del decimal, relleno con ceros a la
izquierda.
Valor REAL, 8 dgitos (incluye decimal) 4 dgitos despus /*N:8 %Tag3 ZEROFILL DP:4*/
del decimal, relleno con ceros a la izquierda.
Valor de cadena, sin ancho fijo /*S:0 %Tag4*/
Valor de cadena, 26 caracteres, ancho fijo /*S:26 %Tag4*/

Toda esta informacin variable se incluye con los datos de alarma,


visibles para el operador e introducidos en el registro de historial,
independientemente de que usted haya incorporado la informacin
en el texto del mensaje.

Versiones de los mensajes de alarma en mltiples idiomas

Usted puede mantener mensajes de alarmas en varios idiomas.


Introduzca los diversos idiomas en las versiones de idiomas asociados
del software de programacin RSLogix 5000 o en un archivo de
importacin/exportacin (.CSV o .TXT).

Usted puede acceder al texto del mensaje de alarma desde un archivo


de importacin/exportacin (.CSV o .TXT) y aadir lneas adicionales
para las versiones traducidas de la cadena de mensaje original. Los
mensajes en diferentes idiomas usan cdigos de lenguaje ISO en la
columna TIPO. El texto de mensaje de alarma, que incluye los
cdigos de variable incorporados para el operador, est en la columna
DESCRIPCIN. El ESPECIFICADOR identifica la condicin de la
alarma.

Publicacin 1756-RM003K-ES-P Julio 2008 67


Captulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA)

Use la utilidad de importacin/exportacin para crear y traducir


cadenas de mensajes en mltiples idiomas. El formato de
importacin/exportacin .TXT admite caracteres de doble byte, por lo
tanto usted puede usar este formato para todos los idiomas, inclusive
chino, japons y coreano. El formato de importacin/exportacin
.CVS no admite caracteres de doble byte.

Los mensajes de importacin y exportacin siempre realizan una


fusin. Al eliminar un mensaje en un archivo .CSV o .TXT no se
elimina el mensaje del archivo .ACD. Para eliminar un mensaje,
importe el archivo .CSV o .TXT con los campos tipo, nombre y
especificador llenados pero con la descripcin en blanco.

Monitoreo del estado de En la ficha Status del dilogo de alarma, monitoree la condicin de
una alarma, confirme una alarma, inhabilite una alarma, suprima una
alarma alarma o restablezca una alarma. Use las selecciones del dilogo para
ver cmo se comporta una alarma sin necesidad de tener un HMI en
operacin.

68 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA) Captulo 1

Almacenamiento de Para recibir mensajes de alarma basados en el controlador, los clientes


de alarmas (como el servidor RSLinx Enterprise) deben establecer una
alarmas en el bfer suscripcin a las alarmas en el controlador Logix. El controlador
mantiene una conexin con cada suscriptor y monitorea el estado de
dicha conexin.

A medida que ocurren cambios de estado de alarma, las instrucciones


de alarma almacenan en cach la informacin necesaria (como sellos
de hora y valores de tag asociados) y solicitan la transmisin del
mensaje de alarma a todos los suscriptores. El mecanismo de
publicacin entrega los mensajes de alarma a cada suscriptor tan
rpido como sea posible.

Si algn suscriptor no confirma recibo del mensaje de alarma, o si la


conexin a un suscriptor conocido no es buena, el mecanismo de
publicacin almacena los mensajes de alarma no entregados en un
bfer de 100 KB. Cada suscriptor tiene su propio bfer; por lo tanto,
los problemas de comunicacin con un suscriptor no interfieren con
la entrega de mensajes de alarmas a otros suscriptores. Cuando el
bfer est lleno, se descartan los mensajes de alarma ms nuevos. El
bfer se crea cuando el suscriptor establece su conexin inicial y se
mantiene por un tiempo configurable (0...120 minutos, siendo el valor
predeterminado 20 minutos) despus de que un suscriptor pierde su
conexin.

Cuando el suscriptor restablece una conexin dentro del intervalo de


tiempo de espera del bfer, obtiene el estado actual de todas las
alarmas, comienza a recibir mensajes de alarma actuales y tambin
carga los mensajes que puedan haberse acumulado en el bfer. Aun si
el bfer estuviera lleno y los mensajes fueras descartados, los
suscriptores se sincronizan de manera exacta con el estado actual de
las alarmas (inclusive los sellos de hora ms recientes de
InAlarmTime, RetToNormalTime y AckTime.

El almacenamiento en el bfer contina hasta llenarse. Una vez lleno,


el bfer deja de aadir transiciones de alarmas hasta que el suscriptor
deje un espacio disponible en el bfer.

Publicacin 1756-RM003K-ES-P Julio 2008 69


Captulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA)

Acceda programticamente Cada instruccin de alarma tiene una estructura de alarma que
almacena informacin de configuracin y ejecucin de alarma. La
a informacin de alarmas estructura de alarma incluye tanto elementos de control de programa
y de operador, como elementos de operador. Las instrucciones de
alarma no usan ajustes de modo para determinar si el acceso al
programa o el acceso al operador estn activos; por lo tanto, estos
elementos siempre estn activos.

Existen tres maneras de realizar acciones en una instruccin de


alarma.

Acceso Elementos de estructura de Consideraciones


alarmas
Programa de usuario ProgAck Use la lgica del controlador para acceder programticamente a
ProgReset elementos del sistema de alarmas. Por ejemplo, el programa de
control puede determinar si se inhabilitar una serie de alarmas
ProgSuppress relacionadas con una sola causa raz. Por ejemplo, el programa de
ProgDisable control podra inhabilitar una instruccin de alarma,
MyDigitalAlarm de tipo de datos ALARM_DIGITAL, mediante
ProgEnable
acceso al miembro de tag MyDigitalAlarm.ProgDisable.
HMI personalizado OperAck Cree una plantilla de HMI personalizada para acceder a elementos
OperReset del sistema de alarmas. Por ejemplo, si el operador necesita retirar
una herramienta, en lugar de inhabilitar manualmente o suprimir
OperSuppress alarmas individualmente desde las pantallas de alarmas, el
OperDisable operador puede presionar una tecla de inhabilitacin que brinda
acceso a un tag MyDigitalAlarm.OperDisable.
OperEnable
Los parmetros del operador trabajan con cualquier interface de
Rockwell Automation o de otros fabricantes para permitir el control
de estados de alarma.

Cuando se establece un parmetro del operador, la instruccin


evala si puede responder a la peticin, y posteriormente
restablece siempre el parmetro.
Objeto HMI estndar No accesible La interaccin normal del operador se realiza a travs de objetos del
resumen de alarmas, indicador de alarma y explorador de estado de
alarmas en la aplicacin FactoryTalk View. Esta interaccin es
similar a la opcin de HMI personalizada antes descrita, pero no
hay interaccin ni visibilidad programtica.

Cuando usted crea una instruccin de alarma, debe crear y asignar un


tag del tipo de datos correcto para dicha alarma. Por ejemplo, cree
MyDigitalAlarm del tipo de datos ALARM_DIGITAL. En lgica de
escalera de rels, estos parmetros de instruccin deben introducirse
en la instruccin:
ProgAck
ProgReset
ProgDisable
ProgEnable

En lgica de escalera de rels y en texto estructurado, el valor o tag


que usted asigna a un parmetro de instruccin (como ProgAck) se
escribe automticamente en el miembro del tag de alarma (por ej.,
MyAnalogAlarm.ProgAck) cada vez que se escanea la instruccin.

70 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA) Captulo 1

En lgica de escalera de rels y en texto estructurado, si usted desea


acceder programticamente a la estructura de alarmas, asigne el tag de
estructura al parmetro en la instruccin. Por ejemplo, para usar
MyAnalogAlarm.ProgAck en lgica, asigne el tag
MyAnalogAlarm.ProgAck al parmetro ProgAck.

Suprima o inhabilite Suprima alarmas para retirar las alarmas cuya existencia usted conoce
desde el HMI, pero mantenga las alarmas activas. Esto le permitir
alarmas borrar el resumen de alarmas mientras que usted est resolviendo una
alarma conocida sin continuar viendo informacin de alarmas. Una
alarma suprimida no aparece en las pantallas de indicadores o
resumen de operador, pero una alarma suprimida igualmente se enva
a los suscriptores, se registra en la base de datos histricos, puede
cambiar el estado de alarma, tener sello de hora y responder a otras
interacciones programticas o del operador.
Cuando una alarma se suprime, sta contina funcionando
normalmente, monitorea el parmetro In en lo que respecta a
las condiciones de alarma y responde a peticiones de
confirmacin. Todos los suscriptores son notificados de este
evento, y todo mensaje de alarma generado mientras la alarma
se encuentra en estado suprimido incluye el estado suprimido.
Los clientes de alarmas pueden responder de manera diferente a
las alarmas suprimidas. Por ejemplo, las alarmas suprimidas
pueden registrarse en la base de datos histricos pero no
pueden anunciarse al operador.
Cuando una alarma no est suprimida, todos los suscriptores
son notificados y los mensajes de alarma a los suscriptores ya no
incluyen el estado suprimido.
Inhabilite una alarma para tratar la alarma como si sta no existiera en
el programa de control. Una alarma inhabilitada no cambia el estado
de alarma ni se registra en la base de datos histricos. Una alarma
inhabilitada aun se rastrea y puede rehabilitarse en el explorador de
estado de alarmas en el software FactoryTalk View SE.
Cuando una alarma est inhabilitada, todas sus condiciones se
establecen en el estado inicial (InAlarm se borra y Acked se
establece). El parmetro In no es monitoreado en lo que
respecta a las condiciones de alarma. Todos los suscriptores son
notificados de este evento.

Publicacin 1756-RM003K-ES-P Julio 2008 71


Captulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA)

Cuando una alarma se habilita, comienza a monitorear el


parmetro In en lo que respecta a las condiciones de alarma.
Todos los suscriptores son notificados de este evento.

Ejecucin de alarma Las alarmas basadas en el controlador procesan entradas provenientes


de dos fuentes.
basada en el controlador
Fuente Descripcin
Miembros de tag de alarma Los miembros de tag de alarma en su mayor parte se procesan cuando la aplicacin del
usuario escanea la instruccin de alarma. Esto incluye lo siguiente:

procesamiento de cambios a los parmetros de configuracin;


evaluacin de la condicin de alarma;
medicin del tiempo transcurrido para MinDuration;
captura de los sellos de hora de InAlarmTime y RetToNormalTime;
captura de valores de tag asociados;
procesamiento de los comandos Prog y Oper;
Adems, estos miembros de estado de tag de alarma se actualizan a medida que los
mensajes de alarma se entregan a cada suscriptor, de manera asncrona con el escn del
programa:

DeliveryEN, DeliveryER, DeliveryDN


NoSubscriber, NoConnection, CommError, AlarmBuffered, SubscNotified
Mensajes de clientes Los mensajes de clientes son procesados a medida que se reciben, de manera asncrona
con el escn del programa.

Comandos restablecer, confirmar, inhabilitar/habilitar y suprimir/cancelar supresin


desde un terminal RSLogix 5000.
Comandos restablecer, confirmar, inhabilitar/habilitar y suprimir/cancelar supresin
desde un suscriptor de alarmas FactoryTalk View SE.

Tenga cuidado al determinar dnde colocar las instrucciones de


alarma en la aplicacin. La exactitud de los sellos de hora se ve
afectada por la rapidez con que se escanea la instruccin despus de
que la condicin de alarma cambia de estado. Los clculos de
acumulacin de tiempo de MinDuration y la velocidad de cambio
requieren escaneo repetido, dentro de los intervalos de tiempo
determinados por la aplicacin de usuario. Las instrucciones de
alarma deben continuar escanendose despus de que la condicin
de alarma se hace falsa, de modo que pueda detectarse la transicin
de ReturnToNormal. Por ejemplo, si usted desea una exactitud de
10 ms en los sellos de hora, podra colocar las instrucciones de alarma
que necesitan dicha resolucin en una tarea peridica de 10 ms.

72 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA) Captulo 1

Uso de la memoria del controlador

Como pauta, use los siguientes tamaos de alarma para hacer un


clculo general del uso de memoria del controlador:
Tpicamente, 1 KB por alarma digital sin tags asociados

Ejemplo de alarma digital Tamao aproximado


Alarma digital sin tags asociados y esta configuracin: 1012 bytes

Mensaje de alarma: Fallo de contactor


Clase de alarma: Zona de tanques A
Alarma digital con dos tags asociados y esta configuracin: 1100 bytes

Mensaje de alarma: Fallo de contactor


Clase de alarma: Zona de tanques A
Tag asociado 1 = tipo de datos DINT
Tag asociado 2 = tipo de datos DINT
Alarma digital con dos tags asociados y esta configuracin: 1522 bytes

Mensaje de alarma: Fallo de contactor


Clase de alarma: Zona de tanques A
Tag asociado 1 = tipo de datos DINT
Tag asociado 2 = tipo de datos STRING

Publicacin 1756-RM003K-ES-P Julio 2008 73


Captulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA)

Tpicamente, 2.2 KB por alarma analgica sin tags asociados

Ejemplo de alarma analgica Tamao aproximado


Alarma analgica sin tags asociados y esta configuracin: 2228 bytes

Mensaje de alarma HH: Alarma de nivel


Mensaje de alarma H: Alarma de nivel
Mensaje de alarma L: Alarma de nivel
Mensaje de alarma LL: Alarma de nivel
Mensaje positivo de velocidad de cambio: Se llena demasiado rpido
Mensaje negativo de velocidad de cambio: Se vaca demasiado rpido
Clase de alarma: Zona de tanques A
Alarma analgica con dos tags asociados y esta configuracin: 2604 bytes

Mensaje de alarma HH: Alarma de nivel


Mensaje de alarma H: Alarma de nivel
Mensaje de alarma L: Alarma de nivel
Mensaje de alarma LL: Alarma de nivel
Mensaje positivo de velocidad de cambio: Se llena demasiado rpido
Mensaje negativo de velocidad de cambio: Se vaca demasiado rpido
Clase de alarma: Zona de tanques A
Tag asociado 1 = tipo de datos DINT
Tag asociado 2 = tipo de datos DINT
Alarma analgica con dos tags asociados y esta configuracin: 4536 bytes

Mensaje de alarma HH: Alarma de nivel


Mensaje de alarma H: Alarma de nivel
Mensaje de alarma L: Alarma de nivel
Mensaje de alarma LL: Alarma de nivel
Mensaje positivo de velocidad de cambio: Se llena demasiado rpido
Mensaje negativo de velocidad de cambio: Se vaca demasiado rpido
Clase de alarma: Zona de tanques A
Tag asociado 1 = tipo de datos DINT
Tag asociado 2 = tipo de datos STRING

Las cadenas de mensaje ms largas, al igual que las cadenas de


mensaje para mltiples idiomas, consumen memoria adicional de su
controlador.

El uso real de memoria depende de cmo se configura la alarma, de


la longitud del mensaje y de los tags asociados pasados con la alarma.

74 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA) Captulo 1

Tiempo de escn

Estos tiempos de ejecucin muestran cmo las instrucciones ALMD y


ALMA afectan el tiempo de escn total.
Estado de rengln Tiempos de ejecucin
Alarma digital Alarma analgica
(ALMD) (ALMA)
Sin cambio de estado Rengln 8 s 17 s
de alarma falso
Rengln 8 s 60 s
verdadero
Cambio de estado de Rengln 35 s 17 s
alarma falso
Rengln 35 s 126 s
verdadero

Un cambio de estado de alarma es un evento que cambia la condicin


de la alarma, tal como confirmar o suprimir la alarma. Minimice el
potencial de que un gran nmero de alarmas cambie de estado
simultneamente (rfagas de alarmas) creando dependencias en
alarmas relacionadas. Las grandes rfagas de alarmas pueden tener un
efecto considerable en el tiempo de escn del cdigo de aplicacin.

Publicacin 1756-RM003K-ES-P Julio 2008 75


Captulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA)

Notas:

76 Publicacin 1756-RM003K-ES-P Julio 2008


Captulo 2

Instrucciones de bits
(XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Introduccin Use las instrucciones de bits (tipo rel) para monitorear y controlar el
estado de los bits.

Si desea Use esta instruccin Disponible en estos lenguajes Vea la pgina


habilitar salidas cuando se establece un bit. XIC lgica de escalera de rels 78
texto estructurado(1)
habilitar salidas cuando se borra un bit. XIO lgica de escalera de rels 80
(1)
texto estructurado
establecer un bit OTE lgica de escalera de rels 82
texto estructurado(1)
establecer un bit (retentivo) OTL lgica de escalera de rels 84
(1)
texto estructurado
borrar un bit (retentivo) OTU lgica de escalera de rels 86
(1)
texto estructurado
habilitar salidas por un escn cada vez que el ONS lgica de escalera de rels 88
rengln se hace verdadero (1)
texto estructurado
establecer un bit por un escn cada vez que el OSR lgica de escalera de rels 91
rengln se hace verdadero
establecer un bit por un escn cada vez que el OSF lgica de escalera de rels 94
rengln se hace falso
establecer un bit por un escn cada vez que el OSRI texto estructurado 96
bit de entrada se establece en el bloque de bloque de funciones
funciones
establecer un bit por un escn cada vez que el OSFI texto estructurado 99
bit de entrada se borra en el bloque de bloque de funciones
funciones
(1)
No hay una instruccin equivalente en texto estructurado. Use otra programacin en texto estructurado para lograr el mismo resultado. Vea la descripcin de la
instruccin.

77Publicacin 1756-RM003K-ES-P Julio 2008 77


Captulo 2 Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Examinar si est cerrado La instruccin XIC examina el bit de datos para determinar si est
establecido.
(XIC)
Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


bit de datos BOOL tag bit que se va a probar

Texto estructurado

El texto estructurado no tiene una instruccin XIC, pero usted puede


lograr los mismos resultados usando una construccin IF...THEN.
IF data_bit THEN
<statement>;
END_IF;

Consulte el Apndice 641B, Atributos de bloque de funciones para


obtener informacin sobre la sintaxis de las construcciones en texto
estructurado.

Descripcin: La instruccin XIC examina el bit de datos para determinar si est


establecido.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:
Condicin Accin de lgica de escalera de rels
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de
rengln es verdadera

bit de datos = 0 la condicin de salida de


examinar bit rengln se establece como
de datos falsa

bit de datos = 1

la condicin de salida de
rengln se establece como
verdadera

fin

post-escn La condicin de salida de rengln se establece como falsa.

78 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Captulo 2

Ejemplo 1: Si se establece limit_switch_1, esto habilita la siguiente instruccin


(la condicin de salida de rengln es verdadera).

Lgica de escalera de rels

Texto estructurado

IF limit_switch THEN
<statement>;
END_IF;

Ejemplo 2: Si se establece S:V (indica que ocurri un overflow), esto habilita la


siguiente instruccin (la condicin de salida del rengln es
verdadera).

Lgica de escalera de rels

Texto estructurado

IF S:V THEN
<statement>;
END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008 79


Captulo 2 Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Examinar si est abierto La instruccin XIO examina el bit de datos para determinar si est
borrado.
(XIO)
Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


bit de datos BOOL tag bit que se va a probar

Texto estructurado

El texto estructurado no tiene una instruccin XIO, pero usted puede


lograr los mismos resultados usando una construccin IF...THEN.
IF NOT data_bit THEN
<statement>;
END_IF;

Consulte el Apndice 641B, Atributos de bloque de funciones para


obtener informacin sobre la sintaxis de las construcciones en texto
estructurado.

Descripcin: La instruccin XIO examina el bit de datos para determinar si est


borrado.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:
Condicin Accin de lgica de escalera de rels
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de
rengln es verdadera

bit de datos = 0 la condicin de salida de


examinar bit de rengln se establece como
datos verdadera

bit de datos = 1

la condicin de salida de
rengln se establece como
falsa

fin

post-escn La condicin de salida de rengln se establece como falsa.

80 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Captulo 2

Ejemplo 1: Si se borra limit_switch_2, esto habilita la siguiente instruccin


(la condicin de salida de rengln es verdadera).

Lgica de escalera de rels

Texto estructurado

IF NOT limit_switch_2 THEN


<statement>;
END_IF;

Ejemplo 2: Si S:V se borra (indica que no ocurri un overflow), esto habilita la


siguiente instruccin (la condicin de salida del rengln es
verdadera).

Lgica de escalera de rels

Texto estructurado

IF NOT S:V THEN


<statement>;
END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008 81


Captulo 2 Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Activacin de salida (OTE) La instruccin OTE establece o borra el bit de datos.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


bit de datos BOOL tag bit que se va a establecer o borrar

Texto estructurado

El texto estructurado no tiene una instruccin OTE, pero usted puede


lograr los mismos resultados usando una asignacin no retentiva.

data_bit [:=] BOOL_expression;

Consulte el Apndice 641B, Atributos de bloque de funciones para


obtener informacin sobre la sintaxis de asignaciones y expresiones
en texto estructurado.

Descripcin: Cuando se habilita la instruccin OTE, el controlador establece el bit


de datos. Cuando se inhabilita la instruccin OTE, el controlador borra
el bit de datos.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn El bit de datos se borra.

La condicin de salida de rengln se establece como falsa.


condicin de entrada de rengln es falsa El bit de datos se borra.

La condicin de salida de rengln se establece como falsa.


condicin de entrada de rengln es verdadera El bit de datos se establece.

La condicin de salida de rengln se establece como verdadera.


post-escn El bit de datos se borra.

La condicin de salida de rengln se establece como falsa.

82 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Captulo 2

Ejemplo: Cuando se establece switch, la instruccin OTE establece (activa)


light_1. Cuando se borra switch, la instruccin OTE borra (desactiva)
light_1.

Lgica de escalera de rels

Texto estructurado

light_1 [:=] switch;

Publicacin 1756-RM003K-ES-P Julio 2008 83


Captulo 2 Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Enclavamiento de salida La instruccin OTL establece (enclava) el bit de datos.


(OTL)
Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


bit de datos BOOL tag bit que se va a establecer

Texto estructurado

El texto estructurado no tiene una instruccin OTL, pero usted puede


lograr los mismos resultados usando una construccin IF...THEN y
una asignacin.

IF BOOL_expression THEN
data_bit := 1;
END_IF;

Consulte el Apndice 641B, Atributos de bloque de funciones para


obtener informacin sobre la sintaxis de construcciones, expresiones
y asignaciones en texto estructurado.

Descripcin: Cuando se habilita, la instruccin OTL establece el bit de datos. El bit


de datos permanece establecido hasta que es borrado, generalmente
por una instruccin OTU. Cuando se inhabilita, la instruccin OTL no
cambia el estado del bit de datos.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn El bit de datos no se modifica.

La condicin de salida de rengln se establece como falsa.


condicin de entrada de rengln es falsa El bit de datos no se modifica.

La condicin de salida de rengln se establece como falsa.


condicin de entrada de rengln es verdadera El bit de datos se establece.

La condicin de salida de rengln se establece como verdadera.


post-escn El bit de datos no se modifica.

La condicin de salida de rengln se establece como falsa.

84 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Captulo 2

Ejemplo: Cuando se habilita, la instruccin OTL establece light_2. Este bit de


datos permanece establecido hasta que es borrado, generalmente por
una instruccin OTU.

Lgica de escalera de rels

Texto estructurado

IF BOOL_expression THEN
light_2 := 1;
END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008 85


Captulo 2 Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Desenclavamiento de La instruccin OTU borra (desenclava) el bit de datos.


salida (OTU)
Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


bit de datos BOOL tag bit que se va a borrar

Texto estructurado

El texto estructurado no tiene una instruccin OTU, pero usted puede


lograr los mismos resultados usando una construccin IF...THEN y
una asignacin.

IF BOOL_expression THEN
data_bit := 0;
END_IF;

Consulte el Apndice 641B, Atributos de bloque de funciones para


obtener informacin sobre la sintaxis de construcciones, expresiones
y asignaciones en texto estructurado.

Descripcin: Cuando se habilita, la instruccin OTU borra el bit de datos. Cuando


se inhabilita, la instruccin OTU no cambia el estado del bit de datos.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn El bit de datos no se modifica.

La condicin de salida de rengln se establece como falsa.


condicin de entrada de rengln es falsa El bit de datos no se modifica.

La condicin de salida de rengln se establece como falsa.


condicin de entrada de rengln es verdadera El bit de datos se borra.

La condicin de salida de rengln se establece como verdadera.


post-escn El bit de datos no se modifica.

La condicin de salida de rengln se establece como falsa.

86 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Captulo 2

Ejemplo: Cuando se habilita, la instruccin OTU borra light_2.

Lgica de escalera de rels

Texto estructurado

IF BOOL_expression THEN
light_2 := 0;
END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008 87


Captulo 2 Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Un impulso (ONS) La instruccin ONS habilita o inhabilita el resto del rengln,


dependiendo del estado del bit de almacenamiento.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


storage bit BOOL tag bit de almacenamiento interno

almacena la condicin de entrada del rengln


desde la ltima vez que se ejecut la
instruccin

Texto estructurado

El texto estructurado no tiene una instruccin ONS, pero usted puede


lograr los mismos resultados usando una construccin IF...THEN.

IF BOOL_expression AND NOT storage_bit THEN


<statement>;
END_IF;
storage_bit := BOOL_expression;

Consulte el Apndice 641B, Atributos de bloque de funciones para


obtener informacin sobre la sintaxis de construcciones y expresiones
en texto estructurado.

Descripcin: Cuando se habilita y el bit de almacenamiento se borra, la instruccin


ONS habilita el resto del rengln. Cuando se inhabilita o cuando el bit
de almacenamiento se establece, la instruccin ONS inhabilita el resto
del rengln.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

88 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Captulo 2

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn El bit de almacenamiento se establece para evitar una activacin no vlida durante el
primer escn.

La condicin de salida de rengln se establece como falsa.


condicin de entrada de rengln es falsa El bit de almacenamiento se borra.

La condicin de salida de rengln se establece como falsa.


condicin de entrada de
rengln es verdadera

bit de
almacenamiento = 0 el bit de almacenamiento
examinar bit de se establece
almacenamiento
la condicin de salida de
rengln se establece como
verdadera
bit de
almacenamiento = 1

el bit de almacenamiento
permanece establecido
la condicin de salida de
rengln se establece como
falsa fin

post-escn El bit de almacenamiento se borra.

La condicin de salida de rengln se establece como falsa.

Ejemplo: Normalmente una instruccin ONS est precedida por una instruccin
de entrada, porque la instruccin ONS se escanea cuando sta se
habilita y cuando se inhabilita para que funcione correctamente. Una
vez que la instruccin ONS se habilita, la condicin de entrada de
rengln debe borrarse, o el bit de almacenamiento debe borrarse para
que la instruccin ONS se habilite nuevamente.

Publicacin 1756-RM003K-ES-P Julio 2008 89


Captulo 2 Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

En todo escn en que limit_switch_1 se borra o storage_1 se


establece, este rengln no tiene efecto. En todo escn en que
limit_switch_1 se establece y storage_1 se borra, la instruccin ONS
establece storage_1 y la instruccin ADD incrementa sum en 1.
Siempre que limit_switch_1 permanezca esta blecido, sum permanece
con el mismo valor. limit_switch_1 debe cambiar de borrado a
establecido nuevamente para que se incremente sum nuevamente.

Lgica de escalera de rels

Texto estructurado

IF limit_switch_1 AND NOT storage_1 THEN


sum := sum + 1;
END_IF;
storage_1 := limit_switch_1;

90 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Captulo 2

Un impulso en flanco La instruccin OSR establece o borra el bit de salida, dependiendo del
estado del bit de almacenamiento.
ascendente (OSR)
Esta instruccin est disponible en texto estructurado y en bloque de
funciones como OSRI; vea la pgina 96.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


storage bit BOOL tag bit de almacenamiento interno

almacena la condicin de entrada del rengln


desde la ltima vez que se ejecut la
instruccin
output bit BOOL tag bit que se va a establecer

Descripcin: Cuando se habilita y el bit de almacenamiento est borrado, la


instruccin OSR establece el bit de salida. Cuando se habilita y el bit
de almacenamiento est establecido o cuando se inhabilita, la
instruccin OSR borra el bit de salida.

condicin de entrada
del rengln

bit de almacenamiento

bit de salida

la instruccin la instruccin se restablece durante


se ejecuta la siguiente ejecucin del escn

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Publicacin 1756-RM003K-ES-P Julio 2008 91


Captulo 2 Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn El bit de almacenamiento se establece para evitar una activacin no vlida durante el
primer escn.

El bit de salida se borra.

La condicin de salida de rengln se establece como falsa.


condicin de entrada de rengln es falsa El bit de almacenamiento se borra.

El bit de salida no se modifica.

La condicin de salida de rengln se establece como falsa.


condicin de entrada de
rengln es verdadera

bit de el bit de almacenamiento se


almacenamiento = 0 establece
examinar bit de
almacenamiento
el bit de salida se establece
la condicin de salida de
rengln se establece como
bit de verdadera
almacenamiento = 1

el bit de almacenamiento
permanece establecido

el bit de salida se borra la


condicin de salida de
rengln se establece como
verdadera fin

post-escn El bit de almacenamiento se borra.

El bit de salida no se modifica.

La condicin de salida de rengln se establece como falsa.

92 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Captulo 2

Ejemplo: Cada vez que limit_switch_1 cambia de borrado a establecido, la


instruccin OSR establece output_bit_1 y la instruccin ADD
incrementa sum en 5. Siempre que limit_switch_1 permanezca
establecido, sum permanece con el mismo valor. El limit_switch_1
debe cambiar de borrado a establecido nuevamente para que sum se
incremente nuevamente. Usted puede usar output_bit_1 en varios
renglones para activar otras operaciones.

Publicacin 1756-RM003K-ES-P Julio 2008 93


Captulo 2 Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Un impulso en flanco La instruccin OSF establece o borra el bit de salida dependiendo del
estado del bit de almacenamiento.
descendente (OSF)
Esta instruccin est disponible en texto estructurado y en bloque de
funciones como OSFI; vea la pgina 99.

Operandos:

Operandos de lgica de escalera de rels

Operando Tipo Formato Descripcin


storage bit BOOL tag bit de almacenamiento interno

almacena la condicin de entrada del rengln


desde la ltima vez que se ejecut la
instruccin
output bit BOOL tag bit que se va a establecer

Descripcin: Cuando se inhabilita y el bit de almacenamiento est establecido, la


instruccin OSF establece el bit de salida. Cuando se inhabilita y el bit
de almacenamiento est borrado o cuando se habilita, la instruccin
OSF borra el bit de salida.

condicin de
entrada del rengln

bit de
almacenamiento

bit de salida

la instruccin la instruccin se restablece


se ejecuta durante la siguiente
ejecucin del escn

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

94 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Captulo 2

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn El bit de almacenamiento se borra para evitar una activacin no vlida durante el primer
escn.

El bit de salida se borra.

La condicin de salida de rengln se establece como falsa.


condicin de entrada de
rengln es falsa

bit de el bit de almacenamiento


almacenamiento = 0 permanece borrado
examinar bit de
almacenamiento
el bit de salida se borra la
condicin de salida de
rengln se establece como
falsa
bit de
almacenamiento = 1

el bit de almacenamiento
se borra

el bit de salida se establece


la condicin de salida de
rengln se establece como fin
falsa

condicin de entrada de rengln es verdadera El bit de almacenamiento se establece.

El bit de salida se borra.

La condicin de salida de rengln se establece como verdadera.


post-escn Ntese que la condicin de entrada del rengln es falsa arriba.

Ejemplo: Cada vez que limit_switch_1 cambia de establecido a borrado, la


instruccin OSF establece output_bit_2 y la instruccin ADD
incrementa sum en 5. Siempre que limit_switch_1 permanezca
borrado, sum permanece con el mismo valor. El limit_switch_1 debe
cambiar de establecido a borrado nuevamente para que sum se
incremente nuevamente. Usted puede usar output_bit_2 en varios
renglones para activar otras operaciones.

Publicacin 1756-RM003K-ES-P Julio 2008 95


Captulo 2 Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Un impulso en flanco La instruccin OSRI establece el bit de salida por un ciclo de


ejecucin cuando el bit de entrada cambia de borrado a establecido.
ascendente con entrada
(OSRI) Esta instruccin est disponible en lgica de escalera de rels como
OSR; vea la pgina 91.

Operandos:

OSRI(OSRI_tag); Texto estructurado

Operando Tipo Formato Descripcin


tag OSRI FBD_ONESHOT estructura estructura OSRI

Bloque de funciones

Operando Tipo Formato Descripcin


tag OSRI FBD_ONESHOT estructura estructura OSRI

Estructura FBD_ONESHOT

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Bloque de funciones:

Si se borra, la instruccin no se ejecuta y las salidas no se actualizan.

Si se establece, la instruccin se ejecuta.

La opcin predeterminada es establecido.

Texto estructurado:

Ningn efecto. La instruccin se ejecuta.


InputBit BOOL Bit de entrada. Esto es equivalente a la condicin del rengln para la instruccin OSR de
lgica de escalera de rels.

La opcin predeterminada es borrado.


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
OutputBit BOOL Bit de salida

96 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Captulo 2

Descripcin: Cuando InputBit se establece y InputBitn-1 se borra, la instruccin


OSRI establece OutputBit. Cuando InputBitn-1 se establece o cuando
InputBit se borra, la instruccin OSRI borra OutputBit.

InputBit

InputBitn-1

OutputBit

la instruccin la instruccin se restablece durante


se ejecuta la siguiente ejecucin del escn 40048

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin Accin de bloque de funciones Accin de texto estructurado


preescn Ninguna. Ninguna.
primer escn de instruccin InputBit n-1 se establece. InputBit n-1 se establece.
primera ejecucin de InputBit n-1 se establece. InputBit n-1 se establece.
instruccin
EnableIn se borra EnableOut se borra, la instruccin no efecta n. a.
ninguna operacin y las salidas no se actualizan.
EnableIn se establece En una transicin de borrado a establecido de En una transicin de borrado a establecido de
InputBit, la instruccin establece InputBit n-1. InputBit, la instruccin establece InputBit n-1.

La instruccin se ejecuta. EnableIn siempre se establece.

EnableOut se establece. La instruccin se ejecuta.


post-escn Ninguna. Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008 97


Captulo 2 Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Ejemplo: Cuando limit_switch1 cambia de borrado a establecido, la instruccin


OSRI establece OutputBit por un escn.

Texto estructurado

OSRI_01.InputBit := limit_switch1;

OSRI(OSRI_01);

State := OSRI_01.OutputBit;

Bloque de funciones

98 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Captulo 2

Un impulso en flanco La instruccin OSFI establece OutputBit por un ciclo de ejecucin


cuando InputBit cambia de establecido a borrado.
descendente con entrada
(OSFI) Esta instruccin est disponible en lgica de escalera de rels como
OSF; vea la pgina 94.

Operandos:

OSFI(OSFI_tag); Texto estructurado

Operando Tipo Formato Descripcin


tag OSFI FBD_ONESHOT estructura estructura OSFI

Bloque de funciones

Operando Tipo Formato Descripcin


tag OSFI FBD_ONESHOT estructura estructura OSFI

Estructura FBD_ONESHOT

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Bloque de funciones:

Si se borra, la instruccin no se ejecuta y las salidas no se actualizan.

Si se establece, la instruccin se ejecuta.

La opcin predeterminada es establecido.

Texto estructurado:

Ningn efecto. La instruccin se ejecuta.


InputBit BOOL Bit de entrada. Esto es equivalente a la condicin del rengln para la instruccin OSF de
lgica de escalera de rels

La opcin predeterminada es borrado.


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
OutputBit BOOL Bit de salida

Publicacin 1756-RM003K-ES-P Julio 2008 99


Captulo 2 Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Descripcin: Cuando InputBit se borra y InputBit n-1 se establece, la instruccin


OSFI establece OutputBit. Cuando InputBit n-1 se borra o cuando
InputBit se establece, la instruccin OSFI borra OutputBit.

InputBit

InputBit n-1

OutputBit

la instruccin la instruccin se restablece durante


se ejecuta la siguiente ejecucin del escn 40047

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin Accin de bloque de funciones Accin de texto estructurado


preescn Ninguna. Ninguna.
primer escn de instruccin InputBit n-1 se borra. InputBit n-1 se borra.
primera ejecucin de InputBit n-1 se borra. InputBit n-1 se borra.
instruccin
EnableIn se borra EnableOut se borra, la instruccin no efecta n. a.
ninguna operacin y las salidas no se actualizan.
EnableIn se establece En una transicin de borrado a establecido de En una transicin de borrado a establecido de
InputBit, la instruccin borra InputBit n-1. InputBit, la instruccin borra InputBit n-1.

La instruccin se ejecuta. EnableIn siempre se establece.

EnableOut se establece. La instruccin se ejecuta.


post-escn Ninguna. Ninguna.

100 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Captulo 2

Ejemplo: Cuando limit_switch1 cambia de establecido a borrado, la instruccin


OSFI establece OutputBit por un escn.

Texto estructurado

OSFI_01.InputBit := limit_switch1;

OSFI(OSFI_01);

Output_state := OSFI_01.OutputBit;

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008 101


Captulo 2 Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)

Notas:

102 Publicacin 1756-RM003K-ES-P Julio 2008


Captulo 3

Instrucciones de temporizador y contador


(TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Introduccin Los temporizadores y contadores controlan operaciones en base a


tiempo o nmero de eventos.

Si desea Use esta instruccin Disponible en estos lenguajes Vea la pgina


establecer el tiempo durante el cual un TON lgica de escalera de rels 104
temporizador est habilitado
establecer el tiempo durante el cual un TOF lgica de escalera de rels 108
temporizador est inhabilitado
acumular tiempo RTO lgica de escalera de rels 112
establecer el tiempo durante el cual un TONR texto estructurado 116
temporizador est habilitado con
restablecimiento incorporado en el bloque de bloque de funciones
funciones
establecer el tiempo durante el cual un TOFR texto de estructura 120
temporizador est inhabilitado con
restablecimiento incorporado en el bloque de bloque de funciones
funciones
acumular tiempo con restablecimiento RTOR texto estructurado 124
incorporado en el bloque de funciones
bloque de funciones
conteo progresivo CTU lgica de escalera de rels 128
conteo regresivo CTD lgica de escalera de rels 132
conteo progresivo y regresivo en el bloque de CTUD texto estructurado 136
funciones
bloque de funciones
restablecer un temporizador o un contador RES lgica de escalera de rels 141

La base de tiempo para todos los temporizadores es 1 ms.

103Publicacin 1756-RM003K-ES-P Julio 2008 103


Captulo 3 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Temporizador de retardo a La instruccin TON es un temporizador no retentivo que acumula el


tiempo cuando la instruccin est habilitada (la condicin de entrada
la conexin (TON) del rengln es verdadera).

Esta instruccin est disponible en texto estructurado y en bloque de


funciones como TONR; vea la pgina 116.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Timer TIMER tag estructura de temporizador
Preset DINT inmediato perodo de retardo (acumulacin de tiempo)
Acum DINT inmediato el tiempo en ms contado por el temporizador

el valor inicial es tpicamente 0

Estructura TIMER

Mnemnico Tipo de datos Descripcin


.EN BOOL El bit de habilitacin indica que la instruccin TON est habilitada.
.TT BOOL El bit de temporizacin indica que se est ejecutando una operacin de temporizacin.
.DN BOOL El bit de efectuado se establece cuando .ACC .PRE.
.PRE DINT El valor de preajuste especifica el valor (en unidades de 1 ms) al que debe llegar el valor
acumulado para que la instruccin establezca el bit .DN.
.ACC DINT El valor acumulado especifica el nmero de milisegundos que han transcurrido desde que se
habilit la instruccin TON.

Descripcin: La instruccin TON acumula tiempo hasta que:


la instruccin TON se inhabilita
.ACC .PRE

La base de tiempo siempre es 1 ms. Por ejemplo, en un temporizador


de 2 segundos, introduzca 2000 como valor .PRE.

104 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Captulo 3

Cuando se inhabilita la instruccin TON, se borra el valor .ACC.

condicin de entrada del rengln

bit de habilitacin de temporizador (.EN)

bit de temporizador temporizando (.TT)

bit de temporizador expirado (.DN)


Retardo
a la
conexin
preajuste
el temporizador no
lleg al valor .PRE
valor acumulado de temporizador (.ACC) 0 16649

Un temporizador se ejecuta restando la hora de su ltimo escn de la


hora actual:

ACC = ACC + (current_time - last_time_scanned)

Despus de que se actualiza el ACC, el temporizador establece


last_time_scanned = current_time. Esto deja el temporizador
listo para el siguiente escn.

Asegrese de escanear el temporizador por lo menos cada 69 minutos mientras se ejecuta.


IMPORTANTE
De no hacerse, el valor ACC no ser correcto.
El valor last_time_scanned tiene un rango de hasta 69 minutos. El clculo del
temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso de
69 minutos. Si esto sucede, el valor ACC no ser correcto.
Durante la ejecucin de un temporizador, escanelo dentro de un lapso no mayor de
69 minutos si lo coloca en una:
subrutina
seccin de cdigo comprendida entre las instrucciones JMP y LBL
diagrama de funcin secuencial (SFC)
evento o tarea peridica
rutina de estado de una fase

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:
Ocurrir un fallo mayor si Tipo de fallo Cdigo de fallo
.PRE < 0 4 34
.ACC < 0 4 34

Publicacin 1756-RM003K-ES-P Julio 2008 105


Captulo 3 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Ejecucin:
Condicin Accin de lgica de escalera de rels
preescn Los bits .EN, .TT y .DN se borran.

El valor .ACC se borra.

La condicin de salida de rengln se establece como falsa.


condicin de entrada de rengln es falsa Los bits .EN, .TT y .DN se borran.

El valor .ACC se borra.

La condicin de salida de rengln se establece como falsa.


condicin de entrada de
rengln es verdadera

Bit .DN = 1
examine el bit .DN

Bit .DN = 0

el bit .EN se establece


Bit .EN = 0 el bit .TT se establece
examine el bit .EN
last_time = current_time

Bit .EN = 1

el bit .TT se establece .ACC .PRE


examine .ACC
.ACC = .ACC + (current_time - last_time)
last_time = current_time

.ACC < .PRE


.DN se establece
el bit .TT se borra
el bit .EN se
establece
el valor .ACC no
retorna al valor
inicial

s la condicin de salida de
rengln se establece como
verdadera

.ACC = 2,147,483,647

fin

post-escn La condicin de salida de rengln se establece como falsa.

106 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Captulo 3

Ejemplo: Cuando limit_switch_1 se establece, light_2 se enciende por 180 ms.


(timer_1 est temporizando). Cuando timer_1.acc llega a 180, light_2
se apaga y light_3 se enciende. Light_3 permanece encendida hasta
que se inhabilita la instruccin TON. Si limit_switch_1 se borra
mientras que timer_1 est temporizando light_2 se apaga.

Publicacin 1756-RM003K-ES-P Julio 2008 107


Captulo 3 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Temporizador de retardo a La instruccin TOF es un temporizador no retentivo que acumula el


tiempo cuando la instruccin est habilitada (la condicin de entrada
la desconexin (TOF) del rengln es falsa).

Esta instruccin est disponible en texto estructurado y en bloque de


funciones como TOFR; vea la pgina 120.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Timer TIMER tag estructura de temporizador
Preset DINT inmediato perodo de retardo (acumulacin de tiempo)
Acum DINT inmediato total de ms que cont el temporizador

el valor inicial es tpicamente 0

Estructura TIMER

Mnemnico Tipo de datos Descripcin


.EN BOOL El bit de habilitacin indica que la instruccin TOF est habilitada.
.TT BOOL El bit de temporizacin indica que se est ejecutando una operacin de temporizacin.
.DN BOOL El bit de efectuado se borra cuando .ACC .PRE.
.PRE DINT El valor de preajuste especifica el valor (en unidades de 1 ms) al que debe llegar el valor
acumulado para que la instruccin borre el bit .DN.
.ACC DINT El valor acumulado especifica el nmero de milisegundos que han transcurrido desde que se
habilit la instruccin TOF.

Descripcin: La instruccin TOF acumula tiempo hasta que:


la instruccin TOF se inhabilita
.ACC .PRE

La base de tiempo siempre es 1 ms. Por ejemplo, en un temporizador


de 2 segundos, introduzca 2000 para el valor .PRE.

108 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Captulo 3

Cuando se inhabilita la instruccin TOF, se borra el valor .ACC.

condicin de entrada del rengln

bit de habilitacin de temporizador (.EN)

bit de temporizador temporizando (.TT)


bit de temporizador expirado (.DN)
retardo a la
desconexin
preajuste

valor acumulado de temporizador (.ACC)


0 16650

el temporizador no lleg al valor .PRE

Un temporizador se ejecuta restando la hora de su ltimo escn de la


hora actual:

ACC = ACC + (current_time - last_time_scanned)

Despus de que se actualiza el ACC, el temporizador establece


last_time_scanned = current_time. Esto deja el temporizador
listo para el siguiente escn.

Asegrese de escanear el temporizador por lo menos cada 69 minutos mientras se ejecuta.


IMPORTANTE
De no hacerse, el valor ACC no ser correcto.
El valor last_time_scanned tiene un rango de hasta 69 minutos. El clculo del
temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso de
69 minutos. Si esto sucede, el valor ACC no ser correcto.
Durante la ejecucin de un temporizador, escanelo dentro de un lapso no mayor de
69 minutos si lo coloca en una:
subrutina
seccin de cdigo comprendida entre las instrucciones JMP y LBL
diagrama de funcin secuencial (SFC)
evento o tarea peridica
rutina de estado de una fase

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:
Ocurrir un fallo mayor si Tipo de fallo Cdigo de fallo
.PRE < 0 4 34
.ACC < 0 4 34

Publicacin 1756-RM003K-ES-P Julio 2008 109


Captulo 3 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn Los bits .EN, .TT y .DN se borran.

El valor .ACC se establece para coincidir con el valor .PRE.

La condicin de salida de rengln se establece como falsa.

condicin de entrada de
rengln es falsa

Bit .DN = 0
examine el bit .DN

Bit .DN = 1

el bit .EN se borra


Bit .EN = 1 el bit .TT se establece
examine el bit .EN
last_time = current_time

Bit .EN = 0

el bit .TT se establece .ACC .PRE


examine .ACC
.ACC = .ACC + (current_time - last_time)
last_time = current_time

.ACC < .PRE


.DN se borra
el bit .TT se borra
el bit .EN se borra

el valor .ACC no
retorna al
valor inicial

s la condicin de salida de
rengln se establece como
falsa
.ACC = 2,147,483,647

fin

condicin de entrada de rengln es verdadera Los bits .EN, .TT y .DN se establecen.

El valor .ACC se borra.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

110 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Captulo 3

Ejemplo: Cuando limit_switch_2 se borra, light_2 se enciende durante 180 ms


(timer_2 est temporizando). Cuando timer_2.acc llega a 180, light_2
se apaga y light_3 se enciende. Light_3 permanece encendida hasta
que se habilita la instruccin TOF. Si limit_switch_2 se establece
mientras que timer_2 est temporizando light_2 se apaga.

Publicacin 1756-RM003K-ES-P Julio 2008 111


Captulo 3 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Temporizador retentivo La instruccin RTO es un temporizador retentivo que acumula tiempo


cuando la instruccin est habilitada.
activado (RTO)
Esta instruccin est disponible en texto estructurado y en bloque de
funciones como RTOR; vea la pgina 124.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Timer TIMER tag estructura de temporizador
Preset DINT inmediato perodo de retardo (acumulacin de tiempo)
Acum DINT inmediato nmero de ms que cont el temporizador

el valor inicial es tpicamente 0

Estructura TIMER

Mnemnico Tipo de datos Descripcin


.EN BOOL El bit de habilitacin indica que la instruccin RTO est habilitada.
.TT BOOL El bit de temporizacin indica que se est ejecutando una operacin de temporizacin.
.DN BOOL El bit de efectuado indica que .ACC .PRE.
.PRE DINT El valor de preajuste especifica el valor (en unidades de 1 ms) al que debe llegar el valor
acumulado para que la instruccin establezca el bit .DN.
.ACC DINT El valor acumulado especifica el nmero de milisegundos que han transcurrido desde que se
habilit la instruccin RTO.

Descripcin: La instruccin RTO acumula tiempo hasta que se inhabilita. Cuando la


instruccin RTO se inhabilita, retiene su valor .ACC. Usted debe borrar
el valor .ACC, normalmente con una instruccin RES que referencia la
misma estructura TIMER.

112 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Captulo 3

La base de tiempo siempre es 1 ms. Por ejemplo, en un temporizador


de 2 segundos, introduzca 2000 para el valor .PRE.
condicin de entrada del rengln

bit de habilitacin de temporizador (.EN)

condicin de rengln que controla la instruccin RES

bit de temporizador temporizando (.TT)

bit de temporizador expirado (.DN)

preajuste

16651
valor acumulado de temporizador (.ACC)
0 el temporizador no lleg al valor .PRE

Un temporizador se ejecuta restando la hora de su ltimo escn de la


hora actual:

ACC = ACC + (current_time - last_time_scanned)

Despus de que se actualiza el ACC, el temporizador establece


last_time_scanned = current_time. Esto deja el temporizador
listo para el siguiente escn.

Asegrese de escanear el temporizador por lo menos cada 69 minutos mientras se ejecuta.


IMPORTANTE
De no hacerse, el valor ACC no ser correcto.
El valor last_time_scanned tiene un rango de hasta 69 minutos. El clculo del
temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso de
69 minutos. Si esto sucede, el valor ACC no ser correcto.
Durante la ejecucin de un temporizador, escanelo dentro de un lapso no mayor de
69 minutos si lo coloca en una:
subrutina
seccin de cdigo comprendida entre las instrucciones JMP y LBL
diagrama de funcin secuencial (SFC)
evento o tarea peridica
rutina de estado de una fase

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:
Ocurrir un fallo mayor si Tipo de fallo Cdigo de fallo
.PRE < 0 4 34
.ACC < 0 4 34

Publicacin 1756-RM003K-ES-P Julio 2008 113


Captulo 3 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn Los bits .EN, .TT y .DN se borran.

El valor .ACC no se modifica.

La condicin de salida de rengln se establece como falsa.


condicin de entrada de rengln es falsa Los bits .EN y .TT se borran.

El bit .DN no se modifica.

El valor .ACC no se modifica.

La condicin de salida de rengln se establece como falsa.


condicin de entrada de rengln
es verdadera

Bit .DN = 1
examine el bit .DN

Bit .DN = 0

el bit .EN se establece


Bit .EN = 0 el bit .TT se establece
examine el bit .EN
last_time = current_time

Bit .EN = 1

el bit .TT se establece .ACC .PRE


examine .ACC
.ACC = .ACC + (current_time - last_time)
last_time = current_time

.ACC < .PRE


.DN se establece
el bit .TT se borra
el bit .EN se
establece

el valor .ACC no
retorna al
valor inicial

la condicin de salida de
s rengln se establece como
verdadera

.ACC = 2,147,483,647

fin

post-escn La condicin de salida de rengln se establece como falsa.

114 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Captulo 3

Ejemplo: Cuando limit_switch_1 se establece, light_1 se enciende por 180 ms


(timer_2 est temporizando). Cuando timer_3.acc llega a 180, light_1
se apaga y light_2 se enciende. Light_2 permanece hasta que timer_3
se restablece. Si limit_switch_2 se borra mientras que timer_3 est
temporizando light_1 permanece encendida. Cuando limit_switch_2
se establece, la instruccin RES restablece timer_3 (borra los bits de
estado y el valor .ACC).

Publicacin 1756-RM003K-ES-P Julio 2008 115


Captulo 3 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Temporizador de retardo La instruccin TONR es un temporizador no retentivo que acumula


tiempo cuando TimerEnable est establecido.
a la conexin con
restablecimiento (TONR) Esta instruccin est disponible en lgica de escalera de rels como
dos instrucciones separadas: TON (vea pgina 104) y RES
(vea pgina 141).

Operandos:

TONR(TONR_tag); Texto estructurado

Variable Tipo Formato Descripcin


tag TONR FBD_TIMER estructura estructura TONR

Bloque de funciones

Operando Tipo Formato Descripcin


tag TONR FBD_TIMER estructura estructura TONR

Estructura FBD_TIMER

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Bloque de funciones:

Si se borra, la instruccin no se ejecuta y las salidas no se actualizan.

Si se establece, la instruccin se ejecuta.

La opcin predeterminada es establecido.

Texto estructurado:

Ningn efecto. La instruccin se ejecuta.


TimerEnable BOOL Si se establece, permite que el temporizador se ejecute y acumule tiempo.

La opcin predeterminada es borrado.


PRE DINT Valor prefijado en el temporizador. ste es un valor expresado en unidades de 1 ms al que
ACC debe llegar antes de que concluya la temporizacin. Si no es vlido, la instruccin
establece el bit apropiado en Status y el temporizador no se ejecuta.

Vlido = 0 hasta el entero positivo mximo


Reset BOOL Peticin para restablecer el temporizador. Cuando se establece, el temporizador se
restablece.

La opcin predeterminada es borrado.


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
ACC BOOL Tiempo acumulado en milisegundos.
EN BOOL Salida de temporizador habilitado. Indica que la instruccin de temporizador est habilitada.
TT BOOL Salida de temporizador temporizando. Cuando se establece, se est ejecutando una
operacin de temporizacin.

116 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Captulo 3

Parmetro de Tipo de datos Descripcin


entrada
DN BOOL Salida de temporizacin efectuada. Indica cuando el tiempo acumulado es mayor o igual que
el valor de preajuste.
Status DINT Estado del bloque de funciones.
InstructFault (Status.0) BOOL La instruccin detect uno de los siguientes errores de ejecucin. ste no es un error menor
ni mayor del controlador. Verifique los bits de estado restantes para determinar lo que
ocurri.
PresetInv (Status.1) BOOL El valor de preajuste no es vlido.

Descripcin: La instruccin TONR acumula tiempo hasta que:


la instruccin TONR se inhabilita
ACC PRE
La base de tiempo siempre es 1 ms. Por ejemplo, en un temporizador
de 2 segundos, introduzca 2000 para el valor .PRE.

TimerEnable

bit de habilitacin (EN)

bit de temporizador temporizando (TT)

bit de temporizador expirado (.DN)


Retardo
a la
conexin
preajuste
16649
el temporizador no
lleg al valor PRE
valor acumulado de temporizador (.ACC) 0

Establezca el parmetro de entrada Reset para restablecer la


instruccin. Si TimerEnable se establece cuando Reset se establece,
la instruccin TONR comienza la temporizacin nuevamente cuando
Reset se borra.

Un temporizador se ejecuta restando la hora de su ltimo escn de la


hora actual:

ACC = ACC + (current_time - last_time_scanned)

Publicacin 1756-RM003K-ES-P Julio 2008 117


Captulo 3 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Despus de que se actualiza el ACC, el temporizador establece


last_time_scanned = current_time. Esto deja el temporizador
listo para el siguiente escn.

Asegrese de escanear el temporizador por lo menos cada 69 minutos mientras se ejecuta.


IMPORTANTE
De no hacerse, el valor ACC no ser correcto.
El valor last_time_scanned tiene un rango de hasta 69 minutos. El clculo del
temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso de
69 minutos. Si esto sucede, el valor ACC no ser correcto.
Durante la ejecucin de un temporizador, escanelo dentro de un lapso no mayor de
69 minutos si lo coloca en una:
subrutina
seccin de cdigo comprendida entre las instrucciones JMP y LBL
diagrama de funcin secuencial (SFC)
evento o tarea peridica
rutina de estado de una fase

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:
Condicin Accin de bloque de funciones Accin de texto estructurado
preescn Ninguna. Ninguna.
primer escn de instruccin Los bits EN, TT y DN se borran. Los bits EN, TT y DN se borran.

El valor ACC se establece en 0. El valor ACC se establece en 0.


primera ejecucin de Los bits EN, TT y DN se borran. Los bits EN, TT y DN se borran.
instruccin
El valor ACC se establece en 0. El valor ACC se establece en 0.
EnableIn se borra EnableOut se borra, la instruccin no efecta n. a.
ninguna operacin y las salidas no se actualizan.
EnableIn se establece Cuando EnableIn cambia de borrado a establecido, EnableIn siempre se establece.
la instruccin se inicializa segn lo descrito para el
primer escn de la instruccin. La instruccin se ejecuta.

La instruccin se ejecuta.

EnableOut se establece.
restablecimiento Cuando el parmetro de entrada Reset se establece, Cuando el parmetro de entrada Reset se establece,
la instruccin borra EN, TT y DN y establece la instruccin borra EN, TT y DN y establece
ACC = cero. ACC = cero.
post-escn Ninguna. Ninguna.

118 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Captulo 3

Ejemplo: En cada escn que limit_switch1 se establece, la instruccin TONR


incrementa el valor ACC en una cantidad equivalente al tiempo
transcurrido hasta que el valor ACC llega al valor PRE. Cuando
ACC PRE, el parmetro DN se establece y timer_state se establece.

Texto estructurado

TONR_01.Preset := 500;
TONR_01.Reset : = reset;
TONR_O1.TimerEnable := limit_switch1;

TONR(TONR_01);

timer_state := TONR_01.DN;

Ejemplo de bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008 119


Captulo 3 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Temporizador de retardo a La instruccin TOFR es un temporizador no retentivo que acumula


tiempo cuando TimerEnable est borrado.
la desconexin con
restablecimiento (TOFR) Esta instruccin est disponible en lgica de escalera de rels como
dos instrucciones separadas: TOF (vea pgina 108) y RES
(vea pgina 141).

Operandos:

TOFR(TOFR_tag); Texto estructurado

Variable Tipo Formato Descripcin


TOFR tag FBD_TIMER estructura estructura TOFR

Operandos de bloque de funciones

Operando Tipo Formato Descripcin


TOFR tag FBD_TIMER estructura estructura TOFR

Estructura FBD_TIMER

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Bloque de funciones:

Si se borra, la instruccin no se ejecuta y las salidas no se actualizan.

Si se establece, la instruccin se ejecuta.

La opcin predeterminada es establecido.

Texto estructurado:

Ningn efecto. La instruccin se ejecuta.


TimerEnable BOOL Si se borra, permite que el temporizador se ejecute y acumule tiempo.

La opcin predeterminada es borrado.


PRE DINT Valor prefijado en el temporizador. ste es un valor en unidades de 1 ms al que ACC debe
llegar antes de que concluya la temporizacin. Si no es vlido, las instrucciones establecen
el bit apropiado en Status y el temporizador no se ejecuta.

Vlido = 0 hasta el entero positivo mximo


Reset BOOL Peticin para restablecer el temporizador. Cuando se establece, el temporizador se
restablece.

La opcin predeterminada es borrado.


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
ACC BOOL Tiempo acumulado en milisegundos.
EN BOOL Salida de temporizador habilitado. Indica que la instruccin de temporizador est habilitada.
TT BOOL Salida de temporizador temporizando. Cuando se establece, se est ejecutando una
operacin de temporizacin.

120 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Captulo 3

Parmetro de Tipo de datos Descripcin


entrada
DN BOOL Salida de temporizador expirado. Indica cuando el tiempo acumulado es mayor o igual que el
valor de preajuste.
Status DINT Estado del bloque de funciones.
InstructFault (Status.0) BOOL La instruccin detect uno de los siguientes errores de ejecucin. ste no es un error menor
ni mayor del controlador. Verifique los bits de estado restantes para determinar lo que
ocurri.
PresetInv (Status.1) BOOL El valor de preajuste no es vlido.

Descripcin: La instruccin TOFR acumula tiempo hasta que:


la instruccin TOFR se inhabilita
ACC PRE
La base de tiempo siempre es 1 ms. Por ejemplo, en un temporizador
de 2 segundos, introduzca 2000 para el valor .PRE.
TimerEnable

bit de habilitacin (EN)

bit de temporizador temporizando (TT)


bit de temporizador expirado (.DN)
retardo a la
desconexin
preajuste

valor acumulado de temporizador (.ACC)


0 16650

el temporizador no lleg al valor PRE


Establezca el parmetro de entrada Reset para restablecer la
instruccin. Si TimerEnable se borra cuando Reset se establece, la
instruccin TOFR no comienza a temporizar nuevamente hasta que se
Reset se borra.

Un temporizador se ejecuta restando la hora de su ltimo escn de la


hora actual:

ACC = ACC + (current_time - last_time_scanned)

Publicacin 1756-RM003K-ES-P Julio 2008 121


Captulo 3 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Despus de que se actualiza el ACC, el temporizador establece


last_time_scanned = current_time. Esto deja el temporizador
listo para el siguiente escn.

Asegrese de escanear el temporizador por lo menos cada 69 minutos mientras se ejecuta.


IMPORTANTE
De no hacerse, el valor ACC no ser correcto.
El valor last_time_scanned tiene un rango de hasta 69 minutos. El clculo del
temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso de
69 minutos. Si esto sucede, el valor ACC no ser correcto.
Durante la ejecucin de un temporizador, escanelo dentro de un lapso no mayor de
69 minutos si lo coloca en una:
subrutina
seccin de cdigo comprendida entre las instrucciones JMP y LBL
diagrama de funcin secuencial (SFC)
evento o tarea peridica
rutina de estado de una fase

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:
Condicin Accin de bloque de funciones Accin de texto estructurado
preescn Ninguna. Ninguna.
primer escn de instruccin Los bits EN, TT y DN se borran. Los bits EN, TT y DN se borran.

El valor ACC se establece en PRE. El valor ACC se establece en PRE.


primera ejecucin de Los bits EN, TT y DN se borran. Los bits EN, TT y DN se borran.
instruccin
El valor ACC se establece en PRE. El valor ACC se establece en PRE.
EnableIn se borra EnableOut se borra, la instruccin no efecta n. a.
ninguna operacin y las salidas no se actualizan.
EnableIn se establece Cuando EnableIn cambia de borrado a establecido, la EnableIn siempre se establece.
instruccin se inicializa segn lo descrito para el
primer escn de la instruccin. La instruccin se ejecuta.

La instruccin se ejecuta.

EnableOut se establece.
restablecimiento Cuando el parmetro de entrada Reset se establece, Cuando el parmetro de entrada Reset se establece,
la instruccin borra EN, TT y DN, y establece la instruccin borra EN, TT y DN, y establece
ACC = PRE. Tenga presente que esto es diferente a ACC = PRE. Tenga presente que esto es diferente a
usar una instruccin RES en una instruccin TOF. usar una instruccin RES en una instruccin TOF.
post-escn Ninguna. Ninguna.

Ejemplo: En cada escn despus de que limit_switch1 se borra, la instruccin


TOFR incrementa el valor ACC en una cantidad equivalente al tiempo
transcurrido hasta que el valor ACC llega al valor PRE. Cuando
ACC PRE, el parmetro DN se borra y timer_state2 se establece.

122 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Captulo 3

Texto estructurado

TOFR_01.Preset := 500
TOFR_01.Reset := reset;
TOFR_O1.TimerEnable := limit_switch1;

TOFR(TOFR_01);

timer_state2 := TOFR_01.DN;

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008 123


Captulo 3 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Temporizador retentivo La instruccin RTOR es un temporizador retentivo que acumula


tiempo cuando TimerEnable est establecido.
activado con
restablecimiento (RTOR) Esta instruccin est disponible en lgica de escalera de rels como
dos instrucciones separadas: RTO (vea pgina 112) y RES
(vea pgina 141).

Operandos:

RTOR(RTOR_tag); Texto estructurado

Variable Tipo Formato Descripcin


RTOR tag FBD_TIMER estructura estructura RTOR

Operandos de bloque de funciones

Operando Tipo Formato Descripcin


RTOR tag FBD_TIMER estructura estructura RTOR

Estructura FBD_TIMER

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Bloque de funciones:

Si se borra, la instruccin no se ejecuta y las salidas no se actualizan.

Si se establece, la instruccin se ejecuta.

La opcin predeterminada es establecido.

Texto estructurado:

Ningn efecto. La instruccin se ejecuta.


TimerEnable BOOL Si se establece, permite que el temporizador se ejecute y acumule tiempo.

La opcin predeterminada es borrado.


PRE DINT Valor prefijado en el temporizador. ste es un valor expresado en unidades de 1 ms al que
ACC debe llegar antes de que concluya la temporizacin. Si no es vlido, la instruccin
establece el bit apropiado en Status y el temporizador no se ejecuta.

Vlido = 0 hasta el entero positivo mximo


Reset BOOL Peticin para restablecer el temporizador. Cuando se establece, el temporizador se
restablece.
Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
ACC DINT Tiempo acumulado en milisegundos. Este valor queda retenido aun cuando la entrada
TimerEnable se borra. sta es la diferencia entre el comportamiento de este bloque y el del
bloque TONR.
EN BOOL Salida de temporizador habilitado. Indica que la instruccin de temporizador est habilitada.
TT BOOL Salida de temporizador temporizando. Cuando se establece, se est ejecutando una
operacin de temporizacin.

124 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Captulo 3

Parmetro de Tipo de datos Descripcin


entrada
DN BOOL Salida de temporizador expirado. Indica cuando el tiempo acumulado es mayor o igual que el
valor de preajuste.
Status DINT Estado del bloque de funciones.
InstructFault (Status.0) BOOL La instruccin detect uno de los siguientes errores de ejecucin. ste no es un error menor
ni mayor del controlador. Verifique los bits de estado restantes para determinar lo que
ocurri.
PresetInv (Status.1) BOOL El valor de preajuste no es vlido.

Descripcin: La instruccin RTOR acumula tiempo hasta que se inhabilita. Cuando


la instruccin RTOR se inhabilita, retiene su valor .ACC. Usted debe
borrar el valor .ACC usando la entrada de restablecimiento.

La base de tiempo siempre es 1 ms. Por ejemplo, en un temporizador


de 2 segundos, introduzca 2000 para el valor .PRE.

TimerEnable

bit de habilitacin (EN)

Reset

bit de temporizador temporizando (TT)

bit de temporizador expirado (.DN)

preajuste

16651
valor acumulado de temporizador (.ACC)
0
el temporizador no lleg al valor PRE

Establezca el parmetro de entrada Reset para restablecer la


instruccin. Si TimerEnable se establece cuando Reset se establece,
la instruccin RTOR comienza la temporizacin nuevamente cuando
Reset se borra.

Un temporizador se ejecuta restando la hora de su ltimo escn de la


hora actual:

ACC = ACC + (current_time - last_time_scanned)

Publicacin 1756-RM003K-ES-P Julio 2008 125


Captulo 3 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Despus de que se actualiza el ACC, el temporizador establece


last_time_scanned = current_time. Esto deja el temporizador
listo para el siguiente escn.

Asegrese de escanear el temporizador por lo menos cada 69 minutos mientras se ejecuta.


IMPORTANTE
De no hacerse, el valor ACC no ser correcto.
El valor last_time_scanned tiene un rango de hasta 69 minutos. El clculo del
temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso de
69 minutos. Si esto sucede, el valor ACC no ser correcto.
Durante la ejecucin de un temporizador, escanelo dentro de un lapso no mayor de
69 minutos si lo coloca en una:
subrutina
seccin de cdigo comprendida entre las instrucciones JMP y LBL
diagrama de funcin secuencial (SFC)
evento o tarea peridica
rutina de estado de una fase

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin Accin de bloque de funciones Accin de texto estructurado


preescn Ninguna. Ninguna.
primer escn de instruccin Los bits EN, TT y DN se borran. Los bits EN, TT y DN se borran.

El valor .ACC no se modifica. El valor .ACC no se modifica.


primera ejecucin de Los bits EN, TT y DN se borran. Los bits EN, TT y DN se borran.
instruccin
El valor .ACC no se modifica. El valor .ACC no se modifica.
EnableIn se borra EnableOut se borra, la instruccin no efecta n. a.
ninguna operacin y las salidas no se actualizan.
EnableIn se establece Bloque de funciones: EnableIn siempre se establece.

Cuando EnableIn cambia de borrado a establecido, La instruccin se ejecuta.


la instruccin se inicializa segn lo descrito para el
primer escn de la instruccin.

La instruccin se ejecuta.

EnableOut se establece.
restablecimiento Cuando el parmetro de entrada Reset se establece, Cuando el parmetro de entrada Reset se establece,
la instruccin borra EN, TT y DN y establece la instruccin borra EN, TT y DN y establece
ACC = cero. ACC = cero.
post-escn Ninguna. Ninguna.

126 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Captulo 3

Ejemplo: En cada escn que limit_switch1 se establece, se establece, la


instruccin RTOR incrementa el valor ACC en una cantidad
equivalente al tiempo transcurrido hasta que el valor ACC llega al
valor PRE. Cuando ACC PRE, el parmetro DN se establece y
timer_state3 se establece.

Texto estructurado

RTOR_01.Preset := 500
RTOR_01.Reset := reset;
RTOR_O1.TimerEnable := limit_switch1;

RTOR(RTOR_01);

timer_state3 := RTOR_01.DN;

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008 127


Captulo 3 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Conteo progresivo (CTU) La instruccin CTU cuenta progresivamente.

Esta instruccin est disponible en texto estructurado y en bloque de


funciones como CTUD; vea la pgina 136.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Counter COUNTER tag estructura de contador
Preset DINT inmediato valor superior hasta donde contar
Acum DINT inmediato nmero de veces que cont el contador

el valor inicial es tpicamente 0

Estructura COUNTER

Mnemnico Tipo de datos Descripcin


.CU BOOL El bit de habilitacin de conteo progresivo indica que la instruccin CTU est habilitada.
.DN BOOL El bit de efectuado indica que .ACC .PRE.
.OV BOOL El bit de overflow indica que el contador excedi el lmite superior de 2,147,483,647, por lo
que el contador regresa a -2,147,483,648 y comienza nuevamente el conteo progresivo.
.UN BOOL El bit de underflow indica que el contador excedi el lmite inferior de -2,147,483,648, por lo
que el contador regresa a 2,147,483,647 y comienza nuevamente el conteo regresivo.
.PRE DINT El valor de preajuste especifica el valor al que debe llegar el valor acumulado para que la
instruccin establezca el bit .DN.
.ACC DINT El valor acumulado especifica el nmero de transiciones que cont la instruccin.

128 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Captulo 3

Descripcin: Cuando se habilita y el bit .CU se borra, la instruccin CTU


incrementa el contador en uno. Cuando se habilita y el bit .CU se
establece, o cuando se inhabilita, la instruccin CTU retiene su
valor .ACC.

condicin de entrada del rengln

bit de habilitacin de conteo progresivo (.CU)

bit de conteo progresivo efectuado (.DN)

preajuste

valor acumulado de contador (.ACC)


16636

El valor acumulado contina incrementndose, incluso despus de


que se establece el bit .DN. Para borrar el valor acumulado, use una
instruccin RES que referencie la estructura de contador o escriba 0 en
el valor acumulado.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Publicacin 1756-RM003K-ES-P Julio 2008 129


Captulo 3 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn El bit .CU se establece para evitar incrementos no vlidos durante el primer escn del
programa.

La condicin de salida de rengln se establece como falsa.


condicin de entrada de rengln es falsa El bit .EN se borra.

La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln es verdadera

bit .CU = 0 el bit .CU se establece el valor .ACC s


examine el bit .CU
retorna al valor
.ACC = .ACC + 1 inicial

bit .CU = 1 no

el bit .UN se borra el bit .UN = 1


el bit .DN se borra examine el bit .UN
el bit .OV se borra

el bit .UN = 0

el bit .UN = 0 el bit .OV = 0


examine el bit .UN examine el bit .OV

el bit .OV se
el bit .UN = 1 el bit .OV = 1 establece

.ACC .PRE
examine .ACC

.ACC < .PRE


el bit .DN se borra el bit .DN se
establece

la condicin de salida de
rengln se establece como
verdadera

fin

post-escn La condicin de salida de rengln se establece como falsa.

130 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Captulo 3

Ejemplo: Despus de que limit_switch_1 cambia de inhabilitado a habilitado


10 veces, el bit .DN se establece y light_1 se enciende. Si
limit_switch_1 contina cambiando de inhabilitado a habilitado,
counter_1 contina incrementando su conteo y el bit .DN permanece
establecido. Cuando limit_switch_2 se habilita, la instruccin RES
restablece counter_1 (borra el bit de estado y el valor .ACC) y light_1
se apaga.

Publicacin 1756-RM003K-ES-P Julio 2008 131


Captulo 3 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Conteo regresivo (CTD) La instruccin CTD cuenta regresivamente.

Esta instruccin est disponible en texto estructurado y en bloque de


funciones como CTUD; vea la pgina 136.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Counter COUNTER tag estructura de contador
Preset DINT inmediato valor inferior hasta donde contar
Acum DINT inmediato nmero de veces que cont el contador

el valor inicial es tpicamente 0

Estructura COUNTER

Mnemnico Tipo de datos Descripcin


.CD BOOL El bit de habilitacin de conteo regresivo indica que la instruccin CTD est habilitada.
.DN BOOL El bit de efectuado indica que .ACC .PRE.
.OV BOOL El bit de overflow indica que el contador excedi el lmite superior de 2,147,483,647, por lo
que el contador regresa a -2,147,483,648 y comienza nuevamente el conteo progresivo.
.UN BOOL El bit de underflow indica que el contador excedi el lmite inferior de -2,147,483,648, por lo
que el contador regresa a 2,147,483,647 y comienza nuevamente el conteo regresivo.
.PRE DINT El valor de preajuste especifica el valor al que debe llegar el valor acumulado para que la
instruccin establezca el bit .DN.
.ACC DINT El valor acumulado especifica el nmero de transiciones que cont la instruccin.

132 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Captulo 3

Descripcin: La instruccin CTD normalmente se usa con una instruccin CTU que
referencia la misma estructura de contador.

Cuando se habilita y el bit .CD se borra, la instruccin CTD


decrementa el contador en uno. Cuando se habilita y el bit .CD se
establece, o cuando se inhabilita, la instruccin CTD retiene su
valor .ACC.

condicin de entrada del rengln

bit de habilitacin de conteo regresivo (.CD)

bit de conteo regresivo efectuado (.DN)

valor acumulado de contador (.ACC)

preajuste

16637

El valor acumulado contina decrementndose, aun despus de que


se establece el bit .DN. Para borrar el valor acumulado, use una
instruccin RES que referencie la estructura de contador o escriba 0 en
el valor acumulado.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Publicacin 1756-RM003K-ES-P Julio 2008 133


Captulo 3 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn El bit .CD se establece para evitar decrementos no vlidos durante el primer escn del
programa.

La condicin de salida de rengln se establece como falsa.


condicin de entrada de rengln es falsa El bit .CD se borra.

La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln es verdadera

el bit .CD = 0 el bit .CD se establece el valor .ACC s


examine el bit .CD retorna al
.ACC = .ACC - 1 valor inicial

el bit .CD = 1 no

el bit .OV se borra el bit .OV = 1


el bit .DN se borra examine el bit .OV
el bit .UN se borra

el bit .OV = 0

el bit .UN = 0 el bit .OV = 0


examine el bit .UN examine el bit .OV

el bit .UN se
el bit .UN = 1 el bit .OV = 1 establece

.ACC .PRE
examine .ACC

.ACC < .PRE


el bit .DN se borra el bit .DN se
establece

la condicin de salida de
rengln se establece como
verdadera

fin

post-escn La condicin de salida de rengln se establece como falsa.

134 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Captulo 3

Ejemplo: Un transportador lleva partes a una zona de almacenamiento


intermedio. Cada vez que entra una parte, limit_switch_1 se habilita
y counter_1 se incrementa en 1. Cada vez que sale una parte,
limit_switch_2 se habilita y counter_1 se decrementa en 1. Si hay
100 partes en la zona de almacenamiento intermedio (counter_1.dn
se establece), conveyor_a se activa y detiene el transportador para que
no lleve ms partes hasta que la zona de almacenamiento intermedio
tenga espacio para ms partes.

Publicacin 1756-RM003K-ES-P Julio 2008 135


Captulo 3 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Conteo progresivo/ La instruccin CTUD incrementa en uno el conteo cuando CUEnable


cambia de borrado a establecido. La instruccin decrementa en uno el
regresivo (CTUD) conteo cuando CDEnable cambia de borrado a establecido.

Esta instruccin est disponible en lgica de escalera de rels como


tres instrucciones separadas: CTU (ver pgina 128), CTD
(ver pgina 132), y RES (ver pgina 141).

Operandos:

CTUD(CTUD_tag); Texto estructurado

Variable Tipo Formato Descripcin


CTUD tag FBD_COUNTER estructura estructura CTUD

Bloque de funciones

Operando Tipo Formato Descripcin


CTUD tag FBD_COUNTER estructura estructura CTUD

Estructura FBD_COUNTER

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Bloque de funciones:

Si se borra, la instruccin no se ejecuta y las salidas no se actualizan.

Si se establece, la instruccin se ejecuta.

La opcin predeterminada es establecido.

Texto estructurado:

Ningn efecto. La instruccin se ejecuta.


CUEnable BOOL Habilita el conteo progresivo. Cuando la entrada cambia de borrado a establecido,
el acumulador se incrementa en uno.

La opcin predeterminada es borrado.

136 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Captulo 3

Parmetro de Tipo de datos Descripcin


entrada
CDEnable BOOL Habilita el conteo regresivo. Cuando la entrada cambia de borrado a establecido,
el acumulador se decrementa en uno.

La opcin predeterminada es borrado.


PRE DINT Valor de preajuste del contador. ste es el valor al cual debe llegar el valor acumulado para
que se establezca DN.

Vlido = cualquier nmero entero

El valor predeterminado es 0.
Reset BOOL Peticin para restablecer el temporizador. Cuando se establece, el contador se restablece.

La opcin predeterminada es borrado.

Parmetro de salida Tipo de datos Descripcin


EnableOut BOOL La instruccin produjo un resultado vlido.
ACC DINT Valor acumulado.
CU BOOL Conteo progresivo habilitado.
CD BOOL Conteo regresivo habilitado.
DN BOOL Conteo efectuado. Se establece cuando el valor acumulado es mayor o igual que el valor de
preajuste.
OV BOOL Overflow del contador. Indica que el contador excedi el lmite superior de 2,147,483,647.

Seguidamente el contador regresa a 2,147,483,648 y comienza nuevamente el conteo


regresivo.
UN BOOL Underflow del contador. Indica que el contador excedi el lmite inferior de 2,147,483,648.

Seguidamente el contador regresa a 2,147,483,647 y comienza nuevamente el conteo


regresivo.

Descripcin Cuando se habilita y CUEnable se establece, la instruccin CTUD


incrementa el contador en uno. Cuando se habilita y CDEnable se
establece, la instruccin CTUD decrementa el contador en uno.

Ambos parmetros de entrada CUEnable y CDEnable pueden


alternarse durante el mismo escn. La instruccin ejecuta el conteo
progresivo antes del conteo regresivo.

Publicacin 1756-RM003K-ES-P Julio 2008 137


Captulo 3 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Conteo progresivo

CUEnable

bit de habilitacin de conteo progresivo (CU)

bit de conteo progresivo efectuado (.DN)

preajuste

valor acumulado de contador (ACC)


16636

Conteo regresivo

CDEnable

bit de habilitacin de conteo regresivo (CD)

bit de conteo regresivo efectuado (.DN)

valor acumulado de contador (ACC)

preajuste

16637

Cuando se inhabilita, la instruccin CTUD retiene su valor acumulado.


Establezca el parmetro de entrada Reset de la estructura
FBD_COUNTER para restablecer la instruccin.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

138 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Captulo 3

Ejecucin:

Condicin Accin de bloque de funciones Accin de texto estructurado


preescn No se requiere inicializacin. No se requiere inicializacin.
primer escn de instruccin CUEnablen-1 y CDEnablen-1 se establecen. CUEnablen-1 y CDEnablen-1 se establecen.
primera ejecucin de CUEnablen-1 y CDEnablen-1 se establecen. CUEnablen-1 y CDEnablen-1 se establecen.
instruccin
EnableIn se borra EnableOut se borra, la instruccin no efecta n. a.
ninguna operacin y las salidas no se actualizan.
EnableIn se establece La instruccin establece CUEnablen-1 y CDEnablen-1. La instruccin establece CUEnablen-1 y CDEnablen-1.

En una transicin de borrado a establecido de EnableIn siempre se establece.


EnableIn:
La instruccin se ejecuta.
La instruccin se ejecuta.
EnableOut se establece.
restablecimiento Cuando se establece, la instruccin borra Cuando se establece, la instruccin borra
CUEnablen-1, CDEnablen-1, CU, CD, DN, OV y UN y CUEnablen-1, CDEnablen-1, CU, CD, DN, OV y UN y
establece ACC = cero. establece ACC = cero.
post-escn Ninguna. Ninguna.

Ejemplo: Cuando limit_switch1 cambia de borrado a establecido, CUEnable se


establece por un escn y la instruccin CTUD incrementa el valor ACC
en 1. Cuando ACC PRE, el parmetro DN se establece, lo cual
habilita la instruccin de bloque de funciones despus de la
instruccin CTUD.

Texto estructurado

CTUD_01.Preset := 500;
CTUD_01.Reset := Restart;
CTUD_O1.CUEnable := limit_switch1;

CTUD(CTUD_01);

counter_state := CTUD_01.DN;

Publicacin 1756-RM003K-ES-P Julio 2008 139


Captulo 3 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Bloque de funciones

140 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Captulo 3

Restablecer (RES) La instruccin RES restablece una estructura TIMER, COUNTER o


CONTROL.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


estructura TIMER tag estructura que se va a restablecer

CONTROL

COUNTER

Descripcin: Cuando se habilita, la instruccin RES borra estos elementos:

Cuando se usa una La instruccin borra


instruccin RES para
TIMER el valor .ACC

los bits de estado de control


COUNTER el valor .ACC

los bits de estado de control


CONTROL el valor .POS

los bits de estado de control

ATENCIN Puesto que la instruccin RES borra el valor .ACC, el bit .DN y
el bit .TT, no use la instruccin RES para restablecer un
temporizador TOF.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Publicacin 1756-RM003K-ES-P Julio 2008 141


Captulo 3 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera La instruccin RES restablece la estructura especificada.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

142 Publicacin 1756-RM003K-ES-P Julio 2008


Captulo 4

Instrucciones de entrada/salida
(MSG, GSV, SSV, IOT)

Introduccin Las instrucciones de entrada/salida leen o escriben datos desde o


hacia el controlador, o un bloque de datos desde o hacia otro mdulo
en otra red.

Si desea Use esta instruccin Disponible en estos lenguajes Vea la pgina


enviar datos desde o hacia otro mdulo MSG lgica de escalera de rels 144

texto estructurado
obtener informacin de estado del controlador GSV lgica de escalera de rels 176

texto estructurado
establecer informacin de estado del SSV lgica de escalera de rels 176
controlador
texto estructurado
enviar valores de salida a un mdulo de E/S IOT lgica de escalera de rels 201
o controlador consumidor en un punto
especfico de su lgica texto estructurado
activar una tarea de evento en otro
controlador

143Publicacin 1756-RM003K-ES-P Julio 2008 143


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Mensaje (MSG) La instruccin MSG lee o escribe asncronamente un bloque de datos


en otro mdulo de una red.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Message MESSAGE tag estructura de mensaje
control

Texto estructurado
MSG(MessageControl);
Los operandos son iguales a los de la instruccin MSG de lgica de
escalera de rels.

Estructura MESSAGE

ATENCIN Si usted revisa los bits de estado ms de una vez


El controlador cambia los bits DN, ER, EW y ST de manera asncrona con el escn
de la lgica. Use una copia de los bits si los verifica en ms de un lugar en la
lgica. De lo contrario, los bits pueden cambiar durante el escn y la lgica no
funcionar segn lo esperado.
Una manera de hacer una copia es usar la palabra FLAGS. Copie la palabra
FLAGS a otro tag y verifique los bits en la copia.

IMPORTANTE No cambie los siguientes bits de estado de una instruccin MSG:


DN
EN
ER
EW
ST
No cambie esos bits por s mismos ni como parte de la palabra FLAGS. Si lo hace,
el controlador puede sufrir un fallo no recuperable. El controlador borra el
proyecto de su memoria cuando sufre un fallo no recuperable.

144 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Mnemnico Tipo de Descripcin


datos
.FLAGS INT El miembro .FLAGS proporciona acceso a los miembros de estado (bits) en una palabra de 16 bits.
Este bit: Es este miembro:
2 .EW
4 .ER
5 .DN
6 .ST
7 .EN
8 .TO
9 .EN_CC
Importante: No cambie los bits EW, ER, DN ni ST del miembro FLAGS. Por ejemplo, no borre toda la
palabra FLAGS. El controlador ignora el cambio y usa los valores de los bits almacenados
internamente.
.ERR INT Si el bit .ER est establecido, la palabra de cdigo de error identifica los cdigos de error de la
instruccin MSG.
.EXERR INT La palabra de cdigo de error extendida especifica informacin adicional de algunos cdigos de
error.
.REQ_LEN INT La longitud solicitada especifica cuntas palabras la instruccin de mensaje intentar transferir.
.DN_LEN INT La longitud efectuada identifica cuntas palabras se transfirieron realmente.
.EW BOOL Se establece el bit de habilitacin/espera cuando el controlador detecta que una solicitud de
mensaje ha entrado en la cola. El controlador restablece el bit .EW cuando se establece el bit .ST.
Importante: No cambie el bit EW. El controlador ignora el cambio y usa el valor del bit almacenado
internamente.
.ER BOOL Se establece el bit de error cuando el controlador detecta el fallo de una transferencia. El bit .ER se
restablece la prxima vez que la condicin de entrada de rengln cambia de falsa a verdadera.
Importante: No cambie el bit ER.
.DN BOOL Se establece el bit de efectuado cuando se transfiere correctamente el ltimo paquete del mensaje.
El bit .DN se restablece la prxima vez que la condicin de entrada de rengln cambia de falsa a
verdadera.
Importante: No cambie el bit DN.
.ST BOOL Se establece el bit de arranque cuando el controlador comienza a ejecutar la instruccin MSG.
El bit .ST se restablece cuando se establece el bit .DN o .ER.
Importante: No cambie el bit ST. El controlador ignora el cambio y usa el valor del bit almacenado
internamente.
.EN BOOL Se establece el bit de habilitacin cuando la condicin de entrada de rengln se hace verdadera y
permanece establecida hasta que se establece el bit .DN o .ER y la condicin de entrada de rengln
es falsa. Si la condicin de entrada de rengln se hace falsa, pero los bits .DN y .ER se borran, el
bit .EN permanece establecido.

Importante: No cambie el bit EN.


.TO BOOL Si se establece manualmente el bit .TO, el controlador interrumpe el procesamiento del mensaje y
establece el bit .ER.
.EN_CC BOOL El bit de habilitacin de cach determina cmo administrar la conexin MSG. Consulte Seleccione
una opcin de cach en la pgina 4-173. Las conexiones para instrucciones MSG a travs del puerto
serie no se guardan en la memoria cach aunque se establezca el bit .EN_CC.
.ERR_SRC SINT Usado por el software RSLogix 5000 para mostrar la ruta de error en el cuadro de dilogo Message
Configuration

Publicacin 1756-RM003K-ES-P Julio 2008 145


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Mnemnico Tipo de Descripcin


datos
.DestinationLink INT Para cambiar el vnculo de destino de un DH+ o CIP con mensaje de ID de origen, establezca este
miembro en el valor requerido.
.DestinationNode INT Para cambiar el nodo de destino de un DH+ o CIP con mensaje de ID de origen, establezca este
miembro en el valor requerido.
.SourceLink INT Para cambiar el vnculo de origen de un DH+ o CIP con mensaje de ID de origen, establezca este
miembro en el valor requerido.
.Class INT Para cambiar el parmetro Class de un mensaje genrico de CIP, establezca este miembro en el valor
requerido.
.Attribute INT Para cambiar el parmetro Attribute de un mensaje genrico de CIP, establezca este miembro en el
valor requerido.
.Instance DINT Para cambiar el parmetro Instance de un mensaje genrico de CIP, establezca este miembro en el
valor requerido.
.LocalIndex DINT Si usted usa un asterisco [*] para eliminar el nmero de elemento de la matriz local, el LocalIndex
proporciona el nmero de elemento. Para cambiar el nmero de elemento, establezca este miembro
en el valor requerido.
Si el mensaje: La matriz local es el:
lee datos Elemento de destino
escribe datos Elemento de origen
.Channel SINT Para enviar el mensaje a travs de un canal diferente del mdulo 1756-DHRIO, establezca este
miembro en el valor requerido. Use el carcter ASCII A o B.
.Rack SINT Para cambiar el nmero de rack en un mensaje de transferencia en bloques, establezca este
miembro en el nmero de rack requerido (octal).
.Group SINT Para cambiar el nmero de grupo en un mensaje de transferencia en bloques, establezca este
miembro en el nmero de grupo requerido (octal).
.Slot SINT Para cambiar el nmero de ranura en un mensaje de transferencia en bloques, establezca este
miembro en el nmero de ranura requerido.
Si el mensaje se Especifique el nmero de ranura en:
enva a travs de
esta red:
E/S remotas octal
universales
ControlNet decimal (0-15)
.Path STRING Para enviar el mensaje a un controlador diferente, establezca este miembro en la nueva ruta.

Introduzca la ruta en valores decimales.


Omita las comas [,]
Por ejemplo, para una ruta de 1, 0, 2, 42, 1, 3, introduzca $01$00$02$2A$01$03.

Para llegar a un dispositivo y crear automticamente una porcin o toda la nueva cadena, haga clic
con el botn derecho del mouse en un tag de cadena y seleccione Go to Message Path Editor.
.RemoteIndex DINT Si usted usa un asterisco [*] para designar el nmero de elemento de la matriz remota, el
RemoteIndex proporciona el nmero de elemento. Para cambiar el nmero de elemento, establezca
este miembro en el valor requerido.
Si el mensaje: La matriz remota es el:
lee datos Elemento de origen
escribe datos Elemento de destino

146 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Mnemnico Tipo de Descripcin


datos
.RemoteElement STRING Para especificar un tag o direccin diferente en el controlador al cual se enva el mensaje, establezca
este miembro en el valor requerido. Introduzca el tag o direccin en caracteres ASCII.
Si el mensaje: La matriz remota es el:
lee datos Elemento de origen
escribe datos Elemento de destino
.UnconnnectedTimeout DINT Tiempo de espera para un mensaje no conectado o para hacer una conexin. El valor predeterminado
es 30 segundos.
Si el mensaje es Entonces
no conectado El bit ER se activa si el controlador no recibe una respuesta dentro del tiempo
UnconnectedTimeout.
conectado El bit ER se activa si el controlador no recibe una respuesta para hacer la
conexin dentro del tiempo UnconnectedTimeout.
.ConnectionRate DINT Tiempo de espera para un mensaje conectado una vez que tiene una conexin. Este tiempo de
espera es para la respuesta proveniente del otro dispositivo acerca del envo de datos.
.TimeoutMultiplier SINT
Este tiempo de espera se aplica solamente despus de que se hace la conexin.
El tiempo de espera = ConnectionRate x TimeoutMultiplier.
El valor predeterminado de ConnectionRate es 7.5 segundos.
El valor predeterminado de TimeoutMultiplier es 0 (que es un factor de multiplicacin de 4).
El tiempo de espera predeterminado para los mensajes conectados es 30 segundos
(7.5 segundos x 4 = 30 segundos).
Para cambiar el tiempo de espera, cambie ConnectionRate y deje TimeoutMultiplier en el valor
predeterminado.

Descripcin La instruccin MSG transfiere los elementos de datos.

sta es una instruccin transicional:

En la lgica de escalera de rels, cambie la condicin de


entrada del rengln de borrado a establecido cada vez que
deba ejecutarse la instruccin.
En texto estructurado, condicione la instruccin de manera
que slo se ejecute cuando ocurra una transicin. Consulte el
Apndice B.

Publicacin 1756-RM003K-ES-P Julio 2008 147


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

El tamao de cada elemento depende de los tipos de datos que usted


especifica y del tipo de comando de mensaje que usa.

conexin con .EN_CC = 1

condicin de entrada de rengln

bit .EN

bit .EW

conexin con .EN_CC = 0

bit .ST

bit .DN o bit .ER

41382

1 2 3 4 5 6 7

148 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Donde Descripcin Donde Descripcin


1 condicin de entrada de rengln es verdadera 5 el mensaje se enva

.EN se establece .ST se establece

.EW se establece .EW se borra

la conexin est abierta*


2 el mensaje se enva 6 mensaje efectuado o con error

.ST se establece condicin de entrada de rengln todava es


verdadera
.EW se borra
.DN o .ER se establece

.ST se borra

La conexin est cerrada (si .EN_CC = 0)


3 mensaje efectuado o con error 7 la condicin de entrada de rengln se hace falsa y
.DN o .ER se establece
condicin de entrada de rengln es falsa
.EN se borra
.DN o .ER se establece

.ST se borra

La conexin est cerrada (si .EN_CC = 0)

.EN se borra (la condicin de entrada de rengln es


falsa)
4 condicin de entrada de rengln es verdadera

.DN o .ER se estableci previamente

.EN se establece

.EW se establece

la conexin est abierta*

.DN o .ER se borra

Ejecucin:
Condicin Accin de lgica de escalera de rels Accin de texto estructurado
preescn La condicin de salida de rengln se establece como Ninguna.
falsa.

Publicacin 1756-RM003K-ES-P Julio 2008 149


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Condicin Accin de lgica de escalera de rels Accin de texto estructurado

condicin de entrada de rengln es falsa


(no se aplica a texto estructurado) bit .EN = 1
examine el bit .EN
bit .EN = 0

bit .EW = 1
examine el bit .EW

bit .EW = 0

bit .ST = 1
examine el bit .ST

bit .ST = 0

bit .DN = 1
examine el bit .DN

bit .DN = 0

bit .ER = 1 bit .ER = 0 comando de s no


examine el bit .ER la ruta de acceso
transferencia en del mdulo es
bloques vlida

no s

bit .DN = 1
examine el bit .DN s conexin de no
mdulo en
ejecucin
bit .DN = 0 el bit .EN se borra ejecute la peticin de
mensaje

bit .ER = 1
examine el bit .ER el bit .EW se establece el bit .ER se
establece

bit .ER = 0

la condicin de salida de rengln


se establece como falsa

fin

condicin de entrada de La instruccin se ejecuta. n. a.


rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.

150 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.

ejecucin de la instruccin
bit .EN = 1 bit .EN = 0
examine el bit .EN

bit .EW = 1 bit .EW = 1


examine el bit .EW examine el bit .EW

bit .EW = 0 bit .EW = 0

bit .ST = 1 bit .ST = 1


examine el bit .ST examine el bit .ST

bit .ST = 0 bit .ST = 0

los bits .EW, .ST, .TO, .DN y .ER se


borran y el bit
bit .DN = 1 .EN se establece
examine el bit .DN

bit .DN = 0 el bit .EN se


establece

bit .ER = 1 bit .ER = 0 comando de s no


examine el bit .ER transferencia en la ruta de acceso
bloques del mdulo es
vlida

no s

s conexin de no
mdulo en
ejecucin
los bits .EW, .ST, .TO, .DN y .ER se borran
el bit .EN se establece
ejecute la peticin de mensaje
el bit .EW se establece el bit .ER se
establece

la condicin de salida de
rengln se establece
como falsa

fin

post-escn La condicin de salida de rengln se establece como Ninguna.


falsa.

Publicacin 1756-RM003K-ES-P Julio 2008 151


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Cdigos de error MSG Los cdigos de error dependen del tipo de instruccin MSG.

Cdigos de error

El software RSLogix 5000 no siempre muestra la descripcin completa.

Cdigo de error Descripcin Se muestra en el software


(hex)
0001 Fallo de conexin (vea los cdigos de error extendidos) idntico a la descripcin
0002 Recurso insuficiente idntico a la descripcin
0003 Valor no vlido idntico a la descripcin
0004 Error de sintaxis IOI (vea los cdigos de error extendidos) idntico a la descripcin
0005 Destino desconocido, clase no compatible, instancia no idntico a la descripcin
definida o elemento de estructura no definido (vea los cdigos
de error extendidos)
0006 Espacio de paquete insuficiente idntico a la descripcin
0007 Conexin perdida idntico a la descripcin
0008 Servicio no compatible idntico a la descripcin
0009 Error en segmento de datos o valor de atributo no vlido idntico a la descripcin
000A Error de lista de atributos idntico a la descripcin
000B El estado ya existe idntico a la descripcin
000C Conflicto de modelo de objeto idntico a la descripcin
000D El objeto ya existe idntico a la descripcin
000E Atributo no se puede establecer idntico a la descripcin
000F Permiso denegado idntico a la descripcin
0010 Conflicto de estado de dispositivo idntico a la descripcin
0011 La respuesta no cabe idntico a la descripcin
0012 Fragmento primitivo idntico a la descripcin
0013 Datos de comando insuficientes idntico a la descripcin
0014 Atributo no compatible idntico a la descripcin
0015 Demasiados datos idntico a la descripcin
001A Peticin de puente demasiado grande idntico a la descripcin
001B Respuesta de puente demasiado grande idntico a la descripcin
001C Lista de atributos insuficiente idntico a la descripcin
001D Lista de atributos no vlida idntico a la descripcin
001E Error de servicio incorporado idntico a la descripcin

152 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Cdigo de error Descripcin Se muestra en el software


(hex)
001F Fallo relacionado con la conexin (vea los cdigos de error idntico a la descripcin
extendidos)
0022 Respuesta no vlida recibida idntico a la descripcin
0025 Error de segmento clave idntico a la descripcin
0026 Error IOI no vlido idntico a la descripcin
0027 Atributo inesperado en lista idntico a la descripcin
0028 Error DeviceNet ID de miembro no vlido idntico a la descripcin
0029 Error DeviceNet miembro no se puede establecer idntico a la descripcin
00D1 El mdulo no se encuentra en estado de marcha error desconocido
00FB Puerto de mensajes no compatible error desconocido
00FC Tipo de mensaje no compatible error desconocido
00FD Mensaje no inicializado error desconocido
00FE Expiracin de mensaje error desconocido
00FF Error general (vea los cdigos de error extendidos) error desconocido

Publicacin 1756-RM003K-ES-P Julio 2008 153


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Cdigos de error extendidos

El software RSLogix 5000 no muestra ningn texto para los cdigos de


error extendidos.

Estos son los cdigos de error extendidos para el cdigo de


error 0001.

Cdigo de Descripcin Cdigo de Descripcin


error error
extendido extendido
(hex.): (hex.):
0100 Conexin en uso 0203 Expiracin de conexin
0103 Transporte no compatible 0204 Expiracin de mensaje no conectado
0106 Conflicto de propiedad 0205 Error de parmetro de envo no conectado
0107 No se encontr la conexin 0206 Mensaje demasiado grande
0108 Tipo de conexin no vlido 0301 No hay memoria de bfer
0109 Tamao de conexin no vlido 0302 Ancho de banda no disponible
0110 Mdulo no configurado 0303 No hay protectores disponibles
0111 EPR no compatible 0305 Coincidencia de firma
0114 Mdulo incorrecto 0311 Porte no disponible
0115 Tipo incorrecto de dispositivo 0312 Direccin de vnculo no disponible
0116 Revisin incorrecta 0315 Tipo de segmento no vlido
0118 Formato de configuracin no vlido 0317 Conexin no programada
011A Aplicacin sin conexiones

Estos son los cdigos de error extendidos para el cdigo de


error 001F.

Cdigo de error Descripcin


extendido (hex.):
0203 Expiracin de conexin

Estos son los cdigos de error extendidos para el cdigo de


error 0004 y 0005.

Cdigo de error Descripcin


extendido (hex.):
0000 estado extendido fuera de memoria
0001 estado extendido fuera de instancias

154 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Estos son los cdigos de error extendidos para el cdigo de


error 00FF.

Cdigo de Descripcin Cdigo de Descripcin


error error
extendido extendido
(hex.): (hex.):
2001 IOI excesivo 2107 Tipo no vlido o no compatible
2002 Valor de parmetro incorrecto 2108 Controlador en modo de carga o descarga
2018 Rechazo de semforo 2109 Intento para cambiar el nmero de dimensiones
de registro
201B Tamao demasiado pequeo
210A Nombre de smbolo no vlido
201C Tamao no vlido
210B El smbolo no existe
2100 Fallo de privilegio
210E La bsqueda entr en fallo
2101 Posicin no vlida de interruptor de llave
210F La tarea no se puede iniciar
2102 Contrasea no vlida
2110 No se puede escribir
2103 No se emiti contrasea
2111 No se puede leer
2104 Direccin fuera de rango
2112 Rutina compartida no editable
2105 Direccin y cuntas fuera de rango
2113 Controlador en modo con fallo
2106 Datos en uso
2114 Modo de marcha inhibido

Publicacin 1756-RM003K-ES-P Julio 2008 155


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Cdigos de error PLC y SLC (.ERR)

Logix, revisin de firmware 10.x y posteriores, proporciona nuevos


cdigos de error asociados con tipos de mensajes PLC y SLC
(mensajes PCCC).

Este cambio permite que el software RSLogix 5000 muestre una


descripcin significativa para muchos de los errores.
Anteriormente, el software no daba una descripcin de ninguno
de los errores asociados con el cdigo de error 00F0.
El cambio tambin hace que los cdigos de errores sean ms
coherentes con los errores devueltos por otros controladores,
tales como los controladores PLC-5.

La siguiente tabla muestra el cambio en los cdigos de error de R9.x y


anteriores hasta R10.x y posteriores. Como resultado del cambio, el
miembro .ERR retorna un valor nico por cada error PCCC. .EXERR ya
no se requiere para estos errores.

Cdigos de error PLC y SLC (hex)

R9.x y anteriores R10.x y posteriores Descripcin


.ERR .EXERR .ERR .EXERR
0010 1000 Comando o formato prohibido proveniente del procesador local
0020 2000 El mdulo de comunicacin no funciona
0030 3000 Nodo remoto ausente, desconectado o desactivado
0040 4000 Procesador conectado pero en fallo (hardware)
0050 5000 Nmero de estacin incorrecto
0060 6000 La funcin solicitada no est disponible
0070 7000 El procesador est en el modo de programacin
0080 8000 El archivo de compatibilidad del procesador no existe
0090 9000 El nodo remoto no puede almacenar temporalmente el comando
00B0 B000 El procesador est descargando, por lo que no es accesible
00F0 0001 F001 El procesador convirti la direccin incorrectamente
00F0 0002 F002 Direccin incompleta
00F0 0003 F003 Direccin incorrecta
00F0 0004 F004 Formato de direccin prohibido no se encontr el smbolo
00F0 0005 F005 Formato de direccin prohibido El smbolo tiene 0 o es mayor que el mximo
nmero de caracteres aceptados por el dispositivo
00F0 0006 F006 El archivo de direcciones no existe en el procesador receptor
00F0 0007 F007 El archivo de destino es demasiado pequeo para el nmero de palabras
solicitado
00F0 0008 F008 No puede completarse la solicitud

La situacin cambi durante la operacin con mltiples paquetes


00F0 0009 F009 Los datos o el archivo son demasiado grandes

Memoria no disponible

156 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Cdigos de error PLC y SLC (hex) (cont.)

R9.x y anteriores R10.x y posteriores Descripcin


.ERR .EXERR .ERR .EXERR
00F0 000A F00A El procesador receptor no puede poner en paquetes la informacin solicitada
00F0 000B F00B Error de privilegio; acceso denegado
00F0 000C F00C La funcin solicitada no est disponible
00F0 000D F00D La peticin es redundante
00F0 000E F00E El comando no puede ejecutarse
00F0 000F F00F Overflow; overflow de histograma
00F0 0010 F010 Sin acceso
00F0 0011 F011 El tipo de datos solicitado no coincide con los datos disponibles
00F0 0012 F012 Parmetros de comando incorrectos
00F0 0013 F013 Existe referencia de direccin a rea eliminada
00F0 0014 F014 Fallo de ejecucin de comando por razn desconocida

Overflow de histograma PLC-3


00F0 0015 F015 Error de conversin de datos
00F0 0016 F016 El escner no est disponible para comunicarse con un adaptador de
rack 1771
00F0 0017 F017 El adaptador no est disponible para comunicarse con el mdulo
00F0 0018 F018 La respuesta del modulo 1771 no fue vlida
00F0 0019 F019 Etiqueta duplicada
00F0 001A F01A Propietario de archivo activo el archivo est en uso
00F0 001B F01B Propietario de programa activo alguien est descargando o editando en
lnea
00F0 001C F01C El archivo de disco tiene proteccin contra escritura o no es accesible (fuera
de lnea solamente)
00F0 001D F01D El archivo de disco lo est usando otra aplicacin

Actualizacin no realizada (fuera de lnea solamente)

Publicacin 1756-RM003K-ES-P Julio 2008 157


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Cdigos de error de transferencia en bloques

Estos son los cdigos de error especficos para la transferencia en


bloques de Logix5000.

Cdigo de error Descripcin Se muestra en el


(hex) software
00D0 El escner no recibi una respuesta de transferencia en bloques del mdulo de error desconocido
transferencia en bloques dentro de los 3.5 segundos siguientes a la peticin
00D1 La suma de comprobacin de la respuesta de lectura no coincidi con la suma de error desconocido
comprobacin del flujo de datos
00D2 El escner solicit una lectura o una escritura, pero el mdulo de transferencia en bloques error desconocido
respondi lo opuesto
00D3 El escner solicit una longitud y el mdulo de transferencia en bloques respondi con una error desconocido
longitud diferente
00D6 El escner recibi una respuesta del mdulo de transferencia en bloques indicando que la error desconocido
peticin de escritura fall.
00EA El escner no estaba configurado para comunicarse con el rack que contendra este mdulo error desconocido
de transferencia en bloques
00EB La ranura lgica especificada no est disponible para el tamao de rack dado error desconocido
00EC Actualmente est en curso una peticin de transferencia en bloques y se requiere una error desconocido
respuesta antes de que pueda comenzar otra peticin.
00ED El tamao de la peticin de transferencia en bloques no es coherente con las peticiones de error desconocido
tamao de transferencia en bloques vlidas
00EE El tipo de la peticin de transferencia en bloques no es coherente con la BT_READ error desconocido
o BT_WRITE esperada
00EF El escner no pudo encontrar una ranura disponible en la tabla de transferencia en bloques error desconocido
para aceptar la peticin de transferencia en bloques
00F0 El escner recibi una peticin para restablecer los canales de E/S remotas mientras que error desconocido
haba transferencias en bloques pendientes
00F3 Las colas para las transferencias en bloques remotas estn llenas error desconocido
00F5 Los canales de comunicacin estn configurados para el rack o ranura solicitada error desconocido
00F6 Ningn canal de comunicacin est configurado para E/S remotas error desconocido
00F7 El tiempo de espera de la transferencia en bloques, establecido en la instruccin, expir error desconocido
antes de concluir
00F8 Error en el protocolo de transferencia en bloques transferencia en bloques no solicitada error desconocido
00F9 Los datos de la transferencia en bloques se perdieron debido a un canal de comunicacin error desconocido
defectuoso
00FA El mdulo de transferencia en bloques solicit una longitud diferente a la instruccin de error desconocido
transferencia en bloques asociada
00FB La suma de comprobacin de la transferencia en bloque de lectura era incorrecta error desconocido
00FC Hubo una transferencia no vlida de datos de transferencia en bloques de escritura entre el error desconocido
adaptador y el mdulo de transferencia en bloques
00FD El tamao de la transferencia en bloques ms el tamao del ndice en la tabla de datos de error desconocido
transferencias en bloques era mayor que el tamao del archivo de tablas de datos de
transferencia en bloques

158 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Especifique los detalles Despus de introducir la instruccin MSG y de especificar la estructura


MESSAGE, use el cuadro de dilogo Message Configuration para
de configuracin especificar los detalles del mensaje.

Haga clic aqu para configurar la instruccin MSG

Los detalles que usted configura dependen del tipo de mensaje que
selecciona.

42976

Si el dispositivo receptor es un Seleccione uno de estos tipos de Vea la pgina


mensaje
Controlador Logix5000 Lectura de tabla de datos CIP 160
Escritura de tabla de datos CIP
Mdulo de E/S que usted configura Reconfiguracin de mdulo 161
usando el software RSLogix 5000
CIP genrico 162
Controlador PLC-5 TypedRead PLC5 163
TypedWrite PLC5
Lectura de rango de palabras PLC5
Escritura de rango de palabras PLC5
Controlador SLC TypedRead SLC 165
TypedWrite SLC
Controlador MicroLogix
Mdulo de transferencia en bloques Lectura de transferencia en bloques 165
Escritura de transferencia en bloques
Procesador PLC-3 TypedRead PLC3 166
TypedWrite PLC3
Lectura de rango de palabras PLC3
Escritura de rango de palabras PLC3
Procesador PLC-2 Lectura no protegida PLC2 167
Escritura no protegida PLC2

Publicacin 1756-RM003K-ES-P Julio 2008 159


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Usted debe especificar esta informacin de configuracin:

Para esta propiedad Especifique


Elemento de origen Si selecciona un tipo de mensaje de lectura, el elemento de origen es la direccin de los datos que desea
leer en el dispositivo receptor. Use la sintaxis del dispositivo receptor.

Si selecciona un tipo de mensaje de escritura, el tag de origen es el primer elemento del tag que usted
desea enviar al dispositivo receptor.
Nmero de elementos El nmero de elementos que usted lee/escribe depende del tipo de datos que usa. Un elemento se refiere a un
segmento de datos asociados. Por ejemplo, el tag timer1 es un elemento que consiste en una estructura de
control del temporizador.
Elemento de destino Si selecciona un tipo de mensaje de lectura, el elemento de destino es el primer elemento del tag en el
controlador Logix5000 donde desea almacenar los datos que lee desde el dispositivo receptor.

Si selecciona un tipo de mensaje de escritura, el elemento de destino es la direccin del lugar en el


dispositivo receptor donde desea escribir los datos.

Especifique mensajes de lectura y escritura de la tabla de


datos CIP

Los tipos de mensajes de lectura y escritura de la tabla de datos CIP


transfieren datos entre controladores Logix5000.

Seleccione este comando Si desea


Lectura de tabla de datos CIP leer datos de otro controlador.

Los tipos de Source y Destination deben coincidir.


Escritura de tabla de datos CIP escribir datos a otro controlador.

Los tipos de Source y Destination deben coincidir.

160 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Reconfigure un mdulo de E/S

Utilice el mensaje de reconfiguracin de mdulo para enviar la nueva


informacin de configuracin a un mdulo de E/S. Durante la
reconfiguracin:
Los mdulos de entrada continan enviando datos de entrada al
controlador.
Los mdulos de salida continan controlando sus dispositivos
de salida.

Un mensaje de reconfiguracin de mdulo requiere estas propiedades


de configuracin:

En esta propiedad Seleccione


Tipo de mensaje Reconfiguracin de mdulo

Ejemplo: Para reconfigurar un mdulo de E/S:

1. Cambie al nuevo valor el miembro requerido del tag de


configuracin del mdulo.

2. Enve al mdulo un mensaje de reconfiguracin de mdulo.

Cuando reconfigure[5] se establece, establezca la alarma alta en 60 en


el mdulo local en la ranura 4. Seguidamente el mensaje de
reconfiguracin de mdulo enva al mdulo el nuevo valor de alarma.
La instruccin de un impulso impide que el rengln enve mltiples
mensajes al mdulo mientras reconfigure[5] est activado.

Lgica de escalera de rels

Texto estructurado
IF reconfigure[5] AND NOT reconfigure[6]THEN
Local:4:C.Ch0Config.HAlarmLimit := 60;
IF NOT change_Halarm.EN THEN
MSG(change_Halarm);
END_IF;
END_IF;
reconfigure[6] := reconfigure[5];

Publicacin 1756-RM003K-ES-P Julio 2008 161


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Especifique mensajes genricos CIP

Un mensaje genrico CIP realiza una accin especfica en un mdulo


de E/S.

Si desea En esta propiedad Escriba o seleccione


Realizar una prueba de impulso en un Tipo de mensaje CIP genrico
mdulo de salida digital
Tipo de servicio Prueba de impulso
Origen tag_name de tipo INT [5]
Esta matriz contiene:
tag_name[0] mscara de bit de puntos a probar
(pruebe slo un punto a la vez)
tag_name[1] reservado, dejar 0
tag_name[2] anchura de impulso (centenares de
segundos; generalmente 20)
tag_name[3] retardo de cruce por cero para E/S
ControlLogix (centenares de segundos;
generalmente 40)
tag_name[4] verificar el retardo
Destino dejar en blanco
Restablecer los fusibles electrnicos en Tipo de mensaje CIP genrico
un mdulo de salida digital
Tipo de servicio Restablecer fusible
electrnico
Origen tag_name de tipo DINT

Este tag representa una mscara de bit de los puntos en los cuales se
restablecen los fusibles
Destino dejar en blanco
Restablecer diagnsticos enclavados en Tipo de mensaje CIP genrico
un mdulo de entrada digital
Tipo de servicio Restablecer diagnsticos enclavados (I)
Origen tag_name de tipo DINT

Este tag representa una mscara de bit de los puntos en los cuales se
restablecen los diagnsticos.
Restablecer diagnsticos enclavados en Tipo de mensaje CIP genrico
un mdulo de salida digital
Tipo de servicio Restablecer diagnsticos enclavados (O)
Origen tag_name de tipo DINT

Este tag representa una mscara de bit de los puntos en los cuales se
restablecen los diagnsticos.

162 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Si desea En esta propiedad Escriba o seleccione


Desenclavar la alarma de un mdulo de Tipo de mensaje CIP genrico
entrada analgico
Tipo de servicio Seleccione la alarma que desea desenclavar:

Desenclavar todas las alarmas (I)


Desenclavar alarma alta analgica (I)
Desenclavar alarma alta alta analgica (I)
Desenclavar alarma baja analgica (I)
Desenclavar alarma baja baja analgica (I)
Desenclavar alarma de rgimen (I)
Instancia Canal de la alarma que desea desenclavar
Desenclavar la alarma de un mdulo de Tipo de mensaje CIP genrico
salida analgico
Tipo de servicio Seleccione la alarma que desea desenclavar:

Desenclavar todas las alarmas (O)


Desenclavar alarma alta (O)
Desenclavar alarma baja (O)
Desenclavar alarma de rampa (O)
Instancia Canal de la alarma que desea desenclavar

Especifique mensajes PLC-5

Use los tipos de mensajes PLC-5 para comunicarse con los


controladores PLC-5.

Seleccione este comando Si desea


TypedRead PLC5 Leer datos de nmeros enteros de 16 bits, con punto flotante (coma flotante) o de tipo
de cadena y mantener la integridad de los datos. Vea Tipos de datos para mensajes
TypedRead y TypedWrite de PLC5 en la pgina 164.
TypedWrite PLC5 Escribir datos de nmeros enteros de 16 bits, con punto flotante (coma flotante) o de
tipo de cadena y mantener la integridad de los datos. Vea Tipos de datos para mensajes
TypedRead y TypedWrite de PLC5 en la pgina 164
Lectura de rango de palabras Leer un rango continuo de palabras de 16 bits en la memoria PLC-5 independientemente
PLC5 del tipo de datos.

Este comando comienza en la direccin especificada como el elemento de origen y lee


secuencialmente el nmero de palabras de 16 bits solicitado.

Los datos del elemento de origen se almacenan a partir de la direccin especificada


como tag de destino.
Escritura de rango de palabras Escribir un rango continuo de palabras de 16 bits en la memoria Logix5000,
PLC5 independientemente del tipo de datos a la memoria PLC-5.

Este comando comienza en la direccin especificada en el tag de origen y lee


secuencialmente el nmero de palabras de 16 bits solicitado.

Los datos del tag de origen se almacenan a partir de la direccin especificada como el
elemento de destino en el procesador PLC-5.

Publicacin 1756-RM003K-ES-P Julio 2008 163


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

La siguiente tabla muestra los tipos de datos a usar con mensajes


TypedRead de PLC5 y mensajes TypedWrite de PLC5.

Tipos de datos para mensajes TypedRead y TypedWrite de PLC5

Para este tipo de datos Use este tipo de datos Logix5000


PLC-5
B INT
F REAL
N INT
DINT (solamente escriba valores DINT a un controlador
PLC-5 si el valor es 32,768 y 32,767.)
S INT
ST STRING

Los comandos TypedRead y TypedWrite tambin funcionan con los


procesadores SLC 5/03 (OS303 y posteriores), procesadores SLC 5/04
(OS402 y posteriores) y procesadores SLC 5/05.

Los diagramas siguientes muestran la diferencia entre los comandos


de tipo (TypedWrite/TypedRead) y de rango de palabras. El ejemplo
usa comandos de lectura de un procesador PLC-5 a un controlador
Logix5000.
Comando TypedRead Comando de lectura de rango de palabras

palabras de 16 bits en palabras de 32 bits en palabras de 16 bits en palabras de 32 bits en


procesador PLC-5 controlador Logix5000 procesador PLC-5 controlador Logix5000

1 1 1 2 1

2 2 2 4 3

3 3 3

4 4 4

Los comandos TypedWrite/TypedRead mantienen la Los comandos de rango de palabras llenan el tag de destino
estructura y el valor de los datos. contiguamente. La estructura y valor de los datos se cambian
segn el tipo de datos de destino.

164 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Especifique mensajes SLC

Use los tipos de mensajes SLC para comunicarse con los controladores
SLC y MicroLogix. La siguiente tabla muestra los tipos de datos que la
instruccin le permite acceder. La tabla tambin muestra el tipo de
datos Logix5000 correspondiente.

Para este tipo de datos SLC o Use este tipo de datos Logix5000
MicroLogix
F REAL
L (controladores MicroLogix 1200 y 1500) DINT
N INT

Especifique mensajes de transferencia en bloques

Los tipos de mensajes de transferencia en bloques se usan para


comunicarse con mdulos de transferencia en bloques mediante una
red de E/S remotas universales.

Si desea Seleccione este


comando
leer los datos de un mdulo de transferencia en bloques Lectura de transferencia en
bloques
Este tipo de mensaje reemplaza la instruccin BTR.
escribir datos en un mdulo de transferencia en bloques Escritura de transferencia
en bloques
Este tipo de mensaje reemplaza la instruccin BTW.

Para configurar un mensaje de transferencia en bloques, siga estas


pautas:

Los tags de origen (para BTW) y destino (para BTR) deben ser
suficientemente grandes para aceptar los datos solicitados,
excepto por las estructuras MESSAGE, AXIS y MODULE.
Especifique la cantidad de nmeros enteros de 16 bits (INT) que
desea enviar o recibir. Puede especificar de 0 a 64 nmeros
enteros.

Si usted desea que el Especifique


mdulo de transferencia en bloques determine 0 para el nmero de
cuntos enteros de 16 bits enviar (BTR). elementos
controlador enve 64 enteros (BTW).

Publicacin 1756-RM003K-ES-P Julio 2008 165


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Especifique mensajes PLC-3

Los tipos de mensaje PLC-3 han sido diseados para los procesadores
PLC-3.

Seleccione este comando Si desea


TypedRead PLC3 leer nmeros enteros o datos de tipo REAL.

Para enteros, este comando lee enteros de 16 bits del procesador PLC-3 y los almacena
en matrices de datos SINT, INT o DINT en el controlador Logix5000, y mantiene la
integridad de los datos.

Este comando tambin lee datos de punto flotante (coma flotante) del PLC-3 y los
almacena en un tag de tipo de datos REAL en el controlador Logix5000.
TypedWrite PLC3 escribir nmeros enteros o datos tipo REAL.

Este comando escribe datos SINT o INT en el archivo de nmeros enteros PLC-3, y
mantiene la integridad de los datos. Usted puede escribir datos DINT siempre y cuando
estn comprendidos dentro de un tipo de datos INT (32,768 32,767).

Este comando tambin escribe datos de tipo REAL del controlador Logix5000 en un
archivo de valores con punto flotante (coma flotante) PLC-3.
Lectura de rango de palabras leer un rango continuo de palabras de 16 bits en la memoria PLC-3 independientemente
PLC3 del tipo de datos.

Este comando comienza en la direccin especificada en el elemento de origen y lee


secuencialmente el nmero de palabras de 16 bits solicitado.

Los datos del elemento de origen se almacenan a partir de la direccin especificada


como tag de destino.
Escritura de rango de palabras escribir un rango continuo de palabras de 16 bits de la memoria Logix5000
PLC3 independientemente del tipo de datos a la memoria PLC-3.

Este comando comienza en la direccin especificada en el tag de origen y lee


secuencialmente el nmero de palabras de 16 bits solicitado.

Los datos del tag de origen se almacenan a partir de la direccin especificada como el
elemento de destino en el procesador PLC-3.

166 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Los diagramas siguientes muestran la diferencia entre los comandos


TypedWrite/TypedRead y de rango de palabras. El ejemplo usa los
comandos de lectura de un procesador PLC-3 a un controlador
Logix5000.

Comando TypedRead Comando de lectura de rango de palabras

palabras de 16 bits en palabras de 32 bits en el palabras de 16 bits en palabras de 32 bits en el


el procesador PLC-3 controlador Logix5000 el procesador PLC-3 controlador Logix5000

1 1 1 2 1

2 2 2 4 3

3 3 3

4 4 4

Los comandos TypedWrite/TypedRead mantienen la Los comandos de rango de palabras llenan el tag de destino
estructura y el valor de los datos. contiguamente. La estructura y el valor de los datos se
cambian segn el tipo de datos de destino.

Especifique mensajes PLC-2

Los tipos de mensaje PLC-2 han sido diseados para los procesadores
PLC-2.

Seleccione este comando Si desea


Lectura no protegida PLC2 leer palabras de 16 bits de cualquier rea de la tabla de datos PLC-2 o el archivo de
compatibilidad PLC-2 de otro procesador.
Escritura no protegida PLC2 escribir palabras de 16 bits en cualquier rea de la tabla de datos PLC-2 o el archivo de
compatibilidad PLC-2 de otro procesador.

La transferencia de mensaje usa palabras de 16 bits; por lo tanto,


asegrese de que el tag Logix5000 almacena apropiadamente los
datos transferidos (generalmente como una matriz INT).

Publicacin 1756-RM003K-ES-P Julio 2008 167


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Ejemplos de configuracin Los ejemplos siguientes muestran tags de origen y destino, as como
elementos para diferentes combinaciones de controladores.
MSG
Para las instrucciones MSG que provienen de un controlador
Logix5000 y escriben en otro procesador:

Ruta de mensaje Ejemplo de origen y destino


Logix5000 Logix5000 tag de origen array_1[0]
tag de destino array_2[0]
Puede usar un tag de alias para el tag de origen (en el controlador Logix5000 de
origen).

No puede usar un tag de alias para el tag de destino. El destino debe ser un tag de
base.
Logix5000 PLC-5 tag de origen array_1[0]
elemento de destino N7:10
Logix5000 SLC
Puede usar un tag de alias para el tag de origen (en el controlador Logix5000 de
origen).
Logix5000 PLC-2 tag de origen array_1[0]
elemento de destino 010

Para las instrucciones MSG que provienen de un controlador


Logix5000 y leen de otro controlador:

Ruta de mensaje Ejemplo de origen y destino


Logix5000 Logix5000 tag de origen array_1[0]
tag de destino array_2[0]
No puede usar un tag de alias para el tag de origen. El origen debe ser un tag de base.

Puede usar un tag de alias para el tag de destino (en el controlador Logix5000 de
origen).
Logix5000 PLC-5 elemento de origen N7:10
tag de destino array_1[0]
Logix5000 SLC
Puede usar un tag de alias para el tag de destino (en el controlador Logix5000 de
origen).
Logix5000 PLC-2 elemento de origen 010
tag de destino array_1[0]

168 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Especifique los detalles Para configurar una instruccin MSG, usted especifica estos detalles
en la ficha Communication.
de comunicacin

Especifique una ruta

Especifique un mtodo de comunicacin


o una direccin de mdulo

Seleccione una opcin de cach

Especifique una ruta

La ruta de acceso muestra la ruta que sigue el mensaje para llegar al


destino. La misma utiliza ya sea los nombres de la configuracin de
E/S del controlador, los nmeros que usted escribe, o ambos.

Si Entonces
La configuracin de E/S del controlador Use el botn Browse para seleccionar el mdulo.
tiene el mdulo que obtiene el mensaje.
La configuracin de E/S del controlador 1. Use el botn Browse para seleccionar el mdulo de comunicacin local.
tiene slo el mdulo de comunicacin local. 2. Escriba el resto de la ruta.
La configuracin de E/S del controlador no Escriba la ruta.
tiene ninguno de los mdulos que necesita
para el mensaje.

Publicacin 1756-RM003K-ES-P Julio 2008 169


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Ejemplo
La configuracin de E/S del controlador
tiene el mdulo que obtiene el mensaje.
Haga clic en el botn Browse y seleccione el mdulo.

La configuracin de E/S del controlador


tiene slo el mdulo de comunicacin local.
Vaya al mdulo de comunicacin local.
Vaya al puerto EtherNet/IP.
a la direccin de 10.10.10.10.
Vaya a travs del backplane
al mdulo en la ranura 0.

La configuracin de E/S del controlador no


tiene ninguno de los mdulos que necesita
para el mensaje. Vaya a travs del backplane
al mdulo de comunicacin local en la ranura 1
Vaya al puerto ControlNet.
al nodo 4
Vaya a travs del backplane
al mdulo en la ranura 0.

Para escribir una ruta, use este formato:

port, next_address, port, next_address,

170 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Donde Es
Para esta red Tipo
port backplane 1
DF1 (canal 0 serie, serie) 2
ControlNet
EtherNet/IP
DH+ canal A
DH+ canal B 3
DF1 canal 1
(canal 1 serie)
next_address backplane nmero de ranura del mdulo
DF1 (serie) direccin de estacin (0-254)
ControlNet nmero de nodo (1-99 decimal)
DH+ 8# seguido del nmero de nodo (1-77 octal)

Por ejemplo, para especificar la direccin de nodo octal de 37, escriba 8#37.
EtherNet/IP Usted puede especificar un mdulo en una red EtherNet/IP usando cualquiera de
estos formatos:

Direccin IP (por ejemplo, 10.10.10.10)

Direccin IP:Puerto (por ejemplo, 10.10.10.10:24)

Nombre DNS (por ejemplo, tanques)

Nombre DNS:Puerto (por ejemplo, tanques:24)

Publicacin 1756-RM003K-ES-P Julio 2008 171


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Para transferencia en bloques

Para mensajes de transferencia en bloques, aada los siguientes


mdulos a la configuracin de E/S del controlador:

Para transferencias en Aada estos mdulos a la configuracin de E/S


bloques mediante esta red
ControlNet mdulo de comunicacin local (por ejemplo, el mdulo 1756-CNB)
mdulo adaptador remoto (por ejemplo, el mdulo 1771-ACN)
E/S remotas universales mdulo de comunicacin local (por ejemplo, el mdulo 1756-DHRIO)
un mdulo adaptador remoto (por ejemplo, el mdulo 1771-ASB) para cada rack o porcin de un rack
en el chasis
mdulo de transferencia en bloques (opcional)

Especifique un mtodo de comunicacin o una direccin de


mdulo

Use la tabla siguiente para seleccionar un mtodo de comunicacin o


direccin de mdulo para el mensaje.

Si el dispositivo de destino Seleccione Y especifique


es un
Controlador Logix5000 CIP no se requieren otras especificaciones
Controlador PLC-5 por una red
EtherNet/IP
Controlador PLC-5 por una red
ControlNet
Controlador SLC 5/05
Controlador PLC-5 por una red DH+ Canal: Canal A o B del mdulo 1756-DHRIO que est
DH+ conectado a la red DH+
Controlador SLC por una red Vnculo de origen: La identificacin de vnculo asignada al
DH+ backplane del controlador en la tabla de
encaminamiento del mdulo 1756-DHRIO.
(El nodo de origen en la tabla de
encaminamiento es automticamente el nmero
de ranura del controlador).
Procesador PLC-3 Vnculo de destino La identificacin de vnculo de la red DH+
remota donde reside el dispositivo receptor
Procesador PLC-2 Nodo de destino: Direccin de estacin del dispositivo receptor, en
octal
Si slo hay un vnculo DH+ y usted no us el software RSLinx para
configurar el mdulo DH/RIO para vnculos remotos, especifique 0 tanto
para el vnculo de origen como para el vnculo de destino.

172 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Si el dispositivo de destino Seleccione Y especifique


es un
Aplicacin en una estacin de CIP con ID de origen Vnculo de origen: ID remoto del tema en el software RSLinx
trabajo que recibe un mensaje
Vnculo de destino: ID de vnculo virtual configurado en RSLinx
no solicitado encaminado por
(0-65535)
una red Ethernet/IP o ControlNet
a travs de RSLinx. (Esto permite que la Nodo de destino: ID de destino (0-77 octal) proporcionado por la
aplicacin reciba datos de aplicacin a RSLinx. Para el tema DDE en
un controlador) RSLinx, use 77.
El nmero de ranura del controlador ControlLogix se usa como nodo de
origen.
Mdulo de transferencia en RIO Canal: Canal A o B del mdulo 1756-DHRIO que est
bloques mediante una red de conectado a la red RIO
E/S remotas universales
Rack Nmero de rack (octal) del mdulo
Grupo Nmero de grupo del mdulo
Ranura Nmero de ranura donde est el mdulo
Mdulo de transferencia en ControlNet Ranura Nmero de ranura donde est el mdulo
bloques mediante una red
ControlNet

Seleccione una opcin de cach

Dependiendo de cmo usted configure una instruccin MSG, puede


usar una conexin para enviar o recibir datos.

Este tipo de mensaje Y este mtodo de comunicacin Usa una conexin


Lectura o escritura de datos CIP
PLC2, PLC3, PLC5 o SLC (todos los tipos) CIP
CIP con ID de origen
DH+
CIP genrico su opcin (1)
Lectura o escritura de transferencia en
bloques
(1)
Puede conectar mensajes genricos CIP. Pero para la mayora de las aplicaciones, recomendamos que deje no
conectados los mensajes genricos CIP.

Si una instruccin MSG usa una conexin, usted tiene la opcin de


dejar la conexin abierta (en cach) o cerrar la conexin cuando haya
acabado de transmitir el mensaje.

Si usted Entonces
Almacena en cach la La conexin se mantiene abierta una vez finalizada la
conexin instruccin MSG. As se optimiza el tiempo de ejecucin.
El abrir una conexin cada vez que se ejecuta el mensaje
aumenta el tiempo de ejecucin.
No almacena en cach La conexin se cierra una vez finalizada la instruccin MSG.
la conexin As se libera la conexin para otros usos.

Publicacin 1756-RM003K-ES-P Julio 2008 173


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

El controlador tiene los siguientes lmites en el nmero de conexiones


que usted puede poner en cach:

Si tiene esta revisin de Puede almacenar en cach


software y firmware
11.x o anterior mensajes de transferencia en bloques para hasta
16 conexiones
otros tipos de mensajes para hasta 16 conexiones
12.x o posterior hasta 32 conexiones

Si varios mensajes van al mismo dispositivo, es posible que los


mensajes puedan compartir una conexin.

Si las instrucciones MSG son para Y Entonces


diferentes dispositivos Cada instruccin MSG usa 1 conexin.
el mismo dispositivo estn habilitadas simultneamente Cada instruccin MSG usa 1 conexin.
NO estn habilitadas simultneamente Las instrucciones MSG comparten la misma
conexin. (es decir, juntas cuentan como
1 conexin).

EJEMPLO Comparta una conexin


Si el controlador alterna entre enviar un mensaje de lectura de
transferencia en bloque y un mensaje de escritura de
transferencia en bloques al mismo mdulo, ambos mensajes se
cuentan como 1 conexin. Almacenar en cach ambos
mensajes se cuenta como 1 en la lista de cach.

174 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Pautas

Cuando planifique y programe sus instrucciones MSG, siga estas


pautas:

Pauta Detalles
1. Para cada instruccin MSG, cree un tag de Cada instruccin MSG requiere su propio tag de control.
control.
Tipo de datos = MESSAGE
Alcance = controlador
El tag no puede ser parte de una matriz ni de un tipo de datos definido por el usuario.
2. Mantenga los datos de origen y/o destino al Una instruccin MSG puede acceder slo a tags que estn en la carpeta de tags del
alcance del controlador. controlador (alcance del controlador).
3. Si su MSG es a un dispositivo que usa Si su mensaje es a un dispositivo que usa enteros de 16 bits, tal como un controlador
enteros de 16 bits, use un bfer de INT en el PLC-5 o SLC 500, y ste transfiere enteros (no valores REAL), use un bfer de INT en
MSG y DINT en todo el proyecto. el mensaje y DINT en todo el proyecto.
As se aumenta la eficiencia de su proyecto porque los controladores Logix se ejecutan
ms eficientemente y usan menos memoria cuando trabajan con enteros de 32 bits
(DINT).
Para convertir entre INT y DINT, consulte Logix5000 Controllers Common Procedures,
publicacin 1756-PM001.
4. Almacene en cach los MSG conectados Almacene en cach la conexin para dichas instrucciones MSG que se ejecutan con
que se ejecutan con mayor frecuencia. ms frecuencia, hasta el nmero mximo permitido por la revisin del controlador.
Esto optimiza el tiempo de ejecucin porque el controlador no tiene que abrir una
conexin cada vez que se ejecuta el mensaje.
5. Si desea habilitar ms de 16 MSG Si usted habilita ms de 16 MSG a la vez, algunas instrucciones MSG pueden
simultneamente, use el mismo tipo de experimentar retardos al ingresar en la cola. Para garantizar la ejecucin de cada
estrategia de administracin. mensaje, use una de estas opciones.
Habilite cada mensaje en secuencia.
Habilite los mensajes en grupos.
Programe un mensaje para comunicarse con varios dispositivos. Para obtener ms
informacin, consulte Logix5000 Controllers Common Procedures, publicacin
1756-PM001.
Programe la lgica para coordinar la ejecucin de mensajes. Para obtener ms
informacin, consulte Logix5000 Controllers Common Procedures, publicacin
1756-PM001.
6. Mantenga el nmero de MSG no El controlador puede tener 10 - 40 bferes no conectados. El nmero predeterminado
conectados y no almacenados en cach en es 10.
un valor menor que el nmero de bferes no
Si todos los bferes no conectados se usan cuando una instruccin deja la cola de
conectados.
mensajes, se produce un error en la instruccin y no transfiere los datos.
Usted puede aumentar el nmero de bferes no conectados (40 mx.), pero contine
siguiendo las pautas 5.
Para aumentar el nmero de bferes no conectados, consulte Logix5000 Controllers
Common Procedures, publicacin 1756-PM001.

Publicacin 1756-RM003K-ES-P Julio 2008 175


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Obtener valor del sistema Las instrucciones GSV/SSV reciben y envan datos de sistema del
controlador que se almacenan en los objetos.
(GSV) y establecer valor del
sistema (SSV)
Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Class name nombre nombre del objeto
Instance name nombre nombre de objeto especfico cuando el objeto requiere un
nombre
Attribute Name nombre atributo del objeto

el tipo de datos depende del atributo que usted selecciona


Destination (GSV) SINT tag destino de los datos del atributo

INT

DINT

REAL

estructura
Source (SSV) SINT tag el tag que contiene los datos que desea copiar al atributo

INT

DINT

REAL

estructura

Texto estructurado
GSV(ClassName,InstanceName,AttributeName,Dest);
SSV(ClassName,InstanceName,AttributeName,Source);

Los operandos son iguales que para las instrucciones GSV y SSV de
lgica de escalera de rels.

176 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Descripcin: Las instrucciones GSV/SSV reciben y envan datos de sistema del


controlador que se almacenan en objetos. El controlador almacena
datos del sistema en objetos. No hay un archivo de estado,
a diferencia del procesador PLC-5.

Cuando se habilita, la instruccin GSV recupera la informacin


especificada y la coloca en el destino. Cuando se habilita, la
instruccin SSV establece el atributo especificado con datos del
origen.

Cuando se introduce una instruccin GSV o SSV, el software de


programacin muestra las clases de objetos vlidas, nombres de
objetos y nombres de atributos para cada instruccin. Para la
instruccin GSV, usted puede obtener valores para todos los atributos
disponibles. Para la instruccin SSV, el software muestra slo los
atributos que usted puede establecer (SSV).

ATENCIN
Utilice las instrucciones GSV y SSV con precaucin. Los cambios en los objetos
pueden provocar una operacin inesperada del controlador o lesiones al personal.
Usted debe probar y confirmar que las instrucciones no cambien datos que usted no
desea que cambien.
Las instrucciones GSV y SSV escriben o leen ms all de un miembro hacia otros
miembros de un tag. Si el tag es demasiado pequeo, las instrucciones no escriben
ni leen los datos. En lugar de ello, registran un fallo menor.
Ejemplo 1

Member_A es demasiado pequeo para el atributo. Por lo tanto, la instruccin GSV


escribe el ltimo valor a Member_B.
Ejemplo 2

My_Tag es demasiado pequeo para el atributo. Por lo tanto, la instruccin GSV se


detiene y registra un fallo menor.

La seccin de objetos GSV/SSV muestra los atributos de cada objeto


y sus tipos de datos asociados. Por ejemplo, el atributo
MajorFaultRecord del objeto Program necesita un tipo de datos
DINT[11].

Publicacin 1756-RM003K-ES-P Julio 2008 177


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:

Ocurrir un fallo menor si Tipo de fallo Cdigo de fallo


direccin de objeto no vlida 4 5
se especific un objeto que no es compatible con 4 6
GSV/SSV
atributo no vlido 4 6
no se proporcion suficiente informacin para 4 6
una instruccin SSV
el destino GSV no es suficientemente grande 4 7
para retener los datos solicitados

Ejecucin:
Condicin Accin de lgica de escalera de rels Accin de texto estructurado
preescn La condicin de salida de rengln se establece como Ninguna
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
la instruccin se ejecuta Obtenga o establezca el valor especificado. Obtenga o establezca el valor especificado.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

178 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Objetos GSV/SSV Cuando introduce una instruccin GSV/SSV, usted especifica el objeto
y su atributo al cual desea tener acceso. En ciertos casos, existir ms
de una instancia del mismo tipo de objeto, por lo que tambin puede
ser necesario especificar el nombre del objeto. Por ejemplo, puede
haber varias tareas en su aplicacin. Cada tarea tiene su propio objeto
TASK al cual usted accede mediante el nombre de la tarea.

ATENCIN Para la instruccin GSV, slo el tamao especificado de datos


se copia al destino. Por ejemplo, si el atributo est especificado
como un SINT y el destino es un DINT, slo los 8 bits inferiores
del destino DINT se actualizan, dejando los 24 bits sin ningn
cambio.

Se puede obtener acceso a los siguientes objetos:

Para obtener informacin acerca de Vea esta pgina o publicacin


este objeto
AXIS ControlLogix Motion Module Setup and
Configuration Manual, publicacin
1756-UM006
CONTROLLER 180
CONTROLLERDEVICE 181
CST 183
DF1 184
FAULTLOG 187
MESSAGE 188
MODULE 190
MOTIONGROUP 191
PROGRAM 192
ROUTINE 193
SERIALPORT 193
TASK 195
WALLCLOCKTIME 197

Publicacin 1756-RM003K-ES-P Julio 2008 179


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Acceso al objeto CONTROLLER

El objeto CONTROLLER proporciona informacin de estado acerca de


la ejecucin de un controlador.

Atributo Tipo de datos Instruccin Descripcin


TimeSlice INT GSV El porcentaje de la CPU disponible que se asigna a las
comunicaciones.
SSV
Los valores vlidos son 10-90. Este valor no puede cambiarse
cuando el interruptor de llave del controlador se encuentra en
la posicin de marcha.
ControllerLogTotalEntryCou DINT SSV Nmero de entradas de registro del controlador desde la
nt ltima actualizacin de firmware.
GSV
El nmero se restablecer si la RAM entra en un mal estado.

El nmero tiene como lmite el DINT ms alto.


ControllerLogExecutionMod DINT SSV Nmero de entradas de registro del controlador que se origin
ificationCount a partir de un cambio de propiedades de programa/tarea, una
GSV edicin en lnea o un cambio del segmento de tiempo del
controlador. Tambin puede configurarse para incluir entradas
de registro que se originan a partir de forzados.

El nmero se restablecer si la RAM entra en un mal estado.

El nmero no tiene como lmite el mayor DINT, y puede ocurrir


un salto entre los valores extremos (rollover).
ControllerLogUnsavedEntry DINT GSV Nmero de entradas en el registro del controlador que todava
Count tienen que almacenarse en el medio fsico extrable.

Rango de 0 al nmero mximo de entradas.


ControllerLogAutoWrite BOOL MSG Indicador usado para determinar si la escritura automtica del
registro del controlador al medio fsico extrable est
habilitada.

0 = la escritura automtica est inhabilitada (fallo).

1 = el registro del controlador tratar de escribir al medio fsico


extrable cuando el registro est al 80% de su capacidad.
ExecutionCountConfigureM DINT MSG Matriz de bits usada para determinar qu har que se
ask incremente el conteo de modificacin de ejecucin.

0 = predeterminado (todo excepto los forzados).

1 = forzados incluidos (todo adems de los forzados).

180 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Acceso al objeto CONTROLLERDEVICE

El objeto CONTROLLERDEVICE identifica el hardware fsico del


controlador.

Atributo Tipo de datos Instruccin Descripcin


DeviceName SINT[33] GSV La cadena ASCII que identifica el nmero de catlogo del
controlador y la tarjeta de memoria.

El primer byte contiene un conteo del nmero de caracteres


ASCII retornados en la cadena de matriz.
ProductCode INT GSV Identifica el tipo de controlador.

Controlador Logix Cdigo de producto


CompactLogix5320 43
CompactLogix5330 44
CompactLogix5335E 65
ControlLogix5550 3
ControlLogix5553 50
ControlLogix5555 51
ControlLogix5561 54
ControlLogix5562 55
ControlLogix5563 56
DriveLogix5720 48
FlexLogix5433 41
FlexLogix5434 42
SoftLogix5860 15

ProductRev INT GSV Identifica la revisin del producto actual. La visualizacin debe
ser hexadecimal.

El byte inferior contiene la revisin mayor; el byte superior


contiene la revisin menor.
SerialNumber DINT GSV Nmero de serie del dispositivo.

El nmero de serie se asigna cuando se construye el


dispositivo.

Publicacin 1756-RM003K-ES-P Julio 2008 181


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Atributo Tipo de datos Instruccin Descripcin


Status INT GSV Bits que identifican el estado:

Los bits 3-0 estn reservados

Bits de estado de dispositivo

Bits 7-4: Significado:


0000 reservado

0001 actualizacin de la memoria flash en curso

0010 reservado

0011 reservado

0100 la memoria flash est defectuosa

0101 con fallo

0110 marcha

0111 programa

Bits de estado de fallo

Bits 11-8: Significado:


0001 fallo menor recuperable

0010 fallo menor no recuperable

0100 fallo mayor recuperable

1000 fallo mayor no recuperable

Bits de estado especficos para Logix5000

Bits 13-12: Significado:


01 interruptor de llave en marcha

10 interruptor de llave en programa

11 interruptor de llave en modo remoto

Bits 15-14 Significado

01 el controlador est cambiando de modos

10 modo de depuracin si el controlador est


en el modo de marcha
Type INT GSV Identifica el dispositivo como controlador.

Controlador = 14
Vendor INT GSV Identifica el suministrador del dispositivo.

Allen-Bradley = 0001

182 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Acceso al objeto CST

El objeto CST (hora coordinada del sistema) proporciona la hora


coordinada del sistema para los dispositivos en un chasis.

Atributo Tipo de datos Instruccin Descripcin


CurrentStatus INT GSV El estado actual de la hora coordinada del sistema. Los bits
identifican:
Bit: Significado
0 el hardware del temporizador entr en fallo: el hardware
del temporizador interno del dispositivo est en un estado
de fallo
1 rampa habilitada: el valor actual de los 16+ bits inferiores
del temporizador aumentan en rampa al valor solicitado
en lugar de quedarse en el valor inferior. El mtodo de
sincronizacin por puntos para la red especfica manipula
estos bits.
2 maestro de hora del sistema: el objeto CST es la fuente de
hora del maestro en el sistema ControlLogix
3 sincronizado: el objeto de CST maestro sincroniza el
CurrentValue de 64 bits del objeto CST mediante una
actualizacin de hora del sistema
4 maestro de red local: el objeto CST es la fuente de hora
del maestro de la red local
5 en el modo de relevo: el objeto CST acta en un modo de
relevo de tiempo
6 se detect un maestro duplicado: se ha detectado un
maestro de hora duplicado en la red local. Este bit siempre
es 0 en los nodos dependientes de la hora.
7 no se usa
8-9 00 = nodo dependiente de la hora
01 = nodo maestro de hora
10 = nodo de rel de hora
11 = no se usa
10-15 no se usa
CurrentValue DINT[2] GSV Valor actual del temporizador. DINT[0] contiene los 32 bits inferiores;
DINT[1] contiene los 32 bits superiores.

La fuente del temporizador se ajusta para coincidir con el valor


suministrado en los servicios de actualizacin y de la sincronizacin
de red de comunicacin local. El ajuste representa un aumento en
rampa hasta el valor solicitado o un establecimiento inmediato en el
valor solicitado, segn se reporte en el atributo CurrentStatus.

Publicacin 1756-RM003K-ES-P Julio 2008 183


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Acceso al objeto DF1

El objeto DF1 proporciona una interface al driver de comunicacin


que se puede configurar para el puerto serie.

Atributo Tipo de Instruccin Descripcin


datos
ACKTimeout DINT GSV La cantidad de tiempo que se debe esperar por la confirmacin de
una transmisin de mensaje (punto a punto y maestro solamente).

El valor vlido es 0-32,767. Retardo en conteos de perodos de


20 ms. El valor predeterminado es 50 (1 segundo).
DiagnosticCounters INT[19] GSV Matriz de contadores de diagnstico para el driver de
comunicacin DF1.
offset de palabra DF1 punto a punto DF1 esclavo maestro
0 firma (0x0043) firma (0x0042) firma (0x0044)
1 bits de mdem bits de mdem bits de mdem
2 paquetes enviados paquetes enviados paquetes enviados
3 paquetes recibidos paquetes recibidos paquetes recibidos
4 paquetes no entregados paquetes no entregados paquetes no entregados
5 no se usa mensajes reenviados mensajes reenviados
6 NAK recibidos NAK recibidos no se usa
7 ENQ enviados paquetes de encuesta recibidos no se usa
8 paquetes deficientes con NAK paquetes deficientes sin ACK paquetes deficientes sin ACK
9 sin memoria enviado NAK sin memoria sin ACK no se usa
10 recibidos paquetes duplicados recibidos paquetes duplicados recibidos paquetes duplicados
11 recibidos caracteres deficientes no se usa no se usa
12 conteo de recuperaciones DCD conteo de recuperaciones DCD conteo de recuperaciones DCD
13 conteo de mdem perdido conteo de mdem perdido conteo de mdem perdido
14 no se usa no se usa mximo de tiempo de escn prioritario
15 no se usa no se usa ltimo tiempo de escn prioritario
16 no se usa no se usa mximo de tiempo de escn normal
17 no se usa no se usa ltimo tiempo de escn normal
18 ENQ enviados no se usa no se usa
DuplicateDetection SINT GSV Habilita la deteccin de mensajes duplicados.

Valor: Significado:
0 deteccin de mensajes duplicados inhabilitada
no cero deteccin de mensajes duplicados inhabilitada
EmbeddedResponseEnable SINT GSV Habilita la funcionalidad de respuesta incorporada (punto a punto
solamente).

Valor: Significado:
0 se inicia solamente despus de que se recibe uno
(opcin predeterminada)
1 habilitado incondicionalmente
ENQTransmitLimit SINT GSV El nmero de consultas (ENQ) que se envan despus del tiempo
de espera de ACK (punto a punto solamente).

Los valores vlidos son 0-127. El ajuste predeterminado es 3.


EOTSuppression SINT GSV Habilita la supresin de transmisiones de EOT como respuesta a
los paquetes de encuesta (esclavo solamente).

Valor: Significado:
0 supresin de EOT inhabilitada
no cero supresin de EOT habilitada

184 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Atributo Tipo de Instruccin Descripcin


datos
ErrorDetection SINT GSV Especifica el esquema de deteccin de errores.

Valor: Significado:
0 BCC (predeterminado)
1 CRC
MasterMessageTransmit SINT GSV Valor actual de la transmisin de mensaje del maestro (maestro
solamente).

Valor: Significado:
0 entre encuestas de estacin
1 en secuencia de encuesta (en lugar del nmero de
estacin del maestro)

El valor predeterminado es 0.
NAKReceiveLimit SINT GSV El nmero de NAK recibidos como respuesta a un mensaje antes
de detener la transmisin (comunicacin punto a punto
solamente).

Los valores vlidos son 0-127. El valor predeterminado es 3.


NormalPollGroupSize INT GSV El nmero de estaciones que se encuestan en la matriz de nodos
de encuesta normal despus de encuestarse todas las estaciones
en la matriz de nodos de encuesta prioritaria (maestro solamente).

Los valores vlidos son 0-255. El valor predeterminado es 0.


PollingMode SINT GSV Modo de encuesta actual (maestro solamente).

Valor: Significado:
0 basado en mensajes; no permite a los esclavos
iniciar mensajes
1 basado en mensajes, pero permite a los esclavos
iniciar mensajes (predeterminado)
2 estndar, transferencia de un solo mensaje por
escn de nodo
3 estndar, transferencia de varios mensajes por
escn de nodo

La configuracin predeterminada es 1.
ReplyMessageWait DINT GSV El tiempo (actuando como maestro) que se debe esperar despus
de recibirse un ACK antes de encuestarse el esclavo en busca de
una respuesta (maestro solamente).

Valores vlidos de 0-65,535. Retardo en conteos de perodos de


20 ms. La configuracin predeterminada es 5 perodos (100 ms).
StationAddress INT GSV Direccin de estacin actual del puerto serie.

Valores vlidos de 0-254. El valor predeterminado es 0.


SlavePollTimeout DINT GSV La cantidad de tiempo en ms que espera el esclavo hasta que el
maestro realiza una encuesta antes de que el esclavo indique que
no puede transmitir debido a la inactividad del maestro (esclavo
solamente).

Valores vlidos de 0-32,767. Retardo en conteos de perodos de


20 ms. La configuracin predeterminada es 3000 perodos
(1 minuto).

Publicacin 1756-RM003K-ES-P Julio 2008 185


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Atributo Tipo de Instruccin Descripcin


datos
TransmitRetries SINT GSV El nmero de veces que se puede volver a enviar un mensaje sin
obtenerse una confirmacin (maestro y esclavo solamente).

Valores vlidos de 0-127. El valor predeterminado es 3.


PendingACKTimeout DINT SSV Valor pendiente para el atributo ACKTimeout.
PendingDuplicateDetection SINT SSV Valor pendiente para el atributo DuplicateDetection.
PendingEmbeddedResponse SINT SSV Valor pendiente para el atributo EmbeddedResponse.
Enable
PendingENQTransmitLimit SINT SSV Valor pendiente para el atributo ENQTransmitLimit.
PendingEOTSuppression SINT SSV Valor pendiente para el atributo EOTSuppression.
PendingErrorDetection SINT SSV Valor pendiente para el atributo ErrorDetection.
PendingNormalPollGroupSize INT SSV Valor pendiente para el atributo NormalPollGroupSize.
PendingMasterMessage SINT SSV Valor pendiente para el atributo MasterMessageTransmit.
Transmit
PendingNAKReceiveLimit SINT SSV Valor pendiente para el atributo NAKReceiveLimit.
PendingPollingMode SINT SSV Valor pendiente para el atributo PollingMode.
PendingReplyMessageWait DINT SSV Valor pendiente para el atributo ReplyMessageWait.
PendingStationAddress INT SSV Valor pendiente para el atributo StationAddress.
PendingSlavePollTimeout DINT SSV Valor pendiente para el atributo SlavePollTimeout.
PendingTransmitRetries SINT SSV Valor pendiente para el atributo TransmitRetries.

Para aplicar los valores en cualquiera de los atributos DF1 pendientes:

1. Use una instruccin SSV para establecer el valor del atributo


pendiente.

Usted puede establecer tantos atributos pendientes como desee,


usando una instruccin SSV por cada atributo pendiente.

2. Use una instruccin MSG para aplicar el valor. La instruccin


MSG aplica cada atributo pendiente establecido. Configure la
instruccin MSG como:

Ficha MSG Configuration Campo Valor


Configuracin Message Type CIP genrico
Service Code 0d hex
Tipo de objeto a2
Object ID 1
Object Attribute dejar en blanco
Source dejar en blanco
Number of Elements 0
Destination dejar en blanco
Comunicacin Path ruta de comunicacin consigo
mismo (1,s donde s = nmero
de ranura del controlador)

186 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Acceso al objeto FAULTLOG

El objeto FAULTLOG proporciona informacin de fallo acerca del


controlador.

Atributo Tipo de datos Instruccin Descripcin


MajorEvents INT GSV Cuntos fallos mayores han ocurrido desde la ltima vez que
se restableci este contador.
SSV
MinorEvents INT GSV Cuntos fallos menores han ocurrido desde la ltima vez que
se restableci este contador.
SSV
MajorFaultBits DINT GSV Los bits individuales indican la razn del fallo mayor actual.

SSV Bit: Significado:


1 corte de energa
3 E/S
4 ejecucin de instruccin (programa)
5 administrador de fallos
6 temporizador de control (watchdog)
7 pila
8 cambio de modo
11 control de movimiento
MinorFaultBits DINT GSV Los bits individuales indican la razn del fallo menor actual.

SSV Bit: Significado:


4 ejecucin de instruccin (programa)
6 temporizador de control (watchdog)
9 puerto serie
10 batera

Publicacin 1756-RM003K-ES-P Julio 2008 187


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Acceso al objeto MESSAGE

Usted puede acceder al objeto MESSAGE a travs de las instrucciones


GSV/SSV. Especifique el nombre del tag de mensaje para determinar
qu objeto MESSAGE desea. El objeto MESSAGE proporciona una
interface para configurar y activar las comunicaciones entre
dispositivos similares. Este objeto reemplaza el tipo de datos MG del
procesador PLC-5.

Atributo Tipo de datos Instruccin Descripcin


ConnectionPath SINT[130] GSV Datos para configurar la ruta de conexin. Los dos primeros bytes
(byte inferior y byte superior) representan la longitud en bytes de la
SSV ruta de conexin.
ConnectionRate DINT GSV Rgimen de paquetes solicitado de la conexin.

SSV
MessageType SINT GSV Especifica el tipo de mensaje.

SSV Valor: Significado:


0 no inicializado
Port SINT GSV Indica el puerto por el que se debe enviar el mensaje.

SSV Valor: Significado:


1 backplane
2 puerto serie
TimeoutMultiplier SINT GSV Determina cundo una conexin se debe considerar como que ha
sobrepasado el tiempo de espera y se ha cerrado.
SSV
Valor: Significado:
0 la conexin sobrepasar el tiempo de espera en un
lapso igual a 4 veces el rgimen de actualizacin
(predeterminado)
1 la conexin sobrepasar el tiempo de espera en un
lapso igual a 8 veces el rgimen de actualizacin
2 la conexin sobrepasar el tiempo de espera en un
lapso igual a 16 veces el rgimen de actualizacin
UnconnectedTimeout DINT GSV El tiempo de espera, en microsegundos, para todos los
mensajes no conectados. La opcin predeterminada es
SSV 30,000,000 microsegundos (30 segundos).

Siga los pasos que aparecen a continuacin para cambiar un atributo


MESSAGE:

1. Use una instruccin GSV para obtener el atributo MessageType


y gurdelo en un tag.

2. Use una instruccin SSV para establecer MessageType en 0.

3. Use una instruccin SSV para establecer el atributo MESSAGE


que desea cambiar.

4. Use una instruccin SSV para establecer el atributo MessageType


nuevamente al valor original que usted obtuvo en el paso 1.

188 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Ejemplo: El ejemplo siguiente cambia el atributo ConnectionPath de modo que


el mensaje se enve a un controlador diferente. Cuando msg_path est
activado, establece la ruta del mensaje msg_1 en el valor de
msg_1_path. Esto hace que se enve el mensaje a un controlador
diferente.

Donde Es
msg_1 mensaje cuyo atributo usted desea cambiar
msg_1_type tag que almacena el valor del atributo MessageType
tag_a tag que almacena un 0.
msg_1_path tag de matriz que almacena la nueva ruta de conexin para el
mensaje

Lgica de escalera de rels

msg_path
msg_path GSV
GSV SSV
SSV
0 Get
GetSystem
SystemValue
Value Set
SetSystem
SystemValue
Value
Class
Classname
name Message
MESSAGE Class
Classname
name Message
MESSAGE
Instance
Instance name
name msg_1
msg_1 Instance
Instance name
name msg_1
msg_1
AttributeName
Attribute Name MessageType
MessageType Attribute
Attribute Name MessageType
Name MessageType
Dest
Dest msg_1_type
msg_1_type Source
Source tag_a
tag_a
22 00

SSV
SSV SSV
SSV
Set System
Set Value
System Value Set
SetSystem
SystemValue
Value
Class
Classname
name Message
MESSAGE Class
Classname
name Message
MESSAGE
Instance
Instancename
name msg_1
msg_1 Instance
Instance name
name msg_1
msg_1
Attribute Name
Attribute ConnectionPath
Name ConnectionPath Attribute
AttributeName MessageType
Name MessageType
Source
Source msg_1path[0]
msg_1_path[0] Source
Source msg_1_type
msg_1_type
66 22

msg_1.EN
msg_1.EN MSG
MSG
1 / Tipo
Type Escritura
- CIP Datade tabla
Tablede Write
datos CIP EN
EN
Message
Message Control
Control msg_1 ...
msg_1 DN
DN
ER
ER

Texto estructurado

IF msg_path THEN

GSV(MESSAGE,msg_1,MessageType,msg_1_type);

SSV(MESSAGE,msg_1,MessageType,tag_a);

SSV(MESSAGE,msg_1,ConnectionPath,msg_1_path[0]);

SSV(MESSAGE,msg_1,MessageType,msg_1_type);

END_IF;

IF NOT msg_1.EN THEN

MSG(msg_1);

END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008 189


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Acceso al objeto MODULE

El objeto MODULE proporciona informacin de estado acerca de un


mdulo. Para seleccionar un objeto MODULE determinado, establezca
el operando Object Name de la instruccin GSV/SSV en el nombre del
mdulo. El mdulo especificado deber estar presente en la seccin
I/O Configuration del organizador del controlador y deber tener un
nombre de dispositivo.

Atributo Tipo de datos Instruccin Descripcin


EntryStatus INT GSV Especifica el estado actual de la entrada de mapa especificada. Los
12 bits inferiores se deben enmascarar cuando se realiza una operacin
de comparacin. Solamente los bits 12-15 son vlidos.

Valor: Significado:
16#0000 Reserva: el controlador se est encendiendo.

16#1000 Con fallo: cualquiera de las conexiones del objeto


MODULE al mdulo asociado entran en fallo. No se debe
usar este valor para determinar si el mdulo ha entrado en
fallo puesto que el objeto MODULE sale peridicamente de
este estado cuando intenta volver a conectarse al mdulo.
En lugar de ello, realice una prueba para determinar si hay
un estado de marcha (16#4000). Verifique si hay un
FaultCode diferente de 0 para determinar si un mdulo ha
entrado en fallo. Una vez que han entrado en fallo, los
atributos FaultCode y FaultInfo son vlidos hasta que se
corrige la condicin de fallo.

16#2000 Validando: el objeto MODULE est verificando la


integridad del objeto MODULE antes de establecer las
conexiones al mdulo.

16#3000 Conectndose: el objeto MODULE est iniciando las


conexiones al mdulo.

16#4000 Funcionando: todas las conexiones al mdulo han sido


establecidas y los datos se transfieren correctamente.

16#5000 Desactivndose: el objeto MODULE est en proceso de


desactivar todas las conexiones al mdulo.

16#6000 Inhibido: el objeto MODULE se inhibe (el bit de inhibicin


est establecido en el atributo de modo).

16#7000 En espera: no funciona el objeto MODULE primario del


cual depende este objeto MODULE.
FaultCode INT GSV Un nmero que identifica un fallo del mdulo, si ocurre.
FaultInfo DINT GSV Proporciona informacin especfica acerca del cdigo de fallo del objeto
MODULE.
ForceStatus INT GSV Especifica el estado de los forzados.

Bit: Significado:
0 forzados instalados (1=s, 0=no)
1 forzados habilitados (1=s, 0=no)
2-15 no se usa

190 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Atributo Tipo de datos Instruccin Descripcin


Instance DINT GSV Proporciona el nmero de instancia de este objeto MODULE.
LEDStatus INT GSV Especifica el estado actual del indicador LED de E/S en la parte frontal del
controlador.

Valor: Significado:
0 LED apagado: No hay objetos MODULE configurados para
el controlador (no hay mdulos en la seccin I/O
Configuration del organizador del controlador).

1 Rojo parpadeante: Ninguno de los objetos MODULE est


en ejecucin.

2 Verde parpadeante: Por lo menos uno de los objetos


MODULE no est en ejecucin.

3 Verde fijo: Todos los objetos Module estn en ejecucin.

Nota: No introduzca un nombre de objeto con este atributo puesto que el


atributo se aplica a toda la coleccin de mdulos.
Mode INT GSV Especifica el modo actual del objeto MODULE.

SSV Bit: Significado:


0 Si se establece, hace que se genere un fallo mayor si
cualquiera de las conexiones del objeto MODULE entran en
fallo mientras el controlador est en el modo de marcha.

2 Si se establece, hace que el objeto MODULE entre en el


estado inhibido despus de desactivar todas las
conexiones al mdulo.

Acceso al objeto MOTIONGROUP

El objeto MOTIONGROUP proporciona informacin de estado acerca


de un grupo de ejes para el mdulo servo. Especifique el nombre de
tag del grupo de control de movimiento para determinar el objeto
MOTIONGROUP deseado.

Atributo Tipo de datos Instruccin Descripcin


Instance DINT GSV Proporciona el nmero de instancia de este objeto
MOTION_GROUP.

Publicacin 1756-RM003K-ES-P Julio 2008 191


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Acceso al objeto PROGRAM

El objeto PROGRAM proporciona informacin de estado acerca de un


programa. Especifique el nombre del programa para determinar el
objeto PROGRAM deseado.

Atributo Tipo de datos Instruccin Descripcin


DisableFlag SINT GSV Controla la ejecucin de este programa.

SSV Valor: Significado:


0 ejecucin habilitada
1 ejecucin inhabilitada
Instance DINT GSV Proporciona el nmero de instancia de este objeto PROGRAM.
LastScanTime DINT GSV El tiempo necesario para que se ejecutara este programa la ltima
vez que se ejecut. El tiempo se representa en microsegundos.
SSV
MajorFaultRecord DINT[11] GSV Registra los fallos mayores para este programa.

SSV Recomendamos que usted cree una estructura definida por el


usuario para simplificar el acceso al atributo MajorFaultRecord:
Nombre: Tipo de datos: Estilo: Descripcin:

TimeLow DINT Decimal los 32 bits inferiores de un valor de sello de hora de fallo

TimeHigh DINT Decimal los 32 bits superiores de un valor de sello de hora de fallo

Type INT Decimal tipo de fallo (programa, E/S, etc.)

Code INT Decimal cdigo nico para el fallo (depende del tipo de fallo)

Info DINT[8] Hexadecimal informacin especfica del fallo (depende del cdigo y tipo de
fallo)
MaxScanTime DINT GSV El tiempo de ejecucin mximo registrado para este programa.
El tiempo se representa en microsegundos.
SSV
MinorFaultRecord DINT[11] GSV Registra los fallos menores para este programa

SSV Recomendamos que usted cree una estructura definida por el


usuario para simplificar el acceso al atributo MinorFaultRecord:
Nombre: Tipo de datos: Estilo: Descripcin:

TimeLow DINT Decimal los 32 bits inferiores de un valor de sello de hora de fallo

TimeHigh DINT Decimal los 32 bits superiores de un valor de sello de hora de fallo

Type INT Decimal tipo de fallo (programa, E/S, etc.)

Code INT Decimal cdigo nico para el fallo (depende del tipo de fallo)

Info DINT[8] Hexadecimal informacin especfica del fallo (depende del cdigo y tipo de
fallo)
SFCRestart INT GSV no se usa reservado para uso futuro

SSV

192 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Acceso al objeto ROUTINE

El objeto ROUTINE proporciona informacin de estado acerca de una


rutina. Especifique el nombre de la rutina para determinar el objeto
ROUTINE deseado.

Atributo Tipo de datos Instruccin Descripcin


Instance DINT GSV Proporciona el nmero de instancia de este objeto ROUTINE.

Los valores vlidos son 0-65,535.

Acceso al objeto SERIALPORT

El objeto SERIALPORT proporciona una interface al puerto de


comunicacin serie.

Atributo Tipo de datos Instruccin Descripcin


BaudRate DINT GSV Especifica la velocidad en baudios.

Los valores vlidos son 110, 300, 600, 1200, 2400, 4800, 9600 y
19200 (predeterminado).
DataBits SINT GSV Especifica el nmero de bits de datos por carcter.

Valor: Significado:
7 7 bits de datos (ASCII solamente)
8 8 bits de datos (opcin predeterminada)
Parity SINT GSV Especifica la paridad.

Valor: Significado:
0 sin paridad (no predeterminado)
1 paridad impar (ASCII solamente)
2 paridad par
RTSOffDelay INT GSV La cantidad de tiempo necesario para retardar la desconexin de
la lnea RTS despus de la transmisin del ltimo carcter.

El valor vlido es 0-32,767. Retardo en conteos de perodos de


20 ms. El valor predeterminado es 0 ms.
RTSSendDelay INT GSV La cantidad de tiempo necesario para retardar la transmisin del
primer carcter de un mensaje despus de activar la lnea RTS.

El valor vlido es 0-32,767. Retardo en conteos de perodos de


20 ms. El valor predeterminado es 0 ms.
StopBits SINT GSV Especifica el nmero de bits de fin.

Valor: Significado:
1 1 bit de fin (opcin predeterminada)
2 2 bits de fin (ASCII solamente)
PendingBaudRate DINT SSV Valor pendiente para el atributo BaudRate.
PendingDataBits SINT SSV Valor pendiente para el atributo DataBits.
PendingParity SINT SSV Valor pendiente para el atributo Parity.

Publicacin 1756-RM003K-ES-P Julio 2008 193


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Atributo Tipo de datos Instruccin Descripcin


PendingRTSOffDelay INT SSV Valor pendiente para el atributo RTSOffDelay.
PendingRTSSendDelay INT SSV Valor pendiente para el atributo RTSSendDelay.
PendingStopBits SINT SSV Valor pendiente para el atributo StopBits.

Para aplicar los valores para cualquiera de los atributos SERIALPORT


pendientes:

1. Use una instruccin SSV para establecer el valor para el atributo


pendiente.

Usted puede establecer tantos atributos pendientes como desee,


usando una instruccin SSV para cada atributo pendiente.

2. Use una instruccin MSG para aplicar el valor. La instruccin


MSG aplica cada atributo pendiente establecido. Configure las
instrucciones MSG como:

Ficha MSG Configuration Campo Valor


Configuration Message Type CIP genrico
Service Code 0d hex
Object Type 6f hex
Object ID 1
Object Attribute dejar en blanco
Source dejar en blanco
Number of Elements 0
Destination dejar en blanco
Communication Path ruta de comunicacin consigo mismo
(1,s donde s = nmero de ranura del
controlador)

194 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Acceso al objeto TASK

El objeto TASK proporciona informacin de estado acerca de una


tarea. Especifique el nombre de la tarea para determinar el objeto
TASK deseado.

Atributo Tipo de datos Instruccin Descripcin


DisableUpdateOutputs DINT GSV Habilita o inhabilita el procesamiento de salidas al final de una
tarea.
SSV
Para: Establezca el atributo en:
habilitar el procesamiento de 0
salidas al final de la tarea
inhabilitar el procesamiento de 1 (o cualquier valor excepto
salidas al final de la tarea cero)
EnableTimeOut DINT GSV Habilita o inhabilita la funcin de tiempo de espera de una tarea de
evento.
SSV
Para: Establezca el atributo en:
inhabilitar la funcin de tiempo 0
de espera
habilitar la funcin de tiempo de 1 (o cualquier valor excepto
espera cero)
InhibitTask DINT GSV Evita que se ejecute la tarea. Si se inhibe una tarea, el controlador
igualmente preescanea la tarea cuando el controlador cambia del
SSV modo de programacin al modo de marcha o al modo de prueba.
Para: Establezca el atributo en:
habitar la tarea 0 (predeterminado)
inhibir (inhabilitar) la tarea 1 (o cualquier valor excepto
cero)
Instance DINT GSV Proporciona el nmero de instancia de este objeto TASK.

Los valores vlidos son 0-31.


LastScanTime DINT GSV El tiempo necesario para ejecutar esta tarea desde la ltima vez
que se ejecut. El tiempo se representa en microsegundos.
SSV
MaxInterval DINT[2] GSV El intervalo de tiempo mximo entre las ejecuciones sucesivas de la
tarea. DINT[0] contiene los 32 bits inferiores del valor; DINT[1]
SSV contiene los 32 bits superiores del valor.

Un valor de 0 indica 1 o menos ejecuciones de la tarea.


MaxScanTime DINT GSV El tiempo de ejecucin mximo registrado para este programa.
El tiempo se representa en microsegundos.
SSV
MinInterval DINT[2] GSV El intervalo de tiempo mnimo entre las ejecuciones sucesivas de la
tarea. DINT[0] contiene los 32 bits inferiores del valor; DINT[1]
SSV contiene los 32 bits superiores del valor.

Un valor de 0 indica 1 o menos ejecuciones de la tarea.


OverlapCount DINT GSV El nmero de veces que se activ la tarea mientras se estaba
ejecutando. Vlido para un evento o una tarea peridica.
SSV
Para borrar el conteo, establezca el atributo en 0.

Publicacin 1756-RM003K-ES-P Julio 2008 195


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Atributo Tipo de datos Instruccin Descripcin


Priority INT GSV La prioridad relativa de esta tarea comparada con las otras tareas.

SSV Valores vlidos 1...15.


Rate DINT GSV Si el tipo de tarea es: El atributo Rate especifica
el:
SSV
peridica Perodo para la tarea.
El tiempo se representa en
microsegundos.
evento El valor de tiempo de espera
para la tarea. El tiempo se
representa en microsegundos.
StartTime DINT[2] GSV El valor WALLCLOCKTIME cuando se inici la ltima ejecucin de la
tarea. DINT[0] contiene los 32 bits inferiores del valor; DINT[1]
SSV contiene los 32 bits superiores del valor.
Status DINT GSV Proporciona informacin de estado acerca de la tarea. Una vez que
el controlador establece uno de estos bits, usted puede borrar el bit
SSV manualmente.
Para determinar si: Examine este bit:
Una instruccin EVNT activ 0
la tarea (tarea de evento
solamente).
Un tiempo de espera 1
sobrepasado activ la tarea
(tarea de evento solamente).
Ocurri una superposicin para 2
esta tarea.
Watchdog DINT GSV El lmite de tiempo para la ejecucin de todos los programas
asociados con esta tarea. El tiempo se representa en
SSV microsegundos.
Si se introduce 0, se asignan estos valores:
Tiempo: Tipo de tarea:
0.5 s peridica o de evento
5.0 s continua

196 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Acceso al objeto WALLCLOCKTIME

El objeto WALLCLOCKTIME proporciona un sello de hora que el


controlador puede usar para la priorizacin.

Atributo Tipo de datos Instruccin Descripcin


CSTOffset DINT[2] GSV Offset positivo del CurrentValue del objeto CST (hora coordinada del
sistema; vea la pgina 183). DINT[0] contiene los 32 bits inferiores
SSV del valor; DINT[1] contiene los 32 bits superiores del valor.

Valor en s. El valor predeterminado es 0.


CurrentValue DINT[2] GSV El valor actual de la hora del reloj. DINT[0] contiene los 32 bits
inferiores del valor; DINT[1] contiene los 32 bits superiores del valor.
SSV
El valor es el nmero de microsegundos que han transcurrido desde
las 0000 horas del 1 de enero de 1972.

Los objetos CST y WALLCLOCKTIME estn relacionados


matemticamente en el controlador. Por ejemplo, si se suman
CST CurrentValue y WALLCLOCKTIME CTSOffset, el resultado es
WALLCLOCKTIME CurrentValue.
DateTime DINT[7] GSV La fecha y hora en un formato legible.

SSV DINT[0] ao

DINT[1] representacin del mes en nmeros enteros (1-12)

DINT[2] representacin del da en nmeros enteros (1-31)

DINT[3] hora (0-23)

DINT[4] minuto (0-59)

DINT[5] segundos (0-59)

DINT[6] microsegundos (0-999,999)

Publicacin 1756-RM003K-ES-P Julio 2008 197


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Ejemplo de programacin Obtenga informacin de fallo


GSV/SSV
Los siguientes ejemplos usan instrucciones GSV para obtener
informacin de fallo.

Ejemplo 1: Este ejemplo obtiene informacin de fallo del mdulo de E/S


disc_in_2 y coloca los datos en una estructura definida por el usuario
disc_in_2_info.

Lgica de escalera de rels

Texto estructurado

GSV(MODULE,disc_in_2,FaultCode,disc_in_2_info.FaultCode);

GSV(MODULE,disc_in_2,FaultInfo,disc_in_2_info.FaultInfo);

GSV(MODULE,disc_in_2,Mode,disc_in_2info.Mode);

Ejemplo 2: Este ejemplo obtiene informacin de estado acerca del programa


discrete y coloca los datos en una estructura definida por el usuario
discrete_info.

Lgica de escalera de rels

Texto estructurado

GSV(PROGRAM,DISCRETE,LASTSCANTIME,
discrete_info.LastScanTime);

GSV(PROGRAM,DISCRETE,MAXSCANTIME,discrete_info.MaxScanTime);

198 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Ejemplo 3: Este ejemplo obtiene informacin de estado acerca de la tarea IO_test


y coloca los datos en una estructura definida por el usuario
io_test_info.

Lgica de escalera de rels

Texto estructurado

GSV(TASK,IO_TEST,LASTSCANTIME,io_test_info.LastScanTime);

GSV(TASK,IO_TEST,MAXSCANTIME,io_test_info.MaxScanTime);

GSV(TASK,IO_TEST,WATCHDOG,io_test_info.WatchDog);

Publicacin 1756-RM003K-ES-P Julio 2008 199


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Establezca los indicadores de habilitacin e inhabilitacin

El siguiente ejemplo usa la instruccin SSV para habilitar o inhabilitar


un programa. Usted tambin podra usar este mtodo para habilitar o
inhabilitar un mdulo de E/S, lo cual es similar a usar bits de
inhibicin con un procesador PLC-5.

Ejemplo: Segn el estado de SW.1, coloque el valor apropiado en el atributo


disableflag del programa discrete.

Lgica de escalera de rels

Texto estructurado

IF SW.1 THEN

discrete_prog_flag := enable_prog;

ELSE

discrete_prog_flag := disable_prog;

END_IF;

SSV(PROGRAM,DISCRETE,DISABLEFLAG,discrete_prog_flag);

200 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Salida inmediata (IOT) La instruccin IOT actualiza inmediatamente los datos de salida
especificados (tag de salida o tag producido).

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Update Tag tag tag que usted desea actualizar, ya sea:
tag de salida de un mdulo de E/S
tag producido
No seleccione un miembro o elemento de un
tag. Por ejemplo, Local:5:0 es correcto, pero
Local:5:0.Data no es correcto.

IOT(output_tag); Texto estructurado

Los operandos son iguales a los de la instruccin IOT de lgica de


escalera de rels.

Descripcin: La instruccin IOT anula el intervalo solicitado entre paquetes (RPI)


de una conexin de salida y enva datos nuevos mediante la
conexin.

Una conexin de salida es una conexin asociada con el tag de


salida de un mdulo de E/S o con un tag producido.
Si la conexin es para un tag producido, la instruccin IOT
tambin enva el activador de evento al controlador consumidor.
Esto permite a la instruccin IOT activar una tarea de evento en
el controlador consumidor.

Para usar una instruccin IOT y un tag producido para activar una
tarea de evento en un controlador consumidor, configure el tag
producido de la siguiente manera:

Marque esta casilla.

De esta manera se configura el tag para actualizar su


activador de evento slo mediante una instruccin IOT.

Publicacin 1756-RM003K-ES-P Julio 2008 201


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

El tipo de red entre los controladores determina cundo el


controlador consumidor recibe los nuevos datos y el activador de
eventos mediante la instruccin IOT.

Con este controlador Mediante esta red El dispositivo consumidor recibe los
datos y el activador de evento
ControlLogix backplane inmediatamente
Red EtherNet/IP inmediatamente
Red ControlNet dentro del intervalo entre paquetes actual
(API) del tag consumido (conexin)
SoftLogix5800 Usted puede producir y consumir tags slo dentro del intervalo entre paquetes actual
por una red ControlNet. (API) del tag consumido (conexin)

Los siguientes diagramas comparan la recepcin de datos mediante


una instruccin IOT por las redes EtherNet/IP y ControlNet.

Red EtherNet/IP Red ControlNet

valores cargados al tag valores cargados al tag


producido producido

instruccin IOT en el instruccin IOT en el


controlador productor controlador productor

tarea de evento en el RPI del tag producido


controlador consumidor
tarea de evento en el
controlador consumidor

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

202 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Captulo 4

Ejecucin:

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.
La instruccin se ejecuta.
ejecucin de la instruccin La instruccin:
actualiza la conexin del tag especificado.
restablece el temporizador RPI de la conexin
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

Ejemplo 1: Cuando la instruccin IOT se ejecuta, sta inmediatamente enva los


valores del tag Local:5:0 al mdulo de salida.

Lgica de escalera de rels

Texto estructurado

IOT (Local:5:O);

Publicacin 1756-RM003K-ES-P Julio 2008 203


Captulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT)

Ejemplo 2: Este controlador controla la estacin 24 y produce datos para la


siguiente estacin (estacin 25). Para usar una instruccin IOT para
sealar la transmisin de nuevos datos, el tag producido se configura
de la siguiente manera:

Produced_Tag se configura para actualizar su activador de


eventos mediante una instruccin IOT.

Lgica de escalera de rels

Si New_Data = activado, ocurre lo siguiente durante un escn:


La instruccin CPS establece Produced_Tag = Source_Tag.
La instruccin IOT actualiza Produced_Tag y enva esta actualizacin al controlador consumidor (estacin 25). Cuando
el controlador consumidor recibe esta actualizacin, activa la tarea de evento asociada en dicho controlador.

Texto estructurado

IF New_Data AND NOT Trigger_Consumer THEN


CPS (Source_Tag,Produced_Tag,1);
IOT (Produced_Tag);
END_IF;
Trigger_Consumer := New_Data;

204 Publicacin 1756-RM003K-ES-P Julio 2008


Captulo 5

Instrucciones de comparacin
(CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Introduccin Las instrucciones de comparacin le permiten comparar los valores


usando una expresin o una instruccin de comparacin especfica.
Si desea Use esta instruccin Disponible en estos lenguajes Vea la pgina
comparar los valores segn una expresin CMP lgica de escalera de rels 206
texto estructurado(1)
probar si dos valores son iguales EQU lgica de escalera de rels 211
texto estructurado(2)
bloque de funciones
probar si un valor es mayor o igual que un GEQ lgica de escalera de rels 215
segundo valor texto estructurado(1)
bloque de funciones
determinar si un valor es mayor que otro valor GRT lgica de escalera de rels 219
texto estructurado(1)
bloque de funciones
probar si un valor es menor o igual que un LEQ lgica de escalera de rels 223
segundo valor texto estructurado(1)
bloque de funciones
determinar si un valor es menor que otro valor LES lgica de escalera de rels 227
texto estructurado(1)
bloque de funciones
determinar si un valor se encuentra entre otros LIM lgica de escalera de rels 231
dos valores texto estructurado(1)
bloque de funciones
pasar dos valores a travs de una mscara y MEQ lgica de escalera de rels 237
determinar si son iguales texto estructurado(1)
bloque de funciones
determinar si un valor diferente a otro valor NEQ lgica de escalera de rels 242
texto estructurado(1)
bloque de funciones
(1) No hay una instruccin equivalente en texto estructurado. Use otra programacin en texto estructurado para lograr el mismo resultado. Vea la descripcin de la
instruccin.
(2)
No hay una instruccin equivalente en texto estructurado. Use el operador en una expresin.

Usted puede comparar valores de diferentes tipos de datos como, por


ejemplo, valores de punto flotante (coma flotante) y valores enteros.

Para las instrucciones de lgica de escalera de rels, los tipos de datos


que aparecen en negrita indican tipos de datos ptimos. Las
instrucciones se ejecutan ms rpidamente y requieren menos
memoria si todos los operandos de instruccin usan el mismo tipo de
datos ptimos, tpicamente DINT o REAL.

205Publicacin 1756-RM003K-ES-P Julio 2008 205


Captulo 5 Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Comparar (CMP) La instruccin CMP realiza una comparacin de las operaciones


aritmticas que se especifican en la expresin.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Expression SINT inmediato una expresin que consiste en tags y/o
valores inmediatos separados por
INT tag operadores.

DINT

REAL

cadena
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.

Texto estructurado

El texto estructurado no tiene una instruccin CMP, pero usted puede


lograr los mismos resultados usando una construccin IF...THEN y
una expresin.

IF BOOL_expression THEN
<statement>;
END_IF;

Consulte Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de construcciones y expresiones
en texto estructurado.

Descripcin: Defina la expresin CMP mediante operadores, tags y valores


inmediatos. Use parntesis ( ) para definir secciones de expresiones
ms complejas.

La ejecucin de una instruccin CMP es un poco ms lenta y usa ms


memoria que la ejecucin de las otras instrucciones de comparacin.
La ventaja de la instruccin CMP es que le permite introducir
expresiones complejas en una sola instruccin.

Indicadores de estado La instruccin CMP afecta los indicadores de estado aritmtico si la


aritmtico: expresin contiene un operador (por ejemplo, +, , *, /) que afecta los
indicadores de estado aritmtico.

Condiciones de fallo: ninguna

206 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Captulo 5

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de
rengln es verdadera

la expresin es
verdadera la condicin de salida de
evale la expresin
rengln se establece como
verdadera

la expresin es falsa

la condicin de salida de
rengln se establece
como falsa

fin

post-escn La condicin de salida de rengln se establece como falsa.

Ejemplos: Si la instruccin CMP determina que la expresin es verdadera, la


condicin de salida de rengln se establece como verdadera.

Si introduce una expresin sin un operador de comparacin, tal como


value_1 + value_2 o value_1, la instruccin evala la expresin como:

Si la expresin es La condicin de salida de rengln


se establece como
diferente de cero verdadera
cero falsa

Publicacin 1756-RM003K-ES-P Julio 2008 207


Captulo 5 Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Expresiones CMP

Usted programa las expresiones en las instrucciones CMP de la misma


manera que las expresiones en las instrucciones FSC. Use las
siguientes secciones para obtener informacin sobre operadores
vlidos, formato y orden de operacin, que son comunes para ambas
instrucciones.

Operadores vlidos

Operador: Descripcin ptimo Operador: Descripcin ptimo


+ sumar DINT, REAL DEG radianes a grados DINT, REAL
- restar/cambiar signo DINT, REAL FRD BCD a entero DINT
* multiplicar DINT, REAL LN logaritmo natural REAL
/ dividir DINT, REAL LOG logaritmo base 10 REAL
= igual que DINT, REAL MOD mdulo de divisin DINT, REAL
< menor que DINT, REAL NOT complemento a nivel DINT
de bits
<= menor o igual que DINT, REAL
OR O a nivel de bits DINT
> mayor que DINT, REAL
RAD grados a radianes DINT, REAL
>= mayor o igual que DINT, REAL
SIN seno REAL
<> diferente de DINT, REAL
SQR raz cuadrada DINT, REAL
** exponente (x a la y) DINT, REAL
TAN tangente REAL
ABS valor absoluto DINT, REAL
TOD entero a BCD DINT
ACS arco coseno REAL
TRN truncar DINT, REAL
AND Y a nivel de bits DINT
XOR O exclusivo a nivel de DINT
ASN arco seno REAL bits
ATN arco tangente REAL
COS coseno REAL

208 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Captulo 5

Expresiones de formato

Por cada operador que use en una expresin, usted tiene que
proporcionar uno o dos operandos (tags o valores inmediatos). Use la
siguiente tabla para formatear operadores y operandos dentro de una
expresin:

Para operadores Use este formato Ejemplos


que operan en
un operando operador(operando) ABS(tag_a)
dos operandos operando_a operador tag_b + 5
operando_b tag_c AND tag_d
(tag_e ** 2) MOD (tag_f /
tag_g)

Determine el orden de operacin

Las operaciones que usted escribe en la expresin son realizadas por


la instruccin en un orden prescrito, no necesariamente en el orden
en que usted las escribe. Usted puede anular el orden de operacin
agrupando trminos dentro de parntesis, forzando a la instruccin
para que realice una operacin dentro del parntesis antes de otras
operaciones.

Las operaciones de igual orden se realizan de izquierda a derecha.

Orden Operacin
1. ()
2. ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG,
RAD, SIN, SQR, TAN, TOD, TRN
3. **
4. (cambiar signo), NOT
5. *, /, MOD
6. <, <=, >, >=, =
7. (restar), +
8. AND
9. XOR
10. OR

Publicacin 1756-RM003K-ES-P Julio 2008 209


Captulo 5 Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Use cadenas en una expresin

Use una expresin de texto estructurado o lgica de escalera de rels


para comparar tipos de datos de cadena. Para usar cadenas en una
expresin, siga estas pautas:

Una expresin le permite comparar dos tags de cadena.


Usted no puede introducir caracteres ASCII directamente en la
expresin.
Slo se permiten los siguientes operadores

Operador Descripcin
= igual que
< menor que
<= menor o igual que
> mayor que
>= mayor o igual que
<> diferente de

Las cadenas son iguales si sus caracteres coinciden.


Los caracteres ASCII permiten distinguir maysculas de
minsculas. La A mayscula ($41) es diferente a la a
minscula ($61).
Los valores hexadecimales de los caracteres determinan si una
cadena es mayor o menor que otra cadena. Para obtener el
cdigo hexadecimal de un carcter, remtase a la contraportada
de este manual.
Cuando las dos cadenas se clasifican como en un directorio
telefnico, el orden de las cadenas determina cul es mayor.

Caracteres ASCII Cdigos


hexadecimales
1ab $31$61$62
m m 1b $31$62
e a
A $41
n y
o o AB $41$42 AB < B
r r
B $42
a $61 a>B
ab $61$62

210 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Captulo 5

Igual a (EQU) La instruccin EQU determina si Source A es igual a Source B.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source A SINT inmediato valor que se compara con
Source B
INT tag

DINT

REAL

cadena
Source B SINT inmediato valor que se compara con
Source A
INT tag

DINT

REAL

cadena

Si usted introduce un tag SINT o INT, el valor se convierte en un


valor DINT mediante extensin de signo.
Los valores REAL pocas veces son absolutamente iguales. Si
necesita determinar la igualdad de dos valores REAL, use la
instruccin LIM.
Los tipos de datos de cadena son:
tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted cree
Para probar los caracteres de una cadena, introduzca un tag de
cadena tanto para Source A como para Source B.

Texto estructurado

IF sourceA = sourceB THEN Use el signo igual = como operador dentro de una expresin. Esta
<statements>; expresin evala si sourceA es igual que sourceB.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Publicacin 1756-RM003K-ES-P Julio 2008 211


Captulo 5 Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Bloque de funciones

Operando Tipo Formato Descripcin


EQU tag FBD_COMPARE estructura estructura EQU

Estructura FBD_COMPARE

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


SourceA REAL Valor que se compara con SourceB

Vlido = cualquier valor con punto flotante (coma flotante)


SourceB REAL Valor que se compara con SourceA

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest BOOL Resultado de la instruccin. Es equivalente a la condicin de salida de rengln de la
instruccin EQU de lgica de escalera de rels.

Descripcin: Use la instruccin EQU para comparar dos nmeros o dos cadenas de
caracteres ASCII. Cuando usted compara las cadenas:

Las cadenas son iguales si sus caracteres coinciden.


Los caracteres ASCII permiten distinguir maysculas de
minsculas. La A mayscula ($41) es diferente a la a
minscula ($61).

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

212 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Captulo 5

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de
rengln es verdadera

s la condicin de salida de
Source A = Source B
rengln se establece
como verdadera

no

la condicin de salida de
rengln se establece
como falsa

fin

post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008 213


Captulo 5 Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Ejemplo: Si value_1 es igual a value_2, establezca light_a. Si value_1 es


diferente de value_2, borre light_a.

Lgica de escalera de rels

Texto estructurado

light_a := (value_1 = value_2);

Bloque de funciones

214 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Captulo 5

Mayor o igual que (GEQ) La instruccin GEQ determina si Source A es mayor o igual que
Source B.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source A SINT inmediato valor que se compara con Source B

INT tag

DINT

REAL

cadena
Source B SINT inmediato valor que se compara con Source A

INT tag

DINT

REAL

cadena

Si usted introduce un tag SINT o INT, el valor se convierte en un


valor DINT mediante extensin de signo.
Los tipos de datos de cadena son:
tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted cree
Para probar los caracteres de una cadena, introduzca un tag de
cadena tanto para Source A como para Source B.

Texto estructurado

IF sourceA >= sourceB THEN Use los signos mayor que e igual >= adyacentes como operador
<statements>; dentro de una expresin. Esta expresin evala si sourceA es mayor o
igual que sourceB.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Publicacin 1756-RM003K-ES-P Julio 2008 215


Captulo 5 Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Bloque de funciones

Operando Tipo Formato Descripcin


GEQ tag FBD_COMPARE estructura estructura GEQ

Estructura FBD_COMPARE

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


SourceA REAL Valor que se compara con SourceB

Vlido = cualquier valor con punto flotante (coma flotante)


SourceB REAL Valor que se compara con SourceA

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest BOOL Resultado de la instruccin. Es equivalente a la condicin de salida de rengln para la
instruccin GEQ de lgica de escalera de rels.

Descripcin: La instruccin GEQ determina si Source A es mayor o igual que


Source B.

Cuando usted compara las cadenas:

Los valores hexadecimales de los caracteres determinan si una


cadena es mayor o menor que otra cadena. Para obtener el
cdigo hexadecimal de un carcter, remtase a la contraportada
de este manual.
Cuando las dos cadenas se clasifican como en un directorio
telefnico, el orden de las cadenas determina cul es mayor.

Caracteres ASCII Cdigos


hexadecimales
1ab $31$61$62
m m 1b $31$62
e a
A $41
n y
o o AB $41$42 AB < B
r r
B $42
a $61 a>B
ab $61$62

216 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Captulo 5

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de
rengln es verdadera

s la condicin de salida de
Source A Source B
rengln se establece
como verdadera

no

la condicin de salida de
rengln se establece
como falsa

fin

post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008 217


Captulo 5 Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Ejemplo: Si value_1 es mayor o igual que value_2, establezca light_b. Si


value_1 es menor que value_2, borre light_b.

Lgica de escalera de rels

Texto estructurado

light_b := (value_1 >= value_2);

Bloque de funciones

218 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Captulo 5

Mayor que (GRT) La instruccin GRT determina si Source A es mayor que Source B.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source A SINT inmediato valor que se compara con Source B

INT tag

DINT

REAL

cadena
Source B SINT inmediato valor que se compara con Source A

INT tag

DINT

REAL

cadena

Si usted introduce un tag SINT o INT, el valor se convierte en un


valor DINT mediante extensin de signo.
Los tipos de datos de cadena son:
tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted cree
Para probar los caracteres de una cadena, introduzca un tag de
cadena tanto para Source A como para Source B.

Texto estructurado

IF sourceA > sourceB THEN Use el signo mayor que > como un operador dentro de una
<statements>; expresin. Esta expresin evala si sourceA es mayor que sourceB.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


GRT tag FBD_COMPARE estructura estructura GRT

Publicacin 1756-RM003K-ES-P Julio 2008 219


Captulo 5 Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Estructura FBD_COMPARE

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


SourceA REAL Valor que se compara con SourceB

Vlido = cualquier valor con punto flotante (coma flotante)


SourceB REAL Valor que se compara con SourceA

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest BOOL Resultado de la instruccin. Es equivalente a la condicin de salida de rengln para la
instruccin GRT de lgica de escalera de rels.

Descripcin: La instruccin GRT determina si Source A es mayor que Source B.

Cuando usted compara cadenas:

Los valores hexadecimales de los caracteres determinan si una


cadena es mayor o menor que otra cadena. Para obtener el
cdigo hexadecimal de un carcter, remtase a la contraportada
de este manual.
Cuando las dos cadenas se clasifican como en un directorio
telefnico, el orden de las cadenas determina cul es mayor.

Caracteres ASCII Cdigos


hexadecimales
1ab $31$61$62
m m 1b $31$62
e a
A $41
n y
o o AB $41$42 AB < B
r r
B $42
a $61 a>B
ab $61$62

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

220 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Captulo 5

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de
rengln es verdadera

s la condicin de salida de
Source A > Source B
rengln se establece
como verdadera

no

la condicin de salida de
rengln se establece
como falsa

fin

post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008 221


Captulo 5 Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Ejemplo: Si value_1 es mayor que value_2, establezca light_1. Si value_1 es


menor o igual que value_2, borre light_1.

Lgica de escalera de rels

Texto estructurado

light_1 := (value_1 > value_2);

Bloque de funciones

222 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Captulo 5

Menor o igual que (LEQ) La instruccin LEQ determina si Source A es menor o igual que
Source B.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source A SINT inmediato valor que se compara con Source B

INT tag

DINT

REAL

cadena
Source B SINT inmediato valor que se compara con Source A

INT tag

DINT

REAL

cadena

Si usted introduce un tag SINT o INT, el valor se convierte en un


valor DINT mediante extensin de signo.
Los tipos de datos de cadena son:
tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted cree
Para probar los caracteres de una cadena, introduzca un tag de
cadena tanto para Source A como para Source B.

Texto estructurado

IF sourceA <= sourceB THEN Use los signos menor que e igual <= adyacentes como operador
<statements>; dentro de una expresin. Esta expresin evala si sourceA es menor o
igual que sourceB.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Publicacin 1756-RM003K-ES-P Julio 2008 223


Captulo 5 Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Bloque de funciones

Operando Tipo Formato Descripcin


LEQ tag FBD_COMPARE estructura estructura LEQ

Estructura FBD_COMPARE

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


SourceA REAL Valor que se compara con SourceB

Vlido = cualquier valor con punto flotante (coma flotante)


SourceB REAL Valor que se compara con SourceA

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest BOOL Resultado de la instruccin. Es equivalente a la condicin de salida de rengln para la
instruccin LEQ de lgica de escalera de rels.

Descripcin: La instruccin LEQ determina si Source A es menor o igual que


Source B.

Cuando usted compara las cadenas:

Los valores hexadecimales de los caracteres determinan si una


cadena es mayor o menor que otra cadena. Para obtener el
cdigo hexadecimal de un carcter, remtase a la contraportada
de este manual.
Cuando las dos cadenas se clasifican como en un directorio
telefnico, el orden de las cadenas determina cul es mayor.

Caracteres ASCII Cdigos


hexadecimales
1ab $31$61$62
m m 1b $31$62
e a
A $41
n y
o o AB $41$42 AB < B
r r
B $42
a $61 a>B
ab $61$62

224 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Captulo 5

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de
rengln es verdadera

s la condicin de salida de
Source A Source B
rengln se establece
como verdadera

no

la condicin de salida de
rengln se establece
como falsa

fin

post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008 225


Captulo 5 Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Ejemplo: Si value_1 es menor o igual que value_2, establezca light_2. Si


value_1 es mayor que value_2, borre light_2.

Lgica de escalera de rels

Texto estructurado

light_2 := (value_1 <= value_2);

Bloque de funciones

226 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Captulo 5

Menor que (LES) La instruccin LES determina si Source A es menor que Source B.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source A SINT inmediato valor que se compara con Source B

INT tag

DINT

REAL

cadena
Source B SINT inmediato valor que se compara con Source A

INT tag

DINT

REAL

cadena

Si usted introduce un tag SINT o INT, el valor se convierte en un


valor DINT por la extensin del signo.
Los tipos de datos de cadena son:
tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted cree
Para probar los caracteres de una cadena, introduzca un tag de
cadena tanto para Source A como para Source B.

Texto estructurado

IF sourceA < sourceB THEN Use el signo menor que < como un operador dentro de una
<statements>; expresin. Esta expresin evala si sourceA es menor que sourceB.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


LES tag FBD_COMPARE estructura estructura LES

Publicacin 1756-RM003K-ES-P Julio 2008 227


Captulo 5 Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Estructura FBD_COMPARE

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


SourceA REAL Valor que se compara con SourceB

Vlido = cualquier valor con punto flotante (coma flotante)


SourceB REAL Valor que se compara con SourceA

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest BOOL Resultado de la instruccin. Es equivalente a la condicin de salida de rengln para la
instruccin LES de lgica de escalera de rels.

Descripcin: La instruccin LES determina si Source A es menor que Source B.

Cuando usted compara las cadenas:

Los valores hexadecimales de los caracteres determinan si una


cadena es mayor o menor que otra cadena. Para obtener el
cdigo hexadecimal de un carcter, remtase a la contraportada
de este manual.
Cuando las dos cadenas se clasifican como en un directorio
telefnico, el orden de las cadenas determina cul es mayor.

Caracteres ASCII Cdigos


hexadecimales
1ab $31$61$62
m m 1b $31$62
e a
A $41
n y
o o AB $41$42 AB < B
r r
B $42
a $61 a>B
ab $61$62

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

228 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Captulo 5

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de
rengln es verdadera

s la condicin de salida de
Source A < Source B
rengln se establece
como verdadera

no

la condicin de salida de
rengln se establece
como falsa

fin

post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones

Condicin: Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn es falsa EnableOut se borra.
EnableIn es verdadera La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008 229


Captulo 5 Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Ejemplo: Si value_1 es menor que value_2, establezca light_3. Si value_1 es


mayor o igual que value_2, borre light_3.

Lgica de escalera de rels

Texto estructurado

light_3 := (value_1 < value_2);

Bloque de funciones

230 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Captulo 5

Lmite (LIM) La instruccin LIM determina si el valor de prueba se encuentra


dentro del rango de los lmites inferior y superior.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Low limit SINT inmediato valor del lmite inferior

INT tag

DINT

REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Test SINT inmediato valor que se prueba

INT tag

DINT

REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
High limit SINT inmediato valor del lmite superior

INT tag

DINT

REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.

Texto estructurado

El texto estructurado no cuenta con la instruccin LIM, pero se


pueden lograr los mismos resultados usando texto estructurado.

IF (LowLimit <= HighLimit AND


(Test >= LowLimit AND Test <= HighLimit)) OR
(LowLimit >= HighLimit AND
(Test <= LowLimit OR Test >= HighLimit)) THEN

<statement>;

END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008 231


Captulo 5 Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Bloque de funciones

Operando Tipo Formato Descripcin


LIM tag FBD_LIMIT estructura estructura LIM

Estructura FBD_LIMIT

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Si se borra, la instruccin no se ejecuta y las salidas no se actualizan.

Si se establece, la instruccin se ejecuta segn lo descrito en Ejecucin.

La opcin predeterminada es establecido.


LowLimit REAL Valor del lmite inferior

Vlido = cualquier valor con punto flotante (coma flotante)


Test REAL Valor que se compara con lmites

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest BOOL Resultado de la instruccin. Es equivalente a la condicin de salida de rengln para la
instruccin LIM de lgica de escalera de rels.
HighLimit REAL Valor del lmite superior

Vlido = cualquier valor con punto flotante (coma flotante)

Descripcin: La instruccin LIM determina si el valor de prueba se encuentra


dentro del rango de los lmites inferior y superior.

Si es lmite Y el valor de prueba es La condicin de salida de


inferior rengln se establece como
Lmite superior igual a o est entre los lmites verdadera
diferente o est fuera de los falsa
lmites
Lmite superior igual a o est fuera de los verdadera
lmites
diferente o est dentro de los falsa
lmites

232 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Captulo 5

Los nmeros enteros con signo saltan (roll over) del nmero
positivo mximo al nmero negativo mximo cuando se establece el
bit ms significativo. Por ejemplo, en los nmeros enteros de 16 bits
(tipo INT), el nmero entero positivo mximo es 32,767, el cual se
representa en hexadecimal como 16#7FFF (todos los bits del 0 al 14
estn en uno). Si usted incrementa dicho nmero en uno, el resultado
es 16#8000 (el bit 15 se pone en uno). Para enteros con signo, el
hexadecimal 16#8000 es igual a -32,768 en decimal. Incrementar
desde este punto hasta que los 16 bits se pongan en uno, termina en
16#FFFF, que es igual a -1 en decimal.

Esto puede mostrarse como lnea circular de nmeros (vea los


siguientes diagramas). La instruccin LIM comienza en el lmite
inferior e se va incrementando en sentido horario hasta llegar al lmite
superior. Cualquier valor de prueba que se encuentre en el rango en
sentido horario desde el lmite inferior al lmite superior establece en
verdadera la condicin de salida del rengln. Cualquier valor de
prueba que se encuentre en el rango en sentido horario desde el
lmite superior al lmite inferior establece en falsa la condicin de
salida del rengln.
Lmite inferior Lmite superior Lmite inferior Lmite superior

La instruccin es verdadera si el valor de prueba se encuentra entre los lmites inferior y La instruccin es verdadera si el valor de prueba se encuentra fuera de los
superior, o coincide con uno de dichos lmites. lmites inferior y superior, o coincide con uno de dichos lmites.

0
0
1 +1
1 +1
lmite inferior
lmite superior

lmite superior
lmite inferior

(n+1) +n
(n+1) +n
n = valor mximo n = valor mximo

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Publicacin 1756-RM003K-ES-P Julio 2008 233


Captulo 5 Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de
rengln es verdadera

la comparacin es
verdadera la condicin de salida de
evaluar el lmite
rengln se establece
como verdadera

la comparacin es falsa

la condicin de salida de
rengln se establece
como falsa

fin

post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra, la instruccin no efecta ninguna operacin y las salidas no se
actualizan.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

234 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Captulo 5

Ejemplo 1: Lmite inferior Lmite superior:


Cuando 0 value 100, establezca light_1. Si value < 0 or value
> 100, borre light_1.

Lgica de escalera de rels

Texto estructurado

IF (value <= 100 AND(value >= 0 AND value <= 100)) OR


(value >= 100 AND value <= 0 OR value >= 100)) THEN

light_1 := 1;

ELSE

light_1 := 0;

END_IF;

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008 235


Captulo 5 Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Ejemplo 2: Lmite inferior Lmite superior:


Cuando value 0 o value 100, establezca light_1. Si value < 0 o
value >100, borre light_1.

Lgica de escalera de rels

Texto estructurado

IF (0 <= -100 AND value >= 0 AND value <= -100)) OR


(0 >= -100 AND(value <= 0 OR value >= -100)) THEN

light_1 := 1;

ELSE

light_1 := 0;

END_IF;

Bloque de funciones

236 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Captulo 5

Mscara igual que (MEQ) La instruccin MEQ pasa los valores Source y Compare por una
mscara y compara los resultados.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source SINT inmediato valor que se compara con Compare

INT tag

DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Mask SINT inmediato define qu bits se deben bloquear o pasar

INT tag

DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Compare SINT inmediato valor que se compara con Source

INT tag

DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.

Texto estructurado

El texto estructurado no cuenta con la instruccin MEQ, pero se


pueden lograr los mismos resultados usando texto estructurado.

IF (Source AND Mask) = (Compare AND Mask) THEN

<statement>;

END_IF;

Bloque de funciones

Operando Tipo Formato Descripcin


MEQ tag FBD_MASK_EQUAL estructura estructura MEQ

Publicacin 1756-RM003K-ES-P Julio 2008 237


Captulo 5 Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Estructura FBD_MASK_EQUAL

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Si se borra, la instruccin no se ejecuta y las salidas no se actualizan.

Si se establece, la instruccin se ejecuta segn lo descrito en Ejecucin.

La opcin predeterminada es establecido.


Source DINT Valor que se compara con Compare.

Vlido = cualquier nmero entero


Mask DINT Define qu bits se deben bloquear (enmascarar).

Vlido = cualquier nmero entero


Compare DINT Valor de comparacin.

Vlido = cualquier nmero entero


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest BOOL Resultado de la instruccin. Es equivalente a la condicin de salida de rengln para la
instruccin MEQ de lgica de escalera de rels.

Descripcin: Un nmero 1 en la mscara significa que se pasa el bit de datos. Un


nmero 0 en la mscara significa que se bloquea el bit de datos.
Normalmente, los valores Source, Mask y Compare son del mismo
tipo de datos.

Si mezcla tipos de datos enteros, la instruccin llena con ceros los bits
superiores de los tipos de datos enteros menores para que tengan el
mismo tamao que el tipo de datos mayores.

Introduccin de un valor de mscara inmediato

Cuando usted introduce una mscara, el software de programacin


cambia de manera predeterminada a valores decimales. Si desea
introducir una mscara usando otro formato, preceda el valor con el
prefijo correcto.

Prefijo Descripcin
16# hexadecimal

por ejemplo; 16#0F0F


8# octal

por ejemplo; 8#16


2# binario

por ejemplo; 2#00110011

238 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Captulo 5

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de
rengln es verdadera

origen
enmascarado = s la condicin de salida de
comparacin rengln se establece
enmascarada como verdadera

no

la condicin de salida de
rengln se establece
como falsa

fin

post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra, la instruccin no efecta ninguna operacin y las salidas no se
actualizan.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008 239


Captulo 5 Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Ejemplo 1: Si value_1 enmascarado es igual a value_2 enmascarado, establezca


light_1. Si value_1 enmascarado es diferente de value_2 enmascarado,
borre light_1. Este ejemplo muestra que los valores enmascarados son
iguales. Un nmero 0 en la mscara impide que la instruccin
compare el bit (representado por x en el ejemplo).

value_1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 value_2 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0

mask_1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 mask_1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0

value_1 0 1 0 1 0 1 0 1 1 1 1 1 X X X X value_2 0 1 0 1 0 1 0 1 1 1 1 1 X X X X
enmascarado enmascarado

Lgica de escalera de rels

Texto estructurado

light_1 := ((value_1 AND mask_1)=(value_2 AND mask_2));

Bloque de funciones

240 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Captulo 5

Ejemplo 2: Si value_1 enmascarado es igual a value_2 enmascarado, establezca


light_1. Si value_1 enmascarado es diferente de value_2 enmascarado,
borre light_1. Este ejemplo muestra que los valores enmascarados son
diferentes. Un nmero 0 en la mscara impide que la instruccin
compare el bit (representado por x en el ejemplo).

value_1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 value_2 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0

mask_1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 mask_1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1

value_1 X X X X X X X X X X X X 1 1 1 1 value_2 X X X X X X X X X X X X 0 0 0 0
enmascarado enmascarado

Lgica de escalera de rels

Texto estructurado

light_1 := ((value_1 AND mask_1)=(value_2 AND mask_2));

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008 241


Captulo 5 Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Diferente de (NEQ) La instruccin NEQ determina si Source A es diferente de Source B.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source A SINT inmediato valor que se compara con Source B

INT tag

DINT

REAL

cadena
Source B SINT inmediato valor que se compara con Source A

INT tag

DINT

REAL

cadena

Si usted introduce un tag SINT o INT, el valor se convierte en un


valor DINT mediante extensin de signo.
Los tipos de datos de cadena son:
tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted cree
Para probar los caracteres de una cadena, introduzca un tag de
cadena tanto para Source A como para Source B.

Texto estructurado

IF sourceA <> sourceB THEN Use los signos menor que y mayor que <> juntos como operador
<statements>; dentro de una expresin. Esta expresin evala si sourceA es
diferente de sourceB.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


NEQ tag FBD_COMPARE estructura estructura NEQ

242 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Captulo 5

Estructura FBD_COMPARE

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


SourceA REAL Valor que se compara con SourceB

Vlido = cualquier valor con punto flotante (coma flotante)


SourceB REAL Valor que se compara con SourceA

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest BOOL Resultado de la instruccin. Es equivalente a la condicin de salida de rengln para la
instruccin NEQ de lgica de escalera de rels.

Descripcin: La instruccin NEQ determina si Source A es diferente de Source B.

Cuando usted compara las cadenas:

Las cadenas son diferentes si algunos de sus caracteres no


coinciden.
Los caracteres ASCII permiten distinguir maysculas de
minsculas. Una A mayscula ($41) es diferente a una a
minscula ($61).

Caracteres ASCII Cdigos


hexadecimales
1ab $31$61$62
m m 1b $31$62
e a
A $41
n y
o o AB $41$42 AB < B
r r
B $42
a $61 a>B
ab $61$62

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Publicacin 1756-RM003K-ES-P Julio 2008 243


Captulo 5 Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de
rengln es verdadera

s la condicin de salida de
Source A = Source B
rengln se establece
como verdadera

no

la condicin de salida de
rengln se establece
como falsa

fin

post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

244 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Captulo 5

Ejemplo: Si value_1 es diferente de value_2, establezca light_4. Si value_1 es


igual a value_2, borre light_4.

Lgica de escalera de rels

Texto estructurado

light_4 := (value_1 <> value_2);

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008 245


Captulo 5 Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Notas:

246 Publicacin 1756-RM003K-ES-P Julio 2008


Captulo 6

Instrucciones de clculo/matemticas
(CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Introduccin Las instrucciones de clculo/matemticas evalan las operaciones


aritmticas usando una expresin o una instruccin aritmtica
especfica.
Si desea Use esta instruccin Disponible en estos lenguajes Vea la pgina
evaluar una expresin CPT lgica de escalera de rels 248
texto estructurado(1)
sumar dos valores ADD lgica de escalera de rels 252
texto estructurado(2)
bloque de funciones
restar dos valores SUB lgica de escalera de rels 255
texto estructurado(2)
bloque de funciones
multiplicar dos valores MUL lgica de escalera de rels 258
texto estructurado(2)
bloque de funciones
dividir dos valores DIV lgica de escalera de rels 261
texto estructurado(2)
bloque de funciones
determinar el residuo despus de dividir un MOD lgica de escalera de rels 266
valor entre otro texto estructurado(2)
bloque de funciones
calcular la raz cuadrada de un valor SQR lgica de escalera de rels 270
texto estructurado
SQRT(3) bloque de funciones
tomar el signo opuesto de un valor. NEG lgica de escalera de rels 274
texto estructurado(2)
bloque de funciones
hallar el valor absoluto de un valor. ABS lgica de escalera de rels 277
texto estructurado
bloque de funciones
(1)
No hay una instruccin equivalente en texto estructurado. Use otra programacin en texto estructurado para lograr el mismo resultado. Vea la descripcin de la
instruccin.
(2)
No hay una instruccin equivalente en texto estructurado. Use el operador en una expresin.
(3) Texto estructurado solamente.

Usted puede mezclar diferentes tipos de datos, pero puede producirse


prdida de exactitud y error de redondeo, y la instruccin requerir
ms tiempo para ejecutarse. Verifique el bit S:V para determinar si se
trunc el resultado.

Para las instrucciones de lgica de escalera de rels, los tipos de datos


que aparecen en negrita indican tipos de datos ptimos. Las
instrucciones se ejecutan ms rpidamente y requieren menos

247Publicacin 1756-RM003K-ES-P Julio 2008 247


Captulo 6 Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

memoria si todos los operandos de instruccin usan el mismo tipo de


datos ptimos, tpicamente DINT o REAL.

Calcular (CPT) La instruccin CPT realiza las operaciones aritmticas que usted define
en la expresin.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato: Descripcin


Destination SINT tag tag para almacenar el resultado
INT
DINT
REAL
Expression SINT inmediato una expresin que consiste en tags y/o
INT valores inmediatos separados por operadores
DINT tag
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.

Texto estructurado

El texto estructurado no tiene una instruccin CPT, pero usted puede


lograr los mismos resultados usando una asignacin y una expresin.

destino := numeric_expresion;

Consulte Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de asignaciones y expresiones
en texto estructurado.

Descripcin: La instruccin CPT realiza las operaciones aritmticas que usted define
en la expresin. Cuando se habilita, la instruccin CPT evala la
expresin y coloca el resultado en Destination.

La ejecucin de una instruccin CPT es un poco ms lenta y usa ms


memoria que la ejecucin de las otras instrucciones de clculo/
matemticas. La ventaja de la instruccin CPT es que le permite
introducir expresiones complejas en una sola instruccin.

SUGERENCIA No hay lmite en la longitud de una expresin.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna

248 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Captulo 6

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera La instruccin evala la expresin y coloca el resultado en Destination.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Ejemplo 1: Cuando se habilita, la instruccin CPT evala value_1 multiplicado


por 5, divide dicho resultado entre el resultado de value_2 dividido
entre 7 y coloca el resultado final en result_1.

Ejemplo 2: Cuando se habilita, la instruccin CPT trunca float_value_1 y


float_value_2, eleva el valor truncado float_value_2 al cuadrado,
divide el valor truncado float_value_1 entre dicho resultado y
almacena el residuo despus de la divisin en float_value_result_cpt.

Publicacin 1756-RM003K-ES-P Julio 2008 249


Captulo 6 Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Operadores vlidos

Operador Descripcin ptimo Operador Descripcin ptimo


+ sumar DINT, REAL LOG logaritmo base 10 REAL
- restar/cambiar signo DINT, REAL MOD mdulo de divisin DINT, REAL
* multiplicar DINT, REAL NOT complemento a nivel DINT
de bits
/ dividir DINT, REAL
OR O a nivel de bits DINT
** exponente (x a la y) DINT, REAL
RAD grados a radianes DINT, REAL
ABS valor absoluto DINT, REAL
SIN seno REAL
ACS arco coseno REAL
SQR raz cuadrada DINT, REAL
AND Y a nivel de bits DINT
TAN tangente REAL
ASN arco seno REAL
TOD entero a BCD DINT
ATN arco tangente REAL
TRN truncar DINT, REAL
COS coseno REAL
XOR O exclusivo a nivel de DINT
DEG radianes a grados DINT, REAL bits
FRD BCD a entero DINT
LN logaritmo natural REAL

Expresiones de formato

Por cada operador que use en una expresin, usted tiene que
proporcionar uno o dos operandos (tags o valores inmediatos). Use la
siguiente tabla para formatear operadores y operandos dentro de una
expresin:

Para operadores Use este formato: Ejemplos:


que operan en:
un operando operador(operando) ABS(tag_a)
dos operandos operando_a operador tag_b + 5
operando_b tag_c AND tag_d
(tag_e ** 2) MOD (tag_f /
tag_g)

250 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Captulo 6

Determine el orden de operacin

Las operaciones que usted escribe en la expresin son realizadas por


la instruccin en un orden prescrito, que no es necesariamente el
orden en que usted las escribe. Usted puede anular el orden de
operacin agrupando trminos dentro de parntesis, forzando a la
instruccin para que realice una operacin dentro del parntesis antes
de otras operaciones.

Las operaciones de igual orden se realizan de izquierda a derecha.

Orden: Operacin:
1. ()
2. ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG,
RAD, SIN, SQR, TAN, TOD, TRN
3. **
4. (cambiar signo), NOT
5. *, /, MOD
6. (restar), +
7. AND
8. XOR
9. OR

Publicacin 1756-RM003K-ES-P Julio 2008 251


Captulo 6 Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Sumar (ADD) La instruccin ADD suma Source A con Source B y coloca el resultado
en Destination.

Operandos:

Lgica de escalera de rels

Operando: Tipo: Formato: Descripcin:


Source A SINT inmediato valor que se suma a Source B

INT tag

DINT

REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Source B SINT inmediato valor que se suma a Source A

INT tag

DINT

REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Destination SINT tag tag para almacenar el resultado

INT

DINT

REAL

Texto estructurado

dest := sourceA + sourceB; Use el signo ms + como operador dentro de una expresin. Esta
expresin suma sourceA a sourceB y almacena el resultado en dest.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando: Tipo: Formato: Descripcin:


ADD tag FBD_MATH estructura estructura ADD

252 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Captulo 6

Estructura FBD_MATH

Parmetro de Tipo de datos: Descripcin:


entrada:
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


SourceA REAL valor que se suma a SourceB

Vlido = cualquier valor con punto flotante (coma flotante)


SourceB REAL valor que se suma a SourceA

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de Tipo de datos: Descripcin:
salida:
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest REAL Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico
para esta salida.

Descripcin: La instruccin ADD suma Source A con Source B y coloca el resultado


en Destination.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna

Ejecucin:

Lgica de escalera de rels

Condicin: Accin:
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera Destination = Source A + Source B

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008 253


Captulo 6 Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Bloque de funciones

Condicin: Accin:
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Ejemplo: Sume float_value_1 a float_value_2 y coloque el resultado en


add_result.

Lgica de escalera de rels

Texto estructurado

add_result := float_value_1 + float_value_2;

Bloque de funciones

254 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Captulo 6

Restar (SUB) La instruccin SUB resta Source B de Source A y coloca el resultado


en Destination.

Operandos:

Lgica de escalera de rels

Operando: Tipo: Formato: Descripcin:


Source A SINT inmediato valor del cual restar Source B

INT tag

DINT

REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Source B SINT inmediato valor que se resta de Source A

INT tag

DINT

REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Destination SINT tag tag para almacenar el resultado

INT

DINT

REAL

Texto estructurado

dest := sourceA - sourceB; Use el signo menos como operador en una expresin. Esta
expresin resta sourceB de sourceA y almacena el resultado en dest.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando: Tipo: Formato: Descripcin:


SUB tag FBD_MATH estructura estructura SUB

Publicacin 1756-RM003K-ES-P Julio 2008 255


Captulo 6 Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Estructura FBD_MATH

Parmetro de Tipo de datos: Descripcin:


entrada:
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


SourceA REAL Valor del cual restar SourceB

Vlido = cualquier valor con punto flotante (coma flotante)


SourceB REAL Valor que se resta de SourceA

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de Tipo de datos: Descripcin:
salida:
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest REAL Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico
para esta salida.

Descripcin: La instruccin SUB resta Source B de Source A y coloca el resultado


en Destination.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna

Ejecucin:

Lgica de escalera de rels

Condicin: Accin:
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera Destination = Source B Source A

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

256 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Captulo 6

Bloque de funciones

Condicin: Accin:
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Ejemplo: Reste float_value_2 de float_value_1 y coloque el resultado en


subtract_result.

Lgica de escalera de rels

Texto estructurado

subtract_result := float_value_1 - float_value_2;

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008 257


Captulo 6 Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Multiplicar (MUL) La instruccin MUL multiplica Source A por Source B y coloca el


resultado en Destination.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source A SINT inmediato valor del multiplicando

INT tag

DINT

REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Source B SINT inmediato valor del multiplicador

INT tag

DINT

REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Destination SINT tag tag para almacenar el resultado

INT

DINT

REAL

Texto estructurado

dest := sourceA * sourceB; Use el signo de multiplicacin como operador en una expresin.
Esta expresin multiplica sourceA por sourceB y almacena el resultado
en dest.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


MUL tag FBD_MATH estructura estructura MUL

258 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Captulo 6

Estructura FBD_MATH

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


Source A REAL Valor del multiplicando

Vlido = cualquier valor con punto flotante (coma flotante)


Source B REAL Valor del multiplicador

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest REAL Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico
para esta salida.

Descripcin: La instruccin MUL multiplica Source A por Source B y coloca el


resultado en Destination.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera Destination = Source B x Source A

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008 259


Captulo 6 Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Ejemplo: Multiplique float_value_1 por float_value_2 y coloque el resultado en


multiply_result.

Lgica de escalera de rels

Texto estructurado

multiply_result := float_value_1 float_value_2;

Bloque de funciones

260 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Captulo 6

Dividir (DIV) La instruccin DIV divide Source A entre Source B y coloca el


resultado en Destination.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source A SINT inmediato valor del dividendo

INT tag

DINT

REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Source B SINT inmediato valor del divisor

INT tag

DINT

REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Destination SINT tag tag para almacenar el resultado

INT

DINT

REAL

Texto estructurado

dest := sourceA / sourceB; Use el signo de dividir / como operador en una expresin. Esta
expresin divide sourceA entre sourceB y almacena el resultado en
dest.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Publicacin 1756-RM003K-ES-P Julio 2008 261


Captulo 6 Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Bloque de funciones

Operando Tipo Formato Descripcin


DIV tag FBD_MATH estructura estructura DIV

Estructura FBD_MATH

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


Source A REAL Valor del dividendo.

Vlido = cualquier valor con punto flotante (coma flotante)


Source B REAL Valor del divisor.

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest REAL Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico
para esta salida.

Descripcin: Si el destino no es un tipo REAL, la instruccin maneja la porcin


fraccionaria del resultado de la siguiente manera:

Si Source A Entonces la porcin Ejemplo


fraccionaria del
resultado
y Source B no son REAL se trunca Source A DINT 5
Source B DINT 3
Destination DINT 1
o Source B es REAL se redondea Source A REAL 5.0
Source B DINT 3
Destination DINT 2

262 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Captulo 6

Si Source B (el divisor) es cero:


se produce un fallo menor
Tipo 4: fallo del programa
Cdigo 4: overflow aritmtico
el destino se establece de la siguiente manera:

Si Source B es cero y: Y el destino es un: Y el resultado es: Entonces el destino se


establece en:
todos los operandos son nmeros Source A
enteros (SINT, INT o DINT)
por lo menos un operando es REAL SINT, INT o DINT positivo -1
negativo 0
REAL positivo 1.$ (infinito positivo)
negativo -1.$ (infinito negativo)

Para detectar una posible divisin entre cero, examine el fallo menor
(S:MINOR). Consulte el documento Logix5000 Controllers Common
Procedures, publicacin 1756-PM001.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo:

Se produce un fallo Tipo de fallo Cdigo de fallo


menor si
el divisor es cero 4 4

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera Destination = Source A/Source B

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008 263


Captulo 6 Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Ejemplo 1: Dividir float_value_1 entre float_value_2 y coloque el resultado en


divide_result.

Lgica de escalera de rels

Texto estructurado

divide_result := float_value_1 / float_value_2;

Bloque de funciones

264 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Captulo 6

Ejemplo 2: Las instrucciones DIV y MOV funcionan juntas para dividir dos
enteros, redondear el resultado y colocarlo en un tag de nmero
entero:
La instruccin DIV divide dint_a entre dint_b.
Para redondear el resultado, Destination es un tag REAL. (Si el
destino fuera un tag entero (SINT, INT o DINT), la instruccin
truncara el resultado).
La instruccin MOV traslada el resultado redondeado
(real_temp) de la DIV a divide_result_rounded.
Puesto que divide_result_rounded es un tag DINT, el valor de
real_temp se redondea y se coloca en el destino DINT.

Lgica de escalera de rels

43009

Publicacin 1756-RM003K-ES-P Julio 2008 265


Captulo 6 Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Mdulo (MOD) La instruccin MOD divide Source A entre Source B y coloca el


residuo en Destination.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source A SINT inmediato valor del dividendo

INT tag

DINT

REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Source B SINT inmediato valor del divisor

INT tag

DINT

REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Destination SINT tag tag para almacenar el resultado

INT

DINT

REAL

Texto estructurado

dest := sourceA MOD sourceB; Use MOD como operador en una expresin. Esta expresin divide
sourceA entre sourceB y almacena el residuo en dest.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


MOD tag FBD_MATH estructura estructura MOD

266 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Captulo 6

Estructura FBD_MATH

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


Source A REAL Valor del dividendo.

Vlido = cualquier valor con punto flotante (coma flotante)


Source B REAL Valor del divisor.

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest REAL Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico
para esta salida.

Descripcin: Si Source B (el divisor) es cero:

se produce un fallo menor


Tipo 4: fallo del programa
Cdigo 4: overflow aritmtico
el destino se establece de la siguiente manera:

Si Source B es cero y: Y el destino es un: Y el resultado es: Entonces el destino se


establece en:
todos los operandos son nmeros Source A
enteros (SINT, INT o DINT)
por lo menos un operando es REAL SINT, INT o DINT positivo -1
negativo 0
REAL positivo 1.$ (infinito positivo)
negativo -1.$ (infinito negativo)

Para detectar una posible divisin entre cero, examine el fallo menor
(S:MINOR). Consulte el documento Logix5000 Controllers Common
Procedures, publicacin 1756-PM001.

Publicacin 1756-RM003K-ES-P Julio 2008 267


Captulo 6 Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo:

Se produce un fallo Tipo de fallo Cdigo de fallo


menor si
el divisor es cero 4 4

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera Destination = Source A ( TRN ( Source A/Source B ) * Source B )

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
post-escn Ninguna.

268 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Captulo 6

Ejemplo: Divida dividend entre divisor y coloque el residuo en remainder. En


este ejemplo, tres cabe tres veces dentro de 10, y arroja un residuo de
uno.

Lgica de escalera de rels

Texto estructurado

residuo := dividendo MOD divisor;

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008 269


Captulo 6 Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Raz cuadrada (SQR) La instruccin SQR calcula la raz cuadrada de Source y coloca el
resultado en Destination.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source SINT inmediato halla la raz cuadrada de este valor

INT tag

DINT

REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Destination SINT tag tag para almacenar el resultado

INT

DINT

REAL

Texto estructurado

dest := SQRT(source); Use SQRT como funcin. Esta expresin calcula la raz cuadrada de
source y almacena el resultado en dest.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

270 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Captulo 6

Bloque de funciones

Operando Tipo Formato Descripcin


SQR tag FBD_MATH_ADVANCED estructura estructura SQR

Estructura FBD_MATH_ADVANCED

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


Source REAL Halla la raz cuadrada de este valor.

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest REAL Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico
para esta salida.

Descripcin: Si Destination no es REAL, la instruccin maneja la porcin


fraccionaria del resultado de la siguiente manera:

Si Source Entonces la porcin Ejemplo


fraccionaria del
resultado
no es REAL se trunca Source DINT 3
Destination DINT 1
es REAL se redondea Source REAL 3.0
Destination DINT 2

Si Source es negativo, la instruccin toma el valor absoluto de Source


antes de calcular la raz cuadrada.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna

Publicacin 1756-RM003K-ES-P Julio 2008 271


Captulo 6 Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera
Destination = Source

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

272 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Captulo 6

Ejemplo: Calcule la raz cuadrada de value_1 y coloque el resultado en


sqr_result.

Lgica de escalera de rels

Texto estructurado

sqr_result := SQRT(value_1);

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008 273


Captulo 6 Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Cambiar signo (NEG) La instruccin NEG cambia el signo de Source y coloca el resultado en
Destination.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source SINT inmediato valor cuyo signo se cambia

INT tag

DINT

REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Destination SINT tag tag para almacenar el resultado

INT

DINT

REAL

Texto estructurado

dest := -source; Use el signo menos como operador en una expresin. La


expresin cambia el signo de source y almacena el resultado en dest.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


NEG tag FBD_MATH_ADVANCED estructura estructura NEG

274 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Captulo 6

Estructura FBD_MATH

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

la opcin predeterminada es establecido


Source REAL Valor cuyo signo se cambia.

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest REAL Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico
para esta salida.

Descripcin: Si usted cambia el signo de un valor negativo, el resultado es positivo.


Si usted cambia el signo de un valor positivo, el resultado es negativo.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera Destination = 0 Source

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008 275


Captulo 6 Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Ejemplo: Cambie el signo de value_1 y coloque el resultado en negate_result.


Lgica de escalera de rels

Texto estructurado

negate_result := -value_1;

Bloque de funciones

276 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Captulo 6

Valor absoluto (ABS) La instruccin ABS toma el valor absoluto de Source y coloca el
resultado en Destination.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source SINT inmediato valor del cual hallar el valor absoluto

INT tag

DINT

REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Destination SINT tag tag para almacenar el resultado

INT

DINT

REAL

Texto estructurado

dest := ABS(source); Use ABS como funcin. Esta expresin calcula el valor absoluto de
source y almacena el resultado en dest.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


ABS tag FBD_MATH_ADVANCED estructura estructura ABS

Publicacin 1756-RM003K-ES-P Julio 2008 277


Captulo 6 Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Estructura FBD_MATH_ADVANCED

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


Source REAL Valor del cual hallar el valor absoluto.

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest REAL Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico
para esta salida.

Descripcin: La instruccin ABS toma el valor absoluto de Source y coloca el


resultado en Destination.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera Destination = | Source |

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

278 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Captulo 6

Ejemplo: Coloque el valor absoluto de value_1 en value_1_absolute. En este


ejemplo, el valor absoluto de cuatro negativo es cuatro positivo.

Lgica de escalera de rels

Texto estructurado

value_1_absolute := ABS(value_1);

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008 279


Captulo 6 Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Notas:

280 Publicacin 1756-RM003K-ES-P Julio 2008


Captulo 7

Instrucciones de movimiento/lgicas
(MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT,
BAND, BOR, BXOR, BNOT)

Introduccin Usted puede mezclar diferentes tipos de datos, pero puede producirse
prdida de exactitud y error de redondeo, y la instruccin requiere
ms tiempo para ejecutarse. Verifique el bit S:V para determinar si se
trunc el resultado.

Para las instrucciones de lgica de escalera de rels, los tipos de datos


que aparecen en negrita indican tipos de datos ptimos. Las
instrucciones se ejecutan ms rpidamente y requieren menos
memoria si todos los operandos de instruccin usan el mismo tipo de
datos ptimos, tpicamente DINT o REAL.

Las instrucciones de movimiento modifican y mueven bits.

Si desea Use esta instruccin Disponible en estos lenguajes Vea la pgina


copiar un valor MOV lgica de escalera de rels 283

texto estructurado(1)
copiar una parte especfica de un nmero MVM lgica de escalera de rels 285
entero
copiar una parte especfica de un nmero MVMT texto estructurado 288
entero en el bloque de funciones
bloque de funciones
mover bits dentro de un nmero entero o entre BTD lgica de escalera de rels 292
nmeros enteros
mover bits dentro de un nmero entero o entre BTDT texto estructurado 295
nmeros enteros en el bloque de funciones
bloque de funciones
borrar un valor CLR texto estructurado(1) 298

lgica de escalera de rels


reacomodar los bytes de un tag INT, DINT o SWPB lgica de escalera de rels 300
REAL
texto estructurado
(1)
No hay una instruccin equivalente en texto estructurado. Use otra programacin en texto estructurado para lograr el mismo resultado. Vea la descripcin de la
instruccin.

281Publicacin 1756-RM003K-ES-P Julio 2008 281


Captulo 7 Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Las instrucciones lgicas realizan operaciones con los bits.

Si desea: Use esta instruccin: Disponible en estos lenguajes Vea la pgina


operacin Y a nivel de bits Bitwise AND lgica de escalera de rels 304

&(1) texto estructurado(2)

bloque de funciones
operacin O a nivel de bits Bitwise OR lgica de escalera de rels 307

texto estructurado(2)

bloque de funciones
operacin O exclusivo a nivel de bits Bitwise XOR lgica de escalera de rels 310

texto estructurado(2)

bloque de funciones
operacin NOT a nivel de bits Bitwise NOT lgica de escalera de rels 314

texto estructurado(2)

bloque de funciones
Y lgico hasta ocho entradas booleanas. Boolean AND (BAND) texto estructurado(2) 317

bloque de funciones
O lgico hasta ocho entradas booleanas. Boolean OR (BOR) texto estructurado(2) 320

bloque de funciones
realizar un O exclusivo en dos entradas Boolean Exclusive OR texto estructurado(2) 323
booleanas. (BXOR)
bloque de funciones
complementar una entrada booleana. Boolean NOT (BNOT) texto estructurado(2) 326

bloque de funciones
(1)
Texto estructurado solamente.
(2)
En texto estructurado, las operaciones AND, OR, XOR y NOT pueden ser lgicas o a nivel de bits.

282 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Captulo 7

Mover (MOV) La instruccin MOV copia Source en Destination. Source no cambia.

Operandos:

Lgica de escalera de rels

Operando: Tipo: Formato Descripcin:


Source SINT inmediato valor a mover (copiar)

INT tag

DINT

REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Destination SINT tag tag para almacenar el resultado

INT

DINT

REAL

Texto estructurado

dest := source; Use una asignacin := con una expresin. Esta asignacin mueve el
valor de source a dest.

Consulte Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de expresiones y asignaciones
en texto estructurado.

Descripcin: La instruccin MOV copia Source en Destination. Source no cambia.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna

Publicacin 1756-RM003K-ES-P Julio 2008 283


Captulo 7 Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera La instruccin copia Source en Destination.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Ejemplo: Mueva los datos en value_1 a value_2.

Lgica de escalera de rels

Texto estructurado

value_2 := value _1;

284 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Captulo 7

Mover con mscara (MVM) La instruccin MVM copia Source a un Destination y permite
enmascarar porciones de los datos.

Esta instruccin est disponible en texto estructurado y en bloque de


funciones como MVMT; vea la pgina 288.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source SINT inmediato valor a mover

INT tag

DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Mask SINT inmediato qu bits se bloquean o se pasan

INT tag

DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Destination SINT tag tag para almacenar el resultado

INT

DINT

Texto estructurado

dest := (Dest AND NOT (Mask)) Esta instruccin est disponible en texto estructurado como MVMT.
OR (Source AND Mask); O puede combinar lgica a nivel de bits dentro de una expresin y
asignar el resultado al destino. Esta expresin realiza un movimiento
con mscara en Source.

Consulte Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de expresiones y asignaciones
en texto estructurado.

Descripcin: La instruccin MVM usa una mscara para pasar o bloquear bits de
datos de Source. Un nmero 1 en la mscara significa que se pasa el
bit de datos. Un nmero 0 en la mscara significa que se bloquea el
bit de datos.

Si mezcla diferentes tipos de datos enteros, la instruccin llena con


ceros los bits superiores de los tipos de datos enteros menores para
que tengan el mismo tamao que el tipo de datos mayor.

Publicacin 1756-RM003K-ES-P Julio 2008 285


Captulo 7 Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Introduzca un valor de mscara inmediato

Cuando usted introduce una mscara, el software de programacin


cambia de manera predeterminada a valores decimales. Si desea
introducir una mscara usando otro formato, preceda el valor con el
prefijo correcto.

Prefijo: Descripcin
16# hexadecimal

por ejemplo; 16#0F0F


8# octal

por ejemplo; 8#16


2# binario

por ejemplo; 2#00110011

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

condiciones de fallo ninguna

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera La instruccin pasa Source a travs de la mscara y copia el resultado en Destination.
Los bits sin mscara en Destination permanecen sin ningn cambio.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

286 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Captulo 7

Ejemplo: Copie datos de value_a a value_b, mientras permite que los datos
sean enmascarados (un 0 enmascara los datos en value_a).

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1

Las casillas sombreadas muestran los bits cambiados en value_b.

Lgica de escalera de rels

Texto estructurado

value_b := (value_b AND NOT (mask_2)) OR


(value_a AND mask_2);

Publicacin 1756-RM003K-ES-P Julio 2008 287


Captulo 7 Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Movimiento enmascarado La instruccin MVMT primero copia Target en Destination.


Seguidamente la instruccin compara Source enmascarado con
con receptor (MVMT) Destination y hace los cambios requeridos en Destination. Target y
Source permanecen sin ningn cambio.

Esta instruccin est disponible en lgica de escalera de rels como


MVM; vea la pgina 285.

Operandos:

MVMT(MVMT_tag); Texto estructurado

Variable Tipo Formato Descripcin:


MVMT tag FBD_MASKED_MOVE estructura estructura MVMT

Bloque de funciones

Operando Tipo Formato Descripcin


MVMT tag FBD_MASKED_MOVE estructura estructura MVMT

Estructura FBD_MASKED_MOVE

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Bloque de funciones

Si se borra, la instruccin no se ejecuta y las salidas no se actualizan.

Si se establece, la instruccin se ejecuta.

La opcin predeterminada es establecido.

Texto estructurado

Ningn efecto. La instruccin se ejecuta.


Source DINT Valor de entrada para mover el destino con base en el valor de la mscara.

Vlido = cualquier nmero entero


Mask DINT Mscara de bits para mover de Source a Dest. Todos los bits establecidos en uno hacen que
los bits correspondientes se muevan de Source a Dest. Todos los bits que se establecen en
cero hacen que los bits correspondientes no se muevan de Source a Dest.

Vlido = cualquier nmero entero


Target DINT Valor de entrada para mover a Dest antes de mover los bits de Source a travs de la
mscara.

Vlido = cualquier nmero entero

288 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Captulo 7

Parmetro de salida Tipo de datos Descripcin


EnableOut BOOL La instruccin produjo un resultado vlido.
Dest DINT Resultado de la instruccin de movimiento enmascarado. Se establecen indicadores de
estado aritmtico para esta salida.

Descripcin: Cuando se habilita, la instruccin MVMT usa una mscara para pasar o
bloquear bits de datos de Source. Un nmero 1 en la mscara
significa que se pasa el bit de datos. Un nmero 0 en la mscara
significa que se bloquea el bit de datos.

Si mezcla diferentes tipos de datos enteros, la instruccin llena con


ceros los bits superiores de los tipos de datos enteros menores para
que tengan el mismo tamao que el tipo de datos mayor.

Introduzca un valor de mscara inmediato usando una referencia


de entrada

Cuando usted introduce una mscara, el software de programacin


cambia de manera predeterminada a valores decimales. Si desea
introducir una mscara usando otro formato, preceda el valor con el
prefijo correcto.

Prefijo Descripcin
16# hexadecimal

por ejemplo; 16#0F0F


8# octal

por ejemplo; 8#16


2# binario

por ejemplo; 2#00110011

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna

Publicacin 1756-RM003K-ES-P Julio 2008 289


Captulo 7 Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Ejecucin:

Condicin Accin de bloque de funciones Accin de texto estructurado


preescn Ninguna. Ninguna.
primer escn de instruccin Ninguna. Ninguna.
primera ejecucin de Ninguna. Ninguna.
instruccin
EnableIn se borra EnableOut se borra, la instruccin no efecta n. a.
ninguna operacin y las salidas no se actualizan.
EnableIn se establece La instruccin se ejecuta. EnableIn siempre se establece.

EnableOut se establece. La instruccin se ejecuta.


post-escn Ninguna. Ninguna.

Ejemplo: 1. Copie el receptor a Dest.

Receptor 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Dest 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

2. Enmascare Source y comprelo con Dest. Cualquier cambio


requerido se hace en Dest. Source y Target permanecen sin
ningn cambio. Un nmero 0 en la mscara impide que la
instruccin compare ese bit (representado por x en el ejemplo).

Source 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Mask1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

Dest 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1

Las casillas sombreadas muestran los bits cambiados.

Texto estructurado

MVMT_01.Source := value _1;


MVMT_01.Mask := mask1;
MVMT_01.Target := target;

MVMT(MVMT_01);

value_masked := MVMT_01.Dest;

290 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Captulo 7

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008 291


Captulo 7 Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Distribuir campo de bits La instruccin BTD copia los bits especificados de Source, desplaza
los bits a la posicin apropiada y escribe los bits en Destination.
(BTD)
Esta instruccin est disponible en texto estructurado y en bloque de
funciones como BTDT; vea la pgina 295.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source SINT inmediato el tag que contiene los bits a mover

INT tag

DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Source bit DINT inmediato nmero del bit (nmero del bit ms bajo)
desde donde empezar el movimiento
(0-31 DINT)
(0-15 INT) debe estar dentro del rango vlido para el
(0-7 SINT) tipo de datos de Source
Destination SINT tag tag a donde mover los bits

INT

DINT
Destination DINT inmediato nmero del bit (nmero del bit ms bajo)
bit desde donde empezar a copiar bits desde
Source
(0-31 DINT)
(0-15 INT) debe estar dentro del rango vlido para el
(0-7 SINT) tipo de datos del destino
Length DINT inmediato nmero de bits que se van a mover
(1-32)

Descripcin: Cuando se habilita, la instruccin BTD copia un grupo de bits de


Source a Destination. El grupo de bits es identificado por el bit de
Source (el nmero de bit ms bajo del grupo) y la longitud (el nmero
de bits a copiar). El bit de Destination identifica el nmero de bit
menor con el cual se comienza en Destination. Source no cambia.

Si la longitud del campo de bits se extiende ms all de Destination, la


instruccin no guarda los bits adicionales. Los bits adicionales no
pasan a la prxima palabra.

Si mezcla diferentes tipos de datos enteros, la instruccin llena con


ceros los bits superiores de los tipos de datos enteros menores para
que tengan el mismo tamao que el tipo de datos mayor.

292 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Captulo 7

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera La instruccin copia y desplaza los bits de Source a Destination.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Ejemplo 1: Una vez habilitada, la instruccin BTD transfiere los bits dentro de
value_1.

bit de destino bit de origen

value_1 antes de la 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
instruccin BTD

value_1 despus de la 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
instruccin BTD

Las casillas sombreadas muestran los bits que cambiaron en value_1.

Publicacin 1756-RM003K-ES-P Julio 2008 293


Captulo 7 Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Ejemplo 2: Una vez habilitada, la instruccin BTD mueve 10 bits de value_1


a value_2.

bit de origen

value_1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

bit de destino

value_2 antes de la 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
instruccin BTD

value_2 despus de la 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0
instruccin BTD

Las casillas sombreadas muestran los bits que cambiaron en value_2.

294 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Captulo 7

Distribuir campo de bits La instruccin BTDT primero copia Target en Destination.


Seguidamente, la instruccin BTD copia los bits especificados desde
con receptor (BTDT) Source, desplaza los bits a la posicin apropiada y escribe los bits en
Destination. Target y Source no cambian.

Esta instruccin est disponible en lgica de escalera de rels como


BTD; vea la pgina 292.

Operandos:

BTDT(BTDT_tag); Texto estructurado

Variable Tipo Formato Descripcin


BTDT tag FBD_BIT_FIELD_DISTRIBUTE estructura estructura BTDT

Bloque de funciones

Operando Tipo Formato Descripcin


BTDT tag FBD_BIT_FIELD_DISTRIBUTE estructura estructura BTDT

Estructura FBD_BIT_FIELD_DISTRIBUTE

Parmetro de Tipo de datos Descripcin:


entrada
EnableIn BOOL Bloque de funciones:

Si se borra, la instruccin no se ejecuta y las salidas no se actualizan.

Si se establece, la instruccin se ejecuta.

La opcin predeterminada es establecido.

Texto estructurado:

Ningn efecto. La instruccin se ejecuta.


Source DINT El valor de entrada que contiene los bits que se transfieren a Destination.

Vlido = cualquier nmero entero


SourceBit DINT La posicin de bit en Source (el nmero de bit ms bajo desde el cual se inicia la
transferencia).

Vlido = 0-31
Length DINT Nmero de bits que se van a mover

Vlido = 1-32
DestBit DINT La posicin de bit en Dest (el nmero de bit ms bajo al cual se comienza a copiar bits).

Vlido = 0-31

Publicacin 1756-RM003K-ES-P Julio 2008 295


Captulo 7 Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Parmetro de Tipo de datos Descripcin:


entrada
Target DINT Valor de entrada que se transfiere a Dest antes de transferir los bits de Source.

Vlido = cualquier nmero entero


Parmetro de Tipo de datos: Descripcin:
salida:
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest DINT Resultado de la operacin del traslado de bits. Se establecen indicadores de estado
aritmtico para esta salida.

Descripcin: Cuando se habilita, la instruccin BTD copia un grupo de bits de


Source a Destination. El grupo de bits es identificado por el bit de
Source (el nmero de bit ms bajo del grupo) y Length (nmero de
bits a copiar). El bit de Destination identifica el nmero de bit menor
con el cual se comienza en Destination. Source no cambia.

Si la longitud del campo de bits se extiende ms all de Destination,


la instruccin no guarda los bits adicionales. Los bits adicionales no
pasan a la prxima palabra.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin Accin de bloque de funciones Accin de texto estructurado


preescn Ninguna. Ninguna.
primer escn de instruccin Ninguna. Ninguna.
primera ejecucin de Ninguna. Ninguna.
instruccin
EnableIn se borra EnableOut se borra, la instruccin no efecta n. a.
ninguna operacin y las salidas no se actualizan.
EnableIn se establece La instruccin se ejecuta. EnableIn siempre se establece.

EnableOut se establece. La instruccin se ejecuta.


post-escn Ninguna. Ninguna.

296 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Captulo 7

Ejemplo: 1. El controlador copia el receptor en Destination.

Target 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0

Dest 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0

2. SourceBit y Length especifican qu bits en Source se copian en


Destination a partir de DestBit. Source y Target no cambian.
DestBit SourceBit

Source 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0

Dest 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Texto estructurado

BTDT_01.Source := source;
BTDT_01.SourceBit := source_bit;
BTDT_01.Length := length;
BTDT_01.DestBit := dest_bit;
BTDT_01.Target := target;

BTDT(BTDT_01);

distributed_value := BTDT_01.Dest;

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008 297


Captulo 7 Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Borrar (CLR) La instruccin CLR borra (pone en cero) todos los bits de Destination.

Operandos:

Lgica de escalera de rels


Operando Tipo Formato Descripcin
Destination SINT tag tag que se borra

INT

DINT

REAL

dest := 0; Texto estructurado

El texto estructurado no cuenta con la instruccin CLR. En lugar de


ello, asigne 0 al tag que desea borrar. Esta declaracin de asignacin
borra dest.

Consulte Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones y
declaraciones de asignacin en texto estructurado.

Descripcin: La instruccin CLR borra todos los bits de Destination.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna

Ejecucin:
Condicin Accin de lgica de escalera de rels
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera La instruccin borra Destination.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

298 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Captulo 7

Ejemplo: Ponga en cero todos los bits de value.

Lgica de escalera de rels

Texto estructurado

value := 0;

Publicacin 1756-RM003K-ES-P Julio 2008 299


Captulo 7 Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Intercambiar byte (SWPB) La instruccin SWPB reacomoda los bytes de un valor.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Introduzca


Source INT tag el tag que contiene los bytes que desea reacomodar

DINT

REAL
Modo de orden Si Source Y usted desea cambiar los bytes a este Entonces
es un patrn (cada letra representa un byte seleccione
diferente)
INT n. a. cualquiera de las
opciones
DINT ABCD DCBA REVERSE
(o introduzca 0)
REAL
ABCD CDAB WORD (o introduzca 1)
ABCD BADC HIGH/LOW
(o introduzca 2)
Destination INT tag tag para almacenar los bytes en el nuevo orden
Si Source Entonces el destino debe ser un
DINT
es un
REAL INT INT
DINT
DINT DINT
REAL REAL

Texto estructurado
SWPB(Source,OrderMode,Dest);
Los operandos son los mismos que los de la instruccin SWPB de
lgica de escalera de rels. Si selecciona el modo de orden
HIGH/LOW, introdzcalo como HIGHLOW o HIGH_LOW (sin la
barra diagonal).

300 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Captulo 7

Descripcin: La instruccin SWPB reacomoda el orden de los bytes de Source y


coloca el resultado en Destination.

Cuando usted lee o escribe caracteres ASCII, generalmente no


necesita intercambiar caracteres. Las instrucciones de lectura y
escritura ASCII (ARD, ARL, AWA, AWT) automticamente intercambian
caracteres, como se muestra a continuacin.

lector de cdigos de barras

BA Nombre del tag Valor Estilo Tipo


bar_code[0] AB ASCII INT
42969

42968

AB

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es verdadera verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin La instruccin reacomoda los bytes especificados. La instruccin reacomoda los bytes especificados.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

Publicacin 1756-RM003K-ES-P Julio 2008 301


Captulo 7 Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Ejemplo 1: Las tres instrucciones SWPB reacomodan los bytes de DINT_1 segn
un modo de orden diferente. El estilo de visualizacin es ASCII, y
cada carcter representa un byte. Cada instruccin coloca los bytes, en
el nuevo orden, en un diferente Destination.

Lgica de escalera de rels

Texto estructurado

SWPB(DINT_1,REVERSE,DINT_1_reverse);
SWPB(DINT_1,WORD,DINT_1_swap_word);
SWPB(DINT_1,HIGHLOW,DINT_1_swap_high_low);

Ejemplo 2: El siguiente ejemplo invierte los bytes en cada elemento de una


matriz. Para un proyecto RSLogix 5000 que contiene este ejemplo,
abra la carpeta RSLogix 5000\Projects\Samples, archivo
Swap_Bytes_in_Array.ACD.

1. Inicialice los tags. La instruccin SIZE encuentra el nmero de


elementos en array y almacena ese valor en array_length. Una
instruccin subsiguiente usa este valor para determinar cundo
actu la rutina en todos los elementos de la matriz.

2. Invierta los bytes en un elemento de array.


La instruccin SWPB invierte los bytes del nmero de elemento
indicado por el valor de index. Por ejemplo, cuando index es
igual a 0, la instruccin SWPB acta sobre array[0].
La instruccin ADD incrementa index. La prxima vez que se
ejecute la instruccin, la instruccin SWPB acta sobre el
siguiente elemento en array.

3. Determine cundo la instruccin SWPB actu sobre todos los


elementos en la matriz.
Si index es menor que el nmero de elementos en la matriz
(array_length), contine con el siguiente elemento en la matriz.
Si index es igual a array_length, significa que SWPB actu sobre
todos los elementos en la matriz.

302 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Captulo 7

Lgica de escalera de rels

Inicialice los tags.

Invierta los bytes.

Determine si la instruccin SWPB actu sobre todos los elementos en la matriz.

Texto estructurado

index := 0;
SIZE (array[0],0,array_length);
REPEAT
SWPB(array[index],REVERSE,array_bytes_reverse[index]);
index := index + 1;
UNTIL(index >= array_length)END_REPEAT;

Publicacin 1756-RM003K-ES-P Julio 2008 303


Captulo 7 Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Y a nivel de bits (AND) La instruccin AND realiza una operacin Y a nivel de bits usando los
bits en Source A y Source B, y coloca el resultado en Destination.

Para realizar una operacin lgica Y, vea la pgina 317.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source A SINT inmediato valor con que se realiza la operacin Y con
Source B
INT tag

DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Source B SINT inmediato valor con que se a realiza la operacin AND
con Source A
INT tag

DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Destination SINT tag almacena el resultado

INT

DINT

Texto estructurado
dest := sourceA AND sourceB
Use AND o el signo & como operador dentro de una expresin. Esta
expresin evala sourceA AND sourceB.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


AND tag FBD_LOGICAL estructura estructura AND

304 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Captulo 7

Estructura FBD_LOGICAL

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


SourceA DINT Valor con que se realiza la operacin AND con SourceB

Vlido = cualquier nmero entero


SourceB DINT Valor con que se realiza la operacin AND con SourceA

Vlido = cualquier nmero entero


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest DINT Resultado de la instruccin. Se establecen indicadores de estado aritmtico para esta salida.

Descripcin: Una vez habilitada, la instruccin evala la operacin AND:


Si el bit en Y el bit en El bit en Destination
Source A es Source B es es
0 0 0
0 1 0
1 0 0
1 1 1

Si mezcla diferentes tipos de datos enteros, la instruccin llena con


ceros los bits superiores de los tipos de datos enteros menores para
que tengan el mismo tamao que el tipo de datos mayor.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna


Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera La instruccin realiza una operacin Y a nivel de bits.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008 305


Captulo 7 Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Ejemplo: Cuando se habilita, la instruccin AND realiza una operacin Y a nivel


de bits en SourceA y SourceB y coloca el resultado en Dest.

SourceA 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1

SourceB 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0

Dest 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0

Lgica de escalera de rels

Texto estructurado

value_result_and := value_1 AND value_2;

Bloque de funciones

306 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Captulo 7

O a nivel de bits (OR) La instruccin OR realiza una operacin O a nivel de bits usando los
bits en Source A y Source B, y coloca el resultado en Destination.

Para realizar una operacin lgica O, vea la pgina 320.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source A SINT inmediato valor con que se realiza la
operacin O con Source B
INT tag

DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Source B SINT inmediato valor con que se realiza la
operacin O con Source A
INT tag

DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Destination SINT tag almacena el resultado

INT

DINT

Texto estructurado
dest := sourceA OR sourceB
Use OR como operador dentro de una expresin. Esta expresin
evala sourceA OR sourceB.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


OR tag FBD_LOGICAL estructura estructura OR

Publicacin 1756-RM003K-ES-P Julio 2008 307


Captulo 7 Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Estructura FBD_LOGICAL

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


SourceA DINT Valor con que se realiza la operacin O con SourceB

Vlido = cualquier nmero entero


SourceB DINT Valor con que se realiza la operacin O con SourceA

Vlido = cualquier nmero entero


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest DINT Resultado de la instruccin. Se establecen indicadores de estado aritmtico para esta salida.

Descripcin: Una vez habilitada, la instruccin evala la operacin O:


Si el bit en Y el bit en El bit en Destination
Source A es Source B es es
0 0 0
0 1 1
1 0 1
1 1 1

Si mezcla diferentes tipos de datos enteros, la instruccin llena con


ceros los bits superiores de los tipos de datos enteros menores para
que tengan el mismo tamao que el tipo de datos mayor.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna


Ejecucin:
Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera La instruccin realiza una operacin O a nivel de bits.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

308 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Captulo 7

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Ejemplo: Cuando se habilita, la instruccin OR realiza una operacin O a nivel


de bits en SourceA y SourceB y coloca el resultado en Dest.

SourceA 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1

SourceB 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0

Dest 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1

Lgica de escalera de rels

Texto estructurado

value_result_or := value_1 OR value_2;

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008 309


Captulo 7 Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

O exclusivo a nivel de bits La instruccin XOR realiza una operacin O exclusivo a nivel de bits
usando los bits en Source A y Source B, y coloca el resultado en
(XOR) Destination.

Para realizar una operacin lgica XO, vea la pgina 323.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source A SINT inmediato valor con que se realiza la operacin
XOR con Source B
INT tag

DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Source B SINT inmediato valor con que se realiza la operacin
XOR con Source A
INT tag

DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Destination SINT tag almacena el resultado

INT

DINT

Texto estructurado
dest := sourceA XOR sourceB
Use XOR como operador dentro de una expresin. Esta expresin
evala sourceA XOR sourceB.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


XOR tag FBD_LOGICAL estructura estructura XOR

310 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Captulo 7

Estructura FBD_LOGICAL

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


SourceA DINT Valor con que se realiza la operacin XOR con SourceB

Vlido = cualquier nmero entero


SourceB DINT Valor con que se realiza la operacin XOR con SourceA

Vlido = cualquier nmero entero


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest DINT Resultado de la instruccin. Se establecen indicadores de estado aritmtico para esta salida.

Descripcin: Una vez habilitada, la instruccin evala la funcin XOR:


Si el bit en Y el bit en El bit en
Source A es Source B es Destination es
0 0 0
0 1 1
1 0 1
1 1 0

Si mezcla diferentes tipos de datos enteros, la instruccin llena con


ceros los bits superiores de los tipos de datos enteros menores para
que tengan el mismo tamao que el tipo de datos mayor.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera La instruccin realiza una operacin O a nivel de bits.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008 311


Captulo 7 Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Ejemplo: Cuando se habilita, la instruccin AND realiza una operacin O


exclusivo a nivel de bits en SourceA y SourceB y coloca el resultado
en el tag de destino.

value_1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1

value_2 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0

value_result_xor 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1

Lgica de escalera de rels

Texto estructurado

value_result_xor := value_1 XOR value_2;

312 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Captulo 7

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008 313


Captulo 7 Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

NO a nivel de bits (NOT) La instruccin NOT realiza un NO a nivel de bits usando los bits en
Source y coloca el resultado en Destination.

Para realizar una operacin lgica NO, vea la pgina 326.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source SINT inmediato valor sobre el cual se aplicar la
operacin NO
INT tag

DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Destination SINT tag almacena el resultado

INT

DINT

Texto estructurado
dest := NOT source
Use NOT como operador dentro de una expresin. Esta expresin
evala source con la operacin NOT.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


NOT tag FBD_LOGICAL estructura estructura NOT

314 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Captulo 7

Estructura FBD_LOGICAL

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

la opcin predeterminada es establecido


Source DINT Valor sobre el cual se aplicar la operacin NO

Vlido = cualquier nmero entero


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest DINT Resultado de la instruccin. Se establecen indicadores de estado aritmtico para esta salida.

Descripcin: Una vez habilitada, la instruccin evala la operacin NO:

Si el bit en El bit en Destination


Source es: es:
0 1
1 0

Si mezcla diferentes tipos de datos enteros, la instruccin llena con


ceros los bits superiores de los tipos de datos enteros menores para
que tengan el mismo tamao que el tipo de datos mayor.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera La instruccin realiza una operacin NO a nivel de bits.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008 315


Captulo 7 Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Ejemplo: Cuando se habilita, la instruccin NOT realiza una operacin NO a


nivel de bits en Source y coloca el resultado en Dest.

value_1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1

value_result_not 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0

Lgica de escalera de rels

Texto estructurado

value_result_not := NOT value_1;

Bloque de funciones

316 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Captulo 7

Y booleano (BAND) La instruccin BAND aplica la operacin lgica Y a 8 entradas


booleanas como mximo.

Para realizar una operacin Y a nivel de bits, vea la pgina 304.

Operandos:

Texto estructurado
IF operandA AND operandB THEN
Use AND o el signo & como operador dentro de una expresin.
<statement>;
Los operandos deben ser valores BOOL o expresiones que resultan
END_IF; en valores BOOL. Esta expresin evala si tanto operandA como
operandB estn establecidos (verdaderos).

Consulte el Apndice C, para obtener informacin sobre la sintaxis de


las expresiones en texto estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


BAND tag FBD_BOOLEAN_AND estructura estructura BAND

Estructura FBD_BOOLEAN_AND

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


In1 BOOL Primera entrada booleana.

La opcin predeterminada es establecido.


In2 BOOL Segunda entrada booleana.

La opcin predeterminada es establecido.


In3 BOOL Tercera entrada booleana.

La opcin predeterminada es establecido.


In4 BOOL Cuarta entrada booleana.

La opcin predeterminada es establecido.


In5 BOOL Quinta entrada booleana.

La opcin predeterminada es establecido.


In6 BOOL Sexta entrada booleana.

La opcin predeterminada es establecido.


In7 BOOL Sptima entrada booleana.

La opcin predeterminada es establecido.

Publicacin 1756-RM003K-ES-P Julio 2008 317


Captulo 7 Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Parmetro de Tipo de datos Descripcin


entrada
In8 BOOL Octava entrada booleana.

La opcin predeterminada es establecido.


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL Habilitacin de salida.
Out BOOL La salida de la instruccin.

Descripcin: La instruccin BAND aplica la operacin lgica Y a 8 entradas


booleanas como mximo. Si no se usa una entrada, sta se pone en
uno (1) de manera predeterminada.

Out = In1 AND In2 AND In3 AND In4 AND In5 AND In6 AND In7 AND In8

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin Accin de bloque de funciones


preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Ejemplo 1: Este ejemplo efecta la operacin Y en bool_in1 y bool_in2 y coloca


el resultado en value_result_and.

Si BOOL_IN1 es Si BOOL_IN2 es Entonces VALUE_RESULT_AND es


0 0 0
0 1 0
1 0 0
1 1 1

Texto estructurado

value_result_and := bool_in1 AND bool_in2;

318 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Captulo 7

Bloque de funciones

Ejemplo 2: Si bool_in1 y bool_in2 se establecen (son verdaderos), light1 se


establece (se enciende). De lo contrario, light1 se borra (se apaga).

Texto estructurado

IF bool_in1 AND bool_in2 THEN


light1 := 1;
ELSE
light1 := 0;
END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008 319


Captulo 7 Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

O booleano (BOR) La instruccin BOR aplica la operacin lgica O a 8 entradas


booleanas como mximo.

Para realizar un O a nivel de bits, vea la pgina 307.

Operandos:

Texto estructurado
IF operandA OR operandB THEN
Use OR como operador dentro de una expresin. Los operandos
<statement>;
deben ser valores BOOLEANOS o expresiones que resultan en valores
END_IF; BOOLEANOS. Esta expresin evala si operandA u operandB, o
ambos estn establecidos (verdaderos).

Consulte el Apndice C, para obtener informacin sobre la sintaxis de


las expresiones en texto estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


BOR tag FBD_BOOLEAN_OR estructura estructura BOR

Estructura FBD_BOOLEAN_OR

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


In1 BOOL Primera entrada booleana.

La opcin predeterminada es borrado.


In2 BOOL Segunda entrada booleana.

La opcin predeterminada es borrado.


In3 BOOL Tercera entrada booleana.

La opcin predeterminada es borrado.


In4 BOOL Cuarta entrada booleana.

La opcin predeterminada es borrado.


In5 BOOL Quinta entrada booleana.

La opcin predeterminada es borrado.


In6 BOOL Sexta entrada booleana.

La opcin predeterminada es borrado.


In7 BOOL Sptima entrada booleana.

La opcin predeterminada es borrado.

320 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Captulo 7

Parmetro de Tipo de datos Descripcin


entrada
In8 BOOL Octava entrada booleana.

La opcin predeterminada es borrado.


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL Habilitacin de salida.
Out BOOL La salida de la instruccin.

Descripcin: La instruccin BOR aplica la operacin lgica O a 8 entradas


booleanas como mximo. Si no se usa una entrada, sta se pone en
cero (0) de manera predeterminada.

Out = In1 OR In2 OR In3 OR In4 OR In5 OR In6 OR In7 OR In8

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin Accin de bloque de funciones


preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Ejemplo 1: Este ejemplo efecta la operacin O en bool_in1 y bool_in2 y coloca


el resultado en value_result_or.

Si BOOL_IN1 es Si BOOL_IN2 es Entonces VALUE_RESULT_OR es


0 0 0
0 1 1
1 0 1
1 1 1

Texto estructurado

value_result_or := bool_in1 OR bool_in2;

Publicacin 1756-RM003K-ES-P Julio 2008 321


Captulo 7 Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Bloque de funciones

Ejemplo 2: En este ejemplo, light1 se establece (se enciende) si:


slo bool_in1 se establece (verdadero).
slo bool_in2 se establece (verdadero).
ambos bool_in1 y bool_in2 se establecen (verdaderos).

De lo contrario, light1 se borra (se apaga).

Texto estructurado

IF bool_in1 OR bool_in2 THEN


light1 := 1;
ELSE
light1 := 0;
END_IF;

322 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Captulo 7

O exclusivo booleano La instruccin BXOR realiza una operacin O exclusivo de dos


entradas booleanas.
(BXOR)
Para realizar un XOR a nivel de bits, vea la pgina 310.

Operandos:

Texto estructurado
IF operandA XOR operandB THEN
Use XOR como operador dentro de una expresin. Los operandos
<statement>;
deben ser valores BOOLEANOS o expresiones que resultan en valores
END_IF; BOOLEANOS. Esta expresin evala si slo operandA o slo
operandB, est establecido (verdadero).

Consulte el Apndice C, para obtener informacin sobre la sintaxis de


las expresiones en texto estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


BXOR tag FBD_BOOLEAN_XOR estructura estructura BXOR

Estructura FBD_BOOLEAN_XOR

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


In1 BOOL Primera entrada booleana.

La opcin predeterminada es borrado.


In2 BOOL Segunda entrada booleana.

La opcin predeterminada es borrado.


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL Habilitacin de salida.
Out BOOL La salida de la instruccin.

Descripcin: La instruccin BXOR realiza una operacin O exclusivo de dos


entradas booleanas.

Out = In1 XOR In2

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Publicacin 1756-RM003K-ES-P Julio 2008 323


Captulo 7 Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Ejecucin:

Condicin Accin de bloque de funciones


preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Ejemplo 1: Este ejemplo realiza una operacin O exclusivo en bool_in1 y


bool_in2 y coloca el resultado en value_result_xor.

Si BOOL_IN1 es Si BOOL_IN2 es Entonces VALUE_RESULT_XOR es


0 0 0
0 1 1
1 0 1
1 1 0

Texto estructurado

value_result_xor := bool_in1 XOR bool_in2;

Bloque de funciones

324 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Captulo 7

Ejemplo 2: En este ejemplo, light1 se establece (se enciende) si:


slo bool_in1 se establece (verdadero).
slo bool_in2 se establece (verdadero).

De lo contrario, light1 se borra (se apaga).

Texto estructurado

IF bool_in1 XOR bool_in2 THEN


light1 := 1;
ELSE
light1 := 0;
END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008 325


Captulo 7 Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

NO booleano (BNOT) La instruccin BNOT complementa una entrada booleana.

Para realizar una operacin NO a nivel de bits, vea la pgina 314.

Operandos:

Texto estructurado
IF NOT operand THEN
Use NOT como operador dentro de una expresin. El operando debe
<statement>;
ser un valor BOOL o expresiones que resultan en valores BOOL. Esta
END_IF; expresin evala si el operando est borrado (falso).

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


BNOT tag FBD_BOOLEAN_NOT estructura estructura BNOT

Estructura FBD_BOOLEAN_NOT

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


In BOOL Entrada a la instruccin

La opcin predeterminada es establecido.


Parmetro de salida Tipo de datos Descripcin:
EnableOut BOOL Habilitacin de salida.
Out BOOL La salida de la instruccin.

Descripcin: La instruccin BNOT complementa una entrada booleana.

Out = NOT In

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

326 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Captulo 7

Ejecucin:

Condicin Accin de bloque de funciones


preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Ejemplo 1: Este ejemplo complementa bool_in1 y coloca el resultado en


value_result_not.

Si BOOL_IN1 es Entonces VALUE_RESULT_NOT es


0 1
1 0

Texto estructurado

value_result_not := NOT bool_in1;

Bloque de funciones

Ejemplo 2: Si bool_in1 se borra, light1 se borra (se apaga). De lo contrario, light1


se establece (se enciende).

Texto estructurado

IF NOT bool_in1 THEN


light1 := 0;
ELSE
light1 := 1;
END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008 327


Captulo 7 Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Notas:

328 Publicacin 1756-RM003K-ES-P Julio 2008


Captulo 8

Instrucciones de matriz
(archivo)/miscelneas
(FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Introduccin Las instrucciones de archivo/miscelneas realizan operaciones en


matrices de datos.

Si desea Use esta instruccin Disponible en estos lenguajes Vea la pgina


realizar operaciones aritmticas, lgicas, de FAL lgica de escalera de rels 335
desplazamiento y de funciones en valores en
matrices texto estructurado(1)
buscar y comparar valores en matrices FSC lgica de escalera de rels 347
copiar el contenido de una matriz en otra matriz COP lgica de escalera de rels 356

texto estructurado
copiar el contenido de una matriz en otra matriz CPS lgica de escalera de rels 356
sin interrupcin
texto estructurado
llenar una matriz con datos especficos FLL lgica de escalera de rels 362

texto estructurado(1)
calcular el promedio de una matriz de valores AVE lgica de escalera de rels 366

texto estructurado(1)
organizar una dimensin de datos de matriz en SRT lgica de escalera de rels 371
orden ascendente
texto estructurado
calcular la desviacin estndar de una matriz STD lgica de escalera de rels 376
de valores
texto estructurado(1)
encontrar el tamao de una dimensin de una SIZE lgica de escalera de rels 381
matriz
texto estructurado
(1)
No hay una instruccin equivalente en texto estructurado. Use otra programacin en texto estructurado para lograr el mismo resultado. Vea la descripcin de la
instruccin.

Usted puede mezclar diferentes tipos de datos, pero puede producirse


prdida de exactitud y error de redondeo, y la instruccin requiere
ms tiempo para ejecutarse. Verifique el bit S:V para determinar si se
trunc el resultado.

Para las instrucciones de lgica de escalera de rels, los tipos de datos


que aparecen en negrita indican tipos de datos ptimos. Las
instrucciones se ejecutan ms rpidamente y requieren menos
memoria si todos los operandos de instruccin usan el mismo tipo de
datos ptimos, tpicamente DINT o REAL.

329Publicacin 1756-RM003K-ES-P Julio 2008 329


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Seleccin del modo de Para las instrucciones FAL y FSC, el modo indica al controlador cmo
distribuir la operacin de la matriz.
operacin
Si desea Seleccione este
modo
realizar una operacin en todos los elementos Todos
especificados de una matriz antes de continuar con la
prxima instruccin
distribuir operaciones de matriz entre un nmero de Numrico
escanes

introduzca el nmero de elementos sobre los que se debe


operar por escn (1-2147483647)
manipular un elemento de la matriz cada vez que la Incremental
condicin de entrada de rengln cambia de falsa a
verdadera

Modo Todos

En el modo Todos, se opera sobre todos los elementos de la matriz


antes de continuar con la prxima instruccin La operacin comienza
cuando la condicin de entrada del rengln cambia de falso a
verdadero. El valor de posicin (.POS) en la estructura de control
apunta al elemento de la matriz que la instruccin est usando
actualmente. La operacin se detiene cuando el valor .POS es igual al
valor .LEN.

Matriz de datos un escn

16639

330 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

El siguiente diagrama temporal muestra la relacin entre los bits de


estado y la operacin de la instruccin. Cuando concluye la ejecucin
de la instruccin, se establece el bit .DN. El bit .DN, el bit .EN y el
valor .POS se borran cuando la condicin de entrada del rengln es
falsa. Slo entonces podr activarse otra ejecucin de la instruccin
por una transicin de falso a verdadero de la condicin de entrada del
rengln.

un escn

condicin de entrada de rengln

bit .EN

bit .DN
borra los bits de estado y
borra el valor .POS

escn de la instruccin

operacin concluida no se realiza la ejecucin 40010

Modo numrico

El modo numrico distribuye la operacin de la matriz entre un


nmero de escanes. Este modo es til cuando se trabaja con datos no
crticos en cuando a tiempo o con grandes cantidades de datos. Usted
introduce el nmero de elementos sobre los que se va a operar por
cada escn, lo que mantiene ms corto el tiempo de escn.

Publicacin 1756-RM003K-ES-P Julio 2008 331


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

La ejecucin se activa cuando la condicin de entrada del rengln


cambia de falso a verdadero. Una vez activada, la instruccin se
ejecuta cada vez que se escanea por el nmero de escanes necesarios
para completar la operacin en toda la matriz. Una vez activada, la
condicin de entrada del rengln puede cambiar repetidamente sin
interrumpir la ejecucin de la instruccin.

un escn

segundo escn

siguiente escn

16641

IMPORTANTE Evite usar los resultados de una instruccin de archivo que


funciona en modo numrico hasta que est establecido el
bit .DN.

El siguiente diagrama muestra la relacin entre los bits de estado y la


operacin de la instruccin. Cuando concluye la ejecucin de la
instruccin, se establece el bit .DN.

el rengln es verdadero al concluir el rengln es falso al concluir

mltiples escanes mltiples escanes

condicin de entrada de rengln

bit .EN

bit .DN

escn de la instruccin

operacin concluida operacin concluida 40013

borra los bits de estado y borra los bits de estado


borra el valor .POS y borra el valor .POS

332 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Si la condicin de entrada de rengln es verdadera al concluir, los


bits .EN y .DN se establecen hasta que la condicin de entrada de
rengln se hace falsa. Cuando la condicin de entrada de rengln
cambia a falso, estos bits se borran y el valor .POS se borra.

Si la condicin de entrada de rengln es falsa al concluir, el bit .EN se


borra inmediatamente. Un escn despus de que se borra el bit .EN, el
bit .DN y el valor .POS se borran.

Modo incremental

El modo incremental manipula un elemento de la matriz cada vez que


la condicin de entrada de rengln de la instruccin cambia de falso a
verdadero.

Habilitacin de 1 instruccin
Habilitacin de 2 instruccin
Habilitacin de 3 instruccin

Habilitacin de ltima instruccin

16643

Publicacin 1756-RM003K-ES-P Julio 2008 333


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

El siguiente diagrama muestra la relacin entre los bits de estado y la


operacin de la instruccin. La ejecucin se realiza slo en un escn
en el cual la condicin de entrada del rengln cambia de falso a
verdadero. Cada vez que esto ocurre, slo se manipula un elemento
de la matriz. Si la condicin de entrada de rengln permanece
verdadera por ms de un escn, la instruccin slo se ejecuta durante
el primer escn.

un escn

condicin de entrada de rengln

bit .EN

bit .DN

40014
escn de la instruccin

operacin borra los bits de estado


concluida y borra el valor .POS

El bit .EN se establece cuando la condicin de entrada del rengln es


verdadera. El bit .DN se establece cuando el ltimo elemento de la
matriz ha sido manipulado. Cuando el ltimo elemento ha sido
manipulado y la condicin de entrada de rengln cambia a falso, se
borran el bit .EN, el bit .DN y el valor .POS.

La diferencia entre el modo incremental y el modo numrico a un


rgimen de un elemento por escn es:

El modo numrico con cualquier nmero de elementos por


escn requiere slo una transicin de falso a verdadero de la
condicin de entrada de rengln para comenzar la ejecucin.
La instruccin contina ejecutando el nmero especificado de
elementos en cada escn hasta concluir, independientemente
del estado de la condicin de entrada de rengln.

El modo incremental requiere que la condicin de entrada de


rengln cambie de falso a verdadero para manipular un
elemento de la matriz.

334 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Aritmtica y lgica de La instruccin FAL realiza operaciones de copia, aritmticas, lgicas y


funciones en los datos almacenados en una matriz.
archivo (FAL)
Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Control CONTROL tag estructura de control para la
operacin
Length DINT inmediato nmero de elementos en la matriz que
se manipularn
Position DINT inmediato elemento actual en la matriz

el valor inicial es tpicamente 0


Mode DINT inmediato cmo distribuir la operacin

seleccione INC, ALL o introduzca un


nmero
Destination SINT tag tag para almacenar el resultado

INT

DINT

REAL
Expression SINT inmediato una expresin que consiste en tags
y/o valores inmediatos separados por
INT tag operadores

DINT

REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.

Texto estructurado

El texto estructurado no cuenta con la instruccin FAL, pero usted


puede lograr los mismos resultados usando una instruccin SIZE y
una construccin FOR...DO u otra construccin de lazo.

SIZE(destination,0,length-1);
FOR position = 0 TO length DO
destination[position] := numeric_expression;
END_FOR;

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las construcciones en texto
estructurado.

Publicacin 1756-RM003K-ES-P Julio 2008 335


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Estructura CONTROL

Mnemnico Tipo de datos Descripcin


.EN BOOL El bit de habilitacin indica que la instruccin FAL est habilitada.
.DN BOOL El bit de efectuado se establece cuando la instruccin ha efectuado la operacin en el ltimo
elemento (.POS = .LEN).
.ER BOOL El bit de error se establece si la expresin genera un overflow (se establece S:V). La
instruccin detiene la ejecucin hasta que el programa borra el bit .ER. El valor .POS contiene
la posicin del elemento que caus el overflow.
.LEN DINT La longitud especifica el nmero de elementos de la matriz sobre el que opera la instruccin
FAL.
.POS DINT La posicin contiene la posicin del elemento actual al cual la instruccin obtiene acceso.

Descripcin: La instruccin FAL realiza las mismas operaciones en las matrices que
la instruccin CPT realiza en los elementos.

Los ejemplos que aparecen a partir de la pgina 342 describen cmo


usar el valor .POS para procesar una matriz. Si un subndice de la
expresin de Destination se encuentra fuera de rango, la instruccin
FAL genera un fallo mayor (tipo 4, cdigo 20).

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo:

Ocurrir un fallo mayor si Tipo de fallo Cdigo de fallo


el subndice est fuera de rango 4 20
.POS < 0 o .LEN < 0 4 21

336 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln es falsa

Bit .DN = 0 no
examine el modo INC se borra el bit interno
bit .DN

bit .DN = 1 s

no .LEN < 0 o s
el bit .EN se borra el bit .EN se borra modo ALL fallo mayor
.POS < 0
el bit .ER se borra
el bit .DN se borra
el valor .POS se borra s no

.POS = .POS + 1

s
.LEN = 0

no
s
.POS = 0

no
no .POS < .LEN

.POS = .POS - 1 s

no
.LEN > modo
el bit .DN se establece
el bit .EN se establece
s

modo = .LEN
el bit .DN se
establece
el bit .EN se borra

modo
numrico
pgina 341

la condicin de salida de
rengln se establece como
falsa

fin

Publicacin 1756-RM003K-ES-P Julio 2008 337


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Condicin Accin de lgica de escalera de rels

condicin de entrada de rengln es verdadera

.LEN < 0 o s pgina 341


.POS < 0 fallo mayor
Bit .ER = 0 modo
examinar el numrico
bit .ER no

bit .ER = 1 bit .DN = 0 no

no no
examinar el .LEN = 0 modo INC modo ALL
bit .DN

bit .DN = 1 s s s

el bit .DN se establece


el bit .EN se establece modo modo
INC ALL

pgina 339 pgina 340


comn

loop_count =
loop_count - 1

no
loop_count < 0 .POS = .POS + 1

s
evaluar la expresin

no
examinar S:V

.POS = .POS + 1 el bit .ER se establece

no
.POS = .LEN

el bit .DN se establece


el bit .EN se establece .POS = .POS + 1

la condicin de salida de
rengln se establece como
verdadera

fin

338 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Condicin Accin de lgica de escalera de rels

modo
INC

bit .EN = 1
examinar el
bit .EN

bit .EN = 0

bit = 1
examinar el .POS = .POS + 1
bit interno

bit = 0

el bit interno se establece

s s
.POS .LEN .POS = 0

no no

el bit .EN se .POS = .POS - 1


establece
loop_count = 1
.POS = .POS - 1
el bit .DN se establece
el bit .EN se establece

la condicin de salida de
comn rengln se establece como
verdadera
pgina 338

fin

Publicacin 1756-RM003K-ES-P Julio 2008 339


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Condicin Accin de lgica de escalera de rels

modo
ALL

bit .EN = 0 bit = 1


examinar el examinar el
bit .EN bit interno

bit .EN = 1 bit = 0

.POS = .POS + 1 el bit .EN se establece

s s
.POS .LEN .POS = 0

no no

loop_count = .LEN - .POS .POS = .POS - 1


.POS = .POS - 1

el bit .DN se establece la condicin de salida de


el bit .EN se establece rengln se establece como
comn verdadera

pgina 338
fin

340 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Condicin Accin de lgica de escalera de rels

modo
numrico

bit .EN = 1
examinar el
bit .EN

bit .EN = 0

.POS = .POS + 1

bit = 1
examinar el
bit interno

bit = 0

el bit interno se establece

s s
.POS .LEN .POS = 0

no no

.POS = .POS - 1
no
modo = .LEN .LEN modo

s
el bit .DN se establece la condicin de salida de
el bit .EN se establece el bit .EN se establece rengln se establece como
loop_count = .LEN - .POS verdadera
.POS = .POS - 1

fin

modo s
loop_count comn

pgina 338
no

el bit .EN se establece


loop_count = modo

post-escn La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008 341


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Ejemplo 1: Una vez habilitada, la instruccin FAL copia cada elemento de


array_2 en la misma posicin dentro de array_1.
copia de matriz a matriz

Expresin: Destino:
array_2[control_2.pos] array_1[control_2.pos]

Ejemplo 2: Una vez habilitada, la instruccin FAL copia value_1 en las


10 primeras posiciones de la segunda dimensin de array_2.
copia de elemento a matriz

Expresin: Destino:
value_1 array_2[0,control_2.pos]

Ejemplo 3: Cada vez que la instruccin FAL se habilita, copia el valor actual de
array_1 a value_1. La instruccin FAL usa el modo incremental; por
lo tanto, slo se copia un valor de matriz cada vez que se habilita la
instruccin. La prxima vez que se habilita la instruccin, sta
sobrescribe value_1 con el siguiente valor en array_1.
copia de matriz a elemento

Expresin: Destino:
array_1[control_1.pos] value_1

Ejemplo 4: Cuando se habilita, la instruccin FAL suma value_1 y value_2 y


almacena el resultado en la posicin actual de array_1.
operacin aritmtica: (elemento + elemento) a matriz

Expresin: Destino:
value_1 + value_2 array_1[control_1.pos]

342 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Ejemplo 5: Cuando se habilita, la instruccin FAL divide el valor en la posicin


actual de array_2 entre el valor de la posicin actual de array_3 y
almacena el resultado en la posicin actual de array_1.
operacin aritmtica: (matriz/matriz) a matriz

Expresin: Destino:
array_2[control_2.pos] / array_3[control_2.pos] array_1[control_2.pos]

Ejemplo 6: Cuando se habilita, la instruccin FAL suma el valor en la posicin


actual en array_1 y value_1, y almacena el resultado en la posicin
actual en array_3. La instruccin debe ejecutarse 10 veces para que se
manipulen array_1 y array_3 por completo.
operacin aritmtica: (matriz + elemento) a matriz

Expresin: Destino:
array_1[control_1.pos] + value_1 array_3[control_1.pos]

Ejemplo 7: Cada vez que la instruccin FAL se habilita, suma value_1 al valor
actual de array_1 y almacena el resultado en value_2. La instruccin
FAL usa el modo incremental; por lo tanto, slo se suma un valor de
matriz a value_1 cada vez que se habilita la instruccin. La siguiente
vez que se habilita la instruccin, sta sobrescribe value_2.
operacin aritmtica: (elemento + matriz) a elemento

Expresin: Destino:
value_1 + array_1[control_1.pos] value_2

Publicacin 1756-RM003K-ES-P Julio 2008 343


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Ejemplo 8: Cuando se habilita, la instruccin FAL multiplica el valor actual de


array_1 por el valor actual de array_3 y almacena el resultado en
value_1. La instruccin FAL usa el modo incremental; por lo tanto,
slo una pareja de valores de matriz se multiplica cada vez que se
habilita la instruccin. La prxima vez que se habilita la instruccin,
sta sobrescribe value_1.
operacin aritmtica: (matriz matriz) a elemento

Expresin: Destino:
array_1[control_1.pos] * array_3[control_1.pos] value_1

Expresiones FAL

Usted programa las expresiones en las instrucciones FAL de la misma


manera que las expresiones en las instrucciones CPT. Use las
siguientes secciones para obtener informacin sobre operadores,
formato y orden de operacin vlidos que son comunes para ambas
instrucciones.

344 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Operadores vlidos

Operador Descripcin ptimo Operador Descripcin ptimo


+ sumar DINT, REAL LOG logaritmo base 10 REAL
- restar/cambiar signo DINT, REAL MOD mdulo de divisin DINT, REAL
* multiplicar DINT, REAL NOT complemento a nivel DINT
de bits
/ dividir DINT, REAL
OR O a nivel de bits DINT
** exponente (x a la y) DINT, REAL
RAD grados a radianes DINT, REAL
ABS valor absoluto DINT, REAL
SIN seno REAL
ACS arco coseno REAL
SQR raz cuadrada DINT, REAL
AND Y a nivel de bits DINT
TAN tangente REAL
ASN arco seno REAL
TOD entero a BCD DINT
ATN arco tangente REAL
TRN truncar DINT, REAL
COS coseno REAL
XOR O exclusivo a nivel de DINT
DEG radianes a grados DINT, REAL bits
FRD BCD a entero DINT
LN logaritmo natural REAL

Expresiones de formato

Por cada operador que use en una expresin, usted tiene que
proporcionar uno o dos operandos (tags o valores inmediatos). Use la
siguiente tabla para formatear operadores y operandos dentro de una
expresin:

Para operadores Use este formato Ejemplos


que operan en
un operando operador(operando) ABS(tag_a)
dos operandos operando_a operador operando_b tag_b + 5
tag_c AND tag_d
(tag_e ** 2) MOD (tag_f /
tag_g)

Publicacin 1756-RM003K-ES-P Julio 2008 345


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Determine el orden de operacin

Las operaciones que usted escribe en la expresin son realizadas por


la instruccin en un orden prescrito, que no es necesariamente el
orden en que usted las escribe. Usted puede cambiar el orden de
operacin agrupando trminos dentro de parntesis, forzando la
instruccin para que realice una operacin dentro del parntesis antes
de otras operaciones.

Las operaciones de igual orden se realizan de izquierda a derecha.

Orden Operacin
1. ()
2. ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG,
RAD, SIN, SQR, TAN, TOD, TRN
3. **
4. (cambiar signo), NOT
5. *, /, MOD
6. (restar), +
7. AND
8. XOR
9. OR

346 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Bsqueda y comparacin La instruccin FSC compara los valores en una matriz, elemento por
elemento.
de archivos (FSC)
Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Control CONTROL tag estructura de control para la operacin
Length DINT inmediato nmero de elementos en la matriz que se
manipularn
Position DINT inmediato offset en la matriz

el valor inicial es tpicamente 0

Estructura CONTROL

Mnemnico Tipo de datos Descripcin


.EN BOOL El bit de habilitacin indica que la instruccin FSC est habilitada.
.DN BOOL El bit de efectuado se establece cuando la instruccin ha efectuado la operacin en el ltimo
elemento (.POS = .LEN).
.ER BOOL El bit de error no se modifica.
.IN BOOL El bit de inhibicin indica que la instruccin FSC ha detectado una comparacin verdadera.
Usted debe borrar este bit para poder continuar la operacin de buscar.
.FD BOOL El bit de encontrado indica que la instruccin FSC ha detectado una comparacin verdadera.
.LEN DINT La longitud especifica el nmero de elementos en la matriz sobre el que opera la instruccin.
.POS DINT La posicin contiene la posicin del elemento actual al cual la instruccin obtiene acceso.

Descripcin: Cuando la instruccin FSC est habilitada y la comparacin es


verdadera, la instruccin establece el bit .FD y el bit .POS refleja la
posicin de la matriz donde la instruccin encontr la comparacin
verdadera. La instruccin establece el bit .IN para interrumpir la
bsqueda.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo:

Ocurrir un fallo mayor si Tipo de fallo Cdigo de fallo


.POS < 0 o .LEN < 0 4 21

Publicacin 1756-RM003K-ES-P Julio 2008 347


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln es falsa

bit .DN = 0 no
examinar el modo INC se borra el bit interno
bit .DN

bit .DN = 1 s

no .LEN < 0 o s
el bit .EN se borra el bit .EN se borra modo ALL fallo mayor
el bit .ER se borra .POS < 0
el bit .DN se borra
el valor .POS se borra s no

.POS = .POS + 1

s
.LEN = 0

no
s
.POS = 0

no
no .POS < .LEN

.POS = .POS - 1 s

no
.LEN > modo
el bit .DN se establece
el bit .EN se establece
s

modo = .LEN
el bit .DN se
establece
el bit .EN se borra

modo
numrico
pgina 341
la condicin de salida de
rengln se establece como
falsa

fin

348 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Condicin Accin de lgica de escalera de rels


condicin de entrada de rengln es verdadera
.LEN < 0 o s pgina 341
.POS < 0 fallo mayor
bit .ER = 0 modo
examinar el numrico
bit .ER no

bit .ER = 1 bit .DN = 0 no

no no
examinar el .LEN = 0 modo INC modo ALL
bit .IN
bit .DN = 1
bit .IN = 0 s s s

el bit .DN se establece


el bit .EN se establece modo modo
examinar el INC ALL
bit .DN
bit .DN = 1 pgina 339 pgina 340
comn

bit .DN = 0

loop_count =
loop_count - 1

no
loop_count < 0 .POS = .POS + 1

s
evale la comparacin

no
coincidencia

.POS = .POS + 1 el bit .EN se establece


el bit .FD se establece
el bit .IN se establece

no
.POS = .LEN

el bit .DN se establece


el bit .EN se establece .POS = .POS + 1

la condicin de salida de rengln


se establece como verdadera

fin

post-escn La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008 349


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Ejemplo 1: Buscar una coincidencia entre dos matrices. Una vez habilitada, la
instruccin FSC compara cada uno de los 10 primeros elementos en
array_1 con los elementos correspondientes en array_2.

array_1 array_2 control_3.pos

00000000000000000000000000000000 00000000000000000000000000000000 0
00000000000000000000000000000000 00000000000000000000000000000000 1
00000000000000000000000000000000 00000000000000000000000000000000 2
00000000000000000000000000000000 00000000000000000000000000000000 3 La instruccin FSC determina que estos
elementos son diferentes. La instruccin
00000000000000001111111111111111 11111111111111110000000000000000 4 establece los bits .FD e .IN. El valor .POS (4)
11111111111111111111111111111111 11111111111111111111111111111111 5 indica la posicin de los elementos que son
diferentes. Para continuar comparando el
11111111111111111111111111111111 11111111111111111111111111111111 6
resto de la matriz, borre el bit .IN.
11111111111111111111111111111111 11111111111111111111111111111111 7
11111111111111111111111111111111 11111111111111111111111111111111 8
11111111111111111111111111111111 11111111111111111111111111111111 9

350 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Ejemplo 2: Buscar una coincidencia en una matriz. Cuando se habilita, la


instruccin FSC compara MySearchKey con 10 elementos en array_1.

MySearchKey referencia control_3.pos

00000000000000000000000000000000 0
00000000000000000000000000000000 1
00000000000000000000000000000000 2
00000000000000000000000000000000 3
La instruccin FSC determina que este
11111111111111110000000000000000 11111111111111110000000000000000 4 elemento de matriz es igual a
11111111111111111111111111111111 5 MySearchKey. La instruccin establece los
bits .FD e .IN. El valor .POS (4) indica la
11111111111111111111111111111111 6 posicin de los elementos que son iguales.
11111111111111111111111111111111 7 Para continuar comparando el resto de la
matriz, borre el bit .IN.
11111111111111111111111111111111 8
11111111111111111111111111111111 9

Publicacin 1756-RM003K-ES-P Julio 2008 351


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Ejemplo 3: Buscar una cadena en una matriz de cadenas. Cuando se habilita, la


instruccin FSC compara los caracteres en code con 10 elementos en
code_table.

code code_table code_table_search.POS

AFG 0
BEH 1
HUO 2
SAK 3
La instruccin FSC determina que este
SAM SAM 4 elemento de la matriz es igual a code.
La instruccin establece los bits .FD e .IN.
FQG 5
El valor .POS (4) indica la posicin de los
CLE 6 elementos que son iguales. Para continuar
CAK 7 comparando el resto de la matriz, borre el
bit .IN.
DET 8
BWG 9

Expresiones FSC

Usted programa las expresiones en las instrucciones FSC de la misma


manera que las expresiones en las instrucciones CMP. Use las
siguientes secciones para obtener informacin sobre operadores,
formato y orden de operacin vlidos que son comunes para ambas
instrucciones.

352 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Operadores vlidos

Operador Descripcin ptimo Operador Descripcin ptimo


+ sumar DINT, REAL DEG radianes a grados DINT, REAL
- restar/cambiar signo DINT, REAL FRD BCD a entero DINT
* multiplicar DINT, REAL LN logaritmo natural REAL
/ dividir DINT, REAL LOG logaritmo base 10 REAL
= igual que DINT, REAL MOD mdulo de divisin DINT, REAL
< menor que DINT, REAL NOT complemento a nivel DINT
de bits
<= menor o igual que DINT, REAL
OR O a nivel de bits DINT
> mayor que DINT, REAL
RAD grados a radianes DINT, REAL
>= mayor o igual que DINT, REAL
SIN seno REAL
<> diferente de DINT, REAL
SQR raz cuadrada DINT, REAL
** exponente (x a la y) DINT, REAL
TAN tangente REAL
ABS valor absoluto DINT, REAL
TOD entero a BCD DINT
ACS arco coseno REAL
TRN truncar DINT, REAL
AND Y a nivel de bits DINT
XOR O exclusivo a nivel de DINT
ASN arco seno REAL bits
ATN arco tangente REAL
COS coseno REAL

Expresiones de formato

Por cada operador que use en una expresin, usted tiene que
proporcionar uno o dos operandos (tags o valores inmediatos). Use la
siguiente tabla para formatear operadores y operandos dentro de una
expresin:

Para operadores Use este formato Ejemplos


que operan en
un operando operador(operando) ABS(tag_a)
dos operandos operando_a operador operando_b tag_b + 5
tag_c AND tag_d
(tag_e ** 2) MOD (tag_f /
tag_g)

Publicacin 1756-RM003K-ES-P Julio 2008 353


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Determine el orden de operacin

Las operaciones que usted escribe en la expresin son realizadas por


la instruccin en un orden prescrito, que no es necesariamente el
orden en que usted las escribe. Usted puede anular el orden de
operacin agrupando trminos dentro de parntesis, forzando a la
instruccin para que realice una operacin dentro del parntesis antes
de otras operaciones.

Las operaciones de igual orden se realizan de izquierda a derecha.

Orden Operacin
1. ()
2. ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG,
RAD, SIN, SQR, TAN, TOD, TRN
3. **
4. (cambiar signo), NOT
5. *, /, MOD
6. <, <=, >, >=, =
7. (restar), +
8. AND
9. XOR
10. OR

354 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Use cadenas en una expresin

Para usar cadenas de caracteres ASCII en una expresin, siga estas


pautas:

Una expresin le permite comparar dos tags de cadena.


Usted no puede introducir caracteres ASCII directamente en la
expresin.
Slo se permiten los siguientes operadores

Operador Descripcin
= igual que
< menor que
<= menor o igual que
> mayor que
>= mayor o igual que
<> diferente de

Las cadenas son iguales si sus caracteres coinciden.


Los caracteres ASCII permiten distinguir maysculas de
minsculas. La A mayscula ($41) es diferente a la a
minscula ($61).
Los valores hexadecimales de los caracteres determinan si una
cadena es mayor o menor que otra cadena. Para obtener el
cdigo hexadecimal de un carcter, remtase a la contraportada
de este manual.
Cuando las dos cadenas se clasifican como en un directorio
telefnico, el orden de las cadenas determina cul es mayor.

Caracteres ASCII Cdigos


hexadecimales
1ab $31$61$62
m m 1b $31$62
e a
A $41
n y
o o AB $41$42 AB < B
r r
B $42
a $61 a>B
ab $61$62

Publicacin 1756-RM003K-ES-P Julio 2008 355


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Copiar archivo (COP) Las instrucciones COP y CPS copian el o los valores de Source en
Destination. Source no cambia.
Copiar archivo sncrono
(CPS)
Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source SINT tag elemento inicial que se copia

INT Importante: Los operandos Source y


Destination deben ser del mismo tipo; de lo
DINT contrario, pueden ocurrir resultados
inesperados.
REAL

cadena

estructura
Destination SINT tag el elemento inicial que va a ser sobrescrito
por Source
INT
Importante: Los operandos Source y
DINT Destination deben ser del mismo tipo; de lo
contrario, pueden ocurrir resultados
REAL inesperados.

cadena

estructura
Length DINT inmediato nmero de elementos de destino que se
copian
tag

Texto estructurado
COP(Source,Dest,Length);
Los operandos son iguales que los de las instrucciones COP y CPS de
CPS(Source,Dest,Length);
lgica de escalera de rels.

356 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Descripcin: Durante la ejecucin de las instrucciones COP y CPS, es posible que


otras acciones del controlador puedan intentar interrumpir la
operacin de copia y cambiar los datos de origen o destino:

Si Source o Destination es Y usted desea Entonces Notas


seleccione
tag producido evitar que los datos cambien durante CPS Las tareas que intentan interrumpir
tag consumido la operacin de copia una instruccin CPS se suspenden
hasta que haya finalizado la
datos de E/S instruccin.
datos que otra tarea puede Para calcular el tiempo de ejecucin
sobrescribir de la instruccin CPS, consulte el
documento ControlLogix System User
Manual, publicacin 1756-UM001.
permitir que los datos cambien COP
durante la operacin de copia
ninguno de los anteriores COP

El nmero de bytes copiados es:


Conteo de bytes = Length (nmero de bytes en el tipo de datos de
Destination)

ATENCIN Si el conteo de bytes es mayor que la longitud de Source, se copian datos


inesperados para el resto de los elementos.

IMPORTANTE Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
Las instrucciones COP y CPS operan en memoria contigua. Realizan una copia de
memoria directa byte a byte. En algunos casos, escriben ms all de la matriz en
otros miembros del tag. Esto sucede si la longitud es excesiva y el tag es de un tipo
de datos definido por el usuario.

Si el tag es Entonces
tipo de datos definido por Si Length es demasiado grande, la instruccin escribe ms
el usuario all del final de la matriz a otros miembros del tag. Se detiene
al final del tag. No se genera un fallo mayor.
NO es un tipo de datos Si Length es demasiado grande, la instruccin se detiene al
definido por el usuario final de la matriz. No se genera un fallo mayor.

Length es demasiado grande si es mayor que el nmero total de elementos en la


matriz Destination.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Publicacin 1756-RM003K-ES-P Julio 2008 357


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Ejecucin:

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.

ejecucin de la instruccin end_address = start_address + (Length


nmero de bytes en un elemento de
destino)

end_address > fin s end_address = fin de matriz de destino


de matriz de
destino

no

source_address = Source

destination_address = s
end_address

no

copiar datos en source_address a


destination_address
la condicin de salida de
rengln se establece como
verdadera
source_address = source_address + 1

fin

destination_address =
destination_address + 1

post-escn La condicin de salida de rengln se establece como Ninguna.


falsa.

358 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Ejemplo 1: Tanto array_4 como array_5 son del mismo tipo de datos. Cuando se
habilita, la instruccin COP copia los primeros 10 elementos de
array_4 en los primeros 10 elementos de array_5.

Lgica de escalera de rels

Texto estructurado

COP(array_4[0],array_5[0],10);

Ejemplo 2: Cuando se habilita, la instruccin COP copia la estructura timer_1 en


el elemento 5 de array_timer. La instruccin copia slo una estructura
a un elemento de matriz.

Lgica de escalera de rels

Texto estructurado

COP(timer_1,array_timer[5],1);

Publicacin 1756-RM003K-ES-P Julio 2008 359


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Ejemplo 3: La matriz project_data (100 elementos) almacena una variedad de


valores que cambian en momentos diferentes en la aplicacin. Para
enviar una imagen completa de project_data en una instancia a
tiempo a otro controlador, la instruccin CPS copia project_data en
produced_array.
Mientras la instruccin CPS copia los datos, las actualizaciones
de E/S u otras tareas no pueden cambiar los datos.
El tag produced_array produce los datos en una red ControlNet
para el consumo por parte de otros controladores.
Para usar la misma imagen de datos (p. ej., copiar los datos de
manera sincronizada), el o los controladores consumidores usan
una instruccin CPS para copiar los datos desde el tag
consumido a otro tag para uso en la aplicacin.

Lgica de escalera de rels

Texto estructurado

CPS(project_data[0],produced_array[0],100);

Ejemplo 4: Local:0:I.Data almacena los datos de entrada para la red DeviceNet


conectada al mdulo 1756-DNB en la ranura 0. Para sincronizar las
entradas con la aplicacin, la instruccin CPS copia los datos de
entrada en input_buffer.
Mientras la instruccin CPS copia los datos, las actualizaciones
de E/S no pueden cambiar los datos.
A medida que se ejecuta la aplicacin, sta usa para sus entradas
los datos de entrada en input_buffer.

Lgica de escalera de rels

Texto estructurado

CPS(Local:0:I.Data[0],input_buffer[0],20);

360 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Ejemplo 5: Este ejemplo inicializa una matriz de estructuras de temporizador.


Cuando se habilita, la instruccin MOV inicializa los valores .PRE y
.ACC del primer elemento array_timer. Una vez habilitada, la
instruccin COP copia un bloque contiguo de bytes a partir de
array_timer[0]. La longitud es nueve estructuras de temporizador.
array_timer[0] Primero la instruccin copia los
valores de timer[0] a timer[1]

array_timer[1] Seguidamente la instruccin copia


los valores de timer[1] a timer[2]

array_timer[2] Seguidamente la instruccin copia


los valores de timer[2] a timer[3]

array_timer[3] Seguidamente la instruccin copia


los valores de timer[3] a timer[4]

array_timer[4]




array_timer[9] Finalmente, la instruccin copia los
valores de timer[9] a timer[10]

array_timer[10]

Lgica de escalera de rels

Texto estructurado

IF S:FS THEN

array_timer[0].pre := 500;

array_timer[0].acc := 0;

COP(array_timer[0],array_timer[1],10);

END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008 361


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Llenar archivo (FLL) La instruccin FLL llena los elementos de una matriz con el valor de
Source. Source no cambia.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato: Descripcin


Source SINT inmediato elemento que se copia

INT tag Importante: Los operandos Source y


Destination deben ser del mismo tipo; de lo
DINT contrario. pueden ocurrir resultados
inesperados
REAL
Destination SINT tag elemento inicial que va a ser sobrescrito por
Source
INT
Importante: Los operandos Source y
DINT Destination deben ser del mismo tipo; de lo
contrario, pueden ocurrir resultados
REAL inesperados

estructura El mtodo preferido para inicializar una


estructura es mediante la instruccin COP.
Length DINT inmediato nmero de elementos que se llenan

Texto estructurado

El texto estructurado no cuenta con la instruccin FLL, pero usted


puede lograr los mismos resultados usando una instruccin SIZE y
una construccin FOR...DO u otra construccin de lazo.

SIZE(destination,0,length);
FOR position = 0 TO length-1 DO
destination[position] := source;
END_FOR;

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las construcciones en texto
estructurado.

362 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Descripcin: El nmero de bytes llenados es:

Conteo de bytes = Length (nmero de bytes en el tipo de datos de


Destination)

IMPORTANTE Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
La instruccin FLL realiza la operacin en la memoria de datos contiguos. En algunos
casos, la instruccin escribe ms all de la matriz en otros miembros del tag. Esto
sucede si la longitud es excesiva y el tag es de un tipo de datos definido por el
usuario.

Si el tag es Entonces
tipo de datos definido por Si la longitud es demasiado grande, la instruccin escribe ms
el usuario all del final de la matriz a otros miembros del tag. Se detiene
al final del tag. No se genera un fallo mayor.
NO es un tipo de datos Si Length es demasiado grande, la instruccin se detiene al
definido por el usuario final de la matriz. No se genera un fallo mayor.

Length es demasiado grande si es mayor que el nmero total de elementos en la


matriz Destination.

Para obtener los mejores resultados, Source y Destination deben ser


del mismo tipo. Si usted desea llenar una estructura, use la instruccin
COP (vea el ejemplo 3 en la pgina 359). Si mezcla diferentes tipos de
datos para Source y Destination, los elementos de Destination se
llenan con los valores de Source convertidos.

Si Source es Y Destination es Source se convierte en


SINT, INT, DINT o REAL SINT SINT
SINT, INT, DINT o REAL INT INT
SINT, INT, DINT o REAL DINT DINT
SINT, INT, DINT o REAL REAL REAL
SINT estructura SINT (no se convierte)
INT estructura INT (no se convierte)
DINT estructura DINT (no se convierte)
REAL estructura REAL (no se convierte)

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Publicacin 1756-RM003K-ES-P Julio 2008 363


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.

condicin de entrada de
rengln es verdadera

end_address = start_address + (Length


nmero de bytes en un elemento de
destino)

end_address > fin s end_address = fin de una matriz de destino


de una matriz de
destino

no

source_address = Source

s
destination_address =
end_address

no

copiar los datos en source_address a


destination _address

la condicin de salida de
rengln se establece como
destination_address = verdadera
destination_address + 1

fin

post-escn La condicin de salida de rengln se establece como falsa.

364 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Ejemplo: La instruccin FLL copia el valor de value_1 en dest_1

Lgica de escalera de rels

Tipo de datos de Valor de Source Tipo de datos de Valor de


Source (value_1) (value_1) Destination Destination
(dest_1) (dest_1) despus
de FLL
SINT 16#80 (-128) DINT 16#FFFF FF80 (-128)
DINT 16#1234 5678 SINT 16#78
SINT 16#01 REAL 1.0
REAL 2.0 INT 16#0002
SINT 16#01 TIMER 16#0101 0101

16#0101 0101

16#0101 0101
INT 16#0001 TIMER 16#0001 0001

16#0001 0001

16#0001 0001
DINT 16#0000 0001 TIMER 16#0000 0001

16#0000 0001

16#0000 0001

Texto estructurado

dest_1 := value _1;

Publicacin 1756-RM003K-ES-P Julio 2008 365


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Promedio de archivo (AVE) La instruccin AVE calcula el promedio de un conjunto de valores.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Array SINT tag de hallar el promedio de los valores en esta
matriz matriz
INT
especificar el primer elemento del grupo de
DINT elementos que se va a promediar

REAL no usar CONTROL.POS en el subndice


Dimension DINT inmediato qu dimensin usar
to vary
(0, 1, 2) segn el nmero de dimensiones, el orden es

array[dim_0,dim_1,dim_2]

array[dim_0,dim_1]

array[dim_0]
Destination SINT tag resultado de la operacin

INT

DINT

REAL
Control CONTROL tag estructura de control para la operacin
Length DINT inmediato nmero de elementos de la matriz que se va
a promediar
Position DINT inmediato elemento actual en la matriz

el valor inicial es tpicamente 0

Texto estructurado

El texto estructurado no cuenta con la instruccin AVE, pero usted


puede lograr los mismos resultados usando una instruccin SIZE y
una construccin FOR...DO u otra construccin de lazo.

SIZE(array,0,length);
sum := 0;
FOR position = 0 TO length-1 DO
sum := sum + array[position];
END_FOR;
destino := sum / length;

366 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las construcciones en texto
estructurado.

Estructura CONTROL

Mnemnico Tipo de datos Descripcin


.EN BOOL El bit de habilitacin indica que la instruccin AVE est habilitada.
.DN BOOL El bit de efectuado se establece cuando la instruccin ha realizado una operacin en el
ltimo elemento de la matriz (.POS = .LEN).
.ER BOOL Se establece el bit de error si la instruccin genera un overflow. La instruccin detiene la
ejecucin hasta que el programa borra el bit .ER. La posicin del elemento que caus el
overflow se almacena en el valor .POS.
.LEN DINT La longitud especifica el nmero de elementos en la matriz sobre el que opera la instruccin.
.POS DINT La posicin contiene la posicin del elemento actual al cual la instruccin obtiene acceso.

Descripcin: La instruccin AVE calcula el promedio de un conjunto de valores.

IMPORTANTE Asegrese de que la longitud no haga que la instruccin exceda


la Dimension to vary especificada. Si ocurre esto, el destino
ser incorrecto.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo:

Ocurrir un fallo mayor si Tipo de fallo Cdigo de fallo


.POS < 0 o .LEN < 0 4 21
Dimension to vary no existe en la matriz 4 20
especificada

Publicacin 1756-RM003K-ES-P Julio 2008 367


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn El bit .EN se borra.

El bit .DN se borra.

El bit .ER se borra.

La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln es falsa

bit .DN = 0
examinar el bit .DN

bit .DN = 1

el bit .EN se borra


el bit .ER se borra
el bit .DN se borra
el valor .POS se borra

la condicin de salida de
rengln se establece como
falsa

fin

condicin de entrada de rengln es verdadera La instruccin AVE calcula el promedio sumando todos los elementos especificados en
la matriz y dividiendo el resultado entre el nmero de elementos.

Internamente, la instruccin usa una instruccin FAL para calcular el promedio:

Expresin = clculo de promedio

Modo = ALL

Para obtener detalles sobre cmo se ejecuta la instruccin FAL, vea la pgina 337.
post-escn La condicin de salida de rengln se establece como falsa.

368 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Ejemplo 1: Promediar array_dint, el cual es DINT[4,5].

su
bn dimensin 1
d
0 1 2 3 4
ice
s

AVE = 19
0 20 19 18 17 16 + 14 + 9 + 4- = 46
------------------------------------ ------ = 11.5
4 4
1 15 14 13 12 11
dimensin 0
dint_ave = 12
2 10 9 8 7 6

3 5 4 3 2 1

Lgica de escalera de rels

Texto estructurado

SIZE(array_dint,0,length);
sum := 0;
FOR position = 0 TO (length-1) DO
sum := sum + array_dint[position];
END_FOR;
dint_ave := sum / length;

Publicacin 1756-RM003K-ES-P Julio 2008 369


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Ejemplo 2: Promediar array_dint, el cual es DINT[4,5].

su
b
nd dimensin 1

0 1 2 3 4
ice
s

AVE = 5---------------------------------------
0 20 19 18 17 16 + 4 + 3 + 2 + 1- = 15 ------ = 3
5 5
1 15 14 13 12 11
dimensin 0 dint_ave = 3
2 10 9 8 7 6

3 5 4 3 2 1

Lgica de escalera de rels

Texto estructurado

SIZE(array_dint,1,length);
sum := 0;
FOR position = 0 TO (length-1) DO
sum := sum + array_dint[position];
END_FOR;
dint_ave := sum / length;

370 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Clasificacin de archivo La instruccin SRT clasifica un conjunto de valores en una dimensin


(Dim to vary) de la matriz en orden ascendente.
(SRT)
Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Array SINT tag de matriz que se clasifica
matriz
INT especificar el primer elemento del grupo de
elementos que se clasifica
DINT
no use CONTROL.POS en el subndice
REAL
Dimension DINT inmediato qu dimensin usar
to vary
(0, 1, 2) segn el nmero de dimensiones, el orden
es:

array[dim_0,dim_1,dim_2]

array[dim_0,dim_1]

array[dim_0]
Control CONTROL tag estructura de control para la operacin
Length DINT inmediato nmero de elementos en la matriz que se
clasifica
Position DINT inmediato elemento actual en la matriz

el valor inicial es tpicamente 0

Texto estructurado
SRT(Array,Dimtovary,
Control); Los operandos son los mismos que para la instruccin SRT de lgica
de escalera de rels. Sin embargo, usted especifica los valores de
Length y Position al acceder a los miembros .LEN y .POS de la
estructura CONTROL, en lugar de incluir los valores en la lista de
operandos.

Estructura CONTROL

Mnemnico Tipo de datos Descripcin


.EN BOOL El bit de habilitacin indica que la instruccin SRT est habilitada.
.DN BOOL Se establece el bit de efectuado cuando los elementos especificados se han clasificado.
.ER BOOL Se establece el bit de error cuando .LEN < 0 o .POS < 0. Cualquiera de estas condiciones
tambin genera un fallo mayor.
.LEN DINT La longitud especifica el nmero de elementos en la matriz en que la instruccin realiza una
operacin.
.POS DINT La posicin contiene la posicin del elemento actual al cual la instruccin obtiene acceso.

Publicacin 1756-RM003K-ES-P Julio 2008 371


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Descripcin: La instruccin SRT clasifica un conjunto de valores en una dimensin


(Dimension to vary) de la matriz en orden ascendente.

IMPORTANTE Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
La instruccin SRT realiza la operacin en la memoria de datos contiguos. En
algunos casos, la instruccin cambia datos en otros miembros del tag. Esto sucede
si la longitud es excesiva y el tag es de un tipo de datos definido por el usuario.

IMPORTANTE Asegrese de que la longitud no haga que la instruccin exceda la Dimension to


vary especificada. Si ocurre esto, ocurrirn resultados inesperados.

sta es una instruccin transicional:


En lgica de escalera de rels, cambie la condicin de entrada
del rengln de borrado a establecido cada vez que deba
ejecutarse la instruccin.
En texto estructurado, condicione la instruccin de manera
que slo se ejecute cuando ocurra una transicin. Consulte el
Apndice C, Programacin de texto estructurado.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo:

Ocurrir un fallo mayor si Tipo de fallo Cdigo de fallo


.POS < 0 o .LEN < 0 4 21
La dimensin que se va a variar no existe 4 20
para la matriz especificada
La instruccin intenta obtener acceso a los 4 20
datos fuera de los lmites de la matriz.

372 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Ejecucin:

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


preescn El bit .EN se borra. El bit .EN se borra.

El bit .DN se borra. El bit .DN se borra.

El bit .ER se borra. El bit .ER se borra.

La condicin de salida de rengln se establece como


falsa.
n. a.
condicin de entrada de
rengln es falsa
bit .DN = 0
examinar el bit .DN

bit .DN = 1

el bit .EN se borra


el bit .ER se borra
el bit .DN se borra
el valor .POS se borra

la condicin de salida de
rengln se establece como
falsa

fin

condicin de entrada de La instruccin se ejecuta. n. a.


rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin La instruccin clasifica los elementos especificados La instruccin clasifica los elementos especificados
en la matriz en orden ascendente. en la matriz en orden ascendente.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

Publicacin 1756-RM003K-ES-P Julio 2008 373


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Ejemplo 1: Clasifique int _array, que es DINT[4,5].

Antes Despus
dimensin 1 dimensin 1

su
su

bn
bn

0 1 2 3 4

dic
d

0 1 2 3 4
ic e

es
s

0 20 19 18 17 16 0 20 19 3 17 16

1 15 14 13 12 11 1 15 14 8 12 11
dimensin 0 dimensin 0
2 10 9 8 7 6 2 10 9 13 7 6

3 5 4 3 2 1 3 5 4 18 2 1

Lgica de escalera de rels

Texto estructurado

control_1.LEN := 4;

control_1.POS := 0;

SRT(int_array[0,2],0,control_1);

374 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Ejemplo 2: Clasificar int _array, que es DINT[4,5].

Antes Despus
dimensin 1 dimensin 1

su
su

bn
b
nd

0 1 2 3 4

dic
0 1 2 3 4
ice

se
s

0 20 19 18 17 16 0 20 19 18 17 16

1 15 14 13 12 11 1 15 14 13 12 11
dimensin 0 dimensin 0
2 10 9 8 7 6 2 6 7 8 9 10

3 5 4 3 2 1 3 5 4 3 2 1

Lgica de escalera de rels

Texto estructurado

control_1.LEN := 5;

control_1.POS := 0;

SRT(int_array[2,0],1,control_1);

Publicacin 1756-RM003K-ES-P Julio 2008 375


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Desviacin estndar de La instruccin STD calcula la desviacin estndar de un conjunto de


valores en una dimensin de la matriz y almacena el resultado en
archivo (STD) Destination.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Array SINT tag de hallar la desviacin estndar de los valores
matriz en esta matriz
INT
especificar el primer elemento del grupo de
DINT elementos que se usan para calcular la
desviacin estndar
REAL
no use CONTROL.POS en el subndice
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Dimension DINT inmediato qu dimensin usar
to vary
(0, 1, 2) segn el nmero de dimensiones, el orden
es:

array[dim_0,dim_1,dim_2]

array[dim_0,dim_1]

array[dim_0]
Destination REAL tag resultado de la operacin
Control CONTROL tag estructura de control para la operacin
Length DINT inmediato el nmero de elementos de la matriz que se
usa para calcular el desviacin estndar
Position DINT inmediato elemento actual en la matriz

el valor inicial es tpicamente 0

Estructura CONTROL

Mnemnico Tipo de datos Descripcin


.EN BOOL El bit de habilitacin indica que la instruccin STD est habilitada.
.DN BOOL Se establece el bit de efectuado cuando se completa el clculo.
.ER BOOL Se establece el bit de error cuando la instruccin genera un overflow. La instruccin detiene
la ejecucin hasta que el programa borra el bit .ER. La posicin del elemento que caus el
overflow se almacena en el valor .POS.
.LEN DINT La longitud especifica el nmero de elementos de la matriz sobre el que opera la instruccin.
.POS DINT La posicin contiene la posicin del elemento actual al cual la instruccin obtiene acceso.

376 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Texto estructurado

El texto estructurado no cuenta con la instruccin STD, pero usted


puede lograr los mismos resultados usando una instruccin SIZE y
una construccin FOR...DO u otra construccin de lazo.

SIZE(array,0,length);
sum := 0;
FOR position = 0 TO length-1 DO
sum := sum + array[position];
END_FOR;
average := sum / length;
sum := 0;
FOR position = 0 TO length-1 DO
sum := sum + ((array[position] - average)**2);
END_FOR;
destino := SQRT(sum /(length-1));

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las construcciones en texto
estructurado.

Descripcin: La desviacin estndar se calcula segn la frmula siguiente:

N
2

[ X AVE ]
( start + i )
Desviacin estndar = i = 1
--------------------------------------------------------------------
(N 1)

Donde:
inicio = subndice de la dimensin para variar del operando de
la matriz
xi = elemento variable en la matriz
N = nmero de elementos especificados en la matriz
AVE = N

x ( start + i )

i = 1
-----------------------------------------
N

IMPORTANTE Asegrese de que Length no haga que la instruccin exceda la Dimension to vary
especificada. Si ocurre esto, el destino ser incorrecto.

Publicacin 1756-RM003K-ES-P Julio 2008 377


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo:

Ocurrir un fallo mayor si Tipo de fallo Cdigo de fallo


.POS < 0 o .LEN < 0 4 21
La dimensin que se va a variar no existe 4 20
en la matriz especificada

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn El bit .EN se borra.

El bit .DN se borra.

El bit .ER se borra.

La condicin de salida de rengln se establece como falsa.

condicin de entrada de
rengln es falsa

bit .DN = 0
examinar el bit .DN

bit .DN = 1

el bit .EN se borra


el bit .ER se borra
el bit .DN se borra
el valor .POS se borra

la condicin de salida de
rengln se establece como
falsa

fin

condicin de entrada de rengln es verdadera La instruccin STD calcula la desviacin estndar de los elementos especificados.

Internamente, la instruccin usa una instruccin FAL para calcular el promedio:

Expresin = clculo de la desviacin estndar

Modo = ALL

Para obtener detalles acerca de cmo se ejecuta la instruccin FAL, vea la pgina 337.
post-escn La condicin de salida de rengln se establece como falsa.

378 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Ejemplo 1: Calcular la desviacin estndar de dint_array, que es DINT[4,5].


dimensin 1

su
bn
0 1 2 3 4

di c
es
0 20 19 18 17 16

1 15 14 13 12 11
dimensin 0
AVE = 16 + 11 + 6 + 1- = 34 10 9 8 7 6
------------------------------------ ------ = 8.5 2
4 4
3 5 4 3 2 1

2 2 2 2
16 8.5 + 11 8.5 + 6 8.5 + 1 8.5 - = 6.454972
STD = --------------------------------------------------------------------------------------------------------------------------
4 1
real_std = 6.454972

Lgica de escalera de rels

Texto estructurado

SIZE(dint_array,0,length);
sum := 0;
FOR position = 0 TO (length-1) DO
sum := sum + dint_array[position];
END_FOR;
average := sum / length;
sum := 0;
FOR position = 0 TO (length-1) DO
sum := sum + ((dint_array[position] - average)**2);
END_FOR;
real_std := SQRT(sum / (length-1));

Publicacin 1756-RM003K-ES-P Julio 2008 379


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Ejemplo 2: Calcular la desviacin estndar de dint_array, que es DINT[4,5].


dimensin 1

su
bn
0 1 2 3 4

dic
es
0 20 19 18 17 16

1 15 14 13 12 11
dimensin 0
2 10 9 8 7 6
AVE = 20 + 19 + 18 + 17 + 16- = 90
------------------------------------------------------ ------ = 18
5 5 3 5 4 3 2 1

2 2 2 2 2
20 18 + 19 18 + 18 18 + 17 18 + 16 18 - = 1.581139
STD = -----------------------------------------------------------------------------------------------------------------------------------------------------------
5 1
real_std = 1.581139

Lgica de escalera de rels

Texto estructurado

SIZE(dint_array,1,length);
sum := 0;
FOR position = 0 TO (length-1) DO
sum := sum + dint_array[position];
END_FOR;
average := sum / length;
sum := 0;
FOR position = 0 TO (length-1) DO
sum := sum + ((dint_array[position] - average)**2);
END_FOR;
real_std := SQRT(sum / (length-1));

380 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Tamao en elementos La instruccin SIZE encuentra el tamao de una dimensin de una


matriz.
(SIZE)
Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source SINT tag de la matriz en la cual la instruccin realizar la
matriz operacin
INT

DINT

REAL

estructura

cadena
Dimension DINT inmediato dimensin que se va a usar:
to Vary (0, 1, 2)
Para el tamao de Introduzca
primera dimensin 0
segunda dimensin 1
tercera dimensin 2

Size SINT tag tag para guardar el nmero de elementos en


la dimensin especificada de la matriz.
INT

DINT

REAL

Texto estructurado
SIZE(Source,Dimtovary,Size);
Los operandos son iguales a los de la instruccin SIZE de lgica de
escalera de rels.

Descripcin: La instruccin SIZE halla el nmero de elementos (tamao) en la


dimensin designada de la matriz Source y coloca el resultado en el
operando Size.
La instruccin encuentra el tamao de una dimensin de una
matriz.
La instruccin realiza la operacin en una:
matriz
matriz en una estructura
matriz que es parte de una matriz ms grande

Indicadores de estado
aritmtico: no afectados

Publicacin 1756-RM003K-ES-P Julio 2008 381


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Condiciones de fallo: ninguna.

Ejecucin:

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n .a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin La instruccin encuentra el tamao de una La instruccin encuentra el tamao de una
dimensin. dimensin.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

Ejemplo 1: Encuentre el nmero de elementos en la dimensin 0 (primera


dimensin) de array_a. Almacene el tamao en array_a_size. En este
ejemplo, la dimensin 0 de array_a tiene 10 elementos.

Lgica de escalera de rels


SIZE
SIZE
Tamao
Size inenElements
elementos
Source
Source array_a[0]
array_a[0]
255
255
Dim.
Dim.to Vary
To Vary 00
Tamao
Size array_a_size
array_a_size
1010

Texto estructurado

SIZE(array_a,0,array_a_size);

382 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Captulo 8

Ejemplo 2: Encuentre el nmero de elementos en el miembro DATA de string_1,


que es una cadena. Almacene el tamao en string_1_size. En este
ejemplo, el miembro DATA de string_1 tiene 82 elementos.
(La cadena usa el tipo de datos STRING predeterminado). Puesto que
cada elemento retiene 1 carcter, string_1 puede contener hasta
82 caracteres.

Lgica de escalera de rels


SIZE
SIZE
Tamao
Size in en elementos
Elements
Source string_1.DATA[0]
Source string_1.DATA[0]
$00
'$00'
Dim.
Dim.toTo
Vary
Vary 00
Tamao
Size string_1_size
string_1_size
82
82

Texto estructurado

SIZE(string_1.DATA[0],0,string_1_size);

Ejemplo 3: Strings_a es una matriz de estructuras de cadenas. La instruccin SIZE


encuentra el nmero de elementos en el miembro DATA de la
estructura de cadena y almacena el tamao en data_size_a. En este
ejemplo, el miembro DATA tiene 24 elementos. (La estructura de
cadenas tiene una longitud especificada por el usuario de 24).

Lgica de escalera de rels


SIZE
SIZE
Tamao
Size inen elementos
Elements
Source strings_a[0].DATA[0]
Source strings_a[0].DATA[0]
$00
'$00'
Dim.
Dim.toTo
Vary
Vary 00
Tamao
Size data_size_a
data_size_a
2424

Texto estructurado

SIZE(strings_a[0].DATA[0],0,data_size_a);

Publicacin 1756-RM003K-ES-P Julio 2008 383


Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Notas:

384 Publicacin 1756-RM003K-ES-P Julio 2008


Captulo 9

Instrucciones de matriz
(archivo)/desplazamiento
(BSL, BSR, FFL, FFU, LFL, LFU)

Introduccin Use las instrucciones de matriz (archivo)/desplazamiento para


modificar la ubicacin de datos dentro de matrices.

Si desea Use esta instruccin Disponible en estos lenguajes Vea la pgina


Cargar bits, desplazar bits y descargar bits de BSL lgica de escalera de rels 386
una matriz de bits, bit por bit.
BSR lgica de escalera de rels 390
Cargar y descargar valores en el mismo orden. FFL lgica de escalera de rels 394
FFU lgica de escalera de rels 400
Cargar y descargar valores en el orden LFL lgica de escalera de rels 406
invertido.
LFU lgica de escalera de rels 412

Usted puede mezclar diferentes tipos de datos, pero esto puede


causar prdida de exactitud y errores de redondeo.

Para las instrucciones de lgica de escalera de rels, los tipos de datos


que aparecen en negrita indican tipos de datos ptimos. Las
instrucciones se ejecutan ms rpidamente y requieren menos
memoria si todos los operandos de instruccin usan el mismo tipo de
datos ptimos, tpicamente DINT o REAL.

385Publicacin 1756-RM003K-ES-P Julio 2008 385


Captulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU)

Desplazamiento de bits a la La instruccin BSL desplaza los bits especificados dentro de la matriz
una posicin hacia la izquierda.
izquierda (BSL)
Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Array DINT tag de matriz que se modifica
matriz
especificar el primer elemento del grupo de
elementos

no usar CONTROL.POS en el subndice


Control CONTROL tag estructura de control para la operacin
Source bit BOOL tag bit que se desplaza
Length DINT inmediato nmero de bits en la matriz que se desplazan

Estructura CONTROL

Mnemnico Tipo de datos Descripcin


.EN BOOL El bit de habilitacin indica que la instruccin BSL est habilitada.
.DN BOOL Se establece el bit de efectuado para indicar que los bits se han desplazado una posicin
hacia la izquierda.
.UL BOOL El bit de descarga es la salida de la instruccin. El bit .UL almacena el estado del bit que se
desplaz fuera del rango de los bits.
.ER BOOL Se establece el bit de error cuando .LEN < 0.
.LEN DINT La longitud especifica el nmero de bits de matriz que se desplazan.

Descripcin: Cuando se habilita, la instruccin descarga el bit del extremo superior


de los bits especificados al bit .UL, desplaza los bits restantes una
posicin hacia la izquierda y carga el bit de Source en el bit 0 de
Array.

IMPORTANTE Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
La instruccin BSL realiza la operacin en la memoria de datos contiguos. En
algunos casos, la instruccin desplaza bits ms all de la matriz en otros miembros
del tag. Esto sucede si la longitud es excesiva y el tag es de un tipo de datos
definido por el usuario.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

386 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU) Captulo 9

Ejecucin:

Condicin: Accin de lgica de escalera de rels


preescn El bit .EN se borra.

El bit .DN se borra.

El bit .ER se borra.

El valor .POS se borra.

La condicin de salida de rengln se establece como falsa.


condicin de entrada de rengln es falsa El bit .EN se borra.

El bit .DN se borra.

El bit .ER se borra.

El valor .POS se borra.

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008 387


Captulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU)

Condicin: Accin de lgica de escalera de rels

condicin de entrada de rengln es verdadera

bit .EN = 1
examinar el bit .EN

bit .EN = 0

el bit .EN se establece

s
.LEN = 0 el bit .DN se establece

no

.source bit = 1
examinar el bit de el bit .UL permanece
origen establecido.
s
.LEN < 0 el bit .ER se establece

.source bit = 0

no
el bit .UL se establece.
desplazar matriz izquierda una posicin a la
izquierda
bit de
bit .UL matriz origen

la condicin de salida de
rengln se establece como
el bit .DN se establece verdadera

.POS = .LEN

fin

post-escn La condicin de salida de rengln se establece como falsa.

388 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU) Captulo 9

Ejemplo 1: Cuando se habilita, la instruccin BSL comienza en el bit 0 en


array_dint[0]. La instruccin descarga array_dint[0].9 en el bit .UL,
desplaza los bits restantes y carga input_1 en array_dint[0].0. Los
valores en los bits restantes (10-31) no son vlidos.

9 8 7 6 5 4 3 2 1 0
array_dint[0] 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0
antes del
desplazamiento 1
0 estos bits se desplazan
input_1
a la izquierda
bit .UL
9 8 7 6 5 4 3 2 1 0
array_dint[0] 0 1 1 1 1 0 0 0 0 1
despus del
desplazamiento

Ejemplo 2: Cuando se habilita, la instruccin BSL comienza en el bit 0 en


array_dint[0]. La instruccin descarga array_dint[1].25 en el bit .UL,
desplaza los bits restantes y carga input_1 en array_dint[0].0. Los
valores en los bits restantes (31-26 en array_dint[1]) no son vlidos.
Observe cmo array_dint[0].31 se desplaza a travs de las palabras
hasta array_dint[1].0.

31 0
array_dint[0] 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

1
estos bits se desplazan a la izquierda
input_1

31 0
array_dint[1] 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

0 estos bits se desplazan a la izquierda

bit .UL

Publicacin 1756-RM003K-ES-P Julio 2008 389


Captulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU)

Desplazamiento de bits a la La instruccin BSR desplaza los bits especificados dentro de la matriz
una posicin hacia la derecha.
derecha (BSR)
Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Array DINT tag de matriz que se modifica
matriz
especificar el elemento a partir del cual se
inicia el desplazamiento

no usar CONTROL.POS en el subndice


Control CONTROL tag estructura de control para la operacin
Source bit BOOL tag bit que se desplaza
Length DINT inmediato nmero de bits en la matriz que se desplazan

Estructura CONTROL

Mnemnico Tipo de datos Descripcin


.EN BOOL El bit de habilitacin indica que la instruccin BSR est habilitada.
.DN BOOL Se establece el bit de efectuado para indicar que los bits se han desplazado una posicin
hacia la derecha.
.UL BOOL El bit de descarga es la salida de la instruccin. El bit .UL almacena el estado del bit que se
desplaz fuera del rango de los bits.
.ER BOOL Se establece el bit de error cuando .LEN < 0.
.LEN DINT La longitud especifica el nmero de bits de la matriz que se desplazan.

Descripcin: Cuando se habilita, la instruccin descarga el valor del bit 0 de Array


en el bit .UL, desplaza los bits restantes una posicin hacia la derecha
y carga el bit de Source en el bit de extremo superior de los bits
especificados.

IMPORTANTE Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
La instruccin BSR realiza la operacin en la memoria de datos contiguos. En
algunos casos, la instruccin cambia los bits en otros miembros del tag. Esto sucede
si la longitud es excesiva y el tag es de un tipo de datos definido por el usuario.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

390 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU) Captulo 9

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn El bit .EN se borra.

El bit .DN se borra.

El bit .ER se borra.

El valor .POS se borra.

La condicin de salida de rengln se


establece como falsa.
condicin de entrada de rengln es falsa El bit .EN se borra.

El bit .DN se borra.

El bit .ER se borra.

El valor .POS se borra.

La condicin de salida de rengln se


establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008 391


Captulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU)

Condicin Accin de lgica de escalera de rels

condicin de entrada de rengln es verdadera

bit .EN = 1
examinar el bit .EN

bit .EN = 0

el bit .EN se establece

s
.LEN = 0 el bit .DN se establece

no

.source bit = 1
examinar el bit de el bit .UL permanece
origen establecido.
s
.LEN < 0 el bit .ER se establece

.source bit = 0

no
el bit .UL se establece
desplazar matriz izquierda una posicin hacia
la izquierda
bit de matriz bit .UL
origen

la condicin de salida de
rengln se establece como
el bit .DN se establece verdadera

.POS = .LEN

fin

post-escn La condicin de salida de rengln se establece como falsa.

392 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU) Captulo 9

Ejemplo 1: Cuando se habilita, la instruccin BSR comienza en el bit 9 en


array_dint[0]. La instruccin descarga array_dint[0].0 en el bit .UL,
desplaza los bits restantes a la derecha y carga input_1 en
array_dint[0].9. Los valores en los bits restantes (10-31) no son
vlidos.

9 8 7 6 5 4 3 2 1 0
array_dint[0] 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0
antes del
desplazamiento
0
1 estos bits se desplazan
a la derecha bit .UL
input_1
9 8 7 6 5 4 3 2 1 0
array_dint[0] 1 0 0 1 1 1 1 0 0 0
despus del
desplazamiento

Ejemplo 2: Cuando se habilita, la instruccin BSR comienza en el bit 25 en


array_dint[1]. La instruccin descarga array_dint[0].0 en el bit .UL,
desplaza los bits restantes a la derecha y carga input_1 en
array_dint[1].25. Los valores en los bits restantes (31-26 en
dint_array[1]) no son vlidos. Observe cmo array_dint[1].0 se
desplaza a travs de las palabras hasta array_dint[0].31.

31 0
array_dint[0] 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

0
estos bits se desplazan a la derecha
bit .UL

31 0
array_dint[1] 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

1 estos bits se desplazan a la derecha

input_1

Publicacin 1756-RM003K-ES-P Julio 2008 393


Captulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU)

Carga FIFO (FFL) La instruccin FFL copia el valor de Source a la FIFO.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source SINT inmediato datos que se almacenan en la FIFO

INT tag

DINT

REAL

cadena

estructura
Source se convierte en el tipo de datos del tag de matriz. Un nmero entero
menor se convierte en un nmero entero mayor mediante extensin de
signo.
FIFO SINT tag de FIFO que se modifica
matriz
INT especificar el primer elemento de la FIFO

DINT no usar CONTROL.POS en el subndice

REAL

cadena

estructura
Control CONTROL tag estructura de control para la operacin

generalmente se usa el mismo CONTROL que


el FFU asociado
Length DINT inmediato nmero mximo de elementos que la FIFO
puede contener a la vez
Position DINT inmediato la prxima ubicacin en la FIFO donde la
instruccin carga datos

el valor inicial es tpicamente 0

Si usted usa una estructura definida por el usuario como el tipo de


datos para el operando de Source o FIFO, use la misma estructura
para los dos operandos.

394 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU) Captulo 9

Estructura CONTROL

Mnemnico Tipo de datos Descripcin


.EN BOOL El bit de habilitacin indica que la instruccin FFL est habilitada.
.DN BOOL Se establece el bit de efectuado para indicar que la FIFO est llena (.POS = .LEN). El bit .DN
inhibe la carga de la FIFO hasta que .POS < .LEN.
.EM BOOL El bit de vaco indica que la FIFO est vaca. Si .LEN 0 o .POS < 0, los bits .EM y .DN se
establecen.
.LEN DINT La longitud especifica el nmero mximo de elementos que la FIFO puede contener a la vez.
.POS DINT La posicin identifica la ubicacin en la FIFO donde la instruccin cargar el siguiente valor.

Descripcin: Use la instruccin FFL con la instruccin FFU para almacenar y


recuperar datos en el siguiente orden: primero en entrar, primero en
salir. Cuando se usan en parejas, las instrucciones FFL y FFU
establecen un registro de desplazamiento asncrono.

Normalmente, Source y la FIFO tienen el mismo tipo de datos.

Cuando se habilita, la instruccin FFL carga el valor de Source en la


posicin de la FIFO identificada por el valor .POS. La instruccin
carga un valor cada vez que la instruccin se habilita hasta que la
FIFO est llena.

IMPORTANTE Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
La instruccin FFL realiza la operacin en la memoria de datos contiguos. En algunos
casos, la instruccin carga datos ms all de la matriz en otros miembros del tag.
Esto sucede si la longitud es excesiva y el tag es de un tipo de datos definido por el
usuario.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:

Ocurrir un fallo mayor si Tipo de fallo Cdigo de fallo


(elemento inicial + .POS) > tamao de la matriz 4 20
FIFO

Publicacin 1756-RM003K-ES-P Julio 2008 395


Captulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU)

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn

se establece el bit .EN para evitar una


carga falsa cuando se inicia el escn

s
.LEN < 0

no

s
.POS < 0

no

el bit .EM se borra el bit .EM est establecido


el bit .DN se borra el bit .DN est establecido

s
.POS = 0 el bit .EM est establecido

no

s
.POS .LEN el bit .DN est establecido

no

la condicin de salida de
rengln se establece como
falsa

fin

396 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU) Captulo 9

Condicin Accin de lgica de escalera de rels

condicin de entrada de rengln es falsa

el bit .EN se borra

s
.LEN < 0

no

s
.POS < 0

no

el bit .EM se borra el bit .EM est establecido


el bit .DN se borra el bit .DN est establecido

s
.POS = 0 el bit .EM est establecido

no

s
.POS .LEN el bit .DN est establecido

no

la condicin de salida de
rengln se establece como
falsa

fin

Publicacin 1756-RM003K-ES-P Julio 2008 397


Captulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU)

Condicin Accin de lgica de escalera de rels

condicin de entrada de rengln es verdadera

.EN = 0 s
examinar el el bit .EN se establece .LEN < 0
bit .EN

.EN = 1 no

s s
.LEN < 0 .POS < 0

no no

el bit .EM se borra el bit .EM est


s establecido
.POS < 0 el bit .DN se borra
el bit .DN est
.POS = .POS + 1 establecido
no
el bit .EM est
el bit .EM se borra establecido
el bit .DN est s
el bit .DN se borra
establecido .POS .LEN el bit .DN se establece

no

s
.POS = 0 el bit .EM est establecido

.POS o s
no .LEN > tamao de fallo mayor
la matriz

no

s
.POS .LEN el bit .DN se establece

s
no .POS > .LEN .POS = .POS - 1

no

FIFO[.POS - 1] = origen

la condicin de salida de
rengln se establece como
verdadera

fin

post-escn La condicin de salida de rengln se establece como falsa.

398 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU) Captulo 9

Ejemplo: Una vez habilitada, la instruccin FFL carga value_1 en la siguiente


posicin de la FIFO, la cual es array_dint[5] en este ejemplo.

antes de la carga despus de la carga


FIFO FIFO
array_dint[0] 00000 00000
11111 11111
22222 22222
33333 control_1.pos = 5 33333
44444 value_1 = 55555 44444
array_dint[5] 00000 55555
00000 00000 control_1.pos = 6
00000 00000
00000 00000
00000 00000

Publicacin 1756-RM003K-ES-P Julio 2008 399


Captulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU)

Descarga FIFO (FFU) La instruccin FFU descarga el valor desde la posicin 0 (primera
posicin) de la FIFO y almacena dicho valor en Destination. El resto
de los datos en la FIFO se desplazan hacia abajo una posicin.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


FIFO SINT tag de FIFO que se modifica
matriz
INT especificar el primer elemento de la FIFO

DINT no usar CONTROL.POS en el subndice

REAL

cadena

estructura
Destination SINT tag valor que sale de la FIFO

INT

DINT

REAL

cadena

estructura
El valor de destino se convierte en el tipo de datos del tag de Destination.
Un nmero entero menor se convierte en un nmero entero mayor
mediante extensin de signo.
Control CONTROL tag estructura de control para la operacin

generalmente se usa el mismo CONTROL que


el FFL asociado
Length DINT inmediato nmero mximo de elementos que la FIFO
puede contener a la vez
Position DINT inmediato La prxima ubicacin en la FIFO donde la
instruccin descarga datos

el valor inicial es tpicamente 0

Si usted usa una estructura definida por el usuario como el tipo de


datos para el operando FIFO o Destination, use la misma estructura
para los dos operandos.

400 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU) Captulo 9

Estructura CONTROL

Mnemnico Tipo de datos Descripcin


.EU BOOL El bit de habilitacin de descarga indica que la instruccin FFU est habilitada. El bit .EU se
establece para impedir una descarga falsa cuando se inicia el escn del programa.
.DN BOOL Se establece el bit de efectuado para indicar que la FIFO est llena (.POS = .LEN).
.EM BOOL El bit de vaco indica que la FIFO est vaca. Si .LEN 0 o .POS < 0, los bits .EM y .DN se
establecen.
.LEN DINT La longitud especifica el nmero mximo de elementos en la FIFO.
.POS DINT La posicin identifica el final de los datos cargados en la FIFO.

Descripcin: Use la instruccin FFU con una instruccin FFL para almacenar y
recuperar datos en el siguiente orden: primero en entrar, primero en
salir.

Una vez habilitada, la instruccin FFU descarga los datos desde el


primer elemento de la FIFO y coloca dicho valor en Destination. La
instruccin descarga un valor cada vez que la instruccin se habilita
hasta que la FIFO est vaca. Si la FIFO est vaca, FFU retorna la
cifra 0 a Destination.

IMPORTANTE Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
La instruccin FFU realiza la operacin en la memoria de datos contiguos. En
algunos casos, la instruccin descarga datos desde otros miembros del tag. Esto
sucede si la longitud es excesiva y el tag es de un tipo de datos definido por el
usuario.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:

Ocurrir un fallo mayor si Tipo de fallo Cdigo de fallo


Length > tamao de la matriz FIFO 4 20

Publicacin 1756-RM003K-ES-P Julio 2008 401


Captulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU)

Ejecucin:

Condicin Accin de lgica de escalera de rels

preescn

se establece el bit .EU para evitar una


descarga falsa cuando se inicia el escn

s
.LEN < 0

no

s
.POS < 0

no

el bit .EM se borra el bit .EM est establecido


el bit .DN se borra el bit .DN est establecido

s
.POS = 0 el bit .EM est establecido

no

s
.POS .LEN el bit .DN est establecido

no

la condicin de salida de
rengln se establece como
falsa

fin

402 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU) Captulo 9

Condicin Accin de lgica de escalera de rels

condicin de entrada de rengln es falsa

el bit .EU se borra

s
.LEN < 0

no

s
.POS < 0

no

el bit .EM se borra el bit .EM est establecido


el bit .DN se borra el bit .DN est establecido

s
.POS = 0 el bit .EM est establecido

no

s
.POS .LEN el bit .DN est establecido

no

la condicin de salida de
rengln se establece como
falsa

fin

Publicacin 1756-RM003K-ES-P Julio 2008 403


Captulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU)

Condicin Accin de lgica de escalera de rels


condicin de entrada de rengln es verdadera

.EU = 0 s
examinar el el bit .EU est .LEN < 0
bit .EU establecido

.EU = 1 no

s s
.LEN < 0 .POS < 0

no no

el bit .EM se borra el bit .EM est


s establecido
.POS < 0 el bit .DN se borra
el bit .DN est
establecido
no
el bit .EM est
el bit .EM se borra establecido .LEN > s
tamao de la fallo mayor
el bit .DN se borra el bit .DN est matriz
establecido
no

s
.POS = 0 el bit .EM est establecido s
.POS 1 el bit .EM est establecido

no
no

s
s .POS < 1 Destination = 0
.POS .LEN el bit .DN se establece

no
no
.POS = .POS -1
Destination = FIFO[0]
i=1

FIFO[i - 1] = FIFO[i]
i = i +1

s
i < .LEN

no
la condicin de salida de
rengln se establece como
verdadera

fin

post-escn La condicin de salida de rengln se establece como falsa.

404 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU) Captulo 9

Ejemplo: Una vez habilitada, la instruccin FFU descarga array_dint[0] en


value_2 y desplaza el resto de los elementos en array_dint.

antes de la descarga despus de la descarga


FIFO FIFO
array_dint[0] 00000 11111
11111 22222
22222 33333
33333 44444
44444 55555
array_dint[5] 55555 00000 control_1.pos = 5
00000 control_1.pos = 6 00000 value_2 = 00000
00000 00000
00000 00000
00000 00000

Publicacin 1756-RM003K-ES-P Julio 2008 405


Captulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU)

Carga LIFO (LFL) La instruccin LFL copia el valor de Source en la LIFO.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source SINT inmediato datos que se almacenan en la LIFO

INT tag

DINT

REAL

cadena

estructura
Source se convierte en el tipo de datos del tag de matriz. Un nmero entero
menor se convierte en un nmero entero mayor mediante extensin de
signo.
LIFO SINT tag de LIFO que se modifica
matriz
INT especificar el primer elemento de la LIFO

DINT no usar CONTROL.POS en el subndice

REAL

cadena

estructura
Control CONTROL tag estructura de control para la operacin

generalmente se usa el mismo CONTROL que


el LFU asociado
Length DINT inmediato nmero mximo de elementos que la LIFO
puede contener a la vez
Position DINT inmediato la siguiente ubicacin en la LIFO donde la
instruccin carga datos

el valor inicial es tpicamente 0

Si usted usa una estructura definida por el usuario como el tipo de


datos para el operando Source o LIFO, use la misma estructura para
los dos operandos.

406 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU) Captulo 9

Estructura CONTROL

Mnemnico Tipo de datos Descripcin:


.EN BOOL El bit de habilitacin indica que la instruccin LFL est habilitada.
.DN BOOL Se establece el bit de efectuado para indicar que la LIFO est llena (.POS = .LEN). El bit .DN
inhibe la carga de la LIFO hasta que .POS < .LEN.
.EM BOOL El bit de vaco indica que la LIFO est vaca. Si .LEN 0 o .POS < 0, los bits .EM y .DN se
establecen.
.LEN DINT La longitud especifica el nmero mximo de elementos que la LIFO puede contener a la vez.
.POS DINT La posicin identifica la ubicacin en la LIFO donde la instruccin cargar el siguiente valor.

Descripcin: Use la instruccin LFL con la instruccin LFU para almacenar y


recuperar datos en el siguiente orden: ltimo en entrar, primero en
salir. Cuando se usan en parejas, las instrucciones LFL y LFU
establecen un registro de desplazamiento asncrono.

Normalmente, Source y LIFO tienen el mismo tipo de datos.

Cuando se habilita, la instruccin LFL carga el valor de Source en la


posicin en la LIFO identificada por el valor .POS. La instruccin
carga un valor cada vez que la instruccin se habilita hasta que la
LIFO est llena.

IMPORTANTE Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
La instruccin LFL realiza la operacin en la memoria de datos contiguos. En algunos
casos, la instruccin carga datos ms all de la matriz en otros miembros del tag.
Esto sucede si la longitud es excesiva y el tag es de un tipo de datos definido por el
usuario.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:

Ocurrir un fallo mayor si Tipo de fallo Cdigo de fallo


(elemento inicial + .POS) > tamao de la matriz 4 20
LIFO

Publicacin 1756-RM003K-ES-P Julio 2008 407


Captulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU)

Ejecucin:

Condicin: Accin de lgica de escalera de rels

preescn

se establece el bit .EN para evitar una


carga falsa cuando se inicia el escn

s
.LEN < 0

no

s
.POS < 0

no

el bit .EM se borra el bit .EM est establecido


el bit .DN se borra el bit .DN est establecido

s
.POS = 0 el bit .EM est establecido

no

s
.POS .LEN el bit .DN est establecido

no

la condicin de salida de
rengln se establece como
falsa

fin

408 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU) Captulo 9

Condicin: Accin de lgica de escalera de rels

condicin de entrada de rengln es falsa

el bit .EN se borra

s
.LEN < 0

no

s
.POS < 0

no

el bit .EM se borra el bit .EM est establecido


el bit .DN se borra el bit .DN est establecido

s
.POS = 0 el bit .EM est establecido

no

s
.POS .LEN el bit .DN est establecido

no

la condicin de salida de
rengln se establece como
falsa

fin

Publicacin 1756-RM003K-ES-P Julio 2008 409


Captulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU)

Condicin: Accin de lgica de escalera de rels

condicin de entrada de rengln es verdadera

.EN = 0 s
examinar el el bit .EN se .LEN < 0
bit .EN establece

.EN = 1 no

s s
.LEN < 0 .POS < 0

no no

el bit .EM se borra el bit .EM est


s establecido
.POS < 0 el bit .DN se borra
el bit .DN est
.POS = .POS + 1 establecido
no
el bit .EM est
el bit .EM se borra establecido
el bit .DN est s
el bit .DN se borra
establecido .POS .LEN el bit .DN se establece

no

s
.POS = 0 el bit .EM est establecido

.POS o s
no .LEN > tamao de fallo mayor
la matriz

no

s
.POS .LEN el bit .DN se establece

s
no .POS > .LEN .POS = .POS - 1

no

LIFO[.POS - 1] = origen

la condicin de salida de
rengln se establece como
verdadera

fin

post-escn La condicin de salida de rengln se establece como falsa.

410 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU) Captulo 9

Ejemplo: Una vez habilitada, la instruccin LFL carga value_1 en la prxima


posicin en la LIFO, la cual es array_dint[5] en este ejemplo.

antes de la carga despus de la carga


LIFO LIFO
array_dint[0] 00000 00000
11111 11111
22222 22222
33333 control_1.pos = 5 33333
44444 value_1 = 55555 44444
array_dint[5] 00000 55555
00000 00000 control_1.pos = 6
00000 00000
00000 00000
00000 00000

Publicacin 1756-RM003K-ES-P Julio 2008 411


Captulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU)

Descarga LIFO (LFU) La instruccin LFU descarga el valor en .POS de la LIFO y almacena 0
en ese lugar.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


LIFO SINT tag de LIFO que se modifica
matriz
INT especificar el primer elemento de la LIFO

DINT no usar CONTROL.POS en el subndice

REAL

cadena

estructura
Destination SINT tag valor que sale de la LIFO

INT

DINT

REAL

cadena

estructura
El valor de destino se convierte en el tipo de datos del tag de Destination.
Un nmero entero menor se convierte en un nmero entero mayor
mediante extensin de signo.
Control CONTROL tag estructura de control para la operacin

generalmente se usa el mismo CONTROL que


el LFL asociado
Length DINT inmediato nmero mximo de elementos que la LIFO
puede contener a la vez
Position DINT inmediato La prxima ubicacin en la LIFO donde la
instruccin descarga datos

el valor inicial es tpicamente 0

Si usted usa una estructura definida por el usuario como el tipo de


datos para el operando LIFO o Destination, use la misma estructura
para los dos operandos.

412 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU) Captulo 9

Estructura CONTROL

Mnemnico Tipo de datos: Descripcin


.EU BOOL El bit de habilitacin de descarga indica que la instruccin LFU est habilitada. El bit .EU se
establece para impedir una descarga falsa cuando se inicia el escn del programa.
.DN BOOL Se establece el bit de efectuado para indicar que la LIFO est llena (.POS = .LEN).
.EM BOOL El bit de vaco indica que la LIFO est vaca. Si .LEN 0 o .POS < 0, los bits .EM y .DN se
establecen.
.LEN DINT La longitud especifica el nmero mximo de elementos que la LIFO puede contener a la vez.
.POS DINT La posicin identifica el final de los datos cargados en la LIFO.

Descripcin: Use la instruccin LFU con la instruccin LFL para almacenar y


recuperar datos en el siguiente orden: ltimo en entrar, primero en
salir.

Una vez habilitada, la instruccin LFU descarga el valor en .POS de la


LIFO y coloca dicho valor en Destination. La instruccin descarga un
valor y lo reemplaza por 0 cada vez que la instruccin se habilita
hasta que la LIFO est vaca. Si la LIFO est vaca, LFU retorna la
cifra 0 a Destination.

IMPORTANTE Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
La instruccin LFU realiza la operacin en la memoria de datos contiguos. En
algunos casos, la instruccin descarga datos desde otros miembros del tag. Esto
sucede si la longitud es excesiva y el tag es de un tipo de datos definido por el
usuario.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:

Ocurrir un fallo mayor si Tipo de fallo Cdigo de fallo


Length > tamao de la matriz LIFO 4 20

Publicacin 1756-RM003K-ES-P Julio 2008 413


Captulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU)

Ejecucin:

Condicin Accin de lgica de escalera de rels:

preescn

se establece el bit .EU para evitar una


descarga falsa cuando se inicia el escn.

s
.LEN < 0

no

s
.POS < 0

no

el bit .EM se borra el bit .EM est establecido


el bit .DN se borra el bit .DN est establecido

s
.POS = 0 el bit .EM est establecido

no

s
.POS .LEN el bit .DN est establecido

no

la condicin de salida de
rengln se establece como
falsa

fin

414 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU) Captulo 9

Condicin Accin de lgica de escalera de rels:

condicin de entrada de rengln es falsa

el bit .EU se borra

s
.LEN < 0

no

s
.POS < 0

no

el bit .EM se borra el bit .EM est establecido


el bit .DN se borra el bit .DN est establecido

s
.POS = 0 el bit .EM est establecido

no

s
.POS .LEN el bit .DN est establecido

no

la condicin de salida de
rengln se establece como
falsa

fin

Publicacin 1756-RM003K-ES-P Julio 2008 415


Captulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU)

Condicin Accin de lgica de escalera de rels:


condicin de entrada de rengln es verdadera

.EU = 0 s
examinar el el bit .EU est .LEN < 0
bit .EU establecido

.EU = 1 no

s s
.LEN < 0 .POS < 0

no no

el bit .EM se borra el bit .EM est


s establecido
.POS < 0 el bit .DN se borra
el bit .DN est
establecido
no
el bit .EM est
el bit .EM se borra establecido s
.POS 1 el bit .EM est establecido
el bit .DN se borra el bit .DN est
establecido
no

s s
.POS = 0 el bit .EM est establecido .POS < 1 Destination = 0

no no

s
.POS > .LEN .POS = .LEN
s
.POS .LEN el bit .DN se establece
no
no
.POS = .POS -1

.LEN > s
tamao de la fallo mayor
matriz

no

Destination = LIFO[control.POS]
LIFO[control.POS) = 0

la condicin de salida de
rengln se establece como
verdadera

fin

post-escn La condicin de salida de rengln se establece como falsa.

416 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU) Captulo 9

Ejemplo: Una vez habilitada, la instruccin LFU descarga array_dint[5] en


value_2.

antes de la descarga despus de la descarga


LIFO LIFO
array_dint[0] 00000 00000
11111 11111
22222 22222
33333 33333
44444 44444
array_dint[5] 55555 00000 control_1.pos = 5
00000 control_1.pos = 6 00000 value_2 = 55555
00000 00000
00000 00000
00000 00000

Publicacin 1756-RM003K-ES-P Julio 2008 417


Captulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU)

Notas:

418 Publicacin 1756-RM003K-ES-P Julio 2008


Captulo 10

Instrucciones de secuenciador
(SQI, SQO, SQL)

Introduccin No se toma ninguna accin. Las instrucciones de secuenciador


monitorean operaciones uniformes y repetibles.

Si desea Use esta instruccin Disponible en estos lenguajes Vea la pgina


Detectar cundo ha concluido un paso SQI lgica de escalera de rels 420
Establecer condiciones de salida para el SQO lgica de escalera de rels 424
siguiente paso
Cargar condiciones de referencia en matrices SQL lgica de escalera de rels 428
de secuenciador

Para las instrucciones de lgica de escalera de rels, los tipos de datos


que aparecen en letras negritas indican tipos de datos ptimos. Las
instrucciones se ejecutan ms rpidamente y requieren menos
memoria si todos los operandos de instruccin usan el mismo tipo de
datos ptimos, tpicamente DINT o REAL.

419Publicacin 1756-RM003K-ES-P Julio 2008 419


Captulo 10 Instrucciones de secuenciador (SQI, SQO, SQL)

Secuenciador de entrada La instruccin SQI detecta cundo ha concluido un paso en una


pareja de instrucciones de secuencia SQO/SQI.
(SQI)
Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Array DINT tag de matriz de secuenciador
matriz
especifica el primer elemento de la matriz de
secuenciador

no use CONTROL.POS en el subndice


Mask SINT tag qu bits se bloquean o se pasan

INT inmediato

DINT
Un tag SINT o INT se convierte en un valor DINT mediante la extensin con
signo.
Source SINT tag datos de entrada en la matriz de secuenciador

INT

DINT
Un tag SINT o INT se convierte en un valor DINT mediante la extensin con
signo.
Control CONTROL tag estructura de control para la operacin

normalmente se usa el mismo CONTROL que


para las instrucciones SQO y SQL
Length DINT inmediato nmero de elementos en la matriz (tabla de
secuenciador) que se va a comparar
Position DINT inmediato posicin actual en la matriz

el valor inicial es tpicamente 0

Estructura CONTROL

Mnemnico Tipo de datos Descripcin


.ER BOOL El bit de error se establece cuando .LEN 0, .POS < 0, o .POS > .LEN.
.LEN DINT La longitud especifica el nmero de pasos en la matriz de secuenciador.
.POS DINT La posicin identifica el elemento que la instruccin est comparando actualmente.

420 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de secuenciador (SQI, SQO, SQL) Captulo 10

Descripcin: Cuando se habilita, la instruccin SQI compara un elemento fuente


(Source), a travs de una mscara (Mask), a un elemento de matriz
(Array) para determinar su equivalencia.

Normalmente se usa la misma estructura de CONTROL que para las


instrucciones SQO y SQL

La instruccin SQI realiza la operacin en memoria contigua.

Introduzca un valor de mscara inmediato

Cuando usted introduce una mscara, el software de programacin


cambia de manera predeterminada a valores decimales. Si desea
introducir una mscara usando otro formato, preceda el valor con el
prefijo correcto.

Prefijo: Descripcin
16# hexadecimal

por ejemplo; 16#0F0F


8# octal

por ejemplo; 8#16


2# binario

por ejemplo; 2#00110011

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Publicacin 1756-RM003K-ES-P Julio 2008 421


Captulo 10 Instrucciones de secuenciador (SQI, SQO, SQL)

Ejecucin:

Condicin: Accin de lgica de escalera de rels


preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln es verdadera

.LEN 0
.POS < 0 no
o el bit .ER se borra
.POS > .LEN

el bit .ER se establece

Source
no enmascarada =
Array[.POS]
enmascarada

la condicin de salida de la condicin de salida de


rengln se establece como rengln se establece como
falsa verdadera

fin

post-escn La condicin de salida de rengln se establece como falsa.

422 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de secuenciador (SQI, SQO, SQL) Captulo 10

Ejemplo: Cuando se habilita, la instruccin SQI pasa el value_2 a travs de la


mscara para determinar si el resultado es igual al elemento actual en
array_dint. La comparacin enmascarada es verdadera; por lo tanto,
la condicin de salida de rengln se hace verdadera.

Operando SQI Ejemplo de valores (usando DINT mostrados en binario):


Source xxxxxxxx xxxxxxxx xxxx0101 xxxx1010
Mask 00000000 00000000 00001111 00001111
Array xxxxxxxx xxxxxxxx xxxx0101 xxxx1010

Un nmero 0 en la mscara significa que el bit no se compara


(designado por xxxx en este ejemplo).

Use SQI sin SQO

Si usted usa la instruccin SQI sin una instruccin SQO emparejada,


tiene que incrementar externamente la matriz de secuenciador.

La instruccin SQI compara el valor de fuente. La instruccin ADD


incrementa la matriz de secuenciador. GRT determin si otro valor
est disponible para verificacin en la matriz de secuenciador. La
instruccin MOV restablece el valor de posicin despus de pasar
paso a paso completamente por la matriz de secuenciador una vez.

Publicacin 1756-RM003K-ES-P Julio 2008 423


Captulo 10 Instrucciones de secuenciador (SQI, SQO, SQL)

Secuenciador de salida La instruccin SQO establece condiciones de salida para el siguiente


paso de una pareja de instrucciones SQO/SQI de secuencia.
(SQO)
Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Array DINT tag de matriz matriz de secuenciador

especifica el primer elemento de la matriz


de secuenciador

no use CONTROL.POS en el subndice


Mask SINT tag qu bits se bloquean o se pasan

INT inmediato

DINT
Un tag SINT o INT se convierte en un valor DINT mediante la extensin con
signo.
Destination DINT tag datos de salida provenientes de la matriz de
secuenciador
Control CONTROL tag estructura de control para la operacin

normalmente, se usa el mismo CONTROL


que para las instrucciones SQI y SQL
Length DINT inmediato nmero de elementos en la matriz (tabla de
secuenciador) que se va a establecer como
salida
Position DINT inmediato posicin actual en la matriz

el valor inicial es tpicamente 0

Estructura CONTROL

Mnemnico Tipo de datos Descripcin


.EN BOOL El bit de habilitacin indica que la instruccin SQO est habilitada.
.DN BOOL El bit de efectuado se establece cuando todos los elementos especificados se han
transferido a Destination.
.ER BOOL El bit de error se establece cuando .LEN 0, .POS < 0, o .POS > .LEN.
.LEN DINT La longitud especifica el nmero de pasos en la matriz de secuenciador.
.POS DINT La posicin identifica el elemento que el controlador est manipulando actualmente.

424 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de secuenciador (SQI, SQO, SQL) Captulo 10

Descripcin: Cuando se habilita, la instruccin SQO incrementa la posicin,


transfiere los datos en la posicin a travs de la mscara (Mask) y
almacena el resultado en Destination. Si .POS > .LEN, la instruccin da
la vuelta hasta el comienzo de la matriz de secuenciador y contina
con .POS = 1.

Normalmente, se usa la misma estructura de CONTROL que para las


instrucciones SQI y SQL.

La instruccin SQO realiza la operacin en memoria contigua.

Introduzca un valor de mscara inmediato

Cuando usted introduce una mscara, el software de programacin


cambia de manera predeterminada a valores decimales. Si desea
introducir una mscara usando otro formato, preceda el valor con el
prefijo correcto.

Prefijo Descripcin
16# hexadecimal

por ejemplo; 16#0F0F


8# octal

por ejemplo; 8#16


2# binario

por ejemplo; 2#00110011

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn El bit .EN se establece para impedir una carga falsa cuando se inicia el escn del
programa.

La condicin de salida de rengln se establece como falsa.


condicin de entrada de rengln es falsa El bit .EN se borra.

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008 425


Captulo 10 Instrucciones de secuenciador (SQI, SQO, SQL)

Condicin Accin de lgica de escalera de rels


condicin de entrada de rengln es verdadera

el bit .EN se establece


.LEN 0 o no
examine el
.EN = 0
.POS < 0 el bit .ER se borra
bit .EN
el bit .DN se establece
s .EN = 1

no s
.POS = .LEN .POS .LEN .POS = 1

s no

el bit .DN se establece .POS = .POS + 1

el valor s ir a
.POS retorna al
valor inicial error

no

s
.POS = .LEN el bit .DN se establece

no

no
.POS > .LEN

error

el bit .ER se establece Destination = (Destination AND (NOT(Mask)))


OR (Array[control.POS] AND Mask)

la condicin de salida de rengln


se establece como verdadera

fin

post-escn La condicin de salida de rengln se establece como falsa.

426 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de secuenciador (SQI, SQO, SQL) Captulo 10

Ejemplo: Cuando se habilita, la instruccin SQO incrementa la posicin, pasa


los datos en esa posicin en array_dint a travs de la mscara y
almacena el resultado en value_1.

Operando SQO Ejemplo de valores (usando INT mostrados en binario):


Array xxxxxxxx xxxxxxxx xxxx0101 xxxx1010
Mask 00000000 00000000 00001111 00001111
Destination xxxxxxxx xxxxxxxx xxxx0101 xxxx1010

Un nmero 0 en la mscara significa que el bit no se compara


(designado por xxxx en este ejemplo).

Uso de SQI con SQO


Si usted empareja una instruccin SQI con una instruccin SQO,
asegrese de que ambas instrucciones usen los mismos valores de
Control, Length y Position.

Restablecimiento de la posicin de SQO


Cada vez que el controlador cambia del modo de programacin al
modo de marcha, la instruccin SQO borra (inicializa) el valor .POS.
Para restablecer .POS al valor de inicializacin (.POS = 0), use una
instruccin RES a fin de borrar el valor de posicin. Este ejemplo usa
el estado del bit de primer escn para borrar el valor .POS.

Publicacin 1756-RM003K-ES-P Julio 2008 427


Captulo 10 Instrucciones de secuenciador (SQI, SQO, SQL)

Carga de secuenciador La instruccin SQL carga condiciones de referencia en una matriz de


secuenciador.
(SQL)
Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Array DINT tag de matriz matriz de secuenciador

especifica el primer elemento de la matriz


de secuenciador

no use CONTROL.POS en el subndice


Source SINT tag datos de entrada que se van a cargar en la
matriz de secuenciador
INT inmediato

DINT
Un tag SINT o INT se convierte en un valor DINT mediante la extensin con
signo.
Control CONTROL tag estructura de control para la operacin

normalmente, se usa el mismo CONTROL


que para las instrucciones SQI y SQO
Length DINT inmediato nmero de elementos en la matriz (tabla de
secuenciador) que se va a cargar
Position DINT inmediato posicin actual en la matriz

el valor inicial es tpicamente 0

Estructura CONTROL

Mnemnico Tipo de datos Descripcin


.EN BOOL El bit de habilitacin indica que la instruccin SQL est habilitada.
.DN BOOL El bit de efectuado se establece cuando todos los elementos especificados se han cargado
en la matriz.
.ER BOOL El bit de error se establece cuando .LEN 0, .POS < 0, o .POS > .LEN.
.LEN DINT La longitud especifica el nmero de pasos en la matriz de secuenciador.
.POS DINT La posicin identifica el elemento que el controlador est manipulando actualmente.

428 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de secuenciador (SQI, SQO, SQL) Captulo 10

Descripcin: Cuando se habilita, la instruccin SQL incremente la siguiente


posicin en la matriz de secuenciador y carga el valor de Source en
dicha posicin. El bit .DN se establece, o si .POS .LEN, la instruccin
establece .POS=1.

Normalmente, se usa la misma estructura de CONTROL que para las


instrucciones SQI y SQO.

IMPORTANTE Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
La instruccin SQL realiza la operacin en memoria contigua. En algunos casos, la
instruccin carga datos ms all de la matriz en otros miembros del tag. Esto sucede
si la longitud es excesiva y el tag es de un tipo de datos definido por el usuario.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:

Ocurrir un fallo mayor si Tipo de fallo Cdigo de fallo


Longitud > tamao de la matriz 4 20

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn El bit .EN se establece para impedir una carga falsa cuando se inicia el escn del
programa.

La condicin de salida de rengln se establece como falsa.


condicin de entrada de rengln es falsa El bit .EN se borra.

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008 429


Captulo 10 Instrucciones de secuenciador (SQI, SQO, SQL)

Condicin Accin de lgica de escalera de rels


condicin de entrada de rengln es verdadera

el bit .EN se establece


.LEN 0 o no
examine el
.EN = 0
.POS < 0 el bit .ER se borra
bit .EN
el bit .DN se establece
s .EN = 1

no s
.POS = .LEN .POS .LEN .POS = 1

s no

el bit .DN se establece .POS = .POS + 1

el valor s ir a
.POS retorna al error
valor inicial

no

s
.POS = .LEN el bit .DN se establece

no

no
.POS > .LEN

s
.LEN > s
tamao de la
error matriz

no
fallo mayor

el bit .ER se establece Array[control.POS] = Source

la condicin de salida de
rengln se establece como
verdadera

fin

post-escn La condicin de salida de rengln se establece como falsa.

430 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de secuenciador (SQI, SQO, SQL) Captulo 10

Ejemplo: Una vez habilitada, la instruccin SQL carga value_3 en la prxima


posicin en la matriz de secuenciador la cual es array_dint[5] en este
ejemplo.

antes de la carga despus de la carga


array_dint[0] 00000 00000
11111 11111
22222 22222
33333 control_1.pos = 5 33333
44444 value_3 = 55555 44444
array_dint[5] 00000 55555
00000 00000 control_1.pos = 6
00000 00000
00000 00000
00000 00000

Publicacin 1756-RM003K-ES-P Julio 2008 431


Captulo 10 Instrucciones de secuenciador (SQI, SQO, SQL)

Notas:

432 Publicacin 1756-RM003K-ES-P Julio 2008


Captulo 11

Instrucciones de control de programa


(JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI,
NOP, EOT, SFP, SFR, EVENT)

Introduccin Use las instrucciones de control de programa para cambiar el flujo de


la lgica.

Si desea Use esta instruccin Disponible en estos lenguajes Vea la pgina


Saltarse una seccin de lgica que no siempre JMP lgica de escalera de rels 434
necesita ejecutarse. LBL
Saltar a una rutina separada, pasar datos a la JSR lgica de escalera de rels 436
rutina, ejecutar la rutina y retornar resultados. SBR
RET bloque de funciones
texto estructurado
Saltar a una rutina externa (controlador JXR lgica de escalera de rels 447
SoftLogix5800 solamente)
Marcar un fin temporal que detiene la TND lgica de escalera de rels 450
ejecucin de la rutina.
texto estructurado
Inhabilitar todos los renglones en una seccin MCR lgica de escalera de rels 452
de lgica.
Inhabilitar tareas de usuario. UID lgica de escalera de rels 454
texto estructurado
Habilitar tareas de usuario. UIE lgica de escalera de rels 454
texto estructurado
Inhabilitar un rengln. AFI lgica de escalera de rels 456
Insertar un indicador de posicin en la lgica. NOP lgica de escalera de rels 457
Finalizar una transicin para un diagrama de EOT lgica de escalera de rels 458
funcin secuencial
texto estructurado
Poner en pausa un diagrama de funcin SFP lgica de escalera de rels 460
secuencial
texto estructurado
Restablecer un diagrama de funcin secuencial SFR lgica de escalera de rels 462
texto estructurado
Activar la ejecucin de una tarea de evento EVENT lgica de escalera de rels 464
texto estructurado

433Publicacin 1756-RM003K-ES-P Julio 2008 433


Captulo 11 Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Saltar a etiqueta (JMP) Las instrucciones JMP y LBL saltan porciones de la lgica de escalera.
Etiqueta (LBL)
Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


instruccin JMP
Nombre de nombre de introduzca un nombre para la instruccin LBL
etiqueta etiqueta asociada
instruccin LBL
Nombre de nombre de la ejecucin salta a la instruccin LBL con el
etiqueta etiqueta nombre de etiqueta al cual se hizo referencia

Descripcin: Cuando se habilita, la instruccin JMP salta a la instruccin LBL


referenciada y el controlador contina la ejecucin desde all. Cuando
se inhabilita, la instruccin JMP no afecta la ejecucin de la lgica de
escalera.

La instruccin JMP puede mover la ejecucin de la lgica de escalera


hacia adelante o hacia atrs. Saltar hacia adelante a una etiqueta
ahorra tiempo de escn del programa al omitir un segmento de lgica
hasta que ste sea necesario. Los saltos hacia atrs permiten al
controlador repetir iteraciones de lgica.

Abstngase de saltar hacia atrs un nmero excesivo de veces. El


temporizador de control (watchdog) podra sobrepasar el tiempo de
espera porque el controlador nunca llegara al final de la lgica, lo
cual hara fallar al controlador.

ATENCIN La lgica saltada no se escanea. Coloque la lgica crtica fuera


de la zona saltada.

La instruccin LBL es el objetivo de la instruccin JMP que tiene el


mismo nombre de etiqueta. Asegrese de que la instruccin LBL
sea la primera instruccin en su rengln.

Un nombre de etiqueta debe ser nico dentro de una rutina.


El nombre puede:
tener hasta 40 caracteres
contener letras, nmeros y caracteres de subrayado (_)

434 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Captulo 11

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:

Ocurrir un fallo mayor si Tipo de fallo Cdigo de fallo


la etiqueta no existe 4 42

Ejecucin:

Condicin: Accin de lgica de escalera de rels


preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera La condicin de salida de rengln se establece como verdadera.

La ejecucin salta al rengln que contiene la instruccin LBL con el nombre de etiqueta
referenciado.
post-escn La condicin de salida de rengln se establece como falsa.

Ejemplo: Cuando la instruccin JMP se habilita, la ejecucin salta sobre


renglones sucesivos de lgica hasta llegar al rengln que contiene la
instruccin LBL con label_20.

[otros renglones de cdigo]

Publicacin 1756-RM003K-ES-P Julio 2008 435


Captulo 11 Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Salto a subrutina (JSR) La instruccin JSR salta la ejecucin a una rutina diferente. Las
instrucciones SBR y RET son instrucciones opcionales que
Subrutina (SBR) Retorno intercambian datos con la instruccin JSR.
(RET)
Operandos de JSR:

Lgica de escalera de rels


Operando Tipo Formato Descripcin
Nombre de ROUTINE nombre rutina a ejecutar (es decir, subrutina)
la rutina
Parmetro BOOL inmediato datos de esta rutina que desea copiar a un
de entrada tag en la subrutina
SINT tag
Los parmetros de entrada son
INT tag de opcionales.
matriz Introduzca mltiples parmetros de
DINT entrada, si es necesario.
REAL

estructura
Parmetro BOOL tag el tag en esta rutina al cual desea copiar un
de retorno resultado de la subrutina
SINT tag de
matriz Los parmetros de retorno son
INT opcionales.
Introduzca mltiples parmetros de
DINT retorno, si es necesario.
REAL

estructura

436 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Captulo 11

Operandos de JSR (cont.):

Texto estructurado
JSR(RoutineName,InputCount, Operando Tipo Formato Descripcin
InputPar,ReturnPar);
Nombre de ROUTINE nombre rutina a ejecutar (es decir, subrutina)
la rutina
Conteo de SINT inmediato nmero de parmetros de entrada
entradas
INT

DINT

REAL
Parmetro BOOL inmediato datos de esta rutina que desea copiar a un
de entrada tag en la subrutina
SINT tag
Los parmetros de entrada son
INT tag de opcionales.
matriz Introduzca mltiples parmetros de
DINT entrada, si es necesario.
REAL

estructura
Parmetro BOOL tag el tag en esta rutina al cual desea copiar un
de retorno resultado de la subrutina
SINT tag de
matriz Los parmetros de retorno son
INT opcionales.
Introduzca mltiples parmetros de
DINT retorno, si es necesario.
REAL

estructura

Bloque de funciones
Parmetros de Parmetros de
entrada retorno

Los operandos son iguales a los de la instruccin JSR de lgica de


escalera de rels.

Publicacin 1756-RM003K-ES-P Julio 2008 437


Captulo 11 Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

ATENCIN Para cada parmetro en una instruccin SBR o RET, use el


mismo tipo de datos (inclusive las dimensiones de la matriz)
que el parmetro correspondiente en la instruccin JSR. El uso
de tipos de datos diferentes puede producir resultados
inesperados.

Operandos de SBR: La instruccin SBR debe ser la primera instruccin en una lgica de
escalera de rels o rutina de texto estructurado.

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Parmetro BOOL tag el tag en esta rutina al cual desea copiar el
de entrada parmetro de entrada correspondiente
SINT tag de proveniente de la instruccin JSR.
matriz
INT

DINT

REAL

estructura

SBR(InputPar); Texto estructurado

Los operandos son iguales a los de la instruccin SBR de lgica de


escalera de rels.

Bloque de funciones
Parmetros

Los operandos son iguales a los de la instruccin SBR de lgica de


escalera de rels.

438 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Captulo 11

Operandos de RET:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Parmetro BOOL inmediato datos de esta rutina que usted desea copiar
de retorno al parmetro de retorno correspondiente en
SINT tag la instruccin JSR.

INT tag de
matriz
DINT

REAL

estructura

RET(ReturnPar); Texto estructurado

Los operandos son iguales a los de la instruccin RET de lgica de


escalera de rels.

Bloque de funciones
Parmetros

Los operandos son iguales a los de la instruccin RET de lgica de


escalera de rels.

Descripcin: La instruccin JSR inicia la ejecucin de la rutina especificada, la cual


se conoce como subrutina:
La subrutina se ejecuta una vez.
Despus de que se ejecuta la subrutina, la ejecucin de la lgica
regresa a la rutina que contiene la instruccin JSR.

Publicacin 1756-RM003K-ES-P Julio 2008 439


Captulo 11 Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Para programar un salto a una subrutina, siga estas pautas:

IMPORTANTE No use una instruccin JSR para llamar (ejecutar) la rutina


principal.
Usted puede colocar una instruccin JSR en la
rutina principal o cualquier otra rutina.
Si usted usa una instruccin JSR para llamar a la
rutina principal y posteriormente coloca una
instruccin RET en la rutina principal, se produce
un fallo mayor (tipo 4, cdigo 31).

El diagrama siguiente ilustra cmo funcionan las instrucciones.

SBR
Rutina que origina la llamada Subrutina
1. Si la instruccin JSR tiene un
parmetro de entrada, introduzca una
SBR
instruccin SBR.
JSR JSR
2. Coloque la instruccin SBR como la
1. Si desea copiar datos a un tag en la primera instruccin en la rutina.
RET
subrutina, introduzca un parmetro de
entrada. 3. Para cada parmetro de entrada en la
instruccin JSR, introduzca el tag en
2. Si desea copiar un resultado de la RET el cual desea copiar los datos.
subrutina a un tag en esta rutina,
introduzca un parmetro de retorno. 42974

3. Introduzca la cantidad necesaria de RET


parmetros de entrada y retorno.
1. Si la instruccin JSR tiene un parmetro de retorno, introduzca
una instruccin RET.

2. Coloque la instruccin RET como la ltima instruccin en la


rutina.

3. Para cada parmetro de retorno en la instruccin JSR,


introduzca un parmetro de retorno para enviar la instruccin
JSR.

4. En una rutina de lgica de escalera, coloque instrucciones RET


adicionales para salir de la subrutina con base en diferentes
condiciones de entrada, si es necesario. (Las rutinas de bloque
de funciones slo permiten una instruccin RET).

440 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Captulo 11

No hay restricciones, excepto la memoria del controlador, para el


nmero de rutinas anidadas que pueden existir ni para el nmero de
parmetros que se pasan o retornan.

nivel 1 nivel 2 nivel 3


subrutina action_1 subrutina action_2 subrutina action_3
rutina principal
SBR SBR SBR
action_1
JSR
action_2 action_3
JSR JSR

RET RET RET

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo:

Ocurrir un fallo mayor si Tipo de fallo Cdigo de fallo


la instruccin JSR tiene menos parmetros de entrada que la instruccin SBR 4 31
la instruccin JSR salta a una rutina de fallo 4 o proporcionado por 0 o proporcionado por
el usuario el usuario
la instruccin RET tiene menos parmetros de retorno que la instruccin JSR 4 31
la rutina principal contiene una instruccin RET 4 31

Ejecucin:
Lgica de escalera de rels y texto estructurado

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


preescn El controlador ejecuta todas las subrutinas independientemente de la condicin del rengln. Para asegurar
que todos los renglones en la subrutina estn previamente escaneados, el controlador ignora las
instrucciones RET. (es decir, las instrucciones RET no salen de la subrutina).

En las versiones 6.x y anteriores, se pasan los parmetros de entrada y retorno.


En las versiones 7.x y posteriores, no se pasan los parmetros de entrada y retorno.
Si existen llamadas recursivas a la misma subrutina, la subrutina es preescaneada slo la primera vez. Si
existen mltiples llamadas (no recursivas) a la misma subrutina, la subrutina es preescaneada cada vez.

La condicin de salida de rengln se establece en falso (lgica de escalera de rels solamente).


La condicin de entrada de La subrutina no se ejecuta. n. a.
rengln es falsa para la
instruccin JSR Las salidas en la subrutina permanecen en su ltimo
estado.

La condicin de salida de rengln se establece como


falsa.

Publicacin 1756-RM003K-ES-P Julio 2008 441


Captulo 11 Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin

s JSR copia los parmetros de


parmetros de entrada en los tags SBR
entrada apropiados

no

la ejecucin de lgica comienza


en la rutina identificada por JSR

s s RET copia los parmetros de


instruccin RET parmetros de retorno en los tags JSR
retorno apropiados

no no

s
fin de la subrutina

no
la condicin de salida de rengln se
establece como verdadera
la condicin de salida de rengln
se establece como falsa la ejecucin de la lgica regresa a JSR
continuar ejecutando la subrutina

fin

post-escn La misma accin que el preescn antes descrito. La misma accin que el preescn antes descrito.

442 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Captulo 11

Bloque de funciones

Condicin: Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
ejecucin normal 1. Si la rutina contiene una instruccin SBR, el controlador primero ejecuta la instruccin SBR.

2. El controlador enclava todos los valores de datos en las IREF.

3. El controlador ejecuta los otros bloques de funcin en el orden determinado por su cableado.
Esto incluye otras instrucciones JSR.

4. El controlador escribe salidas en las OREF.

5. Si la rutina contiene una instruccin RET, el controlador ejecuta la instruccin RET por ltimo.
post-escn Se llama la subrutina.

Si la rutina es una rutina SFC, la rutina se inicializa de la misma manera que durante el preescn.

Publicacin 1756-RM003K-ES-P Julio 2008 443


Captulo 11 Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Ejemplo 1: La instruccin JSR pasa value_1 y value_2 a routine_1.

La instruccin SBR recibe value_1 y value_2 desde la instruccin JSR y


copia esos valores en value_a y value_b, respectivamente. La
ejecucin de la lgica contina en esta rutina.

La instruccin RET enva float_a a la instruccin JSR. La instruccin


JSR recibe float_a y copia el valor en float_value_1. La ejecucin de la
lgica contina con la siguiente instruccin despus de la instruccin
JSR.

Lgica de escalera de rels

Rutina: Programa
Rutina principal

Subrutina

[otros renglones de cdigo]

Texto estructurado

Rutina Programa
Rutina principal JSR(routine_1,2,value_1,value_2,float_value_1);
Subrutina SBR(value_a,value_b);

<statements>;

RET(float_a);

444 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Captulo 11

Ejemplo 2:

Lgica de escalera de rels

MainRoutine

Cuando abc est activado, subroutine_1 se ejecuta, calcula el nmero de cookies y coloca un valor en cookies_1.

Aade el valor en cookies_1 a cookies_2 y almacena el resultado en total_cookies.

Subroutine_1
Cuando def est activado, la instruccin RET retorna value_1 al parmetro cookies_1 de JSR y el resto de la subrutina no se escanea.

Cuando def est desactivado (rengln previo) y ghi est activado, la instruccin RET retorna value_2 al parmetro cookies_1 de JSR y el resto
de la subrutina no se escanea.

Cuando def y ghi estn desactivados (renglones previos), la instruccin RET retorna value_3 al parmetro cookies_1 de JSR.

Publicacin 1756-RM003K-ES-P Julio 2008 445


Captulo 11 Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Ejemplo 3:

Bloque de funciones

Instruccin JSR en Routine_A

42972

1. Los valores en 3. El valor de Sum_A_B_C se copia


Add_Input_1, en Add_Three_Result.
Add_Input_2 y
Add_Input_3 se copian
en Input_A, Input_B y
Input_C,
respectivamente.

Bloques de funciones de la rutina Add_Three_Inputs

42973

2. Las instrucciones ADD suman Input_A, Input_B y Input_C, y colocan el resultado en Sum_A_B_C.

446 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Captulo 11

Salto a rutina externa (JXR) La instruccin JXR ejecuta una rutina externa. Esta instruccin slo es
compatible con los controladores SoftLogix5800.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Nombre de ROUTINE nombre rutina externa que se va a ejecutar
rutina externa
Control de rutina EXT_ROUTINE_ tag estructura de control (ver la siguiente pgina)
externa CONTROL
Parmetro BOOL inmediato datos de esta rutina que desea copiar a una variable en la rutina externa

SINT tag Los parmetros son opcionales.


Introduzca mltiples parmetros, si es necesario.
INT tag de matriz
Puede tener hasta 10 parmetros.
DINT

REAL

estructura
Parmetro de BOOL tag el tag en esta rutina al cual desea copiar un resultado de la rutina externa
retorno
SINT El parmetro de retorno es opcional
Slo puede tener un parmetro de retorno
INT

DINT

REAL

Publicacin 1756-RM003K-ES-P Julio 2008 447


Captulo 11 Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Estructura EXT_ROUTINE_CONTROL

Mnemnico Tipo de datos Descripcin Implementacin


ErrorCode SINT Si ocurre un error, este valor identifica el error. No hay cdigos de error predefinidos. El
Los valores vlidos son 0-255. encargado del desarrollo de la rutina externa
debe proporcionar los cdigos de error.
NumParams SINT Este valor indica el nmero de parmetros Visualizacin solamente esta informacin
asociados con esta instruccin. proviene de la entrada de la instruccin.
ParameterDefs EXT_ROUTINE_ Esta matriz contiene definiciones de los Visualizacin solamente esta informacin
PARAMETERS[10] parmetros que se van a pasar a la rutina proviene de la entrada de la instruccin.
externa. La instruccin puede pasar hasta
10 parmetros.
ReturnParamDef EXT_ROUTIN_ Este valor contiene definiciones del parmetro Visualizacin solamente esta informacin
PARAMETERS de retorno de la rutina externa. Slo hay un proviene de la entrada de la instruccin.
parmetro de retorno.
EN BOOL Cuando se establece, el bit de habilitacin La rutina externa establece este bit.
indica que la instruccin JXR est habilitada.
ReturnsValue BOOL Si se establece, este bit indica que se introdujo Visualizacin solamente esta informacin
un parmetro de retorno para la instruccin. Si proviene de la entrada de la instruccin.
se borra, este bit indica que no se introdujo un
parmetro de retorno para la instruccin.
DN BOOL El bit de efectuado se establece cuando la La rutina externa establece este bit.
rutina externa se ha ejecutado una vez hasta el
final.
ER BOOL El bit de error se establece si ocurre un error. La rutina externa establece este bit.
La instruccin detiene la ejecucin hasta que el
programa borra el bit de error.
FirstScan BOOL Este bit identifica si ste es el primer escn El controlador establece este bit para reflejar
despus de que el controlador pas al modo de el estado de escn.
marcha. Use FirstScan para inicializar la rutina
externa, si es necesario.
EnableOut BOOL Habilitacin de salida. La rutina externa establece este bit.
EnableIn BOOL Entrada de habilitacin. El controlador establece este bit para reflejar
la condicin de entrada del rengln. La
instruccin se ejecuta independientemente
de la condicin del rengln. El encargado del
desarrollo de la rutina externa debe
monitorear este estado y actuar como
corresponde.
User1 BOOL Estos bits estn disponibles para el usuario. La rutina externa o el programa de usuario
El controlador no inicializa estos bits. pueden establecer estos bits.
User0 BOOL
ScanType1 BOOL Estos bits identifican el tipo de escn actual: El controlador establece estos bits para
reflejar el estado de escn.
ScanType0 BOOL
Valores de bit: Tipo de escn:

00 Normal

01 Preescn

10 Post-escn (no aplicable a


programas de lgica de
escalera de rels)

448 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Captulo 11

Descripcin: Use la instruccin de salto a rutina externa (JXR) para llamar a la


rutina externa desde una rutina de lgica de escalera en el proyecto.
La instruccin JXR es compatible con varios parmetros; por lo tanto,
puede pasar valores entre la rutina de lgica de escalera y la rutina
externa.

La instruccin JXR es similar a la instruccin de salto a subrutina (JSR).


La instruccin JXR inicia la ejecucin de la rutina externa especificada:

La rutina externa se ejecuta una vez.


Despus de que se ejecuta la rutina externa, la ejecucin de
lgica regresa a la rutina que contiene la instruccin JXR.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico no son afectados.

Condiciones de fallo:

Ocurrir un fallo mayor si Tipo de fallo Cdigo de


fallo:
ocurre una excepcin en la rutina externa DLL 4 88
el DLL no pudo cargarse
el punto de entrada no se encontr en el DLL

Ejecucin: La instruccin JXR puede ser sncrona o asncrona segn la


implementacin del DLL. El cdigo en el DLL tambin determina
cmo responder al estado de escn, estado de condicin de entrada
de rengln y estado de condicin de salida de rengln.

Para obtener ms informacin sobre cmo usar la instruccin JXR y


cmo crear rutinas externas, consulte el documento SoftLogix5800
System User Manual, publicacin 1789-UM002.

Publicacin 1756-RM003K-ES-P Julio 2008 449


Captulo 11 Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Fin temporal (TND) La instruccin TND sirve como lmite.

Operandos:

Operadores de escalera de rel

ninguno

TND(); Texto estructurado

ninguno

Se tienen que introducir los parntesis () despus del mnemnico de


la instruccin, aunque no haya operandos.

Descripcin: Cuando se habilita, la instruccin TND deja que el controlador ejecute


la lgica slo hasta esta instruccin.

Cuando se habilita, la instruccin TND acta como el fin de la rutina.


Cuando el controlador escanea una instruccin TND, el controlador
va hasta el final de la rutina actual. Si la instruccin TND est en una
subrutina, el control regresa a la rutina que origin la llamada. Si la
instruccin TND est en una rutina principal, el control regresa al
siguiente programa dentro de la tarea actual.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin Se termina la rutina actual. Se termina la rutina actual.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

450 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Captulo 11

Ejemplo: Usted puede usar la instruccin TND al depurar o resolver problemas


para ejecutar la lgica hasta cierto punto. Progresivamente, mueva la
instruccin TND a travs de la lgica conforme va depurando cada
nueva seccin.

Una vez habilitada la instruccin TND, el controlador deja de escanear


la rutina actual.

Lgica de escalera de rels

Texto estructurado

TND();

Publicacin 1756-RM003K-ES-P Julio 2008 451


Captulo 11 Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Restablecimiento de La instruccin MCR, usada en parejas, crea una zona de programa que
puede inhabilitar todos los renglones dentro de las instrucciones MCR.
control maestro (MCR)
Operandos:

Lgica de escalera de rels

ninguna

Descripcin: Cuando la zona MCR se habilita, los renglones en la zona MCR son
escaneados para determinar la presencia de condiciones normales
verdaderas o falsas. Cuando se inhabilita, el controlador todava
escanea renglones dentro de una zona MCR, pero el tiempo de escn
se reduce debido a que las salidas no retentivas en la zona estn
inhabilitadas. La condicin de entrada de rengln es falsa para todas
las instrucciones dentro de la zona MCR inhabilitada.

Cuando programe una zona MCR, tenga presente que:


Debe terminar la zona con una instruccin MCR incondicional.
No puede anidar una zona MCR dentro de otra.
No salte a una zona MCR. Si la zona es falsa, saltar a la zona
activa la zona desde el punto en el que usted salt al final de la
zona.
Si una zona MCR contina al final de la rutina, usted no tiene
que programar una instruccin MCR al final de la zona.

La instruccin MCR no sustituye a un rel de control maestro con


cableado permanente que proporciona capacidad de paro de
emergencia. Usted debe instalar un rel de control maestro con
cableado permanente para proporcionar desactivacin de emergencia
de la alimentacin elctrica de E/S.

ATENCIN No superponga ni anide zonas MCR. Cada zona MCR debe estar
separada y completa. Si se superponen o se anidan, podra
ocurrir una operacin inesperada de la mquina con posible
dao al equipo o lesiones personales.
Coloque las operaciones crticas fuera de la zona MCR. Si inicia
instrucciones tales como temporizadores en una zona MCR, se
detiene la ejecucin de la instruccin cuando la zona se
inhabilita y el temporizador se borra.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

452 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Captulo 11

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.

Las instrucciones en la zona son escaneadas, pero la condicin de entrada de rengln es


falsa y las salidas no retentivas en la zona se inhabilitan.
condicin de entrada de rengln es verdadera La condicin de salida de rengln se establece como verdadera.

Las instrucciones en la zona se escanean normalmente.


post-escn La condicin de salida de rengln se establece como falsa.

Ejemplo: Cuando la primera instruccin MCR se habilita (input_1, input_2 y


input_3 se establecen), el controlador ejecuta los renglones en la zona
MCR entre las dos instrucciones MCR) y establece o borra las salidas,
dependiendo de las condiciones de entrada.

Cuando la primera instruccin MCR se inhabilita (input_1, input_2 y


input_3 no estn establecidos simultneamente), el controlador
ejecuta los renglones en la zona MCR (entre las dos instrucciones
MCR) y la condicin de entrada del rengln se hace falsa para todos
los renglones en la zona MCR, independientemente de las
condiciones de entrada.

Publicacin 1756-RM003K-ES-P Julio 2008 453


Captulo 11 Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Inhabilitacin de La instruccin UID y la instruccin UIE funcionan juntas para evitar


que otras tareas interrumpan una cantidad pequea de renglones
interrupcin de usuario crticos.
(UID)
Habilitacin de interrupci
n de usuario (UIE)
Operandos:

Lgica de escalera de rels

ninguno

UID(); Texto estructurado


UIE();
ninguno

Se tienen que introducir los parntesis () despus del mnemnico de


instruccin, aunque no haya operandos.

Descripcin: Cuando la condicin de entrada de rengln es verdadera:

La instruccin UID evita que tareas de mayor prioridad


interrumpan la tarea actual, pero no inhabilita la ejecucin de
una rutina de fallo o del administrador de fallos del controlador.
La instruccin UIE habilita otras tareas para interrumpir la tarea
actual.

Para evitar la interrupcin de una serie de renglones:

1. Limite el nmero de renglones que no desea sean interrumpidos


al menor nmero posible. Inhabilitar interrupciones por un
tiempo prolongado puede ocasionar prdida de comunicacin.

2. Arriba del primer rengln que usted no desea sea interrumpido,


introduzca un rengln y una instruccin UID.

3. Despus del ltimo rengln que usted no desea sea


interrumpido, introduzca un rengln y una instruccin UIE.

4. Si lo desea, puede anidar parejas de instrucciones UID/UIE.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

454 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Captulo 11

Ejecucin:

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin La instruccin UID evita la interrupcin por parte de tareas de mayor prioridad.

La instruccin UIE habilita la interrupcin por parte de tareas de mayor prioridad.


post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

Ejemplo: Cuando ocurre un error (error_bit est activado), la instruccin FSC


compara el cdigo de error con una lista de errores crticos. Si la
instruccin FSC determina que el error es crtico (error_check.FD est
activado), se anuncia una alarma. Las instrucciones UID y UIE evitan
que cualquier otra tarea interrumpa la verificacin de errores y
alarmas.

Lgica de escalera de rels

UID

error_bit
error_bit FSC
FSC
FileSearch/Compare
File Search/Compare EN
EN
Control
Control error_check
error_check DN
Length
Length 10 ER
ER
Position
Position 8
Mode
Mode ALL
ALL
Expression
Expression error_code=error_list[error_check.POS]
error_code=error_list[error_check.POS]

error_check.FD
error_check.FD alarm
alarm

UIE

Texto estructurado

UID();

<statements>

UIE();

Publicacin 1756-RM003K-ES-P Julio 2008 455


Captulo 11 Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Instruccin siempre falso La instruccin AFI establece su condicin de salida de rengln como
falsa.
(AFI)
Operandos:

Lgica de escalera de rels

ninguno

Descripcin: La instruccin AFI establece su condicin de salida de rengln como


falsa.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin Accin de lgica de escalera de rels:


preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera La condicin de salida de rengln se establece como falsa.
post-escn La condicin de salida de rengln se establece como falsa.

Ejemplo: Use la instruccin AFI para inhabilitar temporalmente un rengln


mientras depura un programa.

Cuando se habilita, la instruccin AFI inhabilita todas las instrucciones


en este rengln.

456 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Captulo 11

Sin operacin (NOP) La instruccin NOP funciona como indicador de posicin

Operandos:

Lgica de escalera de rels

ninguno

Descripcin: Usted puede colocar la instruccin NOP en cualquier parte de un


rengln. Una vez habilitada, la instruccin NOP no realiza operacin
alguna. Una vez inhabilitada, la instruccin NOP no realiza operacin
alguna.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera La condicin de salida de rengln se establece como verdadera.
post-escn La condicin de salida de rengln se establece como falsa.

Ejemplo Esta instruccin es til para ubicar bifurcaciones incondicionales


cuando usted coloca la instruccin NOP en la bifurcacin.

La instruccin NOP omite la instruccin XIC para habilitar la salida.

Publicacin 1756-RM003K-ES-P Julio 2008 457


Captulo 11 Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Fin de transicin (EOT) La instruccin EOT retorna un estado booleano a una transicin SFC.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


bit de datos BOOL tag estado de la transicin
(0=en ejecucin, 1=completada)

EOT(data_bit); Texto estructurado

Los operandos son iguales a los de la instruccin EOT de lgica de


escalera de rels.

Descripcin: Puesto que la instruccin EOT retorna un estado booleano, mltiples


rutinas SFC pueden compartir la misma rutina que contiene la
instruccin OET. La rutina que origin la llamada no es una transicin;
la instruccin OET acta como una instruccin TND (ver pgina 450).

La implementacin Logix de la instruccin OET es diferente a la de un


controlador PLC-5. En un controlador PLC-5, la instruccin EOT no
tiene parmetros. En lugar de ello, la instruccin OET PLC-5 retorna la
condicin del rengln como su estado. El parmetro de retorno, en un
controlador Logix, retorna el estado de transicin puesto que la
condicin del rengln no est disponible en todos los lenguajes de
programacin Logix.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin Accin de lgica de escalera de rels: Accin de texto estructurado:


preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin La instruccin retorna el valor del bit de datos a la rutina que origin la llamada.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

458 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Captulo 11

Ejemplo: Cuando se establecen limit_switch1 y interlock_1, se establece el


estado. Despus de que se completa timer_1, EOT retorna el valor de
state a la rutina que origin la llamada.

Lgica de escalera de rels

Texto estructurado

state := limit_switch1 AND interlock_1;

IF timer_1.DN THEN

EOT(state);

END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008 459


Captulo 11 Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Pausa SFC (SFP) La instruccin SFP pone en pausa una rutina SFC.

Operandos:

Lgica de escalera de rels

Operando Tipo: Formato: Descripcin:


SFCRoutine ROUTINE nombre rutina SFC que se va a poner en pausa
Name
TargetState DINT inmediato seleccione uno:

tag ejecutando (o introduzca 0)

puesta en pausa (o introduzca 1)

Texto estructurado
SFP(SFCRoutineName,
TargetState); Los operandos son iguales a los de la instruccin SFP de lgica de
escalera de rels.

Descripcin: La instruccin SFP le permite poner en pausa una rutina SFC en


ejecucin. Si una rutina SFC se encuentra en pausa, use la instruccin
SFP nuevamente para cambiar el estado y reanudar la ejecucin de la
rutina.

Adems, use la instruccin SFP para reanudar la ejecucin del SFC


despus de usar una instruccin SFR (ver pgina 462) para restablecer
una rutina SFC.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:

Ocurrir un fallo mayor si: Tipo de fallo Cdigo de fallo


el tipo de rutina no es una rutina SFC 4 85

460 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Captulo 11

Ejecucin:

Condicin: Accin de lgica de escalera de rels Accin de texto estructurado


preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin La instruccin pone en pausa o reanuda la ejecucin de la rutina SFC especificada.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

Ejemplo: Si sfc_en_p se establece, se pone en pausa la rutina SFC llamada


normal. Reinicie el SFC cuando se establezca sfc_en_e.

Lgica de escalera de rels

Se pone en pausa la rutina SFC.

Se reanuda la ejecucin de la rutina SFC.

Texto estructurado

Se pone en pausa la rutina SFC. IF (sfp_en_p) THEN

SFP(normal,paused);

sfp_en_p := 0;

END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008 461


Captulo 11 Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Se reanuda la ejecucin de la rutina SFC: IF (sfp_en_e) THEN

SFP(normal,executing);

sfp_en_e := 0;

END_IF;

Restablecer SFC (SFR) La instruccin SFR restablece la ejecucin de una rutina SFC en un
paso especificado.

Operandos:

Operandos de lgica de escalera de rels

Operando Tipo Formato Descripcin


SFCRoutine ROUTINE nombre rutina SFC que se va a restablecer
Name
Step Name SFC_STEP tag paso objetivo donde se va a reanudar la
ejecucin

Texto estructurado
SFR(SFCRoutineName,StepName);
Los operandos son iguales a los de la instruccin SFR de lgica de
escalera de rels.

Descripcin: Cuando la instruccin SFR est habilitada:

En la rutina SFC especificada, se detiene la ejecucin de todas


las acciones almacenadas (restablecimiento).
El SFC comienza a ejecutarse en el paso especificado.

Si el paso objetivo es 0, el diagrama se restablecer en su paso inicial.

La implementacin Logix de la instruccin SFR es diferente a la del


controlador PLC-5. En el controlador PLC-5, el SFR se ejecut cuando
la condicin del rengln fue verdadera. Despus del restablecimiento,
el SFC permanecera en pausa hasta que el rengln que contiene el
SFR se haga falso. Esto permiti retardar la ejecucin despus de un
restablecimiento. Esta funcin de poner en pausa/cancelar la pausa de
la instruccin SFR del PLC-5 se desacopl de la condicin del rengln
y se movi a la instruccin SFP.

Indicadores de estado
aritmtico: no afectados

462 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Captulo 11

Condiciones de fallo:

Ocurrir un fallo mayor si: Tipo de fallo Cdigo de fallo


el tipo de rutina no es una rutina SFC 4 85
el paso objetivo especificado no existe 4 89
en la rutina SFC

Ejecucin:

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin La instruccin restablece la rutina SFC especificada. La instruccin restablece la rutina SFC especificada.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

Ejemplo: Si ocurre una condicin especfica (shutdown se establece) reinicie el


SFC en el paso initialize.

Lgica de escalera de rels

Texto estructurado

IF shutdown THEN

SFR(mySFC,initialize);

END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008 463


Captulo 11 Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Activar tarea de evento La instruccin EVENT activa una ejecucin de una tarea de evento.
(EVENT)
Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Tarea TASK nombre tarea de evento que se va a ejecutar
La instruccin le permite seleccionar otros
tipos de tareas, pero no ejecutarlas.

EVENT(task_name); Texto estructurado

Los operandos son iguales a los de la instruccin EVENT de lgica de


escalera de rels.

Descripcin: Use la instruccin EVENT para ejecutar programticamente una tarea


de evento.

Cada vez que la instruccin se ejecuta, sta activa la tarea de


evento especificada.
Asegrese de dar a la tarea de evento tiempo suficiente para
completar su ejecucin antes de volver a activarla. Se lo
contrario, se producir una superposicin.
Si usted ejecuta una instruccin EVENT mientras se est
ejecutando la tarea de evento, el controlador incrementa el
contador de superposiciones pero no activa la tarea de evento.

Determine programticamente si una instruccin EVENT activ


una tarea

Para determinar si una instruccin EVENT activ una tarea de evento,


use una instruccin Get System Value (GSV) para monitorear el
atributo Status de la tarea.

Atributo Status del objeto TASK

Atributo Tipo de datos Instruccin Descripcin


Status DINT GSV Proporciona informacin de estado acerca de la tarea. Una vez que el
controlador establece un bit, usted debe borrar manualmente el bit para
determinar si ocurri otro fallo de ese tipo.
SSV
Para determinar si: Examine este bit:
Una instruccin EVENT activ la tarea (tarea de 0
evento solamente).
Al expirar un tiempo de espera se activ la tarea 1
(tarea de evento solamente).
Ocurri una superposicin para esta tarea. 2

464 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Captulo 11

El controlador no borra los bits del atributo Status una vez que stos
estn establecidos.

Para usar un bit para nueva informacin de estado, debe borrar


manualmente el bit.
Use una instruccin de establecer valor del sistema (Set System
Value (SSV)) para establecer el atributo en un valor diferente.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin: Accin de lgica de escalera de rels Accin de texto estructurado


preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.
La instruccin se ejecuta.
ejecucin de la instruccin La instruccin activa una ejecucin de la tarea de evento especificada
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

Publicacin 1756-RM003K-ES-P Julio 2008 465


Captulo 11 Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Ejemplo 1: Un controlador usa mltiples programas pero un procedimiento de


desactivacin comn. Cada programa usa un tag bajo el control del
programa llamado Shut_Down_Line el cual se activa si el programa
detecta una condicin que requiere una desactivacin. La lgica en
cada programa se ejecuta de la siguiente manera:

Si Shut_Down_Line = activado (la condicin requiere una


desactivacin) entonces

Ejecute la tarea Shut_Down una vez

Lgica de escalera de rels

Programa A

Programa B

Texto estructurado

Programa A

IF Shut_Down_Line AND NOT Shut_Down_Line_One_Shot THEN


EVENT (Shut_Down);
END_IF;
Shut_Down_Line_One_Shot := Shut_Down_Line;

Programa B

IF Shut_Down_Line AND NOT Shut_Down_Line_One_Shot THEN


EVENT (Shut_Down);
END_IF;
Shut_Down_Line_One_Shot := Shut_Down_Line;

466 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Captulo 11

Ejemplo 2: El siguiente ejemplo usa una instruccin EVENT para inicializar una
tarea de evento. (Otro tipo de evento normalmente activa la tarea de
evento).

Tarea continua
Si Initialize_Task_1 = 1 entonces
La instruccin ONS limita la ejecucin de la instruccin EVENT a un escn.
La instruccin EVENT activa una ejecucin de Task_1 (tarea de evento).

Task_1 (tarea de evento)


La instruccin GSV establece Task_Status (tag DINT) = atributo Status para la tarea de evento. En el atributo
Instance Name, THIS significa el objeto TASK para la tarea en la cual est la instruccin (o sea Task_1).

Si Task_Status.0 = 1, significa que una instruccin EVENT activ la tarea de evento (es decir, cuando la tarea
continua ejecuta su instruccin EVENT para inicializar la tarea de evento).
La instruccin RES pone en cero un contador que usa la tarea de evento.

El controlador no borra los bits del atributo Status una vez que stos estn establecidos. Para usar un bit para
nueva informacin de estado, debe borrar el bit manualmente.
Si Task_Status.0 = 1, borre ese bit.
La instruccin OTU establece Task_Status.0 = 0.
La instruccin SSV establece el atributo Status de la tarea THIS (Task_1) = Task_Status. Esto incluye el bit
borrado.

Publicacin 1756-RM003K-ES-P Julio 2008 467


Captulo 11 Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Notas:

468 Publicacin 1756-RM003K-ES-P Julio 2008


Captulo 12

Instrucciones For/Break
(FOR, FOR...DO, BRK, EXIT, RET)

Introduccin Use la instruccin FOR para llamar repetidamente una subrutina. Use
la instruccin BRK para interrumpir la ejecucin de una subrutina.

Si desea Use esta instruccin Disponible en estos lenguajes Vea la pgina


Ejecutar repetidamente una rutina. Para obtener lgica de escalera de rels 470

FOR...DO(1) texto estructurado


Interrumpir la ejecucin repetida de una rutina. BRK lgica de escalera de rels 473

EXIT(1) texto estructurado


Retornar a la instruccin FOR. RET lgica de escalera de rels 474
(1) Texto estructurado solamente.

469Publicacin 1756-RM003K-ES-P Julio 2008 469


Captulo 12 Instrucciones For/Break (FOR, FOR...DO, BRK, EXIT, RET)

For (FOR) La instruccin FOR ejecuta una rutina repetidamente.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Routine ROUTINE nombre de la rutina que se ejecuta
name rutina
Index DINT tag cuenta cuntas veces la rutina se ha
ejecutado
Initial value SINT inmediato valor en que se comienza el ndice

INT tag

DINT
Terminal SINT inmediato valor en que se detiene la ejecucin de la
value rutina
INT tag

DINT
Step size SINT inmediato cantidad que se aade al ndice cada vez
que la instruccin FOR ejecuta la rutina
INT tag

DINT

Texto estructurado
FOR count:= initial_value TO
final_value BY increment DO Use la construccin FOR...DO. Consulte Apndice C, Programacin de
<statement>;
texto estructurado para obtener informacin sobre construcciones de
texto estructurado.
END_FOR;

Descripcin:

IMPORTANTE No use una instruccin FOR para llamar (ejecutar) la rutina principal.
Usted puede colocar una instruccin FOR en la rutina principal o
en cualquier otra rutina.
Si usted usa una instruccin FOR para llamar a la rutina principal y
posteriormente colocar una instruccin RET en la rutina principal,
se produce un fallo mayor (tipo 4, cdigo 31).

470 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones For/Break (FOR, FOR...DO, BRK, EXIT, RET) Captulo 12

Cuando se habilita, la instruccin FOR ejecuta repetidamente la rutina


hasta que el valor Index excede el valor Terminal. Esta instruccin no
pasa parmetros a la rutina.

Cada vez que la instruccin FOR ejecuta la rutina, aade el Step size al
Index.

Tenga cuidado de no hacer lazos demasiadas veces en un solo escn.


Un nmero excesivo de repeticiones puede hacer que el
temporizador de control (watchdog) exceda el tiempo de espera,
lo cual causa un fallo mayor.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:

Ocurrir un fallo mayor si Tipo de fallo Cdigo de fallo


la rutina principal contiene una instruccin 4 31
RET

Ejecucin:
Condicin Accin de lgica de escalera de rels
preescn La condicin de salida de rengln se establece como falsa.

El controlador ejecuta la subrutina una vez.

Si existen instrucciones FOR recursivas a la misma subrutina, la subrutina es


preescaneada slo la primera vez. Si existen mltiples instrucciones FOR (no recursivas)
a la misma subrutina, la subrutina es preescaneada cada vez.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008 471


Captulo 12 Instrucciones For/Break (FOR, FOR...DO, BRK, EXIT, RET)

Condicin Accin de lgica de escalera de rels

condicin de entrada de
rengln es verdadera
index = initial_value

no
tamao de paso < 0

no
ir a ndice valor terminal
fin

s s no
ir a
ndice valor terminal fin
fin

ejecutar rutina
ndice = (index + step_size)
la condicin de salida de rengln
se establece como verdadera

fin

post-escn La condicin de salida de rengln se establece como falsa.

Ejemplo: Una vez habilitada, la instruccin FOR ejecuta repetidamente


routine_2 e incrementa value_2 en un valor de 1 cada vez. Cuando
value_2 es > 10 o una instruccin BRK est habilitada, la instruccin
FOR ya no ejecuta routine_2.

472 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones For/Break (FOR, FOR...DO, BRK, EXIT, RET) Captulo 12

Interrumpir (BRK) La instruccin BRK interrumpe la ejecucin de una rutina que fue
llamada por una instruccin FOR.

Operandos:

Lgica de escalera de rels

ninguna

Texto estructurado
EXIT;

Use la declaracin EXIT en una construccin de lazo. Consulte el


Apndice B para obtener informacin sobre construcciones de texto
estructurado.

Descripcin: Una vez habilitada, la instruccin BRK sale de la rutina actual y


retorna el controlador a la instruccin que sigue a la instruccin FOR.

Si hay instrucciones FOR anidadas, una instruccin BRK retorna el


control a la instruccin FOR del extremo interior.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera La condicin de salida de rengln se establece como verdadera.

La ejecucin retorna a la instruccin que sigue a la instruccin FOR que origin la


llamada.
post-escn La condicin de salida de rengln se establece como falsa.

Ejemplo: Una vez habilitada, la instruccin BRK hace que se deje de ejecutar la
rutina actual y retorna a la instruccin que sigue a la instruccin FOR
que origin la llamada.

Publicacin 1756-RM003K-ES-P Julio 2008 473


Captulo 12 Instrucciones For/Break (FOR, FOR...DO, BRK, EXIT, RET)

Retornar (RET) La instruccin RET retorna a la instruccin FOR que origin la


llamada.

Operandos:

Lgica de escalera de rels

ninguna

Descripcin:

IMPORTANTE No coloque una instruccin RET en la rutina principal. Si usted


coloca una instruccin RET en la rutina principal, ocurre un fallo
mayor (tipo 4, cdigo 31).

Cuando se habilita, la instruccin RET retorna a la instruccin FOR. La


instruccin FOR incrementa el valor de Index por una cantidad
equivalente al Step Size y ejecuta la subrutina nuevamente. Si el valor
de Index excede el valor Terminal, se completa la instruccin FOR y
la ejecucin pasa a la instruccin que sigue a la instruccin FOR.

La instruccin FOR no usa parmetros. La instruccin FOR ignora


cualquier parmetro que usted introduzca en una instruccin RET.

Tambin puede usar una instruccin TND para terminar la ejecucin


de una subrutina.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:

Ocurrir un fallo mayor si Tipo de fallo Cdigo de fallo


la rutina principal contiene una instruccin 4 31
RET

Ejecucin:

Condicin: Accin de lgica de escalera de rels


preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera Retorna los parmetros especificados a la rutina que origin la llamada.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

474 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones For/Break (FOR, FOR...DO, BRK, EXIT, RET) Captulo 12

Ejemplo: La instruccin FOR ejecuta repetidamente routine_2 e incrementa


value_2 en un valor de 1 cada vez. Cuando value_2 es > 10 o una
instruccin BRK est habilitada, la instruccin FOR ya no ejecuta
routine_2.

La instruccin RET retorna a la instruccin FOR que origin la


llamada. La instruccin FOR ejecuta la subrutina nuevamente e
incrementa el valor de Index en una cantidad equivalente a Step Size
o, si el valor de Index excede el valor de Terminal, la instruccin FOR
se completa y la ejecucin pasa a la instruccin que sigue a la
instruccin FOR.

rutina que origina la llamada subrutina

Publicacin 1756-RM003K-ES-P Julio 2008 475


Captulo 12 Instrucciones For/Break (FOR, FOR...DO, BRK, EXIT, RET)

Notas:

476 Publicacin 1756-RM003K-ES-P Julio 2008


Captulo 13

Instrucciones especiales
(FBC, DDT, DTR, PID)

Introduccin Las instrucciones especiales realizan operaciones especficas de la


aplicacin.

Si desea Use esta instruccin Disponible en estos lenguajes: Vea la pgina


Comparar datos con una buena referencia FBC lgica de escalera de rels 478
conocida y registrar las incongruencias.
Comparar datos con una buena referencia DDT lgica de escalera de rels 486
conocida, registrar las incongruencias y
actualizar la referencia para que sea igual al
origen.
Pasar los datos de origen a travs de una DTR lgica de escalera de rels 494
mscara y comparar los resultados con los
datos de referencia. Seguidamente escribir el
origen en la referencia para la siguiente
comparacin.
Controlar un lazo PID. PID lgica de escalera de rels 497

texto estructurado

477Publicacin 1756-RM003K-ES-P Julio 2008 477


Captulo 13 Instrucciones especiales (FBC, DDT, DTR, PID)

Comparacin de bits de La instruccin FBC compara los bits en una matriz de origen con los
bits en una matriz de referencia.
archivo (FBC)
Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin:


Source DINT tag de matriz matriz que se va a comparar con la
referencia.

no use CONTROL.POS en el subndice


Reference DINT tag de matriz matriz que se va a comparar con el origen.

no use CONTROL.POS en el subndice


Result DINT tag de matriz matriz para almacenar el resultado

no use CONTROL.POS en los subndices


Cmp control CONTROL estructura estructura de control para la comparacin
Length DINT inmediato nmero de bits que se van a comparar
Position DINT inmediato posicin actual en el origen

el valor inicial es tpicamente 0


Result CONTROL estructura estructura de control para los resultados
control
Length DINT inmediato nmero de ubicaciones de almacenamiento
en el resultado
Position DINT inmediato posicin actual en el resultado

el valor inicial es tpicamente 0

ATENCIN Use tags diferentes para la estructura de control de


comparacin y para la estructura de control de resultado. El
usar el mismo tag para ambos podra resultar en una operacin
inesperada y causar dao al equipo y/o lesiones personales.

478 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones especiales (FBC, DDT, DTR, PID) Captulo 13

Estructura COMPARE

Mnemnico: Tipo de datos Descripcin:


.EN BOOL El bit de habilitacin indica que la instruccin FBC est habilitada.
.DN BOOL El bit de efectuado se establece cuando la instruccin FBC compara el ltimo bit en las
matrices de origen y referencia.
.FD BOOL El bit de encontrado se establece cada vez que la instruccin FBC registra una incongruencia
(operacin una a la vez) o despus de registrar todas las incongruencias (operacin todas por
escn).
.IN BOOL El bit de inhibicin indica el modo de bsqueda de FBC.

0 = modo de todas

1 = modo de una incongruencia a la vez


.ER BOOL El bit de error se establece si la comparacin .POS < 0, la comparacin .LEN < 0, el
resultado .POS < 0 o el resultado .LEN < 0. La instruccin detiene la ejecucin hasta que el
programa borra el bit .ER.
.LEN DINT El valor de longitud identifica el nmero de bits que se van a comparar.
.POS DINT El valor de posicin identifica el bit actual.

Estructura RESULT

Mnemnico Tipo de datos Descripcin


.DN BOOL El bit de efectuado se establece cuando la matriz resultado est llena.
.LEN DINT El valor de longitud identifica el nmero de ubicaciones de almacenamiento en la matriz
resultado.
.POS DINT El valor de posicin identifica la posicin actual en la matriz resultado.

Descripcin: Cuando se habilita, la instruccin FBC compara los bits en la matriz


origen con los bits en la matriz de referencia y registra el nmero de
bit de cada incongruencia en la matriz resultado.

IMPORTANTE Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
La instruccin FBC realiza la operacin en la memoria de datos contiguos. En
algunos casos, la instruccin busca o escribe ms all de la matriz en otros
miembros del tag. Esto sucede si una longitud es excesiva y el tag es de un tipo de
datos definido por el usuario.

La diferencia entre las instrucciones DDT y FBC es que cada vez que
la instruccin DDT encuentra una incongruencia, la instruccin
cambia el bit de referencia para que coincida con el bit de origen.
La instruccin FBC no cambia el bit de referencia.

Publicacin 1756-RM003K-ES-P Julio 2008 479


Captulo 13 Instrucciones especiales (FBC, DDT, DTR, PID)

Seleccin del modo de bsqueda

Si desea detectar Seleccione este modo


Una incongruencia a la vez Establezca el bit .IN en la estructura CONTROL de comparacin.

Cada vez que la condicin de entrada del rengln cambia de falso a verdadero, la
instruccin FBC busca la siguiente incongruencia entre las matrices de origen y
referencia. Al encontrar una incongruencia, la instruccin establece el bit .FD, registra
la posicin de la incongruencia y detiene la ejecucin.
Todas las incongruencias Borre el bit .IN en la estructura CONTROL de comparacin.

Cada vez que la condicin de entrada del rengln cambia de falso a verdadero, la
instruccin FSC busca todas las incongruencias entre las matrices de origen y
referencia.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:

Ocurrir un fallo mayor si: Tipo de fallo Cdigo de fallo


result.POS > tamao de matriz resultado 4 20

480 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones especiales (FBC, DDT, DTR, PID) Captulo 13

Ejecucin:

Condicin Accin de lgica de escalera de rels

preescn

el bit compare.EN se borra


el bit compare.FD se borra

examine el bit compare.DN = 0


compare.DN

compare.DN = 1

el bit compare.DN se borra


el valor compare.POS se borra
el bit result.DN se borra
el valor result.POS se borra

la condicin de salida de
rengln se establece como
falsa

fin

Publicacin 1756-RM003K-ES-P Julio 2008 481


Captulo 13 Instrucciones especiales (FBC, DDT, DTR, PID)

Condicin Accin de lgica de escalera de rels

condicin de entrada de
rengln es falsa
el bit compare.EN se borra
el bit compare.FD se borra

examine el bit compare.DN = 0


compare.DN

compare.DN = 1

el bit compare.DN se borra


el valor compare.POS se borra
el bit result.DN se borra
el valor result.POS se borra

la condicin de salida de
rengln se establece como
falsa

fin

482 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones especiales (FBC, DDT, DTR, PID) Captulo 13

Condicin Accin de lgica de escalera de rels

condicin de entrada de rengln es verdadera

examine el bit compare.EN = 1


compare.EN ir a la
salida

compare.EN = 0

examine el bit compare.DN = 1 ir a la


El bit compare.EN se
establece compare.DN salida

compare.DN = 0

el bit compare.ER se borra s


compare.LEN 0
el bit compare.FD se borra

no

s
compare.POS < 0
exit

el bit compare.ER se
no establece

la condicin de salida de
rengln se establece como
verdadera
comparar ir a la
salida
fin
pgina 484

Publicacin 1756-RM003K-ES-P Julio 2008 483


Captulo 13 Instrucciones especiales (FBC, DDT, DTR, PID)

Condicin Accin de lgica de escalera de rels

comparar

compare.POS s compare.POS = compare.LEN ir a la


compare.LEN el bit compare.DN se establece salida
pgina 483
no

result.DN = 1
no el bit result.DN se borra
source[compare.POS] = el bit compare.FD se examine el bit el valor result.POS se
reference[compare.POS] establece result.DN bit borra

s result.DN = 0

compare.POS =
compare.POS + 1
s
result.POS < 0

no

s
result.LEN 0

no el bit compare.ER se
establece

s result.POS >
tamao de ir a la
fallo mayor salida
matriz
resultado
pgina 483
no

result[result.POS] = compare.POS
result.POS = result.POS + 1

no result.POS >
result.LEN

el bit result.DN se establece

post-escn La condicin de salida de rengln se establece como falsa.

484 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones especiales (FBC, DDT, DTR, PID) Captulo 13

Ejemplo: Cuando se habilita, la instruccin FBC compara el origen array_dint1


con la referencia array_dint2 y almacena las ubicaciones de las
incongruencias en el resultado array_dint3.

origen 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
array_dint1

referencia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0
array_dint2

resultado 5 3
array_dint3

Publicacin 1756-RM003K-ES-P Julio 2008 485


Captulo 13 Instrucciones especiales (FBC, DDT, DTR, PID)

Deteccin de diagnstico La instruccin DDT compara los bits en una matriz de origen con los
bits en una matriz de referencia para determinar cambios de estado.
(DDT)
Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source DINT tag de matriz que se va a comparar con la referencia
matriz
no use CONTROL.POS en el subndice
Reference DINT tag de matriz que se va a comparar con el origen
matriz
no use CONTROL.POS en el subndice
Result DINT tag de matriz para almacenar los resultados
matriz
no use CONTROL.POS en el subndice
Cmp control CONTROL estructura estructura de control para la comparacin
Length DINT inmediato nmero de bits que se van a comparar
Position DINT inmediato posicin actual en el origen

el valor inicial es tpicamente 0


Result CONTROL estructura estructura de control para los resultados
control
Length DINT inmediato nmero de ubicaciones de almacenamiento
en el resultado
Position DINT inmediato posicin actual en el resultado

el valor inicial es tpicamente 0

ATENCIN Use tags diferentes para la estructura de control de


comparacin y para la estructura de control de resultado.
El usar el mismo tag para ambos podra resultar en un
comportamiento inesperado y causar dao al equipo y/o
lesiones personales.

486 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones especiales (FBC, DDT, DTR, PID) Captulo 13

Estructura COMPARE

Mnemnico Tipo de datos Descripcin


.EN BOOL El bit de habilitacin indica que la instruccin DDT est habilitada.
.DN BOOL El bit de efectuado se establece cuando la instruccin DDT compara el ltimo bit en las
matrices de origen y referencia.
.FD BOOL El bit de encontrado se establece cada vez que la instruccin DDT registra una incongruencia
(operacin una a la vez) o despus de registrar todas las incongruencias (operacin todas por
escn).
.IN BOOL El bit de inhibicin indica el modo de bsqueda de DDT.

0 = modo de todas

1 = modo de una incongruencia a la vez


.ER BOOL El bit de error se establece si la comparacin .POS < 0, la comparacin .LEN < 0, el
resultado .POS < 0 o el resultado .LEN < 0. La instruccin detiene la ejecucin hasta que el
programa borra el bit .ER.
.LEN DINT El valor de longitud identifica el nmero de bits que se van a comparar.
.POS DINT El valor de posicin identifica el bit actual.

Estructura RESULT

Mnemnico Tipo de datos Descripcin


.DN BOOL El bit de efectuado se establece cuando la matriz resultado est llena.
.LEN DINT El valor de longitud identifica el nmero de ubicaciones de almacenamiento en la matriz
resultado.
.POS DINT El valor de posicin identifica la posicin actual en la matriz resultado.

Descripcin: Cuando se habilita, la instruccin DDT compara los bits en la matriz


de origen con los bits en la matriz de referencia, registra el nmero de
bits de cada incongruencia en la matriz resultado y cambia el valor del
bit de referencia para que coincida con el valor del bit de origen
correspondiente.

IMPORTANTE Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
La instruccin DDT realiza la operacin en la memoria de datos contiguos. En
algunos casos, la instruccin busca o escribe ms all de la matriz en otros
miembros del tag. Esto sucede si una longitud es excesiva y el tag es de un tipo de
datos definido por el usuario.

La diferencia entre las instrucciones DDT y FBC radica en que cada


vez que la instruccin DDT encuentra una incongruencia, la
instruccin DDT cambia el bit de referencia para que coincida con el
bit de origen. La instruccin FBC no cambia el bit de referencia.

Publicacin 1756-RM003K-ES-P Julio 2008 487


Captulo 13 Instrucciones especiales (FBC, DDT, DTR, PID)

Seleccin del modo de bsqueda

Si desea detectar Seleccione este modo


Una incongruencia a la vez Establezca el bit .IN en la estructura CONTROL de comparacin.

Cada vez que la condicin de entrada del rengln cambia de falso a verdadero, la
instruccin DDT busca la siguiente incongruencia entre las matrices de origen y
referencia. Al encontrar una incongruencia, la instruccin establece el bit .FD, registra
la posicin de la incongruencia y detiene la ejecucin.
Todas las incongruencias Borre el bit .IN en la estructura CONTROL de comparacin.

Cada vez que la condicin de entrada del rengln cambia de falso a verdadero,
la instruccin DDT busca todas las incongruencias entre las matrices de origen y
referencia.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:

Ocurrir un fallo mayor si Tipo de fallo Cdigo de fallo


result.POS > tamao de matriz resultado 4 20

488 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones especiales (FBC, DDT, DTR, PID) Captulo 13

Ejecucin:

Condicin: Accin de lgica de escalera de rels

preescn

el bit compare.EN se borra


el bit compare.FD se borra

examine el bit compare.DN = 0


compare.DN

compare.DN = 1

el bit compare.DN se borra


el valor compare.POS se borra
el bit result.DN se borra
el valor result.POS se borra

la condicin de salida de
rengln se establece como
falsa

fin

Publicacin 1756-RM003K-ES-P Julio 2008 489


Captulo 13 Instrucciones especiales (FBC, DDT, DTR, PID)

Condicin: Accin de lgica de escalera de rels

condicin de entrada de
rengln es falsa
el bit compare.EN se borra
el bit compare.FD se borra

examine el bit compare.DN = 0


compare.DN

compare.DN = 1

el bit compare.DN se borra


el valor compare.POS se borra
el bit result.DN se borra
el valor result.POS se borra

la condicin de salida de
rengln se establece como
falsa

fin

490 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones especiales (FBC, DDT, DTR, PID) Captulo 13

Condicin: Accin de lgica de escalera de rels

condicin de entrada de rengln es verdadera

examine el bit compare.EN = 1 ir a la


compare.EN salida

compare.EN = 0

examine el bit bit compare.DN = 1 ir a la


El bit compare.EN se compare.DN
establece salida

bit compare.DN = 0

el bit compare.ER se borra s


el bit compare.FD se borra compare.LEN 0

no

s
compare.POS < 0
salida

el bit compare.ER se
no establece

la condicin de salida de
rengln se establece como
verdadera
comparar ir a la
salida
fin
pgina 492

Publicacin 1756-RM003K-ES-P Julio 2008 491


Captulo 13 Instrucciones especiales (FBC, DDT, DTR, PID)

Condicin: Accin de lgica de escalera de rels

comparar

compare.POS s compare.POS = compare.LEN ir a la


compare.LEN el bit compare.DN se establece salida
pgina 491
no

result.DN = 1
compare.FD bit se
no establece el bit result.DN se borra
source[compare.POS] = examine el bit el valor result.POS se
reference[compare.POS] reference[compare.POS] result.DN bit
= source[compare.POS] borra

s result.DN = 0

compare.POS =
compare.POS + 1
s
result.POS < 0

no

s
result.LEN 0

no el bit compare.ER se
establece

s result.POS > ir a la
fallo mayor tamao de matriz salida
resultado
pgina 483
no

result[result.POS] = compare.POS
result.POS = result.POS + 1

no result.POS
result.LEN

el bit result.DN se establece

post-escn La condicin de salida de rengln se establece como falsa.

492 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones especiales (FBC, DDT, DTR, PID) Captulo 13

Ejemplo: Cuando se habilita, la instruccin DDT compara el origen array_dint1


con la referencia array_dint2 y almacena las ubicaciones de las
incongruencias en el resultado array_dint3. El controlador tambin
cambia los bits incongruentes en la referencia array_dint2 para
hacerlos congruentes con el origen array_dint1.

origen 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

array_dint1

referencia (antes de comparacin) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0

array_dint2

resultado 5 3

array_dint3
referencia (despus de comparacin) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

array_dint2

Publicacin 1756-RM003K-ES-P Julio 2008 493


Captulo 13 Instrucciones especiales (FBC, DDT, DTR, PID)

Transicin de datos (DTR) La instruccin DTR pasa el valor de origen a travs de una mscara y
compara el resultado con el valor de referencia.

Operandos:

Lgica de escalera de rels

Operando: Tipo Formato Descripcin


Source DINT inmediato matriz que se va a comparar con la
referencia.
tag
Mask DINT inmediato qu bits se bloquean o se pasan

tag
Reference DINT tag matriz que se va a comparar con el origen.

Descripcin: La instruccin DTR pasa el valor de origen a travs de una mscara


y compara el resultado con el valor de referencia. La instruccin DTR
tambin escribe el valor de Source enmascarado en el valor de
referencia para la siguiente comparacin. Source no cambia.

Un nmero 1 en la mscara significa que se pasa el bit de datos. Un


nmero 0 en la mscara significa que se bloquea el bit de datos.

Cuando Source enmascarado es diferente de la referencia, la


condicin de salida de rengln se hace verdadera en un escn.
Cuando Source enmascarado es igual que la referencia, la condicin
de salida de rengln se hace falsa.

ATENCIN El programar en lnea con esta instruccin puede ser peligroso.


Si el valor de referencia es diferente del valor de origen, la
condicin de salida del rengln se hace falsa. Tenga cuidado al
insertar esta instruccin cuando el procesador est en el modo
de marcha o de marcha remota.

494 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones especiales (FBC, DDT, DTR, PID) Captulo 13

Introduzca un valor de mscara inmediato

Cuando usted introduce una mscara, el software de programacin


cambia de manera predeterminada a valores decimales. Si desea
introducir una mscara usando otro formato, preceda el valor con el
prefijo correcto.

Prefijo Descripcin:
16# hexadecimal

por ejemplo; 16#0F0F


8# octal

por ejemplo: 8#16


2# binario

por ejemplo: 2#00110011

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin Accin de lgica de escalera de rels


preescn La Referencia = Source AND Mask.

La condicin de salida de rengln se establece como falsa.


condicin de entrada de rengln es falsa La Referencia = Source AND Mask.

La condicin de salida de rengln se establece como falsa.


condicin de entrada de
rengln es verdadera

origen no
enmascarado = la referencia se establece igual que el origen
referencia enmascarado
la condicin de salida de rengln se establece como
verdadera
s

la condicin de salida de
rengln se establece
como falsa

fin

post-escn La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008 495


Captulo 13 Instrucciones especiales (FBC, DDT, DTR, PID)

Ejemplo: Cuando se habilita, la instruccin DTR enmascara value_1. Si existe


una diferencia entre los dos valores, la condicin de salida de rengln
se establece como verdadera.

ejemplo 1 ejemplo 2
origen
7 1 8 3 9 1 8 7
value_1

mscara = 0FFF

0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1

referencia

escn actual 0 1 8 3 0 1 8 7 escn actual


value_2
escn previo 0 1 8 3 0 1 8 3 escn previo

El rengln permanece falso siempre que el El rengln permanece verdadero por un


valor de entrada no cambie. escn cuando se detecta un cambio.
13385

Un nmero 0 en la mscara deja el bit sin ningn cambio.

496 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones especiales (FBC, DDT, DTR, PID) Captulo 13

Proporcional integral La instruccin PID controla una variable del proceso, tal como flujo,
presin, temperatura o nivel.
derivativo (PID)
Operandos:
Lgica de escalera de rels

Operando Tipo Formato Descripcin


PID PID estructura estructura PID
Process SINT tag valor que desea controlar
variable
INT

DINT

REAL
Tieback SINT inmediato (opcional) salida de una estacin manual/automtica que est pasando por alto la salida del
controlador
INT tag
Introduzca 0 si no desea usar este parmetro.
DINT

REAL
Control SINT tag valor que va al dispositivo de control final (vlvula, regulador, etc.)
variable
INT Si usted est usando la banda muerta, la variable Control debe ser REAL o se forzar a 0
cuando el error est dentro de la banda muerta.
DINT

REAL
PID master PID estructura (opcional) tag PID para el PID maestro
loop
Si est realizando control en cascada y este PID es un lazo esclavo, introduzca el nombre del
PID maestro. Introduzca 0 si no desea usar este parmetro.
Inhold bit BOOL tag (opcional) estado actual del bit mantenido desde un canal de salida analgica 1756 para
permitir un reinicio sin problemas

Introduzca 0 si no desea usar este parmetro.


Inhold value SINT tag (opcional) valor de repeticin de lectura de datos desde un canal de salida analgica 1756
para permitir un reinicio sin problemas
INT
Introduzca 0 si no desea usar este parmetro.
DINT

REAL

Publicacin 1756-RM003K-ES-P Julio 2008 497


Captulo 13 Instrucciones especiales (FBC, DDT, DTR, PID)

Operando Tipo Formato Descripcin


Setpoint muestra el valor actual del punto de ajuste
Process muestra el valor actual de la variable del proceso escalada
variable
Output % muestra el valor de porcentaje de la salida actual

Texto estructurado
PID(PID,ProcessVariable, Los operandos son iguales que los de la instruccin PID de lgica de
Tieback,ControlVariable, escalera de rels. Sin embargo, usted especifica Setpoint, Process
PIDMasterLoop,InholdBit, Variable y Output % accediendo a los miembros .SP, .PV. y .OUT de la
InHoldValue); estructura PID, en lugar de incluir valores en la lista de operandos.

Estructura PID

Mnemnico: Tipo de datos Descripcin


.CTL DINT El miembro .CTL proporciona acceso a los miembros de estado (bits) en una palabra de 32 bits.
La instruccin PID establece los bits 07 - 15.
Este bit Es este miembro
31 .EN
30 .CT
29 .CL
28 .PVT
27 .DOE
26 .SWM
25 .CA
24 .MO
23 .PE
22 .NDF
21 .NOBC
20 .NOZC
Este bit: Es este miembro, que la instruccin PID establece
15 .INI
14 .SPOR
13 .OLL
12 .OLH
11 .EWD
10 .DVNA
09 .DVPA
08 .PVLA
07 .PVHA
.SP REAL punto de ajuste
.KP REAL independiente ganancia proporcional (sin unidades)
dependiente ganancia de controlador (sin unidades)

498 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones especiales (FBC, DDT, DTR, PID) Captulo 13

Mnemnico: Tipo de datos Descripcin


.KI REAL independiente ganancia integral (1/segundo)
dependiente tiempo de accin integral (minutos por repeticin)
.KD REAL independiente ganancia derivativa (segundos)
dependiente tiempo de accin derivada (minutos)
.BIAS REAL % de ganancia anticipativa o polarizacin
.MAXS REAL valor mximo de escalado de unidades de ingeniera
.MINS REAL valor mnimo de escalado de unidades de ingeniera
.DB REAL unidades de ingeniera de banda muerta
.SO REAL % salida establecida
.MAXO REAL lmite mximo de salida (% de salida)
.MINO REAL lmite mnimo de salida (% de salida)
.UPD REAL tiempo de actualizacin del lazo (segundos)
.PV REAL valor PV escalado
.ERR REAL valor de error escalado
.OUT REAL % de salida
.PVH REAL lmite de alarma alta de variable del proceso
.PVL REAL lmite de alarma baja de variable del proceso
.DVP REAL lmite de alarma de desviacin positiva
.DVN REAL lmite de alarma de desviacin negativa
.PVDB REAL banda muerta de alarma de variable del proceso
.DVDB REAL banda muerta de alarma de desviacin
.MAXI REAL valor PV mximo (entrada no escalada)
.MINI REAL valor PV mnimo (entrada no escalada)
.TIE REAL valor retenido para control manual
.MAXCV REAL valor CV mximo (correspondiente a 100%)
.MINCV REAL valor CV mnimo (correspondiente a 0%)
.MINTIE REAL valor retenido mnimo (correspondiente a 100%)
.MAXTIE REAL valor retenido mximo (correspondiente a 0%)

Publicacin 1756-RM003K-ES-P Julio 2008 499


Captulo 13 Instrucciones especiales (FBC, DDT, DTR, PID)

Mnemnico: Tipo de datos Descripcin


.DATA REAL[17] El miembro .DATA almacena:
Elemento: Descripcin
.DATA[0] acumulacin integral
.DATA[1] valor temporal de suavizado derivativo
.DATA[2] valor .PV previo
.DATA[3] valor .ERR previo
.DATA[4] valor .SP previo vlido
.DATA[5] constante de escalado porcentual
.DATA[6] constante de escalado .PV
.DATA[7] constante de escalado derivativo
.DATA[8] valor .KP previo
.DATA[9] valor .KI previo
.DATA[10] valor .KD previo
.DATA[11] .KP de ganancia dependiente
.DATA[12] .KI de ganancia dependiente
.DATA[13] .KD de ganancia dependiente
.DATA[14] valor .CV previo
.DATA[15] constante de desactivacin de escalado .CV
.DATA[16] constante de desactivacin de escalado de valor retenido
.EN BOOL habilitado
.CT BOOL tipo cascada (0=esclavo; 1=maestro)
.CL BOOL lazo en cascada (0=no; 1=s)
.PVT BOOL seguimiento de variable de proceso (0=no; 1=s)
.DOE BOOL derivada de (0=PV; 1=error)
.SWM BOOL modo manual de software (0=no-auto; 1=s- sw manual)
.CA BOOL accin de control (0 significa E=SP-PV; 1 significa E=PV-SP)
.MO BOOL modo de estacin (0=automtico; 1=manual)
.PE BOOL Ecuacin PID (0=independiente; 1=dependiente)
.NDF BOOL sin suavizado derivativo
(0=filtro de suavizado derivativo habilitado; 1=filtro de suavizado derivativo inhabilitado)
.NOBC BOOL sin clculo en base a datos originales de polarizacin
(0=clculo en base a datos originales de polarizacin habilitado; 1=clculo en base a datos
originales de polarizacin inhabilitado)
.NOZC BOOL sin banda muerta de cruce por cero
(0=banda muerta de cruce por cero; 1=banda muerta sin cruce por cero)
.INI BOOL PID inicializado (0=no; 1=s)
.SPOR BOOL punto de ajuste fuera de rango (0=no; 1=s)
.OLL BOOL VC est por debajo del lmite de salida mnimo (0=no; 1=s)
.OLH BOOL VC est por arriba del lmite de salida mximo (0=no; 1=s)
.EWD BOOL el error est dentro de la banda muerta (0=no; 1=s)
.DVNA BOOL la desviacin tiene alarma baja (0=no; 1=s)

500 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones especiales (FBC, DDT, DTR, PID) Captulo 13

Mnemnico: Tipo de datos Descripcin


.DVPA BOOL la desviacin tiene alarma alta (0=no; 1=s)
.PVLA BOOL PV tiene alarma baja (0=no; 1=s)
.PVHA BOOL PV tiene alarma alta (0=no; 1=s)

Descripcin: La instruccin PID tpicamente recibe la variable del proceso (PV)


desde un mdulo de entrada analgico y modula una salida de
variable de control (CV) en un mdulo de salidas analgicas a fin de
mantener la variable del proceso en el punto de ajuste deseado.

El bit .EN indica el estado de ejecucin. El bit .EN se establece cuando


la condicin de entrada del rengln cambia de falso a verdadero.
El bit .EN se borra cuando la condicin de entrada del rengln se
hace falsa. La instruccin PID no usa el bit .DN. La instruccin PID
se ejecuta en cada escn, siempre que la condicin de entrada de
rengln sea verdadera.

bit .EN

estado de rengln
ejecucin de la instruccin PID

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:

IMPORTANTE Estos fallos eran fallos mayores en el controlador PLC-5.

Ocurrir un fallo menor si Tipo de fallo Cdigo de fallo


.UPD 0 4 35
el punto de ajuste est fuera de rango 4 36

Publicacin 1756-RM003K-ES-P Julio 2008 501


Captulo 13 Instrucciones especiales (FBC, DDT, DTR, PID)

Ejecucin:
Condicin Accin Accin
preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin La instruccin ejecuta el lazo PID. La instruccin ejecuta el lazo PID.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

Configure una instruccin Despus de introducir la instruccin PID y especificar la estructura de


PID, se usan las fichas de configuracin para especificar cmo debe
PID funcionar la instruccin PID.

Haga clic aqu para configurar


la instruccin PID

502 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones especiales (FBC, DDT, DTR, PID) Captulo 13

Especifique el ajuste

Seleccione la ficha Tuning. Los cambios surten efecto al hacer clic en


otro campo, en OK, en Apply o al presionar Enter.

En este campo Especifique:


Setpoint (SP) Introduzca un valor de punto de ajuste (.SP).
% salida establecida Introduzca un porcentaje de salida establecido (.SO).

En el modo manual de software, este valor se usa para la salida.

En el modo auto, este valor muestra el % de salida.


Output bias Introduzca un porcentaje de polarizacin de salida (.BIAS).
Proportional gain (Kp) Introduzca la ganancia proporcional (.KP).

Para ganancias independientes, sta es la ganancia proporcional (sin unidades).

Para ganancias dependientes, sta es la ganancia del controlador (sin unidades).


Integral gain (Ki) Introduzca la ganancia integral (.KI).

Para ganancias independientes, sta es la ganancia integral (1/segundo).

Para ganancias dependientes, ste es el tiempo de accin integral (minutos por


repeticin).
Derivative time (Kd) Introduzca la ganancia derivativa (.KD).

Para ganancias independientes, sta es la ganancia derivativa (segundos).

Para ganancias dependientes, ste es el valor en minutos del tiempo de accin


derivada).
Manual Mode Seleccione ya sea manual (.MO) o manual de software (.SWM).

El modo manual tiene precedencia sobre el modo manual de software, si ambos estn
seleccionados.

Publicacin 1756-RM003K-ES-P Julio 2008 503


Captulo 13 Instrucciones especiales (FBC, DDT, DTR, PID)

Especifique la configuracin

Seleccione la ficha Configuration. Debe hacer clic en OK o Apply para


que los cambios surtan efecto.

En este campo Especifique


PID equation Seleccione ganancias independientes o dependientes (.PE).

Use independientes cuando desee que las tres ganancias (P, I y D) operen de manera
independiente. Use dependientes cuando desee una ganancia total del controlador que
afecte a los tres trminos (P, I y D).
Control action Seleccione ya sea E=PV-SP o E=SP-PV para la accin de control (.CA).
Derivative of Seleccione VP o error (.DOE).

Use la derivada de VP para eliminar los picos de salida causados por cambios del punto
de ajuste. Use la derivada de error para respuestas rpidas a cambios del punto de
ajuste cuando el algoritmo puede tolerar sobreimpulsos.
Loop update time Introduzca el tiempo de actualizacin (.UPD) para la instruccin.
CV high limit Introduzca un lmite alto para la variable de control (.MAXO).
CV low limit Introduzca un lmite bajo para la variable de control (.MINO).
Deadband value Introduzca un valor de banda muerta (.DB).
No derivative smoothing Habilite o inhabilite esta seleccin (.NDF).
No bias calculation Habilite o inhabilite esta seleccin (.NOBC).
No zero crossing in Habilite o inhabilite esta seleccin (.NOZC).
deadband
PV tracking Habilite o inhabilite esta seleccin (.PVT).
Cascade loop Habilite o inhabilite esta seleccin (.CL).
Cascade type Si el lazo en cascada est habilitado, seleccione esclavo o maestro (.CT).

Especificacin de alarmas

Seleccione la ficha Alarms. Debe hacer clic en OK o Apply para que


los cambios surtan efecto.

En este campo Especifique


PV alta Introduzca un valor de alarma alta VP (.PVH).
PV low Introduzca un valor de alarma baja VP (.PVL).
PV deadband Introduzca un valor de banda muerta de alarma VP (.PVDB).
positive deviation Introduzca un valor de desviacin positiva (.DVP).
negative deviation Introduzca un valor de desviacin negativa (.DVN).
deviation deadband Introduzca un valor de banda muerta de alarma de desviacin (.DVDB).

504 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones especiales (FBC, DDT, DTR, PID) Captulo 13

Especificacin de escalado

Seleccione la ficha Scaling. Debe hacer clic en OK o Apply para que


los cambios surtan efecto.

En este campo Especifique


PV unscaled maximum Introduzca un valor PV mximo (.MAXI) que sea igual al valor mximo sin escalado
recibido desde el canal de entrada analgico para el valor PV.
PV unscaled minimum Introduzca un valor VP mnimo (.MINI) que sea igual al valor mnimo sin escalado
recibido desde el canal de entrada analgico para el valor PV.
PV engineering units Introduzca el valor mximo de unidades de ingeniera correspondiente a .MAXI (.MAXS)
maximum
PV engineering units Introduzca el valor mnimo de unidades de ingeniera correspondiente a .MINI (.MINS)
minimum
CV maximum Introduzca un valor de CV mximo correspondiente al 100% (.MAXCV).
CV minimum Introduzca un valor de CV mnimo correspondiente al 0% (.MINCV).
Tieback maximum Introduzca un valor retenido mximo (.MAXTIE) que sea igual al valor mximo sin
escalado recibido desde el canal de entrada analgico para el valor retenido.
Tieback minimum Introduzca un valor retenido mnimo (.MINTIE) que sea igual al valor mnimo sin
escalado recibido desde el canal de entrada analgico para el valor retenido.
PID Initialized Si usted cambia las constantes de escalado durante el modo de marcha, desactvelo
para reinicializar valores internos de desactivacin de escalado (.INI).

Uso de instrucciones PID El control de lazo cerrado PID retiene una variable del proceso en un
punto de ajuste deseado. La siguiente figura muestra un ejemplo de
rgimen de flujo/nivel de fluido.

punto de ajuste - error


ecuacin PID
+
rgimen de flujo
variable de proceso variable de control

detector de nivel

14271

En el ejemplo anterior, el nivel del tanque se compara con el punto de


ajuste. Si el nivel es ms alto que el punto de ajuste, la ecuacin PID
aumenta la variable de control y causa que se abra la vlvula de salida
del tanque, reduciendo as el nivel del tanque.

Publicacin 1756-RM003K-ES-P Julio 2008 505


Captulo 13 Instrucciones especiales (FBC, DDT, DTR, PID)

La ecuacin PID usada en la instruccin PID es una ecuacin de


forma posicional con la opcin de usar ganancias independientes
o dependientes. Al usar ganancias independientes, las ganancias
proporcional, integral y derivativa slo afectan sus respectivos
trminos proporcional, integral o derivativo especficos. Al usar
ganancias dependientes, la ganancia proporcional es reemplazada con
una ganancia de controlador que afecta los tres trminos. Usted puede
usar cualquier forma de ecuacin para realizar el mismo tipo de
control. Los dos tipos de ecuacin se proporcionan simplemente para
permitirle usar el tipo de ecuacin con el que usted est ms
familiarizado.

Opcin de ganancia Derivada de Ecuacin


Ganancias dependientes error (E)
(estndar ISA) t
1 dE
CV = K C E + ---- Edt + T d ------- + BIAS
Ti dt
0

variable de proceso (PV)


E = SP - PV
t
1 dPV
CV = K C E + ---- Edt T d ----------- + BIAS
Ti dt
0

E = PV - SP
t
1 dPV
CV = K C E + ---- Edt + T d ----------- + BIAS
Ti dt
0

Ganancias independientes error (E)


t
dE
CV = K P E + K i Edt + K d ------- + BIAS
dt
0

variable de proceso (PV)


E = SP - PV
t
dPV
CV = K P E + K i Edt K d ----------- + BIAS
dt
0

E = PV - SP
t
dPV
CV = K P E + K i Edt + K d ----------- + BIAS
dt
0

506 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones especiales (FBC, DDT, DTR, PID) Captulo 13

Donde:

Variable Descripcin
KP ganancia proporcional (sin unidades)

Kp = Kc sin unidades
Ki ganancia integral (segundos -1)

Para convertir entre Ki (ganancia integral) y Ti (tiempo de accin integral),


use:

KC
K i = ----------
-
60T i

Kd ganancia derivativa (segundos)

Para convertir entre Kd (ganancia derivativa) y Td (tiempo de accin


derivada), use:

Kd = Kc (Td) 60
KC ganancia de controlador (sin unidades)
Ti tiempo de accin integral (minutos/repeticin)
Td tiempo de accin derivada (minutos)
SP punto de ajuste
PV variable de proceso
E error [(SP-PV) o (PV-SP)]
BIAS ganancia anticipativa o polarizacin
VC variable de control
dt tiempo de actualizacin del lazo

Si no desea usar un trmino particular de la ecuacin PID,


simplemente establezca su ganancia en cero. Por ejemplo, si no desea
accin derivativa, establezca Kd o Td igual a cero.

Bloqueo de accin integral y transferencia sin perturbaciones de


manual a automtico

La instruccin PID evita automticamente una accin integral de


restablecimiento al evitar que el trmino integral se acumule cada vez
que la salida CV llega a sus valores mximos o mnimos, segn lo
establecido por .MAXO y .MINO. El trmino integral acumulado
permanece congelado hasta que la salida CV cae por debajo de su
lmite mximo o supera su lmite mnimo. Seguidamente se reanuda
automticamente la acumulacin integral normal.

Publicacin 1756-RM003K-ES-P Julio 2008 507


Captulo 13 Instrucciones especiales (FBC, DDT, DTR, PID)

La instruccin PID acepta dos modos manuales de control:

Modo manual de control Descripcin


manual de software (.SWM) tambin conocido como modo de salida establecida

permite que el usuario establezca en el software el % de salida

El valor de salida establecida (.SO) se usa como la salida del lazo. El valor de salida
establecida normalmente proviene de una entrada de operador de un dispositivo de
interface de operador.
manual (.MO) toma el valor retenido, como una entrada, y ajusta sus variables internas para generar
el mismo valor en la salida.

La entrada retenida relacionada con la instruccin PID se escala al 0 - 100% segn los
valores de .MINTIE y .MAXTIE y se utiliza como la salida del lazo. La entrada retenida
generalmente viene desde la salida de una estacin manual/automtica de hardware
que est pasando por alto la salida proveniente del controlador.

Nota: El modo manual tiene precedencia sobre el modo manual de software si ambos
bits de modo estn establecidos.

La instruccin PID tambin proporciona automticamente


transferencias sin perturbaciones desde el modo manual de software
o desde el modo manual a automtico. La instruccin PID vuelve
a calcular en base a datos originales el valor del trmino de
acumulacin integral requerido para hacer que la salida CV rastree ya
sea el valor de la salida establecida (.SO) en el modo manual de
software o la entrada retenida en el modo manual. De esta manera,
cuando el lazo cambia al modo automtico, la salida CV comienza
desde el valor retenido o salida establecida, y no ocurre ninguna
perturbacin en el valor de salida.

La instruccin PID tambin puede proporcionar automticamente una


transferencia sin perturbaciones de manual a automtico incluso si no
se usa el control integral (es decir, Ki = 0). En este caso, la instruccin
modifica el trmino .BIAS para hacer que la salida CV rastree la salida
establecida o los valores retenidos. Al reanudarse el control
automtico, el trmino .BIAS mantendr su valor ms reciente. Usted
puede inhabilitar el clculo en base a datos originales del trmino
.BIAS con slo establecer el bit .NOBC en la estructura de datos PID.
Tenga en cuenta que si establece .NOBC como verdadero, la
instruccin PID ya no proporciona una transferencia sin
perturbaciones de manual a automtico cuando no se usa control
integral.

Temporizacin de la instruccin PID

La instruccin PID y el muestreo de la variable del proceso necesitan


actualizarse peridicamente. Este tiempo de actualizacin est
relacionado con el proceso fsico que usted est controlando. Para
lazos muy lentos como, por ejemplo, lazos de temperatura, un
perodo de una actualizacin por segundo o incluso un perodo

508 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones especiales (FBC, DDT, DTR, PID) Captulo 13

mayor, generalmente es suficiente para obtener un buen control. Para


lazos algo ms rpidos, tales como lazos de presin o flujo, se puede
requerir perodos de actualizacin como de 250 milisegundos. Slo en
raras ocasiones, como en el caso de control de tensin mecnica o
carrete desbobinador, se requieren perodos de actualizacin de lazo
de 10 milisegundos o menores.

Puesto que la instruccin PID usa una base de tiempo para su clculo,
usted necesita sincronizar la ejecucin de esta instruccin con el
muestreo de la variable del proceso (PV).

La manera ms fcil de ejecutar la instruccin PID es poner la


instruccin PID en una tarea peridica. Establezca el tiempo de
actualizacin de lazo (.UPD) igual al rgimen de la tarea peridica
para asegurarse de que la instruccin PID se ejecute en cada escn
de la tarea peridica.

Lgica de escalera de rels

Texto estructurado

PID(TIC101,Local:0:I.Ch0Data,Local:0:I.Ch1Data,
Local:1:O.Ch4Data,0,Local:1:I.Ch4InHold,
Local:1:I.Ch4Data);

Cuando use una tarea peridica, asegrese de que la entrada


analgica empleada para la variable del proceso se actualice con el
procesador a un rgimen considerablemente ms rpido que el
rgimen de la tarea peridica. Idealmente, la variable del proceso
debe enviarse al procesador a un rgimen por lo menos de cinco a
diez veces mayor que el rgimen de la tarea peridica. Esto
minimiza la diferencia de tiempo entre las muestras de la variable
del proceso y la ejecucin del lazo PID. Por ejemplo, si el lazo PID
es una tarea peridica de 250 milisegundos, use un tiempo de
actualizacin de lazo de 250 milisegundos (.UPD = .25) y configure el
mdulo de entrada analgica para producir datos por lo menos cada
25 50 milisegundos.

Publicacin 1756-RM003K-ES-P Julio 2008 509


Captulo 13 Instrucciones especiales (FBC, DDT, DTR, PID)

Otro mtodo algo menos exacto de ejecutar una instruccin PID


consiste en colocar la instruccin en una tarea continua y usar un bit
de temporizador expirado para activar la ejecucin de la instruccin
PID.

Lgica de escalera de rels

Texto estructurado

PID_timer.pre := 1000

TONR(PID_timer);

IF PID_timer.DN THEN

PID(TIC101,Local:0:I.Ch0Data,Local:0:I.Ch1Data,
Local:1:O.Ch0Data,0,Local:1:I.Ch0InHold,
Local:1:I.Ch0Data);

END_IF;

Con este mtodo, el tiempo de actualizacin de lazo de la instruccin


PID debe establecerse igual que el valor prefijado en el temporizador.
Igual que cuando se usa una tarea peridica, usted debe establecer el
mdulo de entrada analgica para producir la variable del proceso a
un rgimen considerablemente mayor que el rgimen de actualizacin
de lazo. Usted slo debe usar el mtodo de temporizacin de
ejecucin PID para lazos cuyos tiempos de actualizacin de lazo sean
por lo menos varias veces mayores que el tiempo de ejecucin ms
largo posible de la tarea continua.

La manera ms exacta de ejecutar una instruccin PID es usar la


funcin de muestreo en tiempo real (RTS) de los mdulos de entradas
analgicas 1756. El mdulo de entradas analgicas muestrea sus
entradas segn el rgimen de muestreo en tiempo real que usted haya
establecido al momento de configurar el mdulo. Cuando el perodo

510 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones especiales (FBC, DDT, DTR, PID) Captulo 13

de muestreo en tiempo real del mdulo expira, ste actualiza sus


entradas y actualiza un sello de hora continuo (representado por el
miembro RolllingTimestamp de la estructura de entradas analgicas)
producido por el mdulo.

El rango del sello de hora oscila entre 0 - 32767 milisegundos.


Monitoree el sello de hora. Cuando cambia, significa que se recibi
una nueva muestra de la variable del proceso. Cada vez que cambia
un sello de hora, se ejecuta una vez la instruccin PID. Puesto que el
muestreo de la variable del proceso es activado por el mdulo de
entradas analgicas, el tiempo de muestreo de entrada es muy exacto,
y el tiempo de actualizacin de lazo usado por la instruccin PID
debe establecerse igual al tiempo RTS del mdulo de entradas
analgicas.

Para asegurarse de no omitir muestreos de la variable del proceso,


ejecute la lgica a un rgimen ms rpido que el tiempo RTS. Por
ejemplo, si el tiempo RTS es 250 ms, puede colocar la lgica PID en
una tarea peridica que se ejecute cada 100 ms para asegurarse de no
omitir nunca un muestreo. Incluso podra colocar la lgica PID en una
tarea continua, siempre y cuando se asegure de que la lgica se
actualizara ms frecuentemente que una vez cada 250 milisegundos.

A continuacin se muestra un ejemplo del mtodo de ejecucin RTS.


La ejecucin de la instruccin PID depende de la recepcin de datos
de entradas analgicas. Si el mdulo de entradas analgicas falla o se
desmonta, el controlador deja de recibir sellos de hora continuos y el
lazo PID deja de ejecutarse. Usted debe monitorear el bit de estado de
la entrada analgica PV y, si muestra un estado incorrecto, fuerce el
lazo al modo manual de software y ejecute el lazo en cada escn. As
el operador podr cambiar manualmente la salida del lazo PID.

Lgica de escalera de rels

Publicacin 1756-RM003K-ES-P Julio 2008 511


Captulo 13 Instrucciones especiales (FBC, DDT, DTR, PID)

Texto estructurado

IF (Local:0:I.Ch0Fault) THEN
TIC101.SWM [:=] 1;
ELSE
TIC101.SWM := 0;
END_IF;

IF (Local:0:I.RollingTimestamp<>PreviousTimestamp) O
(Local:0:I.Ch0Fault) THEN

PreviousTimestamp := Local:0:I.RollingTimestamp;

PID(TIC101,Local:0:I.Ch0Data,Local:0:I.Ch1Data,
Local:1:O.Ch0Data,0,Local:1:I.Ch0InHold,
Local:1:I.Ch0Data);

END_IF;

Reinicio sin problemas

La instruccin PID puede interactuar con los mdulos de salidas


analgicas 1756 para admitir un reinicio sin perturbaciones cuando el
controlador cambia del modo de programacin al modo de marcha,
o cuando se enciende el controlador.

Cuando el mdulo de salidas analgicas 1756 pierde comunicacin


con el controlador o detecta que el controlador est en el modo de
programacin, el mdulo de salidas analgicas establece sus salidas
segn los valores de condicin de fallo que usted especific cuando
configur el mdulo. Seguidamente, cuando el controlador regresa al
modo de marcha o vuelve a establecer comunicacin con el mdulo
de salidas analgicas, usted puede disponer que la instruccin PID
restablezca automticamente su salida de variable de control igual a la
salida analgica, mediante el bit Inhold y los parmetros Inhold Value
en la instruccin PID.

512 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones especiales (FBC, DDT, DTR, PID) Captulo 13

Para establecer un reinicio sin problemas:

Haga lo siguiente Detalles:


Configure el canal del mdulo de salidas Marque la casilla de verificacin de retener para inicializacin (hold for
analgicas 1756 que recibe la variable de control initialization) en la pgina de propiedades del canal especfico del mdulo.
proveniente de la instruccin PID

Esto indicar al mdulo de salidas analgicas que cuando el controlador regrese al


modo de marcha o vuelva a establecer comunicacin con el mdulo, el mdulo debe
retener la salida analgica en su valor actual hasta que el valor enviado desde el
controlador coincida (dentro de un intervalo de 0.1%) con el valor actual usado por
el canal de salida. La salida del controlador cambiar gradualmente al valor de
salida retenido actualmente mediante el uso del trmino .BIAS. Este cambio en
forma de rampa es similar al de la transferencia sin perturbaciones.
Introduzca el tag de bit Inhold y el tag Inhold Value El mdulo de salidas analgicas 1756 retorna dos valores por cada canal en su
en la instruccin PID estructura de datos de entrada. El bit de estado en retencin (.Ch2InHold, por
ejemplo) cuando es verdadero, indica que el canal de salida analgica est
reteniendo su valor. El valor de relectura de datos (.Ch2Data, por ejemplo) muestra
el valor de salida actual en unidades de ingeniera.

Introduzca el tag del bit de estado en retencin como parmetro InHold de la


instruccin PID. Introduzca el tag del valor de relectura de datos como el parmetro
Inhold Value.

Cuando el bit Inhold se hace verdadero, la instruccin PID mueve el Inhold Value a la
salida de variable de control y se reinicializa para permitir un reinicio sin
perturbaciones en dicho valor. Cuando el mdulo de salidas analgicas recibe su
valor de vuelta desde el controlador, ste desactiva el bit de estado InHold, lo cual
permite que la instruccin PID comience normalmente a realizar el control.

Suavizado derivativo

El clculo de la derivada se mejora mediante el uso de un filtro de


suavizado derivativo. Este filtro digital pasabajos de primer orden
ayuda a minimizar picos grandes del trmino derivativo causados por
ruido en la PV. Este suavizado se hace ms agresivo mientras mayores
son los valores de ganancia derivativa. Usted puede inhabilitar el
suavizado derivativo si su proceso requiere valores muy grandes de
ganancia derivativa (Kd > 10, por ejemplo). Para inhabilitar el
suavizado derivativo, seleccione la opcin sin suavizado derivativo
(No derivative smoothing) en la ficha Configuration o establezca el
bit .NDF en la estructura PID.

Publicacin 1756-RM003K-ES-P Julio 2008 513


Captulo 13 Instrucciones especiales (FBC, DDT, DTR, PID)

Establezca la banda muerta

La banda muerta ajustable le permite seleccionar un rango de errores


por encima y por debajo del punto de ajuste donde la salida no
cambia siempre y cuando el error permanezca dentro de este rango.
Esta banda muerta le permite controlar la proximidad con la que la
variable del proceso coincide con el punto de ajuste sin cambiar la
salida. La banda muerta tambin ayuda a minimizar el desgaste del
dispositivo de control final.

+ banda muerta

punto de ajuste error dentro del rango de banda


muerta
- banda muerta

tiempo 41026

El cruce por cero es un control de banda muerta que permite que la


instruccin use el error para fines de clculo desde que la variable del
proceso penetra en la banda muerta hasta que la variable del proceso
cruza el punto de ajuste. Una vez que la variable del proceso cruza el
punto de ajuste (el error cruza por cero y cambia de signo), y siempre
que la variable del proceso permanezca en la banda muerta, la salida
no cambiar.

La banda muerta se extiende, por arriba y por debajo del punto de


ajuste, el valor que usted especifica. Introduzca cero para inhibir la
banda muerta. La banda muerta tiene las mismas unidades escaladas
que el punto de ajuste. Se puede usar la banda muerta sin la funcin
de cruce por cero; para ello seleccione la opcin sin cruce por cero
(no zero crossing for deadband) en la ficha Configuration, o
establezca el bit .NOZC en la estructura PID.

Si usted est usando la banda muerta, la variable Control debe ser


REAL o se forzar a 0 cuando el error est dentro de la banda muerta.

Use lmite de salida

Usted puede establecer un lmite de salida (porcentaje de salida) en la


salida de control. Cuando la instruccin detecta que la salida ha
llegado a un lmite, establece un bit de alarma y evita que la salida
exceda el lmite inferior o superior.

514 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones especiales (FBC, DDT, DTR, PID) Captulo 13

Ganancia anticipativa o polarizacin de salida

Usted puede establecer ganancia anticipativa a una perturbacin del


sistema alimentando el valor .BIAS en el valor ganancia anticipativa/
polarizacin de la instruccin PID.

El valor de ganancia anticipativa representa una perturbacin


alimentada en la instruccin PID antes de que la perturbacin tenga
oportunidad de cambiar la variable de proceso. La ganancia
anticipativa a menudo se usa para controlar procesos con un retraso
de transporte. Por ejemplo, un valor de ganancia anticipativa que
representa agua fra vertida en una mezcla tibia podra reforzar el
valor de salida ms rpidamente que si se espera que la variable del
proceso cambie como resultado de la mezcla.

Un valor de polarizacin generalmente se usa cuando no se usa


control integral. En este caso, el valor de polarizacin puede ajustarse
para mantener la salida en el rango requerido a fin de mantener PV
cerca del punto de ajuste.

Lazos en cascada

El PID conecta en cascada dos lazos asignando la salida en porcentaje


del lazo maestro al punto de ajuste del lazo esclavo. El lazo esclavo
convierte automticamente la salida del lazo maestro en las unidades
de ingeniera correctas para el punto de ajuste del lazo esclavo, con
base en los valores del lazo esclavo para .MAXS y .MINS.

Lgica de escalera de rels

Texto estructurado

PID(master,pv_master,0,cv_master,0,0,0);

PID (slave,pv_slave,0,cv_slave,master,0,0);

Publicacin 1756-RM003K-ES-P Julio 2008 515


Captulo 13 Instrucciones especiales (FBC, DDT, DTR, PID)

Control de relacin

Usted puede mantener la relacin entre dos valores usando estos


parmetros:
valor no controlado
valor controlado (el punto de ajuste resultante que se usar para
la instruccin PID)
relacin entre estos dos valores

Lgica de escalera de rels

Texto estructurado

pid_2.sp := uncontrolled_flow * ratio

PID(pid_2,pv_2,tieback_2,cv_2,0,0,0);

Para este parmetro de multiplicacin Introduzca este valor


destination valor controlado
source A valor no controlado
source B relacin

516 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones especiales (FBC, DDT, DTR, PID) Captulo 13

Teora de PID Las siguientes figuras muestran el flujo del proceso para una
instruccin PID.

Proceso PID
SP Error
Mostrado mostrado
como EU como EU

Software A/M
o bien % de
Modo de Accin de polarizacin
estacin A/M de salida
control
Modo A/M de % salida
Auto SP-PV software establecida
Convierte unidades Modo de
(Error) de ingeniera a % (Out%) Auto estacin A/M
+ Clculo PID +
- Error X 100 Auto Convierte % a unidades CV
SP Manual -1
PV-SP maxs-mins Lmite de CV
PVT Manual salida CV%(maxcv-mincv)
+ mincv
No % salida Manual 100
establecida
PV
Mostrado Salida (CV)
S como EU mostrada como
% de escalado
Convierte de binario a EU
Convierte unidades de
unidades de ingeniera valor retenido a %
(PV-mini)(maxs-mins) + mins tieback-mintie
maxi-mini x 100
maxtie-mintie

PV

Proceso PID con lazos maestro/esclavo


Lazo
maestro A/M de software % de
o bien Accin de polarizacin
Modo de estacin A/M control de salida
Modo A/M de % salida
Auto SP-PV software Modo de establecida
Convierte unidades
estacin A/M
+
(Error) de ingeniera a %
Clculo PID (Out%) +
Auto
- Auto
SP -1 Error X 100
Manual (Master.Out)
PV-SP maxs-mins Lmite de
PVT % salida Manual salida
No establecida Manual

Modo A/M de
S software
Auto
Convierte de binario a Convierte
SP unidades de
unidades de ingeniera ingeniera a % Manual
(PV-mini)(maxs-mins) Error X 100 Manual
+ mins PV
maxi-mini maxs-mins Los tems referidos en este cuadro
son parmetros, unidades y modos
que pertenecen al lazo esclavo
designado.
PV
Lazo % de
esclavo Accin de polarizacin
control de salida
% salida
Modo A/M de establecida
Convierte % a unidades (SP) SP-PV Convierte software Modo de
(Master.Out) de ingeniera unidades de
+ ingeniera a % Clculo PID Auto estacin A/M
X (maxs-mins) - +
+ mins -1 Error X 100 Auto Convierte % a unidades CV
100 PV-SP maxs-mins Lmite de
Manual salida CV%(maxcv-mincv)
% salida + mincv
Convierte de binario a Manual 100
unidades de ingeniera establecida
(PV-mini)(maxs-mins)
+ mins Convierte unidades de
maxi-mini
valor retenido a %
tieback-mintie x 100
maxtie-mintie
PV

Publicacin 1756-RM003K-ES-P Julio 2008 517


Captulo 13 Instrucciones especiales (FBC, DDT, DTR, PID)

Notas:

518 Publicacin 1756-RM003K-ES-P Julio 2008


Captulo 14

Instrucciones trigonomtricas
(SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Introduccin Las instrucciones trigonomtricas evalan las operaciones aritmticas


mediante operaciones trigonomtricas.

Si desea Use esta instruccin Disponible en estos lenguajes Vea la pgina


Hallar el seno de un valor. SIN lgica de escalera de rels 520
texto estructurado
bloque de funciones
Hallar el coseno de un valor. COS lgica de escalera de rels 523
texto estructurado
bloque de funciones
Hallar la tangente de un valor. TAN lgica de escalera de rels 526
texto estructurado
bloque de funciones
Hallar el arco seno de un valor. ASN lgica de escalera de rels 529
texto estructurado
ASIN(1) bloque de funciones
Hallar el arco coseno de un valor. ACS lgica de escalera de rels 532
texto estructurado
ACOS(1) bloque de funciones
Hallar el arco tangente de un valor. ATN lgica de escalera de rels 535
texto estructurado
ATAN(1) bloque de funciones
(1) Texto estructurado solamente.

Usted puede mezclar diferentes tipos de datos, pero puede producirse


prdida de exactitud y error de redondeo, y la instruccin requiere
ms tiempo para ejecutarse. Verifique el bit de estado de overflow
(S:V) para determinar si se trunc el resultado.

Para las instrucciones de lgica de escalera de rels, los tipos de datos


que aparecen en letras negritas indican tipos de datos ptimos. Las
instrucciones se ejecutan ms rpidamente y requieren menos
memoria si todos los operandos de instruccin usan el mismo tipo de
datos ptimos, tpicamente DINT o REAL.

519Publicacin 1756-RM003K-ES-P Julio 2008 519


Captulo 14 Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Seno (SIN) La instruccin SIN halla el seno del valor de origen (en radianes) y
almacena el resultado en Destination.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source SINT inmediato hallar el seno de este valor

INT tag

DINT

REAL
Destination SINT tag tag para almacenar el resultado

INT

DINT

REAL

Texto estructurado

dest := SIN(source); Use SIN como una funcin. Esta funcin calcula el seno de source y
almacena el resultado en dest.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


SIN tag FBD_MATH_ADVANCED estructura estructura SIN

Estructura FBD_MATH_ADVANCED

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


Source REAL Entrada a la instruccin matemtica.

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest REAL Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico
para esta salida.

520 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN) Captulo 14

Descripcin: Source debe ser mayor o igual que -205887.4 (-2x215) y menor o
igual que 205887.4 (2x215). El valor resultante en Destination
siempre es mayor o igual que -1 y menor o igual que 1.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna

Ejecucin:

Lgica de escalera de rels

Condicin: Accin:
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador calcula el seno de Source y coloca el resultado en Destination.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008 521


Captulo 14 Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Ejemplo: Calcule el seno de value y coloque el resultado en result.

Lgica de escalera de rels

Texto estructurado

result := SIN(value);

Bloque de funciones

522 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN) Captulo 14

Coseno (COS) La instruccin COS halla el coseno del valor de origen (en radianes) y
almacena el resultado en Destination.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source SINT inmediato hallar el coseno de este valor

INT tag

DINT

REAL
Destination SINT tag tag para almacenar el resultado

INT

DINT

REAL

Texto estructurado

dest := COS(source); Use COS como funcin. Esta funcin calcula el coseno de source y
almacena el resultado en dest.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


COS tag FBD_MATH_ADVANCED estructura estructura COS

Publicacin 1756-RM003K-ES-P Julio 2008 523


Captulo 14 Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Estructura FBD_MATH_ADVANCED

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


Source REAL Entrada a la instruccin matemtica.

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest REAL Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico
para esta salida.

Descripcin: Source debe ser mayor o igual que -205887.4 (-2x215) y menor o
igual que 205887.4 (2x215). El valor resultante en Destination
siempre es mayor o igual que -1 y menor o igual que 1.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador calcula el coseno de Source y coloca el resultado en Destination.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

524 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN) Captulo 14

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Ejemplo: Calcule coseno de value y coloque el resultado en result.

Lgica de escalera de rels

Texto estructurado

result := COS(value);

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008 525


Captulo 14 Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Tangente (TAN) La instruccin TAN halla la tangente del valor de origen (en radianes)
y almacena el resultado en Destination.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source SINT inmediato halla la tangente de este valor

INT tag

DINT

REAL
Destination SINT tag tag para almacenar el resultado

INT

DINT

REAL

Texto estructurado

dest := TAN(source); Use TAN como funcin. Esta funcin calcula la tangente de source y
almacena el resultado en dest.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


TAN tag FBD_MATH_ADVANCED estructura Estructura TAN

526 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN) Captulo 14

Estructura FBD_MATH_ADVANCED

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


Source REAL Entrada a la instruccin matemtica.

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest REAL Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico
para esta salida.

Descripcin: Source debe ser mayor o igual que -102943.7 (-2x214) y menor o
igual que 102943.7 (2x214).

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador calcula la tangente de Source y coloca el resultado en Destination.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008 527


Captulo 14 Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Ejemplo: Calcule la tangente de value y coloque el resultado en result.

Lgica de escalera de rels

Texto estructurado

result := TAN(value);

Bloque de funciones

528 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN) Captulo 14

Arco seno (ASN) La instruccin ASN halla el arco seno del valor de Source y almacena
el resultado en Destination (en radianes).

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source SINT inmediato hallar el arco seno de este valor

INT tag

DINT

REAL
Destination SINT tag tag para almacenar el resultado

INT

DINT

REAL

Texto estructurado

dest := ASIN(source); Use ASIN como funcin. Esta funcin calcula el arco seno de source y
almacena el resultado en dest.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


ASN tag FBD_MATH_ADVANCED estructura estructura ASN

Estructura FBD_MATH_ADVANCED

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


Source REAL Entrada a la instruccin matemtica.

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest REAL Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico
para esta salida.

Publicacin 1756-RM003K-ES-P Julio 2008 529


Captulo 14 Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Descripcin: Source debe ser mayor o igual que -1 y menor o igual que 1. El valor
resultante en Destination siempre es mayor o igual que -/2 y menor
o igual que /2 (donde = 3.141593).

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador calcula el arco seno de Source y coloca el resultado en Destination.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

530 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN) Captulo 14

Ejemplo: Calcule el arco seno de value y coloque el resultado en result.

Lgica de escalera de rels

Texto estructurado

result := ASIN(value);

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008 531


Captulo 14 Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Arco coseno (ACS) La instruccin ACS halla el arco coseno del valor de Source y
almacena el resultado en Destination (en radianes).

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source SINT inmediato hallar el arco coseno de este valor

INT tag

DINT

REAL
Destination SINT tag tag para almacenar el resultado

INT

DINT

REAL

Texto estructurado

dest := ACOS(source); Use ACOS como funcin. Esta funcin calcula el arco coseno de
source y almacena el resultado en dest.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


ACS tag FBD_MATH_ADVANCED estructura estructura ACS

Estructura FBD_MATH_ADVANCED

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


Source REAL Entrada a la instruccin matemtica.

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest REAL Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico
para esta salida.

532 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN) Captulo 14

Descripcin: Source debe ser mayor o igual que -1 y menor o igual que 1. El valor
resultante en Destination siempre es mayor o igual que 0 y menor o
igual que (donde = 3.141593).

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador calcula el arco coseno de Source y coloca el resultado en Destination.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008 533


Captulo 14 Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Ejemplo: Calcule el arco coseno de value y coloque el resultado en result.

Lgica de escalera de rels

Texto estructurado

result := ACOS(value);

Bloque de funciones

534 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN) Captulo 14

Arco tangente (ATN) La instruccin ATN halla el arco tangente del valor de Source y
almacena el resultado en Destination (en radianes).

Operandos:

Lgica de escalera de rels

Operando: Tipo Formato Descripcin


Source SINT inmediato hallar el arco tangente de este valor

INT tag

DINT

REAL
Destination SINT tag tag para almacenar el resultado

INT

DINT

REAL

Texto estructurado

dest := ATAN(source); Use ATAN como funcin. Esta funcin calcula el arco tangente de
source y almacena el resultado en dest.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


ATN tag FBD_MATH_ADVANCED estructura estructura ATN

Estructura FBD_MATH_ADVANCED

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


Source REAL Entrada a la instruccin matemtica.

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest REAL Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico
para esta salida.

Publicacin 1756-RM003K-ES-P Julio 2008 535


Captulo 14 Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Descripcin: El valor resultante en Destination siempre es mayor o igual que -/2 y


menor o igual que /2 (donde = 3.141593).

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador calcula el arco tangente de Source y coloca el resultado en Destination.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

536 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN) Captulo 14

Ejemplo: Calcule el arco tangente de value y coloque el resultado en result.

Lgica de escalera de rels

Texto estructurado

result := ATAN(value);

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008 537


Captulo 14 Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Notas:

538 Publicacin 1756-RM003K-ES-P Julio 2008


Captulo 15

Instrucciones matemticas avanzadas


(LN, LOG, XPY)

Introduccin Las instrucciones matemticas avanzadas incluyen estas instrucciones:

Si desea Use esta instruccin Disponible en estos lenguajes Vea la pgina


Hallar el logaritmo natural de un valor. LN lgica de escalera de rels 540

texto estructurado

bloque de funciones
Hallar el logaritmo base 10 de un valor. LOG lgica de escalera de rels 543

texto estructurado

bloque de funciones
Elevar un valor a la potencia de otro valor. XPY lgica de escalera de rels 546

texto estructurado(1)

bloque de funciones
(1)
No hay una instruccin equivalente en texto estructurado. Use el operador en una expresin.

Usted puede mezclar diferentes tipos de datos, pero puede producirse


prdida de exactitud y error de redondeo, y la instruccin requiere
ms tiempo para ejecutarse. Verifique el bit S:V para determinar si se
trunc el resultado.

Para las instrucciones de lgica de escalera de rels, los tipos de datos


que aparecen en negrita indican tipos de datos ptimos. Las
instrucciones se ejecutan ms rpidamente y requieren menos
memoria si todos los operandos de instruccin usan el mismo tipo de
datos ptimos, tpicamente DINT o REAL.

539Publicacin 1756-RM003K-ES-P Julio 2008 539


Captulo 15 Instrucciones matemticas avanzadas (LN, LOG, XPY)

Logaritmo natural (LN) La instruccin LN halla el logaritmo natural de Source y almacena el


resultado en Destination.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source SINT inmediato hallar el logaritmo natural de este valor

INT tag

DINT

REAL
Destination SINT tag tag para almacenar el resultado

INT

DINT

REAL

Texto estructurado

dest := LN(source); Use LN como funcin. Esta funcin calcula el logaritmo natural de
source y almacena el resultado en dest.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


LN tag FBD_MATH_ADVANCED estructura estructura LN

Estructura FBD_MATH_ADVANCED

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


Source REAL Entrada a la instruccin matemtica.

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.

540 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones matemticas avanzadas (LN, LOG, XPY) Captulo 15

Descripcin: Source debe ser mayor o igual que cero; de lo contrario, se establece
el bit de estado de overflow (S:V). El valor Destination resultante es
mayor o igual que -87.33655 y menor o igual que 88.72284.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador calcula el logaritmo natural de Source y coloca el resultado en
Destination.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008 541


Captulo 15 Instrucciones matemticas avanzadas (LN, LOG, XPY)

Ejemplo: Calcule el logaritmo natural de value y coloque el resultado en result.

Ejemplo de la lgica de escalera de rels

Texto estructurado

result := LN(value);

Bloque de funciones

542 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones matemticas avanzadas (LN, LOG, XPY) Captulo 15

Logaritmo base 10 (LOG) La instruccin LOG halla el logaritmo base 10 de Source y almacena el
resultado en Destination.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source SINT inmediato hallar el logaritmo de este valor

INT tag

DINT

REAL
Destination SINT tag tag para almacenar el resultado

INT

DINT

REAL

Texto estructurado

dest := LOG(source); Use LOG como funcin. Esta funcin calcula el logaritmo de source y
almacena el resultado en dest.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


LOG tag FBD_MATH_ADVANCED estructura Estructura LOG

Publicacin 1756-RM003K-ES-P Julio 2008 543


Captulo 15 Instrucciones matemticas avanzadas (LN, LOG, XPY)

Estructura FBD_MATH_ADVANCED

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


Source REAL Entrada a la instruccin matemtica.

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest REAL Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico
para esta salida.

Descripcin: Source debe ser mayor o igual que cero; de lo contrario, se establece
un bit de estado de overflow (S:V). El valor Destination resultante es
mayor o igual que -37.92978 y menor o igual que 38.53184.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador calcula el logaritmo de Source y coloca el resultado en Destination.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

544 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones matemticas avanzadas (LN, LOG, XPY) Captulo 15

Ejemplo: Calcule el logaritmo de value y coloque el resultado en result.

Lgica de escalera de rels

Texto estructurado

result := LOG(value);

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008 545


Captulo 15 Instrucciones matemticas avanzadas (LN, LOG, XPY)

X a la potencia de Y (XPY) La instruccin XPY eleva Source A (X) a la potencia de Source B (Y) y
almacena el resultado en Destination.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source X SINT inmediato valor base

INT tag

DINT

REAL
Source Y SINT inmediato exponente

INT tag

DINT

REAL
Destination SINT tag tag para almacenar el resultado

INT

DINT

REAL

Texto estructurado

dest := sourceX ** sourceY; Use dos signos de multiplicacin adyacentes como operador
dentro de una expresin. Esta expresin eleva sourceX a la potencia
de sourceY y almacena el resultado en dest.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


XPY tag FBD_MATH estructura estructura XPY

546 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones matemticas avanzadas (LN, LOG, XPY) Captulo 15

Estructura FBD_MATH

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


Source X REAL Valor base.

Vlido = cualquier valor con punto flotante (coma flotante)


Source Y REAL exponente

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest REAL Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico
para esta salida.

Descripcin: Si Source X es negativo, Source Y debe ser un valor entero; de lo


contrario se producir un fallo menor.

La instruccin XPY usa este algoritmo: Destination = X**Y

El controlador evala x0=1 y 0x=0.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo:

Ocurrir un fallo menor si Tipo de fallo Cdigo de fallo


Source X es negativo y Source Y no es un valor 4 4
entero

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador eleva Source X a la potencia de Source Y y coloca el resultado en
Destination.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008 547


Captulo 15 Instrucciones matemticas avanzadas (LN, LOG, XPY)

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Ejemplo: La instruccin XPY eleva value_1 a la potencia de value_2 y coloca el


resultado en result.

Lgica de escalera de rels

Texto estructurado

result := (value_1 value_2);

Bloque de funciones

548 Publicacin 1756-RM003K-ES-P Julio 2008


Captulo 16

Instrucciones de conversin matemtica


(DEG, RAD, TOD, FRD, TRN, TRUNC)

Introduccin Las instrucciones de conversin matemtica convierten valores.

Si desea Use esta instruccin Disponible en estos lenguajes Vea la pgina


Convertir radianes en grados. DEG lgica de escalera de rels 550

texto estructurado

bloque de funciones
Convertir grados en radianes. RAD lgica de escalera de rels 553

texto estructurado

bloque de funciones
Convertir un valor entero en un valor BCD. TOD lgica de escalera de rels 556

bloque de funciones
Convertir un valor BCD en un valor entero. FRD lgica de escalera de rels 559

bloque de funciones
Retirar la parte fraccionaria de un valor. TRN lgica de escalera de rels 561

TRUNC(1) texto estructurado

bloque de funciones
(1)
Texto estructurado solamente.

Usted puede mezclar diferentes tipos de datos, pero puede producirse


prdida de exactitud y error de redondeo, y la instruccin requiere
ms tiempo para ejecutarse. Verifique el bit S:V para determinar si se
trunc el resultado.

Para las instrucciones de lgica de escalera de rels, los tipos de datos


que aparecen en negrita indican tipos de datos ptimos. Las
instrucciones se ejecutan ms rpidamente y requieren menos
memoria si todos los operandos de instruccin usan el mismo tipo de
datos ptimos, tpicamente DINT o REAL.

549Publicacin 1756-RM003K-ES-P Julio 2008 549


Captulo 16 Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Grados (DEG) La instruccin DEG convierte Source (radianes) en grados y almacena


el resultado en Destination.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source SINT inmediato valor que se va a convertir en grados

INT tag

DINT

REAL
Destination SINT tag tag para almacenar el resultado

INT

DINT

REAL

Texto estructurado

dest := DEG(source); Use DEG como funcin. Esta funcin convierte source en grados y
almacena el resultado en dest.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


DEG tag FBD_MATH_ADVANCED estructura Estructura DEG

Estructura FBD_MATH_ADVANCED

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


Source REAL Entrada a la instruccin de conversin.

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest REAL Resultado de la instruccin de conversin. Se establecen indicadores de estado aritmtico
para esta salida.

550 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC) Captulo 16

Descripcin: La instruccin DEG usa este algoritmo:


Source*180/ (donde = 3.141593)

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador convierte Source en grados y coloca el resultado en Destination.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008 551


Captulo 16 Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Ejemplo: Convierta value en grados y coloque el resultado en result.

Lgica de escalera de rels

Texto estructurado

result := DEG(value);

Bloque de funciones

552 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC) Captulo 16

Radianes (RAD) La instruccin RAD convierte Source (grados) en radianes y almacena


el resultado en Destination.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source SINT inmediato valor que se va a convertir en radianes

INT tag

DINT

REAL
Destination SINT tag tag para almacenar el resultado

INT

DINT

REAL

Texto estructurado

dest := RAD(source); Use RAD como funcin. Esta funcin convierte source a radianes y
almacena el resultado en dest.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


RAD tag FBD_MATH_ADVANCED estructura estructura RAD

Estructura FBD_MATH_ADVANCED

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


Source REAL Entrada a la instruccin de conversin.

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest REAL Resultado de la instruccin de conversin. Se establecen indicadores de estado aritmtico
para esta salida.

Publicacin 1756-RM003K-ES-P Julio 2008 553


Captulo 16 Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Descripcin: La instruccin RAD usa este algoritmo:


Source*/180 (donde = 3.141593)

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador convierte Source en radianes y coloca el resultado en Destination.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

554 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC) Captulo 16

Ejemplo Convierta value en radianes y coloque el resultado en result.

Lgica de escalera de rels

Texto estructurado

result := RAD(value);

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008 555


Captulo 16 Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Convertir a BCD (TOD) La instruccin TOD convierte un valor decimal (0 Source


99,999,999) en un valor BCD y almacena el resultado en Destination.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source SINT inmediato valor que se va a convertir en decimal

INT tag

DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Destination SINT tag almacena el resultado

INT

DINT

Bloque de funciones

Operando Tipo Formato Descripcin


TOD tag FBD_CONVERT estructura estructura TOD

Estructura FBD_CONVERT

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


Source DINT Entrada a la instruccin de conversin.

Vlido = cualquier nmero entero


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest DINT Resultado de la instruccin de conversin. Se establecen indicadores de estado aritmtico
para esta salida.

Descripcin: BCD es el sistema de nmeros decimales codificados en binario que


expresa dgitos decimales individuales (0-9) en una notacin binaria
de 4 bits.

Si usted introduce un Source negativo, la instruccin genera un fallo


menor y borra el Destination.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

556 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC) Captulo 16

Condiciones de fallo:

Ocurrir un fallo menor si Tipo de fallo Cdigo de fallo


Source < 0 4 4

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera

no no
origen < 0 origen > 99,999,999 convertir origen en BCD

s s

S:V se establece a 1

la condicin de salida de
rengln se establece como
verdadera

fin

condicin de entrada de rengln es verdadera El controlador convierte Source en BCD y coloca el resultado en Destination.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008 557


Captulo 16 Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Ejemplo: La instruccin TOD convierte value_1 en un valor BCD y coloca el


resultado en result_a.

Lgica de escalera de rels

Bloque de funciones

558 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC) Captulo 16

Convertir a entero (FRD) La instruccin FRD convierte un valor BCD (Source) en un valor
decimal y almacena el resultado en Destination.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source SINT inmediato valor que se va a convertir en decimal

INT tag

DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Destination SINT tag almacena el resultado

INT

DINT

Bloque de funciones

Operando Tipo Formato: Descripcin


FRD tag FBD_CONVERT estructura estructura FRD

Estructura FBD_CONVERT

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


Source DINT Entrada a la instruccin de conversin.

Vlido = cualquier nmero entero


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest DINT Resultado de la instruccin de conversin. Se establecen indicadores de estado aritmtico
para esta salida.

Descripcin: La instruccin FRD convierte un valor BCD (Source) en un valor


decimal y almacena el resultado en Destination.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna

Publicacin 1756-RM003K-ES-P Julio 2008 559


Captulo 16 Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador convierte Source en un valor decimal y coloca el resultado en Destination.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

Ejemplo: La instruccin FRD convierte value_a en un valor decimal y coloca el


resultado en result_1.

Lgica de escalera de rels

Bloque de funciones

560 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC) Captulo 16

Truncar (TRN) La instruccin TRN retira (trunca) la parte fraccionaria de Source y


almacena el resultado en Destination.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source REAL inmediato valor que se va a truncar

tag
Destination SINT tag tag para almacenar el resultado

INT

DINT

REAL

Texto estructurado

dest := TRUNC(source); Use TRUNC como funcin. Esta funcin trunca source y almacena el
resultado en dest.

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Operando Tipo Formato Descripcin


TRN tag FBD_TRUNCATE estructura estructura TRM

Estructura FBD_TRUNCATE

Parmetro de Tipo de datos Descripcin


entrada
EnableIn BOOL Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.

La opcin predeterminada es establecido.


Source REAL Entrada a la instruccin de conversin.

Vlido = cualquier valor con punto flotante (coma flotante)


Parmetro de salida Tipo de datos Descripcin
EnableOut BOOL La instruccin produjo un resultado vlido.
Dest DINT Resultado de la instruccin de conversin. Se establecen indicadores de estado aritmtico
para esta salida.

Publicacin 1756-RM003K-ES-P Julio 2008 561


Captulo 16 Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Descripcin: El truncado no redondea el valor; en lugar de ello, la parte no


fraccionaria permanece igual, independientemente del valor de la
parte fraccionaria.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

Condiciones de fallo: ninguna

Ejecucin:

Lgica de escalera de rels

Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador retira la parte fraccionaria de Source y coloca el resultado en Destination.

La condicin de salida de rengln se establece como verdadera.


post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones

Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.

EnableOut se establece.
post-escn Ninguna.

562 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC) Captulo 16

Ejemplo: Retire la parte fraccionaria de float_value_1, dejando igual la parte no


fraccionaria, y coloque el resultado en float_value_1_truncated.

Lgica de escalera de rels

Texto estructurado

float_value_1_truncated := TRUNC(float_value_1);

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008 563


Captulo 16 Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Notas:

564 Publicacin 1756-RM003K-ES-P Julio 2008


Captulo 17

Instrucciones para puerto serie ASCII


(ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Introduccin Use las instrucciones para puerto serie ASCII a fin de leer y escribir
caracteres ASCII.

IMPORTANTE Para usar las instrucciones del puerto serie ASCII, usted debe
configurar el puerto serie del controlador. Consulte el
documento Logix5000 Controllers Common Procedures,
publicacin 1756-PM001.

Si desea Por ejemplo Use esta Disponible en estos Vea la


instruccin lenguajes pgina
determinar cundo el bfer contiene ver si hay datos que tienen caracteres ABL lgica de escalera de 570
caracteres de terminacin de terminacin rels

texto estructurado
contar los caracteres en el bfer verificar el nmero requerido de ACB lgica de escalera de 573
caracteres antes de leer el bfer rels

texto estructurado
borrar el bfer borrar datos antiguos del bfer al ACL lgica de escalera de 575
momento de la puesta en marcha rels
borrar las instrucciones del puerto
serie ASCII que actualmente se estn sincronizar el bfer con un
dispositivo texto estructurado
ejecutando o estn en la cola.
obtener el estado de las lneas de hacer que el mdem cuelgue AHL lgica de escalera de 577
control del puerto serie rels
activar y desactivar la seal DTR
texto estructurado
activar y desactivar la seal RTS
leer un nmero fijo de caracteres leer datos desde un dispositivo que ARD lgica de escalera de 581
enva el mismo nmero de caracteres rels
durante cada transmisin
texto estructurado
leer un nmero variable de leer datos desde un dispositivo que ARL lgica de escalera de 585
caracteres, inclusive el primer enva un nmero variable de rels
conjunto de caracteres de caracteres en cada transmisin
terminacin texto estructurado
enviar caracteres y aadir enviar mensajes que siempre usan AWA lgica de escalera de 589
automticamente uno o dos los mismos caracteres de terminacin rels
caracteres adicionales para marcar
el final de los datos texto estructurado
enviar caracteres enviar mensajes que usan una AWT lgica de escalera de 594
variedad de caracteres de rels
terminacin
texto estructurado

565Publicacin 1756-RM003K-ES-P Julio 2008 565


Captulo 17 Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Ejecucin de la instruccin

Las instrucciones de puerto serie ASCII se ejecutan de manera


asncrona con el escn de la lgica:

Lgica Cola ASCII Tarea ASCII


La condicin de entrada
Instruccin 1 La instruccin en la
de rengln de
parte superior de la
instruccin cambia de Instruccin 2 cola se ejecuta.
falsa a verdadera
Instruccin 3

Instruccin 4
Los datos fluyen
La instruccin entra en entre la tarea y el
la cola ASCII. bfer.

Los datos fluyen entre el


bfer y el puerto serie.
Puerto serie Bfer

Cada instruccin de puerto serie ASCII (excepto ACL) usa una


estructura SERIAL_PORT_CONTROL para realizar las siguientes
funciones:

controlar la ejecucin de la instruccin


proporcionar informacin de estado acerca de la instruccin

566 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Captulo 17

El siguiente diagrama de temporizacin muestra los cambios en los


bits de estado mientras la instruccin ABL prueba el bfer en busca de
caracteres de terminacin.
escn escn escn escn

condicin de falsa verdadera falsa verdadera falsa


entrada de rengln

.EN desacti- activado desactivado activado desacti-


vado vado

.EU desacti- activado


vado

.RN desacti- acti- desacti- acti- desacti-


vado vado
vado vado vado

.DN o .ER desacti- activado desacti- activado


vado vado

.FD desacti- activado desacti- activado


vado vado

.EM desacti- activado desactivado activado


vado

entra en la cola restablece los bits de estado

se ejecuta cuando se escanean y el bit


.DN o .ER est establecido,
en este ejemplo, se establece el bit .EM
encuentra caracteres
de terminacin

Publicacin 1756-RM003K-ES-P Julio 2008 567


Captulo 17 Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

La cola ASCII retiene hasta 16 instrucciones. Cuando la cola est llena,


una instruccin intenta entrar en la cola durante cada escn
subsiguiente de la instruccin, segn se muestra a continuacin:

escn escn escn escn

condicin de falsa verdadera falsa


entrada de rengln

.EN desacti- activado


vado

.EU desacti- activado


vado

intenta entrar en la cola, pero la cola est llena

entra en la cola

Cdigos de error ASCII


Si una instruccin del puerto serie ASCII no logra ser ejecutada, el
miembro ERROR de su estructura SERIAL_PORT_CONTROL contendr
uno de los siguientes cdigos de error hexadecimal:

Este cdigo Indica que


hexadecimal
16#2 El mdem se desconect.
16#3 La seal CTS se perdi durante la comunicacin.
16#4 El puerto serie estaba en el modo de sistema.
16#A Antes de que se ejecutara la instruccin, se estableci el bit .UL. Esto impide la ejecucin de la instruccin.
16#C El controlador cambi del modo de marcha al modo de programacin. Esto detiene la ejecucin de una instruccin de
puerto serie ASCII y borra la cola.
16#D En el cuadro de dilogo Controller Properties, ficha User Protocol, se cambiaron y se aplicaron los parmetros de
tamao de bfer o modo de eco. Esto detiene la ejecucin de una instruccin de puerto serie ASCII y borra la cola.
16#E Instruccin ACL ejecutada.
16#F La configuracin del puerto serie cambi del modo de usuario al modo de sistema. Esto detiene la ejecucin de una
instruccin de puerto serie ASCII y borra la cola de instrucciones de puerto serie ASCII.
16#51 El valor LEN del tag de cadena es negativo o mayor que el tamao de DATA del tag de cadena.
16#54 La longitud de control del puerto serie es mayor que el tamao del bfer.
16#55 La longitud de control del puerto serie es negativa o mayor que el tamao de Source o Destination.

568 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Captulo 17

Tipos de datos de cadena


Los caracteres ASCII se almacenan en tags que usan un tipo de datos
de cadena.
Se puede usar el tipo de datos STRING predeterminado, que
almacena hasta 82 caracteres.
Usted puede crear un nuevo tipo de datos de cadena que
almacene menos o ms caracteres.

Para crear un nuevo tipo de datos de cadena, consulte el documento


Logix5000 Controllers Common Procedures, publicacin 1756-PM001.

Cada tipo de datos de cadena contiene los siguientes miembros:

Nombre Tipo de datos Descripcin Notas


LEN DINT nmero de caracteres El LEN se actualiza automticamente con el nuevo conteo de los caracteres
en la cadena cuando usted:

usa el cuadro de dilogo String Browser para introducir caracteres


usa las instrucciones que leen, convierten o manipulan una cadena
El LEN muestra la longitud de la cadena actual. El miembro DATA puede contener
caracteres adicionales antiguos, los cuales no se incluyen en el conteo del LEN.
Datos Matriz SINT caracteres ASCII de la Para obtener acceso a los caracteres de la cadena, utilice el nombre del tag.
cadena Por ejemplo, para acceder a los caracteres del tag string_1, introduzca
string_1.
Cada elemento de la matriz DATA contiene un carcter.
Usted puede crear nuevos tipos de datos de cadena que almacenen menos o
ms caracteres.

Publicacin 1756-RM003K-ES-P Julio 2008 569


Captulo 17 Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Prueba ASCII para lnea de La instruccin ABL cuenta los caracteres en el bfer, inclusive el
primer carcter de terminacin.
bfer (ABL)
Operandos:

Lgica de escalera de rels

ABL
ABL Operando Tipo Formato Descripcin
ASCII
ASCIITest
TestFor
ForBuffer Line
Buffer Line EN
Channel
Channel ? DN Channel DINT inmediato 0
SerialPort
SerialPortControl
Control ? ER
ER
Character
CharacterCount
Count ?
tag
Serial Port SERIAL_PORT_ tag tag que controla la operacin

Control CONTROL
Character DINT inmediato 0
Count

Durante la ejecucin, muestra el nmero


de caracteres en el bfer, incluso el
primer conjunto de caracteres de
terminacin.

Texto estructurado
ABL(Channel
Los operandos son iguales a los de la instruccin ABL de lgica de
SerialPortControl);
escalera de rels. Usted accede al valor de conteo de caracteres
mediante el miembro .POS de la estructura SERIAL_PORT_CONTROL.

Estructura SERIAL_PORT_CONTROL

Mnemnico Tipo de datos Descripcin


.EN BOOL El bit de habilitacin indica que la instruccin est habilitada.
.EU BOOL El bit de cola indica que la instruccin entr en la cola ASCII.
.DN BOOL El bit de efectuado indica que ha finalizado la instruccin, pero es asncrono respecto al
escn de la lgica.
.RN BOOL El bit de ejecucin indica que la instruccin se est ejecutando.
.EM BOOL El bit de vaco indica que finaliz la instruccin, pero es sncrono respecto al escn de la
lgica.
.ER BOOL El bit de error indica que la instruccin fall (errores).
.FD BOOL El bit de encontrado indica que la instruccin encontr el carcter o los caracteres de
terminacin.
.POS DINT La posicin determina el nmero de caracteres en el bfer, inclusive el primer conjunto de
caracteres de terminacin. La instruccin slo retorna este nmero despus de que
encuentra el carcter o los caracteres de terminacin.
.ERROR DINT El error contiene un valor hexadecimal que identifica la causa del error.

570 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Captulo 17

Descripcin La instruccin ABL busca en el bfer el primer conjunto de caracteres


de terminacin. Si la instruccin encuentra los caracteres de
terminacin, sta:

establece el bit .FD


cuenta los caracteres en el bfer, inclusive el primer conjunto de
caracteres de terminacin

En el cuadro de dilogo Controller Properties, ficha User Protocol, se


definen los caracteres ASCII que la instruccin considera como
caracteres de terminacin.

Para programar la instruccin ABL, siga estas pautas:

1. Configure el puerto serie del controlador en modo de usuario y


defina los caracteres que sirven como caracteres de terminacin.

2. sta es una instruccin transicional:


En la lgica de escalera de rels, cambie la condicin de
entrada del rengln de borrado a establecido cada vez que
deba ejecutarse la instruccin.
En texto estructurado, condicione la instruccin de manera
que slo se ejecute cuando ocurra una transicin.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta cuando la condicin de n. a.
rengln es verdadera entrada del rengln alterna de borrado a
establecido.

La condicin de salida de rengln se establece como


verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.

Publicacin 1756-RM003K-ES-P Julio 2008 571


Captulo 17 Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


ejecucin de la instruccin La instruccin cuenta los caracteres en el bfer.

El bit .EN se establece.

Los bits de estado restantes, excepto .UL, se borran.

La instruccin trata de entrar en la cola ASCII.


post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

Ejemplo: Pruebe continuamente el bfer para determinar si contiene los


caracteres de terminacin.

Lgica de escalera de rels

MV_line.EN
MV_line.EN ABL
ABL
/ ASCII
ASCII TestTest For Buffer
For Buffer Line Line EN
EN
Channel
Channel 0 DN
DN
SerialPort
SerialPortControl
Control MV_line.E
MV_line ER
ER
Character
Character Count
Count 0

Texto estructurado

ABL(0,MV_line);

572 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Captulo 17

Caracteres ASCII en el La instruccin ACB cuenta los caracteres en el bfer.


bfer (ACB)
Operandos:

Lgica de escalera de rels


Operando Tipo Formato Introduzca
ACB
ACB
ASCII
ASCIIChars
CharsininBuffer
Buffer EN
EN Channel DINT inmediato 0
Channel
Channel ? DN
DN
SerialPort
SerialPortControl
Control ? ER
ER
Character
CharacterCount
Count ? tag
Serial Port SERIAL_PORT_ tag tag que controla la operacin

Control CONTROL
Character DINT inmediato 0
Count

Durante la ejecucin, muestra el nmero


de caracteres en el bfer.

Texto estructurado
ACB(Channel Los operandos son los mismos que para la instruccin ACB de lgica
SerialPortControl); de escalera de rels. Sin embargo, usted especifica el valor de conteo
de caracteres al acceder al miembro .POS de la estructura
SERIAL_PORT_CONTROL, en lugar de incluir el valor en la lista de
operandos.

Estructura SERIAL_PORT_CONTROL
Mnemnico Tipo de datos Descripcin
.EN BOOL El bit de habilitacin indica que la instruccin est habilitada.
.EU BOOL El bit de cola indica que la instruccin entr en la cola ASCII.
.DN BOOL El bit de efectuado indica que ha finalizado la instruccin, pero es asncrono respecto al
escn de la lgica.
.RN BOOL El bit de ejecucin indica que la instruccin se est ejecutando.
.EM BOOL El bit de vaco indica que finaliz la instruccin, pero es sncrono respecto al escn de la
lgica.
.ER BOOL El bit de error indica que la instruccin fall (errores).
.FD BOOL El bit de encontrado indica que la instruccin encontr un carcter.
.POS DINT La posicin determina el nmero de caracteres en el bfer, inclusive el primer conjunto de
caracteres de terminacin.
.ERROR DINT El error contiene un valor hexadecimal que identifica la causa del error.

Publicacin 1756-RM003K-ES-P Julio 2008 573


Captulo 17 Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Descripcin: La instruccin ACB cuenta los caracteres en el bfer.

Para programar la instruccin ACB, siga estas pautas:

1. Configure el puerto serie del controlador en modo de usuario.

2. sta es una instruccin transicional:


En la lgica de escalera de rels, cambie la condicin de
entrada del rengln de borrado a establecido cada vez que
deba ejecutarse la instruccin.
En texto estructurado, condicione la instruccin de manera
que slo se ejecute cuando ocurra una transicin.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


preescn La condicin de salida de rengln se establece como falsa. Ninguna.
condicin de entrada de La condicin de salida de rengln se establece como falsa. n. a.
rengln es falsa
condicin de entrada de La instruccin se ejecuta cuando la condicin de entrada del n. a.
rengln es verdadera rengln alterna de borrado a establecido.

La condicin de salida de rengln se establece como


verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.
La instruccin se ejecuta.
ejecucin de la instruccin La instruccin cuenta los caracteres en el bfer.
El bit .EN se establece.
Los bits de estado restantes, excepto .UL, se borran.
La instruccin trata de entrar en la cola ASCII.
post-escn La condicin de salida de rengln se establece como falsa. Ninguna.

Ejemplo: Cuente continuamente los caracteres en el bfer.

Lgica de escalera de rels

bar_code_count.EN
bar_code_count.EN ACB
ACB
/ ASCII
ASCII Chars
Chars in Buffer
in Buffer EN
EN
Channel
Channel 0 DN
DN
SerialPort
SerialPort Control
Control bar_code_count.EN
bar_code_count ER
ER
Character
Character Count
Count 0

Texto estructurado

ACB(0,bar_code_count);

574 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Captulo 17

Borrar ASCII bfer (ACL) La instruccin ACL borra inmediatamente el bfer y la cola ASCII.

Operandos:

Lgica de escalera de rels

ACL
ACL Operando Tipo Formato Introduzca
Borrar ASCII
ASCII Clear bfer
Buffer
Canal
Channel ?
Borrar Serial
Clear lecturaPort
de puerto
Read serie ?
Channel DINT inmediato 0
Borrar Serial
Clear escritura deWrite
Port puerto serie ?
tag
Clear Serial BOOL inmediato Para borrar el bfer y eliminar las
Port Read instrucciones ARD y ARL de la cola,
tag introduzca Yes.
Clear Serial BOOL inmediato Para eliminar las instrucciones AWA y AWT
Port Write de la cola, introduzca Yes.
tag

Texto estructurado
ACL(Channel,
Los operandos son iguales a los de la instruccin ACL de lgica de
ClearSerialPortRead,
ClearSerialPortWrite); escalera de rels.

Descripcin: La instruccin ACL inmediatamente realiza una de las dos siguientes


acciones o ambas:
borra el bfer de caracteres y borra la cola ASCII de
instrucciones de lectura
borra la cola ASCII de instrucciones de escritura

Para programar la instruccin ACL, siga estas pautas:

1. Configure el puerto serie del controlador:


Si su aplicacin Entonces
usa instrucciones ARD o ARL Seleccione el modo de usuario
no usa instrucciones ARD o ARL Seleccione ya sea el modo de sistema o de
usuario

2. Para determinar si una instruccin se retir de la cola o se


cancel, examine los siguientes componentes de la instruccin
apropiada:
El bit .ER se establece
El miembro .ERROR es 16#E

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Publicacin 1756-RM003K-ES-P Julio 2008 575


Captulo 17 Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Ejecucin:

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin La instruccin borra las instrucciones especificadas y los bferes.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

Ejemplo: Cuando el controlador entre en el modo de marcha, borre el bfer as


como la cola ASCII.

Lgica de escalera de rels

S:FS ACL
ACL
ASCII
Borrar Clear Buffer
ASCII bfer
Channel
Canal 0
Clear
BorrarSerial
lectura Port Read
de puerto serie 1
BorrarSerial
Clear escrituraPort
de puerto
Writeserie 1

Texto estructurado
osri_1.InputBit := S:FS;

OSRI(osri_1);

IF (osri_1.OutputBit) THEN

ACL(0,0,1);

END_IF;

576 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Captulo 17

Lneas de handshake ASCII La instruccin AHl obtiene el estado de las lneas de control, y activa
o desactiva las seales DTR y RTS.
(AHL)
Operandos:

Lgica de escalera de rels

AHL
AHL
ASCII Handshake
ASCII HandshakeLines
Lines EN
EN
Channel
Channel ?
AND Mask ? DN
DN
??
OR Mask
OR Mask ? ER
ER
??
SerialPort Control
SerialPort Control ?
Channel Status(Decimal)
Channel Status(Decimal) ?

Operando Tipo Formato Introduzca


Channel DINT inmediato 0

tag
ANDMask DINT inmediato Remtase a la descripcin.

tag
ORMask DINT inmediato

tag
Serial Port Control SERIAL_PORT_CONTROL tag tag que controla la operacin
Channel Status (Decimal) DINT inmediato 0

Durante la ejecucin, muestra el estado de las lneas de


control.
Para el estado de esta lnea Examine este bit:
de control
CTS 0
RTS 1
DSR 2
DCD 3
DTR 4
Recibi el carcter XOFF 5

Texto estructurado
AHL(Channel,ANDMask,ORMask,
Los operandos son iguales que los de la instruccin AHL de lgica de
SerialPortControl);
escalera de rels. Sin embargo, se especifica el valor de estado del
canal accediendo al miembro .POS de la estructura
SERIAL_PORT_CONTROL, y no incluyendo el valor en la lista de
operandos.

Publicacin 1756-RM003K-ES-P Julio 2008 577


Captulo 17 Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Estructura SERIAL_PORT_CONTROL

Mnemnico Tipo de datos Descripcin


.EN BOOL El bit de habilitacin indica que la instruccin est habilitada.
.EU BOOL El bit de cola indica que la instruccin entr en la cola ASCII.
.DN BOOL El bit de efectuado indica que ha finalizado la instruccin, pero es asncrono respecto al
escn de la lgica.
.RN BOOL El bit de ejecucin indica que la instruccin se est ejecutando.
.EM BOOL El bit de vaco indica que finaliz la instruccin, pero es sncrono respecto al escn de la
lgica.
.ER BOOL El bit de error indica que la instruccin fall (errores).
.FD BOOL El bit de encontrado no se aplica a esta instruccin.
.POS DINT La posicin almacena el estado de las lneas de control.
.ERROR DINT El error contiene un valor hexadecimal que identifica la causa del error.

Descripcin: La instruccin AHL puede:


obtener el estado de las lneas de control del puerto serie
activar o desactivar la seal de terminal de datos listo (DTR)
activar o desactivar la seal de solicitud de envo (RTS)

Para programar la instruccin AHL, siga estas pautas:

1. Configure el puerto serie del controlador:

Si su aplicacin Entonces
usa instrucciones ARD o ARL Seleccione el modo de usuario
no usa instrucciones ARD o ARL Seleccione ya sea el modo de sistema o de
usuario

2. Use la tabla siguiente para seleccionar los valores correctos para


los operandos ANDMask y ORMask:

Para poner Y poner RTS en Introduzca este E introduzca este


DTR en el el estado valor ANDMask valor ORMask
estado siguiente:
siguiente
desactivado desactivado 3 0
activado 1 2
sin cambio 1 0
activado desactivado 2 1
activado 0 3
sin cambio 0 1
sin cambio desactivado 2 0
activado 0 2
sin cambio 0 0

578 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Captulo 17

3. sta es una instruccin transicional:


En la lgica de escalera de rels, cambie la condicin de
entrada del rengln de borrado a establecido cada vez que
deba ejecutarse la instruccin.
En texto estructurado, condicione la instruccin de manera
que slo se ejecute cuando ocurra una transicin.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:

Tipo Cdigo Causa Mtodo de recuperacin


4 57 La instruccin AHL no se ejecut porque el puerto serie Realice una de los siguientes acciones:
est configurado para no usar handshaking.
Cambie el ajuste de la lnea de control del puerto
serie.
Elimine la instruccin AHL.

Ejecucin:

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta cuando la condicin de n. a.
rengln es verdadera entrada del rengln cambia de borrado a
establecido.

La condicin de salida de rengln se establece como


verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin La instruccin obtiene el estado de la lnea de control y activa o desactiva las seales DTR y RTS.

El bit .EN se establece.

Los bits de estado restantes, excepto .UL, se borran.

La instruccin trata de entrar en la cola ASCII.


post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

Publicacin 1756-RM003K-ES-P Julio 2008 579


Captulo 17 Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Ejemplo: Cuando get_control_line_status se establece, obtenga el estado de las


lneas de control del puerto serie y almacene el estado en el operando
Channel Status. Para ver el estado de una lnea de control especfica,
monitoree el tag SerialPortControl y ample el miembro POS.

Lgica de escalera de rels

get_control_line_status
get_control_line_status AHL
AHL
ASCII Handshake Lines EN
EN
ASCII Handshake Lines
Channel 0
Channel
AND Mask 0 DN
DN
AND Mask
OR Mask
OR Mask 0 ER
ER

SerialPort Control
SerialPort Control serial_port
serial_port
Channel Status(Decimal)
Channel Status(Decimal) 29

Texto estructurado

osri_1.InputBit := get_control_line_status;

OSRI(osri_1);

IF (osri_1.OutputBit) THEN

AHL(0,0,0,serial_port);

END_IF;

580 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Captulo 17

Lectura ASCII (ARD) La instruccin retira caracteres del bfer y los almacena en
Destination.

Operandos:

Lgica de escalera de rels


ARD
ARD
ASCII Read
ASCII Read EN
EN
Channel
Channel ?
Destination
Destination ? DN
DN
??
SerialPortControl
SerialPort Control ? ER
ER
SerialPort
SerialPortControl
Control Length
Length ?
Characters
Characters Read
Read ?

Operando Tipo Formato Introduzca Notas


Channel DINT inmediato 0

tag
Destination cadena tag el tag al cual se transfieren Si desea comparar, convertir o manipular los
los caracteres (lectura): caracteres, use un tipo de datos de cadena.
SINT Los tipos de datos de cadena son:
Para un tipo de datos de
INT cadena, introduzca el tipo de datos STRING predeterminado
nombre del tag.
DINT cualquier tipo de datos nuevo que usted
Para una matriz SINT, cree
INT o DINT, introduzca
el primer elemento de la
matriz.
Serial Port SERIAL_PORT_ tag tag que controla la
operacin
Control CONTROL
Serial Port DINT inmediato nmero de caracteres a Serial Port Control Length debe ser menor o
transferir al destino igual que el tamao de Destination.
Control Length (lectura) Si desea establecer Serial Port Control
Length igual que el tamao de Destination,
introduzca 0.
Characters Read DINT inmediato 0 Durante la ejecucin, muestra el nmero de
caracteres ledos.

Texto estructurado
ARD(Channel,Destination,
Los operandos son los mismos que para la instruccin ARD de lgica
SerialPortControl);
de escalera de rels. Sin embargo, usted especifica los valores de
Serial Port Control Length y Characters Read accediendo a los
miembros .LEN y .POS de la estructura SERIAL_PORT_CONTROL, en
lugar de incluir los valores en la lista de operandos.

Publicacin 1756-RM003K-ES-P Julio 2008 581


Captulo 17 Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Estructura SERIAL_PORT_CONTROL

Mnemnico Tipo de datos Descripcin


.EN BOOL El bit de habilitacin indica que la instruccin est habilitada.
.EU BOOL El bit de cola indica que la instruccin entr en la cola ASCII.
.DN BOOL El bit de efectuado indica que ha finalizado la instruccin, pero es asncrono respecto al
escn de la lgica.
.RN BOOL El bit de ejecucin indica que la instruccin se est ejecutando.
.EM BOOL El bit de vaco indica que finaliz la instruccin, pero es sncrono respecto al escn de la
lgica.
.ER BOOL El bit de error indica que la instruccin fall (errores).
.FD BOOL El bit de encontrado no se aplica a esta instruccin.
.LEN DINT La longitud indica el nmero de caracteres a transferir al destino (lectura).
.POS DINT La posicin muestra el nmero de caracteres que se leyeron.
.ERROR DINT El error contiene un valor hexadecimal que identifica la causa del error.

Descripcin: La instruccin ARD retira el nmero especificado de caracteres del


bfer y los almacena en Destination.
La instruccin ARD contina ejecutndose hasta eliminar el
nmero especificado de caracteres (Serial Port Control Length).
Mientras que la instruccin ARD se est ejecutando, ninguna
otra instruccin de puerto serie ASCII se ejecuta.

Para programar la instruccin ARD, siga estas pautas:

1. Configure el puerto serie del controlador para el modo de


usuario.

2. Use los resultados de una instruccin ACB para activar la


instruccin ARD. As evita que la instruccin ARD retenga la cola
ASCII mientras espera el nmero requerido de caracteres.

3. sta es una instruccin transicional:


En la lgica de escalera de rels, cambie la condicin de
entrada del rengln de borrado a establecido cada vez que
deba ejecutarse la instruccin.
En texto estructurado, condicione la instruccin de manera
que slo se ejecute cuando ocurra una transicin.

4. Para activar una accin subsiguiente cuando se ha efectuado la


instruccin, examine el bit EM.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

582 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Captulo 17

Ejecucin:
Condicin Accin de lgica de escalera de rels Accin de texto estructurado
preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta cuando la condicin de n. a.
rengln es verdadera entrada del rengln cambia de borrado a
establecido.

La condicin de salida de rengln se establece como


verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin La instruccin retira caracteres del bfer y los almacena en el destino.

El bit .EN se establece.

Los bits de estado restantes, excepto .UL, se borran.

La instruccin trata de entrar en la cola ASCII.


post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

Ejemplo: Un lector de cdigos de barra enva cdigos de barra al puerto serie


(canal 0) del controlador. Cada cdigo de barra contiene
24 caracteres. Para saber que el controlador ha recibido un cdigo de
barra, la instruccin ACB cuenta continuamente los caracteres en el
bfer. Cuando el bfer contiene por lo menos 24 caracteres, significa
que el controlador ha recibido un cdigo de barra. La instruccin ARD
pasa el cdigo de barras al miembro DATA del tag bag_bar_code, que
es una cadena.

Lgica de escalera de rels


bar_code_count.EN
bar_code_count.EN ACB
ACB
/ ASCII
ASCII Chars
Chars in Buffer
in Buffer EN
EN
Channel
Channel 0 DN
DN
SerialPort
SerialPort Control
Control bar_code_count.EN
bar_code_count ER
ER
Character
Character Count
Count 0

GEQ
GEQ ARD
ARD
GrtrThan
Grtr Thano Eqlor(A>=B)
Eql (A>=B) ASCII Read
ASCII Read EN
EN
Source A A bar_code_count.pos
Source bar_code_count.pos Channel
Channel 0
0 Destination
Destination bag_bar_code
bag_bar_code DN
DN
Source B B
Source 24 ''
SerialPort Control
SerialPort Control bar_code_read
bar_code_read ER
ER
SerialPort Control
SerialPort Length
Control Length 24
Characters Read
Characters Read 0

Publicacin 1756-RM003K-ES-P Julio 2008 583


Captulo 17 Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Texto estructurado
ACB(0,bar_code_count);

IF bar_code_count.POS >= 24 THEN

bar_code_read.LEN := 24;

ARD(0,bag_bar_code,bar_code_read);

END_IF;

584 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Captulo 17

Lectura ASCII de lnea La instruccin ARL retira los caracteres especificados del bfer y los
almacena en Destination.
(ARL)
Operandos:
Lgica de escalera de rels
ARL
ARL
ASCII
ASCIIRead
ReadLine
Line EN
EN
Channel
Channel ?
Destination
Destination ? DN
DN
??
SerialPort
SerialPortControl
Control ? ER
ER
SerialPort
SerialPortControl
ControlLength
Length ?
CharactersRead
Characters Read ?

Operando Tipo Formato Introduzca Notas


Channel DINT inmediato 0

tag
Destination cadena tag el tag al cual se transfieren Si desea comparar, convertir o manipular los
los caracteres (lectura): caracteres, use un tipo de datos de cadena.
SINT Los tipos de datos de cadena son:
Para un tipo de datos de
INT cadena, introduzca el tipo de datos STRING predeterminado
nombre del tag.
DINT cualquier tipo de datos nuevo que usted
Para una matriz SINT, cree
INT o DINT, introduzca
el primer elemento de la
matriz.
Serial Port SERIAL_PORT_ tag tag que controla la
operacin
Control CONTROL
Serial Port DINT inmediato nmero mximo de Introduzca el nmero mximo de caracteres
Control Length caracteres a leer si no se que contendr cualquier mensaje (es decir,
encuentran caracteres de cundo se debe interrumpir la lectura si no
terminacin se encuentran caracteres de terminacin).
Por ejemplo, si el mensaje tiene de 3 a
6 caracteres de longitud, introduzca 6.

Serial Port Control Length debe ser menor o


igual que el tamao de Destination.
Si desea establecer la longitud de control
del puerto serie igual que el tamao de
Destination, introduzca 0.
Characters Read DINT inmediato 0 Durante la ejecucin, muestra el nmero de
caracteres ledos.

Texto estructurado
ARL(Channel,Destination,
Los operandos son los mismos que para la instruccin ARL de lgica
SerialPortControl);
de escalera de rels. Sin embargo, usted especifica los valores de
Serial Port Control Length y Characters Read accediendo a los
miembros .LEN y .POS de la estructura SERIAL_PORT_CONTROL,
en lugar de incluir los valores en la lista de operandos.

Publicacin 1756-RM003K-ES-P Julio 2008 585


Captulo 17 Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Estructura SERIAL_PORT_CONTROL

Mnemnico Tipo de datos Descripcin


.EN BOOL El bit de habilitacin indica que la instruccin est habilitada.
.EU BOOL El bit de cola indica que la instruccin entr en la cola ASCII.
.DN BOOL El bit de efectuado indica que ha finalizado la instruccin, pero es asncrono respecto al
escn de la lgica.
.RN BOOL El bit de ejecucin indica que la instruccin se est ejecutando.
.EM BOOL El bit de vaco indica que finaliz la instruccin, pero es sncrono respecto al escn de la
lgica.
.ER BOOL El bit de error indica que la instruccin fall (errores).
.FD BOOL El bit de encontrado no se aplica a esta instruccin.
.LEN DINT La longitud indica el nmero mximo de caracteres a transferir al destino (es decir, cundo se
debe interrumpir la lectura si no se encuentran caracteres de terminacin).
.POS DINT La posicin muestra el nmero de caracteres que se leyeron.
.ERROR DINT El error contiene un valor hexadecimal que identifica la causa del error.

Descripcin: La instruccin ARL retira los caracteres del bfer y los almacena en
Destination de la siguiente manera:
La instruccin ARL contina ejecutndose hasta eliminar:
el primer conjunto de caracteres de terminacin
el nmero especificado de caracteres (Serial Port Control
Length)
Mientras que la instruccin ARL se est ejecutando, ninguna otra
instruccin de puerto serie ASCII se ejecuta.

Para programar la instruccin ARL, siga estas pautas:

1. Configure el puerto serie del controlador:

a. Seleccione el modo de usuario.


b. Defina los caracteres que sirven como caracteres de
terminacin.

2. Use los resultados de una instruccin ABL para activar la


instruccin ARL. Esto evita que la instruccin ARL retenga la cola
ASCII mientras espera el nmero de caracteres de terminacin.

3. sta es una instruccin transicional:


En la lgica de escalera de rels, cambie la condicin de
entrada del rengln de borrado a establecido cada vez que
deba ejecutarse la instruccin.
En texto estructurado, condicione la instruccin de manera
que slo se ejecute cuando ocurra una transicin.

4. Para activar una accin subsiguiente cuando se ha efectuado la


instruccin, examine el bit EM.

586 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Captulo 17

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta cuando la condicin de n. a.
rengln es verdadera entrada del rengln cambia de borrado a
establecido.

La condicin de salida de rengln se establece como


verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin La instruccin retira los caracteres especificados del bfer y los almacena en el destino.

El bit .EN se establece.

Los bits de estado restantes, excepto .UL, se borran.

La instruccin trata de entrar en la cola ASCII.


post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

Ejemplo: Pruebe continuamente el bfer para determinar si contiene un


mensaje de un terminal MessageView. Puesto que cada mensaje
termina en un retorno de carro ($r), el retorno de carro se configura
como el carcter de terminacin en el cuadro de dilogo Controller
Properties, ficha User Protocol. Cuando la instruccin ABL encuentra
un retorno de carro, establece el bit FD.

Cuando la instruccin ABL encuentra el retorno de carro (MV_line.FD


se establece) significa que el controlador ha recibido un mensaje
completo. La instruccin ARL retira los caracteres del bfer, inclusive
el retorno de carro, y los coloca en el miembro DATA del tag MV_msg,
que es una cadena.

Publicacin 1756-RM003K-ES-P Julio 2008 587


Captulo 17 Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Lgica de escalera de rels

MV_line.EN
MV_line.EN ABL
ABL
/ ASCII
ASCII TestTest For Buffer
For Buffer Line Line EN
EN
Channel
Channel 0 DN
DN
SerialPort
SerialPort Control
Control MV_line
MV_line ER
ER
Characters
Character Count
Count 0

MV_line.FD
MV_line.FD ARL
ARL
ASCII Read
ASCII Read LineLine EN
EN
Channel
Channel 0
Destination
Destination MV_line.EN
MV_msg DN
DN
''
SerialPort Control
SerialPort Control MV_line.EN
MV_read ER
ER
SerialPort Control
SerialPort Length
Control Length 12
Characters Read
Characters Read 0

Texto estructurado

ABL(0,MV_line);

osri_1.InputBit := MVLine.FD;

OSRI(osri_1);

IF (osri_1.OutputBit) THEN

mv_read.LEN := 12;

ARL(0,MV_msg,MV_read);

END_IF;

588 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Captulo 17

Escritura ASCII con anexo La instruccin AWA enva un nmero especificado de caracteres del
tag Source a un dispositivo serie, y aade uno o dos caracteres
(AWA) predefinidos.

Operandos:

Lgica de escalera de rels


AWA
AWA
ASCII Write
ASCII Write Append
Append EN
EN
Channel
Channel ?
Source
Source ? DN
DN
??
SerialPort Control
SerialPort ? ER
ER
SerialPort Control Length
SerialPort Length ?
Characters Sent
Characters Sent ?

Operando Tipo Formato Introduzca Notas


Channel DINT inmediato 0

tag
Source cadena tag tag que contiene los Si desea comparar, convertir o manipular los
caracteres a enviar: caracteres, use un tipo de datos de cadena.
SINT Los tipos de datos de cadena son:
Para un tipo de datos de
INT cadena, introduzca el tipo de datos STRING predeterminado
nombre del tag.
DINT cualquier tipo de datos nuevo que usted
Para una matriz SINT, cree
INT o DINT, introduzca
el primer elemento de la
matriz.
Serial Port SERIAL_PORT_ tag tag que controla la
operacin
Control CONTROL
Serial Port DINT inmediato nmero de caracteres a Serial Port Control Length debe ser menor o
Control Length enviar igual que el tamao de Source.
Si desea establecer Serial Port Control
Length igual que el nmero de caracteres en
Source, introduzca 0.
Characters Sent DINT inmediato 0 Durante la ejecucin, muestra el nmero de
caracteres enviados.

Texto estructurado
AWA(Channel,Source,
Los operandos son los mismos que para la instruccin AWA de lgica
SerialPortControl);
de escalera de rels. Sin embargo, usted especifica los valores de
Serial Port Control Length y Characters Sent accediendo a los
miembros .LEN y .POS de la estructura SERIAL_PORT_CONTROL,
en lugar de incluir los valores en la lista de operandos.

Publicacin 1756-RM003K-ES-P Julio 2008 589


Captulo 17 Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Estructura SERIAL_PORT_CONTROL

Mnemnico Tipo de datos Descripcin


.EN BOOL El bit de habilitacin indica que la instruccin est habilitada.
.EU BOOL El bit de cola indica que la instruccin entr en la cola ASCII.
.DN BOOL El bit de efectuado indica que ha finalizado la instruccin, pero es asncrono respecto al
escn de la lgica.
.RN BOOL El bit de ejecucin indica que la instruccin se est ejecutando.
.EM BOOL El bit de vaco indica que finaliz la instruccin, pero es sncrono respecto al escn de la
lgica.
.ER BOOL El bit de error indica que la instruccin fall (errores).
.FD BOOL El bit de encontrado no se aplica a esta instruccin.
.LEN DINT La longitud indica el nmero de caracteres a enviar.
.POS DINT La posicin muestra el nmero de caracteres que se enviaron.
.ERROR DINT El error contiene un valor hexadecimal que identifica la causa del error.

Descripcin: La instruccin AWA:


enva el nmero especificado de caracteres (Serial Port Control
Length) del tag Source al dispositivo conectado al puerto serie
del controlador.
aade al final de los caracteres (adiciona) ya sea uno o dos
caracteres definidos en el cuadro de dilogo Controller
Properties, ficha User Protocol.

Para programar la instruccin AWA, siga estas pautas:

1. Configure el puerto serie del controlador:

a. Incluye la aplicacin tambin instrucciones ARD o ARL?

Si Entonces
la respuesta es afirmativa seleccione el modo de usuario
la respuesta es negativa seleccione ya sea el modo de sistema o el
modo de usuario

b. Defina los caracteres que se agregarn a los datos.

2. sta es una instruccin transicional:


En la lgica de escalera de rels, cambie la condicin de
entrada del rengln de borrado a establecido cada vez que
deba ejecutarse la instruccin.
En texto estructurado, condicione la instruccin de manera
que slo se ejecute cuando ocurra una transicin.

590 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Captulo 17

3. Enva usted siempre el mismo nmero de caracteres cada vez


que se ejecuta la instruccin?

Si Entonces
la respuesta En Serial Port Control Length, introduzca el nmero de caracteres
es afirmativa a enviar.
la respuesta Antes de que se ejecute la instruccin, establezca el miembro LEN
es negativa del tag Source al miembro LEN del tag Serial Port Control.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta cuando la condicin de n. a.
rengln es verdadera entrada del rengln cambia de borrado a
establecido.

La condicin de salida de rengln se establece como


verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin La instruccin enva un nmero especificado de caracteres y aade uno o dos caracteres predefinidos.

El bit .EN se establece.

Los bits de estado restantes, excepto .UL, se borran.

La instruccin trata de entrar en la cola ASCII.


post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

Publicacin 1756-RM003K-ES-P Julio 2008 591


Captulo 17 Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Ejemplo 1: Cuando la temperatura excede el lmite alto (temp_high se establece)


la instruccin AWA enva un mensaje a un terminal MessageView que
est conectado al puerto serie del controlador. El mensaje contiene
cinco caracteres del miembro DATA del tag string[1], que es una
cadena. (El $14 se cuenta como un carcter. Es el cdigo hexadecimal
del carcter Ctrl-T). La instruccin tambin enva (adiciona) los
caracteres definidos en las propiedades del controlador. En este
ejemplo, la instruccin AWA enva un retorno de carro ($0D), que
marca el final del mensaje.

Lgica de escalera de rels

temp_high
temp_high AWA
AWA
ASCII Write
ASCII Write Append
Append EN
EN
Channel
Channel 0
Source
Source string[1]
string[1] DN
DN
'$1425\1'
SerialPort Control
SerialPort Control temp_high_write
temp_high_write ER
ER
SerialPort Control
SerialPort Control Length
Length 5
Characters Sent
Characters Sent 6

Texto estructurado

IF temp_high THEN

temp_high_write.LEN := 5;

AWA(0,string[1],temp_high_write);

temp_high := 0;

END_IF;

592 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Captulo 17

Ejemplo 2: Cuando alarm se establece, la instruccin AWA enva el nmero de


caracteres especificado en alarm_msg y aade el o los caracteres de
terminacin. Puesto que el nmero de caracteres en alarm_msg vara,
el rengln primero pasa la longitud de la cadena (alarm_msg.LEN)
a Serial Port Control Length de la instruccin AWA (alarm_write.LEN).
En alarm_msg, el $14 se cuenta como un carcter. Es el cdigo
hexadecimal del carcter Ctrl-T.

Lgica de escalera de rels

alarm
alarm MOV
MOV AWA
AWA
Move
Move ASCII Write
ASCII Write Append
Append EN
EN
Source alarm_msg.LEN
Source alarm_msg.LEN Channel
Channel 0
5 Source
Source alarm_msg
alarm_msg DN
DN
Dest.
Dest alarm_write.LEN
alarm_write.LEN '$1425\1'
5 SerialPort Control
SerialPort Control alarm_write
alarm_write ER
ER
SerialPort Control
SerialPort Length
Control Length 5
Characters Sent
Characters Sent 6

Texto estructurado

osri_1.InputBit := alarm;

OSRI(osri_1);

IF (osri_1.OutputBit) THEN

alarm_write.LEN := alarm_msg.LEN;

AWA(0,alarm_msg,alarm_write);

END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008 593


Captulo 17 Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Escritura ASCII La instruccin AWT enva un nmero especificado de caracteres del


tag de origen a un dispositivo serie.
(ASCII Write (AWT))
Operandos:

Lgica de escalera de rels


AWT
AWT
ASCII Write
ASCII Write EN
EN
Channel
Channel ?
Source
Source ? DN
DN
??
SerialPort Control
SerialPort Control ? ER
ER
SerialPort ControlLength
SerialPort Control Length ?
Characters Sent
Characters Sent ?

Operando Tipo Formato Introduzca Notas


Channel DINT inmediato 0

tag
Source cadena tag tag que contiene los Si desea comparar, convertir o manipular los
caracteres a enviar: caracteres, use un tipo de datos de cadena.
SINT Los tipos de datos de cadena son:
Para un tipo de datos de
INT cadena, introduzca el tipo de datos STRING predeterminado
nombre del tag.
DINT cualquier tipo de datos nuevo que usted
Para una matriz SINT, cree
INT o DINT, introduzca
el primer elemento de la
matriz.
Serial Port SERIAL_PORT_ tag tag que controla la
operacin
Control CONTROL
Serial Port DINT inmediato el nmero de caracteres a Serial Port Control Length debe ser menor o
Control Length enviar igual que el tamao de Source.
Si desea establecer Serial Port Control
Length igual que el nmero de caracteres en
Source, introduzca 0.
Characters Sent DINT inmediato 0 Durante la ejecucin, muestra el nmero de
caracteres enviados.

Texto estructurado
AWT(Channel,Source,
Los operandos son los mismos que para la instruccin AWT de lgica
SerialPortControl);
de escalera de rels. Sin embargo, usted especifica los valores de
Serial Port Control Length y Characters Sent accediendo a los
miembros .LEN y .POS de la estructura SERIAL_PORT_CONTROL,
en lugar de incluir los valores en la lista de operandos.

594 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Captulo 17

Estructura SERIAL_PORT_CONTROL

Mnemnico Tipo de datos Descripcin


.EN BOOL El bit de habilitacin indica que la instruccin est habilitada.
.EU BOOL El bit de cola indica que la instruccin entr en la cola ASCII.
.DN BOOL El bit de efectuado indica que ha finalizado la instruccin, pero es asncrono respecto al
escn de la lgica.
.RN BOOL El bit de ejecucin indica que la instruccin se est ejecutando.
.EM BOOL El bit de vaco indica que finaliz la instruccin, pero es sncrono respecto al escn de la
lgica.
.ER BOOL El bit de error indica que la instruccin fall (errores).
.FD BOOL El bit de encontrado no se aplica a esta instruccin.
.LEN DINT La longitud indica el nmero de caracteres a enviar.
.POS DINT La posicin muestra el nmero de caracteres que se enviaron.
.ERROR DINT El error contiene un valor hexadecimal que identifica la causa del error.

Descripcin: La instruccin AWT enva el nmero especificado de caracteres (Serial


Port Control Length) del tag Source al dispositivo conectado al puerto
serie del controlador.

Para programar la instruccin AWT, siga estas pautas:

1. Configure el puerto serie del controlador:

Si la aplicacin Entonces
usa instrucciones ARD o ARL Seleccione el modo de usuario
no usa instrucciones ARD o ARL Seleccione ya sea el modo de sistema o el
modo de usuario

2. sta es una instruccin transicional:


En la lgica de escalera de rels, cambie la condicin de
entrada del rengln de borrado a establecido cada vez que
deba ejecutarse la instruccin.
En texto estructurado, condicione la instruccin de manera
que slo se ejecute cuando ocurra una transicin.

3. Enva usted siempre el mismo nmero de caracteres cada vez


que se ejecuta la instruccin?

Si Entonces
la respuesta En Serial Port Control Length, introduzca el nmero de caracteres
es afirmativa a enviar.
la respuesta Antes de que se ejecute la instruccin, mueva el miembro LEN del
es negativa tag Source al miembro LEN del tag Serial Port Control.

Publicacin 1756-RM003K-ES-P Julio 2008 595


Captulo 17 Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta cuando la condicin de n. a.
rengln es verdadera entrada del rengln cambia de borrado a
establecido.

La condicin de salida de rengln se establece como


verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin La instruccin enva un nmero especificado de caracteres.

El bit .EN se establece.

Los bits de estado restantes, excepto .UL, se borran.

La instruccin trata de entrar en la cola ASCII.


post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

Ejemplo 1: Cuando la temperatura llega al lmite bajo (temp_low se establece),


la instruccin AWT enva un mensaje al terminal MessageView que
est conectado al puerto serie del controlador. El mensaje contiene
nueve caracteres del miembro DATA del tag string[2], que es una
cadena. (El $14 se cuenta como un carcter. Es el cdigo hexadecimal
del carcter Ctrl-T). El ltimo carcter es el retorno de carro ($r),
el cual indica el fin del mensaje.

Lgica de escalera de rels

temp_low
temp_low AWT
AWT
ASCII
ASCII Write
Write EN
EN
Channel
Channel 0
Source
Source string[2]
string[2] DN
DN
'$142224\01$r'
SerialPort Control
SerialPort Control temp_low_write
temp_low_write ER
ER
SerialPort Control
SerialPort LengthLength
Control 9
Characters SentSent
Characters 9

596 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Captulo 17

Texto estructurado
osri_1.InputBit := temp_low;

OSRI(osri_1);

IF (osri_1.OutputBit) THEN
temp_low_write.LEN := 9;
AWT(0,string[2],temp_low_write);
END_IF;

Ejemplo 2: Cuando MV_update se establece, la instruccin AWT enva los


caracteres en MV_msg. Puesto que el nmero de caracteres en
MV_msg vara, el rengln primero pasa la longitud de la cadena
(MV_msg.LEN) a Serial Port Control Length de la instruccin AWT
(MV_write.LEN). En MV_msg, el $16 se cuenta como un carcter.
Es el cdigo hexadecimal del carcter Ctrl-V.

Lgica de escalera de rels

MV_update
MV_update MOV
MOV AWT
AWT
Move
Move ASCII Write
ASCII Write EN
EN
Source MV_msg.LEN
Source MV_msg.LEN Channel
Channel 0
10 Source
Source MV_msg
MV_msg DN
DN
Dest.
Dest MV_write.LEN
MV_write.LEN '$161365\8\1$r'
10 SerialPort Control
SerialPort Control MV_write
MV_write ER
ER
SerialPort Control
SerialPort Length
Control Length 10
Characters SentSent
Characters 10

Texto estructurado

osri_1.InputBit := MV_update;

OSRI(osri_1);

IF (osri_1.OutputBit) THEN

MV_write.LEN := Mv_msg.LEN;

AWT(0,MV_msg,MV_write);

END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008 597


Captulo 17 Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Notas:

598 Publicacin 1756-RM003K-ES-P Julio 2008


Captulo 18

Instrucciones de cadena ASCII


(CONCAT, DELETE, FIND, INSERT, MID)

Introduccin Use las instrucciones de cadena ASCII para modificar y crear cadenas
de caracteres ASCII.

Si desea Por ejemplo Use esta Disponible en estos Vea la


instruccin lenguajes pgina
aadir caracteres al final de una aadir caracteres de terminacin o CONCAT lgica de escalera de 601
cadena delimitadores a una cadena rels

texto estructurado
eliminar caracteres de una cadena eliminar caracteres de encabezado o DELETE lgica de escalera de 603
control de una cadena rels

texto estructurado
determinar el carcter inicial de una hallar un grupo de caracteres dentro FIND lgica de escalera de 605
subcadena de una cadena rels

texto estructurado
insertar caracteres dentro de una crear una cadena que usa variables INSERT lgica de escalera de 607
cadena rels

texto estructurado
extraer caracteres de una cadena extraer informacin de un cdigo de MID lgica de escalera de 609
barra rels

texto estructurado

Tambin es posible usar las siguientes instrucciones para comparar o


convertir caracteres ASCII:

Si desea Use esta instruccin Vea la pgina


comparar una cadena con otra cadena CMP 206
determinar si los caracteres son iguales a caracteres especficos EQU 211
determinar si los caracteres son diferentes a caracteres especficos NEQ 242
determinar si los caracteres son mayores o iguales que caracteres especficos GEQ 211
determinar si los caracteres son mayores que caracteres especficos GRT 219
determinar si los caracteres son menores o iguales que caracteres especficos LEQ 223
determinar si los caracteres son menores que caracteres especficos LES 227
reacomodar los bytes de un tag INT, DINT o REAL SWPB 300
encontrar una cadena en una matriz de cadenas FSC 347
convertir caracteres en un valor SINT, INT, DINT o REAL STOD 614

599Publicacin 1756-RM003K-ES-P Julio 2008 599


Captulo 18 Instrucciones de cadena ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Si desea Use esta instruccin Vea la pgina


convertir caracteres en un valor REAL STOR 616
convertir un valor SINT, INT, DINT o REAL en una cadena de caracteres ASCII DTOS 619
convertir un valor REAL en una cadena de caracteres ASCII RTOS 621

Tipos de datos de cadena

Los caracteres ASCII se almacenan en tags que usan un tipo de datos


de cadena.
Puede usar el tipo de datos STRING predeterminado. Almacena
hasta 82 caracteres.
Usted puede crear un nuevo tipo de datos de cadena que
almacene menos o ms caracteres.

Para crear un nuevo tipo de datos de cadena, consulte el documento


Logix5000 Controllers Common Procedures, publicacin 1756-PM001.

Cada tipo de datos de cadena contiene los siguientes miembros:

Nombre Tipo de datos Descripcin Notas


LEN DINT nmero de caracteres El LEN se actualiza automticamente al nuevo conteo de caracteres cuando usted:
en la cadena
usa el cuadro de dilogo String Browser para introducir caracteres
usa las instrucciones que leen, convierten o manipulan una cadena

El LEN muestra la longitud de la cadena actual. El miembro DATA puede contener


caracteres adicionales antiguos, los cuales no se incluyen en el conteo LEN.
DATA Matriz SINT caracteres ASCII de la Para obtener acceso a los caracteres de la cadena, utilice el nombre del tag.
cadena Por ejemplo, para acceder a los caracteres del tag string_1, introduzca
string_1.

Cada elemento de la matriz DATA contiene un carcter.


Usted puede crear nuevos tipos de datos de cadena que almacenen menos o
ms caracteres.

600 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de cadena ASCII (CONCAT, DELETE, FIND, INSERT, MID) Captulo 18

Concatenacin de cadenas La instruccin CONCAT aade caracteres ASCII al final de una cadena.
(CONCAT)
Operandos:

Lgica de escalera de rels


CONCAT
CONCAT
Sting Concatenate
String Concatenate
Source
SourceA A ??
????
Source
Source B B ??
????
Dest
Dest ??
????

Operando Tipo Formato Introduzca Notas


Source A cadena tag tag que contiene los Los tipos de datos de cadena son:
caracteres iniciales
tipo de datos STRING predeterminado
Source B cadena tag tag que contiene los
caracteres finales cualquier tipo de datos nuevo que usted
cree
Destination cadena tag tag para almacenar el
resultado

Texto estructurado
CONCAT(SourceA,SourceB,
Los operandos son iguales a los de la instruccin CONCAT de lgica
Dest);
de escalera de rels.

Descripcin: La instruccin CONCAT combina los caracteres en Source A con los


caracteres en Source B y coloca el resultado en Destination.
Los caracteres de Source A son los primeros, seguidos por los
caracteres de Source B.
A menos que Source A y Destination sean el mismo tag, Source
A no cambia.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:

Tipo Cdigo Causa Mtodo de recuperacin


4 51 El valor LEN del tag de cadena es 1. Verifique que ninguna instruccin est escribiendo en el miembro LEN
mayor que el tamao de DATA del del tag de cadena.
tag de cadena.
2. En el valor LEN, introduzca el nmero de caracteres que contiene la
cadena.

Publicacin 1756-RM003K-ES-P Julio 2008 601


Captulo 18 Instrucciones de cadena ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Ejecucin:

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin La instruccin concatena las cadenas.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

Ejemplo: Para activar un mensaje en un terminal MessageView, el controlador


debe enviar una cadena ASCII que contenga un nmero de mensaje y
nmero de nodo. String_1 contiene el nmero de mensaje. Cuando
add_node se establece, la instruccin CONCAT aade los caracteres
en node_num_ascii (nmero de nodo) al final de los caracteres en
string_1 y posteriormente almacena el resultado en msg.

Lgica de escalera de rels

add_node CONCAT
CONCAT
Sting
StringConcatenate
Concatenate
Source
Source A A string_1
string_1
$1423\
'$1423\'
Source
SourceB B node_num_ascii
node_num_ascii
'1'1
Dest
Dest msgmsg
'$1423\1'
$1423\1

Texto estructurado

IF add_node THEN

CONCAT(string_1,node_num_ascii,msg);

add_node := 0;

END_IF;

602 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de cadena ASCII (CONCAT, DELETE, FIND, INSERT, MID) Captulo 18

Eliminacin de cadena La instruccin DELETE retira los caracteres ASCII de una cadena.
(DELETE)
Operandos:

DELETE
Lgica de escalera de rels
DELETE
Sting Delete
String Delete
Source
Source ??
????
Qty
Qty ??
????
Start
Start ??
????
Dest
Dest ??
????

Operando Tipo Formato Introduzca Notas


Source cadena tag el tag que contiene la Los tipos de datos de cadena son:
cadena de la cual se desea
eliminar los caracteres tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted
cree
Quantity SINT inmediato el nmero de caracteres Start as como Quantity deben ser menores o
que se desea eliminar iguales al tamao de DATA de Source.
INT tag

DINT
Start SINT inmediato la posicin del primer Introduzca un nmero entre 1 y el tamao de
carcter que se debe DATA de Source.
INT tag eliminar

DINT
Destination cadena tag tag para almacenar el
resultado

Texto estructurado
DELETE(Source,Qty,Start,
Los operandos son iguales a los de la instruccin DELETE de lgica de
Dest);
escalera de rels.

Descripcin: La instruccin DELETE elimina (retira) un grupo de caracteres de


Source y coloca los caracteres restantes en Destination.
La posicin Start as como Quantity definen los caracteres a
retirar.
A menos que Source y Destination sean el mismo tag, Source no
cambia.

Publicacin 1756-RM003K-ES-P Julio 2008 603


Captulo 18 Instrucciones de cadena ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:
Tipo Cdigo Causa Mtodo de recuperacin
4 51 El valor LEN del tag de 1. Verifique que ninguna instruccin est escribiendo en el miembro LEN del tag
cadena es mayor que el de cadena.
tamao de DATA del tag
de cadena. 2. En el valor LEN, introduzca el nmero de caracteres que contiene la cadena.
4 56 El valor de Start o Quantity 1. Verifique que el valor de Start est entre 1 y el tamao de DATA de Source.
no es vlido.
2. Verifique que el valor de Start ms el valor Quantity sea menor o igual que el
tamao de DATA de Source.

Ejecucin:
Condicin Accin de lgica de escalera de rels Accin de texto estructurado
preescn La condicin de salida de rengln se establece como falsa. Ninguna.
condicin de entrada de La condicin de salida de rengln se establece como falsa. n. a.
rengln es falsa
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin La instruccin elimina los caracteres especificados.
post-escn La condicin de salida de rengln se establece como falsa. Ninguna.

Ejemplo: La informacin ASCII de un terminal contiene un carcter de


encabezado. Despus de que el controlador lee los datos
(term_read.EM se establece) la instruccin DELETE retira el carcter
de encabezado (term_read.EM is set).

Lgica de escalera de rels


term_read.EM DELETE
DELETE
Sting Delete
String Delete
Source term_input
Source term_input
$0655
'$0655'
Qty
Qty 11
Start
Start 11

Dest
Dest term_text
term_text
55
'55'

Texto estructurado
IF term_read.EM THEN
DELETE(term_input,1,1,term_text);
term_read.EM := 0;
END_IF;

604 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de cadena ASCII (CONCAT, DELETE, FIND, INSERT, MID) Captulo 18

Encontrar cadena (FIND) La instruccin FIND localiza la posicin de una cadena especificada
dentro de otra cadena.

Operandos:

FIND
Lgica de escalera de rels
FIND
Find
FindString
String
Source
Source ??
????
Search
Search ??
????
Start
Start ??
????
Result
Result ??
????

Operando Tipo Formato Introduzca Notas


Source cadena tag cadena en que se debe Los tipos de datos de cadena son:
buscar
tipo de datos STRING predeterminado
Buscar cadena tag la cadena que se debe
buscar cualquier tipo de datos nuevo que usted
cree
Start SINT inmediato la posicin en Source en la Introduzca un nmero entre 1 y el tamao de
cual se debe iniciar la DATA de Source.
INT tag bsqueda

DINT
Result SINT tag el tag que almacena la
posicin inicial de la
INT cadena que se debe buscar

DINT

Texto estructurado
FIND(Source,Search,Start,
Los operandos son iguales a los de la instruccin FIND de lgica de
Result);
escalera de rels antes descritos.

Descripcin: La instruccin FIND busca en la cadena Source la cadena Search. Si la


instruccin encuentra la cadena Search, Result muestra la posicin de
inicio de la cadena Search dentro de la cadena Source.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:
Tipo Cdigo Causa Mtodo de recuperacin
4 51 El valor LEN del tag de cadena es 1. Verifique que ninguna instruccin est escribiendo en el miembro LEN
mayor que el tamao de DATA del del tag de cadena.
tag de cadena.
2. En el valor LEN, introduzca el nmero de caracteres que contiene la
cadena.
4 56 El valor de Start no es vlido. Verifique que el valor de Start est entre 1 y el tamao de DATA de Source.

Publicacin 1756-RM003K-ES-P Julio 2008 605


Captulo 18 Instrucciones de cadena ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Ejecucin:
Condicin Accin de lgica de escalera de rels Accin de texto estructurado
preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin La instruccin busca los caracteres especificados.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

Ejemplo: Un mensaje de un terminal MessageView contiene varios


componentes de informacin. La barra diagonal invertida [ \ ] separa
cada fragmento de informacin. Para ubicar un fragmento de
informacin, la instruccin FIND busca el carcter correspondiente a
la barra diagonal invertida y registra su posicin en find_pos.

Lgica de escalera de rels


MV_read.EM FIND
FIND
Find String
Find String
Source
Source MV_msg MV_msg
$06324\12\1\$r
'$06324\12\1\$r'
Search
Search find
find
'\'\
Start
Start 11

Result
Result find_pos
find_pos
55

Texto estructurado

IF MV_read.EM THEN

FIND(MV_msg,find,1,find_pos);

MV_read.EM := 0;

END_IF;

606 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de cadena ASCII (CONCAT, DELETE, FIND, INSERT, MID) Captulo 18

Insertar cadena (INSERT) La instruccin INSERT aade caracteres ASCII a un lugar especificado
dentro de una cadena.

Operandos:

INSERT
Lgica de escalera de rels
INSERT
Insert
InsertString
String
Source
Source A A ??
????
Source
SourceB B ??
????
Start
Start ??
????
Dest
Dest ??
????

Operando Tipo Formato Introduzca Notas


Source A cadena tag la cadena a la cual se Los tipos de datos de cadena son:
deben aadir los caracteres
tipo de datos STRING predeterminado
Source B cadena tag la cadena que contiene los
caracteres que se deben cualquier tipo de datos nuevo que usted
aadir cree
Start SINT inmediato la posicin en Source A a la Introduzca un nmero entre 1 y el tamao de
cual se deben aadir los DATA de Source.
INT tag caracteres

DINT
Result cadena tag cadena para almacenar el
resultado

Texto estructurado
INSERT(SourceA,SourceB,
Los operandos son iguales a los de la instruccin INSERT de lgica de
Start,Dest);
escalera de rels.

Descripcin: La instruccin INSERT aade los caracteres en Source B a una


posicin designada dentro de Source A y coloca el resultado en
Destination:
Inicio define dnde se aade en Source A dicho Source B.
A menos que SourceA y Destination sean el mismo tag, Source A
no cambia.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:

Tipo Cdigo Causa Mtodo de recuperacin


4 51 El valor LEN del tag de cadena es 1. Verifique que ninguna instruccin est escribiendo en el miembro LEN
mayor que el tamao de DATA del del tag de cadena.
tag de cadena.
2. En el valor LEN, introduzca el nmero de caracteres que contiene la
cadena.
4 56 El valor de Start no es vlido. Verifique que el valor de Start est entre 1 y el tamao de DATA de Source.

Publicacin 1756-RM003K-ES-P Julio 2008 607


Captulo 18 Instrucciones de cadena ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Ejecucin:

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin La instruccin inserta los caracteres especificados.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

Ejemplo: Cuando temp_high se establece, la instruccin INSERT aade los


caracteres en string_2 a la posicin 2 dentro de string_1 y coloca el
resultado en string_3:

Lgica de escalera de rels

temp_high INSERT
INSERT
Insert String
Insert String
Source
SourceA A string_1
string_1
AD
'AD'
Source
SourceB B string_2
string_2
'BC'BC
Start
Start 22

Dest
Dest string_3
string_3
'ABCD'
ABCD

Texto estructurado

IF temp_high THEN

INSERT(string_1,string_2,2,string_3);

temp_high := 0;

END_IF;

608 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de cadena ASCII (CONCAT, DELETE, FIND, INSERT, MID) Captulo 18

Cadena central (MID) La instruccin MID copia un nmero especificado de caracteres ASCII
de una cadena y los almacena en otra cadena.

Operandos:

Lgica de escalera de rels


MID
MID
Middle
MiddleString
String
Source
Source ??
????
Qty
Qty ??
????
Start
Start ??
????
Dest
Dest ??
????

Operando Tipo Formato Introduzca Notas


Source cadena tag la cadena de la cual se Los tipos de datos de cadena son:
deben copiar los caracteres
tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted
cree
Quantity SINT inmediato el nmero de caracteres Start as como Quantity deben ser menores o
que se desea copiar iguales al tamao de DATA de Source.
INT tag

DINT
Start SINT inmediato la posicin del primer Introduzca un nmero entre 1 y el tamao de
carcter que se debe copiar DATA de Source.
INT tag

DINT
Destination cadena tag la cadena a la cual se
deben copiar los caracteres

Texto estructurado
MID(Source,Qty,Start,
Los operandos son iguales a los de la instruccin MID de lgica de
Dest);
escalera de rels.

Descripcin: La instruccin MID copia un grupo de caracteres desde Source y


coloca el resultado en Destination.
La posicin Start as como Quantity definen los caracteres a
copiar.
A menos que Source y Destination sean el mismo tag, Source no
cambia.

Indicadores de estado
aritmtico: no afectados

Publicacin 1756-RM003K-ES-P Julio 2008 609


Captulo 18 Instrucciones de cadena ASCII (CONCAT, DELETE, FIND, INSERT, MID)

Condiciones de fallo:
Tipo Cdigo Causa Mtodo de recuperacin
4 51 El valor LEN del tag de 1. Verifique que ninguna instruccin est escribiendo en el miembro LEN del tag
cadena es mayor que el de cadena.
tamao de DATA del tag
de cadena. 2. En el valor LEN, introduzca el nmero de caracteres que contiene la cadena.
4 56 El valor de Start o Quantity 1. Verifique que el valor de inicio est entre 1 y el tamao de DATA de Source.
no es vlido.
2. Verifique que el valor de Start ms el valor de Quantity sea menor o igual que el
tamao de DATA de Source.

Ejecucin:
Condicin Accin de lgica de escalera de rels Accin de texto estructurado
preescn La condicin de salida de rengln se establece como falsa. Ninguna.
condicin de entrada de La condicin de salida de rengln se establece como falsa. n. a.
rengln es falsa
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin La instruccin MID copia los caracteres especificados de una cadena y los almacena en otra cadena.
post-escn La condicin de salida de rengln se establece como falsa. Ninguna.

Ejemplo: En un transportador de manejo de maletas de un aeropuerto, cada


maleta tiene un cdigo de barras. Los caracteres 9 a 17 del cdigo de
barra corresponden al nmero de vuelo y aeropuerto de destino de la
maleta. Despus de que se lee el cdigo de barras (bag_read.EM se
establece) la instruccin MID copia el nmero de vuelo y aeropuerto
de destino en la cadena bag_flt_and_dest.
Lgica de escalera de rels
bag_read.EM MID
MID
Middle
MiddleString
String
Source
Source bag_barcode
bag_barcode
'NWA HOP NWA 5058
HOP 5058
AMSAMS01'
01
Qty
Qty 99

Start
Start 99

Dest
Dest bag_flt_and_dest
bag_flt_and_dest
'5058 AMS
5058 '
AMS

Texto estructurado

IF bag_read.EM THEN

MID(bar_barcode,9,9,bag_flt_and_dest);

bag_read.EM := 0;

END_IF;

610 Publicacin 1756-RM003K-ES-P Julio 2008


Captulo 19

Instrucciones de conversin ASCII


(STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Introduccin Use las instrucciones de conversin ASCII para alterar el formato de


los datos.

Si desea Por ejemplo Use esta Disponible en estos Vea la


instruccin lenguajes pgina
convertir la representacin ASCII de convertir un valor proveniente de una STOD lgica de escalera de 614
un valor entero en un valor SINT, INT, bscula u otro dispositivo ASCII en un rels
DINT o REAL nmero entero para usarlo en la
lgica texto estructurado
convertir la representacin ASCII de convertir un valor proveniente de una STOR lgica de escalera de 616
un valor de punto flotante (coma bscula u otro dispositivo ASCII en un rels
flotante) en un valor REAL valor REAL para usarlo en la lgica
texto estructurado
convertir un valor SINT, INT, DINT o convertir una variable en una cadena DTOS lgica de escalera de 619
REAL en una cadena de caracteres ASCII para enviarla a un terminal rels
ASCII MessageView
texto estructurado
convertir un valor REAL en una convertir una variable en una cadena RTOS lgica de escalera de 621
cadena de caracteres ASCII ASCII para enviarla a un terminal rels
MessageView
texto estructurado
convertir en maysculas las letras de convertir en maysculas una entrada UPPER lgica de escalera de 623
una cadena de caracteres ASCII hecha por un operador para poder rels
buscarla en una matriz
texto estructurado
convertir en minsculas las letras en convertir en minsculas una entrada LOWER lgica de escalera de 625
una cadena de caracteres ASCII hecha por un operador para poder rels
buscarla en una matriz
texto estructurado

611Publicacin 1756-RM003K-ES-P Julio 2008 611


Captulo 19 Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Tambin es posible usar las siguientes instrucciones para comparar o


manipular caracteres ASCII:

Si desea Use esta instruccin Vea la pgina


aadir caracteres al final de una cadena CONCAT 601
eliminar caracteres de una cadena DELETE 603
identificar el carcter inicial de una subcadena FIND 605
insertar caracteres dentro de una cadena INSERT 607
extraer caracteres de una cadena MID 609
reacomodar los bytes de un tag INT, DINT o REAL SWPB 300
comparar una cadena con otra cadena CMP 206
determinar si los caracteres son iguales a caracteres especficos EQU 211
determinar si los caracteres son diferentes a caracteres especficos NEQ 242
determinar si los caracteres son mayores o iguales que caracteres especficos GEQ 215
determinar si los caracteres son mayores que caracteres especficos GRT 219
determinar si los caracteres son menores o iguales que caracteres especficos LEQ 223
determinar si los caracteres son menores que caracteres especficos LES 227
encontrar una cadena en una matriz de cadenas FSC 347

612 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER) Captulo 19

Tipos de datos de cadena

Los caracteres ASCII se almacenan en tags que usan un tipo de datos


de cadena.
Puede usar el tipo de datos STRING predeterminado, que
almacena hasta 82 caracteres.
Usted puede crear un nuevo tipo de datos de cadena que
almacene menos o ms caracteres.

Para crear un nuevo tipo de datos de cadena, consulte el documento


Logix5000 Controllers Common Procedures, publicacin 1756-PM001.

Cada tipo de datos de cadena contiene los siguientes miembros:

Nombre: Tipo de Descripcin: Notas:


datos:
LEN DINT nmero de caracteres El LEN se actualiza automticamente con el nuevo conteo de los caracteres
en la cadena cuando usted:

usa el cuadro de dilogo String Browser para introducir caracteres


usa instrucciones que leen, convierten o manipulan una cadena

El LEN muestra la longitud de la cadena actual. El miembro DATA puede contener


caracteres adicionales antiguos, los cuales no se incluyen en el conteo LEN.
DATA Matriz SINT caracteres ASCII de la Para obtener acceso a los caracteres de la cadena, utilice el nombre del tag.
cadena Por ejemplo, para acceder a los caracteres del tag string_1, introduzca
string_1.

Cada elemento de la matriz DATA contiene un carcter.


Usted puede crear nuevos tipos de datos de cadena que almacenen menos o
ms caracteres.

Publicacin 1756-RM003K-ES-P Julio 2008 613


Captulo 19 Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Cadena en DINT (STOD) La instruccin STOD convierte la representacin ASCII de un nmero


entero en un valor entero o REAL.

Operandos:

Lgica de escalera de rels


STOD
STOD
String
StringToTo
DINT
DINT
Source
Source ??
????
Dest
Dest ??
????

Operando Tipo Formato Introduzca Notas


Source cadena tag el tag que contiene el valor Los tipos de datos de cadena son:
en ASCII
tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted
cree
Destination SINT tag el tag en que se almacena Si el valor Source es un nmero de punto
el valor entero flotante (coma flotante), la instruccin
INT convierte solamente la parte no fraccionaria del
nmero (independientemente del tipo de datos
DINT de destino).

REAL

STOD(Source,Dest);
Texto estructurado

Los operandos son iguales a los de la instruccin STOD de lgica de


escalera de rels.

Descripcin: STOD convierte Source a un valor entero y coloca el resultado en


Destination.
La instruccin convierte nmeros positivos y negativos.
Si la cadena Source contiene caracteres no numricos, STOD
convierte el primer conjunto de nmeros contiguos:
La instruccin ignora los caracteres de control inicial y
caracteres no numricos (excepto el signo menos frente a un
nmero).
Si la cadena contiene mltiples grupos de nmeros separados
por delimitadores (por ejemplo, /), la instruccin convierte
solamente el primer grupo de nmeros.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

614 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER) Captulo 19

Condiciones de fallo
Tipo Cdigo Causa Mtodo de recuperacin
4 51 El valor LEN del tag de cadena es mayor que el tamao 1. Verifique que ninguna instruccin est escribiendo
de DATA del tag de cadena. en el miembro LEN del tag de cadena.

2. En el valor LEN, introduzca el nmero de caracteres


que contiene la cadena.
4 53 El nmero de salida sobrepasa los lmites del tipo de Realice uno de los siguientes:
datos de destino.
Reduzca el tamao del valor ASCII.
Use un tipo de datos mayor para el destino.

Ejecucin:
Condicin Accin de lgica de escalera de rels Accin de texto estructurado
preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin SC se establece

Destination se borra.

La instruccin convierte Source.

Si el resultado es cero, S:Z se establece.


post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

Ejemplo: Cuando MV_read.EM se establece, la instruccin STOD convierte en


un valor entero el primer conjunto de caracteres numricos de
MV_msg. La instruccin ignora el carcter de control inicial ($06) y se
detiene en el delimitador ( \ ).

Lgica de escalera de rels

MV_read.EM STOD
STOD
String
StringTo DINT
To DINT
Source
Source MV_msg
MV_msg
$06324\12\1\$r
'$06324\12\1\$r'
Dest MV_msg_nmbr
Dest MV_msg_nmbr 324
324

Publicacin 1756-RM003K-ES-P Julio 2008 615


Captulo 19 Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Texto estructurado

IF MV_read.EM THEN
STOD(MV_msg,MV_msg_nmbr);
MV_read.EM := 0;
END_IF;

Cadena en REAL (STOR) La instruccin STOR convierte en un valor REAL la representacin


ASCII de un valor de punto flotante (coma flotante).

Operandos:

STOR
Operadores de escalera de rel
STOR
String
Stringtoto
Real
Real
Source
Source ??
????
Dest
Dest ??
????

Operando Tipo Formato Introduzca Notas


Source cadena tag el tag que contiene el valor Los tipos de datos de cadena son:
en ASCII
tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted
cree
Destination REAL tag el tag en que se almacena
el valor REAL

STOR(Source,Dest);
Texto estructurado

Los operandos son iguales a los de la instruccin STOR de lgica de


escalera de rels.

Descripcin: La instruccin STOR convierte Source en un valor REAL y coloca el


resultado en Destination.
La instruccin convierte nmeros positivos y negativos.
Si la cadena Source contiene caracteres no numricos, STOR
convierte el primer conjunto de nmeros contiguos, inclusive el
punto decimal [ . ]:
La instruccin ignora los caracteres de control inicial o
caracteres no numricos (excepto el signo menos frente a un
nmero).
Si la cadena contiene varios grupos de nmeros separados
por delimitadores (por ejemplo, /), la instruccin convierte
solamente el primer grupo de nmeros.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.

616 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER) Captulo 19

Condiciones de fallo:
Tipo Cdigo Causa Mtodo de recuperacin
4 51 El valor LEN del tag de cadena es mayor que el tamao 1. Verifique que ninguna instruccin est escribiendo
de DATA del tag de cadena. en el miembro LEN del tag de cadena.

2. En el valor LEN, introduzca el nmero de caracteres


que contiene la cadena.
4 53 El nmero de salida sobrepasa los lmites del tipo de Realice uno de los siguientes:
datos de destino.
Reduzca el tamao del valor ASCII.
Use un tipo de datos mayor para el destino.

Ejecucin:
Condicin Accin de lgica de escalera de rels Accin de texto estructurado
preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin S:C se establece.

Destination se borra.

La instruccin convierte Source.

Si el resultado es cero, S:Z se establece.


post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

Ejemplo: Despus de leer el resultado del pesaje en una bscula


(weight_read.EM se establece) la instruccin STOR convierte en un
valor REAL los caracteres numricos de weight_ascii.

Es posible que se perciba una pequea diferencia entre las partes


fraccionarias de Source y Destination.

Lgica de escalera de rels

weight_read.EM STOR
STOR
String
Stringto Real
to Real
Source weight_axcii
Source weight_ascii
428.259
'428.259'
Dest weight
Dest weight
428.259
428.259

Publicacin 1756-RM003K-ES-P Julio 2008 617


Captulo 19 Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Texto estructurado

IF weight_read.EM THEN
STOR(weight_ascii,weight);
weight_read.EM := 0;
END_IF;

618 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER) Captulo 19

DINT en cadena (DTOS) La instruccin DTOS produce la representacin ASCII de un valor.

Operandos:

DTOS Lgica de escalera de rels


DTOS
DINT
DINTto to
String
String
Source
Source ??
????
Dest
Dest ??
????

Operando Tipo Formato Introduzca Notas


Source SINT tag el tag que contiene el valor Si Source es un nmero REAL, la instruccin lo
convierte en un valor DINT. Consulte REAL en
INT un nmero entero en la pgina 640.

DINT

REAL
Destination cadena tag el tag en que se almacena Los tipos de datos de cadena son:
el valor ASCII
tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted
cree

DTOS(Source,Dest);
Texto estructurado

Los operandos son iguales a los de la instruccin DTOS de lgica de


escalera de rels.

Descripcin: La instruccin DTOS convierte Source en una cadena de caracteres


ASCII y coloca el resultado en Destination.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:

Tipo Cdigo Causa Mtodo de recuperacin


4 51 El valor LEN del tag de cadena es mayor que el tamao 1. Verifique que ninguna instruccin est escribiendo
de DATA del tag de cadena. en el miembro LEN del tag de cadena.

2. En el valor LEN, introduzca el nmero de caracteres


que contiene la cadena.
4 52 La cadena de salida es mayor que el destino. Prepare un nuevo tipo de datos de cadena que sea
suficientemente grande para la cadena de salida. Use el
nuevo tipo de datos de cadena como tipo de datos para
el destino.

Publicacin 1756-RM003K-ES-P Julio 2008 619


Captulo 19 Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Ejecucin:

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin La instruccin convierte Source.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

Ejemplo: Cuando temp_high se establece, la instruccin DTOS convierte en una


cadena de caracteres ASCII el valor en msg_num y coloca el resultado
en msg_num_ascii. Los renglones subsiguientes insertan o concatenan
msg_num_ascii con otras cadenas a fin de producir un mensaje
completo para un terminal de pantalla.

Lgica de escalera de rels

temp_high DTOS
DTOS
DINT
DINTto String
to String
Source msg_num
Source msg_num
23
Dest 23
msg_num_ascii
Dest msg_num_ascii 23
'23'

Texto estructurado

IF temp_high THEN

DTOS(msg_num,msg_num_ascii);

temp_high := 0;

END_IF;

620 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER) Captulo 19

REAL en cadena (RTOS) La instruccin RTOS produce la representacin ASCII de un valor


REAL.

Operandos:

Lgica de escalera de rels


RTOS
RTOS
Real
Realto to
String
String
Source
Source ??
????
Dest
Dest ??
????

Operando Tipo Formato Introduzca Notas


Source REAL tag el tag que contiene el valor
REAL
Destination cadena tag el tag en que se almacena Los tipos de datos de cadena son:
el valor ASCII
tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted
cree

RTOS(Source,Dest);
Texto estructurado

Los operandos son iguales a los de la instruccin RTOS de lgica de


escalera de rels.

Descripcin: La instruccin RTOS convierte Source a una cadena de caracteres


ASCII y coloca el resultado en Destination.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:

Tipo Cdigo Causa Mtodo de recuperacin


4 51 El valor LEN del tag de cadena es mayor que el tamao 1. Verifique que ninguna instruccin est escribiendo
de DATA del tag de cadena. en el miembro LEN del tag de cadena.

2. En el valor LEN, introduzca el nmero de caracteres


que contiene la cadena.
4 52 La cadena de salida es mayor que el destino. Prepare un nuevo tipo de datos de cadena que sea
suficientemente grande para la cadena de salida. Use el
nuevo tipo de datos de cadena como tipo de datos para
el destino.

Publicacin 1756-RM003K-ES-P Julio 2008 621


Captulo 19 Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Ejecucin:

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin La instruccin convierte Source.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

Ejemplo: Cuando send_data se establece, la instruccin RTOS convierte en una


cadena de caracteres ASCII el valor en data_1 y coloca el resultado en
data_1_ascii. Los renglones subsiguientes insertan o concatenan
data_1_ascii con otras cadenas para producir un mensaje completo
para un terminal de pantalla.

Es posible que se perciba una pequea diferencia entre las partes


fraccionarias de Source y Destination.

Lgica de escalera de rels

send_data RTOS
RTOS
Real
Realto String
to String
Source data_1
Source data_1
15.3001
Dest
15.3001
data_1_ascii
Dest data_1_ascii
15.301003
'15.3001003'

Texto estructurado

IF send_data THEN

RTOS(data_1,data_1_ascii);

send_data := 0;

END_IF;

622 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER) Captulo 19

Maysculas (UPPER) La instruccin UPPER convierte en maysculas los caracteres


alfabticos de una cadena.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source cadena tag el tag que contiene los caracteres que usted
desea convertir en maysculas
Destination cadena tag el tag para almacenar los caracteres en
maysculas

UPPER(Source,Dest);
Texto estructurado

Los operandos son iguales a los de la instruccin UPPER de lgica de


escalera de rels.

Descripcin: La instruccin UPPER convierte en maysculas todas las letras en


Source y coloca el resultado en Destination.
Los caracteres ASCII permiten distinguir maysculas de
minsculas. La A mayscula ($41) es diferente a la a
minscula ($61).
Si los operadores introducen directamente caracteres ASCII,
convierta en maysculas o minsculas todos los caracteres antes
de compararlos.

Los caracteres en la cadena Source que no son letras permanecen


iguales.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.

Publicacin 1756-RM003K-ES-P Julio 2008 623


Captulo 19 Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


EnableIn se establece n .a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin La instruccin convierte Source en maysculas.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

Ejemplo: Para encontrar informacin acerca de un tem especifico, un operador


introduce el nmero de catlogo del tem en el terminal ASCII.
Despus de que el controlador lee la entrada proveniente de un
terminal (terminal_read.EM se establece), la instruccin UPPER
convierte en maysculas todos los caracteres de catalog_number y
almacena el resultado en catalog_number_upper_case.
Posteriormente, un rengln subsiguiente busca en la matriz los
caracteres que coinciden con los de catalog_number_upper_case.

Lgica de escalera de rels

Texto estructurado

IF terminal_read.EM THEN

UPPER(catalog_number,catalog_number_upper_case);

terminal_read.EM := 0;

END_IF;

624 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER) Captulo 19

Minsculas (Lower Case La instruccin LOWER convierte en minsculas los caracteres


alfabticos de una cadena.
(LOWER))
Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Source cadena tag el tag que contiene los caracteres que usted
desea convertir en minsculas
Destination cadena tag el tag para almacenar los caracteres en
minsculas

LOWER(Source,Dest);
Texto estructurado

Los operandos son iguales a los de la instruccin LOWER de lgica de


escalera de rels.

Descripcin: La instruccin LOWER convierte en minsculas todas las letras en


Source y coloca el resultado en Destination.
Los caracteres ASCII permiten distinguir maysculas de
minsculas. La A mayscula ($41) es diferente a la a
minscula ($61).
Si los operadores introducen directamente caracteres ASCII,
convierta en maysculas o minsculas todos los caracteres antes
de compararlos.

Los caracteres de la cadena Source que no son letras permanecen


iguales.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.

Publicacin 1756-RM003K-ES-P Julio 2008 625


Captulo 19 Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Condicin Accin de lgica de escalera de rels Accin de texto estructurado


EnableIn se establece n. a. EnableIn siempre se establece.

La instruccin se ejecuta.
ejecucin de la instruccin La instruccin convierte Source en minsculas.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.

Ejemplo: Para encontrar informacin acerca de un tem especifico, un operador


introduce el nmero de catlogo en un terminal ASCII. Despus de
que el controlador lee la entrada proveniente de un terminal
(terminal_read.EM se establece) la instruccin LOWER convierte en
minsculas todos los caracteres de item_number y almacena el
resultado en item_number_lower_case. Posteriormente, un rengln
subsiguiente busca en la matriz los caracteres que coinciden con los
de item_number_lower_case.

Lgica de escalera de rels

Texto estructurado

IF terminal_read.EM THEN

LOWER(item_number,item_number_lower_case);

terminal_read.EM := 0;

END_IF;

626 Publicacin 1756-RM003K-ES-P Julio 2008


Captulo 20

Instrucciones de depuracin
(BPT, TPT)

Introduccin Use las instrucciones de depuracin para monitorear el estado de


la lgica cuando est en condiciones determinadas por usted.
Estas instrucciones slo son compatibles con el software RSLogix
Emulate 5000, con el cual usted puede emular un controlador
Logix 5000 en su computadora personal.

Si desea Use esta instruccin Disponible en estos lenguajes Vea la pgina


detener la emulacin del programa cuando un BPT lgica de escalera de rels 627
rengln es verdadero
registrar datos que usted selecciona cuando un TPT lgica de escalera de rels 631
rengln es verdadero

Puntos de interrupcin Los puntos de interrupcin detienen la emulacin del programa


cuando un rengln es verdadero.
(BPT)
Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Formato Cadena tag Una cadena que establece el formateo del
texto que aparece en la ventana de rastreo
del punto de interrupcin.
Rastrear BOOL, SINT, tag El tag que tiene un valor que usted desea
esto INT, DINT, REAL mostrar en la ventana de rastreo.

Descripcin:

Los puntos de interrupcin se programan con la instruccin de salida


de punto de interrupcin (BPT). Cuando las entradas en un rengln
que contiene una instruccin BPT son verdaderas, la instruccin BPT
detiene la ejecucin del programa. El software muestra una ventana
que indica que se activ el punto de interrupcin y los valores que lo
activaron.

627Publicacin 1756-RM003K-ES-P Julio 2008 627


Captulo 20 Instrucciones de depuracin (BPT, TPT)

Cuando se activa un punto de interrupcin, el emulador muestra una


ventana para informar que se produjo un punto de interrupcin.
La barra de ttulo de la ventana muestra la ranura que contiene el
emulador que encontr el punto de interrupcin.

Cuando usted hace clic en OK, el emulador reanuda la ejecucin del


programa. Si las condiciones que activaron el punto de interrupcin
persisten, el punto de interrupcin volver a ocurrir.

Adems el emulador abre una ventana de rastreo del punto de


interrupcin. La ventana de rastreo muestra informacin acerca del
punto de interrupcin y los valores.

Cuando se activa un punto de interrupcin, usted no podr editar su


ATENCIN
proyecto hasta que permita que contine la ejecucin. Puede entrar
en lnea con el emulador para observar el estado de su proyecto, pero
no podr editarlo. Si intenta aceptar una edicin de rengln mientras
que est activado un punto de interrupcin, aparece un cuadro de
dilogo que indica que el controlador no est en el modo correcto.

Formato de cadena

Con la cadena de formato en las instrucciones de punto de rastreo y


punto de interrupcin, puede controlar cmo aparecen los tags
rastreados en las ventanas de punto de interrupcin o en los rastreos.
El formato de la cadena se muestra aqu:

encabezado:(texto)%(tipo)

donde encabezado es una cadena de texto que identifica el punto de


rastreo o el punto de interrupcin, texto es una cadena que describe el
tag (o cualquier otro texto que usted seleccione) y %(tipo) indica el
formato del tag. Usted necesita un indicador de tipo para cada tag que
est rastreando con la instruccin de punto de rastreo o punto de
interrupcin.

Por ejemplo, podra formatear una cadena de punto de rastreo como


se muestra aqu:

Mi punto de rastreo:Tag 1 = %e y Tag 2 = %d

El %e formatea el primer tag rastreado como valor con punto flotante


(coma flotante) de doble precisin con un exponente, y %d formatea
el segundo tag rastreado como valor entero decimal con signo.

En este caso, usted tendra una instruccin de punto de rastreo con


dos operandos de rastreo (Trace This) (uno para un valor REAL y uno
para un valor INT, aunque el valor de cualquier tag puede formatearse
con cualquier indicador).

628 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de depuracin (BPT, TPT) Captulo 20

La ventana de punto de rastreo resultante que aparecera cuando se


activa el punto de rastreo sera similar a esta.

El encabezado (el texto que precede el


El nmero de ranura indica la ranura que signo de dos puntos en la cadena de
contiene el mdulo emulador que tiene formato) aparece aqu.
el punto de rastreo o el punto de
interrupcin rastreado en la ventana de
rastreo.

El texto para el valor REAL (representado


en la cadena de formato mediante %e) El texto para el valor
aparece aqu. INT (representado en la cadena de
formato mediante %d) aparece aqu.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin: Accin de lgica de escalera de rels


preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera La condicin de salida de rengln se establece como verdadera.

La ejecucin salta al rengln que contiene la instruccin LBL con el nombre de etiqueta
referenciado.
post-escn La condicin de salida de rengln se establece como falsa.

Ejemplo: Usted puede mostrar muchos valores de tag con la instruccin BPT.
Sin embargo, la cadena de formateo puede contener slo
82 caracteres. Puesto que la cadena de formateo requiere dos
caracteres para cada tag que usted desea en el punto de interrupcin,
no podr rastrear ms de 41 tags con una sola instruccin BPT.
Sin embargo, para separar datos de tag en sus rastreos necesitar
incluir espacios y otro formateo, reduciendo as el nmero de valores
de tag que puede mostrar eficazmente una instruccin BPT a mucho
menos de 41.

Publicacin 1756-RM003K-ES-P Julio 2008 629


Captulo 20 Instrucciones de depuracin (BPT, TPT)

Este rengln muestra un punto de interrupcin que detiene la


ejecucin del programa cuando un valor analgico es mayor que 3.02
o menor que 2.01.

Usted desea mostrar la informacin del punto de interrupcin en la


cadena Formato (myformat). En este caso, la cadena de formato
contiene el siguiente texto:

Punto de interrupcin:El valor de entrada es %f

Cuando el punto de interrupcin se activa, la ventana de rastreo de


punto de interrupcin muestra los caracteres antes del signo de dos
puntos (Breakpoint) en la barra de ttulo de la ventana de rastreo.
Los dems caracteres conforman los rastreos. En este ejemplo, %f
representa el primer tag (y, en este caso, el nico) que se va a rastrear
(analogvalue).

Los rastreos resultantes se muestran aqu.

630 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de depuracin (BPT, TPT) Captulo 20

Puntos de rastreo (TPT) Datos de registro de puntos de rastreo que usted selecciona cuando
un rengln es verdadero.

Operandos:

Lgica de escalera de rels

Operando Tipo Formato Descripcin


Format Cadena tag Una cadena que establece el formateo de los
informes de rastreo (tanto en pantalla como
registrados en el disco).
Trace This BOOL, SINT, tag El tag que usted desea rastrear.
INT, DINT,
REAL

Descripcin:

Los puntos de rastreo se programan con la instruccin de salida punto


de rastreo (BPT). Cuando las entradas en un rengln que contiene
una instruccin TPT son verdaderas, la instruccin TPT escribe una
entrada de rastreo a una pantalla de rastreo o archivo de registros.

Usted puede rastrear muchos tags con la instruccin TPT. Sin


embargo, la cadena de formateo puede contener slo 82 caracteres.
Puesto que la cadena de formateo requiere dos caracteres para cada
tag que usted desea rastrear, no podr rastrear ms de 41 tags con una
sola instruccin TPT. Sin embargo, para separar datos de tags en sus
rastreos, necesitar incluir espacios y otro formateo, lo cual reduce el
nmero de tags que puede rastrear eficazmente una instruccin TPT a
mucho menos de 41.

Formato de cadena

Con la cadena de formato en las instrucciones de punto de rastreo y


punto de interrupcin, puede controlar cmo aparecen los tags
rastreados en las ventanas de rastreo o punto de interrupcin.
El formato de la cadena se muestra aqu:

encabezado:(texto)%(tipo)

donde encabezado es una cadena de texto que identifica el punto de


rastreo o el punto de interrupcin, texto es una cadena que describe el
tag (o cualquier otro texto que usted seleccione) y %(tipo) indica el
formato del tag. Usted necesita un indicador de tipo para cada tag que
est rastreando con la instruccin de punto de rastreo o punto de
interrupcin.

Publicacin 1756-RM003K-ES-P Julio 2008 631


Captulo 20 Instrucciones de depuracin (BPT, TPT)

Por ejemplo, podra formatear una cadena de punto de rastreo como


se muestra aqu:

Mi punto de rastreo:Tag 1 = %e y Tag 2 = %d

El %e formatea el primer tag rastreado como valor con punto flotante


(coma flotante) de doble precisin con un exponente, y %d formatea
el segundo tag rastreado como valor entero decimal con signo.

En este caso, usted tendra una instruccin de punto de rastreo con


dos operandos de rastreo (Trace This) (uno para un valor REAL y uno
para un valor INT, aunque el valor de cualquier tag puede formatearse
con cualquier indicador).

La ventana de punto de rastreo resultante que aparecera cuando se


activa el punto de rastreo sera similar a esta.

El encabezado (el texto que precede el


El nmero de ranura indica la ranura que signo de dos puntos en la cadena de
contiene el mdulo emulador que tiene formato) aparece aqu.
el punto de rastreo o el punto de
interrupcin rastreado en la ventana de
rastreo.

El texto para el valor REAL (representado


en la cadena de formato mediante %e) El texto para el valor
aparece aqu. INT (representado en la cadena de
formato mediante %d) aparece aqu.

. Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejecucin:

Condicin: Accin de Lgica de escalera de rels


preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera La condicin de salida de rengln se establece como verdadera.

La ejecucin salta al rengln que contiene la instruccin LBL con el nombre de etiqueta
referenciado.
post-escn La condicin de salida de rengln se establece como falsa.

632 Publicacin 1756-RM003K-ES-P Julio 2008


Instrucciones de depuracin (BPT, TPT) Captulo 20

Ejemplo: Este rengln activa un rastreo de tres valores analgicos cuando


cualquiera de ellos excede un valor especfico (30.01).

Usted desea mostrar la informacin del punto de rastreo en la cadena


Formato (myformat). En este caso, la cadena de formato contiene este
texto:

Rastreo de entradas analgicas:Entradas analgicas = %f, %f y %f

Cuando el punto de rastreo se activa, los caracteres antes del signo de


dos puntos (Rastreo de entradas analgicas) aparecen en la barra de
ttulo de la ventana de rastreo. Los dems caracteres conforman los
rastreos. En este ejemplo, %f representa los tags que se van a rastrear
(analogvalue1, analogvalue2 y analogvalue3).

Los rastreos resultantes se muestran aqu.

Cuando este rastreo se registra en el disco, los caracteres antes del


signo de dos puntos aparecen en los rastreos.

Publicacin 1756-RM003K-ES-P Julio 2008 633


Captulo 20 Instrucciones de depuracin (BPT, TPT)

Esto indica cul punto de rastreo caus cul entrada de rastreo. ste
es un ejemplo de una entrada de rastreo. Rastreo de entradas
analgicas: es el texto de encabezado de la cadena de formato del
punto de rastreo.

Rastreo de entradas analgicas:Entradas analgicas = 31.00201,


30.282000 y 30.110001

634 Publicacin 1756-RM003K-ES-P Julio 2008


Apndice A

Atributos comunes

Introduccin Este apndice describe los atributos comunes en las instrucciones


Logix.

Si desea informacin acerca de Vea la pgina


Valores inmediatos 635
Conversiones de datos 635

Valores inmediatos Cada vez que usted introduce un valor inmediato (constante) en
formato decimal (por ejemplo, -2, 3), el controlador almacena el valor
usando 32 bits. Si introduce un valor en una base diferente a la
decimal como, por ejemplo, binario o hexadecimal, y no especifica
todos y cada uno de los 32 bits, el controlador coloca un cero en los
bits que usted no especifica (los rellena con ceros).

EJEMPLO Relleno con cero de valores inmediatos

Si introduce El controlador almacena


-1 16#ffff ffff (-1)
16#ffff (-1) 16#0000 ffff (65535)
8#1234 (668) 16#0000 029c (668)
2#1010 (10) 16#0000 000a (10)

Conversiones de datos Las conversiones de datos ocurren cuando usted mezcla diferentes
tipos de datos en la programacin:

Cuando se programa en Pueden ocurrir conversiones cuando usted


Lgica de escalera de rels Mezcla diferentes tipos de datos en los parmetros dentro
de una instruccin
Bloque de funciones Cablea dos parmetros que tienen diferentes tipos de datos

635Publicacin 1756-RM003K-ES-P Julio 2008 635


Apndice A Atributos comunes

Las instrucciones se ejecutan ms rpidamente y requieren menos


memoria si todos los operandos de la instruccin usan:
el mismo tipo de datos
un tipo de datos ptimo:
En la seccin Operandos de cada instruccin en este
manual, un tipo de datos en negrita indica un tipo de datos
ptimo.
Los tipos de datos DINT y REAL son generalmente los tipos
de datos ptimos.
La mayora de las instrucciones de bloque de funciones slo
aceptan un tipo de datos (el tipo de datos ptimo) para sus
operandos.

Si usted mezcla diferentes tipos de datos y usa tags que no son del
tipo de datos ptimo, el controlador convierte los datos segn estas
reglas.

Es alguno de los operandos un valor REAL?

Si Los operandos de entrada (por ejemplo, origen, tag en una


expresin, lmite) se convierten en:
La respuesta REAL
es afirmativa
La respuesta DINT
es negativa

Despus de la ejecucin de la instruccin, el resultado (un valor


DINT o REAL) se convierte en el tipo de datos del destino, si es
necesario.

Usted no puede especificar un tag BOOL en una instruccin que


opera con tipos de datos enteros o REAL.

Puesto que la conversin de datos requiere tiempo y memoria


adicional, usted puede aumentar la eficiencia de su programa si:

usa el mismo tipo de datos en toda la instruccin


minimiza el uso de los tipos de datos SINT o INT

En otras palabras, use todos los tags DINT o tags REAL, junto con
valores inmediatos, en sus instrucciones.

En las siguientes secciones se explica cmo se convierten los datos


cuando usted usa tags SINT o INT o cuando mezcla diferentes tipos
de datos.

636 Publicacin 1756-RM003K-ES-P Julio 2008


Atributos comunes Apndice A

SINT o INT en DINT

En las instrucciones que convierten valores SINT o INT en valores


DINT, las secciones Operandos en este manual identifican el
mtodo de conversin.

Este mtodo de conversin Convierte datos colocando


Extensin de signo el valor del bit del extremo izquierdo (el signo del valor)
en cada posicin de bit a la izquierda de los bits
existentes hasta que haya 32 bits.
Relleno con ceros ceros a la izquierda de los bits existentes hasta que haya
32 bits.

Los siguientes ejemplos muestran los resultados de convertir un valor


mediante extensin de signo y relleno con ceros.

Este valor 2#1111_1111_1111_1111 (-1)


Se convierte en 2#1111_1111_1111_1111_1111_1111_1111_1111 (-1)
este valor mediante
extensin de signo
Se convierte en 2#0000_0000_0000_0000_1111_1111_1111_1111 (65535)
este valor mediante
relleno con ceros

Puesto que los valores inmediatos siempre se rellenan con ceros,


la conversin de un valor SINT o INT puede producir resultados
inesperados. En el siguiente ejemplo, la comparacin es falsa porque
Source A, un INT, se convierte mediante extensin de signo; mientras
que Source B, un valor inmediato, se rellena con ceros.
der Logic Listing - Total number of rungs: 3
EQU
EQU
Igual
Equala (Equal)
SourceAA
Source remote_rack_1:I.Data[0]
remote_rack_1:I.Data[0]
2#1111_1111_1111_1111
2#1111_1111_1111_1111
SourceBB 2#1111_1111_1111_1111
Source 2#1111_1111_1111_1111
42093

Publicacin 1756-RM003K-ES-P Julio 2008 637


Apndice A Atributos comunes

Si utiliza un tag SINT o INT y un valor inmediato en una instruccin


que convierte datos mediante extensin de signo, use uno de estos
mtodos para manejar los valores inmediatos:

Especifique cualquier valor inmediato en la base decimal

Si va a introducir el valor en una base diferente a la decimal,


especifique los 32 bits del valor inmediato. Para ello, introduzca
el valor del bit del extremo izquierdo en cada posicin de bit a
la izquierda hasta que haya 32 bits.

Cree un tag para cada operando y use el mismo tipo de datos en


toda la instruccin. Para asignar un valor constante, realice uno
de los siguientes procedimientos:

Introdzcalo en uno de los tags


Aada una instruccin MOV que mueva el valor a uno de los
tags.
Use una instruccin MEQ para verificar slo los bits requeridos

Los siguientes ejemplos muestran dos maneras de mezclar un valor


inmediato con un tag INT. En ambos ejemplos se verifican los bits de
un mdulo de E/S 1771 para determinar si todos los bits estn
activados. Puesto que la palabra de datos de entrada de un mdulo de
E/S 1771 es un tag INT, lo ms fcil es usar un valor constante de
16 bits.

EJEMPLO Mezcla de un tag INT con un valor inmediato


Puesto que remote_rack_1:I.Data[0] es un tag INT, el valor con
el cual se va a verificar tambin se introduce como un tag INT.

EQU
Equal
Source A remote_rack_1:I.Data[0]
2#1111_1111_1111_1111
Source B int_0
2#1111_1111_1111_1111
42093

EJEMPLO Mezcla de un tag INT con un valor inmediato


Puesto que remote_rack_1:I.Data[0] es un tag INT,
el valor con el cual se va a verificar primero se
mueve a int_0, tambin un tag INT. Posteriormente
la instruccin EQU compara ambos tags.
2#1111_1111_1111_1111

MOV EQU
Move Equal
Source 2#1111_1111_1111_1111 Source A remote_rack_1:I.Data[0]
2#1111_1111_1111_1111
Dest int_0 Source B int_0
2#1111_1111_1111_1111 2#1111_1111_1111_1111
42093

638 Publicacin 1756-RM003K-ES-P Julio 2008


Atributos comunes Apndice A

Entero en REAL

El controlador almacena valores REAL en formato de valor con punto


flotante (coma flotante) de precisin simple IEEE. ste utiliza un bit
para el signo del valor, 23 bits para el valor base y ocho bits para el
exponente (32 bits en total). Si usted mezcla un tag de nmero entero
(SINT, INT o DINT) y un tag REAL como entradas en la misma
instruccin, el controlador convierte en un valor REAL el valor entero,
antes de que se ejecute la instruccin.

Un valor SINT o INT siempre se convierte en el mismo valor


REAL.

Un valor DINT puede no convertirse al mismo valor REAL:

Un valor REAL usa hasta 24 bits para el valor base (23 bits
almacenados ms un bit oculto).
Un valor DINT usa hasta 32 bits para el valor (uno para el
signo y 31 para el valor).
Si el valor DINT requiere ms de 24 bits significativos, puede
no convertirse en el mismo valor REAL. De ser as, el
controlador se redondear al valor REAL ms cercano usando
24 bits significativos.

DINT en SINT o INT

Para convertir un valor DINT en un valor SINT o INT, el controlador


trunca la porcin superior del DINT y establece el indicador de estado
de overflow, si es necesario. El siguiente ejemplo muestra el resultado
de una conversin de DINT en SINT o INT.

EJEMPLO Conversin de DINT en INT y SINT

Este valor DINT Se convierte en este valor menor


16#0001_0081 (65,665) INT: 16#0081 (129)
SINT: 16#81 (-127)

Publicacin 1756-RM003K-ES-P Julio 2008 639


Apndice A Atributos comunes

REAL en un nmero entero

Para convertir un valor REAL en un valor entero, el controlador


redondea la parte fraccionaria y trunca la porcin superior de la parte
no fraccionaria. Si se pierden datos, el controlador establece el
indicador de estado de overflow. Los nmeros se redondean de la
siguiente manera:

Los nmeros diferentes de x.5 se redondean al nmero entero


ms cercano.
X.5 se redondea al nmero par ms cercano.

El siguiente ejemplo muestra el resultado de convertir valores REAL en


valores DINT.

EJEMPLO Conversin de valores REAL en valores DINT

Este valor REAL Se convierte en este valor DINT


-2.5 -2
-1.6 -2
-1.5 -2
-1.4 -1
1.4 1
1.5 2
1.6 2
2.5 2

IMPORTANTE Los indicadores de estado aritmtico se establecen segn el


valor que se est almacenando. Las instrucciones que
normalmente no afectan palabras clave de estado aritmticas
pueden parecer que lo hacen si ocurre una conversin de tipo
debido a una mezcla de tipos de datos en los parmetros de
instruccin. El proceso de conversin de tipo establece
palabras clave de estado aritmtico.

640 Publicacin 1756-RM003K-ES-P Julio 2008


Apndice B

Atributos de bloque de funciones

Introduccin Este apndice describe aspectos que son nicos con las instrucciones
de bloque de funciones. Repase la informacin proporcionada en este
apndice para asegurarse de que entiende cmo funcionarn las
rutinas de bloque de funciones.

IMPORTANTE Cuando se programa un bloque de funciones, es necesario restringir el rango de


unidades de ingeniera a +/-10+/-15 puesto que los clculos de punto flotante
(coma flotante) internos se realizan usando punto flotante (coma flotante) de
precisin simple. Las unidades de ingeniera que no se encuentran dentro de este
rango pueden provocar una prdida de exactitud si los resultados se acercan a las
limitaciones del punto flotante (coma flotante) de precisin simple (+/-10+/-38).

Seleccin de elementos de Para controlar un dispositivo, use los siguientes elementos:


bloques de funciones
referencia de entrada (IREF) bloque de funciones referencia de salida (OREF)

conector de
cable de
salida (OCON)

conector de
cable de entrada
(ICON)

Use la siguiente tabla para seleccionar los elementos de bloques de


funciones:

Si usted desea Use una


suministrar un valor desde un dispositivo de entrada referencia de entrada (IREF)
o tag
enviar un valor a un dispositivo de salida o tag referencia de salida (OREF)

641Publicacin 1756-RM003K-ES-P Julio 2008 641


Apndice B Atributos de bloque de funciones

Si usted desea Use una


realizar una operacin con un valor o valores de bloque de funciones
entrada, y producir un valor o valores de salida
transferir datos entre bloques de funciones cuando conector de cable de salida (OCON) y un conector de
stos estn: cable de entrada (ICON)

bastante separados en la misma hoja


en hojas diferentes dentro de la misma rutina
dispersar datos a varios puntos en la rutina conector de cable de una salida (OCON) y varios
conectores de cable de entrada (ICON)

Enclavamiento de datos Si usted usa una IREF para especificar datos de entrada en una
instruccin de bloques de funciones, los datos en la IREF se enclavan
para el escn de la rutina de bloque de funciones. La IREF enclava
datos desde los tags bajo el control del programa y tags bajo el control
del controlador. El controlador actualiza todos los datos IREF al
comienzo de cada escn.

IREF

En este ejemplo, el valor de tagA se almacena al comienzo de la


ejecucin de la rutina. El valor almacenado se usa cuando se ejecuta
Block_01. El mismo valor almacenado tambin se usa cuando se
ejecuta Block_02. Si el valor de tagA cambia durante la ejecucin de la
rutina, el valor almacenado de tagA en IREF no cambia hasta la
siguiente ejecucin de la rutina.
Block_01

tagA

Block_02

642 Publicacin 1756-RM003K-ES-P Julio 2008


Atributos de bloque de funciones Apndice B

Este ejemplo es igual al anterior. El valor de tagA se almacena slo


una vez al comienzo de la ejecucin de la rutina. La rutina usa este
valor almacenado en toda la rutina.
Block_01

tagA

Block_02

tagA

Comenzando con el software RSLogix 5000, versin 11, se puede usar


el mismo tag en mltiples IREF y un OREF en la misma rutina. Puesto
que los valores de tags en las IREF se enclavan en cada escn en toda
la rutina, todas las IREF usarn el mismo valor, aunque una OREF
obtenga un valor de tag diferente durante la ejecucin de la rutina. En
este ejemplo, si tagA tiene un valor de 25.4 cuando la rutina comienza
a ejecutar este escn, y Block_01 cambia el valor de tagA a 50.9, la
segunda IREF cableada en Block_02 seguir usando un valor de 25.4
cuando Block_02 ejecute este escn. El nuevo valor de tagA de 50.9
no ser usado por ninguna IREF en esta rutina hasta el comienzo del
siguiente escn.

Publicacin 1756-RM003K-ES-P Julio 2008 643


Apndice B Atributos de bloque de funciones

Orden de ejecucin El software de programacin RSLogix 5000 determina


automticamente el orden de ejecucin de los bloques de funciones
en una rutina cuando usted:

verifica una rutina de bloque de funciones


verifica un proyecto que contiene una rutina de bloque de
funciones
descarga un proyecto que contiene una rutina de bloque de
funciones

El orden de ejecucin se define cableando bloques de funciones unos


con otros, e indicando el flujo de datos de los cables de
retroalimentacin, si es necesario.

Si los bloques de funciones no estn cableados unos con otros, no


importa cul bloque se ejecuta primero. No existe un flujo de datos
entre los bloques.

Si usted cablea los bloques de manera secuencial, el orden de


ejecucin va de entrada a salida. Las entradas de un bloque requieren
que los datos estn disponibles para que el controlador pueda
ejecutar dicho bloque. Por ejemplo, el bloque 2 tiene que ejecutarse
antes que el bloque 3 porque las salidas del bloque 2 alimentan las
entradas del bloque 3.

1 2 3

El orden de ejecucin se relaciona slo a los bloques que estn


cableados unos con otros. El siguiente es un buen ejemplo porque
los dos grupos de bloques no estn cableados unos con otros. Los
bloques dentro de un grupo especfico se ejecutan en el orden
apropiado en relacin con los bloques de dicho grupo.

1 3 5

2 4 6

644 Publicacin 1756-RM003K-ES-P Julio 2008


Atributos de bloque de funciones Apndice B

Resolucin de un lazo

Para crear un lazo de retroalimentacin alrededor de un bloque,


cablee un pin de salida de un bloque a un pin de entrada del mismo
bloque. El siguiente es un buen ejemplo. El lazo contiene un solo
bloque, por lo que el orden de ejecucin no es importante.

Este pin de entrada usa una


salida que el bloque produjo en
el escn anterior.

Si hay un grupo de bloques en un lazo, el controlador no puede


determinar cul bloque debe ejecutarse primero. En otras palabras,
no puede resolver el lazo.

? ? ?

Para identificar cul bloque debe ejecutarse primero, marque el cable


de entrada que crea el lazo (el cable de retroalimentacin) con el
indicador Suponer datos disponibles. En el siguiente ejemplo, el
bloque 1 usa la salida del bloque 3 que se produjo en la ejecucin
previa de la rutina.

1 2 3

Este pin de entrada usa la salida


que el bloque 3 produjo en el
escn anterior.

Indicador Suponer datos disponibles

El indicador Suponer datos disponibles define el flujo de datos dentro


del lazo. La flecha indica que los datos sirven como entrada para el
primer bloque en el lazo.

Publicacin 1756-RM003K-ES-P Julio 2008 645


Apndice B Atributos de bloque de funciones

No marque todos los cables de un lazo con el indicador Suponer datos


disponibles.

Esto es correcto Esto no es correcto

1 2 ? ?

Indicador Suponer datos


disponibles El controlador no puede resolver el lazo porque los cables usan el
indicador Suponer datos disponibles.

El indicador Suponer datos disponibles define el flujo de datos


dentro del lazo.

646 Publicacin 1756-RM003K-ES-P Julio 2008


Atributos de bloque de funciones Apndice B

Resolucin del flujo de datos entre dos bloques

Si usted usa dos o ms cables para conectar dos bloques, use los
mismos indicadores de flujo de datos para todos los cables entre los
dos bloques.

Esto es correcto Esto no es correcto

Ningn cable usa el indicador Suponer datos disponibles. Un cable usa el indicador Suponer datos disponibles y el otro
cable no.

Indicador Suponer datos


disponibles

Ambos cables usan el indicador Suponer datos disponibles.

Creacin de un retardo de escn

Para producir un retardo de escn entre bloques, use el indicador


Suponer datos disponibles. En el siguiente ejemplo, el bloque 1 se
ejecuta primero. Utiliza la salida del bloque 2 que se produjo en el
escn anterior de la rutina.

2 1

Indicador Suponer datos disponibles

Publicacin 1756-RM003K-ES-P Julio 2008 647


Apndice B Atributos de bloque de funciones

Resumen

En resumen, una rutina de bloque de funciones se ejecuta en este


orden:

1. El controlador enclava todos los valores de datos en las IREF.

2. El controlador ejecuta los otros bloques de funciones en el


orden determinado segn su cableado.

3. El controlador escribe salidas en las OREF.

Respuestas de bloque de En general, las instrucciones de bloque de funciones que mantienen


el historial no actualizan el historial con valores NAN o INF cuando
funciones a condiciones de se produce un overflow. Cada instruccin tiene una de estas
overflow respuestas frente a una condicin de overflow:

Respuesta 1: Respuesta 2: Respuesta 3:

Los bloques ejecutan su algoritmo y Los bloques con lmite de salida ejecutan La condicin de overflow no se aplica. Estas
verifican el resultado para NAN o INF. su algoritmo y verifican el resultado para instrucciones generalmente tienen una
Si NAN o INF, el bloque establece la NAN o INF. Los lmites de salida son salida booleana.
salida NAN o INF. definidos por los parmetros de entrada
HighLimit y LowLimit. Si INF, el bloque
establece la salida un resultado limitado.
Si NAN, los lmites de salida no se usan y
el bloque establece la salida NAN.
ALMNTCH HLL BANDOSRI

DEDTPMUL INTG BNOTRESD

DERVPOSP PI BORRTOR

ESELRLIM PIDE BXORSETD

FGENRMPS SCL CUTDTOFR

HPFSCRV SOC D2SDTONR

LDL2SEL D3SD

LDLGSNEG DFF

LPFSRTP JKFF

MAVESSUM OSFI

MAXCTOT

MINCUPDN

MSTD

MUX

648 Publicacin 1756-RM003K-ES-P Julio 2008


Atributos de bloque de funciones Apndice B

Modos de temporizacin Estas instrucciones de control de procesos y de variadores aceptan


diferentes modos de temporizacin.

DEDT LDLG RLIM


DERV LPF SCRV
HPF NTCH SOC
INTG PI TOT
LDL2 PIDE

Hay tres modos de temporizacin diferentes:

Modo de Descripcin
temporizacin
peridico El modo peridico es el modo predeterminado y es adecuado para la mayora de las aplicaciones de control.
Recomendamos que coloque las instrucciones que utilizan este modo en una rutina que se ejecute en una
tarea peridica. El tiempo delta (DeltaT) para la instruccin se determina de la siguiente manera:
Si la instruccin se DeltaT es igual a
ejecuta en
una tarea peridica el perodo de la tarea
un evento o una tarea el tiempo transcurrido desde la ejecucin previa
continua
El controlador trunca el tiempo transcurrido a milisegundos (ms) enteros. Por ejemplo,
si el tiempo transcurrido = 10.5 ms, el controlador establece DeltaT = 10 ms.
La actualizacin de la entrada del proceso necesita sincronizarse con la ejecucin de la tarea o muestrearse
5 - 10 veces ms rpido que el tiempo en que se ejecuta la tarea a fin de minimizar los errores de muestreo
entre la entrada y la instruccin.
sobremuestreo En el modo de sobremuestreo, el tiempo delta (DeltaT) usado por la instruccin es el valor escrito en el
parmetro OversampleDT de la instruccin. Si la entrada del proceso tiene un valor de sello de hora, use en
lugar de ello el modo de muestreo en tiempo real.

Aada lgica al programa para controlar cundo se ejecuta la instruccin. Por ejemplo, puede usar un
temporizador para establecer el valor de OversampleDeltaT y as controlar la ejecucin usando la entrada
EnableIn de la instruccin.

La entrada del proceso necesita muestrearse 5 - 10 veces ms rpido que el tiempo en que se ejecuta la
instruccin a fin de minimizar los errores de muestreo entre la entrada y la instruccin.

Publicacin 1756-RM003K-ES-P Julio 2008 649


Apndice B Atributos de bloque de funciones

Modo de Descripcin
temporizacin
muestreo en tiempo real En el modo de muestreo en tiempo real, el tiempo delta (DeltaT) usado por la instruccin es la diferencia entre
dos valores de sello de hora que corresponden a las actualizaciones de la entrada del proceso. Use este modo
cuando la entrada del proceso tiene un sello de hora asociado con sus actualizaciones y usted necesita una
coordinacin precisa.

El valor del sello de hora se lee en el nombre de tag introducido para el parmetro RTSTimeStamp de la
instruccin. Normalmente este nombre de tag es un parmetro en el mdulo de entrada asociado con la
entrada del proceso.

La instruccin compara el valor RTSTime configurado (perodo de actualizacin previsto) con el DeltaT
calculado para determinar si la instruccin est leyendo cada actualizacin de la entrada del proceso. Si
DeltaT no se encuentra dentro de un milisegundo del tiempo de configuracin, la instruccin establece el bit
de estado RTSMissed para indicar que existe un problema con la lectura de actualizaciones de la entrada en
el mdulo.

Las instrucciones basadas en tiempo requieren un valor constante


para DeltaT a fin de que el algoritmo de control calcule correctamente
la salida del proceso. Si DeltaT vara, se produce una discontinuidad
en la salida del proceso. La severidad de la discontinuidad depende
de la instruccin y del rango de variacin de DeltaT. Se produce una
discontinuidad si:

la instruccin no se ejecuta durante un escn;


la instruccin se ejecuta varias veces durante una tarea;
la tarea se est ejecutando y cambia la velocidad de escn de la
tarea o el tiempo de muestreo de la entrada del proceso;
el usuario cambia el modo de base de tiempo mientras la tarea
se est ejecutando.
El parmetro Order se cambia en un bloque de filtro mientras
la tarea se est ejecutando. Al cambiar el parmetro Order se
selecciona un algoritmo de control diferente dentro de la
instruccin.

650 Publicacin 1756-RM003K-ES-P Julio 2008


Atributos de bloque de funciones Apndice B

Parmetros de instruccin comunes para modos de


temporizacin

Las instrucciones que aceptan modos de base de tiempo tienen estos


parmetros de entrada y salida:

Parmetros de entrada

Parmetro de Tipo de datos Descripcin


entrada
TimingMode DINT Selecciona el modo de ejecucin de temporizacin.

Valor: Descripcin:

0 modo peridico

1 modo de sobremuestreo

2 modo de muestreo en tiempo real

vlido = 0 a 2

valor predeterminado = 0

Cuando TimingMode = 0 y la tarea es peridica, la temporizacin peridica se establece y


DeltaT se establece en la velocidad de escn de la tarea. Cuando TimingMode = 0 y la tarea
es de evento o una tarea continua, la temporizacin peridica se habilita y DeltaT se
establece en un valor igual al tiempo transcurrido desde la ltima vez que se ejecut la
instruccin.

Cuando TimingMode = 1, la temporizacin de sobremuestreo se habilita y DeltaT se


establece en el valor del parmetro OversampleDT.

Cuando TimingMode = 2, la temporizacin del muestreo en tiempo real se habilita y DeltaT


es la diferencia entre los valores de sello de hora actual y previo que fueron ledos del
mdulo asociado con la entrada.

Si TimingMode es no vlido, la instruccin establece el bit apropiado en Status.


OversampleDT REAL Tiempo de ejecucin para temporizacin de sobremuestreo. El valor usado para DeltaT es en
segundos. Si TimingMode = 1, implica que OversampleDT = 0.0 inhabilita la ejecucin del
algoritmo de control. Si no es vlido, la instruccin establece DeltaT = 0.0 y establece el bit
apropiado en Status.

vlido = 0 a 4194.303 segundos

valor predeterminado = 0.0

Publicacin 1756-RM003K-ES-P Julio 2008 651


Apndice B Atributos de bloque de funciones

Parmetro de Tipo de datos Descripcin


entrada
RTSTime DINT Perodo de actualizacin del mdulo para temporizacin de muestreo en tiempo real. El
perodo de actualizacin DeltaT previsto es en milisegundos. El perodo de actualizacin
normalmente es el valor usado para configurar el tiempo de actualizacin del mdulo. Si no
es vlido, la instruccin establece el bit apropiado en Status e inhabilita la verificacin de
RTSMissed.

vlido = 1 a 32,767 ms

valor predeterminado = 1
TTSTimeStamp DINT Valor de sello de hora para temporizacin de muestreo en tiempo real. El valor de sello de
hora que corresponde a la ltima actualizacin de la seal de entrada. Este valor se usa para
calcular DeltaT. Si no es vlido, la instruccin establece el bit apropiado en Status, inhabilita
la ejecucin del algoritmo de control e inhabilita la verificacin de RTSMissed.

vlido = 1 a 32,767 ms (regresa de 32767 a 0)

1 conteo = 1 milisegundo

valor predeterminado = 0

Parmetros de salida

Parmetro de salida Tipo de datos Descripcin


DeltaT REAL Tiempo transcurrido entre actualizaciones. Es el tiempo transcurrido en segundos usado por
el algoritmo de control para calcular la salida del proceso.

Peridica: DeltaT = velocidad de escn de la tarea si la tarea es una tarea peridica. DeltaT =
tiempo transcurrido desde la ejecucin de la instruccin previa si la tarea es de evento o una
tarea continua.

Sobremuestreo DeltaT = OversampleDT

Muestreo en tiempo real: DeltaT = (RTSTimeStampn - RTSTimeStampn-1)


Status DINT Estado del bloque de funciones.
TimingModeInv BOOL Valor no vlido de TimingMode.
(Status.27)
RTSMissed (Status.28) BOOL Slo se usa en el modo de muestreo en tiempo real.
Se establece cuando ABS | DeltaT - RTSTime | > 1 (.001 segundo).
RTSTimeInv BOOL Valor no vlido de RTSTime.
(Status.29)
RTSTimeStampInv BOOL Valor no vlido de RTSTimeStamp.
(Status.30)
DeltaTInv (Status.31) BOOL Valor DeltaT no vlido.

652 Publicacin 1756-RM003K-ES-P Julio 2008


Atributos de bloque de funciones Apndice B

Descripcin general de los modos de temporizacin

El siguiente diagrama muestra cmo una instruccin determina el


modo de temporizacin adecuado.

Determine el modo de base


de tiempo

TimingMode = 0 TimingMode = 1 TimingMode = 2

Temporizacin peridica Temporizacin de sobremuestreo Temporizacin en tiempo real

DeltaT = OversampleDT DeltaT = RTSTimeStampn - RTSTimeStampn-1

Si DeltaT < 0 o DeltaT > 4194.303 Si DeltaT > 0, la instruccin se ejecuta.


segundos, la instruccin establece
DeltaT = 0.0 y establece el bit apropiado Si |RTSTIME - DeltaT| > 1, la instruccin establece el bit
en Status. RTSMissed en Status.

Determine el tipo de tarea Si DeltaT > 0, la instruccin se ejecuta.

Tarea peridica Evento o tarea continua

DeltaT = tiempo de escn de tarea DeltaT = tiempo transcurrido desde la


ltima ejecucin
Si DeltaT > 0, la instruccin se
ejecuta. Si DeltaT > 0, la instruccin se ejecuta.

Publicacin 1756-RM003K-ES-P Julio 2008 653


Apndice B Atributos de bloque de funciones

Control de programa/ Hay varias instrucciones compatibles con el concepto de control de


programa/operador. Estas instrucciones incluyen:
operador
Seleccin mejorada (ESEL)
Totalizador (TOT)
PID mejorado (PIDE)
Rampa y estabilizacin (RMPS)
Dispositivo de 2 estados discretos (D2SD)
Dispositivo de 3 estados discretos (D3SD)

El control de programa/operador permite controlar estas instrucciones


simultneamente desde el programa de usuario y desde un dispositivo
de interface de operador. Cuando est en control de programa,
la instruccin es controlada por las entradas del programa a la
instruccin; cuando est en control del operador, la instruccin es
controlada por las entradas del operador a la instruccin.

El control de programa u operador se determina mediante el uso de


estas entradas:

Entrada Descripcin
.ProgProgReq Una peticin del programa para ir a control
de programa.
.ProgOperReq Una peticin del programa para ir a control
de operador.
.OperProgReq Una peticin del operador para ir a control de
programa.
.OperOperReq Una peticin del operador para ir a control de
operador.

Para determinar si una instruccin est en control de programa o de


operador, examine la salida ProgOper. Si ProgOper est establecida,
la instruccin est en control del programa; si ProgOper se borra,
la instruccin est en control del operador.

El control de operador tiene precedencia sobre el control de


programa si ambos bits de peticin de entrada estn establecidos.
Por ejemplo, si ProgProgReq y ProgOperReq estn establecidos,
la instruccin pasa a control de operador.

654 Publicacin 1756-RM003K-ES-P Julio 2008


Atributos de bloque de funciones Apndice B

Las entradas de peticin de programa tienen precedencia sobre las


entradas de peticin de operador. Esto proporciona la capacidad de
usar las entradas ProgProgReq y ProgOperReq para bloquear una
instruccin en un control deseado. Por ejemplo, supongamos que una
instruccin Totalizer siempre se usar en el control de operador y que
el programa de usuario nunca controlar la ejecucin o paro de la
instruccin Totalizer En este caso, usted podra cablear un valor literal
de 1 en ProgOperReq. Con esto impedira que el operador pueda
poner Totalizer en el control de programa estableciendo OperProgReq
desde un dispositivo de interface de operador.

Puesto que la entrada ProgOperReq


siempre est establecida, presionar
el botn Program en la plantilla
(lo cual establece la entrada
OperProgReg) no tiene ningn
efecto. Normalmente, establecer
OperProgReq pone TOT en control
de programa.

Cablear un 1 en ProgOperReq
significa que el programa de usuario
desea que TOT siempre est en control
de operador.

Publicacin 1756-RM003K-ES-P Julio 2008 655


Apndice B Atributos de bloque de funciones

De igual modo, el establecer constantemente ProgProgReq puede


bloquear la instruccin en control de programa. Esto es til para las
secuencias de puesta en marcha automtica cuando usted desea que
el programa controle la accin de la instruccin sin tener que
preocuparse de que un operador tome accidentalmente el control de
la instruccin. En este ejemplo el programa establece la entrada
ProgProgReq durante la puesta en marcha y posteriormente borra la
entrada ProgProgReq una vez que concluye la puesta en marcha. Una
vez que se borra la entrada ProgProgReq, la instruccin permanece en
control de programa hasta que recibe una peticin de cambiar. Por
ejemplo, el operador podra establecer la entrada OperOperReq desde
la plantilla para asumir el control de esa instruccin. El siguiente
ejemplo muestra cmo bloquear una instruccin en control de
programa.

Cuando se establece
StartupSequenceActive, la
instruccin PIDE se coloca en
control de programa y en modo
manual. El valor StartupCV se
usa como salida de lazo.

Las entradas de peticin de operador a una instruccin siempre son


borradas por la instruccin cuando sta se ejecuta. Esto permite que
las interfaces de operador funcionen con estas instrucciones
simplemente estableciendo el bit de peticin del modo deseado. No
es necesario programar la interface de operador para restablecer los
bits de peticin. Por ejemplo, si una interface de operador establece la
entrada OperAutoReq a una instruccin PIDE, cuando se ejecuta la
instruccin PIDE, sta determina cul debe ser la respuesta apropiada
y borra OperAutoReq.

656 Publicacin 1756-RM003K-ES-P Julio 2008


Atributos de bloque de funciones Apndice B

Las entradas de peticin de programa normalmente no son borradas


por la instruccin porque stas normalmente estn cableadas como
entradas en la instruccin. Si la instruccin borra estas entradas, la
entrada sera establecida nuevamente por la entrada cableada. Puede
haber situaciones en las que usted desee usar otra lgica para
establecer las peticiones de programa de manera tal que desee que las
peticiones de programa sean borradas por la instruccin. En este caso
puede establecer la entrada ProgValueReset y la instruccin siempre
borrar las entradas de peticin del modo de programacin cuando
sta se ejecute.

En este ejemplo se usa un rengln de lgica de escalera en otra rutina


para realizar un enclavamiento monoestrable de ProgAutoReq a una
instruccin PIDE cuando se presiona un botn pulsador. Puesto que
la instruccin PIDE automticamente borra las peticiones del modo de
programacin, usted no tiene que escribir ninguna lgica de escalera
para borrar ProgAutoReq despus de que se ejecute la rutina, y la
instruccin PIDE recibir slo una peticin para pasar a Auto cada vez
que se presione el botn pulsador.

Cuando se presiona el botn pulsador TIC101AutoReq, se realiza un enclavamiento monoestrable de


ProgAutoReq para la instruccin PIDE TIC101. TIC101 se ha configurado con la entrada ProgValueReset
establecida; por lo tanto, cuando se ejecuta la instruccin PIDE, sta automticamente borra ProgAutoReq.

Publicacin 1756-RM003K-ES-P Julio 2008 657


Apndice B Atributos de bloque de funciones

Notas:

658 Publicacin 1756-RM003K-ES-P Julio 2008


Apndice C

Programacin de texto estructurado

Introduccin Este apndice describe aspectos que son nicos con la programacin
de texto estructurado. Repase la informacin proporcionada en este
apndice para asegurarse de que entiende cmo se ejecutar la
programacin de texto estructurado.

Si desea informacin acerca de Vea la pgina


Sintaxis del texto estructurado 659
Asignaciones 661
Expresiones 663
Instrucciones 670
Construcciones 671
Comentarios 687

Sintaxis del texto El texto estructurado es un lenguaje de programacin textual que usa
declaraciones para definir lo que se va a ejecutar.
estructurado
El texto estructurado no permite distinguir maysculas de
minsculas.
Use caracteres de tabulacin y de retorno de carro (lneas
separadas) para facilitar la lectura del texto estructurado. Dichos
caracteres no tienen ningn efecto en la ejecucin del texto
estructurado.

El texto estructurado no permite distinguir maysculas de minsculas.


El texto estructurado contiene estos componentes:

Trmino Definicin Ejemplos


asignacin Use una declaracin de asignacin para asignar valores a los tags. tag := expression;

(ver pgina 661) El operador := es el operador de asignacin.

Termine la asignacin con un punto y coma ;.

659Publicacin 1756-RM003K-ES-P Julio 2008 659


Apndice C Programacin de texto estructurado

Trmino Definicin Ejemplos


expresin Una expresin es parte de una declaracin de construccin o asignacin
completa. Una expresin evala segn un nmero (expresin numrica) o
(ver pgina 663) segn un estado de verdadero o falso (expresin BOOL).

Una expresin contiene:


tags Un rea de la memoria con nombre asignado, donde value1
se almacenan los datos (BOOL, SINT,INT,DINT, REAL,
cadena).
inmediatos Un valor constante. 4
operadores Un smbolo o mnemnico que especifica una tag1 + tag2
operacin dentro de una expresin.
tag1 >= value1
funciones Cuando se ejecuta, una funcin produce un valor. function(tag1)
Use parntesis para delimitar el operando de una
funcin.

Aunque su sintaxis es similar, las funciones se


diferencian de las instrucciones porque las
funciones slo pueden usarse en expresiones.
Las instrucciones no pueden usarse en expresiones.
instruccin Una instruccin es una declaracin autnoma. instruction();

(ver pgina 670) Una instruccin usa parntesis para delimitar sus operandos.

Segn la instruccin, puede haber cero, uno o varios operandos. instruction(operand);

Cuando se ejecuta, una instruccin produce uno o ms valores que son


parte de una estructura de datos.
instruction(operand1,
Termine la instruccin con un punto y coma ;. operand2,operand3);

Aunque su sintaxis es similar, las instrucciones se diferencian de las


funciones porque las instrucciones no pueden usarse en expresiones.
Las funciones slo pueden usarse en expresiones.

660 Publicacin 1756-RM003K-ES-P Julio 2008


Programacin de texto estructurado Apndice C

Trmino Definicin Ejemplos


construccin Una declaracin condicional usada para activar cdigo de texto IF...THEN
estructurado (a saber, otras declaraciones).
(ver pgina 671) CASE
Termine la construccin con un punto y coma ;.
FOR...DO

WHILE...DO

REPEAT...UNTIL

EXIT
comentario Texto que explica o aclara lo que hace una seccin de texto estructurado. //comment

(ver pgina 687) Use comentarios para facilitar la interpretacin del texto
estructurado.
Los comentarios no tienen ningn efecto en la ejecucin del texto (*start of comment . . .
estructurado. end of comment*)
Los comentarios pueden aparecer en cualquier lugar del texto
estructurado.
/*start of comment . . .
end of comment*/

Asignaciones Use una asignacin para cambiar el valor almacenado dentro de un


tag. Una asignacin tiene esta sintaxis:

tag := expression ;

donde:

Componente Descripcin
tag representa el tag que est obteniendo el nuevo valor

el tag debe ser BOOL, SINT, INT, DINT o REAL


:= es el smbolo de asignacin
expresin representa el nuevo valor que se va a asignar al tag
Si el tag es de este tipo de Use este tipo de expresin:
datos:
BOOL expresin BOOL
SINT expresin numrica

INT

DINT

REAL
; finaliza la asignacin

Publicacin 1756-RM003K-ES-P Julio 2008 661


Apndice C Programacin de texto estructurado

El tag retiene el valor asignado hasta que otra asignacin cambia el


valor.

La expresin puede ser simple, como un valor inmediato u otro


nombre de tag, o la expresin puede ser compleja e incluir varios
operadores y/o funciones Vea la siguiente seccin Expresiones en la
pgina 663 para obtener detalles.

Especifique una asignacin no retentiva

La asignacin no retentiva es diferente de la asignacin regular antes


descrita porque el tag en una asignacin no retentiva se pone en cero
cada vez que el controlador:
entra al modo de MARCHA
sale del paso de un SFC si usted configura el SFC para
Restablecimiento automtico (Esto slo se aplica si usted
incorpora la asignacin en la accin del paso o usa la accin
para llamar una rutina de texto estructurado mediante una
instruccin JSR).

Una asignacin no retentiva tiene esta sintaxis:

tag [:=] expresin ;

donde:

Componente Descripcin
tag representa el tag que obtiene el nuevo valor

el tag debe ser BOOL, SINT, INT, DINT o REAL


[:=] es el smbolo de asignacin no retentiva
expresin representa el nuevo valor que se va a asignar al tag
Si el tag es de este tipo de Use este tipo de expresin:
datos:
BOOL expresin BOOL
SINT expresin numrica

INT

DINT

REAL
; finaliza la asignacin

662 Publicacin 1756-RM003K-ES-P Julio 2008


Programacin de texto estructurado Apndice C

Asigne un carcter ASCII a una cadena

Use el operador de asignacin para asignar un carcter ASCII a un


elemento del miembro DATA de un tag de cadena. Para asignar un
carcter, especifique el valor del carcter o especifique el nombre de
tag, miembro DATA y elemento del carcter. Por ejemplo:

Esto es correcto Esto no es correcto.


string1.DATA[0]:= 65; string1.DATA[0] := A;
string1.DATA[0]:= string2.DATA[0]; string1 := string2;

Para aadir o insertar una cadena de caracteres en un tag de cadena,


use cualquiera de estas instrucciones de cadena ASCII:

Para Use esta instruccin


aadir caracteres al final de una cadena CONCAT
insertar caracteres dentro de una cadena INSERT

Expresiones Una expresin es un nombre de tag, ecuacin o comparacin. Para


escribir una expresin, use cualquiera de los siguientes:
nombre de tag que almacena el valor (variable)
nmero que usted introduce directamente en una expresin
(valor inmediato)
funciones, tales como: ABS, TRUNC
operadores, tales como: +, -, <, >, And, Or

Cuando escriba las expresiones, siga estas reglas generales:

Use cualquier combinacin de letras maysculas y minsculas.


Por ejemplo, cualquiera de estas tres variaciones de AND es
aceptable: AND, And, and.
Para requisitos ms complejos, use parntesis a fin de agrupar
expresiones dentro de otras expresiones. Esto hace que toda la
expresin sea ms fcil de leer y asegura que la expresin se
ejecute en la secuencia deseada. Consulte Determine el orden
de ejecucin en la pgina 669.

Publicacin 1756-RM003K-ES-P Julio 2008 663


Apndice C Programacin de texto estructurado

En texto estructurado usted usa dos tipos de expresiones:

Expresin BOOL: Una expresin que produce ya sea el valor BOOL


de 1 (verdadero) o 0 (falso).

Una expresin booleana usa tags booleanos, operadores


relacionales y operadores lgicos para comparar valores o
verificar si las condiciones son verdaderas o falsas. Por ejemplo,
tag1>65.
Una expresin booleana simple puede ser un simple tag BOOL.
Normalmente usted usa expresiones para condicionar la
ejecucin de otra lgica.

Expresin numrica: Una expresin que calcula un valor entero o


de punto flotante (coma flotante).

Una expresin numrica usa operadores aritmticos, funciones


aritmticas y operadores a nivel de bits. Por ejemplo, tag1+5.
A menudo usted anida una expresin numrica dentro de una
expresin booleana. Por ejemplo, (tag1+5)>65.

Use la siguiente tabla a fin de seleccionar operadores para sus


expresiones:

Si desea Entonces
Calcular un valor aritmtico Use funciones y operadores aritmticosen la pgina 665.
Comparar dos valores o cadenas Use operadores relacionalesen la pgina 666.
Verificar si determinadas condiciones son Use operadores lgicosen la pgina 668.
verdaderas o falsas
Comparar los bits dentro de valores Use operadores a nivel de bitsen la pgina 669.

664 Publicacin 1756-RM003K-ES-P Julio 2008


Programacin de texto estructurado Apndice C

Use funciones y operadores aritmticos

Usted puede combinar mltiples operadores y funciones en


expresiones aritmticas.

Los operadores aritmticos calculan nuevos valores.

Para Use este operador Tipo de datos ptimo


sumar + DINT, REAL
restar/cambiar signo - DINT, REAL
multiplicar * DINT, REAL
exponente (x a la potencia y) ** DINT, REAL
dividir / DINT, REAL
obtener el mdulo de una MOD DINT, REAL
divisin

Las funciones aritmticas realizan operaciones matemticas.


Especifique una constante, un tag no booleano o una expresin para
la funcin.

Para obtener Use esta funcin Tipo de datos


ptimo
valor absoluto ABS (numeric_expression) DINT, REAL
arco coseno ACOS (numeric_expression) REAL
arco seno ASIN (numeric_expression) REAL
arco tangente ATAN (numeric_expression) REAL
coseno COS (numeric_expression) REAL
radianes a grados DEG (numeric_expression) DINT, REAL
logaritmo natural LN (numeric_expression) REAL
logaritmo base 10 LOG (numeric_expression) REAL
grados a radianes RAD (numeric_expression) DINT, REAL
seno SIN (numeric_expression) REAL
raz cuadrada SQRT (numeric_expression) DINT, REAL
tangente TAN (numeric_expression) REAL
truncar TRUNC (numeric_expression) DINT, REAL

Publicacin 1756-RM003K-ES-P Julio 2008 665


Apndice C Programacin de texto estructurado

Por ejemplo:

Use este formato Ejemplo


Para esta situacin Usted escribira
value1 operator value2 Si gain_4 y gain_4_adj son tags DINT y su gain_4_adj :=
especificacin dice: Aadir 15 a gain_4 y gain_4+15;
almacenar el resultado en gain_4_adj.
operator value1 Si alarm y high_alarm son valores DINT y su alarm:=
especificacin dice: Cambiar signo de high_alarm -high_alarm;
y almacenar el resultado en alarm.
function(numeric_expression) Si overtravel y overtravel_POS son tags DINT y su overtravel_POS :=
especificacin dice: Calcular el valor absoluto de ABS(overtravel);
overtravel y almacenar el resultado en
overtravel_POS.
value1 operator Si adjustment y position son tags DINT, sensor1 y position :=
(function((value2+value3)/2) sensor2 son tags REAL, y su especificacin dice: adjustment +
Encontrar el valor absoluto del promedio de ABS((sensor1 +
sensor1 y sensor2, aadir el adjustment y guardar el sensor2)/2);
resultado en position.

Use operadores relacionales

Los operadores relacionales comparan dos valores o cadenas para


proporcionar un resultado verdadero o falso. El resultado de una
operacin relacional es un valor BOOL:

Si la comparacin es El resultado es
verdadera 1
falsa 0

Use los siguientes operadores relacionales:

Para esta comparacin: Use este operador Tipo de datos ptimo


igual = DINT, REAL, cadena
menor que < DINT, REAL, cadena
menor o igual que <= DINT, REAL, cadena
mayor que > DINT, REAL, cadena
mayor o igual que >= DINT, REAL, cadena
diferente de <> DINT, REAL, cadena

666 Publicacin 1756-RM003K-ES-P Julio 2008


Programacin de texto estructurado Apndice C

Por ejemplo:

Use este formato Ejemplo


Para esta situacin Usted escribira
value1 operator value2 Si temp es un tag DINT y su especificacin dice: IF temp<100 THEN...
Si temp es menor que 100 entonces
stringtag1 operator Si bar_code y dest son tags de cadena y su IF bar_code=dest THEN...
stringtag2 especificacin dice: Si bar_code es igual a
dest entonces
char1 operator char2 Si bar_code es un tag de cadena y su IF bar_code.DATA[0]=65
especificacin dice: Si bar_code.DATA[0] es THEN...
igual a A entonces

Para introducir un carcter ASCII


directamente en la expresin, introduzca
el valor decimal del carcter.
bool_tag := Si count y length son tags DINT, done es un tag done := (count >= length);
bool_expressions BOOL y su especificacin dice Si count es
mayor o igual que length, usted ya termin el
conteo.

Cmo se evalan las cadenas

Los valores hexadecimales de los caracteres ASCII determinan si una


cadena es mayor o menor que otra cadena.

Cuando las dos cadenas se clasifican como en un directorio


telefnico, el orden de las cadenas determina cul es mayor.

Caracteres ASCII Cdigos


hexadecimales
1ab $31$61$62
m m 1b $31$62
e a
A $41
n y
o o AB $41$42 AB < B
r r
B $42
a $61 a>B
ab $61$62

Las cadenas son iguales si sus caracteres coinciden.


Los caracteres permiten distinguir maysculas de minsculas.
La A mayscula ($41) es diferente a la a minscula ($61).

Para obtener el valor decimal y el cdigo hexadecimal de un carcter,


consulte la contraportada de este manual.

Publicacin 1756-RM003K-ES-P Julio 2008 667


Apndice C Programacin de texto estructurado

Use operadores lgicos

Los operadores lgicos le permiten verificar si varias condiciones son


verdaderas o falsas. El resultado de una operacin lgica es un valor
BOOL.

Si la comparacin es El resultado es
verdadera 1
falsa 0

Use los siguientes operadores lgicos:

Para obtener Use este operador Tipo de datos


Y lgico &, AND BOOL
O lgico OR BOOL
O exclusivo lgico XOR BOOL
complemento lgico NOT BOOL

Por ejemplo:

Use este formato Ejemplo


Para esta situacin Usted escribira
BOOLtag Si photoeye es un tag BOOL y su especificacin IF photoeye THEN...
dice: Si photoeye est activada, entonces
NOT BOOLtag Si photoeye es un tag BOOL y su especificacin IF NOT photoeye THEN...
dice: Si photoeye est desactivada
entonces
expression1 & expression2 Si photoeye es un tag BOOL, temp es un tag IF photoeye & (temp<100)
DINT y su especificacin dice: Si photoeye THEN...
est activada y temp es menor que 100
entonces.
expression1 OR expression2 Si photoeye es un tag BOOL, temp es un tag IF photoeye O (temp<100)
DINT y su especificacin dice: Si photoeye THEN...
est activada o temp es menor que 100
entonces.
expression1 XOR expression2 Si photoeye1 y photoeye2 son tags BOOL y su IF photoeye1 XOR
especificacin dice: Si: photoeye2 THEN...

photoeye1 est activada mientras que


photoeye2 est desactivada o
photoeye1 est desactivada mientras que
photoeye2 est activada
entonces
BOOLtag := expression1 & Si photoeye1 y photoeye2 son tags BOOL, open abrir := photoeye1 y
expression2 es un tag BOOL y su especificacin dice: Si photoeye2;
photoeye1 y photoeye2 estn ambas activadas,
establezca open en verdadero.

668 Publicacin 1756-RM003K-ES-P Julio 2008


Programacin de texto estructurado Apndice C

Use operadores a nivel de bits

Los operadores a nivel de bits manipulan los bits dentro de un valor


basado en dos valores.

Para obtener Use este operador Tipo de datos ptimo


Y a nivel de bits &, AND DINT
O a nivel de bits OR DINT
O exclusivo a nivel de bits XOR DINT
complemento a nivel de bits NOT DINT

Por ejemplo:

Use este formato Ejemplo


Para esta situacin Usted escribira
value1 operator value2 Si input1, input2, y result1 son tags DINT y su result1 := input1 AND
especificacin dice: Calcule el resultado a nivel de input2;
bits de input1 e input2. Guarde el resultado en
result1.

Determine el orden de ejecucin

Las operaciones que usted escribe en una expresin se realizan en un


orden prescrito, no necesariamente de izquierda a derecha.
Las operaciones de igual orden se realizan de izquierda a
derecha.
Si una expresin contiene varios operadores o funciones,
agrupe las condiciones en parntesis ( ). Esto asegura el
orden correcto de ejecucin y facilita la lectura de la expresin.

Orden Operacin
1. ()
2. funcin ()
3. **
4. (cambiar signo)
5. NOT
6. *, /, MOD
7. +, - (restar)
8. <, <=, >, >=
9. =, <>
10. &, AND
11. XOR
12. OR

Publicacin 1756-RM003K-ES-P Julio 2008 669


Apndice C Programacin de texto estructurado

Instrucciones Las declaraciones de texto estructurado tambin pueden ser


instrucciones. Consulte en la tabla de ubicacin al comienzo de este
manual la lista de las instrucciones disponibles en texto estructurado.
Una instruccin de texto estructurado se ejecuta cada vez que se
escanea. Una instruccin de texto estructurado dentro de una
construccin se ejecuta cada vez que las condiciones de la
construccin son verdaderas. Si las condiciones de la construccin son
falsas, las declaraciones dentro de la construccin no se escanean.
No existe una condicin de rengln o transicin de estado que active
la ejecucin.

Esto difiere de las instruccin de bloque de funciones que usan


EnableIn para activar la ejecucin. Las instrucciones de texto
estructurado se ejecutan como si EnableIn siempre estuviera
establecido.

Esto tambin difiere de las instrucciones de lgica de escalera que


usan condicin de entrada de rengln para activar la ejecucin.
Algunas instrucciones de lgica de escalera de rels slo se ejecutan
cuando la condicin de entrada de rengln cambia de falso a
verdadero. stas son instrucciones de lgica de escalera de rels
transicionales. En texto estructurado, las instrucciones se ejecutarn
cada vez que sean escaneadas, a menos que usted condicione
previamente la ejecucin de la instruccin de texto estructurado.

Por ejemplo, la instruccin ABL es una instruccin transicional en


lgica de escalera de rels. En este ejemplo, la instruccin ABL slo se
ejecuta en un escn cuando tag_xic cambia de borrado a establecido.
La instruccin ABL no se ejecuta cuando tag_xic permanece
establecido ni cuando tag_xic se borra.

En texto estructurado, si usted escribe este ejemplo como:

IF tag_xic THEN ABL(0,serial_control);

END_IF;

la instruccin ABL se ejecutar en cada escn que tag_xic est


establecido, no slo cuando tag_xic cambie de borrado a establecido.

670 Publicacin 1756-RM003K-ES-P Julio 2008


Programacin de texto estructurado Apndice C

Si desea que la instruccin ABL se ejecute slo cuando tag_xic cambie


de borrado a establecido, tiene que condicionar la instruccin de
texto estructurado. Use un impulso para activar la ejecucin.

osri_1.InputBit := tag_xic;
OSRI(osri_1);

IF (osri_1.OutputBit) THEN
ABL(0,serial_control);
END_IF;

Construcciones Las construcciones pueden programarse individualmente o anidadas


dentro de otras construcciones.

Si desea Use esta construccin Disponible en estos lenguajes Vea la pgina


hacer algo si o cuando ocurre una condicin IF...THEN texto estructurado 672
especfica
seleccionar qu hacer segn a un valor CASE...OF texto estructurado 675
numrico
hacer algo un nmero especfico de veces antes FOR...DO texto estructurado 678
de hacer otra cosa
continuar haciendo algo siempre que ciertas WHILE...DO texto estructurado 681
condiciones sean verdaderas
seguir haciendo algo hasta que una condicin REPEAT...UNTIL texto estructurado 684
sea verdadera

Algunas palabras clave estn reservadas para uso futuro

Estas construcciones no estn disponibles:

GOTO
REPEAT

El software RSLogix 5000 no le permitir usarlas como nombres de


tags ni como construcciones.

Publicacin 1756-RM003K-ES-P Julio 2008 671


Apndice C Programacin de texto estructurado

IF...THEN Use IFTHEN para hacer algo si o cuando ocurre una condicin
especfica.

Operandos:

Texto estructurado
IF bool_expression THEN
Operando Tipo Formato Introduzca
<statement>;
END_IF; bool_ BOOL tag Expresin o tag BOOL que evala respecto
expression a un valor BOOL (expresin BOOL)
expresin

Descripcin: La sintaxis es:

IF bool_expression1 THEN
<statement >; declaraciones que deben
ejecutarse cuando
. bool_expression1 es verdadero
.
.
ELSIF bool_expression2 THEN
opcional
<statement>; declaraciones que deben
ejecutarse cuando
. bool_expression2 es verdadero
.
.
ELSE
opcional
<statement>; declaraciones que deben
ejecutarse cuando ambas
. expresiones son falsas
.
.
END_IF;

Para usar ELSIF o ELSE, siga estas pautas:

1. Para seleccionar entre varios posibles grupos de declaraciones,


aada una o ms declaraciones ELSIF.

Cada instruccin ELSIF representa una ruta alternativa.


Especifique todas las rutas ELSIF que necesite.
El controlador ejecuta la primera instruccin IF o ELSIF
verdadera y se salta el resto de las instrucciones ELSIF y ELSE.

2. Para hacer algo cuando todas las condiciones IF o ELSIF son


falsas, aada una declaracin ELSE.

672 Publicacin 1756-RM003K-ES-P Julio 2008


Programacin de texto estructurado Apndice C

La siguiente tabla resume las diferentes combinaciones de IF, THEN,


ELSIF y ELSE.

Si desea Y Use esta construccin


hacer algo si o cuando las condiciones no hacer nada si las condiciones son IFTHEN
son verdaderas falsas
hacer algo diferente si las condiciones IFTHENELSE
son falsas
seleccionar entre declaraciones no hacer nada si las condiciones son IFTHENELSIF
alternativas (o grupos de falsas
declaraciones) segn las condiciones
asignar declaraciones predeterminadas IFTHENELSIFELSE
de entrada
si todas las condiciones son falsas

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

Ejemplo 1: IFTHEN

Si usted desea esto Introduzca este texto estructurado


Si rechazos > 3 entonces IF rejects > 3 THEN
transportador = desactivado (0) conveyor := 0;
alarma = activada (1) alarm := 1;
END_IF;

Ejemplo 2: IFTHENELSE

Si usted desea esto Introduzca este texto estructurado


Si el contacto de direccin del transportador = avance (1) IF conveyor_direction THEN
entonces
luz = apagada light := 0;
De lo contrario, luz = encendida ELSE
light [:=] 1;
END_IF;

El [:=] le indica al controlador que borre light cada vez que el


controlador:
entre al modo de MARCHA
salga del paso de un SFC si usted configura el SFC para
Restablecimiento automtico. (Esto slo se aplica si usted
incorpora la asignacin en la accin del paso o usa la accin
para llamar una rutina de texto estructurado mediante una
instruccin JSR).

Publicacin 1756-RM003K-ES-P Julio 2008 673


Apndice C Programacin de texto estructurado

Ejemplo 3: IFTHENELSIF

Si usted desea esto Introduzca este texto estructurado


Si el interruptor de final de carrera de azcar baja = baja IF Sugar.Low & Sugar.High THEN
(activado) y el interruptor de final de carrera de azcar
alta = no alta (activado) entonces
vlvula de entrada = abierta (activada) Sugar.Inlet [:=] 1;
Hasta que el interruptor de final de carrera de azcar ELSIF NOT(Sugar.High) THEN
alta = alta (desactivado)
Sugar.Inlet := 0;
END_IF;

El [:=] le indica al controlador que borre Sugar.Inlet cada vez que el


controlador:
entre al modo de MARCHA
salga del paso de un SFC si usted configura el SFC para
Restablecimiento automtico. (Esto slo se aplica si usted
incorpora la asignacin en la accin del paso o usa la accin
para llamar una rutina de texto estructurado mediante una
instruccin JSR).

Ejemplo 4: IFTHENELSIFELSE

Si usted desea esto Introduzca este texto estructurado


Si la temperatura del tanque > 100 IF tank.temp > 200 THEN
entonces bomba = lenta pump.fast :=1; pump.slow :=0; pump.off :=0;
Si la temperatura del tanque > 200 ELSIF tank.temp > 100 THEN
entonces bomba = rpida pump.fast :=0; pump.slow :=1; pump.off :=0;
de lo contrario, bomba = desactivada ELSE
pump.fast :=0; pump.slow :=0; pump.off :=1;
END_IF;

674 Publicacin 1756-RM003K-ES-P Julio 2008


Programacin de texto estructurado Apndice C

CASE...OF Use CASE para seleccionar qu hacer segn un valor numrico.

Operandos:

Texto estructurado
CASE numeric_expression OF
Operando Tipo Formato Introduzca
selector1: statement;
selectorN: statement; numeric_ SINT tag tag o expresin que evala respecto a un
nmero (expresin numrica)
ELSE expression INT expresin
statement;
END_CASE; DINT

REAL
selector SINT inmediato el mismo tipo que
numeric_expression
INT

DINT

REAL

IMPORTANTE Si usted usa valores REAL, emplee un rango de valores para un


selector, ya que es ms probable que un valor REAL se
encuentre dentro de un rango de valores, y no que coincida
exactamente con un valor especfico.

Descripcin: La sintaxis es:

CASE numeric_expression OF
selector1 : <statement>; declaraciones a ejecutar cuando
. numeric_expression = selector1
.
.
selector2 : <statement>; declaraciones a ejecutar cuando
especifique todos los numeric_expression = selector2
valores de selector .
alternativos (rutas) que .
necesite .
selector3 : <statement>; declaraciones a ejecutar cuando
. numeric_expression = selector3
.
.
ELSE
<statement>; declaraciones a ejecutar cuando
opcional . numeric_expression cualquier
selector
.
.
END_CASE;

Publicacin 1756-RM003K-ES-P Julio 2008 675


Apndice C Programacin de texto estructurado

Vea la tabla en la siguiente pgina para obtener los valores de selector


vlidos.

La sintaxis para introducir los valores de selector es:

Cuando el selector es Introduzca


un valor value: statement
varios valores distintos value1, value2, valueN : <statement>

Use una coma (,) para separar cada valor.


un rango de valores value1..valueN : <statement>

Use dos puntos (..) para identificar el rango.


valores distintos ms un valuea, valueb, value1..valueN : <statement>
rango de valores

La construccin CASE es similar a una declaracin de interruptor en


los lenguajes de programacin C o C++. Sin embargo, con la
construccin CASE el controlador ejecuta slo las declaraciones
asociadas con la primera coincidencia con el valor de selector.
La ejecucin siempre se interrumpe despus de las declaraciones de
dicho selector y va a la declaracin END_CASE.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo: ninguna

676 Publicacin 1756-RM003K-ES-P Julio 2008


Programacin de texto estructurado Apndice C

Ejemplo

Si usted desea esto Introduzca este texto estructurado


Si el nmero de receta = 1 entonces CASE recipe_number OF
Ingrediente A salida 1 = abierto (1) 1: Ingredient_A.Outlet_1 :=1;
Ingrediente B salida 4 = abierto (1) Ingredient_B.Outlet_4 :=1;
Si el nmero de receta = 2 3 entonces 2,3: Ingredient_A.Outlet_4 :=1;
Ingrediente A salida 4 = abierto (1) Ingredient_B.Outlet_2 :=1;
Ingrediente B salida 2 = abierto (1)
Si el nmero de receta = 4, 5, 6 7 entonces 4..7: Ingredient_A.Outlet_4 :=1;
Ingrediente A salida 4 = abierto (1) Ingredient_B.Outlet_2 :=1;
Ingrediente B salida 2 = abierto (1)
Si el nmero de receta = 8, 11, 12 13 entonces 8,11..13 Ingredient_A.Outlet_1 :=1;
Ingrediente A salida 1 = abierto (1) Ingredient_B.Outlet_4 :=1;
Ingrediente B salida 4 = abierto (1)
De lo contrario, todas las salidas = cerradas (0) ELSE
Ingredient_A.Outlet_1 [:=]0;
Ingredient_A.Outlet_4 [:=]0;
Ingredient_B.Outlet_2 [:=]0;
Ingredient_B.Outlet_4 [:=]0;
END_CASE;

El [:=] le indica al controlador que tambin borre los tags de salida


cada vez que el controlador:
entre al modo de MARCHA
salga del paso de un SFC si usted configura el SFC para
Restablecimiento automtico. (Esto slo se aplica si usted
incorpora la asignacin en la accin del paso o usa la accin
para llamar una rutina de texto estructurado mediante una
instruccin JSR).

Publicacin 1756-RM003K-ES-P Julio 2008 677


Apndice C Programacin de texto estructurado

FORDO Use el lazo FORDO para hacer algo una cantidad determinada de
veces antes de hacer otra cosa.

Operandos:

Texto estructurado
FOR count:= initial_value TO
final_value BY increment DO Operando Tipo Formato Descripcin
<statement>; count SINT tag tag para almacenar la posicin de conteo
END_FOR; a medida que FORDO se ejecuta
INT

DINT
initial_ SINT tag se debe evaluar con respecto a un nmero
value
INT expresin especifica el valor inicial del conteo

DINT inmediato
final_ SINT tag especifica el valor final del conteo, el cual
value determina cundo salir del lazo
INT expresin

DINT inmediato
increment SINT tag (opcional) cantidad a incrementar el
conteo cada vez que se pasa por el lazo
INT expresin

DINT inmediato
Si usted no especifica un incremento, el
conteo se incrementa en 1.

IMPORTANTE Asegrese de no efectuar iteraciones dentro de un lazo demasiadas


veces en un solo escn.
El controlador no ejecuta ninguna otra declaracin en la rutina
hasta que completa el lazo.
Si el tiempo que se requiere para completar el lazo es mayor
que el temporizador de control (watchdog) de la tarea, se
produce un fallo mayor.
Considere usar una construccin diferente, por ejemplo
IF...THEN.

678 Publicacin 1756-RM003K-ES-P Julio 2008


Programacin de texto estructurado Apndice C

Descripcin: La sintaxis es:

FOR count := initial_value


TO final_value
opcional { BY increment Si usted no especifica un incremento,
el lazo se incrementa en 1.
DO
<statement>;
IF bool_expression THEN
EXIT; Si existen condiciones cuando usted desea
opcional salir del lazo anticipadamente, use otras
END_IF; declaraciones, tal como la construccin
IF...THEN, para condicionar una
declaracin EXIT.
END_FOR;

Los siguientes diagramas muestran cmo se ejecuta un lazo FOR...DO


y cmo una declaracin EXIT deja el lazo anticipadamente.

Efectuado x s Efectuado x s
veces? veces?

no no
declaracin 1 declaracin 1
declaracin 2 declaracin 2
declaracin 3 declaracin 3
declaracin 4 declaracin 4

Salir? s
resto de la rutina
no
resto de la rutina

El lazo FORDO se ejecuta un nmero Para detener el lazo antes de que el conteo llegue al
especfico de veces. ltimo valor, use una declaracin EXIT.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:

Ocurrir un fallo mayor si Tipo de fallo Cdigo de fallo


la construccin tiene un lazo 6 1
excesivamente largo

Publicacin 1756-RM003K-ES-P Julio 2008 679


Apndice C Programacin de texto estructurado

Ejemplo 1:

Si usted desea esto Introduzca este texto estructurado


Borrar los bits 0 - 31 en una matriz de elementos BOOL: For subscript:=0 to 31 by 1 do
array[subscript] := 0;
1. Inicializar el tag subscript a 0.
End_for;
2. Borrar la matriz[ subscript ]. Por ejemplo, cuando
subscript = 5, borrar array[5].

3. Aadir 1 a subscript.

4. Si subscript es 31, repetir 2 y 3.

De lo contrario, parar.

Ejemplo 2:

Si usted desea esto Introduzca este texto estructurado


Un tipo de datos definido por el usuario (estructura) almacena SIZE(Inventory,0,Inventory_Items);
la siguiente informacin acerca de un tem en su inventario:
For position:=0 to Inventory_Items - 1 do
ID de cdigo de barras del tem (tipo de datos de cadena) If Barcode = Inventory[position].ID then
Cantidad en inventario del tem (tipo de datos DINT) Quantity := Inventory[position].Qty;
Una matriz de la estructura anterior contiene un elemento Exit;
para cada tem diferente en su inventario. Usted desea buscar
la matriz para un producto especfico (use su cdigo de barras) End_if;
y determine la cantidad que hay en inventario.
End_for;
1. Obtener el tamao (nmero de tems) de la matriz
Inventory y almacenar el resultado en Inventory_Items
(tag DINT).

2. Inicializar el tag position a 0.

3. Si el cdigo de barras coincide con el ID de un tem en la


matriz, entonces:

a. Establecer el tag Quantity = Inventory[position].Qty.


Esto produce la cantidad en inventario del tem.

b. Parar.

Barcode es un tag de cadena que almacena el cdigo de


barras del tem que usted est buscando. Por ejemplo,
cuando position = 5, comparar Barcode con Inventory[5].ID.

4. Aadir 1 a position.

5. Si position es (Inventory_Items -1), repetir 3 y 4. Puesto


que los nmeros de elemento comienzan en 0, el ltimo
elemento es 1 menos el nmero de elementos en la matriz.

De lo contrario, parar.

680 Publicacin 1756-RM003K-ES-P Julio 2008


Programacin de texto estructurado Apndice C

WHILEDO Use el lazo WHILEDO para continuar haciendo algo siempre y


cuando ciertas condiciones sean verdaderas.

Operandos:

Texto estructurado
WHILE bool_expression DO
Operando Tipo Formato Introduzca
<statement>;
END_WHILE; bool_ BOOL tag Expresin o tag BOOL que evala
expression respecto a un valor BOOL
expresin

IMPORTANTE Asegrese de no efectuar iteraciones dentro de un lazo demasiadas


veces en un solo escn.
El controlador no ejecuta ninguna otra declaracin en la rutina
hasta que completa el lazo.
Si el tiempo que se requiere para completar el lazo es mayor
que el temporizador de control (watchdog) para la tarea, se
produce un fallo mayor.
Considere usar una construccin diferente, por ejemplo
IF...THEN.

Descripcin: La sintaxis es:

WHILE bool_expression1 DO
<statement>; declaraciones que se ejecutan mientras
bool_expression1 es verdadero
IF bool_expression2 THEN
EXIT; Si existen condiciones cuando usted desea
opcional salir del lazo anticipadamente, use otras
END_IF; declaraciones, tal como la construccin
IF...THEN, para condicionar una
declaracin EXIT.
END_WHILE;

Publicacin 1756-RM003K-ES-P Julio 2008 681


Apndice C Programacin de texto estructurado

Los siguientes diagramas muestran cmo se ejecuta un lazo


WHILE...DO y cmo un comando EXIT deja el lazo anticipadamente.
falsa falsa
expresin BOOL expresin BOOL
verdadera verdadera
declaracin 1 declaracin 1
declaracin 2 declaracin 2
declaracin 3 declaracin 3
declaracin 4 declaracin 4

Salir? s
resto de la rutina
no
resto de la rutina

Mientras bool_expression es verdadero, el Para detener el lazo antes de que las condiciones
controlador ejecuta slo las declaraciones sean verdaderas, use una declaracin EXIT.
dentro del lazo WHILEDO.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:

Ocurrir un fallo mayor si Tipo de fallo Cdigo de fallo


la construccin tiene un lazo 6 1
excesivamente largo

Ejemplo 1:

Si usted desea esto Introduzca este texto estructurado


El lazo WHILE...DO evala sus condiciones primero. Si las pos := 0;
condiciones son verdaderas, el controlador ejecuta las
While ((pos <= 100) & structarray[pos].value
declaraciones dentro del lazo.
<> targetvalue)) do
Esto es diferente del lazo REPEAT...UNTIL porque el lazo pos := pos + 2;
REPEAT...UNTIL ejecuta las declaraciones en la construccin y
posteriormente determina si las condiciones son verdaderas String_tag.DATA[pos] := SINT_array[pos];
antes de ejecutar las declaraciones nuevamente. Las end_while;
declaraciones en un lazo REPEAT...UNTIL siempre se ejecutan
por lo menos una vez. Las declaraciones en un lazo
WHILE...DO es posible que nunca se ejecuten.

682 Publicacin 1756-RM003K-ES-P Julio 2008


Programacin de texto estructurado Apndice C

Ejemplo 2:

Si usted desea esto Introduzca este texto estructurado


Mover caracteres ASCII desde una matriz SINT a un tag de element_number := 0;
cadena. (En una matriz SINT, cada elemento retiene un
SIZE(SINT_array, 0, SINT_array_size);
carcter). Parar cuando llegue al retorno de carro.
While SINT_array[element_number] <> 13 do
1. Inicializar Element_number a 0.
String_tag.DATA[element_number] :=
2. Contar el nmero de elementos en SINT_array (la matriz SINT_array[element_number];
que contiene los caracteres ASCII) y almacenar el element_number := element_number + 1;
resultado en SINT_array_size (tag DINT).
String_tag.LEN := element_number;
3. Si el carcter en SINT_array[element_number] = 13 If element_number = SINT_array_size then
(valor decimal del retorno de carro), parar.
exit;
4. Establecer String_tag[element_number] = el carcter en end_if;
SINT_array[element_number].
end_while;
5. Aadir 1 a element_number. Esto permite al controlador
verificar el siguiente carcter en SINT_array.

6. Establecer el miembro Length de String_tag =


element_number. (As registra el nmero de caracteres
que hay hasta el momento en String_tag).

7. Si element_number = SINT_array_size, parar. (Usted est


al final de la matriz y sta no contiene un retorno de carro).

8. Ir a 3.

Publicacin 1756-RM003K-ES-P Julio 2008 683


Apndice C Programacin de texto estructurado

REPEATUNTIL Use el lazo REPEATUNTIL para continuar haciendo algo hasta que
las condiciones sean verdaderas.

Operandos:

Texto estructurado
REPEAT
Operando Tipo Formato Introduzca
<statement>;
UNTIL bool_expression bool_ BOOL tag Expresin o tag BOOL que evala respecto
expression a un valor BOOL (expresin BOOL)
END_REPEAT; expresin

IMPORTANTE Asegrese de no efectuar iteraciones dentro de un lazo demasiadas


veces en un solo escn.
El controlador no ejecuta ninguna otra declaracin en la rutina
hasta que completa el lazo.
Si el tiempo que se requiere para completar el lazo es mayor
que el temporizador de control (watchdog) para la tarea, se
produce un fallo mayor.
Considere usar una construccin diferente, por ejemplo
IF...THEN.

Descripcin: La sintaxis es:

REPEAT
<statement>; declaraciones que se ejecutan mientras
bool_expression1 es falso
IF bool_expression2 THEN
EXIT; Si existen condiciones cuando usted desea
opcional salir del lazo anticipadamente, use otras
END_IF; declaraciones, tal como la construccin
IF...THEN, para condicionar una
declaracin EXIT.
UNTIL bool_expression1
END_REPEAT;

684 Publicacin 1756-RM003K-ES-P Julio 2008


Programacin de texto estructurado Apndice C

Los siguientes diagramas muestran cmo se ejecuta un lazo


REPEAT...UNTIL y cmo un comando EXIT deja el lazo
anticipadamente.
declaracin 1 declaracin 1
declaracin 2 declaracin 2
declaracin 3 declaracin 3
declaracin 4 declaracin 4

verdadera s
Salir?
expresin BOOL
no
falsa
verdadera
expresin BOOL
resto de la rutina
falsa

resto de la rutina

Mientras bool_expression es falso, el Para detener el lazo antes de que las condiciones
controlador ejecuta slo las declaraciones dentro sean falsas, use una declaracin EXIT.
del lazo REPEATUNTIL.

Indicadores de estado
aritmtico: no afectados

Condiciones de fallo:

Ocurrir un fallo mayor si Tipo de fallo Cdigo de fallo


la construccin tiene un lazo 6 1
excesivamente largo

Ejemplo 1:

Si usted desea esto Introduzca este texto estructurado


El lazo REPEAT...UNTIL ejecuta las declaraciones en la pos := -1;
construccin y posteriormente determina si las condiciones
REPEAT
son verdaderas antes de ejecutar las declaraciones
nuevamente. pos := pos + 2;

Esto es diferente del lazo WHILE...DO porque el lazo UNTIL ((pos = 101) OR
WHILE...DO evala su condicin primero. Si las condiciones (structarray[pos].value = targetvalue))
son verdaderas, el controlador ejecuta las declaraciones end_repeat;
dentro del lazo. Las declaraciones en un lazo REPEAT...UNTIL
siempre se ejecutan por lo menos una vez. Las declaraciones
en un lazo WHILE...DO es posible que nunca se ejecuten.

Publicacin 1756-RM003K-ES-P Julio 2008 685


Apndice C Programacin de texto estructurado

Ejemplo 2:

Si usted desea esto Introduzca este texto estructurado


Mover caracteres ASCII desde una matriz SINT a un tag de element_number := 0;
cadena. (En una matriz SINT, cada elemento retiene un
SIZE(SINT_array, 0, SINT_array_size);
carcter). Parar cuando llegue al retorno de carro.
Repeat
1. Inicializar Element_number a 0.
String_tag.DATA[element_number] :=
2. Contar el nmero de elementos en SINT_array (la matriz SINT_array[element_number];
que contiene los caracteres ASCII) y almacenar el element_number := element_number + 1;
resultado en SINT_array_size (tag DINT).
String_tag.LEN := element_number;
3. Establecer String_tag[element_number] = el carcter en If element_number = SINT_array_size then
SINT_array[element_number].
exit;
4. Aadir 1 a element_number. Esto permite al controlador end_if;
verificar el siguiente carcter en SINT_array.
Until SINT_array[element_number] = 13
5. Establecer el miembro Length de String_tag = end_repeat;
element_number. (As registra el nmero de caracteres
que hay hasta el momento en String_tag).

6. Si element_number = SINT_array_size, parar. (Usted est


al final de la matriz y sta no contiene un retorno de carro).

7. Si el carcter en SINT_array[element_number] = 13
(valor decimal del retorno de carro), parar.

De lo contrario, ir a 3.

686 Publicacin 1756-RM003K-ES-P Julio 2008


Programacin de texto estructurado Apndice C

Comentarios Para facilitar la interpretacin del texto estructurado, adale


comentarios.
Los comentarios le permiten usar un lenguaje simple para
describir cmo funciona su texto estructurado.
Los comentarios no tienen ningn efecto en la ejecucin del
texto estructurado.

Para aadir comentarios a su texto estructurado:

Para aadir un comentario Use uno de estos formatos


en una sola lnea //comment
al final de una lnea de texto
estructurado
(*comment*)

/*comment*/
dentro de una lnea de texto (*comment*)
estructurado

/*comment*/
que abarque ms de una lnea (*start of comment . . . end of
comment*)

/*start of comment . . . end of


comment*/

Publicacin 1756-RM003K-ES-P Julio 2008 687


Apndice C Programacin de texto estructurado

Por ejemplo:

Formato Ejemplo
//comment Al comienzo de una lnea

//Se verifica el sentido de desplazamiento del


transportador

IF conveyor_direction THEN...

Al final de una lnea

ELSE //Si el transportador no se est moviendo,


se establece la luz de alarma

light := 1;

END_IF;
(*comment*) Sugar.Inlet[:=]1;(*open the inlet*)

IF Sugar.Low (*low level LS*)& Sugar.High (*high level


LS*)THEN...

(*Controla la velocidad de la bomba de recirculacin.


La velocidad depende de la temperatura en el tanque*).

IF tank.temp > 200 THEN...


/*comment*/ Sugar.Inlet:=0;/*close the inlet*/

IF bar_code=65 /*A*/ THEN...

/*Obtiene el nmero de elementos en la matriz Inventory


y almacena el valor en el tag Inventory_Items*/

SIZE(Inventory,0,Inventory_Items);

688 Publicacin 1756-RM003K-ES-P Julio 2008


ndice

A comentarios
texto estructurado 687
activacin de salida 82 comparacin de bits de archivo 478
activar tarea de evento 464 comparar 206
actualizar salida 201 concatenacin de cadenas 601
ajuste 503 condiciones de overflow 648
alarma digital 30 conector
alarmas 504 diagrama de bloques de
arco coseno 532 funciones 641
arco seno 529
arco tangente 535 conector de cable de entrada 641
aritmtica y lgica de archivo 335 conector de cable de salida 641
ASCII conexin
asignacin de texto cach 173
estructurado 663 configuracin 159
instruccin MSG 159
asignacin
carcter ASCII 663 instruccin PID 502
no retentiva 662 construccin
texto estructurado 671
retentiva 661
conteo progresivo 128
atributos conteo progresivo/regresivo 136
conversin de tipos de datos 635 conteo regresivo 132
valores inmediatos 635 control de programa/operador
atributos comunes 635 descripcin general 654
conversin de tipos de datos 635 conversin de tipos de datos 635
valores inmediatos 635 convertir a BCD 556
convertir en entero 559
copiar 356
B copiar sncrono 356
BAND 317 coseno 523
banda muerta 514
BNOT 326
BOR 320 D
borrar 298 descarga FIFO 400
Borrar ASCII bfer 575 descripcin
buscar cadena 605 texto estructurado 687
bsqueda y comparacin de desenclavamiento de salida 86
archivos 347 desplazamiento de bits a la
BXOR 323 derecha 390
desplazamiento de bits a la
izquierda 386
C desviacin estndar 376
cach deteccin de diagnstico 486
conexin 173 determinacin de igualdad con
cadena mscara 237
evaluacin en texto diagrama de bloques de funciones
estructurado 667 creacin de un retardo de
Cadena a DINT 614 escn 647
Cadena central 609 resolucin del flujo de datos entre
Cadena en REAL 616 dos bloques 647
clculo 248 resolver un lazo 645
cambiar signo 274 seleccin de elementos 641
caracteres ASCII en el bfer 573 diferente de 242
carga de secuenciador 428 DINT en cadena 619
carga FIFO 394 distribuir campo de bits 292
carga LIFO 406, 412 distribuir campo de bits con
CASE 675 receptor 295
clasificar 371 divisin 261
cdigos de error documento
ASCII 568 texto estructurado 687
instruccin MSG 152
cdigos de productos 181

689Publicacin 1756-RM003K-ES-P Julio 2008 689


ndice

E FBD_BIT_FIELD_DISTRIBUTE 295
FBD_BOOLEAN_AND 317
elementos FBD_BOOLEAN_NOT 326
instruccin SIZE 381
FBD_BOOLEAN_OR 320
Eliminacin de cadena 603
enclavamiento de datos 642 FBD_BOOLEAN_XOR 323
enclavamiento de salida 84 FBD_COMPARE 212, 216, 220,
Encontrar cadena 605 224, 228, 243
escalado 505 FBD_CONVERT 556, 559
escritura ASCII 594 FBD_COUNTER 136
escritura ASCII con anexo 589 FBD_LIMIT 232
establecer valor del sistema 176 FBD_LOGICAL 305, 308, 311, 315
estado FBD_MASKED_MOVE 288
tarea 195 FBD_MASK_EQUAL 238
estructura COMPARE 479, 487 FBD_MATH 253, 256, 259, 262,
estructura CONTROL 336, 347, 367, 267, 275, 547
371, 376, 386, 390, 395, 401, FBD_MATH_ADVANCED 271, 278,
406, 407, 413, 420, 424, 428
estructura COUNTER 128, 132 520, 524, 527, 529, 532,
estructura de control 448 535, 540, 544, 550, 553
Estructura FBD_BIT_FIELD_ FBD_ONESHOT 96, 99
DISTRIBUTE 295 FBD_TIMER 116, 120, 124
Estructura FBD_BOOLEAN_ FBD_TRUNCATE 561
AND 317 instruccin RES 141
Estructura FBD_BOOLEAN_ MESSAGE 144
NOT 326 PID 498
Estructura FBD_BOOLEAN_OR 320 RESULT 479, 487
Estructura FBD_BOOLEAN_XOR 323 SERIAL_PORT_CONTROL 566, 568,
estructura FBD_COMPARE 212, 216, 570, 573, 578, 582, 586,
220, 224, 228, 243
estructura FBD_CONVERT 556, 559 590, 595
Estructura FBD_COUNTER 136 STRING 568, 600, 613
estructura FBD_LIMIT 232 TIMER 104, 108, 112
Estructura FBD_LOGICAL 305, 308, etiqueta 434, 627, 631
311, 315 examinar si est abierto 80
Estructura FBD_MASKED_ expiracin
MOVE 288 configurar para tarea de evento 195
Estructura FBD_MASK_EQUAL 238 exponencial 546
estructura FBD_MATH 253, 256, 259, expresin
262, 267, 275, 547 expresin BOOL
Estructura FBD_MATH_ADVANCED texto estructurado 663
271, 520, 524, 527, 529, 532, expresin numrica
535, 540, 544, 550, 553 texto estructurado 663
estructura FBD_MATH_ orden de ejecucin
ADVANCED 278 texto estructurado 669
estructura FBD_ONESHOT 96, 99 texto estructurado
estructura FBD_TIMER 116, 120, 124 descripcin general 663
Estructura FBD_TRUNCATE 561 funciones 665
estructura MESSAGE 144 operadores a nivel de bits 669
estructura PID 498 operadores aritmticos 665
estructura RESULT 479, 487 operadores lgicos 668
Estructura SERIAL_PORT_ operadores relacionales 666
CONTROL 566, 568, 570, 573, expresin BOOL
578, 582, 586, 590, 595 texto estructurado 663
estructura STRING 568, 600, 613 expresin numrica 663
estructura TIMER 104, 108, 112 expresiones
estructuras formato 209, 250, 345, 353
cadena 568, 613 operadores vlidos 208, 250, 345,
COMPARE 479, 487 353
CONTROL 336, 347, 367, 371, 376, orden de operacin 209, 251, 346,
386, 390, 395, 401, 406, 354
407, 413, 420, 424, 428
COUNTER 128, 132

690 Publicacin 1756-RM003K-ES-P Julio 2008


ndice

F instruccin CTU 128


instruccin CTUD 136
fin temporal 450 instruccin DDT
FORDO 678 modo de bsqueda 488
funciones operandos 486
texto estructurado 665 instruccin de salida inmediata 201
instruccin DEG 550
instruccin DELETE 603
G instruccin DIV 261
ganancia anticipativa 515 instruccin DTOS 619
grados 550 instruccin DTR 494
instruccin EOT 458
instruccin EQU 211
H instruccin EVENT 464
instruccin FAL
habilitacin de interrupcin de modo de operacin 330
usuario 454
operandos 335
instruccin FBC
I modo de bsqueda 480
operandos 478
ICON 641 instruccin FFL 394
IF...THEN 672 instruccin FFU 400
igual a 211 instruccin fin de transicin 458
indicadores de estado aritmtico instruccin FIND 605
overflow 648 instruccin FLL 362
inhabilitacin de interrupcin de instruccin FOR 470
usuario 454 instruccin FRD 559
Insertar cadena 607 instruccin FSC
instruccin ABL 570 modo de operacin 330
instruccin ABS 277 operandos 347
instruccin ACB 573 instruccin GEQ 215
instruccin ACL 575 instruccin GRT 219
instruccin ACS 532 instruccin GSV
instruccin activar tarea de objetos 179
evento 464
instruccin ADD 252 operandos 176
instruccin AFI 456 instruccin INSERT 607
instruccin AHL 577 instruccin IOT 201
instruccin ALMA 42 instruccin JMP 434, 627, 631
instruccin ALMD, instrucciones instruccin JSR 436
de alarmas y eventos instruccin JXR
ALMD 30 estructura de control 448
instruccin AND 304 instruccin LBL 434, 627, 631
instruccin ARD 581 instruccin LEQ 223
instruccin ARL 585 instruccin LES 227
instruccin ASN 529 instruccin LFL 406
instruccin ATN 535 instruccin LFU 412
instruccin AVE 366 instruccin LIM 231
instruccin AWA 589 instruccin LN 540
instruccin AWT 594 instruccin LOG 543
instruccin BRK 473 instruccin LOWER 625
instruccin BSL 386 instruccin MCR 452
instruccin BSR 390 instruccin MEQ 237
instruccin BTD 292 instruccin MID 609
instruccin BTDT 295 instruccin MOD 266
instruccin CLR 298 instruccin MOV 283
instruccin CMP 206 instruccin MSG 159
instruccin CONCAT 601 cdigos de error 152
instruccin COP 356 conexin en cach 173
instruccin COS 523 estructura 144
instruccin CPS 356 mtodo de comunicacin 172
instruccin CPT 248 operandos 144
instruccin CTD 132 pautas de programacin 175

Publicacin 1756-RM003K-ES-P Julio 2008 691


ndice

instruccin MUL 258 instruccin XOR 310


instruccin MVM 285 instruccin XPY 546
instruccin MVMT 288 instrucciones
instruccin NEG 274 alarmas y eventos 29
instruccin NEQ 242 bit 77
instruccin NOP 457 clculo 247
instruccin NOT 314 comparar 205
instruccin ONS 88 contador 103
instruccin OR 307 control de programa 433
instruccin OSF 94
instruccin OSFI 99 conversin 549
instruccin OSRI 96 conversin ASCII 611
instruccin OTE 82 conversin de cadenas 611
instruccin OTL 84 conversin matemtica 549
instruccin OTU 86 depurar 627
instruccin pausa SFC 460 desplazamiento 385
instruccin PID entrada/salida 143
ajuste 503 especiales 477
alarmas 504 for/break 469
banda muerta 514 lgicas 281
configuracin 502 manipulacin de cadenas 599
escalado 505 manipulacin de cadenas
ganancia anticipativa 515 ASCII 599
operandos 497 matemticas avanzadas 539
polarizacin de salida 515 matriz
instruccin RAD 553 movimiento 281
instruccin RES 141 puerto serie 565
instruccin restablecer SFC 462 puerto serie ASCII 565
instruccin RET 436, 474 secuenciador 419
instruccin RTO 112
instruccin RTOR 124 temporizador 103
instruccin RTOS 621 trigonomtricas 519
instruccin SBR 436 instrucciones ASCII
instruccin SFP 460 ABL 570
instruccin SFR 462 ACB 573
instruccin siempre falso 456 ACL 575
instruccin SIN 520 AHL 577
instruccin SIZE 381 ARD 581
instruccin SQI 420 ARL 585
instruccin SQL 428 AWA 589
instruccin SQO 424 AWT 594
instruccin SQR 270 CONCAT 601
instruccin SRT 371
instruccin SSV DELETE 603
objetos 179 DTOS 619
operandos 176 FIND 605
instruccin STOD 614 INSERT 607
instruccin STOR 616 LOWER 625
instruccin SUB 255 MID 609
instruccin SWPB 300 RTOS 621
Instruccin TAN 526 STOD 614
instruccin TND 450 STOR 616
instruccin TOD 556 SWPB 300
Instruccin TOF 108 UPPER 623
instruccin TOFR 120 instrucciones de alarmas y eventos
instruccin TON 104 acceder programticamente 70
instruccin TONR 116 ALMA, alarma analgica 42
instruccin TRN 561
instruccin UID 454 almacenamiento de alarmas en el
instruccin UIE 454 bfer 69
instruccin UPPER 623 configuracin 62
instruccin XIO 80 ejecucin de alarma basada en el
controlador 72

692 Publicacin 1756-RM003K-ES-P Julio 2008


ndice

estado de alarma 68 LBL 434, 627, 631


suprima o inhabilite alarmas 71 MCR 452
texto de mensaje 65 NOP 457
instrucciones de archivo. Vea RET 436
instrucciones de matriz SBR 436
instrucciones de bit TND 450
ONS 88 UID 454
OSF 94 UIE 454
OSFI 99 instrucciones de conversin
OSR 91 DEG 550
OSRI 96 FRD 559
OTE 82 Introduccin 549
OTL 84 RAD 553
OTU 86 TOD 556
XIO 80 TRN 561
instrucciones de bits instrucciones de conversin de
introduccin 77 cadena
instrucciones de clculo DTOS 619
ABS 277 LOWER 625
ADD 252 RTOS 621
CPT 248 STOR 616
DIV 261 SWPB 300
formato de expresin 250, 345 UPPER 623
Introduccin 247 instrucciones de conversin de
MOD 266 cadenas
MUL 258 introduccin 611
NEG 274 STOD 614
operadores vlidos 250, 345 instrucciones de conversin
orden de operacin 251, 346 matemtica
SQR 270 DEG 550
SUB 255 FRD 559
instrucciones de comparacin Introduccin 549
CMP 206 RAD 553
EQU 211 TOD 556
formato de expresin 209, 353 TRN 561
GEQ 215 instrucciones de depuracin 627
GRT 219 instrucciones de desplazamiento
Introduccin 205 BSL 386
LEQ 223 BSR 390
LES 227 FFL 394
LIM 231 FFU 400
MEQ 237 Introduccin 385
NEQ 242 LFL 406
operadores vlidos 208, 353 LFU 412
orden de operacin 209, 354 instrucciones de entrada/salida
instrucciones de contador GSV 176
CTD 132 introduccin 143
CTU 128 IOT 201
CTUD 136 MSG 144
introduccin 103 SSV 176
RES 141 instrucciones de manipulacin de
instrucciones de control de cadenas
programa CONCAT 601
AFI 456 DELETE 603
EOT 458 FIND 605
EVENT 464 INSERT 607
introduccin 433 introduccin 599
JMP 434, 627, 631 MID 609
JSR 436

Publicacin 1756-RM003K-ES-P Julio 2008 693


ndice

instrucciones de matriz instrucciones de traslado/lgicas


archivo/miscelneas 329 BAND 317
AVE 366 BNOT 326
BSL 386 BOR 320
BSR 390 BXOR 323
COP 356 instrucciones especiales
CPS 356 DDT 486
DDT 486 DTR 494
desplazamiento 385 FBC 478
FAL 335 introduccin 477
FBC 478 PID 497
FFL 394 SFP 460
FFU 400 SFR 462
FLL 362 instrucciones for/break
FSC 347 BRK 473
LFL 406 FOR 470
LFU 412 Introduccin 469
modo de operacin 330 RET 474
RES 141 instrucciones lgicas
secuenciador 419 AND 304
SIZE 381 introduccin 281
SQI 420 NOT 314
SQL 428 OR 307
SQO 424 XOR 310
SRT 371 instrucciones matemticas
STD 376 avanzadas
instrucciones de movimiento Introduccin 539
BTD 292 LN 540
BTDT 295 logaritmo 543
CLR 298 XPY 546
Introduccin 281 instrucciones OSR 91
MOV 283 instrucciones para puerto serie
Introduccin 565
MVM 285
instrucciones STD 376
MVMT 288 instrucciones trigonomtricas
instrucciones de puerto serie ACS 532
ABL 570 ASN 529
ACB 573 ATN 535
ACL 575 COS 523
AHL 577 Introduccin 519
ARD 581 SIN 520
ARL 585 TAN 526
AWA 589 intercambiar byte 300
AWT 594 interrumpir 473
instrucciones de secuenciador IREF 641
introduccin 419
SQI 420
SQL 428 L
SQO 424 lazo de retroalimentacin
instrucciones de temporizador diagrama de bloques de
introduccin 103 funciones 645
RES 141 lazo no resuelto
RTO 112 diagrama de bloques de
RTOR 124 funciones 645
TOF 108 lectura ASCII 581
TOFR 120 lmite 231
TON 104 lnea de lectura ASCII 585
TONR 116 lneas de handshake ASCII 577
llenar archivo 362

694 Publicacin 1756-RM003K-ES-P Julio 2008


ndice

logaritmo FAULTLOG 187


base 10 543 instruccin GSV/SSV 179
natural 540 MESSAGE 188
logaritmo base 10 543 MODULE 190
logaritmo natural 540 MOTIONGROUP 191
PROGRAM 192
ROUTINE 193
M SERIALPORT 193
mscaras 495 TASK 195
mayor o igual que 215 WALLCLOCKTIME 197
mayor que 219 obtener valor del sistema 176
maysculas 623 OCON 641
menor o igual que 223 operadores 208, 250, 345, 353
menor que 227 orden de ejecucin
mensaje 144 texto estructurado 669
conexiones en cach 173 operadores a nivel de bits
pautas de programacin 175 texto estructurado 669
mezcla de tipos de datos 635 operadores aritmticos
minsculas 625 texto estructurado 665
modo de bsqueda 480, 488 operadores lgicos
modo de operacin 330 texto estructurado 668
modo incremental 333 operadores matemticos
modo numrico 331 texto estructurado 665
modo todos 330
modos de temporizacin 649 operadores relacionales
mdulo de divisin 266 texto estructurado 666
mover 283 orden de ejecucin 644
mover con mscara 285 expresin de texto
movimiento enmascarado con estructurado 669
receptor 288 orden de operacin 209, 251, 346,
multiplicacin 258 354
OREF 641

N
P
NO a nivel de bits 314
NO booleano 326 polarizacin de salida 515
post-escn
texto estructurado 662
O promedio 366
proporcional, integral y
O a nivel de bits 307 derivativo 497
O booleano 320 prueba ASCII para lnea de
O exclusivo a nivel de bits 310 bfer 570
O exclusivo booleano 323
objeto CONTROLLER 180
objeto CONTROLLERDEVICE 181 R
objeto CST 183
objeto DF1 184 radianes 553
objeto FAULTLOG 187 raz cuadrada 270
objeto MESSAGE 188 REAL en cadena 621
objeto MODULE 190 referencia de entrada 641
objeto MOTIONGROUP 191 referencia de salida 641
objeto PROGRAM 192 REPEATUNTIL 684
objeto ROUTINE 193 resta 255
objeto SERIALPORT 193 restablecer 141
objeto TASK 195 restablecimiento de control
objeto WALLCLOCKTIME 197 maestro 452
objetos retardo de escn
CONTROLLER 180 diagrama de bloques de
CONTROLLERDEVICE 181 funciones 647
CST 183 retornar 474
DF1 184 retorno 436

Publicacin 1756-RM003K-ES-P Julio 2008 695


ndice

S IF...THEN 672
operadores a nivel de bits 669
Salida operadores aritmticos 665
actualizar inmediatamente 201
operadores lgicos 668
habilitar o inhabilitar fin de
operadores relacionales 666
procesamiento de
REPEATUNTIL 684
tarea 195
WHILEDO 681
saltar 434, 627, 631
saltar a subrutina 436 tipo de datos de cadena 568, 600,
secuenciador de entrada 420 613
secuenciador de salida 424 transicin de datos 494
seno 520 truncar 561
sin operacin 457
subrutina 436 U
sumar 252
superposicin un impulso 88
verifica 195 un impulso en flanco ascendente 91
suponer datos disponibles 645, 647 un impulso en flanco ascendente
con entrada 96
un impulso en flanco
T descendente 94
un impulso en flanco descendente
tamao en elementos 381 con entrada 99
tangente 526
tarea
activar mediante tag V
consumido 201
activar tarea de evento 464 valor absoluto 277
configurar programticamente 195 valores inmediatos 635
monitorear 195
tarea de evento W
activar mediante instruccin
EVENT 464 WHILEDO 681
activar mediante tag
consumido 201
configurar 195
X
temporizador de retardo a la X a la potencia de Y 546
conexin 104
temporizador de retardo a la
conexin con Y
restablecimiento 116 Y a nivel de bits 304
temporizador de retardo a la Y booleano 317
desconexin 108
temporizador de retardo a la
desconexin con
restablecimiento 120
temporizador retentivo activado 112
temporizador retentivo activado
con restablecimiento 124
texto estructurado
asignacin 661
asignacin no retentiva 662
asigne carcter ASCII 663
CASE 675
comentarios 687
componentes 659
construcciones 671
evaluacin de cadenas 667
expresin 663
expresin numrica 663
FORDO 678
funciones 665

696 Publicacin 1756-RM003K-ES-P Julio 2008


Cdigos de caracteres ASCII

Carcter Dec Hex Carcter Dec Hex Carcter Dec Hex Carcter Dec Hex
[ctrl-@] NUL 0 $00 SPACE 32 $20 @ 64 $40 96 $60
[ctrl-A] SOH 1 $01 ! 33 $21 A 65 $41 a 97 $61
[ctrl-B] STX 2 $02 34 $22 B 66 $42 b 98 $62
[ctrl-C] ETX 3 $03 # 35 $23 C 67 $43 c 99 $63
[ctrl-D] EOT 4 $04 $ 36 $24 D 68 $44 d 100 $64
[ctrl-E] ENQ 5 $05 % 37 $25 E 69 $45 e 101 $65
[ctrl-F] ACK 6 $06 & 38 $26 F 70 $46 f 102 $66
[ctrl-G] BEL 7 $07 39 $27 G 71 $47 g 103 $67
[ctrl-H] BS 8 $08 ( 40 $28 H 72 $48 h 104 $68
[ctrl-I] HT 9 $09 ) 41 $29 I 73 $49 i 105 $69
[ctrl-J] LF 10 $l ($0A) * 42 $2A J 74 $4A j 106 $6A
[ctrl-K] VT 11 $0B + 43 $2B K 75 $4B k 107 $6B
[ctrl-L] FF 12 $0C , 44 $2C L 76 $4C l 108 $6C
[ctrl-M] CR 13 $r ($0D) - 45 $2D m 77 $4D m 109 $6D
[ctrl-N] SO 14 $0E . 46 $2E N 78 $4E n 110 $6E
[ctrl-O] SI 15 $0F / 47 $2F O 79 $4F o 111 $6F
[ctrl-P] DLE 16 $10 0 48 $30 P 80 $50 P 112 $70
[ctrl-Q] DC1 17 $11 1 49 $31 Q 81 $51 q 113 $71
[ctrl-R] DC2 18 $12 2 50 $32 R 82 $52 r 114 $72
[ctrl-S] DC3 19 $13 3 51 $33 S 83 $53 s 115 $73
[ctrl-T] DC4 20 $14 4 52 $34 T 84 $54 t 116 $74
[ctrl-U] NAK 21 $15 5 53 $35 U 85 $55 u 117 $75
[ctrl-V] SYN 22 $16 6 54 $36 V 86 $56 v 118 $76
[ctrl-W] ETB 23 $17 7 55 $37 W 87 $57 w 119 $77
[ctrl-X] CAN 24 $18 8 56 $38 X 88 $58 X 120 $78
[ctrl-Y] EM 25 $19 9 57 $39 Y 89 $59 y 121 $79
[ctrl-Z] SUB 26 $1A : 58 $3A Z 90 $5A z 122 $7A
ctrl-[ ESC 27 $1B ; 59 $3B [ 91 $5B { 123 $7B
[ctrl-\] FS 28 $1C < 60 $3C \ 92 $5C | 124 $7C
ctrl-] GS 29 $1D = 61 $3D ] 93 $5D } 125 $7D
[ctrl-^] RS 30 $1E > 62 $3E ^ 94 $5E ~ 126 $7E
[ctrl-_] US 31 $1F ? 63 $3F _ 95 $5F DEL 127 $7F
Servicio de asistencia Rockwell Automation ofrece informacin tcnica en Internet para
proporcionarle asistencia a la hora de utilizar sus productos. En
tcnica de http://support.rockwellautomation.com, puede encontrar manuales tcnicos,
Rockwell Automation una base de conocimientos con respuestas a preguntas frecuentes, notas
tcnicas y de aplicacin, ejemplos de cdigo y vnculos a Service Packs de
software, as como un vnculo llamado MySupport que se puede personalizar
para sacar el mximo provecho de estas herramientas.

Con el fin de brindarle un nivel adicional de asistencia tcnica para la


instalacin, configuracin y resolucin de problemas por telfono, ofrecemos
los programas de asistencia tcnica TechConnect Support. Si desea obtener
ms informacin, pngase en contacto con el representante o distribuidor
local de Rockwell Automation, o vistenos en
http://support.rockwellautomation.com.

Asistencia para la instalacin


Si se le presenta un problema con un mdulo de hardware durante las
24 horas posteriores a la instalacin, revise la informacin proporcionada en
este manual. Tambin puede llamar a un nmero especial de asistencia
tcnica al cliente a fin de recibir ayuda inicial para la puesta en marcha del
mdulo:

En los +1.440.646.3223
Estados Unidos Lunes a viernes, de 8:00 am a 5:00 pm, hora oficial del Este de EE.UU.
Fuera de Pngase en contacto con el representante local de
Estados Unidos Rockwell Automation para cualquier consulta relacionada con
asistencia tcnica.

Devolucin de productos nuevos


Rockwell prueba todos sus productos para garantizar su correcto
funcionamiento cuando salen de las instalaciones de fabricacin.
No obstante, si el producto no funciona y es necesario devolverlo:

En los Pngase en contacto con el distribuidor. Debe proporcionar al


Estados Unidos distribuidor un nmero de caso de asistencia tcnica (llame al nmero
de telfono indicado anteriormente para obtenerlo) a fin de completar
el proceso de devolucin.
Fuera de Pngase en contacto con el representante local de
Estados Unidos Rockwell Automation para obtener informacin sobre el
procedimiento de devolucin.

Publicacin 1756-RM003K-ES-P Julio 2008 699


Reemplaza la publicacin 1756-RM003I-ES-P Enero de 2007 Copyright 2008 Rockwell Automation, Inc. Todos los derechos reservados. Impreso en EE.UU.
Contraportada
Instrucciones generales de los controladores Logix5000 Manual de referencia

También podría gustarte