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, 1769L30, 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.
ADVERTENCIA

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

IMPORTANTE ATENCIN

Identifica informacin importante para la correcta aplicacin y comprensin del producto. Identifica informacin sobre prcticas o circunstancias que pueden provocar lesiones personales 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 controladores Logix5000
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A quin est dirigido este manual . . . . . . . . . . . . . . . . . Propsito de este manual . . . . . . . . . . . . . . . . . . . . . . . Informacin comn para todas las instrucciones. . . . . . . Convenciones y trminos relacionados. . . . . . . . . . . . . . Establecer y borrar . . . . . . . . . . . . . . . . . . . . . . . . . . Condicin de rengln de lgica de escalera de rels . Estados del bloque de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 23 24 25 25 25 26 27

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

3Publicacin 1756-RM003K-ES-P Julio 2008

ndice

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

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

. . . . 116 . . . . 120 . . . . . . . . . . . . . . . . . . . . 124 128 132 136 141

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


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

Publicacin 1756-RM003K-ES-P Julio 2008

ndice

Especifique una ruta . . . . . . . . . . . . . . . . . . . . . . . Para transferencia en bloques. . . . . . . . . . . . . . . . . Especifique un mtodo de comunicacin o una direccin de mdulo . . . . . . . . . . . . . . . . . . . . . . . Seleccione una opcin de cach. . . . . . . . . . . . . . . Pautas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Obtener valor del sistema (GSV) y establecer valor del sistema (SSV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Objetos GSV/SSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . Acceso al objeto CONTROLLER . . . . . . . . . . . . . . . Acceso al objeto CONTROLLERDEVICE . . . . . . . . . Acceso al objeto CST . . . . . . . . . . . . . . . . . . . . . . . Acceso al objeto DF1 . . . . . . . . . . . . . . . . . . . . . . . Acceso al objeto FAULTLOG . . . . . . . . . . . . . . . . . Acceso al objeto MESSAGE. . . . . . . . . . . . . . . . . . . Acceso al objeto MODULE . . . . . . . . . . . . . . . . . . . Acceso al objeto MOTIONGROUP . . . . . . . . . . . . . Acceso al objeto PROGRAM . . . . . . . . . . . . . . . . . . Acceso al objeto ROUTINE. . . . . . . . . . . . . . . . . . . Acceso al objeto SERIALPORT . . . . . . . . . . . . . . . . Acceso al objeto TASK . . . . . . . . . . . . . . . . . . . . . . Acceso al objeto WALLCLOCKTIME . . . . . . . . . . . . Ejemplo de programacin GSV/SSV . . . . . . . . . . . . . . . Obtenga informacin de fallo . . . . . . . . . . . . . . . . . Establezca los indicadores de habilitacin e inhabilitacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Salida inmediata (IOT) . . . . . . . . . . . . . . . . . . . . . . . .

. . . 169 . . . 172 . . . 172 . . . 173 . . . 175 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 179 180 181 183 184 187 188 190 191 192 193 193 195 197 198 198

. . . 200 . . . 201

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

Publicacin 1756-RM003K-ES-P Julio 2008

ndice

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

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

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

Publicacin 1756-RM003K-ES-P Julio 2008

ndice

Determine el orden de operacin . . . . . . . . . . . . Use cadenas en una expresin . . . . . . . . . . . . . . Copiar archivo (COP) Copiar archivo sncrono (CPS) Llenar archivo (FLL) . . . . . . . . . . . . . . . . . . . . . . . . Promedio de archivo (AVE) . . . . . . . . . . . . . . . . . . . Clasificacin de archivo (SRT) . . . . . . . . . . . . . . . . . Desviacin estndar de archivo (STD) . . . . . . . . . . . Tamao en elementos (SIZE). . . . . . . . . . . . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

. . . . . . . .

354 355 356 362 366 371 376 381

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

Captulo 10 Instrucciones de secuenciador (SQI, SQO, SQL)


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

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

. . . . . 464

Publicacin 1756-RM003K-ES-P Julio 2008

ndice

Captulo 12 Instrucciones For/Break (FOR, FOR...DO, BRK, EXIT, RET)


Introduccin . . . . . For (FOR) . . . . . . . Interrumpir (BRK) . Retornar (RET) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 470 473 474

Captulo 13 Instrucciones especiales (FBC, DDT, DTR, PID)


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

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

Publicacin 1756-RM003K-ES-P Julio 2008

ndice

Captulo 15 Instrucciones matemticas avanzadas (LN, LOG, XPY)


Introduccin . . . . . . . . . . . . Logaritmo natural (LN) . . . . Logaritmo base 10 (LOG) . . X a la potencia de Y (XPY) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 540 543 546

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

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

Captulo 18 Instrucciones de cadena ASCII (CONCAT, DELETE, FIND, INSERT, MID)


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

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

Publicacin 1756-RM003K-ES-P Julio 2008

ndice

Captulo 20 Instrucciones de depuracin (BPT, TPT)


Introduccin . . . . . . . . . . . . . Puntos de interrupcin (BPT) Formato de cadena . . . . . Puntos de rastreo (TPT). . . . . Formato de cadena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627 627 628 631 631

Apndice A Atributos comunes


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

Apndice B Atributos de bloque de funciones


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

. . 648 . . 649 . . 651 . . 653 . . 654

10

Publicacin 1756-RM003K-ES-P Julio 2008

ndice

Apndice C Programacin de texto estructurado


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

ndice

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 Captulo 1 Se combinaron las instrucciones de alarma digital (ALMD) 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 GSV/SSV. Captulo 20 Se aadieron instrucciones de depuracin (PPT, TPT). Pgina 29

180 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: un nmero de pgina control de movimiento PhaseManager control de procesos

La instruccin se encuentra en: este manual Logix5000 Controllers Motion Instruction Set Reference Manual, publicacin 1756-RM007 PhaseManager User Manual, publicacin LOGIX-UM001 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: ABL
Prueba ASCII para lnea de bfer

Ubicacin: 609

Lenguajes:
lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels bloque de funciones, texto estructurado lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels lgica de escalera de rels texto estructurado texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels

Instruccin: AWA
Escritura ASCII con anexo

Ubicacin: 589

Lenguajes:
lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado texto estructurado bloque de funciones texto estructurado bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado texto estructurado bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels texto estructurado lgica de escalera de rels lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado bloque de funciones

ABS
Valor absoluto

277

AWT
Escritura ASCII

594

BAND
Y booleano

317 326 320 627 473 386

ACB
Caracteres ASCII en el bfer

573

BNOT
NO booleano

ACL
Borrar ASCII bfer

575

BOR
O booleano

ACS
Arco coseno

532

BPT Puntos de interrupcin BRK


Interrupcin

ADD
Suma

252

BSL
Desplazamiento de bit a la izquierda

AFI
Instruccin siempre falso

456 577

BSR
Desplazamiento de bit a la derecha

390

AHL
Lneas de handshake ASCII

BTD
Distribuir campo de bits

295 295

ALM
Alarma

control de procesos 42

BTDT
Distribuir campo de bits con receptor

ALMA
Alarma analgica

BTR
Mensaje

144

ALMD
Alarma digital

30

BTW
Mensaje

144

AND
Y a nivel de bits

304

BXOR
O exclusivo booleano

323 control de procesos 295

CC
Control coordinado

ARD
Lectura ASCII

581

CLR
Borrar

ARL
Lectura ASCII de lnea

585

CMP
Comparar

206 601

ASN
Arco seno

529

CONCAT
Concatenar cadenas

ATN
Arco tangente

535

COP
Copiar archivo

356

COS
Coseno

523

AVE
Promedio de archivo

366

16

Publicacin 1756-RM003K-ES-P Julio 2008

Ubicacin de instrucciones

Instruccin: CPS
Copiar archivo sncrono

Ubicacin: 356

Lenguajes:
lgica de escalera de rels texto estructurado lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels texto estructurado bloque de funciones texto estructurado bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado texto estructurado bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado lgica de escalera de rels lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels texto estructurado

Instruccin: FAL
Aritmtica y lgica de archivo

Ubicacin: 335

Lenguajes:
lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels bloque de funciones lgica de escalera de rels lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado texto estructurado bloque de funciones texto estructurado bloque de funciones bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels texto estructurado texto estructurado bloque de funciones lgica de escalera de rels texto estructurado

CPT
Calcular

248 132 128 136 control de procesos control de procesos 486 control de procesos 553

FBC
Comparacin de bits de archivo

478

CTD
Conteo regresivo

FFL
Carga FIFO

394 400 control de procesos 605

CTU
Conteo progresivo

FFU
Descarga FIFO

CTUD
Conteo progresivo/regresivo

FGEN
Generador de funciones

D2SD
Dispositivo discreto de 2 estados

FIND
Encontrar cadena

D3SD
Dispositivo discreto de 3 estados

FLL
Llenar archivo

362 470 559

DDT
Deteccin de diagnstico

FOR
Instruccin FOR

DEDT
Tiempo muerto

FRD
Convertir en entero

DEG
Grados

FSC
Bsqueda y comparacin de archivos

347

DELETE
Eliminar cadena

603

GEQ
Mayor o igual que

215

DERV
Derivada

control de procesos control de procesos 261

GRT
Mayor que

219

DFF
Circuito multivibrador D

DIV
Dividir

GSV
Obtener valor del sistema

176

HLL
Lmite superior/inferior

DTOS
DINT en cadena

619

control de procesos control de procesos 641 control de procesos 607

HPF
Filtro pasaaltos

DTR
Transicin de datos

494 458

ICON
Conector de cable de entrada IMC Control de modelos interno

EOT
Fin de transicin

EQU
Igual a

206

INSERT
Insertar cadena

ESEL
Seleccin mejorada

control de procesos 464

INTG
Integrador

control de procesos 201

EVENT
Activar tarea de evento

IOT
Salida inmediata

Publicacin 1756-RM003K-ES-P Julio 2008

17

Ubicacin de instrucciones

Instruccin: IREF
Referencia de entrada

Ubicacin: 641 control de procesos 434 436

Lenguajes:
bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels lgica de escalera de rels texto estructurado bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado texto estructurado bloque de funciones lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado

Instruccin: MAG
Engranaje de eje de movimiento

Ubicacin: control de movimiento control de movimiento control de movimiento control de movimiento control de movimiento control de movimiento control de movimiento control de movimiento control de movimiento control de movimiento control de

Lenguajes:
lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado texto estructurado bloque de funciones lgica de escalera de rels texto estructurado texto estructurado bloque de funciones lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado

JKFF
Circuito multivibrador JK

MAHD
Aplicar diagnsticos de conexin de movimiento

JMP
Saltar a etiqueta

JSR
Saltar a subrutina

MAH
Posicin inicial de eje de movimiento

MAJ
Impulso de eje de movimiento

JXR
Saltar a subrutina externa

447 434 control de procesos control de procesos 223

LBL
Etiqueta

MAM
Mover eje de movimiento

LDL2
Avance-retardo de segundo orden

MAOC
Leva de salida de brazo de movimiento

LDLG
Avance-retardo

MAPC
Leva de posicin de eje de movimiento

LEQ
Menor o igual que

MAR
Registro de brazo de movimiento

LES
Menor que

227

MASD
Desactivacin de eje de movimiento

LFL
Carga LIFO

406 412 231

MAS
Paro de eje de movimiento

LFU
Descarga LIFO

MASR

LIM
Lmite

Restablecer desactivacin de movimiento eje de movimiento

MATC
Leva de tiempo de eje de movimiento

LN
Logaritmo natural

540

control de movimiento control de procesos control de movimiento control de procesos control de movimiento control de movimiento control de movimiento

MAVE
Promedio mvil

LOG
Logaritmo base 10

(1)

MAW
Observar brazo de movimiento

LOWER
Minsculas

625

MAXC
Captura mxima

LPF
Filtro pasabajos

control de procesos control de movimiento control de

MCCD
Dinmica de cambio coordinado de movimiento

MAAT
Aplicar ajuste a eje de movimiento

MCCM
Movimiento circular coordinado de movimiento

MAFR

Restablecimiento de fallo de movimiento eje de movimiento

MCCP
Perfil de leva de clculo de movimiento

18

Publicacin 1756-RM003K-ES-P Julio 2008

Ubicacin de instrucciones

Instruccin: MCD
Dinmica de cambio de movimiento

Ubicacin: control de movimiento control de movimiento 452

Lenguajes:
lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado

Instruccin: MGSR
Restablecimiento de desactivacin de grupo de movimiento

Ubicacin: control de movimiento

Lenguajes:
lgica de escalera de rels texto estructurado

MCLM
Movimiento lineal de coordenadas de movimiento

MID
Cadena central

609

lgica de escalera de rels texto estructurado texto estructurado bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones

MCR
Restablecimiento de control maestro

MINC
Captura mnima IMMC Control multivariable modular

control de procesos control de procesos 266

MCSD
Desactivacin de coordenadas de movimiento

control de movimiento control de movimiento control de movimiento

MCS
Paro de coordenadas de movimiento

MOD
Mdulo

MCSR
Restablecimiento de desactivacin de coordenadas de movimiento MCT Transformada de coordenadas de movimiento

MOV
Mover

283 control de

MRAT control de movimiento


lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado

Ajuste de eje de movimiento movimiento de marcha

MRHD

control de

MCTP control de Posicin de transformada de movimiento clculo de movimiento

Diagnsticos de conexin de movimiento movimiento de marcha

MRP
Posicin de redefinir movimiento

MDF
Variador directo de movimiento desactivado

control de movimiento control de

control de movimiento control de movimiento 144

MSF
Servo de movimiento desactivado

MDOC

Leva de salida de movimiento desactivacin de movimiento

MSG
Mensaje

MDO
Variador directo de movimiento activado

control de movimiento control de movimiento control de movimiento 237

MSO
Servo de movimiento activado

MDR
Registro de desarme de movimiento

control de movimiento control de procesos 258

MSTD
Desviacin estndar de movimiento

MDW
Observar desarme de movimiento

MUL
Multiplicar

MEQ
Mscara igual que

MUX
Multiplexor

MGSD
Desactivacin de grupo de movimiento

control de movimiento control de

control de procesos 285 288

MVM
Mover con mscara

MGS

MVMT
Mover con mscara con receptor

Paro de grupo de movimiento movimiento

MGSP

control de

Posicin de estroboscopio de movimiento grupo de movimiento

NEG
Cambiar signo

274

Publicacin 1756-RM003K-ES-P Julio 2008

19

Ubicacin de instrucciones

Instruccin: NEQ
Diferente de

Ubicacin: 242

Lenguajes:
lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels lgica de escalera de rels texto estructurado bloque de funciones texto estructurado bloque de funciones bloque de funciones lgica de escalera de rels lgica de escalera de rels texto estructurado bloque de funciones bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado

Instruccin: PFL
Fallo de fase de equipo

Ubicacin: PhaseManager

Lenguajes:
lgica de escalera de rels texto estructurado texto estructurado bloque de funciones lgica de escalera de rels texto estructurado texto estructurado bloque de funciones texto estructurado bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels lgica de escalera de rels texto estructurado bloque de funciones texto estructurado bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones

NOP
Sin operacin

457 314

PIDE
PID mejorado

control de procesos 497

NOT
NO a nivel de bits

PID
Proporcional integral derivativo

PI
Proporcional + Integral

NTCH
Filtro de muesca

control de procesos 641 88 307

control de procesos control de procesos control de procesos PhaseManager

PMUL
Multiplicador de impulsos

OCON
Conector de cable de salida

POSP
Proporcional de posicin

ONS
Un impulso

POVR
Comando de anulacin de fase de equipo

OR
O a nivel de bits

PPD
Fase de equipo en pausa

PhaseManager

OREF
Referencia de salida

641 99

OSFI
Un impulso en flanco descendente con entrada

PRNP
Parmetros de nueva fase de equipo

PhaseManager

OSF
Un impulso en flanco descendente

94

PSC
Estado de fase completo

PhaseManager

PXRQ 91
Solicitud externa de fase de equipo

PhaseManager

OSRI
Un impulso en flanco ascendente con entrada

RAD 91
Radianes

553

OSR
Un impulso en flanco ascendente

OTE
Activacin de salida

82 84 86 PhaseManager

RESD RES
Restablecer

control de 141 436 y 474

Restablecimiento dominante procesos

OTL
Enclavamiento de salida

OTU
Desenclavamiento de salida

RET
Retorno

PATT
Conectar a fase de equipo

RLIM
Limitador de rgimen

control de procesos control de procesos 112

PCLF
Fallo de borrado de fase de equipo

PhaseManager

RMPS
Rampa y estabilizacin

PCMD
Comando de fase de equipo

PhaseManager

RTO
Temporizador retentivo activado

PDET
Desconectar de fase de equipo

PhaseManager

RTOR
Temporizador retentivo activado con restablecimiento

124

20

Publicacin 1756-RM003K-ES-P Julio 2008

Ubicacin de instrucciones

Instruccin: RTOS
REAL en cadena

Ubicacin: 621

Lenguajes:
lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado bloque de funciones texto estructurado bloque de funciones texto estructurado bloque de funciones bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado texto estructurado bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels bloque de funciones texto estructurado lgica de escalera de rels texto estructurado texto estructurado bloque de funciones texto estructurado bloque de funciones

Instruccin: SSV
Establecer valor del sistema

Ubicacin: 176

Lenguajes:
lgica de escalera de rels texto estructurado lgica de escalera de rels lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels lgica de escalera de rels bloque de funciones texto estructurado bloque de funciones

SBR
Subrutina

436

STD
Desviacin estndar de archivo

376

SCL
Escalar

control de procesos control de procesos control de procesos control de procesos 460

STOD
Cadena en DINT

614

SCRV
Curva en S

STOR
Cadena en REAL

616

SEL
Seleccionar

SUB
Restar

255

SETD
Establecer dominante

SFP
Pausa SFC

SWPB
Intercambiar byte

300

SFR
Restablecer SFC

462

TAN
Tangente

526

SIN
Seno

520

TND
Fin temporal

450 556

TOD
Convertir en BCD

SIZE
Tamao en elementos

381

TOFR
Temporizador de retardo a la desconexin con restablecimiento

120

SNEG
Cambiar signo seleccionado

control de procesos control de procesos 420 428 424 270

SOC
Controlador de segundo orden

TOF
Temporizador de retardo a la desconexin

108

lgica de escalera de rels texto estructurado bloque de funciones

SQI
Secuenciador de entrada

TONR
Temporizador de retardo a la conexin con restablecimiento

116

SQL
Carga de secuenciador

SQO
Secuenciador de salida

TON
Temporizador de retardo a la conexin

104

lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels lgica de escalera de rels bloque de funciones texto estructurado lgica de escalera de rels texto estructurado

SQR
Raz cuadrada

TOT
Totalizador

control de procesos 631 561

SQRT
Raz cuadrada

270 371

TPT Puntos de rastreo TRN


Truncar

SRT
Clasificacin de archivo

SRTP
Dividir rango de tiempo proporcional

control de procesos control de procesos

TRUNC
Truncar

561 454

SSUM
Sumador seleccionado

UID
Inhabilitacin de interrupcin de usuario

Publicacin 1756-RM003K-ES-P Julio 2008

21

Ubicacin de instrucciones

Instruccin: UIE
Habilitacin de interrupcin de usuario

Ubicacin: 454

Lenguajes:
lgica de escalera de rels texto estructurado texto estructurado bloque de funciones lgica de escalera de rels texto estructurado lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones

UPDN
Acumulador progresivo/ regresivo

control de procesos 623

UPPER
Maysculas

XIC
Examinar si est cerrado

78 80 310

XIO
Examinar si est abierto

XOR
O exclusivo a nivel de bits

XPY
X a la potencia de Y
(1)

546

22

Publicacin 1756-RM003K-ES-P Julio 2008

Prefacio

Instrucciones generales de controladores Logix5000


Introduccin
Tarea/meta Programar el controlador para aplicaciones secuenciales
Usted se encuentra aqu

Este manual es uno de varios manuales de instrucciones del sistema Logix5000.


Documentos Manual de referencia de instrucciones generales de controladores Logix5000, publicacin 1756-RM003

Programar el controlador para aplicaciones de procesos o de variadores Programar el controlador para aplicaciones de control de movimiento Programar el controlador para usar fases de equipo Importar un archivo de texto o tags en un proyecto Exportar un proyecto o tags a un archivo de texto

Logix5000 Controllers Process Control and Drives Instructions Reference Manual, publicacin 1756-RM006 Logix5000 Controllers Motion Instruction Set Reference Manual, publicacin 1756-RM007 PhaseManager User Manual, publicacin LOGIX-UM001 Logix5000 Controllers Import/Export Reference Manual, publicacin 1756-RM084

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 manual

Este documento proporciona al programador los detalles acerca de cada una de las instrucciones disponibles para un controlador basado 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


Esta seccin Nombre de la instruccin

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


Proporciona este tipo de informacin 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 aritmtico Condiciones de fallo define si la instruccin afecta o no los indicadores de estado aritmtico consulte el apndice Atributos comunes define si la instruccin genera o no genera fallos menores o mayores de ser as, define el tipo de fallo y el cdigo Ejecucin Ejemplo especifica cmo funciona la instruccin 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 todas las instrucciones

El conjunto de instrucciones Logix5000 tiene algunos atributos comunes:


Para esta informacin atributos comunes Vea este apndice El apndice Atributos comunes define: indicadores de estado aritmtico tipos de datos palabras clave atributos de bloques de funciones El apndice Atributos de bloque de funciones: control del programa y del operador modos de temporizacin

Convenciones y trminos relacionados

Establecer y borrar
Este manual usa las funciones de establecer y borrar para definir el estado de los bits (booleanos) y los valores (no booleanos):
Este trmino establecer Significa 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 de entrada de rengln

condicin de salida 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 preescn

Descripcin 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 instruccin La primera ejecucin de instruccin se refiere a la primera vez que la instruccin se ejecuta con una nueva 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

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 detectar alarmas basadas en condiciones booleanas (verdadero/falso)

Use esta instruccin ALMD

Disponible en estos lenguajes lgica de escalera de rels texto estructurado bloque de funciones

Vea la pgina 30

detectar alarmas en base al nivel o velocidad de cambio de un valor

ALMA

lgica de escalera de rels texto estructurado bloque de funciones

42

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 tag ALMD In

Tipo ALARM_DIGITAL BOOL

Formato Estructura Tag Inmediato

Descripcin Estructura ALMD Texto estructurado solamente. 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 Inmediato Tag Inmediato Tag Inmediato Tag Inmediato Inmediato

El valor se copia a ConfProg (ProgAck) cuando se ejecuta la instruccin. En la transicin de borrado a establecido, confirma la alarma (si se requiere confirmacin). El valor se copia a RestabProg (ProgReset) cuando se ejecuta la instruccin. En la transicin de borrado a establecido, borra la alarma (si se requiere). El valor se copia a InhabProg (ProgDisable) cuando se ejecuta la instruccin. Cuando se establece, inhabilita la alarma (no anula los comandos de habilitacin). El valor se copia a HabilitProg (ProgEnable) cuando se ejecuta la instruccin. Cuando se establece, habilita la alarma (tiene precedencia sobre los comandos de inhabilitacin). Lgica de escalera de rels solamente. Especifica la duracin de la alarma antes de que sea reportada (milisegundos).

ProgReset

BOOL

ProgDisable

BOOL

ProgEnable

BOOL

MinDurationPRE

DINT

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, ProgEnable);

Los operandos son iguales a los de la instruccin ALMD de lgica 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 tag ALMD Tipo ALARM_DIGITAL Formato Estructura Descripcin Estructura ALMD

Estructura ALARM_DIGITAL
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin 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 entrada AckRequired

Tipo de datos BOOL

Descripcin 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 entrada ProgUnsuppress

Tipo de datos BOOL

Descripcin 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 entrada ProgTime

Tipo de datos LINT

Descripcin 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. 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.

Severity

DINT

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 EnableOut InAlarm Acked BOOL BOOL BOOL

Descripcin Habilitacin de salida. Estado activo de alarma. Se establece cuando la alarma est activa. Se borra cuando la alarma no est activa (estado normal). 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. Estado suprimido de la alarma. Se establece cuando la alarma est suprimida. Se borra cuando la alarma no est suprimida. Estado inhabilitado de la alarma. Se establece cuando la alarma est inhabilitada. Se borra cuando la alarma est habilitada. 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. 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. Sello de hora de la deteccin de alarma. 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. Sello de hora del retorno de la alarma al estado normal. Sello de hora que indica cundo se restableci la alarma. 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.

Suppressed Disabled MnDurationACC

BOOL BOOL DINT

AlarmCount InAlarmTime AckTime RetToNormalTime DeliveryER

DINT LINT LINT LINT BOOL

AlarmCountResetTime LINT

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 DeliveryDN BOOL

Descripcin 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. 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. 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. 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. 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. 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. Nmero de suscriptores para esta alarma. Nmero de suscriptores notificados correctamente acerca del cambio de estado de alarma ms reciente. Indicadores de estado combinados: Status.0 = InstructFault. Status.1 = InFaulted. Status.2 = SeverityInv.

DeliveryEN NoSubscriber NoConnection

BOOL BOOL BOOL

CommError

BOOL

AlarmBuffered

BOOL

Subscribers SubscNotified Status

DINT DINT DINT

InstructFault (Status.0) BOOL InFaulted (Status.1) SeverityInv (Status.2) BOOL 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. 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. 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 = Falso Latched = False
InAlarm = Falso En= = Condition, Condicin,MinDurationACC MinDurationACC >= >= Min DurationPRE In MinDurationPRE
in ic tion do ndi on C= C = ! In In ! EE R PR nP atio r u D Min C >= C C C A A n I ion nI attio !n urra =! Du D C in =oC in no M M dn , , itd n n io o i i t ic ni c i d n n o C C = =

InAlarm = False Acked = Verdadero Acked = True

InAlarm = Verdadero InAlarm = True Acked = Falso Acked = False

1 Ack1 Ack

1 Ack Ack1

InAlarm = False Acked= =False Falso Acked

InAlarm = Falso

n n II

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

Enclavado = Verdadero Latched = True


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

InAlarm = False Acked = Verdadero Acked = True

InAlarm = Falso

InIn !=!= CC on od nid tiio cin ,nR ,e Rs ee st e2 t2

1 Ack Ack1

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

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 5000, software RSView). 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 5000, software RSView). 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 >=
In = Condition, MinDurationACC >= MinDurationPRE MinDurationPRE

InAlarm = Falso InAlarm = False In In !=!= Condicin Condition

InAlarm = Verdadero InAlarm = True

Acked Acked == True Verdadero

Enclavado Latched = True=

Verdadero
In = Condicin, MnDuracinACC >= MnDuracinPRE In = Condition, MinDurationACC >= MinDurationPRE

InAlarm = False Falso InAlarm = In In !=!= Condicin, Resset Condition, Reset


1

InAlarm = Verdadero InAlarm = True


1

Acked Acked == True Verdadero

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


1

(software RSLogix 5000, software RSView). software, RSView software)

Alarm can be reset by several different ways: ProgReset, OperReset, clients (RSLogix 5000

Indicadores de estado aritmtico: ninguno Condiciones de fallo: ninguna Ejecucin:


Condicin preescn Accin de lgica de escalera de rels 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 rengln es falsa La condicin de salida de rengln se establece como 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 rengln es verdadera La condicin de salida de rengln se establece como 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 preescn

Accin de bloque de funciones Todas las peticiones del operador, sellos de hora e indicadores de entrega se borran. InAlarm se borra y Acked se establece.

Accin de texto estructurado Todas las peticiones del operador, sellos de hora e indicadores de entrega se borran. InAlarm se borra y Acked se establece. Ninguna. Ninguna. La instruccin se ejecuta. EnableOut siempre se establece. La instruccin se ejecuta. EnableOut siempre se establece. Ninguna.

primer escn de instruccin Ninguna. primera ejecucin de instruccin EnableIn se borra Ninguna. La instruccin no se ejecuta. EnableOut se borra. EnableIn se establece La instruccin se ejecuta. EnableOut se establece. post-escn 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 tag ALMA In

Tipo ALARM_ANALOG REAL DINT INT SINT BOOL

Formato Estructura Tag inmediato

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

ProgAckAll

Tag Inmediato Tag Inmediato

ProgDisable

BOOL

ProgEnable

BOOL

Tag Inmediato

El valor se copia a ProgEnable cuando se ejecuta la 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 tag ALMA Tipo ALARM_ANALOG Formato Estructura Descripcin 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 entrada EnableIn Tipo de datos BOOL Descripcin 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 entrada AckRequired

Tipo de datos BOOL

Descripcin 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 entrada LLProgAck

Tipo de datos BOOL

Descripcin 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 entrada ProgDisable

Tipo de datos BOOL

Descripcin 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 entrada HSeverity

Tipo de datos DINT

Descripcin 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 entrada Deadband

Tipo de datos REAL

Descripcin 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 EnableOut InAlarm

Tipo de datos BOOL BOOL

Descripcin Habilitacin de salida. 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). 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. 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. 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. 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. 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. 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. 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. 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

AnyInAlarmUnack

BOOL

HHInAlarm HInAlarm LInAlarm LLInAlarm ROCPosInAlarm

BOOL BOOL BOOL BOOL BOOL

ROCNegInAlarm

BOOL

ROC

REAL

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. 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. 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. 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. 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. 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. 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.

HAcked

BOOL

LAcked

BOOL

LLAcked

BOOL

ROCPosAcked

BOOL

ROCNegAcked

BOOL

HHInAlarmUnack

BOOL

50

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 1

Parmetro de salida HInAlarmUnack

Tipo de datos BOOL

Descripcin 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. 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. 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. 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. 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. Estado suprimido de la alarma. Se establece cuando la alarma est suprimida. Se borra cuando la alarma no est suprimida. Estado inhabilitado de la alarma. Se establece cuando la alarma est inhabilitada. Se borra cuando la alarma est habilitada. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.

LInAlarmUnack

BOOL

LLInAlarmUnack

BOOL

ROCPosInAlarmUnack

BOOL

ROCNegInAlarmUnack

BOOL

Suppressed

BOOL

Disabled

BOOL

MnDurationACC

DINT

HHInAlarmTime HHAlarmCount HInAlarmTime HAlarmCount LInAlarmTime LAlarmCount LLInAlarmTime LLAlarmCount ROCPosInAlarmTime ROCPosInAlarmCount ROCNegInAlarmTime ROCNegAlarmCount

LINT DINT LINT DINT LINT DINT LINT DINT LINT DINT LINT DINT

Publicacin 1756-RM003K-ES-P Julio 2008

51

Captulo 1

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

Parmetro de salida AckTime RetToNormalTime AlarmCountResetTime DeliveryER

Tipo de datos LINT LINT LINT BOOL

Descripcin 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. Sello de hora del retorno de la alarma al estado normal. Sello de hora que indica cundo se restableci la alarma. 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. 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. 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. 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. 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. 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. 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. Nmero de suscriptores para esta alarma. Nmero de suscriptores notificados correctamente acerca del cambio de estado de alarma ms reciente. 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.

DeliveryDN

BOOL

DeliveryEN

BOOL

NoSubscriber

BOOL

NoConnection

BOOL

CommError

BOOL

AlarmBuffered

BOOL

Subscribers SubscNotified Status

DINT DINT DINT

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 InFaulted (Status.1) SeverityInv (Status.2)

Tipo de datos BOOL BOOL

Descripcin 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. 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 (Status.3) DeadbandInv (Status.4)

BOOL

La configuracin de lmite de alarma no es vlida (por ejemplo, LLimit < LLLimit). Si no es 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. 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.

BOOL

ROCPosLimitInv (Status.5) ROCNegLimitInv (Status.6) ROCPeriodInv (Status.7)

BOOL BOOL BOOL

Lmite de velocidad de cambio positiva no vlido. Si no es vlido, la instruccin usa ROCPosLimit = 0.0, lo cual inhabilita la deteccin de velocidad de cambio positiva. Lmite de velocidad de cambio negativa no vlido. Si no es vlido, la instruccin usa ROCNegLimit = 0.0, lo cual inhabilita la deteccin de velocidad de cambio negativa. 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, >=MinDurationPRE MinDurationPRE >= HLimit,MinDurationACC MinDurationACC >= HinAlarm==False False HInAlarm HAcked==True True HAcked
In In< <(( H H LL im im iit t - De ea ad db ba an nd d)) ) ) and and adb adb De

InIn >= HHLimit, >=MinDurationPRE MinDurationPRE >= HHLimit,MinDurationACC MinDurationACC >= HinAlarm True HInAlarm = = True HAcked = False HAcked HHinAlarm = False False HHInAlarm = HHAcked = True True HHAcked =
)) dd nn a a b b d ad IIn ea n< De <(H -- D t (H i it H H m LL im Liim PRE im nE HL iit oR t -- D HH ((H tiP De ran utio n< ea In ra I ad D u db n i D ba an in nd MM d)) >= >= CC AC nC oA tin io t a r a r u u D D in in M M miitt,, Liim HL =H = > > n In

HHinAlarm = True True HHInAlarm = HHAcked False HHAcked = = False

1 1 Ack Ack

HinAlarm = False False HInAlarm = HAcked False HAcked = = False


1

im im H LL > ==H InIn>

it --De mit Lim RE PE R (Hli Pn < (H io iotn In ta In < ar Dru nu iniD M M == C>> C CC A A nn io io att u urra D n in Mi itit,, M

Ack1 Ack

1 Ack Ack

Ack1 Ack

HinAlarm = True HInAlarm = True HAcked = True True HAcked =

HHinAlarm = False HHInAlarm = False HHAcked HHAcked = = False False


1

HHinAlarm True HHInAlarm = = True HHAcked HHAcked = = True True

1 La condicin de alarma H puede confirmarse de diferentes maneras: HProgAck, HOperAck,

ProgAckAll, OperAckAll, clientes (software RSLogix 5000, software RSView). clients (RSLogix 5000 software, RSView software).

H alarm condition can be acked by several different ways: HProgAck, HOperAck, ProgAckAll, OperAckAll,

1 La condicin de alarma HH puede confirmarse de diferentes maneras: HHProgAck, HHOperAck,

ProgAckAll, OperAckAll, clientes (software RSLogix 5000, software RSView). clients (RSLogix 5000 software, RSView software).

HH alarm condition can be acked by several different ways: HHProgAck, HHOperAck, ProgAckAll, OperAckAll,

InIn >= LLimit, >=MinDurationPRE MinDurationPRE <= LLimit,MinDurationACC MinDurationACC >= LinAlarm = False False LInAlarm = LAcked = True True LAcked =
) d ) d ann ba db ad IIn n< Dea >( LL L it+- De Liim m it miitt + i L EE PR - De nR < ((LLlim oP tin In tio adba In > ra ra uu D D nd in in d)) M M = = > C> CC AC nA on attiio rra u u D D in n i M , it,itM Lim im LLL <= n= InI>

LinAlarm = True LInAlarm = True LAcked = False False LAcked =

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

IIn n<

Ack1

Ack1

Ack1 Ack

1 Ack Ack

LinAlarm = False LInAlarm = False LAcked False LAcked = = False

LinAlarm = True LInAlarm = True LAcked True LAcked = = True


11

LLinAlarm = False LLInAlarm = False LAcked ==False LLAcked False

LLinAlarm = True LLInAlarm = True LAcked ==False LLAcked False d)) nd an b a d b a ead De -D >( t+ i (L LL it E m LL i i m R Limit L E P R LL LLim it + Pn -D io < ((L atn De tio IIn ar Ack1 ea n> ad Dru ba db Ack1 nu an nd iniD M d)) M = = > CC> C C A A nn io io att urra Du inD Min it,, M t i im m i LLinAlarm = True LL LL LLInAlarm = True ==LL In>< LAcked = In LLAcked =True True

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


1

ProgAckAll, OperAckAll, clientes (software RSLogix 5000, software RSView). clients (RSLogix 5000 software, RSView software).

L alarm condition can be acked by several different ways: LProgAck, LOperAck, ProgAckAll, OperAckAll,

La de alarma LLacked puede confirmarse de diferentes maneras: LLProgAck, LLOperAck, ProgAckAll, LLcondicin alarm condition can be by several different ways: LLProgAck, LLOperAck, ProgAckAll, OperAckAll, clients (RSLogix 5000(software software, RSView OperAckAll, clientes RSLogixsoftware). 5000, software RSView).

ROC == ROC

In(CurrentSample) - In(Previou In(PreviousSample) In(Current Sample) sSample) ROCPeriod ROCPeriod

Donde se recolecta una nueva muestra en el Where a new sample is collected on the siguiente escn despus de que haya transcurrido next scan after the ROCPeriod has elapsed. ROCPeriod

ROC <= ROC >= RocPosLimit RocPosLimit RocPosInAlarm = False False RocPosInAlarm = RocPosAcked = = True RocPosAcked True
R R O O C
C< <

ROC ROC <= <= -RocNegLimit -RocNegLimit


it mit sLiim Po osL

RocPosInAlarm = True True RocPosInAlarm = RocPosAcked = False False RocPosAcked =

RocNegInAlarm = False False RocNegInAlarm = RocNegAcked = True True RocNegAcked =


R O R O CC< >-R
-R oo cc N N eeg LL g iim miit t C> OC RO R

Ack11 Ack

R R oo cc PP oo ss LL im im iit t

C< OC RO R

c Ro ocP <R

cN oc Ro -R <-

it imit Lim gL eg Ne

RocNegInAlarm = True True RocNegInAlarm = RocNegAcked = False RocNegAcked

Ack11 Ack

1 1 Ack Ack

1 Ack Ack

RocPosInAlarm = False False RocPosInAlarm = RocPosAcked = False RocPosAcked


1
1

t miit Liim sL os o P cP oc Ro =R >= < C C RO

RocPosInAlarm = True True RocPosInAlarm = RocPosAcked = True True

RocNegInAlarm = False False RocNegInAlarm = RocNegAcked = RocNegAcked = False False


1

it it Lim gim eL eg N N cc oo R R = = C<< C O O RR

RocNegInAlarm = True True RocNegInAlarm = RocNegAcked = RocNegAcked = True True

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

La condicin de alarma ROCNeg puede confirmarse de diferentes maneras: RocNegProgAck, RocNegOperAck, 1 ROCNeg alarm condition can be acked by several different ways: RocNegProgAck, RocNegOperAck, ProgAckAll, , ProgAkkAll, OperAckAll, clientes (software 5000, software RSView). OperAckAll, clients (RSLogix 5000 software, RSLogix 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 >= HLimit, MinDurationACC >= >= MinDurationPRE In >= HLimit, MinDurationACC MinDurationPRE
HInAlarm = False

HinAlarm = False

HInAlarm = True

HinAlarm = True

HAcked = True

HAcked = True

< (HLimit Deadband) In In < (HLimit - -Deadband)

>= LLLimit, MinDurationACC >= >= MinDurationPRE In In <= LLimit, MinDurationACC MinDurationPRE
LInAlarm = False

LinAlarm = False

LInAlarm = True

LinAlarm = True

LAcked = True

LAcked = True

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

In >= HHLimit, MinDurationACC >= In >= HHLimit, MinDurationACC >=MinDurationPRE MinDurationPRE HHinAlarm = = False HHInAlarm False (HHLimit - Deadband) InIn << (HHLimit Deadband) HHinAlarm = HHInAlarm =True True HHAcked = HHAcked =True True

In >= LLLimit, MinDurationACC >= In <= LLLimit, MinDurationACC >=MinDurationPRE MinDurationPRE


LLInAlarm = False

LLinAlarm = False

LLInAlarm = True

LLinAlarm = True

LLAcked = True

LLAcked = True

< (LLLimit+ - Deadband) In In > (LLLimit Deadband)

ROC == ROC

In(CurrentSample) - In(PreviousSample) In(Current Sample) In(PreviousSample) ROCPeriod ROCPeriod ROC >= ROCPosLimit ROCPosLimit ROC >=

Donde searecolecta una nueva muestra enthe el siguiente Where new sample is collected on escn despus de the queROCPeriod haya transcurrido ROCPeriod next scan after has elapsed.

RocPosInAlarm = RocPosInAlarm =False False ROC< > ROCPosLimit ROCPosLimit ROC ROC<= >=-ROCNegLimit -ROCNegLimit ROC RocNegInAlarm = RocNegInAlarm = False False ROC> > -ROCNegLimit -ROCNegLimit ROC

RocPosInAlarm ==True RocPosInAlarm True

RocPosAcked = True RocPosAcked = True

RocNegInAlarm = RocNegInAlarm =True True

RocNegAcked = True RocNegAcked = True

Indicadores de estado aritmtico: Los indicadores de estado aritmtico se establecen para la salida ROC. Condiciones de fallo:
Fallo menor Overflow ROC Tipo de fallo 4 Cdigo de fallo 4

Ejecucin:
Condicin preescn Accin de lgica de escalera de rels 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 rengln es falsa condicin de entrada de rengln es verdadera post-escn La instruccin no se ejecuta. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. 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 preescn

Accin de bloque de funciones Todas las peticiones del operador, sellos de hora e indicadores de entrega se borran. Todos los parmetros xInAlarm se borran y se confirman todas las condiciones de alarma.

Accin de texto estructurado Todas las peticiones del operador, sellos de hora e indicadores de entrega se borran. Todos los parmetros xInAlarm se borran y se confirman todas las condiciones de alarma. Ninguna. Ninguna. La instruccin se ejecuta. EnableOut siempre se establece. La instruccin se ejecuta. EnableOut siempre se establece. Ninguna.

primer escn de instruccin Ninguna. primera ejecucin de instruccin EnableIn se borra Ninguna. La instruccin no se ejecuta. EnableOut se borra. EnableIn se establece La instruccin se ejecuta. EnableOut se establece. post-escn 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 de alarma

Despus de introducir una alarma ALMD o ALMA y especificar el nombre de tag de la alarma, use el dilogo Alarm Configuration para 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 Condition Instruccin ALMD Descripcin 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 Input Rate of Change 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. 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. 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 Latched Instruccin ALMD Introduzca el tiempo en ms que una condicin de alarma debe estar activa antes de que se reporte la alarma. 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.

Severity

Publicacin 1756-RM003K-ES-P Julio 2008

63

Captulo 1

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

Opcin Alarm class

Descripcin 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 mensaje de alarma

Introduzca el texto de mensaje apropiado que se mostrar cuando una condicin de alarma est activa (InAlarm). Para una instruccin 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 Message String Descripcin 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 Associated tags

Descripcin 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 Alarm name Se incorpora en la cadena de mensaje Cdigo predeterminado aadido a la cadena de mensaje

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. La condicin que activa la alarma: la alarma digital muestra el disparo; la alarma analgica muestra HiHi, Hi, Lo, LoLo, ROC_POS ROC_NEG.
/*S:0 %ConditionName*/

Condition name

Input value

El valor de entrada para la alarma: la alarma digital muestra 0 1; la alarma analgica muestra el valor de la variable de entrada que est monitoreando.

/*N:5 %InputValue NOFILL DP:0*/

Limit value

El umbral de la alarma: la alarma digital muestra 0 1; la alarma analgica muestra la verificacin de rango configurada actual para la condicin de alarma analgica.

/*N:5 %LimitValue NOFILL DP:0*/

Severity Values of associated tags

La severidad configurada de la condicin de alarma. El valor de un tag configurado para incluirse con el evento de alarma.

/*N:5 %Severity NOFILL DP:0*/ /*N:5 %Tag1 NOFILL DP:0*/

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 Valor BOOL Valor DINT, 9 dgitos, relleno con espacio a la izquierda Valor de entrada REAL, 9 dgitos (incluye decimal) 3 dgitos despus del decimal, relleno con ceros a la izquierda. Valor REAL, 8 dgitos (incluye decimal) 4 dgitos despus del decimal, relleno con ceros a la izquierda. Valor de cadena, sin ancho fijo Valor de cadena, 26 caracteres, ancho fijo Cdigo
/*N:1 %Tag1 NOFILL DP:0*/ /*N:9 %Tag2 SPACEFILL DP:0*/ /*N:9 %InputValue NOFILL DP:3*/

/*N:8 %Tag3 ZEROFILL DP:4*/ /*S:0 %Tag4*/ /*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 alarma

En la ficha Status del dilogo de alarma, monitoree la condicin de una alarma, confirme una alarma, inhabilite una alarma, suprima una 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 alarmas en el bfer

Para recibir mensajes de alarma basados en el controlador, los clientes de alarmas (como el servidor RSLinx Enterprise) deben establecer una 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 a informacin de alarmas

Cada instruccin de alarma tiene una estructura de alarma que almacena informacin de configuracin y ejecucin de alarma. La 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 Programa de usuario

Elementos de estructura de alarmas ProgAck ProgReset ProgSuppress ProgDisable ProgEnable

Consideraciones Use la lgica del controlador para acceder programticamente a elementos del sistema de alarmas. Por ejemplo, el programa de control puede determinar si se inhabilitar una serie de alarmas relacionadas con una sola causa raz. Por ejemplo, el programa de control podra inhabilitar una instruccin de alarma, MyDigitalAlarm de tipo de datos ALARM_DIGITAL, mediante acceso al miembro de tag MyDigitalAlarm.ProgDisable. Cree una plantilla de HMI personalizada para acceder a elementos del sistema de alarmas. Por ejemplo, si el operador necesita retirar una herramienta, en lugar de inhabilitar manualmente o suprimir alarmas individualmente desde las pantallas de alarmas, el operador puede presionar una tecla de inhabilitacin que brinda acceso a un tag MyDigitalAlarm.OperDisable. 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.

HMI personalizado

OperAck OperReset OperSuppress OperDisable OperEnable

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 alarmas

Suprima alarmas para retirar las alarmas cuya existencia usted conoce desde el HMI, pero mantenga las alarmas activas. Esto le permitir 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 basada en el controlador


Fuente Miembros de tag de alarma

Las alarmas basadas en el controlador procesan entradas provenientes de dos fuentes.

Descripcin 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 Alarma digital sin tags asociados y esta configuracin: Mensaje de alarma: Fallo de contactor Clase de alarma: Zona de tanques A Alarma digital con dos tags asociados y esta configuracin: 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: 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 1522 bytes 1100 bytes Tamao aproximado 1012 bytes

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 Alarma analgica sin tags asociados y esta configuracin: 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: 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: 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 4536 bytes 2604 bytes Tamao aproximado 2228 bytes

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 (ALMD) Sin cambio de estado Rengln de alarma falso Rengln verdadero Cambio de estado de alarma Rengln falso Rengln verdadero 8 s 8 s 35 s 35 s Alarma analgica (ALMA) 17 s 60 s 17 s 126 s

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

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

Introduccin
Si desea habilitar salidas cuando se establece un bit. habilitar salidas cuando se borra un bit. establecer un bit establecer un bit (retentivo) borrar un bit (retentivo) habilitar salidas por un escn cada vez que el rengln se hace verdadero establecer un bit por un escn cada vez que el rengln se hace verdadero establecer un bit por un escn cada vez que el rengln se hace falso establecer un bit por un escn cada vez que el bit de entrada se establece en el bloque de funciones establecer un bit por un escn cada vez que el bit de entrada se borra en el bloque de funciones
(1)

Use las instrucciones de bits (tipo rel) para monitorear y controlar el estado de los bits.
Use esta instruccin XIC XIO OTE OTL OTU ONS OSR OSF OSRI Disponible en estos lenguajes lgica de escalera de rels texto estructurado(1) lgica de escalera de rels texto estructurado
(1)

Vea la pgina 78 80 82 84 86 88 91 94 96

lgica de escalera de rels texto estructurado(1) lgica de escalera de rels texto estructurado texto estructurado texto estructurado
(1)

lgica de escalera de rels


(1)

lgica de escalera de rels


(1)

lgica de escalera de rels lgica de escalera de rels texto estructurado bloque de funciones texto estructurado bloque de funciones

OSFI

99

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 (XIC)


Operandos:

La instruccin XIC examina el bit de datos para determinar si est establecido.

Lgica de escalera de rels


Operando bit de datos Tipo BOOL Formato tag Descripcin 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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera
bit de datos = 0 la condicin de salida de rengln se establece como falsa

Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa.

examinar bit de datos

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 (XIO)


Operandos:

La instruccin XIO examina el bit de datos para determinar si est borrado.

Lgica de escalera de rels


Operando bit de datos Tipo BOOL Formato tag Descripcin 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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera
bit de datos = 0 la condicin de salida de rengln se establece como verdadera

Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa.

examinar bit de datos

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)


Operandos:

La instruccin OTE establece o borra el bit de datos.

Lgica de escalera de rels


Operando bit de datos Tipo BOOL Formato tag Descripcin 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 preescn Accin de lgica de escalera de rels 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 (OTL)


Operandos:

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

Lgica de escalera de rels


Operando bit de datos Tipo BOOL Formato tag Descripcin 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 preescn Accin de lgica de escalera de rels 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 salida (OTU)


Operandos:

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

Lgica de escalera de rels


Operando bit de datos Tipo BOOL Formato tag Descripcin 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 preescn Accin de lgica de escalera de rels 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)
Operandos:

La instruccin ONS habilita o inhabilita el resto del rengln, dependiendo del estado del bit de almacenamiento.

Lgica de escalera de rels


Operando storage bit Tipo BOOL Formato tag Descripcin 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 preescn Accin de lgica de escalera de rels 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

examinar bit de almacenamiento

el bit de almacenamiento se establece 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 ascendente (OSR)

La instruccin OSR establece o borra el bit de salida, dependiendo del estado del bit de almacenamiento. 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 storage bit Tipo BOOL Formato tag Descripcin 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 se ejecuta

la instruccin se restablece durante 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 preescn Accin de lgica de escalera de rels 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

examinar bit de almacenamiento

bit de almacenamiento = 0

el bit de almacenamiento se establece el bit de salida se establece la condicin de salida de rengln se establece como verdadera

bit de 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 descendente (OSF)

La instruccin OSF establece o borra el bit de salida dependiendo del estado del bit de almacenamiento. 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 storage bit Tipo BOOL Formato tag Descripcin 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 se ejecuta

la instruccin se restablece 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 preescn Accin de lgica de escalera de rels 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 almacenamiento = 0 el bit de almacenamiento permanece borrado el bit de salida se borra la condicin de salida de rengln se establece como falsa

examinar bit de almacenamiento

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 falsa

fin

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 ascendente con entrada (OSRI)


Operandos:
OSRI(OSRI_tag);

La instruccin OSRI establece el bit de salida por un ciclo de ejecucin cuando el bit de entrada cambia de borrado a establecido. Esta instruccin est disponible en lgica de escalera de rels como OSR; vea la pgina 91.

Texto estructurado
Operando tag OSRI Tipo FBD_ONESHOT Formato estructura Descripcin estructura OSRI

Bloque de funciones
Operando tag OSRI Tipo FBD_ONESHOT Formato estructura Descripcin estructura OSRI

Estructura FBD_ONESHOT
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut OutputBit BOOL BOOL Descripcin La instruccin produjo un resultado vlido. 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 se ejecuta

la instruccin se restablece durante la siguiente ejecucin del escn

40048

Indicadores de estado aritmtico: no afectados Condiciones de fallo: ninguna Ejecucin:


Condicin preescn Accin de bloque de funciones Ninguna. Accin de texto estructurado Ninguna. InputBit n-1 se establece. InputBit n-1 se establece. n. a. En una transicin de borrado a establecido de InputBit, la instruccin establece InputBit n-1. EnableIn siempre se establece. La instruccin se ejecuta. Ninguna.

primer escn de instruccin InputBit n-1 se establece. primera ejecucin de instruccin EnableIn se borra EnableIn se establece InputBit n-1 se establece. EnableOut se borra, la instruccin no efecta ninguna operacin y las salidas no se actualizan. En una transicin de borrado a establecido de InputBit, la instruccin establece InputBit n-1. La instruccin se ejecuta. EnableOut se establece. post-escn 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 descendente con entrada (OSFI)


Operandos:
OSFI(OSFI_tag);

La instruccin OSFI establece OutputBit por un ciclo de ejecucin cuando InputBit cambia de establecido a borrado. Esta instruccin est disponible en lgica de escalera de rels como OSF; vea la pgina 94.

Texto estructurado
Operando tag OSFI Tipo FBD_ONESHOT Formato estructura Descripcin estructura OSFI

Bloque de funciones
Operando tag OSFI Tipo FBD_ONESHOT Formato estructura Descripcin estructura OSFI

Estructura FBD_ONESHOT
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut OutputBit BOOL BOOL Descripcin La instruccin produjo un resultado vlido. 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 se ejecuta

la instruccin se restablece durante la siguiente ejecucin del escn 40047

Indicadores de estado aritmtico: no afectados Condiciones de fallo: ninguna Ejecucin:


Condicin preescn Accin de bloque de funciones Ninguna. Accin de texto estructurado Ninguna. InputBit n-1 se borra. InputBit n-1 se borra. n. a. En una transicin de borrado a establecido de InputBit, la instruccin borra InputBit n-1. EnableIn siempre se establece. La instruccin se ejecuta. Ninguna.

primer escn de instruccin InputBit n-1 se borra. primera ejecucin de instruccin EnableIn se borra EnableIn se establece InputBit n-1 se borra. EnableOut se borra, la instruccin no efecta ninguna operacin y las salidas no se actualizan. En una transicin de borrado a establecido de InputBit, la instruccin borra InputBit n-1. La instruccin se ejecuta. EnableOut se establece. post-escn 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

Instrucciones de temporizador y contador


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

Introduccin
Si desea establecer el tiempo durante el cual un temporizador est habilitado establecer el tiempo durante el cual un temporizador est inhabilitado acumular tiempo establecer el tiempo durante el cual un temporizador est habilitado con restablecimiento incorporado en el bloque de funciones establecer el tiempo durante el cual un temporizador est inhabilitado con restablecimiento incorporado en el bloque de funciones acumular tiempo con restablecimiento incorporado en el bloque de funciones conteo progresivo conteo regresivo conteo progresivo y regresivo en el bloque de funciones restablecer un temporizador o un contador

Los temporizadores y contadores controlan operaciones en base a tiempo o nmero de eventos.


Use esta instruccin TON TOF RTO TONR Disponible en estos lenguajes lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels texto estructurado bloque de funciones TOFR texto de estructura bloque de funciones RTOR texto estructurado bloque de funciones CTU CTD CTUD lgica de escalera de rels lgica de escalera de rels texto estructurado bloque de funciones RES lgica de escalera de rels 141 128 132 136 124 120 Vea la pgina 104 108 112 116

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 conexin (TON)

La instruccin TON es un temporizador no retentivo que acumula el tiempo cuando la instruccin est habilitada (la condicin de entrada 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 Timer Preset Acum Tipo TIMER DINT DINT Formato tag inmediato inmediato Descripcin estructura de temporizador perodo de retardo (acumulacin de tiempo) el tiempo en ms contado por el temporizador el valor inicial es tpicamente 0

Estructura TIMER
Mnemnico .EN .TT .DN .PRE .ACC Tipo de datos BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin indica que la instruccin TON est habilitada. El bit de temporizacin indica que se est ejecutando una operacin de temporizacin. El bit de efectuado se establece cuando .ACC .PRE. 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. 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) preajuste valor acumulado de temporizador (.ACC) 0
el temporizador no lleg al valor .PRE
16649 Retardo a la conexin

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. 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

IMPORTANTE

Indicadores de estado aritmtico: no afectados Condiciones de fallo:


Ocurrir un fallo mayor si .PRE < 0 .ACC < 0 Tipo de fallo 4 4 Cdigo de fallo 34 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 preescn Accin de lgica de escalera de rels 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

examine el bit .EN

Bit .EN = 0

el bit .EN se establece el bit .TT se establece last_time = current_time

Bit .EN = 1 .ACC .PRE

el bit .TT se establece .ACC = .ACC + (current_time - last_time) last_time = current_time

examine .ACC

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

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 desconexin (TOF)

La instruccin TOF es un temporizador no retentivo que acumula el tiempo cuando la instruccin est habilitada (la condicin de entrada 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 Timer Preset Acum Tipo TIMER DINT DINT Formato tag inmediato inmediato Descripcin estructura de temporizador perodo de retardo (acumulacin de tiempo) total de ms que cont el temporizador el valor inicial es tpicamente 0

Estructura TIMER
Mnemnico .EN .TT .DN .PRE .ACC Tipo de datos BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin indica que la instruccin TOF est habilitada. El bit de temporizacin indica que se est ejecutando una operacin de temporizacin. El bit de efectuado se borra cuando .ACC .PRE. 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. 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 el temporizador no lleg al valor .PRE


16650

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. 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

IMPORTANTE

Indicadores de estado aritmtico: no afectados Condiciones de fallo:


Ocurrir un fallo mayor si .PRE < 0 .ACC < 0 Tipo de fallo 4 4 Cdigo de fallo 34 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 preescn Accin de lgica de escalera de rels 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

examine el bit .EN

Bit .EN = 1

el bit .EN se borra el bit .TT se establece last_time = current_time

Bit .EN = 0 .ACC .PRE

el bit .TT se establece .ACC = .ACC + (current_time - last_time) last_time = current_time

examine .ACC

.ACC < .PRE

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

el valor .ACC retorna al valor inicial s

no

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 activado (RTO)

La instruccin RTO es un temporizador retentivo que acumula tiempo cuando la instruccin est habilitada. 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 Timer Preset Acum Tipo TIMER DINT DINT Formato tag inmediato inmediato Descripcin estructura de temporizador perodo de retardo (acumulacin de tiempo) nmero de ms que cont el temporizador el valor inicial es tpicamente 0

Estructura TIMER
Mnemnico .EN .TT .DN .PRE .ACC Tipo de datos BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin indica que la instruccin RTO est habilitada. El bit de temporizacin indica que se est ejecutando una operacin de temporizacin. El bit de efectuado indica que .ACC .PRE. 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. 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

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

16651

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. 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

IMPORTANTE

Indicadores de estado aritmtico: no afectados Condiciones de fallo:


Ocurrir un fallo mayor si .PRE < 0 .ACC < 0 Tipo de fallo 4 4 Cdigo de fallo 34 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 preescn Accin de lgica de escalera de rels 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

examine el bit .DN

Bit .DN = 1

Bit .DN = 0

examine el bit .EN

Bit .EN = 0

el bit .EN se establece el bit .TT se establece last_time = current_time

Bit .EN = 1 .ACC .PRE

el bit .TT se establece .ACC = .ACC + (current_time - last_time) last_time = current_time

examine .ACC

.ACC < .PRE

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

el valor .ACC retorna al valor inicial s

no

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.

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 a la conexin con restablecimiento (TONR)

La instruccin TONR es un temporizador no retentivo que acumula tiempo cuando TimerEnable est establecido. 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 tag TONR Tipo FBD_TIMER Formato estructura Descripcin estructura TONR

Bloque de funciones
Operando tag TONR Tipo FBD_TIMER Formato estructura Descripcin estructura TONR

Estructura FBD_TIMER
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut ACC EN TT BOOL BOOL BOOL BOOL Descripcin La instruccin produjo un resultado vlido. Tiempo acumulado en milisegundos. Salida de temporizador habilitado. Indica que la instruccin de temporizador est habilitada. 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 entrada DN Status

Tipo de datos BOOL DINT

Descripcin Salida de temporizacin efectuada. Indica cuando el tiempo acumulado es mayor o igual que el valor de preajuste. Estado del bloque de funciones. 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. El valor de preajuste no es vlido.

InstructFault (Status.0) BOOL

PresetInv (Status.1)

BOOL

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) preajuste valor acumulado de temporizador (.ACC) 0
el temporizador no lleg al valor PRE
Retardo a la conexin 16649

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. 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

IMPORTANTE

Indicadores de estado aritmtico: no afectados Condiciones de fallo: ninguna Ejecucin:


Condicin preescn Accin de bloque de funciones Ninguna. Accin de texto estructurado Ninguna. Los bits EN, TT y DN se borran. El valor ACC se establece en 0. Los bits EN, TT y DN se borran. El valor ACC se establece en 0. n. a. EnableIn siempre se establece. La instruccin se ejecuta.

primer escn de instruccin Los bits EN, TT y DN se borran. El valor ACC se establece en 0. primera ejecucin de instruccin EnableIn se borra EnableIn se establece Los bits EN, TT y DN se borran. El valor ACC se establece en 0. EnableOut se borra, la instruccin no efecta ninguna operacin y las salidas no se actualizan. Cuando EnableIn cambia de borrado a establecido, 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. Ninguna. Ninguna.

post-escn

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 desconexin con restablecimiento (TOFR)

La instruccin TOFR es un temporizador no retentivo que acumula tiempo cuando TimerEnable est borrado. 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 TOFR tag Tipo FBD_TIMER Formato estructura Descripcin estructura TOFR

Operandos de bloque de funciones


Operando TOFR tag Tipo FBD_TIMER Formato estructura Descripcin estructura TOFR

Estructura FBD_TIMER
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut ACC EN TT BOOL BOOL BOOL BOOL Descripcin La instruccin produjo un resultado vlido. Tiempo acumulado en milisegundos. Salida de temporizador habilitado. Indica que la instruccin de temporizador est habilitada. Salida de temporizador temporizando. Cuando se establece, se est ejecutando una operacin de temporizacin.
Publicacin 1756-RM003K-ES-P Julio 2008

120

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

Captulo 3

Parmetro de entrada DN Status

Tipo de datos BOOL DINT

Descripcin Salida de temporizador expirado. Indica cuando el tiempo acumulado es mayor o igual que el valor de preajuste. Estado del bloque de funciones. 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. El valor de preajuste no es vlido.

InstructFault (Status.0) BOOL

PresetInv (Status.1)

BOOL

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 el temporizador no lleg al valor PRE

16650

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. 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

IMPORTANTE

Indicadores de estado aritmtico: no afectados Condiciones de fallo: ninguna Ejecucin:


Condicin preescn Accin de bloque de funciones Ninguna. Accin de texto estructurado Ninguna. Los bits EN, TT y DN se borran. El valor ACC se establece en PRE. Los bits EN, TT y DN se borran. El valor ACC se establece en PRE. n. a.

primer escn de instruccin Los bits EN, TT y DN se borran. El valor ACC se establece en PRE. primera ejecucin de instruccin EnableIn se borra EnableIn se establece Los bits EN, TT y DN se borran. El valor ACC se establece en PRE. EnableOut se borra, la instruccin no efecta ninguna operacin y las salidas no se actualizan.

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, la instruccin borra EN, TT y DN, y establece ACC = PRE. Tenga presente que esto es diferente a usar una instruccin RES en una instruccin TOF. Ninguna.

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

post-escn

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 activado con restablecimiento (RTOR)

La instruccin RTOR es un temporizador retentivo que acumula tiempo cuando TimerEnable est establecido. 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 RTOR tag Tipo FBD_TIMER Formato estructura Descripcin estructura RTOR

Operandos de bloque de funciones


Operando RTOR tag Tipo FBD_TIMER Formato estructura Descripcin estructura RTOR

Estructura FBD_TIMER
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin 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. Descripcin La instruccin produjo un resultado vlido. 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. Salida de temporizador habilitado. Indica que la instruccin de temporizador est habilitada. Salida de temporizador temporizando. Cuando se establece, se est ejecutando una operacin de temporizacin.
Publicacin 1756-RM003K-ES-P Julio 2008

Parmetro de salida Tipo de datos EnableOut ACC BOOL DINT

EN TT

BOOL BOOL

124

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

Captulo 3

Parmetro de entrada DN Status

Tipo de datos BOOL DINT

Descripcin Salida de temporizador expirado. Indica cuando el tiempo acumulado es mayor o igual que el valor de preajuste. Estado del bloque de funciones. 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. El valor de preajuste no es vlido.

InstructFault (Status.0) BOOL

PresetInv (Status.1)

BOOL

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

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

16651

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. 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

IMPORTANTE

Indicadores de estado aritmtico: no afectados Condiciones de fallo: ninguna Ejecucin:


Condicin preescn Accin de bloque de funciones Ninguna. Accin de texto estructurado Ninguna. Los bits EN, TT y DN se borran. El valor .ACC no se modifica. Los bits EN, TT y DN se borran. El valor .ACC no se modifica. n. a. EnableIn siempre se establece. La instruccin se ejecuta.

primer escn de instruccin Los bits EN, TT y DN se borran. El valor .ACC no se modifica. primera ejecucin de instruccin EnableIn se borra EnableIn se establece Los bits EN, TT y DN se borran. El valor .ACC no se modifica. EnableOut se borra, la instruccin no efecta ninguna operacin y las salidas no se actualizan. Bloque de funciones: Cuando EnableIn cambia de borrado a establecido, 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. Ninguna. Ninguna.

post-escn

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 Counter Preset Acum Tipo COUNTER DINT DINT Formato tag inmediato inmediato Descripcin estructura de contador valor superior hasta donde contar nmero de veces que cont el contador el valor inicial es tpicamente 0

Estructura COUNTER
Mnemnico .CU .DN .OV .UN .PRE .ACC Tipo de datos BOOL BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin de conteo progresivo indica que la instruccin CTU est habilitada. El bit de efectuado indica que .ACC .PRE. 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. 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. El valor de preajuste especifica el valor al que debe llegar el valor acumulado para que la instruccin establezca el bit .DN. 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 preescn Accin de lgica de escalera de rels 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

examine el bit .CU

bit .CU = 0

el bit .CU se establece .ACC = .ACC + 1

el valor .ACC retorna al valor inicial no

bit .CU = 1

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

el bit .UN = 1 examine el bit .UN

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

examine el bit .UN

examine el bit .OV

el bit .UN = 1

el bit .OV = 1

el bit .OV se establece

examine .ACC

.ACC .PRE

.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 Counter Preset Acum Tipo COUNTER DINT DINT Formato tag inmediato inmediato Descripcin estructura de contador valor inferior hasta donde contar nmero de veces que cont el contador el valor inicial es tpicamente 0

Estructura COUNTER
Mnemnico .CD .DN .OV .UN .PRE .ACC Tipo de datos BOOL BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin de conteo regresivo indica que la instruccin CTD est habilitada. El bit de efectuado indica que .ACC .PRE. 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. 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. El valor de preajuste especifica el valor al que debe llegar el valor acumulado para que la instruccin establezca el bit .DN. 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 preescn Accin de lgica de escalera de rels 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

examine el bit .CD

el bit .CD = 0

el bit .CD se establece .ACC = .ACC - 1

el valor .ACC retorna al valor inicial no

el bit .CD = 1

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

el bit .OV = 1 examine el bit .OV

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

examine el bit .UN

examine el bit .OV

el bit .OV = 0

el bit .UN = 1

el bit .OV = 1

el bit .UN se establece

examine .ACC

.ACC .PRE

.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/ regresivo (CTUD)

La instruccin CTUD incrementa en uno el conteo cuando CUEnable cambia de borrado a establecido. La instruccin decrementa en uno el 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 CTUD tag Tipo FBD_COUNTER Formato estructura Descripcin estructura CTUD

Bloque de funciones
Operando CTUD tag Tipo FBD_COUNTER Formato estructura Descripcin estructura CTUD

Estructura FBD_COUNTER
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin 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 entrada CDEnable

Tipo de datos BOOL

Descripcin 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 EnableOut ACC CU CD DN OV BOOL DINT BOOL BOOL BOOL BOOL

Descripcin La instruccin produjo un resultado vlido. Valor acumulado. Conteo progresivo habilitado. Conteo regresivo habilitado. Conteo efectuado. Se establece cuando el valor acumulado es mayor o igual que el valor de preajuste. 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 preescn Accin de bloque de funciones No se requiere inicializacin. Accin de texto estructurado No se requiere inicializacin. CUEnablen-1 y CDEnablen-1 se establecen. CUEnablen-1 y CDEnablen-1 se establecen. n. a.

primer escn de instruccin CUEnablen-1 y CDEnablen-1 se establecen. primera ejecucin de instruccin EnableIn se borra EnableIn se establece CUEnablen-1 y CDEnablen-1 se establecen. EnableOut se borra, la instruccin no efecta ninguna operacin y las salidas no se actualizan.

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: La instruccin se ejecuta. EnableOut se establece. EnableIn siempre se establece. La instruccin se ejecuta.

restablecimiento

Cuando se establece, la instruccin borra CUEnablen-1, CDEnablen-1, CU, CD, DN, OV y UN y establece ACC = cero. Ninguna.

Cuando se establece, la instruccin borra CUEnablen-1, CDEnablen-1, CU, CD, DN, OV y UN y establece ACC = cero. Ninguna.

post-escn

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)
Operandos:

La instruccin RES restablece una estructura TIMER, COUNTER o CONTROL.

Lgica de escalera de rels


Operando estructura Tipo TIMER CONTROL COUNTER Formato tag Descripcin estructura que se va a restablecer

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


Cuando se usa una instruccin RES para TIMER La instruccin borra 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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. 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

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.
Use esta instruccin MSG Disponible en estos lenguajes lgica de escalera de rels texto estructurado Vea la pgina 144

Si desea enviar datos desde o hacia otro mdulo

obtener informacin de estado del controlador

GSV

lgica de escalera de rels texto estructurado

176

establecer informacin de estado del controlador enviar valores de salida a un mdulo de E/S o controlador consumidor en un punto especfico de su lgica activar una tarea de evento en otro controlador

SSV

lgica de escalera de rels texto estructurado

176

IOT

lgica de escalera de rels texto estructurado

201

143Publicacin 1756-RM003K-ES-P Julio 2008

143

Captulo 4

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

Mensaje (MSG)
Operandos:

La instruccin MSG lee o escribe asncronamente un bloque de datos en otro mdulo de una red.

Lgica de escalera de rels


Operando Message control Tipo MESSAGE Formato tag Descripcin estructura de mensaje

Texto estructurado
MSG(MessageControl);

Los operandos son iguales a los de la instruccin MSG de lgica de escalera de rels.

Estructura MESSAGE
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.

ATENCIN

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 .FLAGS

Tipo de datos INT

Descripcin El miembro .FLAGS proporciona acceso a los miembros de estado (bits) en una palabra de 16 bits. Este bit: 2 4 5 6 7 8 9 Es este miembro: .EW .ER .DN .ST .EN .TO .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 .EXERR .REQ_LEN .DN_LEN .EW INT INT INT INT BOOL Si el bit .ER est establecido, la palabra de cdigo de error identifica los cdigos de error de la instruccin MSG. La palabra de cdigo de error extendida especifica informacin adicional de algunos cdigos de error. La longitud solicitada especifica cuntas palabras la instruccin de mensaje intentar transferir. La longitud efectuada identifica cuntas palabras se transfirieron realmente. 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 .EN_CC BOOL BOOL Si se establece manualmente el bit .TO, el controlador interrumpe el procesamiento del mensaje y establece el bit .ER. 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. Usado por el software RSLogix 5000 para mostrar la ruta de error en el cuadro de dilogo Message Configuration

.ERR_SRC

SINT

Publicacin 1756-RM003K-ES-P Julio 2008

145

Captulo 4

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

Mnemnico .DestinationLink .DestinationNode .SourceLink .Class .Attribute .Instance .LocalIndex

Tipo de datos INT INT INT INT INT DINT DINT

Descripcin Para cambiar el vnculo de destino de un DH+ o CIP con mensaje de ID de origen, establezca este miembro en el valor requerido. Para cambiar el nodo de destino de un DH+ o CIP con mensaje de ID de origen, establezca este miembro en el valor requerido. Para cambiar el vnculo de origen de un DH+ o CIP con mensaje de ID de origen, establezca este miembro en el valor requerido. Para cambiar el parmetro Class de un mensaje genrico de CIP, establezca este miembro en el valor requerido. Para cambiar el parmetro Attribute de un mensaje genrico de CIP, establezca este miembro en el valor requerido. Para cambiar el parmetro Instance de un mensaje genrico de CIP, establezca este miembro en el valor requerido. 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: lee datos escribe datos La matriz local es el: Elemento de destino Elemento de origen

.Channel .Rack .Group .Slot

SINT SINT SINT 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. Para cambiar el nmero de rack en un mensaje de transferencia en bloques, establezca este miembro en el nmero de rack requerido (octal). Para cambiar el nmero de grupo en un mensaje de transferencia en bloques, establezca este miembro en el nmero de grupo requerido (octal). 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 enva a travs de esta red: E/S remotas universales ControlNet Especifique el nmero de ranura en:

octal 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: lee datos escribe datos La matriz remota es el: Elemento de origen Elemento de destino

146

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Mnemnico .RemoteElement

Tipo de datos STRING

Descripcin 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: lee datos escribe datos La matriz remota es el: Elemento de origen 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 no conectado conectado Entonces El bit ER se activa si el controlador no recibe una respuesta dentro del tiempo UnconnectedTimeout. El bit ER se activa si el controlador no recibe una respuesta para hacer la conexin dentro del tiempo UnconnectedTimeout.

.ConnectionRate .TimeoutMultiplier

DINT SINT

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. 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

148

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Donde 1

Descripcin condicin de entrada de rengln es verdadera .EN se establece .EW se establece la conexin est abierta*

Donde 5

Descripcin el mensaje se enva .ST se establece .EW se borra

el mensaje se enva .ST se establece .EW se borra

mensaje efectuado o con error condicin de entrada de rengln todava es verdadera .DN o .ER se establece .ST se borra La conexin est cerrada (si .EN_CC = 0)

mensaje efectuado o con error condicin de entrada de rengln es falsa

la condicin de entrada de rengln se hace falsa y .DN o .ER se establece .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 preescn Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. Accin de texto estructurado Ninguna.

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


bit .EN = 1 examine el bit .EN

Accin de texto estructurado

condicin de entrada de rengln es falsa (no se aplica a texto estructurado)


bit .EW = 1

bit .EN = 0

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 examine el bit .ER

bit .ER = 0

comando de transferencia en bloques no

la ruta de acceso del mdulo es vlida s

no

bit .DN = 1 examine el bit .DN s conexin de mdulo en ejecucin no

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 rengln es verdadera

La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera.

n. a.

150

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Condicin EnableIn se establece

Accin de lgica de escalera de rels n. a.

Accin de texto estructurado EnableIn siempre se establece. La instruccin se ejecuta.

ejecucin de la instruccin

bit .EN = 1 examine el bit .EN

bit .EN = 0

bit .EW = 1 examine el bit .EW examine el bit .EW

bit .EW = 1

bit .EW = 0

bit .EW = 0

bit .ST = 1 examine el bit .ST examine el bit .ST

bit .ST = 1

bit .ST = 0

bit .ST = 0 los bits .EW, .ST, .TO, .DN y .ER se borran y el bit .EN se establece

bit .DN = 1 examine el bit .DN

bit .DN = 0

el bit .EN se establece bit .ER = 0 comando de transferencia en bloques no s no

bit .ER = 1 examine el bit .ER

la ruta de acceso del mdulo es vlida s

conexin de mdulo en ejecucin

no

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 falsa.

Ninguna.

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 (hex) 0001 0002 0003 0004 0005 Fallo de conexin (vea los cdigos de error extendidos) Recurso insuficiente Valor no vlido Error de sintaxis IOI (vea los cdigos de error extendidos) Destino desconocido, clase no compatible, instancia no definida o elemento de estructura no definido (vea los cdigos de error extendidos) Espacio de paquete insuficiente Conexin perdida Servicio no compatible Error en segmento de datos o valor de atributo no vlido Error de lista de atributos El estado ya existe Conflicto de modelo de objeto El objeto ya existe Atributo no se puede establecer Permiso denegado Conflicto de estado de dispositivo La respuesta no cabe Fragmento primitivo Datos de comando insuficientes Atributo no compatible Demasiados datos Peticin de puente demasiado grande Respuesta de puente demasiado grande Lista de atributos insuficiente Lista de atributos no vlida Error de servicio incorporado Se muestra en el software idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin

0006 0007 0008 0009 000A 000B 000C 000D 000E 000F 0010 0011 0012 0013 0014 0015 001A 001B 001C 001D 001E

idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin 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 (hex) 001F 0022 0025 0026 0027 0028 0029 00D1 00FB 00FC 00FD 00FE 00FF Fallo relacionado con la conexin (vea los cdigos de error extendidos) Respuesta no vlida recibida Error de segmento clave Error IOI no vlido Atributo inesperado en lista Error DeviceNet ID de miembro no vlido Error DeviceNet miembro no se puede establecer El mdulo no se encuentra en estado de marcha Puerto de mensajes no compatible Tipo de mensaje no compatible Mensaje no inicializado Expiracin de mensaje Error general (vea los cdigos de error extendidos)

Se muestra en el software idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin error desconocido error desconocido error desconocido error desconocido error desconocido 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 error extendido (hex.): 0100 0103 0106 0107 0108 0109 0110 0111 0114 0115 0116 0118 011A Descripcin Cdigo de error extendido (hex.): 0203 0204 0205 0206 0301 0302 0303 0305 0311 0312 0315 0317 Descripcin

Conexin en uso Transporte no compatible Conflicto de propiedad No se encontr la conexin Tipo de conexin no vlido Tamao de conexin no vlido Mdulo no configurado EPR no compatible Mdulo incorrecto Tipo incorrecto de dispositivo Revisin incorrecta Formato de configuracin no vlido Aplicacin sin conexiones

Expiracin de conexin Expiracin de mensaje no conectado Error de parmetro de envo no conectado Mensaje demasiado grande No hay memoria de bfer Ancho de banda no disponible No hay protectores disponibles Coincidencia de firma Porte no disponible Direccin de vnculo no disponible Tipo de segmento no vlido Conexin no programada

Estos son los cdigos de error extendidos para el cdigo de error 001F.
Cdigo de error extendido (hex.): 0203 Descripcin Expiracin de conexin

Estos son los cdigos de error extendidos para el cdigo de error 0004 y 0005.
Cdigo de error extendido (hex.): 0000 0001 Descripcin estado extendido fuera de memoria 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 error extendido (hex.): 2001 2002 2018 201B 201C 2100 2101 2102 2103 2104 2105 2106 Descripcin Cdigo de error extendido (hex.): 2107 2108 2109 210A 210B 210E 210F 2110 2111 2112 2113 2114 Descripcin

IOI excesivo Valor de parmetro incorrecto Rechazo de semforo Tamao demasiado pequeo Tamao no vlido Fallo de privilegio Posicin no vlida de interruptor de llave Contrasea no vlida No se emiti contrasea Direccin fuera de rango Direccin y cuntas fuera de rango Datos en uso

Tipo no vlido o no compatible Controlador en modo de carga o descarga Intento para cambiar el nmero de dimensiones de registro Nombre de smbolo no vlido El smbolo no existe La bsqueda entr en fallo La tarea no se puede iniciar No se puede escribir No se puede leer Rutina compartida no editable Controlador en modo con fallo 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 .ERR 0010 0020 0030 0040 0050 0060 0070 0080 0090 00B0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 0001 0002 0003 0004 0005 0006 0007 0008 .EXERR R10.x y posteriores .ERR 1000 2000 3000 4000 5000 6000 7000 8000 9000 B000 F001 F002 F003 F004 F005 F006 F007 F008 .EXERR Comando o formato prohibido proveniente del procesador local El mdulo de comunicacin no funciona Nodo remoto ausente, desconectado o desactivado Procesador conectado pero en fallo (hardware) Nmero de estacin incorrecto La funcin solicitada no est disponible El procesador est en el modo de programacin El archivo de compatibilidad del procesador no existe El nodo remoto no puede almacenar temporalmente el comando El procesador est descargando, por lo que no es accesible El procesador convirti la direccin incorrectamente Direccin incompleta Direccin incorrecta Formato de direccin prohibido no se encontr el smbolo Formato de direccin prohibido El smbolo tiene 0 o es mayor que el mximo nmero de caracteres aceptados por el dispositivo El archivo de direcciones no existe en el procesador receptor El archivo de destino es demasiado pequeo para el nmero de palabras solicitado 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 Descripcin

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 .ERR 00F0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 .EXERR 000A 000B 000C 000D 000E 000F 0010 0011 0012 0013 0014 R10.x y posteriores .ERR F00A F00B F00C F00D F00E F00F F010 F011 F012 F013 F014 .EXERR El procesador receptor no puede poner en paquetes la informacin solicitada Error de privilegio; acceso denegado La funcin solicitada no est disponible La peticin es redundante El comando no puede ejecutarse Overflow; overflow de histograma Sin acceso El tipo de datos solicitado no coincide con los datos disponibles Parmetros de comando incorrectos Existe referencia de direccin a rea eliminada Fallo de ejecucin de comando por razn desconocida Overflow de histograma PLC-3 00F0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 0015 0016 0017 0018 0019 001A 001B 001C 001D F015 F016 F017 F018 F019 F01A F01B F01C F01D Error de conversin de datos El escner no est disponible para comunicarse con un adaptador de rack 1771 El adaptador no est disponible para comunicarse con el mdulo La respuesta del modulo 1771 no fue vlida Etiqueta duplicada Propietario de archivo activo el archivo est en uso Propietario de programa activo alguien est descargando o editando en lnea El archivo de disco tiene proteccin contra escritura o no es accesible (fuera de lnea solamente) El archivo de disco lo est usando otra aplicacin Actualizacin no realizada (fuera de lnea solamente) Descripcin

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 (hex) 00D0 00D1 00D2 00D3 00D6 00EA 00EB 00EC 00ED 00EE 00EF 00F0 00F3 00F5 00F6 00F7 00F8 00F9 00FA 00FB 00FC 00FD El escner no recibi una respuesta de transferencia en bloques del mdulo de transferencia en bloques dentro de los 3.5 segundos siguientes a la peticin La suma de comprobacin de la respuesta de lectura no coincidi con la suma de comprobacin del flujo de datos El escner solicit una lectura o una escritura, pero el mdulo de transferencia en bloques respondi lo opuesto El escner solicit una longitud y el mdulo de transferencia en bloques respondi con una longitud diferente El escner recibi una respuesta del mdulo de transferencia en bloques indicando que la peticin de escritura fall. Se muestra en el software error desconocido error desconocido error desconocido error desconocido error desconocido

El escner no estaba configurado para comunicarse con el rack que contendra este mdulo error desconocido de transferencia en bloques La ranura lgica especificada no est disponible para el tamao de rack dado Actualmente est en curso una peticin de transferencia en bloques y se requiere una respuesta antes de que pueda comenzar otra peticin. El tamao de la peticin de transferencia en bloques no es coherente con las peticiones de tamao de transferencia en bloques vlidas El tipo de la peticin de transferencia en bloques no es coherente con la BT_READ o BT_WRITE esperada El escner no pudo encontrar una ranura disponible en la tabla de transferencia en bloques para aceptar la peticin de transferencia en bloques El escner recibi una peticin para restablecer los canales de E/S remotas mientras que haba transferencias en bloques pendientes Las colas para las transferencias en bloques remotas estn llenas Los canales de comunicacin estn configurados para el rack o ranura solicitada Ningn canal de comunicacin est configurado para E/S remotas El tiempo de espera de la transferencia en bloques, establecido en la instruccin, expir antes de concluir Error en el protocolo de transferencia en bloques transferencia en bloques no solicitada Los datos de la transferencia en bloques se perdieron debido a un canal de comunicacin defectuoso El mdulo de transferencia en bloques solicit una longitud diferente a la instruccin de transferencia en bloques asociada La suma de comprobacin de la transferencia en bloque de lectura era incorrecta error desconocido error desconocido error desconocido error desconocido error desconocido error desconocido error desconocido error desconocido error desconocido error desconocido error desconocido error desconocido error desconocido error desconocido

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 El tamao de la transferencia en bloques ms el tamao del ndice en la tabla de datos de transferencias en bloques era mayor que el tamao del archivo de tablas de datos de transferencia en bloques error desconocido

158

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Especifique los detalles de configuracin

Despus de introducir la instruccin MSG y de especificar la estructura MESSAGE, use el cuadro de dilogo Message Configuration para 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 Controlador Logix5000 Mdulo de E/S que usted configura usando el software RSLogix 5000 Controlador PLC-5

Seleccione uno de estos tipos de mensaje Lectura de tabla de datos CIP Escritura de tabla de datos CIP Reconfiguracin de mdulo CIP genrico TypedRead PLC5 TypedWrite PLC5 Lectura de rango de palabras PLC5 Escritura de rango de palabras PLC5

Vea la pgina 160 161 162 163

Controlador SLC Controlador MicroLogix Mdulo de transferencia en bloques Procesador PLC-3

TypedRead SLC TypedWrite SLC Lectura de transferencia en bloques Escritura de transferencia en bloques TypedRead PLC3 TypedWrite PLC3 Lectura de rango de palabras PLC3 Escritura de rango de palabras PLC3

165

165 166

Procesador PLC-2

Lectura no protegida PLC2 Escritura no protegida PLC2

167

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 Elemento de origen Especifique 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. 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.

Elemento de destino

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 Lectura de tabla de datos CIP Si desea 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 Tipo de mensaje Seleccione 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 Realizar una prueba de impulso en un mdulo de salida digital En esta propiedad Tipo de mensaje Tipo de servicio Origen Escriba o seleccione CIP genrico Prueba de impulso tag_name de tipo INT [5] Esta matriz contiene: tag_name[0] tag_name[1] tag_name[2] tag_name[3] mscara de bit de puntos a probar (pruebe slo un punto a la vez) reservado, dejar 0 anchura de impulso (centenares de segundos; generalmente 20) retardo de cruce por cero para E/S ControlLogix (centenares de segundos; generalmente 40) verificar el retardo

tag_name[4] Destino Restablecer los fusibles electrnicos en Tipo de mensaje un mdulo de salida digital Tipo de servicio Origen dejar en blanco CIP genrico Restablecer fusible electrnico tag_name de tipo DINT

Este tag representa una mscara de bit de los puntos en los cuales se restablecen los fusibles Destino Restablecer diagnsticos enclavados en Tipo de mensaje un mdulo de entrada digital Tipo de servicio Origen dejar en blanco CIP genrico Restablecer diagnsticos enclavados (I) 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 un mdulo de salida digital Tipo de servicio Origen CIP genrico Restablecer diagnsticos enclavados (O) 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 Desenclavar la alarma de un mdulo de entrada analgico

En esta propiedad Tipo de mensaje Tipo de servicio

Escriba o seleccione CIP genrico 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 Desenclavar la alarma de un mdulo de salida analgico Tipo de mensaje Tipo de servicio

Canal de la alarma que desea desenclavar CIP genrico 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 TypedRead PLC5 Si desea 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. 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 Leer un rango continuo de palabras de 16 bits en la memoria PLC-5 independientemente 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 PLC5 Escribir un rango continuo de palabras de 16 bits en la memoria Logix5000, 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.

TypedWrite PLC5

Lectura de rango de palabras PLC5

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 PLC-5 B F N Use este tipo de datos Logix5000 INT REAL INT DINT (solamente escriba valores DINT a un controlador PLC-5 si el valor es 32,768 y 32,767.) S ST INT 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 palabras de 16 bits en procesador PLC-5 1 2 3 4 palabras de 32 bits en controlador Logix5000 1 2 3 4 Comando de lectura de rango de palabras palabras de 16 bits en procesador PLC-5 1 2 3 4 palabras de 32 bits en controlador Logix5000 2 4 1 3

Los comandos TypedWrite/TypedRead mantienen la estructura y el valor de los datos.

Los comandos de rango de palabras llenan el tag de destino 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 MicroLogix F L (controladores MicroLogix 1200 y 1500) N Use este tipo de datos Logix5000 REAL DINT 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 leer los datos de un mdulo de transferencia en bloques Este tipo de mensaje reemplaza la instruccin BTR. escribir datos en un mdulo de transferencia en bloques Este tipo de mensaje reemplaza la instruccin BTW. Escritura de transferencia en bloques Seleccione este comando Lectura de transferencia en bloques

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 mdulo de transferencia en bloques determine cuntos enteros de 16 bits enviar (BTR). controlador enve 64 enteros (BTW). Especifique 0 para el nmero de elementos

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 TypedRead PLC3 Si desea 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 PLC3 leer un rango continuo de palabras de 16 bits en la memoria PLC-3 independientemente 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 PLC3 escribir un rango continuo de palabras de 16 bits de la memoria Logix5000 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 palabras de 16 bits en el procesador PLC-3 1 2 3 4 palabras de 32 bits en el controlador Logix5000 1 2 3 4 Comando de lectura de rango de palabras palabras de 16 bits en el procesador PLC-3 1 2 3 4 palabras de 32 bits en el controlador Logix5000 2 4 1 3

Los comandos TypedWrite/TypedRead mantienen la estructura y el valor de los datos.

Los comandos de rango de palabras llenan el tag de destino 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 Lectura no protegida PLC2 Escritura no protegida PLC2 Si desea 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. 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 MSG

Los ejemplos siguientes muestran tags de origen y destino, as como elementos para diferentes combinaciones de controladores. Para las instrucciones MSG que provienen de un controlador Logix5000 y escriben en otro procesador:

Ruta de mensaje Logix5000 Logix5000

Ejemplo de origen y destino tag de origen tag de destino array_1[0] 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 Logix5000 SLC tag de origen elemento de destino array_1[0] N7:10

Puede usar un tag de alias para el tag de origen (en el controlador Logix5000 de origen). Logix5000 PLC-2 tag de origen elemento de destino array_1[0] 010

Para las instrucciones MSG que provienen de un controlador Logix5000 y leen de otro controlador:
Ruta de mensaje Logix5000 Logix5000 Ejemplo de origen y destino tag de origen tag de destino array_1[0] 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 Logix5000 SLC elemento de origen tag de destino N7:10 array_1[0]

Puede usar un tag de alias para el tag de destino (en el controlador Logix5000 de origen). Logix5000 PLC-2 elemento de origen tag de destino 010 array_1[0]

168

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Especifique los detalles de comunicacin

Para configurar una instruccin MSG, usted especifica estos detalles en la ficha Communication.

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 La configuracin de E/S del controlador tiene el mdulo que obtiene el mensaje. La configuracin de E/S del controlador tiene slo el mdulo de comunicacin local. La configuracin de E/S del controlador no tiene ninguno de los mdulos que necesita para el mensaje. Entonces Use el botn Browse para seleccionar el mdulo. 1. Use el botn Browse para seleccionar el mdulo de comunicacin local. 2. Escriba el resto de la ruta. Escriba la ruta.

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 1 2 backplane DF1 (canal 0 serie, serie) ControlNet EtherNet/IP DH+ canal A DH+ canal B DF1 canal 1 (canal 1 serie) 3

port

next_address

backplane DF1 (serie) ControlNet DH+

nmero de ranura del mdulo direccin de estacin (0-254) nmero de nodo (1-99 decimal) 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 bloques mediante esta red ControlNet E/S remotas universales Aada estos mdulos a la configuracin de E/S mdulo de comunicacin local (por ejemplo, el mdulo 1756-CNB) mdulo adaptador remoto (por ejemplo, el mdulo 1771-ACN) 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 es un Controlador Logix5000 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+ Controlador SLC por una red DH+ DH+ Canal: Vnculo de origen: Canal A o B del mdulo 1756-DHRIO que est conectado a la red DH+ La identificacin de vnculo asignada al 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). La identificacin de vnculo de la red DH+ remota donde reside el dispositivo receptor Direccin de estacin del dispositivo receptor, en octal Seleccione CIP Y especifique no se requieren otras especificaciones

Procesador PLC-3 Procesador PLC-2

Vnculo de destino Nodo de destino:

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 es un

Seleccione

Y especifique Vnculo de origen: Vnculo de destino: Nodo de destino: ID remoto del tema en el software RSLinx ID de vnculo virtual configurado en RSLinx (0-65535) ID de destino (0-77 octal) proporcionado por la aplicacin a RSLinx. Para el tema DDE en RSLinx, use 77.

CIP con ID de origen Aplicacin en una estacin de trabajo que recibe un mensaje no solicitado encaminado por una red Ethernet/IP o ControlNet a travs de RSLinx. (Esto permite que la aplicacin reciba datos de un controlador)

El nmero de ranura del controlador ControlLogix se usa como nodo de origen. Mdulo de transferencia en bloques mediante una red de E/S remotas universales RIO Canal: Rack Grupo Ranura Mdulo de transferencia en bloques mediante una red ControlNet ControlNet Ranura Canal A o B del mdulo 1756-DHRIO que est conectado a la red RIO Nmero de rack (octal) del mdulo Nmero de grupo del mdulo Nmero de ranura donde est el mdulo Nmero de ranura donde est el mdulo

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 Lectura o escritura de datos CIP PLC2, PLC3, PLC5 o SLC (todos los tipos) CIP CIP con ID de origen DH+ CIP genrico Lectura o escritura de transferencia en bloques
(1)

Y este mtodo de comunicacin

Usa una conexin

su opcin (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 Almacena en cach la conexin Entonces La conexin se mantiene abierta una vez finalizada la 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. La conexin se cierra una vez finalizada la instruccin MSG. As se libera la conexin para otros usos.

No almacena en cach la conexin

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 software y firmware 11.x o anterior Puede almacenar en cach 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 diferentes dispositivos el mismo dispositivo estn habilitadas simultneamente NO estn habilitadas simultneamente Y Entonces Cada instruccin MSG usa 1 conexin. Cada instruccin MSG usa 1 conexin. 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 1. Para cada instruccin MSG, cree un tag de control. Detalles Cada instruccin MSG requiere su propio tag de 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). Si su mensaje es a un dispositivo que usa enteros de 16 bits, tal como un controlador 3. Si su MSG es a un dispositivo que usa 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 el mensaje y DINT en todo el proyecto. MSG 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 que se ejecutan con mayor frecuencia. Almacene en cach la conexin para dichas instrucciones MSG que se ejecutan con 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 simultneamente, use el mismo tipo de estrategia de administracin. Si usted habilita ms de 16 MSG a la vez, algunas instrucciones MSG pueden experimentar retardos al ingresar en la cola. Para garantizar la ejecucin de cada 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 conectados y no almacenados en cach en un valor menor que el nmero de bferes no conectados. El controlador puede tener 10 - 40 bferes no conectados. El nmero predeterminado es 10. Si todos los bferes no conectados se usan cuando una instruccin deja la cola de 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 (GSV) y establecer valor del sistema (SSV)
Operandos:

Las instrucciones GSV/SSV reciben y envan datos de sistema del controlador que se almacenan en los objetos.

Lgica de escalera de rels

Operando Class name Instance name Attribute Name

Tipo

Formato nombre nombre nombre

Descripcin nombre del objeto nombre de objeto especfico cuando el objeto requiere un nombre atributo del objeto el tipo de datos depende del atributo que usted selecciona

Destination (GSV)

SINT INT DINT REAL estructura

tag

destino de los datos del atributo

Source (SSV)

SINT INT DINT REAL estructura

tag

el tag que contiene los datos que desea copiar al atributo

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). 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

ATENCIN

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 direccin de objeto no vlida se especific un objeto que no es compatible con GSV/SSV atributo no vlido no se proporcion suficiente informacin para una instruccin SSV el destino GSV no es suficientemente grande para retener los datos solicitados Tipo de fallo 4 4 4 4 4 Cdigo de fallo 5 6 6 6 7

Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels Accin de texto estructurado La condicin de salida de rengln se establece como Ninguna falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. 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 post-escn Obtenga o establezca el valor especificado. Obtenga o establezca el valor especificado. La condicin de salida de rengln se establece como Ninguna. falsa. n. a. n. a.

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. 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.

ATENCIN

Se puede obtener acceso a los siguientes objetos:


Para obtener informacin acerca de este objeto AXIS Vea esta pgina o publicacin ControlLogix Motion Module Setup and Configuration Manual, publicacin 1756-UM006 180 181 183 184 187 188 190 191 192 193 193 195 197

CONTROLLER CONTROLLERDEVICE CST DF1 FAULTLOG MESSAGE MODULE MOTIONGROUP PROGRAM ROUTINE SERIALPORT TASK WALLCLOCKTIME

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 TimeSlice Tipo de datos INT Instruccin GSV 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 nt DINT SSV GSV El nmero se restablecer si la RAM entra en un mal estado. El nmero tiene como lmite el DINT ms alto. ControllerLogExecutionMod DINT ificationCount SSV GSV Nmero de entradas de registro del controlador que se origin a partir de un cambio de propiedades de programa/tarea, una 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 Count DINT GSV Nmero de entradas en el registro del controlador que todava 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 ask MSG Matriz de bits usada para determinar qu har que se incremente el conteo de modificacin de ejecucin. 0 = predeterminado (todo excepto los forzados). 1 = forzados incluidos (todo adems de los forzados). Nmero de entradas de registro del controlador desde la ltima actualizacin de firmware. Descripcin El porcentaje de la CPU disponible que se asigna a las comunicaciones.

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 DeviceName Tipo de datos SINT[33] Instruccin GSV Descripcin 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 CompactLogix5320 CompactLogix5330 CompactLogix5335E ControlLogix5550 ControlLogix5553 ControlLogix5555 ControlLogix5561 ControlLogix5562 ControlLogix5563 DriveLogix5720 FlexLogix5433 FlexLogix5434 SoftLogix5860 ProductRev INT GSV Cdigo de producto 43 44 65 3 50 51 54 55 56 48 41 42 15

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 Status

Tipo de datos INT

Instruccin GSV

Descripcin Bits que identifican el estado: Los bits 3-0 estn reservados Bits de estado de dispositivo Bits 7-4: 0000 0001 0010 0011 0100 0101 0110 0111 Significado: reservado actualizacin de la memoria flash en curso reservado reservado la memoria flash est defectuosa con fallo marcha programa

Bits de estado de fallo Bits 11-8: 0001 0010 0100 1000 Significado: fallo menor recuperable fallo menor no recuperable fallo mayor recuperable fallo mayor no recuperable

Bits de estado especficos para Logix5000 Bits 13-12: 01 10 11 Bits 15-14 01 10 Type INT GSV Significado: interruptor de llave en marcha interruptor de llave en programa interruptor de llave en modo remoto Significado el controlador est cambiando de modos modo de depuracin si el controlador est en el modo de marcha

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 CurrentStatus Tipo de datos INT Instruccin GSV Descripcin El estado actual de la hora coordinada del sistema. Los bits identifican: Bit: 0 Significado el hardware del temporizador entr en fallo: el hardware del temporizador interno del dispositivo est en un estado de fallo 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. maestro de hora del sistema: el objeto CST es la fuente de hora del maestro en el sistema ControlLogix sincronizado: el objeto de CST maestro sincroniza el CurrentValue de 64 bits del objeto CST mediante una actualizacin de hora del sistema maestro de red local: el objeto CST es la fuente de hora del maestro de la red local en el modo de relevo: el objeto CST acta en un modo de relevo de tiempo 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. no se usa 00 = nodo dependiente de la hora 01 = nodo maestro de hora 10 = nodo de rel de hora 11 = no se usa no se usa

2 3

4 5 6

7 8-9

10-15 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 ACKTimeout Tipo de datos DINT Instruccin GSV Descripcin 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 offset de palabra 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 DuplicateDetection INT[19] GSV Matriz de contadores de diagnstico para el driver de comunicacin DF1. DF1 esclavo firma (0x0042) bits de mdem paquetes enviados paquetes recibidos paquetes no entregados mensajes reenviados NAK recibidos paquetes de encuesta recibidos paquetes deficientes sin ACK sin memoria sin ACK recibidos paquetes duplicados no se usa conteo de recuperaciones DCD conteo de mdem perdido no se usa no se usa no se usa no se usa no se usa maestro firma (0x0044) bits de mdem paquetes enviados paquetes recibidos paquetes no entregados mensajes reenviados no se usa no se usa paquetes deficientes sin ACK no se usa recibidos paquetes duplicados no se usa conteo de recuperaciones DCD conteo de mdem perdido mximo de tiempo de escn prioritario ltimo tiempo de escn prioritario mximo de tiempo de escn normal ltimo tiempo de escn normal no se usa

DF1 punto a punto firma (0x0043) bits de mdem paquetes enviados paquetes recibidos paquetes no entregados no se usa NAK recibidos ENQ enviados paquetes deficientes con NAK sin memoria enviado NAK recibidos paquetes duplicados recibidos caracteres deficientes conteo de recuperaciones DCD conteo de mdem perdido no se usa no se usa no se usa no se usa ENQ enviados SINT GSV

Habilita la deteccin de mensajes duplicados. Valor: 0 no cero Significado: deteccin de mensajes duplicados inhabilitada deteccin de mensajes duplicados inhabilitada

EmbeddedResponseEnable

SINT

GSV

Habilita la funcionalidad de respuesta incorporada (punto a punto solamente). Valor: 0 1 Significado: se inicia solamente despus de que se recibe uno (opcin predeterminada) 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: 0 no cero Significado: supresin de EOT inhabilitada supresin de EOT habilitada

184

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Atributo ErrorDetection

Tipo de datos SINT

Instruccin GSV

Descripcin Especifica el esquema de deteccin de errores. Valor: 0 1 Significado: BCC (predeterminado) CRC

MasterMessageTransmit

SINT

GSV

Valor actual de la transmisin de mensaje del maestro (maestro solamente). Valor: 0 1 Significado: entre encuestas de estacin 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: 0 1 2 3 Significado: basado en mensajes; no permite a los esclavos iniciar mensajes basado en mensajes, pero permite a los esclavos iniciar mensajes (predeterminado) estndar, transferencia de un solo mensaje por escn de nodo 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 TransmitRetries

Tipo de datos SINT

Instruccin GSV

Descripcin 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 PendingDuplicateDetection PendingEmbeddedResponse Enable PendingENQTransmitLimit PendingEOTSuppression PendingErrorDetection PendingNormalPollGroupSize PendingMasterMessage Transmit PendingNAKReceiveLimit PendingPollingMode PendingReplyMessageWait PendingStationAddress PendingSlavePollTimeout PendingTransmitRetries

DINT SINT SINT SINT SINT SINT INT SINT SINT SINT DINT INT DINT SINT

SSV SSV SSV SSV SSV SSV SSV SSV SSV SSV SSV SSV SSV SSV

Valor pendiente para el atributo ACKTimeout. Valor pendiente para el atributo DuplicateDetection. Valor pendiente para el atributo EmbeddedResponse. Valor pendiente para el atributo ENQTransmitLimit. Valor pendiente para el atributo EOTSuppression. Valor pendiente para el atributo ErrorDetection. Valor pendiente para el atributo NormalPollGroupSize. Valor pendiente para el atributo MasterMessageTransmit. Valor pendiente para el atributo NAKReceiveLimit. Valor pendiente para el atributo PollingMode. Valor pendiente para el atributo ReplyMessageWait. Valor pendiente para el atributo StationAddress. Valor pendiente para el atributo SlavePollTimeout. 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 Configuracin Campo Message Type Service Code Tipo de objeto Object ID Object Attribute Source Number of Elements Destination Comunicacin Path Valor CIP genrico 0d hex a2 1 dejar en blanco dejar en blanco 0 dejar en blanco 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 MajorEvents Tipo de datos INT Instruccin GSV SSV MinorEvents INT GSV SSV MajorFaultBits DINT GSV SSV Los bits individuales indican la razn del fallo mayor actual. Bit: 1 3 4 5 6 7 8 11 Significado: corte de energa E/S ejecucin de instruccin (programa) administrador de fallos temporizador de control (watchdog) pila cambio de modo control de movimiento Cuntos fallos menores han ocurrido desde la ltima vez que se restableci este contador. Descripcin Cuntos fallos mayores han ocurrido desde la ltima vez que se restableci este contador.

MinorFaultBits

DINT

GSV SSV

Los bits individuales indican la razn del fallo menor actual. Bit: 4 6 9 10 Significado: ejecucin de instruccin (programa) temporizador de control (watchdog) puerto serie 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 ConnectionPath Tipo de datos SINT[130] Instruccin GSV SSV ConnectionRate DINT GSV SSV MessageType SINT GSV SSV Port SINT GSV SSV Especifica el tipo de mensaje. Valor: 0 Significado: no inicializado Descripcin Datos para configurar la ruta de conexin. Los dos primeros bytes (byte inferior y byte superior) representan la longitud en bytes de la ruta de conexin. Rgimen de paquetes solicitado de la conexin.

Indica el puerto por el que se debe enviar el mensaje. Valor: 1 2 Significado: backplane puerto serie

TimeoutMultiplier

SINT

GSV SSV

Determina cundo una conexin se debe considerar como que ha sobrepasado el tiempo de espera y se ha cerrado. Valor: 0 1 2 Significado: la conexin sobrepasar el tiempo de espera en un lapso igual a 4 veces el rgimen de actualizacin (predeterminado) la conexin sobrepasar el tiempo de espera en un lapso igual a 8 veces el rgimen de actualizacin la conexin sobrepasar el tiempo de espera en un lapso igual a 16 veces el rgimen de actualizacin

UnconnectedTimeout

DINT

GSV SSV

El tiempo de espera, en microsegundos, para todos los mensajes no conectados. La opcin predeterminada es 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 mensaje cuyo atributo usted desea cambiar tag que almacena el valor del atributo MessageType tag que almacena un 0. tag de matriz que almacena la nueva ruta de conexin para el mensaje

msg_1 msg_1_type tag_a msg_1_path

Lgica de escalera de rels


msg_path msg_path
0

GSV GSV Get System Value Get System Value Class name Message Class name MESSAGE Instance name msg_1 Instance name msg_1 Attribute Name MessageType Attribute Name MessageType Dest msg_1_type Dest msg_1_type 2 2 SSV SSV Set System Value Set System Value Class name Message Class name MESSAGE Instance name msg_1 Instance name msg_1 Attribute Name ConnectionPath Attribute Name ConnectionPath Source msg_1_path[0] Source msg_1path[0] 6 6

SSV SSV Set System Value Set System Value Class name Message Class name MESSAGE Instance name msg_1 Instance name msg_1 Attribute Name MessageType Attribute Name MessageType Source tag_a Source tag_a 0 0 SSV SSV Set System Value Set System Value Class name Message Class name MESSAGE Instance name msg_1 Instance name msg_1 Attribute Name MessageType Attribute Name MessageType Source msg_1_type Source msg_1_type 2 2

msg_1.EN msg_1.EN /

MSG MSG Tipo Escritura de tabla de Write datos CIP Type - CIP Data Table Message Control msg_1 ... Message Control msg_1

EN EN 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 EntryStatus Tipo de datos INT Instruccin GSV Descripcin 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: 16#0000 16#1000 Significado: Reserva: el controlador se est encendiendo. 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. Validando: el objeto MODULE est verificando la integridad del objeto MODULE antes de establecer las conexiones al mdulo. Conectndose: el objeto MODULE est iniciando las conexiones al mdulo. Funcionando: todas las conexiones al mdulo han sido establecidas y los datos se transfieren correctamente. Desactivndose: el objeto MODULE est en proceso de desactivar todas las conexiones al mdulo. Inhibido: el objeto MODULE se inhibe (el bit de inhibicin est establecido en el atributo de modo). En espera: no funciona el objeto MODULE primario del cual depende este objeto MODULE.

16#2000

16#3000 16#4000 16#5000 16#6000 16#7000 FaultCode FaultInfo ForceStatus INT DINT INT GSV GSV GSV

Un nmero que identifica un fallo del mdulo, si ocurre. Proporciona informacin especfica acerca del cdigo de fallo del objeto MODULE. Especifica el estado de los forzados. Bit: 0 1 2-15 Significado: forzados instalados (1=s, 0=no) forzados habilitados (1=s, 0=no) no se usa

190

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Atributo Instance LEDStatus

Tipo de datos DINT INT

Instruccin GSV GSV

Descripcin Proporciona el nmero de instancia de este objeto MODULE. Especifica el estado actual del indicador LED de E/S en la parte frontal del controlador. Valor: 0 Significado: LED apagado: No hay objetos MODULE configurados para el controlador (no hay mdulos en la seccin I/O Configuration del organizador del controlador). Rojo parpadeante: Ninguno de los objetos MODULE est en ejecucin. Verde parpadeante: Por lo menos uno de los objetos MODULE no est en ejecucin. Verde fijo: Todos los objetos Module estn en ejecucin.

1 2 3

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 SSV Especifica el modo actual del objeto MODULE. Bit: 0 Significado: 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. 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 Instance Tipo de datos DINT Instruccin GSV Descripcin 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 DisableFlag Tipo de datos SINT Instruccin GSV SSV Descripcin Controla la ejecucin de este programa. Valor: 0 1 Significado: ejecucin habilitada ejecucin inhabilitada

Instance LastScanTime

DINT DINT

GSV GSV SSV

Proporciona el nmero de instancia de este objeto PROGRAM. El tiempo necesario para que se ejecutara este programa la ltima vez que se ejecut. El tiempo se representa en microsegundos. Registra los fallos mayores para este programa. Recomendamos que usted cree una estructura definida por el usuario para simplificar el acceso al atributo MajorFaultRecord: Descripcin: los 32 bits inferiores de un valor de sello de hora de fallo los 32 bits superiores de un valor de sello de hora de fallo tipo de fallo (programa, E/S, etc.) cdigo nico para el fallo (depende del tipo de fallo) informacin especfica del fallo (depende del cdigo y tipo de fallo) El tiempo de ejecucin mximo registrado para este programa. El tiempo se representa en microsegundos. Registra los fallos menores para este programa Recomendamos que usted cree una estructura definida por el usuario para simplificar el acceso al atributo MinorFaultRecord: Descripcin: los 32 bits inferiores de un valor de sello de hora de fallo los 32 bits superiores de un valor de sello de hora de fallo tipo de fallo (programa, E/S, etc.) cdigo nico para el fallo (depende del tipo de fallo) informacin especfica del fallo (depende del cdigo y tipo de fallo) no se usa reservado para uso futuro

MajorFaultRecord

DINT[11]

GSV SSV

Nombre: TimeLow TimeHigh Type Code Info MaxScanTime

Tipo de datos: DINT DINT INT INT DINT[8] DINT

Estilo: Decimal Decimal Decimal Decimal Hexadecimal GSV SSV

MinorFaultRecord

DINT[11]

GSV SSV

Nombre: TimeLow TimeHigh Type Code Info SFCRestart

Tipo de datos: DINT DINT INT INT DINT[8] INT

Estilo: Decimal Decimal Decimal Decimal Hexadecimal GSV 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 Instance Tipo de datos DINT Instruccin GSV Descripcin 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 BaudRate Tipo de datos DINT Instruccin GSV Descripcin 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: 7 8 Parity SINT GSV Significado: 7 bits de datos (ASCII solamente) 8 bits de datos (opcin predeterminada)

Especifica la paridad. Valor: 0 1 2 Significado: sin paridad (no predeterminado) paridad impar (ASCII solamente) 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: 1 2 Significado: 1 bit de fin (opcin predeterminada) 2 bits de fin (ASCII solamente)

PendingBaudRate PendingDataBits PendingParity

DINT SINT SINT

SSV SSV SSV

Valor pendiente para el atributo BaudRate. Valor pendiente para el atributo DataBits. 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 PendingRTSOffDelay PendingRTSSendDelay PendingStopBits

Tipo de datos INT INT SINT

Instruccin SSV SSV SSV

Descripcin Valor pendiente para el atributo RTSOffDelay. Valor pendiente para el atributo RTSSendDelay. 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 Configuration Campo Message Type Service Code Object Type Object ID Object Attribute Source Number of Elements Destination Communication Path Valor CIP genrico 0d hex 6f hex 1 dejar en blanco dejar en blanco 0 dejar en blanco 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 DisableUpdateOutputs Tipo de datos DINT Instruccin GSV SSV Descripcin Habilita o inhabilita el procesamiento de salidas al final de una tarea. Para: habilitar el procesamiento de salidas al final de la tarea inhabilitar el procesamiento de salidas al final de la tarea EnableTimeOut DINT GSV SSV Establezca el atributo en: 0 1 (o cualquier valor excepto cero)

Habilita o inhabilita la funcin de tiempo de espera de una tarea de evento. Para: inhabilitar la funcin de tiempo de espera habilitar la funcin de tiempo de espera Establezca el atributo en: 0 1 (o cualquier valor excepto cero)

InhibitTask

DINT

GSV SSV

Evita que se ejecute la tarea. Si se inhibe una tarea, el controlador igualmente preescanea la tarea cuando el controlador cambia del modo de programacin al modo de marcha o al modo de prueba. Para: habitar la tarea inhibir (inhabilitar) la tarea Establezca el atributo en: 0 (predeterminado) 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 SSV

El tiempo necesario para ejecutar esta tarea desde la ltima vez que se ejecut. El tiempo se representa en microsegundos. El intervalo de tiempo mximo entre las ejecuciones sucesivas de la tarea. DINT[0] contiene los 32 bits inferiores del valor; DINT[1] contiene los 32 bits superiores del valor. Un valor de 0 indica 1 o menos ejecuciones de la tarea.

MaxInterval

DINT[2]

GSV SSV

MaxScanTime

DINT

GSV SSV

El tiempo de ejecucin mximo registrado para este programa. El tiempo se representa en microsegundos. El intervalo de tiempo mnimo entre las ejecuciones sucesivas de la tarea. DINT[0] contiene los 32 bits inferiores del valor; DINT[1] contiene los 32 bits superiores del valor. Un valor de 0 indica 1 o menos ejecuciones de la tarea.

MinInterval

DINT[2]

GSV SSV

OverlapCount

DINT

GSV SSV

El nmero de veces que se activ la tarea mientras se estaba ejecutando. Vlido para un evento o una tarea peridica. 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 Priority

Tipo de datos INT

Instruccin GSV SSV

Descripcin La prioridad relativa de esta tarea comparada con las otras tareas. Valores vlidos 1...15. Si el tipo de tarea es: peridica El atributo Rate especifica el: Perodo para la tarea. El tiempo se representa en microsegundos. El valor de tiempo de espera para la tarea. El tiempo se representa en microsegundos.

Rate

DINT

GSV SSV

evento

StartTime

DINT[2]

GSV SSV

El valor WALLCLOCKTIME cuando se inici la ltima ejecucin de la tarea. DINT[0] contiene los 32 bits inferiores del valor; DINT[1] contiene los 32 bits superiores del valor. Proporciona informacin de estado acerca de la tarea. Una vez que el controlador establece uno de estos bits, usted puede borrar el bit manualmente. Para determinar si: Una instruccin EVNT activ la tarea (tarea de evento solamente). Un tiempo de espera sobrepasado activ la tarea (tarea de evento solamente). Ocurri una superposicin para esta tarea. Examine este bit: 0

Status

DINT

GSV SSV

Watchdog

DINT

GSV SSV

El lmite de tiempo para la ejecucin de todos los programas asociados con esta tarea. El tiempo se representa en microsegundos. Si se introduce 0, se asignan estos valores: Tiempo: 0.5 s 5.0 s Tipo de tarea: peridica o de evento 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 CSTOffset Tipo de datos DINT[2] Instruccin GSV SSV Descripcin Offset positivo del CurrentValue del objeto CST (hora coordinada del sistema; vea la pgina 183). DINT[0] contiene los 32 bits inferiores del valor; DINT[1] contiene los 32 bits superiores del valor. Valor en s. El valor predeterminado es 0. CurrentValue DINT[2] GSV 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 SSV La fecha y hora en un formato legible. DINT[0] DINT[1] DINT[2] DINT[3] DINT[4] DINT[5] DINT[6] ao representacin del mes en nmeros enteros (1-12) representacin del da en nmeros enteros (1-31) hora (0-23) minuto (0-59) segundos (0-59) microsegundos (0-999,999) 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.

Publicacin 1756-RM003K-ES-P Julio 2008

197

Captulo 4

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

Ejemplo de programacin GSV/SSV

Obtenga informacin de fallo


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)


Operandos:

La instruccin IOT actualiza inmediatamente los datos de salida especificados (tag de salida o tag producido).

Lgica de escalera de rels


Operando Update Tag Tipo Formato tag Descripcin 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 ControlLogix Mediante esta red backplane Red EtherNet/IP Red ControlNet SoftLogix5800 Usted puede producir y consumir tags slo por una red ControlNet. El dispositivo consumidor recibe los datos y el activador de evento inmediatamente inmediatamente dentro del intervalo entre paquetes actual (API) del tag consumido (conexin) dentro del intervalo entre paquetes actual (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 valores cargados al tag producido instruccin IOT en el controlador productor tarea de evento en el controlador consumidor Red ControlNet valores cargados al tag producido instruccin IOT en el controlador productor RPI del tag producido 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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera EnableIn se establece ejecucin de la instruccin Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. n. a. 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 falsa. Ninguna. EnableIn siempre se establece. La instruccin se ejecuta. Accin de texto estructurado Ninguna. n. a. n. a.

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

Instrucciones de comparacin
(CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)

Introduccin
Si desea comparar los valores segn una expresin probar si dos valores son iguales

Las instrucciones de comparacin le permiten comparar los valores usando una expresin o una instruccin de comparacin especfica.
Use esta instruccin CMP EQU Disponible en estos lenguajes lgica de escalera de rels texto estructurado(1) lgica de escalera de rels texto estructurado(2) bloque de funciones lgica de escalera de rels texto estructurado(1) bloque de funciones lgica de escalera de rels texto estructurado(1) bloque de funciones lgica de escalera de rels texto estructurado(1) bloque de funciones lgica de escalera de rels texto estructurado(1) bloque de funciones lgica de escalera de rels texto estructurado(1) bloque de funciones lgica de escalera de rels texto estructurado(1) bloque de funciones lgica de escalera de rels texto estructurado(1) bloque de funciones Vea la pgina 206 211

probar si un valor es mayor o igual que un segundo valor determinar si un valor es mayor que otro valor

GEQ

215

GRT

219

probar si un valor es menor o igual que un segundo valor determinar si un valor es menor que otro valor

LEQ

223

LES

227

determinar si un valor se encuentra entre otros dos valores pasar dos valores a travs de una mscara y determinar si son iguales determinar si un valor diferente a otro valor

LIM

231

MEQ

237

NEQ

242

(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. No hay una instruccin equivalente en texto estructurado. Use el operador en una expresin.

(2)

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)
Operandos:

La instruccin CMP realiza una comparacin de las operaciones aritmticas que se especifican en la expresin.

Lgica de escalera de rels


Operando Expression Tipo SINT INT DINT REAL cadena Un tag SINT o INT se convierte en un valor DINT mediante extensin de signo. Formato inmediato tag Descripcin una expresin que consiste en tags y/o valores inmediatos separados por operadores.

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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa.

evale la expresin

la expresin es verdadera

la condicin de salida de 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 diferente de cero cero La condicin de salida de rengln se establece como verdadera 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: + * / = < <= > >= <> ** ABS ACS AND ASN ATN COS Descripcin sumar restar/cambiar signo multiplicar dividir igual que menor que menor o igual que mayor que mayor o igual que diferente de exponente (x a la y) valor absoluto arco coseno Y a nivel de bits arco seno arco tangente coseno ptimo DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL REAL DINT REAL REAL REAL OR RAD SIN SQR TAN TOD TRN XOR Operador: DEG FRD LN LOG MOD NOT Descripcin radianes a grados BCD a entero logaritmo natural logaritmo base 10 mdulo de divisin complemento a nivel de bits O a nivel de bits grados a radianes seno raz cuadrada tangente entero a BCD truncar O exclusivo a nivel de bits ptimo DINT, REAL DINT REAL REAL DINT, REAL DINT DINT DINT, REAL REAL DINT, REAL REAL DINT DINT, REAL DINT

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 que operan en un operando dos operandos Use este formato operador(operando) operando_a operador operando_b Ejemplos ABS(tag_a) tag_b + 5 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 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Operacin () ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG, RAD, SIN, SQR, TAN, TOD, TRN ** (cambiar signo), NOT *, /, MOD <, <=, >, >=, = (restar), + AND XOR 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 1ab
m e n o r m a y o r

Cdigos hexadecimales $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B

1b A AB B a ab

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)
Operandos:

La instruccin EQU determina si Source A es igual a Source B.

Lgica de escalera de rels


Operando Source A Tipo SINT INT DINT REAL cadena Source B SINT INT DINT REAL cadena inmediato tag valor que se compara con Source A Formato inmediato tag Descripcin valor que se compara con Source B

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 <statements>;

Use el signo igual = como operador dentro de una expresin. Esta 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 EQU tag Tipo FBD_COMPARE Formato estructura Descripcin estructura EQU

Estructura FBD_COMPARE
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut Dest BOOL BOOL Descripcin La instruccin produjo un resultado vlido. 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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa.

Source A = Source B

la condicin de salida de 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 preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. 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)


Operandos:

La instruccin GEQ determina si Source A es mayor o igual que Source B.

Lgica de escalera de rels


Operando Source A Tipo SINT INT DINT REAL cadena Source B SINT INT DINT REAL cadena inmediato tag valor que se compara con Source A Formato inmediato tag Descripcin valor que se compara con Source B

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 <statements>;

Use los signos mayor que e igual >= adyacentes como operador 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 GEQ tag Tipo FBD_COMPARE Formato estructura Descripcin estructura GEQ

Estructura FBD_COMPARE
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut Dest BOOL BOOL Descripcin La instruccin produjo un resultado vlido. 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 1ab
m e n o r m a y o r

Cdigos hexadecimales $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B

1b A AB B a ab

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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa.

Source A Source B

la condicin de salida de 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 preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. 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)


Operandos:

La instruccin GRT determina si Source A es mayor que Source B.

Lgica de escalera de rels


Operando Source A Tipo SINT INT DINT REAL cadena Source B SINT INT DINT REAL cadena inmediato tag valor que se compara con Source A Formato inmediato tag Descripcin valor que se compara con Source B

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 <statements>;

Use el signo mayor que > como un operador dentro de una 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 GRT tag Tipo FBD_COMPARE Formato estructura Descripcin 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 entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut Dest BOOL BOOL Descripcin La instruccin produjo un resultado vlido. 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 1ab
m e n o r m a y o r

Cdigos hexadecimales $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B

1b A AB B a ab

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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa.

Source A > Source B

la condicin de salida de 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 preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. 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)


Operandos:

La instruccin LEQ determina si Source A es menor o igual que Source B.

Lgica de escalera de rels


Operando Source A Tipo SINT INT DINT REAL cadena Source B SINT INT DINT REAL cadena inmediato tag valor que se compara con Source A Formato inmediato tag Descripcin valor que se compara con Source B

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 <statements>;

Use los signos menor que e igual <= adyacentes como operador 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 LEQ tag Tipo FBD_COMPARE Formato estructura Descripcin estructura LEQ

Estructura FBD_COMPARE
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut Dest BOOL BOOL Descripcin La instruccin produjo un resultado vlido. 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 1ab
m e n o r m a y o r

Cdigos hexadecimales $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B

1b A AB B a ab

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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa.

Source A Source B

la condicin de salida de 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 preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. 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)


Operandos:

La instruccin LES determina si Source A es menor que Source B.

Lgica de escalera de rels


Operando Source A Tipo SINT INT DINT REAL cadena Source B SINT INT DINT REAL cadena inmediato tag valor que se compara con Source A Formato inmediato tag Descripcin valor que se compara con Source B

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 <statements>;

Use el signo menor que < como un operador dentro de una 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 LES tag Tipo FBD_COMPARE Formato estructura Descripcin 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 entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut Dest BOOL BOOL Descripcin La instruccin produjo un resultado vlido. 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 1ab
m e n o r m a y o r

Cdigos hexadecimales $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B

1b A AB B a ab

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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa.

Source A < Source B

la condicin de salida de 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: preescn primer escn de instruccin primera ejecucin de instruccin EnableIn es falsa EnableIn es verdadera Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. 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)
Operandos:

La instruccin LIM determina si el valor de prueba se encuentra dentro del rango de los lmites inferior y superior.

Lgica de escalera de rels


Operando Low limit Tipo SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensin de signo. Test SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensin de signo. High limit SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensin de signo. inmediato tag valor del lmite superior inmediato tag valor que se prueba Formato inmediato tag Descripcin valor del lmite inferior

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 LIM tag Tipo FBD_LIMIT Formato estructura Descripcin estructura LIM

Estructura FBD_LIMIT
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut Dest HighLimit BOOL BOOL REAL Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin. Es equivalente a la condicin de salida de rengln para la instruccin LIM de lgica de escalera de rels. 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 inferior Lmite superior Y el valor de prueba es igual a o est entre los lmites diferente o est fuera de los lmites Lmite superior igual a o est fuera de los lmites diferente o est dentro de los lmites La condicin de salida de rengln se establece como verdadera falsa verdadera falsa

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
La instruccin es verdadera si el valor de prueba se encuentra entre los lmites inferior y superior, o coincide con uno de dichos lmites. 0 1 +1 lmite inferior 1

Lmite inferior

Lmite superior

La instruccin es verdadera si el valor de prueba se encuentra fuera de los lmites inferior y superior, o coincide con uno de dichos lmites. 0 +1 lmite superior

lmite superior (n+1)

lmite inferior (n+1) +n n = valor mximo

+n

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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa.

evaluar el lmite

la comparacin es verdadera

la condicin de salida de 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 preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra, la instruccin no efecta ninguna operacin y las salidas no se actualizan. 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)


Operandos:

La instruccin MEQ pasa los valores Source y Compare por una mscara y compara los resultados.

Lgica de escalera de rels


Operando Source Tipo SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros. Mask SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros. Compare SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros. inmediato tag valor que se compara con Source inmediato tag define qu bits se deben bloquear o pasar Formato inmediato tag Descripcin valor que se compara con Compare

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 MEQ tag Tipo FBD_MASK_EQUAL Formato estructura Descripcin 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 entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut Dest BOOL BOOL Descripcin La instruccin produjo un resultado vlido. 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 16# Descripcin 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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa.

origen enmascarado = comparacin enmascarada

la condicin de salida de 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 preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra, la instruccin no efecta ninguna operacin y las salidas no se actualizan. 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 enmascarado

value_2 0 1 0 1 0 1 0 1 1 1 1 1 X X X X 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 enmascarado

value_2 X X X X X X X X X X X X 0 0 0 0 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)
Operandos:

La instruccin NEQ determina si Source A es diferente de Source B.

Lgica de escalera de rels


Operando Source A Tipo SINT INT DINT REAL cadena Source B SINT INT DINT REAL cadena inmediato tag valor que se compara con Source A Formato inmediato tag Descripcin valor que se compara con Source B

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 <statements>;

Use los signos menor que y mayor que <> juntos como operador 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 NEQ tag Tipo FBD_COMPARE Formato estructura Descripcin 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 entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut Dest BOOL BOOL Descripcin La instruccin produjo un resultado vlido. 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 1ab
m e n o r m a y o r

Cdigos hexadecimales $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B

1b A AB B a ab

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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa.

Source A = Source B

la condicin de salida de 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 preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. 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

Instrucciones de clculo/matemticas
(CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)

Introduccin
Si desea evaluar una expresin sumar dos valores

Las instrucciones de clculo/matemticas evalan las operaciones aritmticas usando una expresin o una instruccin aritmtica especfica.
Use esta instruccin CPT ADD Disponible en estos lenguajes lgica de escalera de rels texto estructurado(1) lgica de escalera de rels texto estructurado(2) bloque de funciones lgica de escalera de rels texto estructurado(2) bloque de funciones lgica de escalera de rels texto estructurado(2) bloque de funciones lgica de escalera de rels texto estructurado(2) bloque de funciones lgica de escalera de rels texto estructurado(2) bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado(2) bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones Vea la pgina 248 252

restar dos valores

SUB

255

multiplicar dos valores

MUL

258

dividir dos valores

DIV

261

determinar el residuo despus de dividir un valor entre otro calcular la raz cuadrada de un valor

MOD

266

SQR SQRT(3)

270

tomar el signo opuesto de un valor.

NEG

274

hallar el valor absoluto de un valor.

ABS

277

(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. No hay una instruccin equivalente en texto estructurado. Use el operador en una expresin. Texto estructurado solamente.

(2) (3)

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)
Operandos:

La instruccin CPT realiza las operaciones aritmticas que usted define en la expresin.

Lgica de escalera de rels


Operando Destination Tipo SINT INT DINT REAL SINT INT DINT REAL Formato: tag Descripcin tag para almacenar el resultado

Expression

inmediato tag

una expresin que consiste en tags y/o valores inmediatos separados por operadores

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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. 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 + * / ** ABS ACS AND ASN ATN COS DEG FRD LN Descripcin sumar restar/cambiar signo multiplicar dividir exponente (x a la y) valor absoluto arco coseno Y a nivel de bits arco seno arco tangente coseno radianes a grados BCD a entero logaritmo natural ptimo DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL REAL DINT REAL REAL REAL DINT, REAL DINT REAL OR RAD SIN SQR TAN TOD TRN XOR Operador LOG MOD NOT Descripcin logaritmo base 10 mdulo de divisin complemento a nivel de bits O a nivel de bits grados a radianes seno raz cuadrada tangente entero a BCD truncar O exclusivo a nivel de bits ptimo REAL DINT, REAL DINT DINT DINT, REAL REAL DINT, REAL REAL DINT DINT, REAL DINT

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 que operan en: un operando dos operandos Use este formato: operador(operando) operando_a operador operando_b Ejemplos: ABS(tag_a) tag_b + 5 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: 1. 2. 3. 4. 5. 6. 7. 8. 9. Operacin: () ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG, RAD, SIN, SQR, TAN, TOD, TRN ** (cambiar signo), NOT *, /, MOD (restar), + AND XOR 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)
Operandos:

La instruccin ADD suma Source A con Source B y coloca el resultado en Destination.

Lgica de escalera de rels


Operando: Source A Tipo: SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensin de signo. Source B SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensin de signo. Destination SINT INT DINT REAL tag tag para almacenar el resultado inmediato tag valor que se suma a Source A Formato: inmediato tag Descripcin: valor que se suma a Source B

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: ADD tag Tipo: FBD_MATH Formato: estructura Descripcin: 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 entrada: EnableIn Tipo de datos: BOOL Descripcin: 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 salida: EnableOut Dest Tipo de datos: BOOL REAL Descripcin: La instruccin produjo un resultado vlido. 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: preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin: La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. 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: preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin: Ninguna. Ninguna. Ninguna. EnableOut se borra. 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)
Operandos:

La instruccin SUB resta Source B de Source A y coloca el resultado en Destination.

Lgica de escalera de rels


Operando: Source A Tipo: SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensin de signo. Source B SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensin de signo. Destination SINT INT DINT REAL tag tag para almacenar el resultado inmediato tag valor que se resta de Source A Formato: inmediato tag Descripcin: valor del cual restar Source B

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: SUB tag Tipo: FBD_MATH Formato: estructura Descripcin: 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 entrada: EnableIn Tipo de datos: BOOL Descripcin: 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 salida: EnableOut Dest Tipo de datos: BOOL REAL Descripcin: La instruccin produjo un resultado vlido. 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: preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin: La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. 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: preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin: Ninguna. Ninguna. Ninguna. EnableOut se borra. 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)
Operandos:

La instruccin MUL multiplica Source A por Source B y coloca el resultado en Destination.

Lgica de escalera de rels


Operando Source A Tipo SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensin de signo. Source B SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensin de signo. Destination SINT INT DINT REAL tag tag para almacenar el resultado inmediato tag valor del multiplicador Formato inmediato tag Descripcin valor del multiplicando

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 MUL tag Tipo FBD_MATH Formato estructura Descripcin 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 entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut Dest BOOL REAL Descripcin La instruccin produjo un resultado vlido. 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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. 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 preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. 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)
Operandos:

La instruccin DIV divide Source A entre Source B y coloca el resultado en Destination.

Lgica de escalera de rels


Operando Source A Tipo SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensin de signo. Source B SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensin de signo. Destination SINT INT DINT REAL tag tag para almacenar el resultado inmediato tag valor del divisor Formato inmediato tag Descripcin valor del dividendo

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 DIV tag Tipo FBD_MATH Formato estructura Descripcin estructura DIV

Estructura FBD_MATH
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut Dest BOOL REAL Descripcin La instruccin produjo un resultado vlido. 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 fraccionaria del resultado Ejemplo

y Source B no son REAL se trunca

Source A Source B Destination

DINT DINT DINT REAL DINT DINT

5 3 1 5.0 3 2

o Source B es REAL

se redondea

Source A Source B Destination

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: todos los operandos son nmeros enteros (SINT, INT o DINT) por lo menos un operando es REAL SINT, INT o DINT REAL positivo negativo positivo negativo Y el destino es un: Y el resultado es: Entonces el destino se establece en: Source A -1 0 1.$ (infinito positivo) -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 menor si el divisor es cero Tipo de fallo 4 Cdigo de fallo 4

Ejecucin: Lgica de escalera de rels


Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. 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 preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. 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)
Operandos:

La instruccin MOD divide Source A entre Source B y coloca el residuo en Destination.

Lgica de escalera de rels


Operando Source A Tipo SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensin de signo. Source B SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensin de signo. Destination SINT INT DINT REAL tag tag para almacenar el resultado inmediato tag valor del divisor Formato inmediato tag Descripcin valor del dividendo

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 MOD tag Tipo FBD_MATH Formato estructura Descripcin 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 entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut Dest BOOL REAL Descripcin La instruccin produjo un resultado vlido. 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: todos los operandos son nmeros enteros (SINT, INT o DINT) por lo menos un operando es REAL SINT, INT o DINT REAL positivo negativo positivo negativo Y el destino es un: Y el resultado es: Entonces el destino se establece en: Source A -1 0 1.$ (infinito positivo) -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 menor si el divisor es cero Tipo de fallo 4 Cdigo de fallo 4

Ejecucin: Lgica de escalera de rels


Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. 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 preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra post-escn Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. 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)


Operandos:

La instruccin SQR calcula la raz cuadrada de Source y coloca el resultado en Destination.

Lgica de escalera de rels


Operando Source Tipo SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensin de signo. Destination SINT INT DINT REAL tag tag para almacenar el resultado Formato inmediato tag Descripcin halla la raz cuadrada de este valor

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 SQR tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin estructura SQR

Estructura FBD_MATH_ADVANCED
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut Dest BOOL REAL Descripcin La instruccin produjo un resultado vlido. 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 fraccionaria del resultado se trunca se redondea Ejemplo

no es REAL es REAL

Source Destination Source Destination

DINT DINT REAL DINT

3 1 3.0 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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa.

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 preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. 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)


Operandos:

La instruccin NEG cambia el signo de Source y coloca el resultado en Destination.

Lgica de escalera de rels


Operando Source Tipo SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensin de signo. Destination SINT INT DINT REAL tag tag para almacenar el resultado Formato inmediato tag Descripcin valor cuyo signo se cambia

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 NEG tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin 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 entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut Dest BOOL REAL Descripcin La instruccin produjo un resultado vlido. 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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. 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 preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. 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)


Operandos:

La instruccin ABS toma el valor absoluto de Source y coloca el resultado en Destination.

Lgica de escalera de rels


Operando Source Tipo SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensin de signo. Destination SINT INT DINT REAL tag tag para almacenar el resultado Formato inmediato tag Descripcin valor del cual hallar el valor absoluto

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 ABS tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin 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 entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut Dest BOOL REAL Descripcin La instruccin produjo un resultado vlido. 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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. 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 preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. 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

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 copiar un valor

Use esta instruccin MOV

Disponible en estos lenguajes lgica de escalera de rels texto estructurado(1)

Vea la pgina 283

copiar una parte especfica de un nmero entero copiar una parte especfica de un nmero entero en el bloque de funciones mover bits dentro de un nmero entero o entre nmeros enteros mover bits dentro de un nmero entero o entre nmeros enteros en el bloque de funciones borrar un valor

MVM MVMT

lgica de escalera de rels texto estructurado bloque de funciones

285 288

BTD BTDT

lgica de escalera de rels texto estructurado bloque de funciones

292 295

CLR

texto estructurado(1) lgica de escalera de rels

298

reacomodar los bytes de un tag INT, DINT o REAL


(1)

SWPB

lgica de escalera de rels texto estructurado

300

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: operacin Y a nivel de bits Use esta instruccin: Bitwise AND &(1) Disponible en estos lenguajes lgica de escalera de rels texto estructurado(2) bloque de funciones operacin O a nivel de bits Bitwise OR lgica de escalera de rels texto estructurado(2) bloque de funciones operacin O exclusivo a nivel de bits Bitwise XOR lgica de escalera de rels texto estructurado(2) bloque de funciones operacin NOT a nivel de bits Bitwise NOT lgica de escalera de rels texto estructurado(2) bloque de funciones Y lgico hasta ocho entradas booleanas. Boolean AND (BAND) texto estructurado(2) bloque de funciones O lgico hasta ocho entradas booleanas. Boolean OR (BOR) texto estructurado(2) bloque de funciones realizar un O exclusivo en dos entradas booleanas. complementar una entrada booleana. Boolean Exclusive OR (BXOR) Boolean NOT (BNOT) texto estructurado(2) bloque de funciones texto estructurado(2) bloque de funciones
(1) (2)

Vea la pgina 304

307

310

314

317

320

323

326

Texto estructurado solamente. 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)
Operandos:

La instruccin MOV copia Source en Destination. Source no cambia.

Lgica de escalera de rels


Operando: Source Tipo: SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensin de signo. Destination SINT INT DINT REAL tag tag para almacenar el resultado Formato inmediato tag Descripcin: valor a mover (copiar)

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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. 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 Source Tipo SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros. Mask SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros. Destination SINT INT DINT tag tag para almacenar el resultado inmediato tag qu bits se bloquean o se pasan Formato inmediato tag Descripcin valor a mover

Texto estructurado
dest := (Dest AND NOT (Mask)) OR (Source AND Mask);

Esta instruccin est disponible en texto estructurado como MVMT. 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: 16# Descripcin 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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. 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 con receptor (MVMT)

La instruccin MVMT primero copia Target en Destination. Seguidamente la instruccin compara Source enmascarado con 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 MVMT tag Tipo FBD_MASKED_MOVE Formato estructura Descripcin: estructura MVMT

Bloque de funciones
Operando MVMT tag Tipo FBD_MASKED_MOVE Formato estructura Descripcin estructura MVMT

Estructura FBD_MASKED_MOVE
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut Dest BOOL DINT

Descripcin La instruccin produjo un resultado vlido. 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 16# Descripcin 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 preescn primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin de bloque de funciones Ninguna. Ninguna. EnableOut se borra, la instruccin no efecta ninguna operacin y las salidas no se actualizan. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna. Accin de texto estructurado Ninguna. Ninguna. Ninguna. n. a. EnableIn siempre se establece. La instruccin se ejecuta. Ninguna.

primer escn de instruccin 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 (BTD)

La instruccin BTD copia los bits especificados de Source, desplaza los bits a la posicin apropiada y escribe los bits en Destination. 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 Source Tipo SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros. Source bit DINT inmediato (0-31 DINT) (0-15 INT) (0-7 SINT) Destination SINT INT DINT Destination bit DINT inmediato (0-31 DINT) (0-15 INT) (0-7 SINT) Length DINT inmediato (1-32) nmero del bit (nmero del bit ms bajo) desde donde empezar a copiar bits desde Source debe estar dentro del rango vlido para el tipo de datos del destino nmero de bits que se van a mover tag nmero del bit (nmero del bit ms bajo) desde donde empezar el movimiento debe estar dentro del rango vlido para el tipo de datos de Source tag a donde mover los bits Formato inmediato tag Descripcin el tag que contiene los bits a mover

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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. 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 con receptor (BTDT)

La instruccin BTDT primero copia Target en Destination. Seguidamente, la instruccin BTD copia los bits especificados desde 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 BTDT tag Tipo FBD_BIT_FIELD_DISTRIBUTE Formato estructura Descripcin estructura BTDT

Bloque de funciones
Operando BTDT tag Tipo FBD_BIT_FIELD_DISTRIBUTE Formato estructura Descripcin estructura BTDT

Estructura FBD_BIT_FIELD_DISTRIBUTE
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin: 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 entrada Target

Tipo de datos DINT

Descripcin: Valor de entrada que se transfiere a Dest antes de transferir los bits de Source. Vlido = cualquier nmero entero

Parmetro de salida: EnableOut Dest

Tipo de datos: BOOL DINT

Descripcin: La instruccin produjo un resultado vlido. 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 preescn primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin de bloque de funciones Ninguna. Ninguna. EnableOut se borra, la instruccin no efecta ninguna operacin y las salidas no se actualizan. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna. Accin de texto estructurado Ninguna. Ninguna. Ninguna. n. a. EnableIn siempre se establece. La instruccin se ejecuta. Ninguna.

primer escn de instruccin 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)
Operandos:

La instruccin CLR borra (pone en cero) todos los bits de Destination.

Lgica de escalera de rels


Operando Destination Tipo SINT INT DINT REAL Formato tag Descripcin tag que se borra

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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. 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)


Operandos:

La instruccin SWPB reacomoda los bytes de un valor.

Lgica de escalera de rels

Operando Source

Tipo INT DINT REAL

Formato tag

Introduzca el tag que contiene los bytes que desea reacomodar

Modo de orden

Si Source es un INT DINT REAL

Y usted desea cambiar los bytes a este patrn (cada letra representa un byte diferente) n. a. ABCD DCBA ABCD CDAB ABCD BADC

Entonces seleccione cualquiera de las opciones REVERSE (o introduzca 0) WORD (o introduzca 1) HIGH/LOW (o introduzca 2)

Destination

INT DINT REAL

tag

tag para almacenar los bytes en el nuevo orden Si Source es un INT DINT REAL Entonces el destino debe ser un INT DINT DINT 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
42969

Nombre del tag bar_code[0]

Valor AB

Estilo ASCII

Tipo INT

42968

AB

Indicadores de estado aritmtico: no afectados Condiciones de fallo: ninguna Ejecucin:


Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera EnableIn se establece Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como verdadera. n. a. Accin de texto estructurado Ninguna. n. a. n. a. EnableIn siempre se establece. La instruccin se ejecuta. ejecucin de la instruccin post-escn La instruccin reacomoda los bytes especificados. La condicin de salida de rengln se establece como falsa. La instruccin reacomoda los bytes especificados. Ninguna.

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 Source A Tipo SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros. Source B SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros. Destination SINT INT DINT tag almacena el resultado inmediato tag valor con que se a realiza la operacin AND con Source A Formato inmediato tag Descripcin valor con que se realiza la operacin Y con Source B

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 AND tag Tipo FBD_LOGICAL Formato estructura Descripcin 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 entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut Dest BOOL DINT Descripcin La instruccin produjo un resultado vlido. 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 Source A es 0 0 1 1 Y el bit en Source B es 0 1 0 1 El bit en Destination es 0 0 0 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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. 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 preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. 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 Source A Tipo SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros. Source B SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros. Destination SINT INT DINT tag almacena el resultado inmediato tag valor con que se realiza la operacin O con Source A Formato inmediato tag Descripcin valor con que se realiza la operacin O con Source B

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 OR tag Tipo FBD_LOGICAL Formato estructura Descripcin 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 entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut Dest BOOL DINT Descripcin La instruccin produjo un resultado vlido. 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 Source A es 0 0 1 1 Y el bit en Source B es 0 1 0 1 El bit en Destination es 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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. 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 preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. 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 (XOR)

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 Destination. Para realizar una operacin lgica XO, vea la pgina 323.

Operandos: Lgica de escalera de rels


Operando Source A Tipo SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros. Source B SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros. Destination SINT INT DINT tag almacena el resultado inmediato tag valor con que se realiza la operacin XOR con Source A Formato inmediato tag Descripcin valor con que se realiza la operacin XOR con Source B

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 XOR tag Tipo FBD_LOGICAL Formato estructura Descripcin 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 entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut Dest BOOL DINT Descripcin La instruccin produjo un resultado vlido. 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 Source A es 0 0 1 1 Y el bit en Source B es 0 1 0 1 El bit en Destination 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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. 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 preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. 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 Source Tipo SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros. Destination SINT INT DINT tag almacena el resultado Formato inmediato tag Descripcin valor sobre el cual se aplicar la operacin NO

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 NOT tag Tipo FBD_LOGICAL Formato estructura Descripcin 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 entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut Dest BOOL DINT Descripcin La instruccin produjo un resultado vlido. 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 Source es: 0 1 El bit en Destination es: 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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. 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 preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. 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 <statement>; END_IF;

Use AND o el signo & como operador dentro de una expresin. Los operandos deben ser valores BOOL o expresiones que resultan 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 BAND tag Tipo FBD_BOOLEAN_AND Formato estructura Descripcin estructura BAND

Estructura FBD_BOOLEAN_AND
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin 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 entrada In8

Tipo de datos BOOL

Descripcin Octava entrada booleana. La opcin predeterminada es establecido.

Parmetro de salida Tipo de datos EnableOut Out BOOL BOOL

Descripcin Habilitacin de salida. 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 preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin de bloque de funciones Ninguna. Ninguna. Ninguna. EnableOut se borra. 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 1 1 0 1 0 1 0 0 0 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 <statement>; END_IF;

Use OR como operador dentro de una expresin. Los operandos deben ser valores BOOLEANOS o expresiones que resultan en valores 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 BOR tag Tipo FBD_BOOLEAN_OR Formato estructura Descripcin estructura BOR

Estructura FBD_BOOLEAN_OR
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin 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 entrada In8

Tipo de datos BOOL

Descripcin Octava entrada booleana. La opcin predeterminada es borrado.

Parmetro de salida Tipo de datos EnableOut Out BOOL BOOL

Descripcin Habilitacin de salida. 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 preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin de bloque de funciones Ninguna. Ninguna. Ninguna. EnableOut se borra. 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 1 1 0 1 0 1 0 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 (BXOR)


Operandos:

La instruccin BXOR realiza una operacin O exclusivo de dos entradas booleanas. Para realizar un XOR a nivel de bits, vea la pgina 310.

Texto estructurado
IF operandA XOR operandB THEN <statement>; END_IF;

Use XOR como operador dentro de una expresin. Los operandos deben ser valores BOOLEANOS o expresiones que resultan en valores 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 BXOR tag Tipo FBD_BOOLEAN_XOR Formato estructura Descripcin estructura BXOR

Estructura FBD_BOOLEAN_XOR
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut Out BOOL BOOL Descripcin Habilitacin de salida. 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 preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin de bloque de funciones Ninguna. Ninguna. Ninguna. EnableOut se borra. 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 1 1 0 1 0 1 0 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)
Operandos:

La instruccin BNOT complementa una entrada booleana. Para realizar una operacin NO a nivel de bits, vea la pgina 314.

Texto estructurado
IF NOT operand THEN <statement>; END_IF;

Use NOT como operador dentro de una expresin. El operando debe ser un valor BOOL o expresiones que resultan en valores BOOL. Esta 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 BNOT tag Tipo FBD_BOOLEAN_NOT Formato estructura Descripcin estructura BNOT

Estructura FBD_BOOLEAN_NOT
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut Out BOOL BOOL Descripcin: Habilitacin de salida. 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 preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin de bloque de funciones Ninguna. Ninguna. Ninguna. EnableOut se borra. 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 0 1 Entonces VALUE_RESULT_NOT es 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

Instrucciones de matriz (archivo)/miscelneas


(FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Introduccin
Si desea realizar operaciones aritmticas, lgicas, de desplazamiento y de funciones en valores en matrices buscar y comparar valores en matrices

Las instrucciones de archivo/miscelneas realizan operaciones en matrices de datos.


Use esta instruccin FAL Disponible en estos lenguajes lgica de escalera de rels texto estructurado(1) FSC COP lgica de escalera de rels lgica de escalera de rels texto estructurado 347 356 Vea la pgina 335

copiar el contenido de una matriz en otra matriz

copiar el contenido de una matriz en otra matriz sin interrupcin llenar una matriz con datos especficos

CPS

lgica de escalera de rels texto estructurado

356

FLL

lgica de escalera de rels texto estructurado(1)

362

calcular el promedio de una matriz de valores

AVE

lgica de escalera de rels texto estructurado(1)

366

organizar una dimensin de datos de matriz en orden ascendente calcular la desviacin estndar de una matriz de valores encontrar el tamao de una dimensin de una matriz
(1)

SRT

lgica de escalera de rels texto estructurado

371

STD

lgica de escalera de rels texto estructurado(1)

376

SIZE

lgica de escalera de rels texto estructurado

381

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 operacin

Para las instrucciones FAL y FSC, el modo indica al controlador cmo distribuir la operacin de la matriz.
Si desea realizar una operacin en todos los elementos especificados de una matriz antes de continuar con la prxima instruccin distribuir operaciones de matriz entre un nmero de 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 condicin de entrada de rengln cambia de falsa a verdadera Incremental Seleccione este modo Todos

Numrico

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 mltiples escanes el rengln es falso al concluir 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 el valor .POS

borra los bits de estado 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

escn de la instruccin operacin concluida

40014

borra los bits de estado 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 archivo (FAL)


Operandos:

La instruccin FAL realiza operaciones de copia, aritmticas, lgicas y funciones en los datos almacenados en una matriz.

Lgica de escalera de rels


Operando Control Length Position Tipo CONTROL DINT DINT Formato tag inmediato inmediato Descripcin estructura de control para la operacin nmero de elementos en la matriz que se manipularn 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 INT DINT REAL Expression SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensin de signo. inmediato tag una expresin que consiste en tags y/o valores inmediatos separados por operadores tag tag para almacenar el resultado

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 .EN .DN .ER Tipo de datos BOOL BOOL BOOL Descripcin El bit de habilitacin indica que la instruccin FAL est habilitada. El bit de efectuado se establece cuando la instruccin ha efectuado la operacin en el ltimo elemento (.POS = .LEN). 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. La longitud especifica el nmero de elementos de la matriz sobre el que opera la instruccin FAL. La posicin contiene la posicin del elemento actual al cual la instruccin obtiene acceso.

.LEN .POS

DINT DINT

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 el subndice est fuera de rango .POS < 0 o .LEN < 0 Tipo de fallo 4 4 Cdigo de fallo 20 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 preescn condicin de entrada de rengln es falsa Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa.

examine el bit .DN

Bit .DN = 0

modo INC s el bit .EN se borra

no

se borra el bit interno

bit .DN = 1 el bit .EN se borra el bit .ER se borra el bit .DN se borra el valor .POS se borra

modo ALL s

no

.LEN < 0 o .POS < 0 no

fallo mayor

.POS = .POS + 1

.LEN = 0 no

.POS = 0 no .POS = .POS - 1

s no

.POS < .LEN s

.LEN > modo el bit .DN se establece el bit .EN se establece s el bit .DN se establece el bit .EN se borra modo numrico

no

modo = .LEN

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 condicin de entrada de rengln es verdadera

Accin de lgica de escalera de rels

.LEN < 0 o .POS < 0 examinar el bit .ER Bit .ER = 0 no bit .DN = 0 examinar el bit .DN bit .DN = 1 .LEN = 0 s

pgina 341
fallo mayor modo numrico no

bit .ER = 1

no

modo INC s

no modo ALL s

el bit .DN se establece el bit .EN se establece

modo INC

modo ALL

comn

pgina 339

pgina 340

loop_count = loop_count - 1

loop_count < 0 s

no

.POS = .POS + 1

evaluar la expresin

examinar S:V s .POS = .POS + 1

no

el bit .ER se establece

.POS = .LEN s

no

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
modo INC

Accin de lgica de escalera de rels

bit .EN = 1 examinar el bit .EN bit .EN = 0

examinar el bit interno bit = 0

bit = 1 .POS = .POS + 1

el bit interno se establece

.POS .LEN no el bit .EN se establece loop_count = 1 .POS = .POS - 1

.POS = 0 no .POS = .POS - 1

el bit .DN se establece el bit .EN se establece la condicin de salida de rengln se establece como verdadera

comn

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
modo ALL

Accin de lgica de escalera de rels

examinar el bit .EN bit .EN = 1

bit .EN = 0

examinar el bit interno bit = 0

bit = 1

.POS = .POS + 1

el bit .EN se establece

.POS .LEN no

.POS = 0 no .POS = .POS - 1

loop_count = .LEN - .POS .POS = .POS - 1

el bit .DN se establece el bit .EN se establece comn

la condicin de salida de rengln se establece como 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
modo numrico

Accin de lgica de escalera de rels

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

.POS .LEN no

.POS = 0 no .POS = .POS - 1

modo = .LEN

no

.LEN modo s el bit .EN se establece loop_count = .LEN - .POS .POS = .POS - 1 el bit .DN se establece el bit .EN se establece la condicin de salida de rengln se establece como verdadera

fin

modo loop_count no el bit .EN se establece loop_count = modo

comn

pgina 338

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: array_2[control_2.pos]

Destino: 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: value_1

Destino: 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: array_1[control_1.pos]

Destino: 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: value_1 + value_2

Destino: 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: array_2[control_2.pos] / array_3[control_2.pos]

Destino: 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: array_1[control_1.pos] + value_1

Destino: 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: value_1 + array_1[control_1.pos]

Destino: 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: array_1[control_1.pos] * array_3[control_1.pos]

Destino: 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 + * / ** ABS ACS AND ASN ATN COS DEG FRD LN Descripcin sumar restar/cambiar signo multiplicar dividir exponente (x a la y) valor absoluto arco coseno Y a nivel de bits arco seno arco tangente coseno radianes a grados BCD a entero logaritmo natural ptimo DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL REAL DINT REAL REAL REAL DINT, REAL DINT REAL OR RAD SIN SQR TAN TOD TRN XOR Operador LOG MOD NOT Descripcin logaritmo base 10 mdulo de divisin complemento a nivel de bits O a nivel de bits grados a radianes seno raz cuadrada tangente entero a BCD truncar O exclusivo a nivel de bits ptimo REAL DINT, REAL DINT DINT DINT, REAL REAL DINT, REAL REAL DINT DINT, REAL DINT

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 que operan en un operando dos operandos Use este formato operador(operando) operando_a operador operando_b Ejemplos ABS(tag_a) 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 1. 2. 3. 4. 5. 6. 7. 8. 9. Operacin () ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG, RAD, SIN, SQR, TAN, TOD, TRN ** (cambiar signo), NOT *, /, MOD (restar), + AND XOR 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 de archivos (FSC)


Operandos:

La instruccin FSC compara los valores en una matriz, elemento por elemento.

Lgica de escalera de rels


Operando Control Length Position Tipo CONTROL DINT DINT Formato tag inmediato inmediato Descripcin estructura de control para la operacin nmero de elementos en la matriz que se manipularn offset en la matriz el valor inicial es tpicamente 0

Estructura CONTROL
Mnemnico .EN .DN .ER .IN .FD .LEN .POS Tipo de datos BOOL BOOL BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin indica que la instruccin FSC est habilitada. El bit de efectuado se establece cuando la instruccin ha efectuado la operacin en el ltimo elemento (.POS = .LEN). El bit de error no se modifica. 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. El bit de encontrado indica que la instruccin FSC ha detectado una comparacin verdadera. La longitud especifica el nmero de elementos en la matriz sobre el que opera la instruccin. 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 .POS < 0 o .LEN < 0 Tipo de fallo 4 Cdigo de fallo 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 preescn condicin de entrada de rengln es falsa Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa.

examinar el bit .DN

bit .DN = 0

modo INC s el bit .EN se borra

no

se borra el bit interno

bit .DN = 1 el bit .EN se borra el bit .ER se borra el bit .DN se borra el valor .POS se borra

modo ALL s

no

.LEN < 0 o .POS < 0 no

fallo mayor

.POS = .POS + 1

.LEN = 0 no

.POS = 0 no .POS = .POS - 1

s no

.POS < .LEN s

.LEN > modo el bit .DN se establece el bit .EN se establece s el bit .DN se establece el bit .EN se borra modo numrico la condicin de salida de rengln se establece como falsa

no

modo = .LEN

pgina 341

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 condicin de entrada de rengln es verdadera

Accin de lgica de escalera de rels


s

.LEN < 0 o .POS < 0 examinar el bit .ER bit .ER = 1 examinar el bit .IN bit .IN = 0 bit .ER = 0 no bit .DN = 0 .LEN = 0 s

pgina 341
fallo mayor modo numrico no

no

modo INC s

no modo ALL s

bit .DN = 1

el bit .DN se establece el bit .EN se establece bit .DN = 1 examinar el bit .DN comn bit .DN = 0

modo INC

modo ALL

pgina 339

pgina 340

loop_count = loop_count - 1

loop_count < 0 s

no

.POS = .POS + 1

evale la comparacin

coincidencia s .POS = .POS + 1

no

el bit .EN se establece el bit .FD se establece el bit .IN se establece

.POS = .LEN s el bit .DN se establece el bit .EN se establece

no

.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 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000001111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111

array_2 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 11111111111111110000000000000000 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111

control_3.pos 0 1 2 3 4 5 6 7 8 9 La instruccin FSC determina que estos elementos son diferentes. La instruccin establece los bits .FD e .IN. El valor .POS (4) indica la posicin de los elementos que son diferentes. Para continuar comparando el resto de la matriz, borre el bit .IN.

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 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000

control_3.pos 0 1 2 3 4 5 6 7 8 9 La instruccin FSC determina que este elemento de matriz es igual a MySearchKey. La instruccin establece los bits .FD e .IN. El valor .POS (4) indica la posicin de los elementos que son iguales. Para continuar comparando el resto de la matriz, borre el bit .IN.

11111111111111110000000000000000

11111111111111110000000000000000 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111

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 AFG BEH HUO SAK

code_table_search.POS 0 1 2 3 4 5 6 7 8 9 La instruccin FSC determina que este elemento de la matriz es igual a code. La instruccin establece los bits .FD e .IN. El valor .POS (4) indica la posicin de los elementos que son iguales. Para continuar comparando el resto de la matriz, borre el bit .IN.

SAM

SAM FQG CLE CAK DET BWG

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 + * / = < <= > >= <> ** ABS ACS AND ASN ATN COS Descripcin sumar restar/cambiar signo multiplicar dividir igual que menor que menor o igual que mayor que mayor o igual que diferente de exponente (x a la y) valor absoluto arco coseno Y a nivel de bits arco seno arco tangente coseno ptimo DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL REAL DINT REAL REAL REAL OR RAD SIN SQR TAN TOD TRN XOR Operador DEG FRD LN LOG MOD NOT Descripcin radianes a grados BCD a entero logaritmo natural logaritmo base 10 mdulo de divisin complemento a nivel de bits O a nivel de bits grados a radianes seno raz cuadrada tangente entero a BCD truncar O exclusivo a nivel de bits ptimo DINT, REAL DINT REAL REAL DINT, REAL DINT DINT DINT, REAL REAL DINT, REAL REAL DINT DINT, REAL DINT

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 que operan en un operando dos operandos Use este formato operador(operando) operando_a operador operando_b Ejemplos ABS(tag_a) 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 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Operacin () ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG, RAD, SIN, SQR, TAN, TOD, TRN ** (cambiar signo), NOT *, /, MOD <, <=, >, >=, = (restar), + AND XOR 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 1ab
m e n o r m a y o r

Cdigos hexadecimales $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B

1b A AB B a ab

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) Copiar archivo sncrono (CPS)


Operandos:

Las instrucciones COP y CPS copian el o los valores de Source en Destination. Source no cambia.

Lgica de escalera de rels


Operando Source Tipo SINT INT DINT REAL cadena estructura Destination SINT INT DINT REAL cadena estructura Length DINT inmediato tag nmero de elementos de destino que se copian Importante: Los operandos Source y Destination deben ser del mismo tipo; de lo contrario, pueden ocurrir resultados inesperados. tag el elemento inicial que va a ser sobrescrito por Source Formato tag Descripcin elemento inicial que se copia Importante: Los operandos Source y Destination deben ser del mismo tipo; de lo contrario, pueden ocurrir resultados inesperados.

Texto estructurado
COP(Source,Dest,Length); CPS(Source,Dest,Length);

Los operandos son iguales que los de las instrucciones COP y CPS de 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 tag producido tag consumido datos de E/S datos que otra tarea puede sobrescribir Y usted desea evitar que los datos cambien durante la operacin de copia Entonces seleccione CPS Notas Las tareas que intentan interrumpir una instruccin CPS se suspenden hasta que haya finalizado la instruccin. Para calcular el tiempo de ejecucin de la instruccin CPS, consulte el documento ControlLogix System User Manual, publicacin 1756-UM001. permitir que los datos cambien durante la operacin de copia ninguno de los anteriores COP 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 definido por el usuario Si Length es demasiado grande, la instruccin se detiene al 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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels Accin de texto estructurado

La condicin de salida de rengln se establece como Ninguna. falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. n. a. n. a.

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 de matriz de destino no

end_address = fin de matriz de destino

source_address = Source

destination_address = 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 falsa.

Ninguna.

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] Seguidamente la instruccin copia los valores de timer[1] a timer[2] Seguidamente la instruccin copia los valores de timer[2] a timer[3] Seguidamente la instruccin copia los valores de timer[3] a timer[4]

array_timer[1]

array_timer[2]

array_timer[3]

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)


Operandos:

La instruccin FLL llena los elementos de una matriz con el valor de Source. Source no cambia.

Lgica de escalera de rels


Operando Source Tipo SINT INT DINT REAL Destination SINT INT DINT REAL estructura Length DINT inmediato Importante: Los operandos Source y Destination deben ser del mismo tipo; de lo contrario, pueden ocurrir resultados inesperados El mtodo preferido para inicializar una estructura es mediante la instruccin COP. nmero de elementos que se llenan tag elemento inicial que va a ser sobrescrito por Source Formato: inmediato tag Descripcin elemento que se copia Importante: Los operandos Source y Destination deben ser del mismo tipo; de lo contrario. pueden ocurrir resultados inesperados

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) 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

IMPORTANTE

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 definido por el usuario Si Length es demasiado grande, la instruccin se detiene al 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 SINT, INT, DINT o REAL SINT, INT, DINT o REAL SINT, INT, DINT o REAL SINT, INT, DINT o REAL SINT INT DINT REAL Y Destination es SINT INT DINT REAL estructura estructura estructura estructura Source se convierte en SINT INT DINT REAL SINT (no se convierte) INT (no se convierte) DINT (no se convierte) 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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera
end_address = start_address + (Length nmero de bytes en un elemento de destino)

Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa.

end_address > fin de una matriz de destino no

end_address = fin de una matriz de destino

source_address = Source

destination_address = end_address

no

copiar los datos en source_address a destination _address

destination_address = destination_address + 1

la condicin de salida de rengln se establece como verdadera

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 Source (value_1)

Valor de Source (value_1)

Tipo de datos de Destination (dest_1) DINT SINT REAL INT TIMER

Valor de Destination (dest_1) despus de FLL 16#FFFF FF80 (-128) 16#78 1.0 16#0002 16#0101 0101 16#0101 0101 16#0101 0101

SINT DINT SINT REAL SINT

16#80 (-128) 16#1234 5678 16#01 2.0 16#01

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)


Operandos:

La instruccin AVE calcula el promedio de un conjunto de valores.

Lgica de escalera de rels


Operando Array Tipo SINT INT DINT REAL Dimension to vary DINT inmediato (0, 1, 2) especificar el primer elemento del grupo de elementos que se va a promediar no usar CONTROL.POS en el subndice qu dimensin usar 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 INT DINT REAL Control Length Position CONTROL DINT DINT tag inmediato inmediato estructura de control para la operacin nmero de elementos de la matriz que se va a promediar elemento actual en la matriz el valor inicial es tpicamente 0 tag resultado de la operacin Formato tag de matriz Descripcin hallar el promedio de los valores en esta matriz

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 .EN .DN .ER Tipo de datos BOOL BOOL BOOL Descripcin El bit de habilitacin indica que la instruccin AVE est habilitada. El bit de efectuado se establece cuando la instruccin ha realizado una operacin en el ltimo elemento de la matriz (.POS = .LEN). 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. La longitud especifica el nmero de elementos en la matriz sobre el que opera la instruccin. La posicin contiene la posicin del elemento actual al cual la instruccin obtiene acceso.

.LEN .POS

DINT DINT

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 .POS < 0 o .LEN < 0 Dimension to vary no existe en la matriz especificada Tipo de fallo 4 4 Cdigo de fallo 21 20

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 preescn Accin de lgica de escalera de rels 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

examinar el bit .DN

bit .DN = 0

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].


dimensin 1 0 20 15 10 5 1 19 14 9 4 2 18 13 8 3 3 17 12 7 2 4 16 11 6 1
s ice

su d bn

0 dimensin 0 1 2 3

+ 14 + 9 + 4 AVE = 19 ------------------------------------ = 46 ----- = 11.5 4 4


dint_ave = 12

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].


dimensin 1 0 20 15 10 5 1 19 14 9 4 2 18 13 8 3 3 17 12 7 2 4 16 11 6 1
ice s

b su nd

0 dimensin 0 1 2 3

+4+3+2+1 AVE = 5 --------------------------------------- = 15 ----- = 3 5 5


dint_ave = 3

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 (SRT)


Operandos:

La instruccin SRT clasifica un conjunto de valores en una dimensin (Dim to vary) de la matriz en orden ascendente.

Lgica de escalera de rels


Operando Array Tipo SINT INT DINT no use CONTROL.POS en el subndice REAL Dimension to vary DINT inmediato (0, 1, 2) qu dimensin usar segn el nmero de dimensiones, el orden es: array[dim_0,dim_1,dim_2] array[dim_0,dim_1] array[dim_0] Control Length Position CONTROL DINT DINT tag inmediato inmediato estructura de control para la operacin nmero de elementos en la matriz que se clasifica elemento actual en la matriz el valor inicial es tpicamente 0 Formato tag de matriz Descripcin matriz que se clasifica especificar el primer elemento del grupo de elementos que se clasifica

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 .EN .DN .ER .LEN .POS Tipo de datos BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin indica que la instruccin SRT est habilitada. Se establece el bit de efectuado cuando los elementos especificados se han clasificado. Se establece el bit de error cuando .LEN < 0 o .POS < 0. Cualquiera de estas condiciones tambin genera un fallo mayor. La longitud especifica el nmero de elementos en la matriz en que la instruccin realiza una operacin. 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 .POS < 0 o .LEN < 0 La dimensin que se va a variar no existe para la matriz especificada Tipo de fallo 4 4 Cdigo de fallo 21 20 20

La instruccin intenta obtener acceso a los 4 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 preescn Accin de lgica de escalera de rels 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
examinar el bit .DN bit .DN = 0

Accin de texto estructurado El bit .EN se borra. El bit .DN se borra. El bit .ER se borra.

n. a.

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 se ejecuta. La condicin de salida de rengln se establece como verdadera.

n. a.

EnableIn se establece

n. a.

EnableIn siempre se establece. La instruccin se ejecuta.

ejecucin de la instruccin post-escn

La instruccin clasifica los elementos especificados en la matriz en orden ascendente. La condicin de salida de rengln se establece como falsa.

La instruccin clasifica los elementos especificados en la matriz en orden ascendente. Ninguna.

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
dimensin 1 0 20 15 10 5 1 19 14 9 4 2 18 13 8 3 3 17 12 7 2 4 16 11 6 1 dimensin 0
s ic e su d bn

Despus
dimensin 1 0 20 15 10 5 1 19 14 9 4 3 8 13 18 2 3 17 12 7 2 4 16 11 6 1
bn su es dic

0 dimensin 0 1 2 3

0 1 2 3

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
dimensin 1 0 20 15 10 5 1 19 14 9 4 2 18 13 8 3 3 17 12 7 2 4 16 11 6 1 dimensin 0
ice s b su nd

Despus
dimensin 1 0 20 15 6 5 1 19 14 7 4 2 18 13 8 3 3 17 12 9 2 4 16 11 10 1
e dic s su bn

0 dimensin 0 1 2 3

0 1 2 3

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 archivo (STD)


Operandos:

La instruccin STD calcula la desviacin estndar de un conjunto de valores en una dimensin de la matriz y almacena el resultado en Destination.

Lgica de escalera de rels


Operando Array Tipo SINT INT DINT REAL no use CONTROL.POS en el subndice Un tag SINT o INT se convierte en un valor DINT mediante extensin de signo. Dimension to vary DINT inmediato (0, 1, 2) qu dimensin usar segn el nmero de dimensiones, el orden es: array[dim_0,dim_1,dim_2] array[dim_0,dim_1] array[dim_0] Destination Control Length Position REAL CONTROL DINT DINT tag tag inmediato inmediato resultado de la operacin estructura de control para la operacin el nmero de elementos de la matriz que se usa para calcular el desviacin estndar elemento actual en la matriz el valor inicial es tpicamente 0 especificar el primer elemento del grupo de elementos que se usan para calcular la desviacin estndar Formato tag de matriz Descripcin hallar la desviacin estndar de los valores en esta matriz

Estructura CONTROL
Mnemnico .EN .DN .ER Tipo de datos BOOL BOOL BOOL Descripcin El bit de habilitacin indica que la instruccin STD est habilitada. Se establece el bit de efectuado cuando se completa el clculo. 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. La longitud especifica el nmero de elementos de la matriz sobre el que opera la instruccin. La posicin contiene la posicin del elemento actual al cual la instruccin obtiene acceso.

.LEN .POS

DINT DINT

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 ) i = 1 ------------------------------------------------------------------(N 1)

Desviacin estndar =

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 =

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 .POS < 0 o .LEN < 0 La dimensin que se va a variar no existe en la matriz especificada Tipo de fallo 4 4 Cdigo de fallo 21 20

Ejecucin:
Condicin preescn Accin de lgica de escalera de rels 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

examinar el bit .DN

bit .DN = 0

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 di c bn es

0 20 15 10 5

1 19 14 9 4

2 18 13 8 3

3 17 12 7 2

4 16 11 6 1

0 dimensin 0 1 2 3

+ 11 + 6 + 1 AVE = 16 ------------------------------------ = 34 ----- = 8.5 4 4


2 2 2 2

STD =

16 8.5 + 11 8.5 + 6 8.5 + 1 8.5 - = 6.454972 ------------------------------------------------------------------------------------------------------------------------- 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
bn su es dic

0 20 15 10 5

1 19 14 9 4

2 18 13 8 3

3 17 12 7 2

4 16 11 6 1

0 dimensin 0 1 2 3

+ 19 + 18 + 17 + 16 AVE = 20 ------------------------------------------------------ = 90 ----- = 18 5 5


2 2 2 2

STD =

20 18 + 19 18 + 18 18 + 17 18 + 16 18 - = 1.581139 ---------------------------------------------------------------------------------------------------------------------------------------------------------- 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 (SIZE)


Operandos:

La instruccin SIZE encuentra el tamao de una dimensin de una matriz.

Lgica de escalera de rels


Operando Source Tipo SINT INT DINT REAL estructura cadena Dimension to Vary DINT inmediato (0, 1, 2) dimensin que se va a usar: Para el tamao de primera dimensin segunda dimensin tercera dimensin Size SINT INT DINT REAL tag Introduzca 0 1 2 Formato tag de matriz Descripcin la matriz en la cual la instruccin realizar la operacin

tag para guardar el nmero de elementos en la dimensin especificada de la matriz.

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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels Accin de texto estructurado

La condicin de salida de rengln se establece como Ninguna. falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. n. a. n. a.

EnableIn se establece

n .a.

EnableIn siempre se establece. La instruccin se ejecuta.

ejecucin de la instruccin post-escn

La instruccin encuentra el tamao de una dimensin. La condicin de salida de rengln se establece como falsa.

La instruccin encuentra el tamao de una dimensin. Ninguna.

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 en elementos Size in Elements Source array_a[0] Source array_a[0] 255 255 Dim. to Vary Dim. To Vary 00 Tamao array_a_size Size array_a_size 10 10

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 elementos Size in en Elements Source string_1.DATA[0] Source string_1.DATA[0] $00 '$00' Dim. Vary 0 Dim.to To Vary 0 Tamao string_1_size 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 elementos Size inen Elements Source strings_a[0].DATA[0] Source strings_a[0].DATA[0] $00 '$00' Dim. toTo Vary Dim. Vary 00 Tamao data_size_a Size data_size_a 24 24

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

Instrucciones de matriz (archivo)/desplazamiento


(BSL, BSR, FFL, FFU, LFL, LFU)

Introduccin
Si desea Cargar bits, desplazar bits y descargar bits de una matriz de bits, bit por bit.

Use las instrucciones de matriz (archivo)/desplazamiento para modificar la ubicacin de datos dentro de matrices.
Use esta instruccin BSL BSR FFL FFU LFL LFU Disponible en estos lenguajes lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels Vea la pgina 386 390 394 400 406 412

Cargar y descargar valores en el mismo orden. Cargar y descargar valores en el orden invertido.

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 izquierda (BSL)


Operandos:

La instruccin BSL desplaza los bits especificados dentro de la matriz una posicin hacia la izquierda.

Lgica de escalera de rels


Operando Array Tipo DINT Formato tag de matriz Descripcin matriz que se modifica especificar el primer elemento del grupo de elementos no usar CONTROL.POS en el subndice Control Source bit Length CONTROL BOOL DINT tag tag inmediato estructura de control para la operacin bit que se desplaza nmero de bits en la matriz que se desplazan

Estructura CONTROL
Mnemnico .EN .DN .UL .ER .LEN Tipo de datos BOOL BOOL BOOL BOOL DINT Descripcin El bit de habilitacin indica que la instruccin BSL est habilitada. Se establece el bit de efectuado para indicar que los bits se han desplazado una posicin hacia la izquierda. 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. Se establece el bit de error cuando .LEN < 0. 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. 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.

IMPORTANTE

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: preescn Accin de lgica de escalera de rels 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

examinar el bit .EN

bit .EN = 1

bit .EN = 0 el bit .EN se establece

.LEN = 0

el bit .DN se establece

no examinar el bit de origen el bit .ER se establece .source bit = 0 no el bit .UL se establece. desplazar matriz izquierda una posicin a la izquierda bit .UL matriz bit de origen .source bit = 1 el bit .UL permanece establecido.

.LEN < 0

el bit .DN se establece .POS = .LEN

la condicin de salida de rengln se establece como verdadera

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 0 bit .UL estos bits se desplazan a la izquierda 9 8 7 6 5 4 3 2 1 0 array_dint[0] despus del desplazamiento 0 1 1 1 1 0 0 0 0 1

1 input_1

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

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 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

31 array_dint[1]

0 bit .UL

estos bits se desplazan a la izquierda

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 derecha (BSR)


Operandos:

La instruccin BSR desplaza los bits especificados dentro de la matriz una posicin hacia la derecha.

Lgica de escalera de rels


Operando Array Tipo DINT Formato tag de matriz Descripcin matriz que se modifica especificar el elemento a partir del cual se inicia el desplazamiento no usar CONTROL.POS en el subndice Control Source bit Length CONTROL BOOL DINT tag tag inmediato estructura de control para la operacin bit que se desplaza nmero de bits en la matriz que se desplazan

Estructura CONTROL
Mnemnico .EN .DN .UL .ER .LEN Tipo de datos BOOL BOOL BOOL BOOL DINT Descripcin El bit de habilitacin indica que la instruccin BSR est habilitada. Se establece el bit de efectuado para indicar que los bits se han desplazado una posicin hacia la derecha. 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. Se establece el bit de error cuando .LEN < 0. 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. 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.

IMPORTANTE

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 preescn Accin de lgica de escalera de rels 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

examinar el bit .EN

bit .EN = 1

bit .EN = 0 el bit .EN se establece

.LEN = 0

el bit .DN se establece

no examinar el bit de origen el bit .ER se establece .source bit = 0 no el bit .UL se establece desplazar matriz izquierda una posicin hacia la izquierda bit de origen matriz bit .UL .source bit = 1 el bit .UL permanece establecido.

.LEN < 0

el bit .DN se establece .POS = .LEN

la condicin de salida de rengln se establece como verdadera

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 1 input_1 estos bits se desplazan a la derecha 9 8 7 6 5 4 3 2 1 0 array_dint[0] despus del desplazamiento 1 0 0 1 1 1 1 0 0 0

0 bit .UL

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

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 bit .UL 31 array_dint[1] 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

estos bits se desplazan a la derecha

1 input_1

estos bits se desplazan a la derecha

Publicacin 1756-RM003K-ES-P Julio 2008

393

Captulo 9

Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU)

Carga FIFO (FFL)


Operandos:

La instruccin FFL copia el valor de Source a la FIFO.

Lgica de escalera de rels


Operando Source Tipo SINT INT 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 INT DINT REAL cadena estructura Control CONTROL tag estructura de control para la operacin generalmente se usa el mismo CONTROL que el FFU asociado Length Position DINT DINT inmediato inmediato nmero mximo de elementos que la FIFO puede contener a la vez la prxima ubicacin en la FIFO donde la instruccin carga datos el valor inicial es tpicamente 0 tag de matriz FIFO que se modifica especificar el primer elemento de la FIFO no usar CONTROL.POS en el subndice Formato inmediato tag Descripcin datos que se almacenan en la FIFO

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 .EN .DN .EM .LEN .POS Tipo de datos BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin indica que la instruccin FFL est habilitada. 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. El bit de vaco indica que la FIFO est vaca. Si .LEN 0 o .POS < 0, los bits .EM y .DN se establecen. La longitud especifica el nmero mximo de elementos que la FIFO puede contener a la vez. 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. 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.

IMPORTANTE

Indicadores de estado aritmtico: no afectados Condiciones de fallo:


Ocurrir un fallo mayor si (elemento inicial + .POS) > tamao de la matriz FIFO Tipo de fallo 4 Cdigo de fallo 20

Publicacin 1756-RM003K-ES-P Julio 2008

395

Captulo 9

Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU)

Ejecucin:
Condicin preescn
se establece el bit .EN para evitar una carga falsa cuando se inicia el escn

Accin de lgica de escalera de rels

.LEN < 0

no

.POS < 0

no

el bit .EM se borra el bit .DN se borra

el bit .EM est establecido el bit .DN est establecido

.POS = 0

el bit .EM est establecido

no

.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 condicin de entrada de rengln es falsa

Accin de lgica de escalera de rels

el bit .EN se borra

.LEN < 0

no

.POS < 0

no

el bit .EM se borra el bit .DN se borra

el bit .EM est establecido el bit .DN est establecido

.POS = 0

el bit .EM est establecido

no

.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 condicin de entrada de rengln es verdadera

Accin de lgica de escalera de rels

examinar el bit .EN .EN = 1

.EN = 0

el bit .EN se establece

.LEN < 0 no

.LEN < 0 no

.POS < 0 no el bit .EM se borra el bit .DN se borra .POS = .POS + 1

.POS < 0 no el bit .EM se borra el bit .DN se borra

el bit .EM est establecido el bit .DN est establecido

el bit .EM est establecido el bit .DN est establecido .POS .LEN no s el bit .DN se establece

.POS = 0 no

el bit .EM est establecido .POS o s .LEN > tamao de la matriz no fallo mayor

.POS .LEN no

el bit .DN se establece s

.POS > .LEN no

.POS = .POS - 1

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 FIFO array_dint[0] 00000 11111 22222 33333 44444 array_dint[5] 00000 00000 00000 00000 00000 control_1.pos = 5 value_1 = 55555

despus de la carga FIFO 00000 11111 22222 33333 44444 55555 00000 00000 00000 00000 control_1.pos = 6

Publicacin 1756-RM003K-ES-P Julio 2008

399

Captulo 9

Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU)

Descarga FIFO (FFU)


Operandos:

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.

Lgica de escalera de rels


Operando FIFO Tipo SINT INT DINT REAL cadena estructura Destination SINT 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 Position DINT DINT inmediato inmediato nmero mximo de elementos que la FIFO puede contener a la vez La prxima ubicacin en la FIFO donde la instruccin descarga datos el valor inicial es tpicamente 0 tag valor que sale de la FIFO Formato tag de matriz Descripcin FIFO que se modifica especificar el primer elemento de la FIFO no usar CONTROL.POS en el subndice

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 .EU .DN .EM .LEN .POS Tipo de datos BOOL BOOL BOOL DINT DINT Descripcin 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. Se establece el bit de efectuado para indicar que la FIFO est llena (.POS = .LEN). El bit de vaco indica que la FIFO est vaca. Si .LEN 0 o .POS < 0, los bits .EM y .DN se establecen. La longitud especifica el nmero mximo de elementos en la FIFO. 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. 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.

IMPORTANTE

Indicadores de estado aritmtico: no afectados Condiciones de fallo:


Ocurrir un fallo mayor si Length > tamao de la matriz FIFO Tipo de fallo 4 Cdigo de fallo 20

Publicacin 1756-RM003K-ES-P Julio 2008

401

Captulo 9

Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU)

Ejecucin:
Condicin preescn Accin de lgica de escalera de rels

se establece el bit .EU para evitar una descarga falsa cuando se inicia el escn

.LEN < 0

no

.POS < 0

no

el bit .EM se borra el bit .DN se borra

el bit .EM est establecido el bit .DN est establecido

.POS = 0

el bit .EM est establecido

no

.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 condicin de entrada de rengln es falsa

Accin de lgica de escalera de rels

el bit .EU se borra

.LEN < 0

no

.POS < 0

no

el bit .EM se borra el bit .DN se borra

el bit .EM est establecido el bit .DN est establecido

.POS = 0

el bit .EM est establecido

no

.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 condicin de entrada de rengln es verdadera


.EU = 0

Accin de lgica de escalera de rels

examinar el bit .EU .EU = 1

el bit .EU est establecido

.LEN < 0 no

.LEN < 0 no

.POS < 0 no el bit .EM se borra el bit .DN se borra

.POS < 0 no el bit .EM se borra el bit .DN se borra

el bit .EM est establecido el bit .DN est establecido

el bit .EM est establecido el bit .DN est establecido

.LEN > tamao de la matriz no

fallo mayor

.POS = 0 no

el bit .EM est establecido

.POS 1 no

el bit .EM est establecido

.POS .LEN no

.POS < 1 el bit .DN se establece no .POS = .POS -1 Destination = FIFO[0] i=1

Destination = 0

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 FIFO array_dint[0] 00000 11111 22222 33333 44444 array_dint[5] 55555 00000 00000 00000 00000 control_1.pos = 6

despus de la descarga FIFO 11111 22222 33333 44444 55555 00000 00000 00000 00000 00000 control_1.pos = 5 value_2 = 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)


Operandos:

La instruccin LFL copia el valor de Source en la LIFO.

Lgica de escalera de rels


Operando Source Tipo SINT INT 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 INT DINT REAL cadena estructura Control CONTROL tag estructura de control para la operacin generalmente se usa el mismo CONTROL que el LFU asociado Length Position DINT DINT inmediato inmediato nmero mximo de elementos que la LIFO puede contener a la vez la siguiente ubicacin en la LIFO donde la instruccin carga datos el valor inicial es tpicamente 0 tag de matriz LIFO que se modifica especificar el primer elemento de la LIFO no usar CONTROL.POS en el subndice Formato inmediato tag Descripcin datos que se almacenan en la LIFO

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 .EN .DN .EM .LEN .POS Tipo de datos BOOL BOOL BOOL DINT DINT Descripcin: El bit de habilitacin indica que la instruccin LFL est habilitada. 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. El bit de vaco indica que la LIFO est vaca. Si .LEN 0 o .POS < 0, los bits .EM y .DN se establecen. La longitud especifica el nmero mximo de elementos que la LIFO puede contener a la vez. 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. 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.

IMPORTANTE

Indicadores de estado aritmtico: no afectados Condiciones de fallo:


Ocurrir un fallo mayor si (elemento inicial + .POS) > tamao de la matriz LIFO Tipo de fallo 4 Cdigo de fallo 20

Publicacin 1756-RM003K-ES-P Julio 2008

407

Captulo 9

Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU)

Ejecucin:
Condicin: preescn Accin de lgica de escalera de rels

se establece el bit .EN para evitar una carga falsa cuando se inicia el escn

.LEN < 0

no

.POS < 0

no

el bit .EM se borra el bit .DN se borra

el bit .EM est establecido el bit .DN est establecido

.POS = 0

el bit .EM est establecido

no

.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: condicin de entrada de rengln es falsa

Accin de lgica de escalera de rels

el bit .EN se borra

.LEN < 0

no

.POS < 0

no

el bit .EM se borra el bit .DN se borra

el bit .EM est establecido el bit .DN est establecido

.POS = 0

el bit .EM est establecido

no

.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: condicin de entrada de rengln es verdadera

Accin de lgica de escalera de rels

examinar el bit .EN .EN = 1

.EN = 0

el bit .EN se establece

.LEN < 0 no

.LEN < 0 no

.POS < 0 no el bit .EM se borra el bit .DN se borra .POS = .POS + 1

.POS < 0 no el bit .EM se borra el bit .DN se borra

el bit .EM est establecido el bit .DN est establecido

el bit .EM est establecido el bit .DN est establecido .POS .LEN no s el bit .DN se establece

.POS = 0 no

el bit .EM est establecido .POS o s .LEN > tamao de la matriz no fallo mayor

.POS .LEN no

el bit .DN se establece s

.POS > .LEN no

.POS = .POS - 1

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 LIFO array_dint[0] 00000 11111 22222 33333 44444 array_dint[5] 00000 00000 00000 00000 00000 control_1.pos = 5 value_1 = 55555

despus de la carga LIFO 00000 11111 22222 33333 44444 55555 00000 00000 00000 00000 control_1.pos = 6

Publicacin 1756-RM003K-ES-P Julio 2008

411

Captulo 9

Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU)

Descarga LIFO (LFU)


Operandos:

La instruccin LFU descarga el valor en .POS de la LIFO y almacena 0 en ese lugar.

Lgica de escalera de rels


Operando LIFO Tipo SINT INT DINT REAL cadena estructura Destination SINT 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 Position DINT DINT inmediato inmediato nmero mximo de elementos que la LIFO puede contener a la vez La prxima ubicacin en la LIFO donde la instruccin descarga datos el valor inicial es tpicamente 0 tag valor que sale de la LIFO Formato tag de matriz Descripcin LIFO que se modifica especificar el primer elemento de la LIFO no usar CONTROL.POS en el subndice

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 .EU .DN .EM .LEN .POS Tipo de datos: BOOL BOOL BOOL DINT DINT Descripcin 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. Se establece el bit de efectuado para indicar que la LIFO est llena (.POS = .LEN). El bit de vaco indica que la LIFO est vaca. Si .LEN 0 o .POS < 0, los bits .EM y .DN se establecen. La longitud especifica el nmero mximo de elementos que la LIFO puede contener a la vez. 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. 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.

IMPORTANTE

Indicadores de estado aritmtico: no afectados Condiciones de fallo:


Ocurrir un fallo mayor si Length > tamao de la matriz LIFO Tipo de fallo 4 Cdigo de fallo 20

Publicacin 1756-RM003K-ES-P Julio 2008

413

Captulo 9

Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU)

Ejecucin:
Condicin preescn Accin de lgica de escalera de rels:

se establece el bit .EU para evitar una descarga falsa cuando se inicia el escn.

.LEN < 0

no

.POS < 0

no

el bit .EM se borra el bit .DN se borra

el bit .EM est establecido el bit .DN est establecido

.POS = 0

el bit .EM est establecido

no

.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 condicin de entrada de rengln es falsa

Accin de lgica de escalera de rels:

el bit .EU se borra

.LEN < 0

no

.POS < 0

no

el bit .EM se borra el bit .DN se borra

el bit .EM est establecido el bit .DN est establecido

.POS = 0

el bit .EM est establecido

no

.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 condicin de entrada de rengln es verdadera


.EU = 0

Accin de lgica de escalera de rels:

examinar el bit .EU .EU = 1

el bit .EU est establecido

.LEN < 0 no

.LEN < 0 no

.POS < 0 no el bit .EM se borra el bit .DN se borra

.POS < 0 no el bit .EM se borra el bit .DN se borra

el bit .EM est establecido el bit .DN est establecido

el bit .EM est establecido el bit .DN est establecido

.POS 1 no

el bit .EM est establecido

.POS = 0 no

el bit .EM est establecido

.POS < 1 no

Destination = 0

.POS .LEN no

.POS > .LEN el bit .DN se establece no .POS = .POS -1

.POS = .LEN

.LEN > tamao de la matriz no

fallo mayor

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 LIFO array_dint[0] 00000 11111 22222 33333 44444 array_dint[5] 55555 00000 00000 00000 00000 control_1.pos = 6

despus de la descarga LIFO 00000 11111 22222 33333 44444 00000 00000 00000 00000 00000 control_1.pos = 5 value_2 = 55555

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
Si desea Detectar cundo ha concluido un paso Establecer condiciones de salida para el siguiente paso Cargar condiciones de referencia en matrices de secuenciador

No se toma ninguna accin. Las instrucciones de secuenciador monitorean operaciones uniformes y repetibles.
Use esta instruccin SQI SQO SQL Disponible en estos lenguajes lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels Vea la pgina 420 424 428

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 (SQI)


Operandos:

La instruccin SQI detecta cundo ha concluido un paso en una pareja de instrucciones de secuencia SQO/SQI.

Lgica de escalera de rels


Operando Array Tipo DINT Formato tag de matriz Descripcin matriz de secuenciador especifica el primer elemento de la matriz de secuenciador no use CONTROL.POS en el subndice Mask SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante la extensin con signo. Source SINT 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 Position DINT DINT inmediato inmediato nmero de elementos en la matriz (tabla de secuenciador) que se va a comparar posicin actual en la matriz el valor inicial es tpicamente 0 tag datos de entrada en la matriz de secuenciador tag inmediato qu bits se bloquean o se pasan

Estructura CONTROL
Mnemnico .ER .LEN .POS Tipo de datos BOOL DINT DINT Descripcin El bit de error se establece cuando .LEN 0, .POS < 0, o .POS > .LEN. La longitud especifica el nmero de pasos en la matriz de secuenciador. 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: 16# Descripcin 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: preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa.

.LEN 0 .POS < 0 o .POS > .LEN s el bit .ER se establece

no

el bit .ER se borra

no

Source enmascarada = Array[.POS] enmascarada s

la condicin de salida de rengln se establece como falsa

la condicin de salida de rengln se establece como 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 Source Mask Array

Ejemplo de valores (usando DINT mostrados en binario): xxxxxxxx xxxxxxxx xxxx0101 xxxx1010 00000000 00000000 00001111 00001111 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 (SQO)


Operandos:

La instruccin SQO establece condiciones de salida para el siguiente paso de una pareja de instrucciones SQO/SQI de secuencia.

Lgica de escalera de rels


Operando Array Tipo DINT Formato Descripcin

tag de matriz matriz de secuenciador especifica el primer elemento de la matriz de secuenciador no use CONTROL.POS en el subndice

Mask

SINT INT DINT

tag inmediato

qu bits se bloquean o se pasan

Un tag SINT o INT se convierte en un valor DINT mediante la extensin con signo. Destination Control DINT CONTROL tag tag datos de salida provenientes de la matriz de secuenciador 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 posicin actual en la matriz el valor inicial es tpicamente 0

Position

DINT

inmediato

Estructura CONTROL
Mnemnico .EN .DN .ER .LEN .POS Tipo de datos BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin indica que la instruccin SQO est habilitada. El bit de efectuado se establece cuando todos los elementos especificados se han transferido a Destination. El bit de error se establece cuando .LEN 0, .POS < 0, o .POS > .LEN. La longitud especifica el nmero de pasos en la matriz de secuenciador. 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 16# Descripcin 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 preescn Accin de lgica de escalera de rels 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 condicin de entrada de rengln es verdadera

Accin de lgica de escalera de rels

.LEN 0 o .POS < 0 s

no

examine el bit .EN .EN = 1

.EN = 0

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

.POS = .LEN

no

.POS .LEN

.POS = 1

s el bit .DN se establece

no .POS = .POS + 1

el valor .POS retorna al valor inicial no

ir a error

.POS = .LEN

el bit .DN se establece

no

.POS > .LEN

no

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 Array Mask Destination

Ejemplo de valores (usando INT mostrados en binario): xxxxxxxx xxxxxxxx xxxx0101 xxxx1010 00000000 00000000 00001111 00001111 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 (SQL)


Operandos:

La instruccin SQL carga condiciones de referencia en una matriz de secuenciador.

Lgica de escalera de rels


Operando Array Tipo DINT Formato Descripcin

tag de matriz matriz de secuenciador especifica el primer elemento de la matriz de secuenciador no use CONTROL.POS en el subndice

Source

SINT INT DINT

tag inmediato

datos de entrada que se van a cargar en la matriz de secuenciador

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 Position DINT DINT inmediato inmediato nmero de elementos en la matriz (tabla de secuenciador) que se va a cargar posicin actual en la matriz el valor inicial es tpicamente 0

Estructura CONTROL
Mnemnico .EN .DN .ER .LEN .POS Tipo de datos BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin indica que la instruccin SQL est habilitada. El bit de efectuado se establece cuando todos los elementos especificados se han cargado en la matriz. El bit de error se establece cuando .LEN 0, .POS < 0, o .POS > .LEN. La longitud especifica el nmero de pasos en la matriz de secuenciador. 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. 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.

IMPORTANTE

Indicadores de estado aritmtico: no afectados Condiciones de fallo:


Ocurrir un fallo mayor si Longitud > tamao de la matriz Tipo de fallo 4 Cdigo de fallo 20

Ejecucin:
Condicin preescn Accin de lgica de escalera de rels 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 condicin de entrada de rengln es verdadera

Accin de lgica de escalera de rels

.LEN 0 o .POS < 0 s

no

examine el bit .EN .EN = 1

.EN = 0

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

.POS = .LEN

no

.POS .LEN

.POS = 1

s el bit .DN se establece

no .POS = .POS + 1

el valor .POS retorna al valor inicial no

ir a error

.POS = .LEN

el bit .DN se establece

no

.POS > .LEN

no

s .LEN > tamao de la matriz no s

error

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 array_dint[0] 00000 11111 22222 33333 44444 array_dint[5] 00000 00000 00000 00000 00000 control_1.pos = 5 value_3 = 55555

despus de la carga 00000 11111 22222 33333 44444 55555 00000 00000 00000 00000 control_1.pos = 6

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
Si desea

Use las instrucciones de control de programa para cambiar el flujo de la lgica.


Use esta instruccin JMP LBL JSR SBR RET JXR TND MCR UID UIE AFI NOP EOT SFP SFR EVENT Disponible en estos lenguajes lgica de escalera de rels lgica de escalera de rels bloque de funciones texto estructurado lgica de escalera de rels lgica de escalera de rels texto estructurado lgica de escalera de rels lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado 462 464 460 452 454 454 456 457 458 447 450 Vea la pgina 434 436

Saltarse una seccin de lgica que no siempre necesita ejecutarse. Saltar a una rutina separada, pasar datos a la rutina, ejecutar la rutina y retornar resultados.

Saltar a una rutina externa (controlador SoftLogix5800 solamente) Marcar un fin temporal que detiene la ejecucin de la rutina. Inhabilitar todos los renglones en una seccin de lgica. Inhabilitar tareas de usuario. Habilitar tareas de usuario. Inhabilitar un rengln. Insertar un indicador de posicin en la lgica. Finalizar una transicin para un diagrama de funcin secuencial Poner en pausa un diagrama de funcin secuencial Restablecer un diagrama de funcin secuencial Activar la ejecucin de una tarea de evento

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) Etiqueta (LBL)


Operandos:

Las instrucciones JMP y LBL saltan porciones de la lgica de escalera.

Lgica de escalera de rels


Operando Nombre de etiqueta instruccin LBL Nombre de etiqueta nombre de etiqueta la ejecucin salta a la instruccin LBL con el nombre de etiqueta al cual se hizo referencia Tipo Formato nombre de etiqueta Descripcin introduzca un nombre para la instruccin LBL asociada

instruccin JMP

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. La lgica saltada no se escanea. Coloque la lgica crtica fuera de la zona saltada.

ATENCIN

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 la etiqueta no existe Tipo de fallo 4 Cdigo de fallo 42

Ejecucin:
Condicin: preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. 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) Subrutina (SBR) Retorno (RET)


Operandos de JSR:

La instruccin JSR salta la ejecucin a una rutina diferente. Las instrucciones SBR y RET son instrucciones opcionales que intercambian datos con la instruccin JSR.

Lgica de escalera de rels


Operando Nombre de la rutina Parmetro de entrada Tipo ROUTINE BOOL SINT INT DINT REAL estructura Parmetro de retorno BOOL SINT INT DINT REAL estructura tag tag de matriz el tag en esta rutina al cual desea copiar un resultado de la subrutina Los parmetros de retorno son opcionales. Introduzca mltiples parmetros de retorno, si es necesario. Formato nombre inmediato tag tag de matriz Descripcin rutina a ejecutar (es decir, subrutina) datos de esta rutina que desea copiar a un tag en la subrutina Los parmetros de entrada son opcionales. Introduzca mltiples parmetros de entrada, si es necesario.

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, InputPar,ReturnPar);

Operando Nombre de la rutina Conteo de entradas

Tipo ROUTINE SINT INT DINT REAL

Formato nombre inmediato

Descripcin rutina a ejecutar (es decir, subrutina) nmero de parmetros de entrada

Parmetro de entrada

BOOL SINT INT DINT REAL estructura

inmediato tag tag de matriz

datos de esta rutina que desea copiar a un tag en la subrutina Los parmetros de entrada son opcionales. Introduzca mltiples parmetros de entrada, si es necesario.

Parmetro de retorno

BOOL SINT INT DINT REAL estructura

tag tag de matriz

el tag en esta rutina al cual desea copiar un resultado de la subrutina Los parmetros de retorno son opcionales. Introduzca mltiples parmetros de retorno, si es necesario.

Bloque de funciones
Parmetros de entrada Parmetros de 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 Parmetro de entrada Tipo BOOL SINT INT DINT REAL estructura
SBR(InputPar);

Formato tag tag de matriz

Descripcin el tag en esta rutina al cual desea copiar el parmetro de entrada correspondiente proveniente de la instruccin JSR.

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 Parmetro de retorno Tipo BOOL SINT INT DINT REAL estructura
RET(ReturnPar);

Formato inmediato tag tag de matriz

Descripcin datos de esta rutina que usted desea copiar al parmetro de retorno correspondiente en la instruccin JSR.

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.


Rutina que origina la llamada Subrutina SBR 1. Si la instruccin JSR tiene un parmetro de entrada, introduzca una instruccin SBR. 2. Coloque la instruccin SBR como la primera instruccin en la rutina. 3. Para cada parmetro de entrada en la instruccin JSR, introduzca el tag en el cual desea copiar los datos.
42974

SBR JSR 1. Si desea copiar datos a un tag en la subrutina, introduzca un parmetro de entrada. 2. Si desea copiar un resultado de la subrutina a un tag en esta rutina, introduzca un parmetro de retorno. 3. Introduzca la cantidad necesaria de parmetros de entrada y retorno. RET JSR RET

RET

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 subrutina action_1 rutina principal action_1 JSR SBR action_2 JSR SBR action_3 JSR SBR nivel 2 subrutina action_2 nivel 3 subrutina action_3

RET

RET

RET

Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo:
Ocurrir un fallo mayor si la instruccin JSR tiene menos parmetros de entrada que la instruccin SBR la instruccin JSR salta a una rutina de fallo la instruccin RET tiene menos parmetros de retorno que la instruccin JSR la rutina principal contiene una instruccin RET Tipo de fallo 4 Cdigo de fallo 31

4 o proporcionado por 0 o proporcionado por el usuario el usuario 4 4 31 31

Ejecucin: Lgica de escalera de rels y texto estructurado


Condicin preescn Accin de lgica de escalera de rels Accin de texto estructurado

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 rengln es falsa para la instruccin JSR

La subrutina no se ejecuta. Las salidas en la subrutina permanecen en su ltimo estado. La condicin de salida de rengln se establece como falsa.

n. a.

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 condicin de entrada de rengln es verdadera

Accin de lgica de escalera de rels La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera.

Accin de texto estructurado n. a.

EnableIn se establece

n. a.

EnableIn siempre se establece. La instruccin se ejecuta.

ejecucin de la instruccin
parmetros de entrada no s JSR copia los parmetros de entrada en los tags SBR apropiados

la ejecucin de lgica comienza en la rutina identificada por JSR

s instruccin RET parmetros de retorno

RET copia los parmetros de retorno en los tags JSR apropiados

no

no

s fin de la subrutina

no la condicin de salida de rengln se establece como falsa continuar ejecutando la subrutina fin la condicin de salida de rengln se establece como verdadera la ejecucin de la lgica regresa a JSR

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: preescn primer escn de instruccin ejecucin normal Accin Ninguna. Ninguna. 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.

primera ejecucin de instruccin Ninguna.

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: Rutina principal Programa

Subrutina

[otros renglones de cdigo]

Texto estructurado
Rutina Rutina principal Subrutina Programa JSR(routine_1,2,value_1,value_2,float_value_1); 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 Add_Input_1, Add_Input_2 y Add_Input_3 se copian en Input_A, Input_B y Input_C, respectivamente.

3. El valor de Sum_A_B_C se copia en Add_Three_Result.

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)


Operandos:

La instruccin JXR ejecuta una rutina externa. Esta instruccin slo es compatible con los controladores SoftLogix5800.

Lgica de escalera de rels

.
Operando Nombre de rutina externa Tipo ROUTINE Formato nombre tag inmediato tag tag de matriz Descripcin rutina externa que se va a ejecutar estructura de control (ver la siguiente pgina) datos de esta rutina que desea copiar a una variable en la rutina externa Los parmetros son opcionales. Introduzca mltiples parmetros, si es necesario. Puede tener hasta 10 parmetros.

Control de rutina EXT_ROUTINE_ externa CONTROL Parmetro BOOL SINT INT DINT REAL estructura Parmetro de retorno BOOL SINT INT DINT REAL

tag

el tag en esta rutina al cual desea copiar un resultado de la rutina externa El parmetro de retorno es opcional Slo puede tener un parmetro de retorno

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 ErrorCode Tipo de datos SINT Descripcin Si ocurre un error, este valor identifica el error. Los valores vlidos son 0-255. Este valor indica el nmero de parmetros asociados con esta instruccin. Esta matriz contiene definiciones de los parmetros que se van a pasar a la rutina externa. La instruccin puede pasar hasta 10 parmetros. Este valor contiene definiciones del parmetro de retorno de la rutina externa. Slo hay un parmetro de retorno. Cuando se establece, el bit de habilitacin indica que la instruccin JXR est habilitada. Si se establece, este bit indica que se introdujo un parmetro de retorno para la instruccin. Si se borra, este bit indica que no se introdujo un parmetro de retorno para la instruccin. El bit de efectuado se establece cuando la rutina externa se ha ejecutado una vez hasta el final. Implementacin No hay cdigos de error predefinidos. El encargado del desarrollo de la rutina externa debe proporcionar los cdigos de error. Visualizacin solamente esta informacin proviene de la entrada de la instruccin. Visualizacin solamente esta informacin proviene de la entrada de la instruccin.

NumParams ParameterDefs

SINT EXT_ROUTINE_ PARAMETERS[10]

ReturnParamDef

EXT_ROUTIN_ PARAMETERS BOOL BOOL

Visualizacin solamente esta informacin proviene de la entrada de la instruccin. La rutina externa establece este bit. Visualizacin solamente esta informacin proviene de la entrada de la instruccin.

EN ReturnsValue

DN

BOOL

La rutina externa establece este bit.

ER

BOOL

La rutina externa establece este bit. El bit de error se establece si ocurre un error. La instruccin detiene la ejecucin hasta que el programa borra el bit de error. Este bit identifica si ste es el primer escn despus de que el controlador pas al modo de marcha. Use FirstScan para inicializar la rutina externa, si es necesario. Habilitacin de salida. Entrada de habilitacin. El controlador establece este bit para reflejar el estado de escn.

FirstScan

BOOL

EnableOut EnableIn

BOOL BOOL

La rutina externa establece este bit. 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. La rutina externa o el programa de usuario pueden establecer estos bits. El controlador establece estos bits para reflejar el estado de escn.

User1 User0 ScanType1 ScanType0

BOOL BOOL BOOL BOOL

Estos bits estn disponibles para el usuario. El controlador no inicializa estos bits. Estos bits identifican el tipo de escn actual: Valores de bit: Tipo de escn: 00 01 10 Normal Preescn 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 ocurre una excepcin en la rutina externa DLL el DLL no pudo cargarse el punto de entrada no se encontr en el DLL Tipo de fallo 4 Cdigo de fallo: 88

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)


Operandos:

La instruccin TND sirve como lmite.

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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels Accin de texto estructurado

La condicin de salida de rengln se establece como Ninguna. falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. n. a. n. a.

EnableIn se establece

n. a.

EnableIn siempre se establece. La instruccin se ejecuta.

ejecucin de la instruccin post-escn

Se termina la rutina actual.

Se termina la rutina actual.

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 control maestro (MCR)


Operandos:

La instruccin MCR, usada en parejas, crea una zona de programa que puede inhabilitar todos los renglones dentro de las instrucciones MCR.

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. 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.

ATENCIN

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 preescn condicin de entrada de rengln es falsa Accin de lgica de escalera de rels La condicin de salida de rengln se establece como 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 interrupcin de usuario (UID) Habilitacin de interrupci n de usuario (UIE)


Operandos:

La instruccin UID y la instruccin UIE funcionan juntas para evitar que otras tareas interrumpan una cantidad pequea de renglones crticos.

Lgica de escalera de rels


ninguno
UID(); UIE();

Texto estructurado
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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. 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 falsa. Ninguna. Accin de texto estructurado Ninguna. n. a. n. a.

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 Search/Compare File error_check Control error_check Control Length 10 Length Position 8 Position ALL Mode ALL Mode error_code=error_list[error_check.POS] Expression Expression error_code=error_list[error_check.POS]

EN EN DN ER ER

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 (AFI)


Operandos:

La instruccin AFI establece su condicin de salida de rengln como falsa.

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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera post-escn Accin de lgica de escalera de rels: La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. 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)


Operandos:

La instruccin NOP funciona como indicador de posicin

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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera post-escn Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como verdadera. 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)


Operandos:

La instruccin EOT retorna un estado booleano a una transicin SFC.

Lgica de escalera de rels


Operando bit de datos Tipo BOOL Formato tag Descripcin 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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels: Accin de texto estructurado:

La condicin de salida de rengln se establece como Ninguna. falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. n. a. n. a.

EnableIn se establece

n. a.

EnableIn siempre se establece. La instruccin se ejecuta.

ejecucin de la instruccin post-escn

La instruccin retorna el valor del bit de datos a la rutina que origin la llamada. 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)


Operandos:

La instruccin SFP pone en pausa una rutina SFC.

Lgica de escalera de rels


Operando SFCRoutine Name TargetState Tipo: ROUTINE DINT Formato: nombre inmediato tag Descripcin: rutina SFC que se va a poner en pausa seleccione uno: 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: el tipo de rutina no es una rutina SFC Tipo de fallo 4 Cdigo de fallo 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: preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. 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 post-escn La instruccin pone en pausa o reanuda la ejecucin de la rutina SFC especificada. La condicin de salida de rengln se establece como falsa. Ninguna. Accin de texto estructurado Ninguna. n. a. n. a.

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)


Operandos:

La instruccin SFR restablece la ejecucin de una rutina SFC en un paso especificado.

Operandos de lgica de escalera de rels


Operando SFCRoutine Name Step Name Tipo ROUTINE SFC_STEP Formato nombre tag Descripcin rutina SFC que se va a restablecer 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: el tipo de rutina no es una rutina SFC el paso objetivo especificado no existe en la rutina SFC Tipo de fallo 4 4 Cdigo de fallo 85 89

Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. 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 post-escn La instruccin restablece la rutina SFC especificada. La instruccin restablece la rutina SFC especificada. La condicin de salida de rengln se establece como falsa. Ninguna. Accin de texto estructurado Ninguna. n. a. n. a.

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 (EVENT)


Operandos:

La instruccin EVENT activa una ejecucin de una tarea de evento.

Lgica de escalera de rels


Operando Tarea Tipo TASK Formato nombre Descripcin 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 Status Tipo de datos DINT Instruccin GSV SSV Descripcin 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. Para determinar si: Una instruccin EVENT activ la tarea (tarea de evento solamente). Al expirar un tiempo de espera se activ la tarea (tarea de evento solamente). Ocurri una superposicin para esta tarea. Examine este bit: 0 1 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: preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera EnableIn se establece ejecucin de la instruccin post-escn Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. n. a. EnableIn siempre se establece. La instruccin se ejecuta. La instruccin activa una ejecucin de la tarea de evento especificada La condicin de salida de rengln se establece como falsa. Ninguna. Accin de texto estructurado Ninguna. n. a. n. a.

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
Si desea Ejecutar repetidamente una rutina.

Use la instruccin FOR para llamar repetidamente una subrutina. Use la instruccin BRK para interrumpir la ejecucin de una subrutina.
Use esta instruccin Para obtener FOR...DO(1) Disponible en estos lenguajes lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels 474 473 Vea la pgina 470

Interrumpir la ejecucin repetida de una rutina.

BRK EXIT(1)

Retornar a la instruccin FOR.


(1)

RET

Texto estructurado solamente.

469Publicacin 1756-RM003K-ES-P Julio 2008

469

Captulo 12

Instrucciones For/Break (FOR, FOR...DO, BRK, EXIT, RET)

For (FOR)
Operandos:

La instruccin FOR ejecuta una rutina repetidamente.

Lgica de escalera de rels


Operando Routine name Index Initial value Tipo ROUTINE DINT SINT INT DINT Terminal value SINT INT DINT Step size SINT INT DINT inmediato tag cantidad que se aade al ndice cada vez que la instruccin FOR ejecuta la rutina inmediato tag valor en que se detiene la ejecucin de la rutina Formato Descripcin

nombre de la rutina que se ejecuta rutina tag inmediato tag cuenta cuntas veces la rutina se ha ejecutado valor en que se comienza el ndice

Texto estructurado
FOR count:= initial_value TO final_value BY increment DO <statement>; END_FOR;

Use la construccin FOR...DO. Consulte Apndice C, Programacin de texto estructurado para obtener informacin sobre construcciones de texto estructurado.

Descripcin:
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).

IMPORTANTE

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 la rutina principal contiene una instruccin RET Tipo de fallo 4 Cdigo de fallo 31

Ejecucin:
Condicin preescn Accin de lgica de escalera de rels 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 condicin de entrada de rengln es verdadera

Accin de lgica de escalera de rels

index = initial_value

no

tamao de paso < 0

s ir a fin no ndice valor terminal

s ndice valor terminal

no

ir a 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)
Operandos:

La instruccin BRK interrumpe la ejecucin de una rutina que fue llamada por una instruccin FOR.

Lgica de escalera de rels


ninguna
EXIT;

Texto estructurado
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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. 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)
Operandos:

La instruccin RET retorna a la instruccin FOR que origin la llamada.

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 la rutina principal contiene una instruccin RET Tipo de fallo 4 Cdigo de fallo 31

Ejecucin:
Condicin: preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. 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
Si desea Comparar datos con una buena referencia conocida y registrar las incongruencias. Comparar datos con una buena referencia conocida, registrar las incongruencias y actualizar la referencia para que sea igual al origen. Pasar los datos de origen a travs de una 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.

Las instrucciones especiales realizan operaciones especficas de la aplicacin.


Use esta instruccin FBC DDT Disponible en estos lenguajes: lgica de escalera de rels lgica de escalera de rels Vea la pgina 478 486

DTR

lgica de escalera de rels

494

PID

lgica de escalera de rels texto estructurado

497

477Publicacin 1756-RM003K-ES-P Julio 2008

477

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Comparacin de bits de archivo (FBC)


Operandos:

La instruccin FBC compara los bits en una matriz de origen con los bits en una matriz de referencia.

Lgica de escalera de rels


Operando Source Tipo DINT Formato Descripcin:

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 Length Position

CONTROL DINT DINT

estructura inmediato inmediato

estructura de control para la comparacin nmero de bits que se van a comparar posicin actual en el origen el valor inicial es tpicamente 0

Result control Length Position

CONTROL DINT DINT

estructura inmediato inmediato

estructura de control para los resultados nmero de ubicaciones de almacenamiento en el resultado 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: .EN .DN .FD Tipo de datos BOOL BOOL BOOL Descripcin: El bit de habilitacin indica que la instruccin FBC est habilitada. El bit de efectuado se establece cuando la instruccin FBC compara el ltimo bit en las matrices de origen y referencia. 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). 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. El valor de longitud identifica el nmero de bits que se van a comparar. El valor de posicin identifica el bit actual.

.IN

BOOL

.LEN .POS

DINT DINT

Estructura RESULT
Mnemnico .DN .LEN .POS Tipo de datos BOOL DINT DINT Descripcin El bit de efectuado se establece cuando la matriz resultado est llena. El valor de longitud identifica el nmero de ubicaciones de almacenamiento en la matriz resultado. 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. 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.

IMPORTANTE

Publicacin 1756-RM003K-ES-P Julio 2008

479

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Seleccin del modo de bsqueda


Si desea detectar Una incongruencia a la vez Seleccione este modo 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: result.POS > tamao de matriz resultado Tipo de fallo 4 Cdigo de fallo 20

480

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones especiales (FBC, DDT, DTR, PID)

Captulo 13

Ejecucin:
Condicin preescn
el bit compare.EN se borra el bit compare.FD se borra

Accin de lgica de escalera de rels

examine el bit compare.DN

compare.DN = 0

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 condicin de entrada de rengln es falsa


el bit compare.EN se borra el bit compare.FD se borra

Accin de lgica de escalera de rels

examine el bit compare.DN

compare.DN = 0

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
condicin de entrada de rengln es verdadera

Accin de lgica de escalera de rels

examine el bit compare.EN

compare.EN = 1

ir a la salida

compare.EN = 0 El bit compare.EN se establece examine el bit compare.DN compare.DN = 1 ir a la salida

compare.DN = 0 el bit compare.ER se borra el bit compare.FD se borra no s

compare.LEN 0

exit

compare.POS < 0

no la condicin de salida de rengln se establece como verdadera comparar fin

el bit compare.ER se establece

ir a la salida

pgina 484

Publicacin 1756-RM003K-ES-P Julio 2008

483

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Condicin
comparar

Accin de lgica de escalera de rels

compare.POS compare.LEN

compare.POS = compare.LEN el bit compare.DN se establece

ir a la salida

pgina 483
no result.DN = 1 source[compare.POS] = reference[compare.POS] no el bit compare.FD se establece examine el bit result.DN bit el bit result.DN se borra el valor result.POS se borra

s compare.POS = compare.POS + 1

result.DN = 0

s result.POS < 0

no

result.LEN 0

no

el bit compare.ER se establece

s fallo mayor

result.POS > tamao de matriz resultado no result[result.POS] = compare.POS result.POS = result.POS + 1

ir a la salida

pgina 483

no

result.POS > result.LEN

s 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 array_dint3

5 3

Publicacin 1756-RM003K-ES-P Julio 2008

485

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Deteccin de diagnstico (DDT)


Operandos:

La instruccin DDT compara los bits en una matriz de origen con los bits en una matriz de referencia para determinar cambios de estado.

Lgica de escalera de rels


Operando Source Tipo DINT Formato tag de matriz tag de matriz tag de matriz estructura inmediato inmediato Descripcin matriz que se va a comparar con la referencia no use CONTROL.POS en el subndice Reference DINT matriz que se va a comparar con el origen no use CONTROL.POS en el subndice Result DINT matriz para almacenar los resultados no use CONTROL.POS en el subndice Cmp control Length Position CONTROL DINT DINT estructura de control para la comparacin nmero de bits que se van a comparar posicin actual en el origen el valor inicial es tpicamente 0 Result control Length Position CONTROL DINT DINT estructura inmediato inmediato estructura de control para los resultados nmero de ubicaciones de almacenamiento en el resultado 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 .EN .DN .FD Tipo de datos BOOL BOOL BOOL Descripcin El bit de habilitacin indica que la instruccin DDT est habilitada. El bit de efectuado se establece cuando la instruccin DDT compara el ltimo bit en las matrices de origen y referencia. 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). 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. El valor de longitud identifica el nmero de bits que se van a comparar. El valor de posicin identifica el bit actual.

.IN

BOOL

.LEN .POS

DINT DINT

Estructura RESULT
Mnemnico .DN .LEN .POS Tipo de datos BOOL DINT DINT Descripcin El bit de efectuado se establece cuando la matriz resultado est llena. El valor de longitud identifica el nmero de ubicaciones de almacenamiento en la matriz resultado. 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. 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.

IMPORTANTE

Publicacin 1756-RM003K-ES-P Julio 2008

487

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Seleccin del modo de bsqueda


Si desea detectar Una incongruencia a la vez Seleccione este modo 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 20

result.POS > tamao de matriz resultado 4

488

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones especiales (FBC, DDT, DTR, PID)

Captulo 13

Ejecucin:
Condicin: preescn
el bit compare.EN se borra el bit compare.FD se borra

Accin de lgica de escalera de rels

examine el bit compare.DN

compare.DN = 0

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: condicin de entrada de rengln es falsa


el bit compare.EN se borra el bit compare.FD se borra

Accin de lgica de escalera de rels

examine el bit compare.DN

compare.DN = 0

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: condicin de entrada de rengln es verdadera

Accin de lgica de escalera de rels

examine el bit compare.EN

compare.EN = 1

ir a la salida

compare.EN = 0 El bit compare.EN se establece examine el bit compare.DN bit compare.DN = 1 ir a la salida

bit compare.DN = 0 el bit compare.ER se borra el bit compare.FD se borra s

compare.LEN 0

no

salida

compare.POS < 0

no la condicin de salida de rengln se establece como verdadera comparar fin

el bit compare.ER se establece

ir a la salida

pgina 492

Publicacin 1756-RM003K-ES-P Julio 2008

491

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Condicin:
comparar

Accin de lgica de escalera de rels

compare.POS compare.LEN

compare.POS = compare.LEN el bit compare.DN se establece

ir a la salida

pgina 491
no result.DN = 1 source[compare.POS] = reference[compare.POS] no compare.FD bit se establece reference[compare.POS] = source[compare.POS] examine el bit result.DN bit el bit result.DN se borra el valor result.POS se borra

s compare.POS = compare.POS + 1

result.DN = 0

s result.POS < 0

no

s result.LEN 0

no

el bit compare.ER se establece

s fallo mayor

result.POS > tamao de matriz resultado no result[result.POS] = compare.POS result.POS = result.POS + 1

ir a la salida

pgina 483

no

result.POS result.LEN

s 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 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 5 3

Publicacin 1756-RM003K-ES-P Julio 2008

493

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Transicin de datos (DTR)


Operandos:

La instruccin DTR pasa el valor de origen a travs de una mscara y compara el resultado con el valor de referencia.

Lgica de escalera de rels


Operando: Source Tipo DINT Formato inmediato tag Mask DINT inmediato tag Reference DINT tag matriz que se va a comparar con el origen. qu bits se bloquean o se pasan Descripcin matriz que se va a comparar con la referencia.

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. 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.

ATENCIN

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 16# Descripcin: 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 preescn Accin de lgica de escalera de rels 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 enmascarado = referencia

no

la referencia se establece igual que el origen enmascarado la condicin de salida de rengln se establece como verdadera

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 origen 7 1 8 3 value_1 mscara = 0FFF 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1

ejemplo 2

0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1

referencia escn actual escn previo 0 0 1 1 8 8 3 3 value_2 0 0 1 1 8 8 7 3 escn actual escn previo

El rengln permanece falso siempre que el valor de entrada no cambie.

El rengln permanece verdadero por un 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 derivativo (PID)


Operandos:

La instruccin PID controla una variable del proceso, tal como flujo, presin, temperatura o nivel.

Lgica de escalera de rels

Operando PID Process variable

Tipo PID SINT INT DINT REAL

Formato estructura tag

Descripcin estructura PID valor que desea controlar

Tieback

SINT INT DINT REAL

inmediato tag

(opcional) salida de una estacin manual/automtica que est pasando por alto la salida del controlador Introduzca 0 si no desea usar este parmetro.

Control variable

SINT INT DINT REAL

tag

valor que va al dispositivo de control final (vlvula, regulador, etc.) 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.

PID master loop

PID

estructura

(opcional) tag PID para el PID maestro 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 INT

tag

(opcional) valor de repeticin de lectura de datos desde un canal de salida analgica 1756 para permitir un reinicio sin problemas 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 Setpoint Process variable Output %

Tipo

Formato

Descripcin muestra el valor actual del punto de ajuste muestra el valor actual de la variable del proceso escalada muestra el valor de porcentaje de la salida actual

Texto estructurado
PID(PID,ProcessVariable, Tieback,ControlVariable, PIDMasterLoop,InholdBit, InHoldValue);

Los operandos son iguales que los de la instruccin PID de lgica de escalera de rels. Sin embargo, usted especifica Setpoint, Process Variable y Output % accediendo a los miembros .SP, .PV. y .OUT de la estructura PID, en lugar de incluir valores en la lista de operandos.

Estructura PID
Mnemnico: .CTL Tipo de datos DINT Descripcin 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 31 30 29 28 27 26 25 24 23 22 21 20 Este bit: 15 14 13 12 11 10 09 08 07 .SP .KP REAL REAL punto de ajuste independiente dependiente ganancia proporcional (sin unidades) ganancia de controlador (sin unidades) Es este miembro .EN .CT .CL .PVT .DOE .SWM .CA .MO .PE .NDF .NOBC .NOZC Es este miembro, que la instruccin PID establece .INI .SPOR .OLL .OLH .EWD .DVNA .DVPA .PVLA .PVHA

498

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones especiales (FBC, DDT, DTR, PID)

Captulo 13

Mnemnico: .KI .KD .BIAS .MAXS .MINS .DB .SO .MAXO .MINO .UPD .PV .ERR .OUT .PVH .PVL .DVP .DVN .PVDB .DVDB .MAXI .MINI .TIE .MAXCV .MINCV .MINTIE .MAXTIE

Tipo de datos REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL

Descripcin independiente dependiente independiente dependiente ganancia integral (1/segundo) tiempo de accin integral (minutos por repeticin) ganancia derivativa (segundos) tiempo de accin derivada (minutos)

% de ganancia anticipativa o polarizacin valor mximo de escalado de unidades de ingeniera valor mnimo de escalado de unidades de ingeniera unidades de ingeniera de banda muerta % salida establecida lmite mximo de salida (% de salida) lmite mnimo de salida (% de salida) tiempo de actualizacin del lazo (segundos) valor PV escalado valor de error escalado % de salida lmite de alarma alta de variable del proceso lmite de alarma baja de variable del proceso lmite de alarma de desviacin positiva lmite de alarma de desviacin negativa banda muerta de alarma de variable del proceso banda muerta de alarma de desviacin valor PV mximo (entrada no escalada) valor PV mnimo (entrada no escalada) valor retenido para control manual valor CV mximo (correspondiente a 100%) valor CV mnimo (correspondiente a 0%) valor retenido mnimo (correspondiente a 100%) valor retenido mximo (correspondiente a 0%)

Publicacin 1756-RM003K-ES-P Julio 2008

499

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Mnemnico: .DATA

Tipo de datos REAL[17]

Descripcin El miembro .DATA almacena: Elemento: .DATA[0] .DATA[1] .DATA[2] .DATA[3] .DATA[4] .DATA[5] .DATA[6] .DATA[7] .DATA[8] .DATA[9] .DATA[10] .DATA[11] .DATA[12] .DATA[13] .DATA[14] .DATA[15] .DATA[16] Descripcin acumulacin integral valor temporal de suavizado derivativo valor .PV previo valor .ERR previo valor .SP previo vlido constante de escalado porcentual constante de escalado .PV constante de escalado derivativo valor .KP previo valor .KI previo valor .KD previo .KP de ganancia dependiente .KI de ganancia dependiente .KD de ganancia dependiente valor .CV previo constante de desactivacin de escalado .CV constante de desactivacin de escalado de valor retenido

.EN .CT .CL .PVT .DOE .SWM .CA .MO .PE .NDF .NOBC

BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL

habilitado tipo cascada (0=esclavo; 1=maestro) lazo en cascada (0=no; 1=s) seguimiento de variable de proceso (0=no; 1=s) derivada de (0=PV; 1=error) modo manual de software (0=no-auto; 1=s- sw manual) accin de control (0 significa E=SP-PV; 1 significa E=PV-SP) modo de estacin (0=automtico; 1=manual) Ecuacin PID (0=independiente; 1=dependiente) sin suavizado derivativo (0=filtro de suavizado derivativo habilitado; 1=filtro de suavizado derivativo inhabilitado) 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) sin banda muerta de cruce por cero (0=banda muerta de cruce por cero; 1=banda muerta sin cruce por cero) PID inicializado (0=no; 1=s) punto de ajuste fuera de rango (0=no; 1=s) VC est por debajo del lmite de salida mnimo (0=no; 1=s) VC est por arriba del lmite de salida mximo (0=no; 1=s) el error est dentro de la banda muerta (0=no; 1=s) la desviacin tiene alarma baja (0=no; 1=s)

.NOZC .INI .SPOR .OLL .OLH .EWD .DVNA

BOOL BOOL BOOL BOOL BOOL BOOL BOOL

500

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones especiales (FBC, DDT, DTR, PID)

Captulo 13

Mnemnico: .DVPA .PVLA .PVHA

Tipo de datos BOOL BOOL BOOL

Descripcin la desviacin tiene alarma alta (0=no; 1=s) PV tiene alarma baja (0=no; 1=s) 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 .UPD 0 el punto de ajuste est fuera de rango

Tipo de fallo 4 4

Cdigo de fallo 35 36

Publicacin 1756-RM003K-ES-P Julio 2008

501

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin Accin La condicin de salida de rengln se establece como Ninguna. falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. 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 post-escn La instruccin ejecuta el lazo PID. La instruccin ejecuta el lazo PID. La condicin de salida de rengln se establece como Ninguna. falsa. n. a. n. a.

Configure una instruccin PID

Despus de introducir la instruccin PID y especificar la estructura de PID, se usan las fichas de configuracin para especificar cmo debe 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 Setpoint (SP) % salida establecida Especifique: Introduzca un valor de punto de ajuste (.SP). 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 Proportional gain (Kp) Introduzca un porcentaje de polarizacin de salida (.BIAS). 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 PID equation Especifique 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 Derivative of Seleccione ya sea E=PV-SP o E=SP-PV para la accin de control (.CA). 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 CV high limit CV low limit Deadband value No derivative smoothing No bias calculation No zero crossing in deadband PV tracking Cascade loop Cascade type Introduzca el tiempo de actualizacin (.UPD) para la instruccin. Introduzca un lmite alto para la variable de control (.MAXO). Introduzca un lmite bajo para la variable de control (.MINO). Introduzca un valor de banda muerta (.DB). Habilite o inhabilite esta seleccin (.NDF). Habilite o inhabilite esta seleccin (.NOBC). Habilite o inhabilite esta seleccin (.NOZC). Habilite o inhabilite esta seleccin (.PVT). Habilite o inhabilite esta seleccin (.CL). 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 PV alta PV low PV deadband positive deviation negative deviation deviation deadband Especifique Introduzca un valor de alarma alta VP (.PVH). Introduzca un valor de alarma baja VP (.PVL). Introduzca un valor de banda muerta de alarma VP (.PVDB). Introduzca un valor de desviacin positiva (.DVP). Introduzca un valor de desviacin negativa (.DVN). 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 PV unscaled maximum PV unscaled minimum PV engineering units maximum PV engineering units minimum CV maximum CV minimum Tieback maximum Tieback minimum PID Initialized Especifique 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. 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. Introduzca el valor mximo de unidades de ingeniera correspondiente a .MAXI (.MAXS) Introduzca el valor mnimo de unidades de ingeniera correspondiente a .MINI (.MINS) Introduzca un valor de CV mximo correspondiente al 100% (.MAXCV). Introduzca un valor de CV mnimo correspondiente al 0% (.MINCV). 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. 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. 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 Ganancias dependientes (estndar ISA) Derivada de error (E)
t

Ecuacin

1 dE - + BIAS CV = K C E + ---- Edt + T d -----Ti dt


0

variable de proceso (PV)

E = SP - PV
t

CV = K C

1 dPV - + BIAS E + ---- Edt T d ---------Ti dt


0

E = PV - SP
t

dPV 1 - + BIAS CV = K C E + ---- Edt + T d ---------dt Ti


0

Ganancias independientes

error (E)
t

dE - + BIAS CV = K P E + K i Edt + K d -----dt


0

variable de proceso (PV)

E = SP - PV
t

dPV - + BIAS CV = K P E + K i Edt K d ---------dt


0

E = PV - SP
t

dPV - + BIAS CV = K P E + K i Edt + K d ---------dt


0

506

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones especiales (FBC, DDT, DTR, PID)

Captulo 13

Donde:
Variable KP Descripcin 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 = ---------60 T i

Kd

ganancia derivativa (segundos) Para convertir entre Kd (ganancia derivativa) y Td (tiempo de accin derivada), use: Kd = Kc (Td) 60

KC Ti Td SP PV E BIAS VC dt

ganancia de controlador (sin unidades) tiempo de accin integral (minutos/repeticin) tiempo de accin derivada (minutos) punto de ajuste variable de proceso error [(SP-PV) o (PV-SP)] ganancia anticipativa o polarizacin variable de control 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 manual de software (.SWM) Descripcin 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 Configure el canal del mdulo de salidas analgicas 1756 que recibe la variable de control proveniente de la instruccin PID Detalles: Marque la casilla de verificacin de retener para inicializacin (hold for initialization) en la pgina de propiedades del canal especfico del mdulo.

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 en la instruccin PID El mdulo de salidas analgicas 1756 retorna dos valores por cada canal en su 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 - banda muerta error dentro del rango de 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 destination source A source B

Introduzca este valor valor controlado valor no controlado 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 Mostrado como EU Software A/M o bien Modo de estacin A/M Auto
+ -

Error mostrado como EU

Accin de control SP-PV (Error)


-1
Convierte unidades de ingeniera a %

% de polarizacin de salida

Modo A/M de software Clculo PID (Out%)


+

Auto Auto Manual

Modo de estacin A/M

% salida establecida Convierte % a unidades CV

SP

Manual PVT No

PV-SP

Error X 100 maxs-mins % salida establecida

Lmite de salida Manual Salida (CV) mostrada como % de escalado EU

CV%(maxcv-mincv) + mincv 100

CV

S Convierte de binario a unidades de ingeniera (PV-mini)(maxs-mins) + mins maxi-mini

PV Mostrado como EU

Convierte unidades de valor retenido a % tieback-mintie maxtie-mintie x 100

PV

Proceso PID con lazos maestro/esclavo


Lazo maestro A/M de software o bien Modo de estacin A/M Auto SP
+ -

Accin de control SP-PV (Error)


-1
Convierte unidades de ingeniera a %

% de polarizacin de salida

Clculo PID (Out%)

Manual PVT No

PV-SP

Error X 100 maxs-mins % salida establecida

Modo A/M de software Auto Auto Manual Manual

Modo de estacin A/M Lmite de salida

% salida establecida

(Master.Out)

S Convierte de binario a unidades de ingeniera (PV-mini)(maxs-mins) + mins maxi-mini SP PV


Convierte unidades de ingeniera a %

Modo A/M de software Auto Manual Manual Los tems referidos en este cuadro son parmetros, unidades y modos que pertenecen al lazo esclavo designado.
% de polarizacin de salida Convierte unidades de ingeniera a %

Error X 100 maxs-mins

Lazo esclavo

PV Accin de control
Convierte % a unidades (SP) de ingeniera

(Master.Out)

SP-PV
+ -1

X (maxs-mins) + mins 100

Clculo PID

Modo A/M de software Auto Auto Manual

Modo de estacin A/M Lmite de salida Manual

% salida establecida

PV-SP

Error X 100 maxs-mins % salida establecida Convierte unidades de valor retenido a % tieback-mintie maxtie-mintie x 100

Convierte % a unidades CV CV%(maxcv-mincv) 100 + mincv

Convierte de binario a unidades de ingeniera (PV-mini)(maxs-mins) + mins maxi-mini

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
Si desea Hallar el seno de un valor.

Las instrucciones trigonomtricas evalan las operaciones aritmticas mediante operaciones trigonomtricas.
Use esta instruccin SIN Disponible en estos lenguajes lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones Vea la pgina 520

Hallar el coseno de un valor.

COS

523

Hallar la tangente de un valor.

TAN

526

Hallar el arco seno de un valor.

ASN ASIN(1)

529

Hallar el arco coseno de un valor.

ACS ACOS(1)

532

Hallar el arco tangente de un valor.

ATN ATAN(1)

535

(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)
Operandos:

La instruccin SIN halla el seno del valor de origen (en radianes) y almacena el resultado en Destination.

Lgica de escalera de rels


Operando Source Tipo SINT INT DINT REAL Destination SINT INT DINT REAL tag tag para almacenar el resultado Formato inmediato tag Descripcin hallar el seno de este valor

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 SIN tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin estructura SIN

Estructura FBD_MATH_ADVANCED
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut Dest BOOL REAL Descripcin La instruccin produjo un resultado vlido. 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: preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin: La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. 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 preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. 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)
Operandos:

La instruccin COS halla el coseno del valor de origen (en radianes) y almacena el resultado en Destination.

Lgica de escalera de rels


Operando Source Tipo SINT INT DINT REAL Destination SINT INT DINT REAL tag tag para almacenar el resultado Formato inmediato tag Descripcin hallar el coseno de este valor

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 COS tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin 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 entrada EnableIn Tipo de datos BOOL Descripcin 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 EnableOut Dest BOOL REAL Descripcin La instruccin produjo un resultado vlido. 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 preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. 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 preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. 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)
Operandos:

La instruccin TAN halla la tangente del valor de origen (en radianes) y almacena