You are on page 1of 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 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 halla la tangente de este valor

Texto estructurado
dest := TAN(source);

Use TAN como funcin. Esta funcin calcula la tangente de source y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.

Bloque de funciones
Operando TAN tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin Estructura TAN

526

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Captulo 14

Estructura FBD_MATH_ADVANCED
Parmetro de 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 -102943.7 (-2x214) y menor o
igual que 102943.7 (2x214).

Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin 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 la tangente de Source y coloca el resultado en Destination. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin 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

527

Captulo 14

Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Ejemplo: Calcule la tangente de value y coloque el resultado en result. Lgica de escalera de rels

Texto estructurado
result := TAN(value);

Bloque de funciones

528

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Captulo 14

Arco seno (ASN)


Operandos:

La instruccin ASN halla el arco seno del valor de Source y almacena el resultado en Destination (en radianes).

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 arco seno de este valor

Texto estructurado
dest := ASIN(source);

Use ASIN como funcin. Esta funcin calcula el arco seno de source y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.

Bloque de funciones
Operando ASN tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin estructura ASN

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.

Publicacin 1756-RM003K-ES-P Julio 2008

529

Captulo 14

Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Descripcin: Source debe ser mayor o igual que -1 y menor o igual que 1. El valor
resultante en Destination siempre es mayor o igual que -/2 y menor o igual que /2 (donde = 3.141593).

Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin 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 arco seno de Source y coloca el resultado en Destination. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin 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.

530

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Captulo 14

Ejemplo: Calcule el arco seno de value y coloque el resultado en result. Lgica de escalera de rels

Texto estructurado
result := ASIN(value);

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

531

Captulo 14

Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Arco coseno (ACS)


Operandos:

La instruccin ACS halla el arco coseno del valor de Source y almacena el resultado en Destination (en radianes).

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 arco coseno de este valor

Texto estructurado
dest := ACOS(source);

Use ACOS como funcin. Esta funcin calcula el arco coseno de source y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.

Bloque de funciones
Operando ACS tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin estructura ACS

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.

532

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Captulo 14

Descripcin: Source debe ser mayor o igual que -1 y menor o igual que 1. El valor
resultante en Destination siempre es mayor o igual que 0 y menor o igual que (donde = 3.141593).

Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin 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 arco coseno de Source y coloca el resultado en Destination. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin 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

533

Captulo 14

Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Ejemplo: Calcule el arco coseno de value y coloque el resultado en result. Lgica de escalera de rels

Texto estructurado
result := ACOS(value);

Bloque de funciones

534

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Captulo 14

Arco tangente (ATN)


Operandos:

La instruccin ATN halla el arco tangente del valor de Source y almacena el resultado en Destination (en radianes).

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 arco tangente de este valor

Texto estructurado
dest := ATAN(source);

Use ATAN como funcin. Esta funcin calcula el arco tangente de source y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.

Bloque de funciones
Operando ATN tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin estructura ATN

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.

Publicacin 1756-RM003K-ES-P Julio 2008

535

Captulo 14

Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Descripcin: El valor resultante en Destination siempre es mayor o igual que -/2 y


menor o igual que /2 (donde = 3.141593).

Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin 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 arco tangente de Source y coloca el resultado en Destination. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin 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.

536

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Captulo 14

Ejemplo: Calcule el arco tangente de value y coloque el resultado en result. Lgica de escalera de rels

Texto estructurado
result := ATAN(value);

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

537

Captulo 14

Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)

Notas:

538

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

15

Instrucciones matemticas avanzadas


(LN, LOG, XPY)

Introduccin
Si desea Hallar el logaritmo natural de un valor.

Las instrucciones matemticas avanzadas incluyen estas instrucciones:


Use esta instruccin LN Disponible en estos lenguajes lgica de escalera de rels texto estructurado bloque de funciones Vea la pgina 540

Hallar el logaritmo base 10 de un valor.

LOG

lgica de escalera de rels texto estructurado bloque de funciones

543

Elevar un valor a la potencia de otro valor.

XPY

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

546

(1)

No hay una instruccin equivalente en texto estructurado. Use el operador en una expresin.

Usted puede mezclar diferentes tipos de datos, pero puede producirse prdida de exactitud y error de redondeo, y la instruccin requiere ms tiempo para ejecutarse. Verifique el bit S:V para determinar si se trunc el resultado. Para las instrucciones de lgica de escalera de rels, los tipos de datos que aparecen en negrita indican tipos de datos ptimos. Las instrucciones se ejecutan ms rpidamente y requieren menos memoria si todos los operandos de instruccin usan el mismo tipo de datos ptimos, tpicamente DINT o REAL.

539Publicacin 1756-RM003K-ES-P Julio 2008

539

Captulo 15

Instrucciones matemticas avanzadas (LN, LOG, XPY)

Logaritmo natural (LN)


Operandos:

La instruccin LN halla el logaritmo natural de Source 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 logaritmo natural de este valor

Texto estructurado
dest := LN(source);

Use LN como funcin. Esta funcin calcula el logaritmo natural de source y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.

Bloque de funciones
Operando LN tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin estructura LN

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 BOOL Descripcin La instruccin produjo un resultado vlido.

540

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones matemticas avanzadas (LN, LOG, XPY)

Captulo 15

Descripcin: Source debe ser mayor o igual que cero; de lo contrario, se establece
el bit de estado de overflow (S:V). El valor Destination resultante es mayor o igual que -87.33655 y menor o igual que 88.72284.

Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin 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 logaritmo natural de Source y coloca el resultado en Destination. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin 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

541

Captulo 15

Instrucciones matemticas avanzadas (LN, LOG, XPY)

Ejemplo: Calcule el logaritmo natural de value y coloque el resultado en result. Ejemplo de la lgica de escalera de rels

Texto estructurado
result := LN(value);

Bloque de funciones

542

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones matemticas avanzadas (LN, LOG, XPY)

Captulo 15

Logaritmo base 10 (LOG)


Operandos:

La instruccin LOG halla el logaritmo base 10 de Source 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 logaritmo de este valor

Texto estructurado
dest := LOG(source);

Use LOG como funcin. Esta funcin calcula el logaritmo de source y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.

Bloque de funciones
Operando LOG tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin Estructura LOG

Publicacin 1756-RM003K-ES-P Julio 2008

543

Captulo 15

Instrucciones matemticas avanzadas (LN, LOG, XPY)

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 cero; de lo contrario, se establece
un bit de estado de overflow (S:V). El valor Destination resultante es mayor o igual que -37.92978 y menor o igual que 38.53184.

Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin 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 logaritmo de Source y coloca el resultado en Destination. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin 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.

544

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones matemticas avanzadas (LN, LOG, XPY)

Captulo 15

Ejemplo: Calcule el logaritmo de value y coloque el resultado en result. Lgica de escalera de rels

Texto estructurado
result := LOG(value);

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

545

Captulo 15

Instrucciones matemticas avanzadas (LN, LOG, XPY)

X a la potencia de Y (XPY)
Operandos:

La instruccin XPY eleva Source A (X) a la potencia de Source B (Y) y almacena el resultado en Destination.

Lgica de escalera de rels


Operando Source X Tipo SINT INT DINT REAL Source Y SINT INT DINT REAL Destination SINT INT DINT REAL tag tag para almacenar el resultado inmediato tag exponente Formato inmediato tag Descripcin valor base

Texto estructurado
dest := sourceX ** sourceY;

Use dos signos de multiplicacin adyacentes como operador dentro de una expresin. Esta expresin eleva sourceX a la potencia de sourceY y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.

Bloque de funciones
Operando XPY tag Tipo FBD_MATH Formato estructura Descripcin estructura XPY

546

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones matemticas avanzadas (LN, LOG, XPY)

Captulo 15

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 X REAL Valor base. Vlido = cualquier valor con punto flotante (coma flotante) Source Y REAL exponente Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos 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 X es negativo, Source Y debe ser un valor entero; de lo


contrario se producir un fallo menor. La instruccin XPY usa este algoritmo: Destination = X**Y El controlador evala x0=1 y 0x=0.

Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo:
Ocurrir un fallo menor si Source X es negativo y Source Y no es un valor entero 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. El controlador eleva Source X a la potencia de Source Y y coloca el resultado en Destination. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

547

Captulo 15

Instrucciones matemticas avanzadas (LN, LOG, XPY)

Bloque de funciones
Condicin 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: La instruccin XPY eleva value_1 a la potencia de value_2 y coloca el


resultado en result.

Lgica de escalera de rels

Texto estructurado
result := (value_1 value_2);

Bloque de funciones

548

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

16

Instrucciones de conversin matemtica


(DEG, RAD, TOD, FRD, TRN, TRUNC)

Introduccin
Si desea Convertir radianes en grados.

Las instrucciones de conversin matemtica convierten valores.


Use esta instruccin DEG Disponible en estos lenguajes lgica de escalera de rels texto estructurado bloque de funciones Vea la pgina 550

Convertir grados en radianes.

RAD

lgica de escalera de rels texto estructurado bloque de funciones

553

Convertir un valor entero en un valor BCD.

TOD

lgica de escalera de rels bloque de funciones

556

Convertir un valor BCD en un valor entero.

FRD

lgica de escalera de rels bloque de funciones

559

Retirar la parte fraccionaria de un valor.

TRN TRUNC(1)

lgica de escalera de rels texto estructurado bloque de funciones

561

(1)

Texto estructurado solamente.

Usted puede mezclar diferentes tipos de datos, pero puede producirse prdida de exactitud y error de redondeo, y la instruccin requiere ms tiempo para ejecutarse. Verifique el bit S:V para determinar si se trunc el resultado. Para las instrucciones de lgica de escalera de rels, los tipos de datos que aparecen en negrita indican tipos de datos ptimos. Las instrucciones se ejecutan ms rpidamente y requieren menos memoria si todos los operandos de instruccin usan el mismo tipo de datos ptimos, tpicamente DINT o REAL.

549Publicacin 1756-RM003K-ES-P Julio 2008

549

Captulo 16

Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Grados (DEG)
Operandos:

La instruccin DEG convierte Source (radianes) en grados 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 valor que se va a convertir en grados

Texto estructurado
dest := DEG(source);

Use DEG como funcin. Esta funcin convierte source en grados y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.

Bloque de funciones
Operando DEG tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin Estructura DEG

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 de conversin. 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 de conversin. Se establecen indicadores de estado aritmtico para esta salida.

550

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Captulo 16

Descripcin: La instruccin DEG usa este algoritmo:


Source*180/ (donde = 3.141593)

Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin 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 convierte Source en grados y coloca el resultado en Destination. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin 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

551

Captulo 16

Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Ejemplo: Convierta value en grados y coloque el resultado en result. Lgica de escalera de rels

Texto estructurado
result := DEG(value);

Bloque de funciones

552

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Captulo 16

Radianes (RAD)
Operandos:

La instruccin RAD convierte Source (grados) 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 valor que se va a convertir en radianes

Texto estructurado
dest := RAD(source);

Use RAD como funcin. Esta funcin convierte source a radianes y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.

Bloque de funciones
Operando RAD tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin estructura RAD

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 de conversin. 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 de conversin. Se establecen indicadores de estado aritmtico para esta salida.

Publicacin 1756-RM003K-ES-P Julio 2008

553

Captulo 16

Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Descripcin: La instruccin RAD usa este algoritmo:


Source*/180 (donde = 3.141593)

Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin 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 convierte Source en radianes y coloca el resultado en Destination. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin 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.

554

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Captulo 16

Ejemplo Convierta value en radianes y coloque el resultado en result. Lgica de escalera de rels

Texto estructurado
result := RAD(value);

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

555

Captulo 16

Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Convertir a BCD (TOD)


Operandos:

La instruccin TOD convierte un valor decimal (0 Source 99,999,999) en un valor BCD y almacena el resultado en Destination.

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 que se va a convertir en decimal

Bloque de funciones
Operando TOD tag Tipo FBD_CONVERT Formato estructura Descripcin estructura TOD

Estructura FBD_CONVERT
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 Entrada a la instruccin de conversin. 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 de conversin. Se establecen indicadores de estado aritmtico para esta salida.

Descripcin: BCD es el sistema de nmeros decimales codificados en binario que


expresa dgitos decimales individuales (0-9) en una notacin binaria de 4 bits. Si usted introduce un Source negativo, la instruccin genera un fallo menor y borra el Destination.

Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados.


556 Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Captulo 16

Condiciones de fallo:
Ocurrir un fallo menor si Source < 0 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.

no origen < 0

origen > 99,999,999

no

convertir origen en BCD

S:V se establece a 1

la condicin de salida de rengln se establece como verdadera

fin

condicin de entrada de rengln es verdadera

El controlador convierte Source en BCD y coloca el resultado en Destination. La condicin de salida de rengln se establece como verdadera.

post-escn

La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin 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

557

Captulo 16

Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Ejemplo: La instruccin TOD convierte value_1 en un valor BCD y coloca el


resultado en result_a.

Lgica de escalera de rels

Bloque de funciones

558

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Captulo 16

Convertir a entero (FRD)


Operandos:

La instruccin FRD convierte un valor BCD (Source) en un valor decimal y almacena el resultado en Destination.

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 que se va a convertir en decimal

Bloque de funciones
Operando FRD tag Tipo FBD_CONVERT Formato: estructura Descripcin estructura FRD

Estructura FBD_CONVERT
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 Entrada a la instruccin de conversin. 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 de conversin. Se establecen indicadores de estado aritmtico para esta salida.

Descripcin: La instruccin FRD convierte un valor BCD (Source) en un valor


decimal y almacena el resultado en Destination.

Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna

Publicacin 1756-RM003K-ES-P Julio 2008

559

Captulo 16

Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Ejecucin: Lgica de escalera de rels


Condicin 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 convierte Source en un valor decimal y coloca el resultado en Destination. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin 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: La instruccin FRD convierte value_a en un valor decimal y coloca el


resultado en result_1.

Lgica de escalera de rels

Bloque de funciones

560

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Captulo 16

Truncar (TRN)
Operandos:

La instruccin TRN retira (trunca) la parte fraccionaria de Source y almacena el resultado en Destination.

Lgica de escalera de rels


Operando Source Tipo REAL Formato inmediato tag Destination SINT INT DINT REAL tag tag para almacenar el resultado Descripcin valor que se va a truncar

Texto estructurado
dest := TRUNC(source);

Use TRUNC como funcin. Esta funcin trunca source y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.

Bloque de funciones
Operando TRN tag Tipo FBD_TRUNCATE Formato estructura Descripcin estructura TRM

Estructura FBD_TRUNCATE
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 de conversin. Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut Dest BOOL DINT Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin de conversin. Se establecen indicadores de estado aritmtico para esta salida.

Publicacin 1756-RM003K-ES-P Julio 2008

561

Captulo 16

Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Descripcin: El truncado no redondea el valor; en lugar de ello, la parte no


fraccionaria permanece igual, independientemente del valor de la parte fraccionaria.

Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin 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 retira la parte fraccionaria de Source y coloca el resultado en Destination. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin 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.

562

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Captulo 16

Ejemplo: Retire la parte fraccionaria de float_value_1, dejando igual la parte no


fraccionaria, y coloque el resultado en float_value_1_truncated.

Lgica de escalera de rels

Texto estructurado
float_value_1_truncated := TRUNC(float_value_1);

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

563

Captulo 16

Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)

Notas:

564

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

17

Instrucciones para puerto serie ASCII


(ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Introduccin

Use las instrucciones para puerto serie ASCII a fin de leer y escribir caracteres ASCII.
IMPORTANTE

Para usar las instrucciones del puerto serie ASCII, usted debe configurar el puerto serie del controlador. Consulte el documento Logix5000 Controllers Common Procedures, publicacin 1756-PM001.
Use esta instruccin ABL Disponible en estos lenguajes lgica de escalera de rels texto estructurado Vea la pgina 570

Si desea determinar cundo el bfer contiene caracteres de terminacin

Por ejemplo ver si hay datos que tienen caracteres de terminacin

contar los caracteres en el bfer

verificar el nmero requerido de caracteres antes de leer el bfer

ACB

lgica de escalera de rels texto estructurado

573

borrar el bfer borrar las instrucciones del puerto serie ASCII que actualmente se estn ejecutando o estn en la cola. obtener el estado de las lneas de control del puerto serie activar y desactivar la seal DTR activar y desactivar la seal RTS leer un nmero fijo de caracteres

borrar datos antiguos del bfer al momento de la puesta en marcha sincronizar el bfer con un dispositivo hacer que el mdem cuelgue

ACL

lgica de escalera de rels texto estructurado

575

AHL

lgica de escalera de rels texto estructurado

577

leer datos desde un dispositivo que enva el mismo nmero de caracteres durante cada transmisin leer datos desde un dispositivo que enva un nmero variable de caracteres en cada transmisin enviar mensajes que siempre usan los mismos caracteres de terminacin

ARD

lgica de escalera de rels texto estructurado

581

leer un nmero variable de caracteres, inclusive el primer conjunto de caracteres de terminacin enviar caracteres y aadir automticamente uno o dos caracteres adicionales para marcar el final de los datos enviar caracteres

ARL

lgica de escalera de rels texto estructurado

585

AWA

lgica de escalera de rels texto estructurado

589

enviar mensajes que usan una variedad de caracteres de terminacin

AWT

lgica de escalera de rels texto estructurado

594

565Publicacin 1756-RM003K-ES-P Julio 2008

565

Captulo 17

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Ejecucin de la instruccin
Las instrucciones de puerto serie ASCII se ejecutan de manera asncrona con el escn de la lgica:
Lgica La condicin de entrada de rengln de instruccin cambia de falsa a verdadera Cola ASCII Instruccin 1 Instruccin 2 Instruccin 3 Instruccin 4 La instruccin entra en la cola ASCII. Los datos fluyen entre el bfer y el puerto serie. Puerto serie Bfer Los datos fluyen entre la tarea y el bfer. Tarea ASCII La instruccin en la parte superior de la cola se ejecuta.

Cada instruccin de puerto serie ASCII (excepto ACL) usa una estructura SERIAL_PORT_CONTROL para realizar las siguientes funciones: controlar la ejecucin de la instruccin proporcionar informacin de estado acerca de la instruccin

566

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Captulo 17

El siguiente diagrama de temporizacin muestra los cambios en los bits de estado mientras la instruccin ABL prueba el bfer en busca de caracteres de terminacin.
escn escn escn escn

condicin de entrada de rengln

falsa

verdadera

falsa

verdadera

falsa

.EN

desactivado

activado

desactivado

activado

desactivado

.EU

desactivado

activado

.RN

desactivado

activado

desactivado

activado

desactivado

.DN o .ER

desactivado

activado

desactivado

activado

.FD

desactivado

activado

desactivado

activado

.EM

desactivado

activado

desactivado

activado

entra en la cola se ejecuta en este ejemplo, encuentra caracteres de terminacin

restablece los bits de estado cuando se escanean y el bit .DN o .ER est establecido, se establece el bit .EM

Publicacin 1756-RM003K-ES-P Julio 2008

567

Captulo 17

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

La cola ASCII retiene hasta 16 instrucciones. Cuando la cola est llena, una instruccin intenta entrar en la cola durante cada escn subsiguiente de la instruccin, segn se muestra a continuacin:
escn escn escn escn

condicin de entrada de rengln

falsa

verdadera

falsa

.EN

desactivado

activado

.EU

desactivado

activado

intenta entrar en la cola, pero la cola est llena entra en la cola

Cdigos de error ASCII


Si una instruccin del puerto serie ASCII no logra ser ejecutada, el miembro ERROR de su estructura SERIAL_PORT_CONTROL contendr uno de los siguientes cdigos de error hexadecimal:
Este cdigo hexadecimal 16#2 16#3 16#4 16#A 16#C 16#D 16#E 16#F 16#51 16#54 16#55 Indica que El mdem se desconect. La seal CTS se perdi durante la comunicacin. El puerto serie estaba en el modo de sistema. Antes de que se ejecutara la instruccin, se estableci el bit .UL. Esto impide la ejecucin de la instruccin. El controlador cambi del modo de marcha al modo de programacin. Esto detiene la ejecucin de una instruccin de puerto serie ASCII y borra la cola. En el cuadro de dilogo Controller Properties, ficha User Protocol, se cambiaron y se aplicaron los parmetros de tamao de bfer o modo de eco. Esto detiene la ejecucin de una instruccin de puerto serie ASCII y borra la cola. Instruccin ACL ejecutada. La configuracin del puerto serie cambi del modo de usuario al modo de sistema. Esto detiene la ejecucin de una instruccin de puerto serie ASCII y borra la cola de instrucciones de puerto serie ASCII. El valor LEN del tag de cadena es negativo o mayor que el tamao de DATA del tag de cadena. La longitud de control del puerto serie es mayor que el tamao del bfer. La longitud de control del puerto serie es negativa o mayor que el tamao de Source o Destination.

568

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Captulo 17

Tipos de datos de cadena


Los caracteres ASCII se almacenan en tags que usan un tipo de datos de cadena. Se puede usar el tipo de datos STRING predeterminado, que almacena hasta 82 caracteres. Usted puede crear un nuevo tipo de datos de cadena que almacene menos o ms caracteres. Para crear un nuevo tipo de datos de cadena, consulte el documento Logix5000 Controllers Common Procedures, publicacin 1756-PM001.

Cada tipo de datos de cadena contiene los siguientes miembros:


Nombre LEN Tipo de datos Descripcin DINT nmero de caracteres en la cadena Notas El LEN se actualiza automticamente con el nuevo conteo de los caracteres cuando usted: usa el cuadro de dilogo String Browser para introducir caracteres usa las instrucciones que leen, convierten o manipulan una cadena El LEN muestra la longitud de la cadena actual. El miembro DATA puede contener caracteres adicionales antiguos, los cuales no se incluyen en el conteo del LEN. Datos Matriz SINT caracteres ASCII de la cadena Para obtener acceso a los caracteres de la cadena, utilice el nombre del tag. Por ejemplo, para acceder a los caracteres del tag string_1, introduzca string_1. Cada elemento de la matriz DATA contiene un carcter. Usted puede crear nuevos tipos de datos de cadena que almacenen menos o ms caracteres.

Publicacin 1756-RM003K-ES-P Julio 2008

569

Captulo 17

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Prueba ASCII para lnea de bfer (ABL)


Operandos:

La instruccin ABL cuenta los caracteres en el bfer, inclusive el primer carcter de terminacin.

Lgica de escalera de rels


ABL ABL ASCII For Buffer Line ASCIITest Test For Buffer Line Channel Channel SerialPortControl Control SerialPort CharacterCount Count Character
EN DN ER ER

Operando Channel

Tipo DINT

Formato inmediato tag

Descripcin 0

? ? ?

Serial Port Control Character Count

SERIAL_PORT_ CONTROL DINT

tag

tag que controla la operacin

inmediato

Durante la ejecucin, muestra el nmero de caracteres en el bfer, incluso el primer conjunto de caracteres de terminacin.

Texto estructurado
ABL(Channel SerialPortControl);

Los operandos son iguales a los de la instruccin ABL de lgica de escalera de rels. Usted accede al valor de conteo de caracteres mediante el miembro .POS de la estructura SERIAL_PORT_CONTROL.

Estructura SERIAL_PORT_CONTROL
Mnemnico .EN .EU .DN .RN .EM .ER .FD .POS Tipo de datos BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT Descripcin El bit de habilitacin indica que la instruccin est habilitada. El bit de cola indica que la instruccin entr en la cola ASCII. El bit de efectuado indica que ha finalizado la instruccin, pero es asncrono respecto al escn de la lgica. El bit de ejecucin indica que la instruccin se est ejecutando. El bit de vaco indica que finaliz la instruccin, pero es sncrono respecto al escn de la lgica. El bit de error indica que la instruccin fall (errores). El bit de encontrado indica que la instruccin encontr el carcter o los caracteres de terminacin. La posicin determina el nmero de caracteres en el bfer, inclusive el primer conjunto de caracteres de terminacin. La instruccin slo retorna este nmero despus de que encuentra el carcter o los caracteres de terminacin. El error contiene un valor hexadecimal que identifica la causa del error.

.ERROR

DINT

570

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Captulo 17

Descripcin La instruccin ABL busca en el bfer el primer conjunto de caracteres


de terminacin. Si la instruccin encuentra los caracteres de terminacin, sta: establece el bit .FD cuenta los caracteres en el bfer, inclusive el primer conjunto de caracteres de terminacin En el cuadro de dilogo Controller Properties, ficha User Protocol, se definen los caracteres ASCII que la instruccin considera como caracteres de terminacin. Para programar la instruccin ABL, siga estas pautas: 1. Configure el puerto serie del controlador en modo de usuario y defina los caracteres que sirven como caracteres de terminacin. 2. sta es una instruccin transicional: En la lgica de escalera de rels, cambie la condicin de entrada del rengln de borrado a establecido cada vez que deba ejecutarse la instruccin. En texto estructurado, condicione la instruccin de manera que slo se ejecute cuando ocurra una transicin.

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


Condicin 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 cuando la condicin de entrada del rengln alterna de borrado a establecido. La condicin de salida de rengln se establece como verdadera. EnableIn se establece n. a. EnableIn siempre se establece. La instruccin se ejecuta. Accin de texto estructurado Ninguna. n. a. n. a.

Publicacin 1756-RM003K-ES-P Julio 2008

571

Captulo 17

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Condicin ejecucin de la instruccin

Accin de lgica de escalera de rels La instruccin cuenta los caracteres en el bfer. El bit .EN se establece. Los bits de estado restantes, excepto .UL, se borran. La instruccin trata de entrar en la cola ASCII.

Accin de texto estructurado

post-escn

La condicin de salida de rengln se establece como Ninguna. falsa.

Ejemplo: Pruebe continuamente el bfer para determinar si contiene los


caracteres de terminacin.

Lgica de escalera de rels

MV_line.EN MV_line.EN /

ABL ABL

ASCII Test For Buffer Line ASCII Test For Buffer Line Channel 0 Channel MV_line.E SerialPort Control SerialPort Control MV_line Character Count Character Count 0

EN EN DN DN ER ER

Texto estructurado
ABL(0,MV_line);

572

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Captulo 17

Caracteres ASCII en el bfer (ACB)


Operandos:

La instruccin ACB cuenta los caracteres en el bfer.

Lgica de escalera de rels


ACB ACB ASCII inin Buffer ASCIIChars Chars Buffer Channel Channel SerialPort SerialPortControl Control Character CharacterCount Count

Operando
? ? ?

Tipo DINT

Formato inmediato tag

Introduzca 0

EN EN DN DN ER ER

Channel

Serial Port Control Character Count

SERIAL_PORT_ CONTROL DINT

tag

tag que controla la operacin

inmediato

Durante la ejecucin, muestra el nmero de caracteres en el bfer.

Texto estructurado
ACB(Channel SerialPortControl);

Los operandos son los mismos que para la instruccin ACB de lgica de escalera de rels. Sin embargo, usted especifica el valor de conteo de caracteres al acceder al miembro .POS de la estructura SERIAL_PORT_CONTROL, en lugar de incluir el valor en la lista de operandos.

Estructura SERIAL_PORT_CONTROL
Mnemnico .EN .EU .DN .RN .EM .ER .FD .POS .ERROR Tipo de datos BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin indica que la instruccin est habilitada. El bit de cola indica que la instruccin entr en la cola ASCII. El bit de efectuado indica que ha finalizado la instruccin, pero es asncrono respecto al escn de la lgica. El bit de ejecucin indica que la instruccin se est ejecutando. El bit de vaco indica que finaliz la instruccin, pero es sncrono respecto al escn de la lgica. El bit de error indica que la instruccin fall (errores). El bit de encontrado indica que la instruccin encontr un carcter. La posicin determina el nmero de caracteres en el bfer, inclusive el primer conjunto de caracteres de terminacin. El error contiene un valor hexadecimal que identifica la causa del error.

Publicacin 1756-RM003K-ES-P Julio 2008

573

Captulo 17

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Descripcin: La instruccin ACB cuenta los caracteres en el bfer.


Para programar la instruccin ACB, siga estas pautas: 1. Configure el puerto serie del controlador en modo de usuario. 2. sta es una instruccin transicional: En la lgica de escalera de rels, cambie la condicin de entrada del rengln de borrado a establecido cada vez que deba ejecutarse la instruccin. En texto estructurado, condicione la instruccin de manera que slo se ejecute cuando ocurra una transicin.

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


Condicin 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 cuando la condicin de entrada del rengln alterna de borrado a establecido. La condicin de salida de rengln se establece como verdadera. EnableIn se establece ejecucin de la instruccin n. a. La instruccin cuenta los caracteres en el bfer. El bit .EN se establece. Los bits de estado restantes, excepto .UL, se borran. La instruccin trata de entrar en la cola ASCII. 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.

post-escn

Ejemplo: Cuente continuamente los caracteres en el bfer. Lgica de escalera de rels


bar_code_count.EN bar_code_count.EN / ACB ACB

ASCII Chars in Buffer ASCII Chars in Buffer Channel 0 Channel bar_code_count.EN SerialPort Control bar_code_count SerialPort Control Character Count Character Count 0

EN EN DN DN ER ER

Texto estructurado
ACB(0,bar_code_count);

574

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Captulo 17

Borrar ASCII bfer (ACL)


Operandos:

La instruccin ACL borra inmediatamente el bfer y la cola ASCII.

Lgica de escalera de rels


ACL ACL Borrar ASCII ASCII Clear bfer Buffer Canal Channel Borrar Serial lectura de puerto Clear Port Read serie Borrar Serial escritura de puerto serie Clear Port Write

Operando
? ? ?

Tipo DINT

Formato inmediato tag

Introduzca 0

Channel

Clear Serial Port Read Clear Serial Port Write

BOOL

inmediato tag

Para borrar el bfer y eliminar las instrucciones ARD y ARL de la cola, introduzca Yes. Para eliminar las instrucciones AWA y AWT de la cola, introduzca Yes.

BOOL

inmediato tag

Texto estructurado
ACL(Channel, ClearSerialPortRead, ClearSerialPortWrite);

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

Descripcin: La instruccin ACL inmediatamente realiza una de las dos siguientes


acciones o ambas: borra el bfer de caracteres y borra la cola ASCII de instrucciones de lectura borra la cola ASCII de instrucciones de escritura Para programar la instruccin ACL, siga estas pautas: 1. Configure el puerto serie del controlador:
Si su aplicacin usa instrucciones ARD o ARL no usa instrucciones ARD o ARL Entonces Seleccione el modo de usuario Seleccione ya sea el modo de sistema o de usuario

2. Para determinar si una instruccin se retir de la cola o se cancel, examine los siguientes componentes de la instruccin apropiada: El bit .ER se establece El miembro .ERROR es 16#E

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

Publicacin 1756-RM003K-ES-P Julio 2008

575

Captulo 17

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Ejecucin:
Condicin 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 borra las instrucciones especificadas y los bferes. La condicin de salida de rengln se establece como Ninguna. falsa.

Ejemplo: Cuando el controlador entre en el modo de marcha, borre el bfer as


como la cola ASCII.

Lgica de escalera de rels

S:FS

ACL ACL ASCII Buffer Borrar Clear ASCII bfer Channel Canal BorrarSerial lectura Port de puerto serie Clear Read BorrarSerial escritura de puerto serie Clear Port Write

0 1 1

Texto estructurado
osri_1.InputBit := S:FS; OSRI(osri_1);

IF (osri_1.OutputBit) THEN ACL(0,0,1); END_IF;

576

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Captulo 17

Lneas de handshake ASCII (AHL)


Operandos:

La instruccin AHl obtiene el estado de las lneas de control, y activa o desactiva las seales DTR y RTS.

Lgica de escalera de rels


AHL AHL ASCII Handshake Lines ASCII Handshake Lines Channel Channel AND Mask
OR Mask OR Mask SerialPort Control SerialPort Control Channel Status(Decimal) Channel Status(Decimal)

EN EN
? ? ?? ? ?? ? ? DN DN ER ER

Operando Channel

Tipo DINT

Formato inmediato tag

Introduzca 0

ANDMask

DINT

inmediato tag

Remtase a la descripcin.

ORMask

DINT

inmediato tag

Serial Port Control Channel Status (Decimal)

SERIAL_PORT_CONTROL DINT

tag inmediato

tag que controla la operacin 0

Durante la ejecucin, muestra el estado de las lneas de control. Para el estado de esta lnea de control CTS RTS DSR DCD DTR Recibi el carcter XOFF Examine este bit: 0 1 2 3 4 5

Texto estructurado
AHL(Channel,ANDMask,ORMask, SerialPortControl);

Los operandos son iguales que los de la instruccin AHL de lgica de escalera de rels. Sin embargo, se especifica el valor de estado del canal accediendo al miembro .POS de la estructura SERIAL_PORT_CONTROL, y no incluyendo el valor en la lista de operandos.

Publicacin 1756-RM003K-ES-P Julio 2008

577

Captulo 17

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Estructura SERIAL_PORT_CONTROL
Mnemnico .EN .EU .DN .RN .EM .ER .FD .POS .ERROR Tipo de datos BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin indica que la instruccin est habilitada. El bit de cola indica que la instruccin entr en la cola ASCII. El bit de efectuado indica que ha finalizado la instruccin, pero es asncrono respecto al escn de la lgica. El bit de ejecucin indica que la instruccin se est ejecutando. El bit de vaco indica que finaliz la instruccin, pero es sncrono respecto al escn de la lgica. El bit de error indica que la instruccin fall (errores). El bit de encontrado no se aplica a esta instruccin. La posicin almacena el estado de las lneas de control. El error contiene un valor hexadecimal que identifica la causa del error.

Descripcin: La instruccin AHL puede:


obtener el estado de las lneas de control del puerto serie activar o desactivar la seal de terminal de datos listo (DTR) activar o desactivar la seal de solicitud de envo (RTS) Para programar la instruccin AHL, siga estas pautas: 1. Configure el puerto serie del controlador:
Si su aplicacin usa instrucciones ARD o ARL no usa instrucciones ARD o ARL Entonces Seleccione el modo de usuario Seleccione ya sea el modo de sistema o de usuario

2. Use la tabla siguiente para seleccionar los valores correctos para los operandos ANDMask y ORMask:
Para poner DTR en el estado siguiente desactivado Y poner RTS en el estado siguiente: desactivado activado sin cambio activado desactivado activado sin cambio sin cambio desactivado activado sin cambio Introduzca este valor ANDMask E introduzca este valor ORMask

3 1 1 2 0 0 2 0 0

0 2 0 1 3 1 0 2 0

578

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Captulo 17

3. sta es una instruccin transicional: En la lgica de escalera de rels, cambie la condicin de entrada del rengln de borrado a establecido cada vez que deba ejecutarse la instruccin. En texto estructurado, condicione la instruccin de manera que slo se ejecute cuando ocurra una transicin.

Indicadores de estado aritmtico: no afectados Condiciones de fallo:


Tipo 4 Cdigo 57 Causa La instruccin AHL no se ejecut porque el puerto serie est configurado para no usar handshaking. Mtodo de recuperacin Realice una de los siguientes acciones: Cambie el ajuste de la lnea de control del puerto serie. Elimine la instruccin AHL.

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 cuando la condicin de entrada del rengln cambia de borrado a establecido. La condicin de salida de rengln se establece como verdadera. EnableIn se establece n. a. EnableIn siempre se establece. La instruccin se ejecuta. ejecucin de la instruccin La instruccin obtiene el estado de la lnea de control y activa o desactiva las seales DTR y RTS. El bit .EN se establece. Los bits de estado restantes, excepto .UL, se borran. La instruccin trata de entrar en la cola ASCII. post-escn La condicin de salida de rengln se establece como falsa. Ninguna. Accin de texto estructurado Ninguna. n. a. n. a.

Publicacin 1756-RM003K-ES-P Julio 2008

579

Captulo 17

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Ejemplo: Cuando get_control_line_status se establece, obtenga el estado de las


lneas de control del puerto serie y almacene el estado en el operando Channel Status. Para ver el estado de una lnea de control especfica, monitoree el tag SerialPortControl y ample el miembro POS.

Lgica de escalera de rels


get_control_line_status get_control_line_status AHL AHL ASCII Handshake Lines ASCII Handshake Lines Channel Channel AND Mask AND Mask

EN EN

0 0 0
serial_port serial_port 29

DN DN ER ER

OR Mask OR Mask
SerialPort Control SerialPort Control Channel Status(Decimal) Channel Status(Decimal)

Texto estructurado
osri_1.InputBit := get_control_line_status; OSRI(osri_1);

IF (osri_1.OutputBit) THEN AHL(0,0,0,serial_port); END_IF;

580

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Captulo 17

Lectura ASCII (ARD)


Operandos:

La instruccin retira caracteres del bfer y los almacena en Destination.

Lgica de escalera de rels


ASCII Read Read ASCII Channel Channel Destination Destination
ARD ARD ? ? ?? ? ? ?

EN EN
DN DN ER ER

SerialPort SerialPortControl Control SerialPort SerialPortControl Control Length Length Characters Characters Read Read

Operando Channel

Tipo DINT

Formato inmediato tag

Introduzca 0

Notas

Destination

cadena SINT INT DINT

tag

el tag al cual se transfieren los caracteres (lectura): Para un tipo de datos de cadena, introduzca el nombre del tag. Para una matriz SINT, INT o DINT, introduzca el primer elemento de la matriz.

Si desea comparar, convertir o manipular los caracteres, use un tipo de datos de cadena. Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree

Serial Port Control Serial Port Control Length

SERIAL_PORT_ CONTROL DINT

tag

tag que controla la operacin nmero de caracteres a transferir al destino (lectura) Serial Port Control Length debe ser menor o igual que el tamao de Destination. Si desea establecer Serial Port Control Length igual que el tamao de Destination, introduzca 0. Durante la ejecucin, muestra el nmero de caracteres ledos.

inmediato

Characters Read

DINT

inmediato

Texto estructurado
ARD(Channel,Destination, SerialPortControl);

Los operandos son los mismos que para la instruccin ARD de lgica de escalera de rels. Sin embargo, usted especifica los valores de Serial Port Control Length y Characters Read accediendo a los miembros .LEN y .POS de la estructura SERIAL_PORT_CONTROL, en lugar de incluir los valores en la lista de operandos.

Publicacin 1756-RM003K-ES-P Julio 2008

581

Captulo 17

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Estructura SERIAL_PORT_CONTROL
Mnemnico .EN .EU .DN .RN .EM .ER .FD .LEN .POS .ERROR Tipo de datos BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT DINT Descripcin El bit de habilitacin indica que la instruccin est habilitada. El bit de cola indica que la instruccin entr en la cola ASCII. El bit de efectuado indica que ha finalizado la instruccin, pero es asncrono respecto al escn de la lgica. El bit de ejecucin indica que la instruccin se est ejecutando. El bit de vaco indica que finaliz la instruccin, pero es sncrono respecto al escn de la lgica. El bit de error indica que la instruccin fall (errores). El bit de encontrado no se aplica a esta instruccin. La longitud indica el nmero de caracteres a transferir al destino (lectura). La posicin muestra el nmero de caracteres que se leyeron. El error contiene un valor hexadecimal que identifica la causa del error.

Descripcin: La instruccin ARD retira el nmero especificado de caracteres del


bfer y los almacena en Destination. La instruccin ARD contina ejecutndose hasta eliminar el nmero especificado de caracteres (Serial Port Control Length). Mientras que la instruccin ARD se est ejecutando, ninguna otra instruccin de puerto serie ASCII se ejecuta. Para programar la instruccin ARD, siga estas pautas: 1. Configure el puerto serie del controlador para el modo de usuario. 2. Use los resultados de una instruccin ACB para activar la instruccin ARD. As evita que la instruccin ARD retenga la cola ASCII mientras espera el nmero requerido de caracteres. 3. sta es una instruccin transicional: En la lgica de escalera de rels, cambie la condicin de entrada del rengln de borrado a establecido cada vez que deba ejecutarse la instruccin. En texto estructurado, condicione la instruccin de manera que slo se ejecute cuando ocurra una transicin. 4. Para activar una accin subsiguiente cuando se ha efectuado la instruccin, examine el bit EM.

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

582

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Captulo 17

Ejecucin:
Condicin 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 cuando la condicin de entrada del rengln cambia de borrado a establecido. La condicin de salida de rengln se establece como verdadera. EnableIn se establece n. a. EnableIn siempre se establece. La instruccin se ejecuta. ejecucin de la instruccin La instruccin retira caracteres del bfer y los almacena en el destino. El bit .EN se establece. Los bits de estado restantes, excepto .UL, se borran. La instruccin trata de entrar en la cola ASCII. post-escn La condicin de salida de rengln se establece como falsa. Ninguna. Accin de texto estructurado Ninguna. n. a. n. a.

Ejemplo: Un lector de cdigos de barra enva cdigos de barra al puerto serie


(canal 0) del controlador. Cada cdigo de barra contiene 24 caracteres. Para saber que el controlador ha recibido un cdigo de barra, la instruccin ACB cuenta continuamente los caracteres en el bfer. Cuando el bfer contiene por lo menos 24 caracteres, significa que el controlador ha recibido un cdigo de barra. La instruccin ARD pasa el cdigo de barras al miembro DATA del tag bag_bar_code, que es una cadena.

Lgica de escalera de rels


bar_code_count.EN bar_code_count.EN / ACB ACB

ASCII Chars in Buffer ASCII Chars in Buffer Channel 0 Channel bar_code_count.EN SerialPort Control SerialPort Control bar_code_count Character Count Character Count 0

EN EN DN DN ER ER

GEQ GEQ Grtr Than or Eql (A>=B) Grtr Than o Eql (A>=B) Source A A bar_code_count.pos bar_code_count.pos Source Source B B Source

ARD ARD

0 24

ASCII Read ASCII Read Channel Channel Destination Destination

EN EN DN DN ER ER

0 bag_bar_code bag_bar_code '' bar_code_read SerialPort Control SerialPort Control bar_code_read SerialPort Control Length SerialPort Control Length 24 Characters Read Characters Read 0

Publicacin 1756-RM003K-ES-P Julio 2008

583

Captulo 17

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Texto estructurado
ACB(0,bar_code_count); IF bar_code_count.POS >= 24 THEN bar_code_read.LEN := 24; ARD(0,bag_bar_code,bar_code_read); END_IF;

584

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Captulo 17

Lectura ASCII de lnea (ARL)


Operandos:

La instruccin ARL retira los caracteres especificados del bfer y los almacena en Destination.

Lgica de escalera de rels


ASCII Line ASCIIRead Read Line Channel Channel Destination Destination ARL ARL
? ? ?? ? ? ?

EN EN
DN DN ER ER

SerialPortControl Control SerialPort SerialPortControl ControlLength Length SerialPort CharactersRead Read Characters

Operando Channel

Tipo DINT

Formato inmediato tag

Introduzca 0

Notas

Destination

cadena SINT INT DINT

tag

el tag al cual se transfieren los caracteres (lectura): Para un tipo de datos de cadena, introduzca el nombre del tag. Para una matriz SINT, INT o DINT, introduzca el primer elemento de la matriz.

Si desea comparar, convertir o manipular los caracteres, use un tipo de datos de cadena. Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree

Serial Port Control Serial Port Control Length

SERIAL_PORT_ CONTROL DINT

tag

tag que controla la operacin nmero mximo de caracteres a leer si no se encuentran caracteres de terminacin Introduzca el nmero mximo de caracteres que contendr cualquier mensaje (es decir, cundo se debe interrumpir la lectura si no se encuentran caracteres de terminacin). Por ejemplo, si el mensaje tiene de 3 a 6 caracteres de longitud, introduzca 6. Serial Port Control Length debe ser menor o igual que el tamao de Destination. Si desea establecer la longitud de control del puerto serie igual que el tamao de Destination, introduzca 0.

inmediato

Characters Read

DINT

inmediato

Durante la ejecucin, muestra el nmero de caracteres ledos.

Texto estructurado
ARL(Channel,Destination, SerialPortControl);

Los operandos son los mismos que para la instruccin ARL de lgica de escalera de rels. Sin embargo, usted especifica los valores de Serial Port Control Length y Characters Read accediendo a los miembros .LEN y .POS de la estructura SERIAL_PORT_CONTROL, en lugar de incluir los valores en la lista de operandos.

Publicacin 1756-RM003K-ES-P Julio 2008

585

Captulo 17

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Estructura SERIAL_PORT_CONTROL
Mnemnico .EN .EU .DN .RN .EM .ER .FD .LEN .POS .ERROR Tipo de datos BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT DINT Descripcin El bit de habilitacin indica que la instruccin est habilitada. El bit de cola indica que la instruccin entr en la cola ASCII. El bit de efectuado indica que ha finalizado la instruccin, pero es asncrono respecto al escn de la lgica. El bit de ejecucin indica que la instruccin se est ejecutando. El bit de vaco indica que finaliz la instruccin, pero es sncrono respecto al escn de la lgica. El bit de error indica que la instruccin fall (errores). El bit de encontrado no se aplica a esta instruccin. La longitud indica el nmero mximo de caracteres a transferir al destino (es decir, cundo se debe interrumpir la lectura si no se encuentran caracteres de terminacin). La posicin muestra el nmero de caracteres que se leyeron. El error contiene un valor hexadecimal que identifica la causa del error.

Descripcin: La instruccin ARL retira los caracteres del bfer y los almacena en
Destination de la siguiente manera: La instruccin ARL contina ejecutndose hasta eliminar: el primer conjunto de caracteres de terminacin el nmero especificado de caracteres (Serial Port Control Length) Mientras que la instruccin ARL se est ejecutando, ninguna otra instruccin de puerto serie ASCII se ejecuta. Para programar la instruccin ARL, siga estas pautas: 1. Configure el puerto serie del controlador: a. Seleccione el modo de usuario. b. Defina los caracteres que sirven como caracteres de terminacin. 2. Use los resultados de una instruccin ABL para activar la instruccin ARL. Esto evita que la instruccin ARL retenga la cola ASCII mientras espera el nmero de caracteres de terminacin. 3. sta es una instruccin transicional: En la lgica de escalera de rels, cambie la condicin de entrada del rengln de borrado a establecido cada vez que deba ejecutarse la instruccin. En texto estructurado, condicione la instruccin de manera que slo se ejecute cuando ocurra una transicin. 4. Para activar una accin subsiguiente cuando se ha efectuado la instruccin, examine el bit EM.

586

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Captulo 17

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


Condicin 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 cuando la condicin de entrada del rengln cambia de borrado a establecido. La condicin de salida de rengln se establece como verdadera. EnableIn se establece n. a. EnableIn siempre se establece. La instruccin se ejecuta. ejecucin de la instruccin La instruccin retira los caracteres especificados del bfer y los almacena en el destino. El bit .EN se establece. Los bits de estado restantes, excepto .UL, se borran. La instruccin trata de entrar en la cola ASCII. post-escn La condicin de salida de rengln se establece como falsa. Ninguna. Accin de texto estructurado Ninguna. n. a. n. a.

Ejemplo: Pruebe continuamente el bfer para determinar si contiene un


mensaje de un terminal MessageView. Puesto que cada mensaje termina en un retorno de carro ($r), el retorno de carro se configura como el carcter de terminacin en el cuadro de dilogo Controller Properties, ficha User Protocol. Cuando la instruccin ABL encuentra un retorno de carro, establece el bit FD. Cuando la instruccin ABL encuentra el retorno de carro (MV_line.FD se establece) significa que el controlador ha recibido un mensaje completo. La instruccin ARL retira los caracteres del bfer, inclusive el retorno de carro, y los coloca en el miembro DATA del tag MV_msg, que es una cadena.

Publicacin 1756-RM003K-ES-P Julio 2008

587

Captulo 17

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Lgica de escalera de rels


MV_line.EN MV_line.EN / ABL ABL ASCII Test For Buffer ASCII Test For Buffer Line Line Channel Channel 0 MV_line SerialPort Control SerialPort Control MV_line Characters Count Character Count 0 EN EN DN DN ER ER

MV_line.FD MV_line.FD

ARL ARL

ASCII Read Line ASCII Read Line Channel Channel Destination Destination
SerialPort Control SerialPort Control SerialPort Control Length SerialPort Control Length Characters Read Characters Read

EN EN

0 MV_line.EN MV_msg '' MV_line.EN MV_read 12 0

DN DN

ER ER

Texto estructurado
ABL(0,MV_line);

osri_1.InputBit := MVLine.FD; OSRI(osri_1);

IF (osri_1.OutputBit) THEN mv_read.LEN := 12; ARL(0,MV_msg,MV_read); END_IF;

588

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Captulo 17

Escritura ASCII con anexo (AWA)


Operandos:

La instruccin AWA enva un nmero especificado de caracteres del tag Source a un dispositivo serie, y aade uno o dos caracteres predefinidos.

Lgica de escalera de rels


AWA AWA ASCII Write Write Append Append ASCII Channel Channel Source Source SerialPort Control SerialPort SerialPort Length SerialPort Control Length Characters Sent Characters Sent EN EN
? ? ?? ? ? ? DN DN

ER ER

Operando Channel

Tipo DINT

Formato inmediato tag

Introduzca 0

Notas

Source

cadena SINT INT DINT

tag

tag que contiene los caracteres a enviar: Para un tipo de datos de cadena, introduzca el nombre del tag. Para una matriz SINT, INT o DINT, introduzca el primer elemento de la matriz.

Si desea comparar, convertir o manipular los caracteres, use un tipo de datos de cadena. Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree

Serial Port Control Serial Port Control Length

SERIAL_PORT_ CONTROL DINT

tag

tag que controla la operacin nmero de caracteres a enviar Serial Port Control Length debe ser menor o igual que el tamao de Source. Si desea establecer Serial Port Control Length igual que el nmero de caracteres en Source, introduzca 0.

inmediato

Characters Sent

DINT

inmediato

Durante la ejecucin, muestra el nmero de caracteres enviados.

Texto estructurado
AWA(Channel,Source, SerialPortControl);

Los operandos son los mismos que para la instruccin AWA de lgica de escalera de rels. Sin embargo, usted especifica los valores de Serial Port Control Length y Characters Sent accediendo a los miembros .LEN y .POS de la estructura SERIAL_PORT_CONTROL, en lugar de incluir los valores en la lista de operandos.

Publicacin 1756-RM003K-ES-P Julio 2008

589

Captulo 17

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Estructura SERIAL_PORT_CONTROL
Mnemnico .EN .EU .DN .RN .EM .ER .FD .LEN .POS .ERROR Tipo de datos BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT DINT Descripcin El bit de habilitacin indica que la instruccin est habilitada. El bit de cola indica que la instruccin entr en la cola ASCII. El bit de efectuado indica que ha finalizado la instruccin, pero es asncrono respecto al escn de la lgica. El bit de ejecucin indica que la instruccin se est ejecutando. El bit de vaco indica que finaliz la instruccin, pero es sncrono respecto al escn de la lgica. El bit de error indica que la instruccin fall (errores). El bit de encontrado no se aplica a esta instruccin. La longitud indica el nmero de caracteres a enviar. La posicin muestra el nmero de caracteres que se enviaron. El error contiene un valor hexadecimal que identifica la causa del error.

Descripcin: La instruccin AWA:


enva el nmero especificado de caracteres (Serial Port Control Length) del tag Source al dispositivo conectado al puerto serie del controlador. aade al final de los caracteres (adiciona) ya sea uno o dos caracteres definidos en el cuadro de dilogo Controller Properties, ficha User Protocol. Para programar la instruccin AWA, siga estas pautas: 1. Configure el puerto serie del controlador: a. Incluye la aplicacin tambin instrucciones ARD o ARL?
Si la respuesta es afirmativa la respuesta es negativa Entonces seleccione el modo de usuario seleccione ya sea el modo de sistema o el modo de usuario

b. Defina los caracteres que se agregarn a los datos. 2. sta es una instruccin transicional: En la lgica de escalera de rels, cambie la condicin de entrada del rengln de borrado a establecido cada vez que deba ejecutarse la instruccin. En texto estructurado, condicione la instruccin de manera que slo se ejecute cuando ocurra una transicin.

590

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Captulo 17

3. Enva usted siempre el mismo nmero de caracteres cada vez que se ejecuta la instruccin?
Si la respuesta es afirmativa la respuesta es negativa Entonces En Serial Port Control Length, introduzca el nmero de caracteres a enviar. Antes de que se ejecute la instruccin, establezca el miembro LEN del tag Source al miembro LEN del tag Serial Port Control.

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 se ejecuta cuando la condicin de entrada del rengln cambia de borrado a establecido. La condicin de salida de rengln se establece como verdadera. EnableIn se establece n. a. EnableIn siempre se establece. La instruccin se ejecuta. ejecucin de la instruccin La instruccin enva un nmero especificado de caracteres y aade uno o dos caracteres predefinidos. El bit .EN se establece. Los bits de estado restantes, excepto .UL, se borran. La instruccin trata de entrar en la cola ASCII. post-escn La condicin de salida de rengln se establece como falsa. Ninguna. Accin de texto estructurado Ninguna. n. a. n. a.

Publicacin 1756-RM003K-ES-P Julio 2008

591

Captulo 17

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Ejemplo 1: Cuando la temperatura excede el lmite alto (temp_high se establece)


la instruccin AWA enva un mensaje a un terminal MessageView que est conectado al puerto serie del controlador. El mensaje contiene cinco caracteres del miembro DATA del tag string[1], que es una cadena. (El $14 se cuenta como un carcter. Es el cdigo hexadecimal del carcter Ctrl-T). La instruccin tambin enva (adiciona) los caracteres definidos en las propiedades del controlador. En este ejemplo, la instruccin AWA enva un retorno de carro ($0D), que marca el final del mensaje.

Lgica de escalera de rels


temp_high temp_high AWA AWA ASCII Write Append ASCII Write Append Channel Channel Source Source

EN EN DN DN

0 string[1] string[1] '$1425\1' temp_high_write SerialPort Control temp_high_write SerialPort Control SerialPort Control Length SerialPort Control Length 5 Characters Sent Characters Sent 6

ER ER

Texto estructurado
IF temp_high THEN temp_high_write.LEN := 5; AWA(0,string[1],temp_high_write); temp_high := 0; END_IF;

592

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Captulo 17

Ejemplo 2: Cuando alarm se establece, la instruccin AWA enva el nmero de


caracteres especificado en alarm_msg y aade el o los caracteres de terminacin. Puesto que el nmero de caracteres en alarm_msg vara, el rengln primero pasa la longitud de la cadena (alarm_msg.LEN) a Serial Port Control Length de la instruccin AWA (alarm_write.LEN). En alarm_msg, el $14 se cuenta como un carcter. Es el cdigo hexadecimal del carcter Ctrl-T.

Lgica de escalera de rels


alarm alarm MOV MOV AWA AWA ASCII Write Append ASCII Write Append Channel Channel Source Source SerialPort Control SerialPort Control SerialPort Control Length SerialPort Control Length Characters Sent Characters Sent

Move Move Source alarm_msg.LEN Source alarm_msg.LEN


Dest. Dest

EN EN

5 alarm_write.LEN alarm_write.LEN 5

0 alarm_msg alarm_msg '$1425\1' alarm_write alarm_write 5 6

DN DN ER ER

Texto estructurado
osri_1.InputBit := alarm; OSRI(osri_1);

IF (osri_1.OutputBit) THEN alarm_write.LEN := alarm_msg.LEN; AWA(0,alarm_msg,alarm_write); END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008

593

Captulo 17

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Escritura ASCII (ASCII Write (AWT))


Operandos:

La instruccin AWT enva un nmero especificado de caracteres del tag de origen a un dispositivo serie.

Lgica de escalera de rels


ASCII Write ASCII Write Channel Channel Source Source AWT AWT
EN EN ? ? ?? ? ? ?

DN DN ER ER

SerialPort Control SerialPort Control SerialPort ControlLength Length SerialPort Control Characters Sent Characters Sent

Operando Channel

Tipo DINT

Formato inmediato tag

Introduzca 0

Notas

Source

cadena SINT INT DINT

tag

tag que contiene los caracteres a enviar: Para un tipo de datos de cadena, introduzca el nombre del tag. Para una matriz SINT, INT o DINT, introduzca el primer elemento de la matriz.

Si desea comparar, convertir o manipular los caracteres, use un tipo de datos de cadena. Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree

Serial Port Control Serial Port Control Length

SERIAL_PORT_ CONTROL DINT

tag

tag que controla la operacin el nmero de caracteres a enviar Serial Port Control Length debe ser menor o igual que el tamao de Source. Si desea establecer Serial Port Control Length igual que el nmero de caracteres en Source, introduzca 0.

inmediato

Characters Sent

DINT

inmediato

Durante la ejecucin, muestra el nmero de caracteres enviados.

Texto estructurado
AWT(Channel,Source, SerialPortControl);

Los operandos son los mismos que para la instruccin AWT de lgica de escalera de rels. Sin embargo, usted especifica los valores de Serial Port Control Length y Characters Sent accediendo a los miembros .LEN y .POS de la estructura SERIAL_PORT_CONTROL, en lugar de incluir los valores en la lista de operandos.

594

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Captulo 17

Estructura SERIAL_PORT_CONTROL
Mnemnico .EN .EU .DN .RN .EM .ER .FD .LEN .POS .ERROR Tipo de datos BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT DINT Descripcin El bit de habilitacin indica que la instruccin est habilitada. El bit de cola indica que la instruccin entr en la cola ASCII. El bit de efectuado indica que ha finalizado la instruccin, pero es asncrono respecto al escn de la lgica. El bit de ejecucin indica que la instruccin se est ejecutando. El bit de vaco indica que finaliz la instruccin, pero es sncrono respecto al escn de la lgica. El bit de error indica que la instruccin fall (errores). El bit de encontrado no se aplica a esta instruccin. La longitud indica el nmero de caracteres a enviar. La posicin muestra el nmero de caracteres que se enviaron. El error contiene un valor hexadecimal que identifica la causa del error.

Descripcin: La instruccin AWT enva el nmero especificado de caracteres (Serial


Port Control Length) del tag Source al dispositivo conectado al puerto serie del controlador. Para programar la instruccin AWT, siga estas pautas: 1. Configure el puerto serie del controlador:
Si la aplicacin usa instrucciones ARD o ARL no usa instrucciones ARD o ARL Entonces Seleccione el modo de usuario Seleccione ya sea el modo de sistema o el modo de usuario

2. sta es una instruccin transicional: En la lgica de escalera de rels, cambie la condicin de entrada del rengln de borrado a establecido cada vez que deba ejecutarse la instruccin. En texto estructurado, condicione la instruccin de manera que slo se ejecute cuando ocurra una transicin. 3. Enva usted siempre el mismo nmero de caracteres cada vez que se ejecuta la instruccin?
Si la respuesta es afirmativa la respuesta es negativa Entonces En Serial Port Control Length, introduzca el nmero de caracteres a enviar. Antes de que se ejecute la instruccin, mueva el miembro LEN del tag Source al miembro LEN del tag Serial Port Control.

Publicacin 1756-RM003K-ES-P Julio 2008

595

Captulo 17

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

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


Condicin 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 cuando la condicin de entrada del rengln cambia de borrado a establecido. 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

La instruccin enva un nmero especificado de caracteres. El bit .EN se establece. Los bits de estado restantes, excepto .UL, se borran. La instruccin trata de entrar en la cola ASCII.

post-escn

La condicin de salida de rengln se establece como Ninguna. falsa.

Ejemplo 1: Cuando la temperatura llega al lmite bajo (temp_low se establece),


la instruccin AWT enva un mensaje al terminal MessageView que est conectado al puerto serie del controlador. El mensaje contiene nueve caracteres del miembro DATA del tag string[2], que es una cadena. (El $14 se cuenta como un carcter. Es el cdigo hexadecimal del carcter Ctrl-T). El ltimo carcter es el retorno de carro ($r), el cual indica el fin del mensaje.

Lgica de escalera de rels


temp_low temp_low ASCII Write ASCII Write Channel Channel Source Source AWT AWT EN EN DN DN ER ER

0 string[2] string[2] '$142224\01$r' SerialPort Control temp_low_write SerialPort Control temp_low_write SerialPort Control Length SerialPort Control Length 9 Characters Sent Characters Sent 9

596

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Captulo 17

Texto estructurado
osri_1.InputBit := temp_low; OSRI(osri_1); IF (osri_1.OutputBit) THEN temp_low_write.LEN := 9; AWT(0,string[2],temp_low_write); END_IF;

Ejemplo 2: Cuando MV_update se establece, la instruccin AWT enva los


caracteres en MV_msg. Puesto que el nmero de caracteres en MV_msg vara, el rengln primero pasa la longitud de la cadena (MV_msg.LEN) a Serial Port Control Length de la instruccin AWT (MV_write.LEN). En MV_msg, el $16 se cuenta como un carcter. Es el cdigo hexadecimal del carcter Ctrl-V.

Lgica de escalera de rels


MV_update MV_update MOV MOV Move Move Source MV_msg.LEN Source MV_msg.LEN Dest. Dest AWT AWT EN EN DN DN ER ER

10 MV_write.LEN MV_write.LEN 10

ASCII Write ASCII Write Channel Channel Source Source

0 MV_msg MV_msg '$161365\8\1$r' SerialPort Control MV_write SerialPort Control MV_write SerialPort Control Length SerialPort Control Length 10 Characters Sent Characters Sent 10

Texto estructurado
osri_1.InputBit := MV_update; OSRI(osri_1);

IF (osri_1.OutputBit) THEN MV_write.LEN := Mv_msg.LEN; AWT(0,MV_msg,MV_write); END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008

597

Captulo 17

Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)

Notas:

598

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

18

Instrucciones de cadena ASCII


(CONCAT, DELETE, FIND, INSERT, MID)

Introduccin
Si desea aadir caracteres al final de una cadena

Use las instrucciones de cadena ASCII para modificar y crear cadenas de caracteres ASCII.
Por ejemplo aadir caracteres de terminacin o delimitadores a una cadena Use esta instruccin CONCAT Disponible en estos lenguajes lgica de escalera de rels texto estructurado Vea la pgina 601

eliminar caracteres de una cadena

eliminar caracteres de encabezado o control de una cadena

DELETE

lgica de escalera de rels texto estructurado

603

determinar el carcter inicial de una subcadena

hallar un grupo de caracteres dentro de una cadena

FIND

lgica de escalera de rels texto estructurado

605

insertar caracteres dentro de una cadena

crear una cadena que usa variables

INSERT

lgica de escalera de rels texto estructurado

607

extraer caracteres de una cadena

extraer informacin de un cdigo de barra

MID

lgica de escalera de rels texto estructurado

609

Tambin es posible usar las siguientes instrucciones para comparar o convertir caracteres ASCII:
Si desea comparar una cadena con otra cadena determinar si los caracteres son iguales a caracteres especficos determinar si los caracteres son diferentes a caracteres especficos determinar si los caracteres son mayores o iguales que caracteres especficos determinar si los caracteres son mayores que caracteres especficos determinar si los caracteres son menores o iguales que caracteres especficos determinar si los caracteres son menores que caracteres especficos reacomodar los bytes de un tag INT, DINT o REAL encontrar una cadena en una matriz de cadenas convertir caracteres en un valor SINT, INT, DINT o REAL Use esta instruccin CMP EQU NEQ GEQ GRT LEQ LES SWPB FSC STOD Vea la pgina 206 211 242 211 219 223 227 300 347 614

599Publicacin 1756-RM003K-ES-P Julio 2008

599

Captulo 18

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

Si desea convertir caracteres en un valor REAL convertir un valor SINT, INT, DINT o REAL en una cadena de caracteres ASCII convertir un valor REAL en una cadena de caracteres ASCII

Use esta instruccin STOR DTOS RTOS

Vea la pgina 616 619 621

Tipos de datos de cadena


Los caracteres ASCII se almacenan en tags que usan un tipo de datos de cadena. Puede usar el tipo de datos STRING predeterminado. Almacena hasta 82 caracteres. Usted puede crear un nuevo tipo de datos de cadena que almacene menos o ms caracteres. Para crear un nuevo tipo de datos de cadena, consulte el documento Logix5000 Controllers Common Procedures, publicacin 1756-PM001.

Cada tipo de datos de cadena contiene los siguientes miembros:


Nombre LEN Tipo de datos Descripcin DINT nmero de caracteres en la cadena Notas El LEN se actualiza automticamente al nuevo conteo de caracteres cuando usted: usa el cuadro de dilogo String Browser para introducir caracteres usa las instrucciones que leen, convierten o manipulan una cadena

El LEN muestra la longitud de la cadena actual. El miembro DATA puede contener caracteres adicionales antiguos, los cuales no se incluyen en el conteo LEN. DATA Matriz SINT caracteres ASCII de la cadena Para obtener acceso a los caracteres de la cadena, utilice el nombre del tag. Por ejemplo, para acceder a los caracteres del tag string_1, introduzca string_1. Cada elemento de la matriz DATA contiene un carcter. Usted puede crear nuevos tipos de datos de cadena que almacenen menos o ms caracteres.

600

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 18

Concatenacin de cadenas (CONCAT)


Operandos:
CONCAT CONCAT Sting Concatenate String Concatenate Source A A Source ?? ???? Source ?? Source B B ???? Dest ?? Dest ????

La instruccin CONCAT aade caracteres ASCII al final de una cadena.

Lgica de escalera de rels

Operando Source A Source B Destination

Tipo cadena cadena cadena

Formato tag tag tag

Introduzca tag que contiene los caracteres iniciales tag que contiene los caracteres finales tag para almacenar el resultado

Notas Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree

Texto estructurado
CONCAT(SourceA,SourceB, Dest);

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

Descripcin: La instruccin CONCAT combina los caracteres en Source A con los


caracteres en Source B y coloca el resultado en Destination. Los caracteres de Source A son los primeros, seguidos por los caracteres de Source B. A menos que Source A y Destination sean el mismo tag, Source A no cambia.

Indicadores de estado aritmtico: no afectados Condiciones de fallo:


Tipo 4 Cdigo 51 Causa El valor LEN del tag de cadena es mayor que el tamao de DATA del tag de cadena. Mtodo de recuperacin 1. Verifique que ninguna instruccin est escribiendo en el miembro LEN del tag de cadena. 2. En el valor LEN, introduzca el nmero de caracteres que contiene la cadena.

Publicacin 1756-RM003K-ES-P Julio 2008

601

Captulo 18

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

Ejecucin:
Condicin 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 concatena las cadenas. La condicin de salida de rengln se establece como falsa. Ninguna.

Ejemplo: Para activar un mensaje en un terminal MessageView, el controlador


debe enviar una cadena ASCII que contenga un nmero de mensaje y nmero de nodo. String_1 contiene el nmero de mensaje. Cuando add_node se establece, la instruccin CONCAT aade los caracteres en node_num_ascii (nmero de nodo) al final de los caracteres en string_1 y posteriormente almacena el resultado en msg.

Lgica de escalera de rels


add_node
Sting Concatenate String Concatenate Source A A string_1 Source string_1 $1423\ '$1423\' Source B B node_num_ascii node_num_ascii Source '1' 1 Dest msg Dest msg '$1423\1' $1423\1
CONCAT CONCAT

Texto estructurado
IF add_node THEN CONCAT(string_1,node_num_ascii,msg); add_node := 0; END_IF;

602

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 18

Eliminacin de cadena (DELETE)


Operandos:
DELETE DELETE Sting Delete String Delete Source Source Qty Qty Start Start
Dest Dest

La instruccin DELETE retira los caracteres ASCII de una cadena.

Lgica de escalera de rels


?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??

Operando Source

Tipo cadena

Formato tag

Introduzca el tag que contiene la cadena de la cual se desea eliminar los caracteres

Notas Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree

Quantity

SINT INT DINT

inmediato tag

el nmero de caracteres que se desea eliminar

Start as como Quantity deben ser menores o iguales al tamao de DATA de Source.

Start

SINT INT DINT

inmediato tag

la posicin del primer carcter que se debe eliminar

Introduzca un nmero entre 1 y el tamao de DATA de Source.

Destination

cadena

tag

tag para almacenar el resultado

Texto estructurado
DELETE(Source,Qty,Start, Dest);

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

Descripcin: La instruccin DELETE elimina (retira) un grupo de caracteres de


Source y coloca los caracteres restantes en Destination. La posicin Start as como Quantity definen los caracteres a retirar. A menos que Source y Destination sean el mismo tag, Source no cambia.

Publicacin 1756-RM003K-ES-P Julio 2008

603

Captulo 18

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

Indicadores de estado aritmtico: no afectados Condiciones de fallo:


Tipo 4 Cdigo 51 Causa El valor LEN del tag de cadena es mayor que el tamao de DATA del tag de cadena. El valor de Start o Quantity no es vlido. Mtodo de recuperacin 1. Verifique que ninguna instruccin est escribiendo en el miembro LEN del tag de cadena. 2. En el valor LEN, introduzca el nmero de caracteres que contiene la cadena. 1. Verifique que el valor de Start est entre 1 y el tamao de DATA de Source. 2. Verifique que el valor de Start ms el valor Quantity sea menor o igual que el tamao de DATA de Source.

56

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 elimina los caracteres especificados. La condicin de salida de rengln se establece como falsa. Ninguna. Accin de texto estructurado Ninguna. n. a. n. a.

Ejemplo: La informacin ASCII de un terminal contiene un carcter de


encabezado. Despus de que el controlador lee los datos (term_read.EM se establece) la instruccin DELETE retira el carcter de encabezado (term_read.EM is set).

Lgica de escalera de rels


term_read.EM
DELETE DELETE Sting Delete String Delete Source term_input Source term_input $0655 '$0655' Qty Qty 11 Start Start Dest Dest

11
term_text term_text 55 '55'

Texto estructurado
IF term_read.EM THEN DELETE(term_input,1,1,term_text); term_read.EM := 0; END_IF;

604

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 18

Encontrar cadena (FIND)


Operandos:
FIND FIND Find String Find String Source Source Search Search
Start Start Result Result

La instruccin FIND localiza la posicin de una cadena especificada dentro de otra cadena.

Lgica de escalera de rels


?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??

Operando Source Buscar

Tipo cadena cadena

Formato tag tag

Introduzca cadena en que se debe buscar la cadena que se debe buscar la posicin en Source en la cual se debe iniciar la bsqueda

Notas Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree Introduzca un nmero entre 1 y el tamao de DATA de Source.

Start

SINT INT DINT

inmediato tag

Result

SINT INT DINT

tag

el tag que almacena la posicin inicial de la cadena que se debe buscar

Texto estructurado
FIND(Source,Search,Start, Result);

Los operandos son iguales a los de la instruccin FIND de lgica de escalera de rels antes descritos.

Descripcin: La instruccin FIND busca en la cadena Source la cadena Search. Si la


instruccin encuentra la cadena Search, Result muestra la posicin de inicio de la cadena Search dentro de la cadena Source.

Indicadores de estado aritmtico: no afectados Condiciones de fallo:


Tipo 4 Cdigo 51 Causa El valor LEN del tag de cadena es mayor que el tamao de DATA del tag de cadena. Mtodo de recuperacin 1. Verifique que ninguna instruccin est escribiendo en el miembro LEN del tag de cadena. 2. En el valor LEN, introduzca el nmero de caracteres que contiene la cadena. 4 56 El valor de Start no es vlido. Verifique que el valor de Start est entre 1 y el tamao de DATA de Source.

Publicacin 1756-RM003K-ES-P Julio 2008

605

Captulo 18

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

Ejecucin:
Condicin 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. ejecucin de la instruccin post-escn La instruccin busca los caracteres especificados. La condicin de salida de rengln se establece como Ninguna. falsa. n. a. n. a.

Ejemplo: Un mensaje de un terminal MessageView contiene varios


componentes de informacin. La barra diagonal invertida [ \ ] separa cada fragmento de informacin. Para ubicar un fragmento de informacin, la instruccin FIND busca el carcter correspondiente a la barra diagonal invertida y registra su posicin en find_pos.

Lgica de escalera de rels


MV_read.EM
FIND FIND Find String Find String Source MV_msg Source MV_msg $06324\12\1\$r '$06324\12\1\$r' Search find Search find '\'\ Start Start 11 Result Result find_pos find_pos 55

Texto estructurado
IF MV_read.EM THEN FIND(MV_msg,find,1,find_pos); MV_read.EM := 0; END_IF;

606

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 18

Insertar cadena (INSERT)


Operandos:
INSERT INSERT Insert String Insert String Source A A Source Source B B Source Start Start
Dest Dest

La instruccin INSERT aade caracteres ASCII a un lugar especificado dentro de una cadena.

Lgica de escalera de rels


?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??

Operando Source A Source B

Tipo cadena cadena

Formato tag tag

Introduzca

Notas

la cadena a la cual se Los tipos de datos de cadena son: deben aadir los caracteres tipo de datos STRING predeterminado la cadena que contiene los cualquier tipo de datos nuevo que usted caracteres que se deben cree aadir la posicin en Source A a la Introduzca un nmero entre 1 y el tamao de DATA de Source. cual se deben aadir los caracteres

Start

SINT INT DINT

inmediato tag

Result

cadena

tag

cadena para almacenar el resultado

Texto estructurado
INSERT(SourceA,SourceB, Start,Dest);

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

Descripcin: La instruccin INSERT aade los caracteres en Source B a una


posicin designada dentro de Source A y coloca el resultado en Destination: Inicio define dnde se aade en Source A dicho Source B. A menos que SourceA y Destination sean el mismo tag, Source A no cambia.

Indicadores de estado aritmtico: no afectados Condiciones de fallo:


Tipo 4 Cdigo 51 Causa El valor LEN del tag de cadena es mayor que el tamao de DATA del tag de cadena. Mtodo de recuperacin 1. Verifique que ninguna instruccin est escribiendo en el miembro LEN del tag de cadena. 2. En el valor LEN, introduzca el nmero de caracteres que contiene la cadena. 4 56 El valor de Start no es vlido. Verifique que el valor de Start est entre 1 y el tamao de DATA de Source.

Publicacin 1756-RM003K-ES-P Julio 2008

607

Captulo 18

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

Ejecucin:
Condicin 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 inserta los caracteres especificados. La condicin de salida de rengln se establece como falsa. Ninguna.

Ejemplo: Cuando temp_high se establece, la instruccin INSERT aade los


caracteres en string_2 a la posicin 2 dentro de string_1 y coloca el resultado en string_3:

Lgica de escalera de rels


temp_high
INSERT INSERT Insert String Insert String Source A A string_1 Source string_1 AD 'AD' Source B B string_2 Source string_2 BC 'BC' Start Start 22 Dest Dest string_3 string_3 ABCD 'ABCD'

Texto estructurado
IF temp_high THEN INSERT(string_1,string_2,2,string_3); temp_high := 0; END_IF;

608

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 18

Cadena central (MID)


Operandos:
MID MID Middle String Middle String Source Source Qty Qty Start Start Dest Dest

La instruccin MID copia un nmero especificado de caracteres ASCII de una cadena y los almacena en otra cadena.

Lgica de escalera de rels


?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??

Operando Source

Tipo cadena

Formato tag

Introduzca

Notas

la cadena de la cual se Los tipos de datos de cadena son: deben copiar los caracteres tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree

Quantity

SINT INT DINT

inmediato tag

el nmero de caracteres que se desea copiar

Start as como Quantity deben ser menores o iguales al tamao de DATA de Source.

Start

SINT INT DINT

inmediato tag

la posicin del primer Introduzca un nmero entre 1 y el tamao de carcter que se debe copiar DATA de Source.

Destination

cadena

tag

la cadena a la cual se deben copiar los caracteres

Texto estructurado
MID(Source,Qty,Start, Dest);

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

Descripcin: La instruccin MID copia un grupo de caracteres desde Source y


coloca el resultado en Destination. La posicin Start as como Quantity definen los caracteres a copiar. A menos que Source y Destination sean el mismo tag, Source no cambia.

Indicadores de estado aritmtico: no afectados

Publicacin 1756-RM003K-ES-P Julio 2008

609

Captulo 18

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

Condiciones de fallo:
Tipo 4 Cdigo 51 Causa El valor LEN del tag de cadena es mayor que el tamao de DATA del tag de cadena. El valor de Start o Quantity no es vlido. Mtodo de recuperacin 1. Verifique que ninguna instruccin est escribiendo en el miembro LEN del tag de cadena. 2. En el valor LEN, introduzca el nmero de caracteres que contiene la cadena. 1. Verifique que el valor de inicio est entre 1 y el tamao de DATA de Source. 2. Verifique que el valor de Start ms el valor de Quantity sea menor o igual que el tamao de DATA de Source.

56

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 MID copia los caracteres especificados de una cadena y los almacena en otra cadena. La condicin de salida de rengln se establece como falsa. Ninguna. Accin de texto estructurado Ninguna. n. a. n. a.

Ejemplo: En un transportador de manejo de maletas de un aeropuerto, cada


maleta tiene un cdigo de barras. Los caracteres 9 a 17 del cdigo de barra corresponden al nmero de vuelo y aeropuerto de destino de la maleta. Despus de que se lee el cdigo de barras (bag_read.EM se establece) la instruccin MID copia el nmero de vuelo y aeropuerto de destino en la cadena bag_flt_and_dest.

Lgica de escalera de rels


bag_read.EM
MID MID Middle String Middle String Source bag_barcode Source bag_barcode NWA 5058 HOP 5058 AMS 01 'NWA HOP AMS 01' Qty Qty 99 Start Start

99 bag_flt_and_dest bag_flt_and_dest '5058 AMS ' 5058 AMS

Dest Dest

Texto estructurado
IF bag_read.EM THEN MID(bar_barcode,9,9,bag_flt_and_dest); bag_read.EM := 0; END_IF;

610

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

19

Instrucciones de conversin ASCII


(STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Introduccin
Si desea convertir la representacin ASCII de un valor entero en un valor SINT, INT, DINT o REAL convertir la representacin ASCII de un valor de punto flotante (coma flotante) en un valor REAL convertir un valor SINT, INT, DINT o REAL en una cadena de caracteres ASCII convertir un valor REAL en una cadena de caracteres ASCII

Use las instrucciones de conversin ASCII para alterar el formato de los datos.
Por ejemplo convertir un valor proveniente de una bscula u otro dispositivo ASCII en un nmero entero para usarlo en la lgica convertir un valor proveniente de una bscula u otro dispositivo ASCII en un valor REAL para usarlo en la lgica convertir una variable en una cadena ASCII para enviarla a un terminal MessageView convertir una variable en una cadena ASCII para enviarla a un terminal MessageView convertir en maysculas una entrada hecha por un operador para poder buscarla en una matriz convertir en minsculas una entrada hecha por un operador para poder buscarla en una matriz Use esta instruccin STOD Disponible en estos lenguajes lgica de escalera de rels texto estructurado STOR lgica de escalera de rels texto estructurado DTOS lgica de escalera de rels texto estructurado RTOS lgica de escalera de rels texto estructurado 621 619 616 Vea la pgina 614

convertir en maysculas las letras de una cadena de caracteres ASCII

UPPER

lgica de escalera de rels texto estructurado

623

convertir en minsculas las letras en una cadena de caracteres ASCII

LOWER

lgica de escalera de rels texto estructurado

625

611Publicacin 1756-RM003K-ES-P Julio 2008

611

Captulo 19

Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Tambin es posible usar las siguientes instrucciones para comparar o manipular caracteres ASCII:
Si desea aadir caracteres al final de una cadena eliminar caracteres de una cadena identificar el carcter inicial de una subcadena insertar caracteres dentro de una cadena extraer caracteres de una cadena reacomodar los bytes de un tag INT, DINT o REAL comparar una cadena con otra cadena determinar si los caracteres son iguales a caracteres especficos determinar si los caracteres son diferentes a caracteres especficos determinar si los caracteres son mayores o iguales que caracteres especficos determinar si los caracteres son mayores que caracteres especficos determinar si los caracteres son menores o iguales que caracteres especficos determinar si los caracteres son menores que caracteres especficos encontrar una cadena en una matriz de cadenas Use esta instruccin CONCAT DELETE FIND INSERT MID SWPB CMP EQU NEQ GEQ GRT LEQ LES FSC Vea la pgina 601 603 605 607 609 300 206 211 242 215 219 223 227 347

612

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Captulo 19

Tipos de datos de cadena


Los caracteres ASCII se almacenan en tags que usan un tipo de datos de cadena. Puede usar el tipo de datos STRING predeterminado, que almacena hasta 82 caracteres. Usted puede crear un nuevo tipo de datos de cadena que almacene menos o ms caracteres. Para crear un nuevo tipo de datos de cadena, consulte el documento Logix5000 Controllers Common Procedures, publicacin 1756-PM001.

Cada tipo de datos de cadena contiene los siguientes miembros:


Nombre: LEN Tipo de datos: DINT Descripcin: nmero de caracteres en la cadena Notas: El LEN se actualiza automticamente con el nuevo conteo de los caracteres cuando usted: usa el cuadro de dilogo String Browser para introducir caracteres usa instrucciones que leen, convierten o manipulan una cadena

El LEN muestra la longitud de la cadena actual. El miembro DATA puede contener caracteres adicionales antiguos, los cuales no se incluyen en el conteo LEN. DATA Matriz SINT caracteres ASCII de la cadena Para obtener acceso a los caracteres de la cadena, utilice el nombre del tag. Por ejemplo, para acceder a los caracteres del tag string_1, introduzca string_1. Cada elemento de la matriz DATA contiene un carcter. Usted puede crear nuevos tipos de datos de cadena que almacenen menos o ms caracteres.

Publicacin 1756-RM003K-ES-P Julio 2008

613

Captulo 19

Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Cadena en DINT (STOD)


Operandos:

La instruccin STOD convierte la representacin ASCII de un nmero entero en un valor entero o REAL.

Lgica de escalera de rels


STOD STOD String ToTo DINT String DINT Source Source ?? ?? ?? Dest Dest ?? ?? ??

Operando Source

Tipo cadena

Formato tag

Introduzca el tag que contiene el valor en ASCII

Notas Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree

Destination

SINT INT DINT REAL

tag

el tag en que se almacena el valor entero

Si el valor Source es un nmero de punto flotante (coma flotante), la instruccin convierte solamente la parte no fraccionaria del nmero (independientemente del tipo de datos de destino).

STOD(Source,Dest);

Texto estructurado
Los operandos son iguales a los de la instruccin STOD de lgica de escalera de rels.

Descripcin: STOD convierte Source a un valor entero y coloca el resultado en


Destination. La instruccin convierte nmeros positivos y negativos. Si la cadena Source contiene caracteres no numricos, STOD convierte el primer conjunto de nmeros contiguos: La instruccin ignora los caracteres de control inicial y caracteres no numricos (excepto el signo menos frente a un nmero). Si la cadena contiene mltiples grupos de nmeros separados por delimitadores (por ejemplo, /), la instruccin convierte solamente el primer grupo de nmeros.

Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados.

614

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Captulo 19

Condiciones de fallo
Tipo 4 Cdigo 51 Causa El valor LEN del tag de cadena es mayor que el tamao de DATA del tag de cadena. Mtodo de recuperacin 1. Verifique que ninguna instruccin est escribiendo en el miembro LEN del tag de cadena. 2. En el valor LEN, introduzca el nmero de caracteres que contiene la cadena. 4 53 El nmero de salida sobrepasa los lmites del tipo de datos de destino. Realice uno de los siguientes: Reduzca el tamao del valor ASCII. Use un tipo de datos mayor para el destino.

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 SC se establece Destination se borra. La instruccin convierte Source. Si el resultado es cero, S:Z se establece. post-escn La condicin de salida de rengln se establece como falsa. Ninguna. Accin de texto estructurado Ninguna. n. a. n. a.

Ejemplo: Cuando MV_read.EM se establece, la instruccin STOD convierte en


un valor entero el primer conjunto de caracteres numricos de MV_msg. La instruccin ignora el carcter de control inicial ($06) y se detiene en el delimitador ( \ ).

Lgica de escalera de rels


MV_read.EM
STOD STOD String To DINT String To DINT Source MV_msg Source MV_msg $06324\12\1\$r '$06324\12\1\$r' Dest MV_msg_nmbr Dest MV_msg_nmbr 324

324

Publicacin 1756-RM003K-ES-P Julio 2008

615

Captulo 19

Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Texto estructurado
IF MV_read.EM THEN STOD(MV_msg,MV_msg_nmbr); MV_read.EM := 0; END_IF;

Cadena en REAL (STOR)


Operandos:
STOR STOR String toto Real String Real Source Source
Dest Dest

La instruccin STOR convierte en un valor REAL la representacin ASCII de un valor de punto flotante (coma flotante).

Operadores de escalera de rel


?? ?? ?? ?? ?? ??

Operando Source

Tipo cadena

Formato tag

Introduzca el tag que contiene el valor en ASCII

Notas Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree

Destination

REAL

tag

el tag en que se almacena el valor REAL

STOR(Source,Dest);

Texto estructurado
Los operandos son iguales a los de la instruccin STOR de lgica de escalera de rels.

Descripcin: La instruccin STOR convierte Source en un valor REAL y coloca el


resultado en Destination. La instruccin convierte nmeros positivos y negativos. Si la cadena Source contiene caracteres no numricos, STOR convierte el primer conjunto de nmeros contiguos, inclusive el punto decimal [ . ]: La instruccin ignora los caracteres de control inicial o caracteres no numricos (excepto el signo menos frente a un nmero). Si la cadena contiene varios grupos de nmeros separados por delimitadores (por ejemplo, /), la instruccin convierte solamente el primer grupo de nmeros.

Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados.

616

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Captulo 19

Condiciones de fallo:
Tipo 4 Cdigo 51 Causa El valor LEN del tag de cadena es mayor que el tamao de DATA del tag de cadena. Mtodo de recuperacin 1. Verifique que ninguna instruccin est escribiendo en el miembro LEN del tag de cadena. 2. En el valor LEN, introduzca el nmero de caracteres que contiene la cadena. 4 53 El nmero de salida sobrepasa los lmites del tipo de datos de destino. Realice uno de los siguientes: Reduzca el tamao del valor ASCII. Use un tipo de datos mayor para el destino.

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 S:C se establece. Destination se borra. La instruccin convierte Source. Si el resultado es cero, S:Z se establece. post-escn La condicin de salida de rengln se establece como falsa. Ninguna. Accin de texto estructurado Ninguna. n. a. n. a.

Ejemplo: Despus de leer el resultado del pesaje en una bscula


(weight_read.EM se establece) la instruccin STOR convierte en un valor REAL los caracteres numricos de weight_ascii. Es posible que se perciba una pequea diferencia entre las partes fraccionarias de Source y Destination.

Lgica de escalera de rels


weight_read.EM
STOR STOR String to Real String to Real Source weight_axcii Source weight_ascii 428.259 '428.259' Dest weight Dest weight 428.259

428.259

Publicacin 1756-RM003K-ES-P Julio 2008

617

Captulo 19

Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Texto estructurado
IF weight_read.EM THEN STOR(weight_ascii,weight); weight_read.EM := 0; END_IF;

618

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Captulo 19

DINT en cadena (DTOS)


Operandos:
DTOS DTOS DINT to to String DINT String Source Source Dest Dest

La instruccin DTOS produce la representacin ASCII de un valor.

Lgica de escalera de rels


?? ?? ?? ?? ?? ??

Operando Source

Tipo SINT INT DINT REAL

Formato tag

Introduzca

Notas

el tag que contiene el valor Si Source es un nmero REAL, la instruccin lo convierte en un valor DINT. Consulte REAL en un nmero entero en la pgina 640.

Destination

cadena

tag

el tag en que se almacena el valor ASCII

Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree

DTOS(Source,Dest);

Texto estructurado
Los operandos son iguales a los de la instruccin DTOS de lgica de escalera de rels.

Descripcin: La instruccin DTOS convierte Source en una cadena de caracteres


ASCII y coloca el resultado en Destination.

Indicadores de estado aritmtico: no afectados Condiciones de fallo:


Tipo 4 Cdigo 51 Causa El valor LEN del tag de cadena es mayor que el tamao de DATA del tag de cadena. Mtodo de recuperacin 1. Verifique que ninguna instruccin est escribiendo en el miembro LEN del tag de cadena. 2. En el valor LEN, introduzca el nmero de caracteres que contiene la cadena. 4 52 La cadena de salida es mayor que el destino. Prepare un nuevo tipo de datos de cadena que sea suficientemente grande para la cadena de salida. Use el nuevo tipo de datos de cadena como tipo de datos para el destino.

Publicacin 1756-RM003K-ES-P Julio 2008

619

Captulo 19

Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Ejecucin:
Condicin 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 convierte Source. La condicin de salida de rengln se establece como Ninguna. falsa.

Ejemplo: Cuando temp_high se establece, la instruccin DTOS convierte en una


cadena de caracteres ASCII el valor en msg_num y coloca el resultado en msg_num_ascii. Los renglones subsiguientes insertan o concatenan msg_num_ascii con otras cadenas a fin de producir un mensaje completo para un terminal de pantalla.

Lgica de escalera de rels


temp_high
DTOS DTOS DINT to String DINT to String Source msg_num Source msg_num 23 23 Dest msg_num_ascii Dest msg_num_ascii 23

'23'

Texto estructurado
IF temp_high THEN DTOS(msg_num,msg_num_ascii); temp_high := 0; END_IF;

620

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Captulo 19

REAL en cadena (RTOS)


Operandos:
RTOS RTOS Real to to String Real String Source Source Dest Dest

La instruccin RTOS produce la representacin ASCII de un valor REAL.

Lgica de escalera de rels


?? ???? ?? ????

Operando Source Destination

Tipo REAL cadena

Formato tag tag

Introduzca el tag que contiene el valor REAL el tag en que se almacena el valor ASCII

Notas

Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree

RTOS(Source,Dest);

Texto estructurado
Los operandos son iguales a los de la instruccin RTOS de lgica de escalera de rels.

Descripcin: La instruccin RTOS convierte Source a una cadena de caracteres


ASCII y coloca el resultado en Destination.

Indicadores de estado aritmtico: no afectados Condiciones de fallo:


Tipo 4 Cdigo 51 Causa El valor LEN del tag de cadena es mayor que el tamao de DATA del tag de cadena. Mtodo de recuperacin 1. Verifique que ninguna instruccin est escribiendo en el miembro LEN del tag de cadena. 2. En el valor LEN, introduzca el nmero de caracteres que contiene la cadena. 4 52 La cadena de salida es mayor que el destino. Prepare un nuevo tipo de datos de cadena que sea suficientemente grande para la cadena de salida. Use el nuevo tipo de datos de cadena como tipo de datos para el destino.

Publicacin 1756-RM003K-ES-P Julio 2008

621

Captulo 19

Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Ejecucin:
Condicin 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 convierte Source. La condicin de salida de rengln se establece como Ninguna. falsa.

Ejemplo: Cuando send_data se establece, la instruccin RTOS convierte en una


cadena de caracteres ASCII el valor en data_1 y coloca el resultado en data_1_ascii. Los renglones subsiguientes insertan o concatenan data_1_ascii con otras cadenas para producir un mensaje completo para un terminal de pantalla. Es posible que se perciba una pequea diferencia entre las partes fraccionarias de Source y Destination.

Lgica de escalera de rels


send_data
RTOS RTOS Real to String Real to String Source data_1 Source data_1 15.3001 15.3001 Dest data_1_ascii Dest data_1_ascii 15.301003

'15.3001003'

Texto estructurado
IF send_data THEN RTOS(data_1,data_1_ascii); send_data := 0; END_IF;

622

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Captulo 19

Maysculas (UPPER)
Operandos:

La instruccin UPPER convierte en maysculas los caracteres alfabticos de una cadena.

Lgica de escalera de rels


Operando Source Destination Tipo cadena cadena Formato tag tag Descripcin el tag que contiene los caracteres que usted desea convertir en maysculas el tag para almacenar los caracteres en maysculas

UPPER(Source,Dest);

Texto estructurado
Los operandos son iguales a los de la instruccin UPPER de lgica de escalera de rels.

Descripcin: La instruccin UPPER convierte en maysculas todas las letras en


Source y coloca el resultado en Destination. Los caracteres ASCII permiten distinguir maysculas de minsculas. La A mayscula ($41) es diferente a la a minscula ($61). Si los operadores introducen directamente caracteres ASCII, convierta en maysculas o minsculas todos los caracteres antes de compararlos. Los caracteres en la cadena Source que no son letras permanecen iguales.

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


Condicin 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. Accin de texto estructurado Ninguna. n. a. n. a.

Publicacin 1756-RM003K-ES-P Julio 2008

623

Captulo 19

Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

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

La instruccin convierte Source en maysculas. La condicin de salida de rengln se establece como falsa. Ninguna.

Ejemplo: Para encontrar informacin acerca de un tem especifico, un operador


introduce el nmero de catlogo del tem en el terminal ASCII. Despus de que el controlador lee la entrada proveniente de un terminal (terminal_read.EM se establece), la instruccin UPPER convierte en maysculas todos los caracteres de catalog_number y almacena el resultado en catalog_number_upper_case. Posteriormente, un rengln subsiguiente busca en la matriz los caracteres que coinciden con los de catalog_number_upper_case.

Lgica de escalera de rels

Texto estructurado
IF terminal_read.EM THEN UPPER(catalog_number,catalog_number_upper_case); terminal_read.EM := 0; END_IF;

624

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Captulo 19

Minsculas (Lower Case (LOWER))


Operandos:

La instruccin LOWER convierte en minsculas los caracteres alfabticos de una cadena.

Lgica de escalera de rels


Operando Source Destination Tipo cadena cadena Formato tag tag Descripcin el tag que contiene los caracteres que usted desea convertir en minsculas el tag para almacenar los caracteres en minsculas

LOWER(Source,Dest);

Texto estructurado
Los operandos son iguales a los de la instruccin LOWER de lgica de escalera de rels.

Descripcin: La instruccin LOWER convierte en minsculas todas las letras en


Source y coloca el resultado en Destination. Los caracteres ASCII permiten distinguir maysculas de minsculas. La A mayscula ($41) es diferente a la a minscula ($61). Si los operadores introducen directamente caracteres ASCII, convierta en maysculas o minsculas todos los caracteres antes de compararlos. Los caracteres de la cadena Source que no son letras permanecen iguales.

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


Condicin 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. Accin de texto estructurado Ninguna. n. a. n. a.

Publicacin 1756-RM003K-ES-P Julio 2008

625

Captulo 19

Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

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

La instruccin convierte Source en minsculas. La condicin de salida de rengln se establece como falsa. Ninguna.

Ejemplo: Para encontrar informacin acerca de un tem especifico, un operador


introduce el nmero de catlogo en un terminal ASCII. Despus de que el controlador lee la entrada proveniente de un terminal (terminal_read.EM se establece) la instruccin LOWER convierte en minsculas todos los caracteres de item_number y almacena el resultado en item_number_lower_case. Posteriormente, un rengln subsiguiente busca en la matriz los caracteres que coinciden con los de item_number_lower_case.

Lgica de escalera de rels

Texto estructurado
IF terminal_read.EM THEN LOWER(item_number,item_number_lower_case); terminal_read.EM := 0; END_IF;

626

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

20

Instrucciones de depuracin
(BPT, TPT)

Introduccin

Use las instrucciones de depuracin para monitorear el estado de la lgica cuando est en condiciones determinadas por usted. Estas instrucciones slo son compatibles con el software RSLogix Emulate 5000, con el cual usted puede emular un controlador Logix 5000 en su computadora personal.
Use esta instruccin BPT TPT Disponible en estos lenguajes lgica de escalera de rels lgica de escalera de rels Vea la pgina 627 631

Si desea detener la emulacin del programa cuando un rengln es verdadero registrar datos que usted selecciona cuando un rengln es verdadero

Puntos de interrupcin (BPT)


Operandos:

Los puntos de interrupcin detienen la emulacin del programa cuando un rengln es verdadero.

Lgica de escalera de rels


Operando Formato Tipo Cadena Formato tag Descripcin Una cadena que establece el formateo del texto que aparece en la ventana de rastreo del punto de interrupcin. El tag que tiene un valor que usted desea mostrar en la ventana de rastreo.

Rastrear esto

BOOL, SINT, INT, DINT, REAL

tag

Descripcin:
Los puntos de interrupcin se programan con la instruccin de salida de punto de interrupcin (BPT). Cuando las entradas en un rengln que contiene una instruccin BPT son verdaderas, la instruccin BPT detiene la ejecucin del programa. El software muestra una ventana que indica que se activ el punto de interrupcin y los valores que lo activaron.

627Publicacin 1756-RM003K-ES-P Julio 2008

627

Captulo 20

Instrucciones de depuracin (BPT, TPT)

Cuando se activa un punto de interrupcin, el emulador muestra una ventana para informar que se produjo un punto de interrupcin. La barra de ttulo de la ventana muestra la ranura que contiene el emulador que encontr el punto de interrupcin. Cuando usted hace clic en OK, el emulador reanuda la ejecucin del programa. Si las condiciones que activaron el punto de interrupcin persisten, el punto de interrupcin volver a ocurrir. Adems el emulador abre una ventana de rastreo del punto de interrupcin. La ventana de rastreo muestra informacin acerca del punto de interrupcin y los valores.
Cuando se activa un punto de interrupcin, usted no podr editar su proyecto hasta que permita que contine la ejecucin. Puede entrar en lnea con el emulador para observar el estado de su proyecto, pero no podr editarlo. Si intenta aceptar una edicin de rengln mientras que est activado un punto de interrupcin, aparece un cuadro de dilogo que indica que el controlador no est en el modo correcto.

ATENCIN

Formato de cadena
Con la cadena de formato en las instrucciones de punto de rastreo y punto de interrupcin, puede controlar cmo aparecen los tags rastreados en las ventanas de punto de interrupcin o en los rastreos. El formato de la cadena se muestra aqu: encabezado:(texto)%(tipo) donde encabezado es una cadena de texto que identifica el punto de rastreo o el punto de interrupcin, texto es una cadena que describe el tag (o cualquier otro texto que usted seleccione) y %(tipo) indica el formato del tag. Usted necesita un indicador de tipo para cada tag que est rastreando con la instruccin de punto de rastreo o punto de interrupcin. Por ejemplo, podra formatear una cadena de punto de rastreo como se muestra aqu: Mi punto de rastreo:Tag 1 = %e y Tag 2 = %d El %e formatea el primer tag rastreado como valor con punto flotante (coma flotante) de doble precisin con un exponente, y %d formatea el segundo tag rastreado como valor entero decimal con signo. En este caso, usted tendra una instruccin de punto de rastreo con dos operandos de rastreo (Trace This) (uno para un valor REAL y uno para un valor INT, aunque el valor de cualquier tag puede formatearse con cualquier indicador).

628

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de depuracin (BPT, TPT)

Captulo 20

La ventana de punto de rastreo resultante que aparecera cuando se activa el punto de rastreo sera similar a esta.
El encabezado (el texto que precede el signo de dos puntos en la cadena de formato) aparece aqu.

El nmero de ranura indica la ranura que contiene el mdulo emulador que tiene el punto de rastreo o el punto de interrupcin rastreado en la ventana de rastreo.

El texto para el valor REAL (representado en la cadena de formato mediante %e) aparece aqu.

El texto para el valor INT (representado en la cadena de formato mediante %d) aparece aqu.

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 salta al rengln que contiene la instruccin LBL con el nombre de etiqueta referenciado. post-escn La condicin de salida de rengln se establece como falsa.

Ejemplo: Usted puede mostrar muchos valores de tag con la instruccin BPT.
Sin embargo, la cadena de formateo puede contener slo 82 caracteres. Puesto que la cadena de formateo requiere dos caracteres para cada tag que usted desea en el punto de interrupcin, no podr rastrear ms de 41 tags con una sola instruccin BPT. Sin embargo, para separar datos de tag en sus rastreos necesitar incluir espacios y otro formateo, reduciendo as el nmero de valores de tag que puede mostrar eficazmente una instruccin BPT a mucho menos de 41.

Publicacin 1756-RM003K-ES-P Julio 2008

629

Captulo 20

Instrucciones de depuracin (BPT, TPT)

Este rengln muestra un punto de interrupcin que detiene la ejecucin del programa cuando un valor analgico es mayor que 3.02 o menor que 2.01.

Usted desea mostrar la informacin del punto de interrupcin en la cadena Formato (myformat). En este caso, la cadena de formato contiene el siguiente texto:
Punto de interrupcin:El valor de entrada es %f

Cuando el punto de interrupcin se activa, la ventana de rastreo de punto de interrupcin muestra los caracteres antes del signo de dos puntos (Breakpoint) en la barra de ttulo de la ventana de rastreo. Los dems caracteres conforman los rastreos. En este ejemplo, %f representa el primer tag (y, en este caso, el nico) que se va a rastrear (analogvalue). Los rastreos resultantes se muestran aqu.

630

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de depuracin (BPT, TPT)

Captulo 20

Puntos de rastreo (TPT)


Operandos:

Datos de registro de puntos de rastreo que usted selecciona cuando un rengln es verdadero.

Lgica de escalera de rels


Operando Format Tipo Cadena Formato tag Descripcin Una cadena que establece el formateo de los informes de rastreo (tanto en pantalla como registrados en el disco). El tag que usted desea rastrear.

Trace This

BOOL, SINT, INT, DINT, REAL

tag

Descripcin:
Los puntos de rastreo se programan con la instruccin de salida punto de rastreo (BPT). Cuando las entradas en un rengln que contiene una instruccin TPT son verdaderas, la instruccin TPT escribe una entrada de rastreo a una pantalla de rastreo o archivo de registros. Usted puede rastrear muchos tags con la instruccin TPT. Sin embargo, la cadena de formateo puede contener slo 82 caracteres. Puesto que la cadena de formateo requiere dos caracteres para cada tag que usted desea rastrear, no podr rastrear ms de 41 tags con una sola instruccin TPT. Sin embargo, para separar datos de tags en sus rastreos, necesitar incluir espacios y otro formateo, lo cual reduce el nmero de tags que puede rastrear eficazmente una instruccin TPT a mucho menos de 41.

Formato de cadena
Con la cadena de formato en las instrucciones de punto de rastreo y punto de interrupcin, puede controlar cmo aparecen los tags rastreados en las ventanas de rastreo o punto de interrupcin. El formato de la cadena se muestra aqu: encabezado:(texto)%(tipo) donde encabezado es una cadena de texto que identifica el punto de rastreo o el punto de interrupcin, texto es una cadena que describe el tag (o cualquier otro texto que usted seleccione) y %(tipo) indica el formato del tag. Usted necesita un indicador de tipo para cada tag que est rastreando con la instruccin de punto de rastreo o punto de interrupcin.

Publicacin 1756-RM003K-ES-P Julio 2008

631

Captulo 20

Instrucciones de depuracin (BPT, TPT)

Por ejemplo, podra formatear una cadena de punto de rastreo como se muestra aqu: Mi punto de rastreo:Tag 1 = %e y Tag 2 = %d El %e formatea el primer tag rastreado como valor con punto flotante (coma flotante) de doble precisin con un exponente, y %d formatea el segundo tag rastreado como valor entero decimal con signo. En este caso, usted tendra una instruccin de punto de rastreo con dos operandos de rastreo (Trace This) (uno para un valor REAL y uno para un valor INT, aunque el valor de cualquier tag puede formatearse con cualquier indicador). La ventana de punto de rastreo resultante que aparecera cuando se activa el punto de rastreo sera similar a esta.
El encabezado (el texto que precede el signo de dos puntos en la cadena de formato) aparece aqu.

El nmero de ranura indica la ranura que contiene el mdulo emulador que tiene el punto de rastreo o el punto de interrupcin rastreado en la ventana de rastreo.

El texto para el valor REAL (representado en la cadena de formato mediante %e) aparece aqu.

El texto para el valor INT (representado en la cadena de formato mediante %d) aparece aqu.

. 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 salta al rengln que contiene la instruccin LBL con el nombre de etiqueta referenciado. post-escn La condicin de salida de rengln se establece como falsa.

632

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de depuracin (BPT, TPT)

Captulo 20

Ejemplo: Este rengln activa un rastreo de tres valores analgicos cuando


cualquiera de ellos excede un valor especfico (30.01).

Usted desea mostrar la informacin del punto de rastreo en la cadena Formato (myformat). En este caso, la cadena de formato contiene este texto:
Rastreo de entradas analgicas:Entradas analgicas = %f, %f y %f

Cuando el punto de rastreo se activa, los caracteres antes del signo de dos puntos (Rastreo de entradas analgicas) aparecen en la barra de ttulo de la ventana de rastreo. Los dems caracteres conforman los rastreos. En este ejemplo, %f representa los tags que se van a rastrear (analogvalue1, analogvalue2 y analogvalue3). Los rastreos resultantes se muestran aqu.

Cuando este rastreo se registra en el disco, los caracteres antes del signo de dos puntos aparecen en los rastreos.

Publicacin 1756-RM003K-ES-P Julio 2008

633

Captulo 20

Instrucciones de depuracin (BPT, TPT)

Esto indica cul punto de rastreo caus cul entrada de rastreo. ste es un ejemplo de una entrada de rastreo. Rastreo de entradas analgicas: es el texto de encabezado de la cadena de formato del punto de rastreo.
Rastreo de entradas analgicas:Entradas analgicas = 31.00201, 30.282000 y 30.110001

634

Publicacin 1756-RM003K-ES-P Julio 2008

Apndice

Atributos comunes

Introduccin

Este apndice describe los atributos comunes en las instrucciones Logix.


Si desea informacin acerca de Valores inmediatos Conversiones de datos Vea la pgina 635 635

Valores inmediatos

Cada vez que usted introduce un valor inmediato (constante) en formato decimal (por ejemplo, -2, 3), el controlador almacena el valor usando 32 bits. Si introduce un valor en una base diferente a la decimal como, por ejemplo, binario o hexadecimal, y no especifica todos y cada uno de los 32 bits, el controlador coloca un cero en los bits que usted no especifica (los rellena con ceros). EJEMPLO
Si introduce -1 16#ffff (-1) 8#1234 (668) 2#1010 (10)

Relleno con cero de valores inmediatos


El controlador almacena 16#ffff ffff (-1) 16#0000 ffff (65535) 16#0000 029c (668) 16#0000 000a (10)

Conversiones de datos

Las conversiones de datos ocurren cuando usted mezcla diferentes tipos de datos en la programacin:
Cuando se programa en Pueden ocurrir conversiones cuando usted

Lgica de escalera de rels Mezcla diferentes tipos de datos en los parmetros dentro de una instruccin Bloque de funciones Cablea dos parmetros que tienen diferentes tipos de datos

635Publicacin 1756-RM003K-ES-P Julio 2008

635

Apndice A

Atributos comunes

Las instrucciones se ejecutan ms rpidamente y requieren menos memoria si todos los operandos de la instruccin usan: el mismo tipo de datos un tipo de datos ptimo: En la seccin Operandos de cada instruccin en este manual, un tipo de datos en negrita indica un tipo de datos ptimo. Los tipos de datos DINT y REAL son generalmente los tipos de datos ptimos. La mayora de las instrucciones de bloque de funciones slo aceptan un tipo de datos (el tipo de datos ptimo) para sus operandos. Si usted mezcla diferentes tipos de datos y usa tags que no son del tipo de datos ptimo, el controlador convierte los datos segn estas reglas. Es alguno de los operandos un valor REAL?
Si La respuesta es afirmativa La respuesta es negativa Los operandos de entrada (por ejemplo, origen, tag en una expresin, lmite) se convierten en: REAL DINT

Despus de la ejecucin de la instruccin, el resultado (un valor DINT o REAL) se convierte en el tipo de datos del destino, si es necesario. Usted no puede especificar un tag BOOL en una instruccin que opera con tipos de datos enteros o REAL. Puesto que la conversin de datos requiere tiempo y memoria adicional, usted puede aumentar la eficiencia de su programa si: usa el mismo tipo de datos en toda la instruccin minimiza el uso de los tipos de datos SINT o INT En otras palabras, use todos los tags DINT o tags REAL, junto con valores inmediatos, en sus instrucciones. En las siguientes secciones se explica cmo se convierten los datos cuando usted usa tags SINT o INT o cuando mezcla diferentes tipos de datos.

636

Publicacin 1756-RM003K-ES-P Julio 2008

Atributos comunes

Apndice A

SINT o INT en DINT


En las instrucciones que convierten valores SINT o INT en valores DINT, las secciones Operandos en este manual identifican el mtodo de conversin.
Este mtodo de conversin Extensin de signo Convierte datos colocando el valor del bit del extremo izquierdo (el signo del valor) en cada posicin de bit a la izquierda de los bits existentes hasta que haya 32 bits. ceros a la izquierda de los bits existentes hasta que haya 32 bits.

Relleno con ceros

Los siguientes ejemplos muestran los resultados de convertir un valor mediante extensin de signo y relleno con ceros.
Este valor 2#1111_1111_1111_1111 (-1) (-1)

2#1111_1111_1111_1111_1111_1111_1111_1111 Se convierte en este valor mediante extensin de signo 2#0000_0000_0000_0000_1111_1111_1111_1111 Se convierte en este valor mediante relleno con ceros

(65535)

der Logic Listing - Total number of rungs: 3


EQU EQU Igual a (Equal) Equal Source remote_rack_1:I.Data[0] Source AA remote_rack_1:I.Data[0] 2#1111_1111_1111_1111 2#1111_1111_1111_1111 Source Source BB 2#1111_1111_1111_1111 2#1111_1111_1111_1111

Puesto que los valores inmediatos siempre se rellenan con ceros, la conversin de un valor SINT o INT puede producir resultados inesperados. En el siguiente ejemplo, la comparacin es falsa porque Source A, un INT, se convierte mediante extensin de signo; mientras que Source B, un valor inmediato, se rellena con ceros.

42093

Publicacin 1756-RM003K-ES-P Julio 2008

637

Apndice A

Atributos comunes

Si utiliza un tag SINT o INT y un valor inmediato en una instruccin que convierte datos mediante extensin de signo, use uno de estos mtodos para manejar los valores inmediatos: Especifique cualquier valor inmediato en la base decimal Si va a introducir el valor en una base diferente a la decimal, especifique los 32 bits del valor inmediato. Para ello, introduzca el valor del bit del extremo izquierdo en cada posicin de bit a la izquierda hasta que haya 32 bits. Cree un tag para cada operando y use el mismo tipo de datos en toda la instruccin. Para asignar un valor constante, realice uno de los siguientes procedimientos: Introdzcalo en uno de los tags Aada una instruccin MOV que mueva el valor a uno de los tags. Use una instruccin MEQ para verificar slo los bits requeridos Los siguientes ejemplos muestran dos maneras de mezclar un valor inmediato con un tag INT. En ambos ejemplos se verifican los bits de un mdulo de E/S 1771 para determinar si todos los bits estn activados. Puesto que la palabra de datos de entrada de un mdulo de E/S 1771 es un tag INT, lo ms fcil es usar un valor constante de 16 bits. EJEMPLO Mezcla de un tag INT con un valor inmediato Puesto que remote_rack_1:I.Data[0] es un tag INT, el valor con el cual se va a verificar tambin se introduce como un tag INT.
EQU Equal Source A remote_rack_1:I.Data[0] 2#1111_1111_1111_1111 Source B int_0 2#1111_1111_1111_1111
42093

EJEMPLO

Mezcla de un tag INT con un valor inmediato Puesto que remote_rack_1:I.Data[0] es un tag INT, el valor con el cual se va a verificar primero se mueve a int_0, tambin un tag INT. Posteriormente la instruccin EQU compara ambos tags.
EQU Equal Source A remote_rack_1:I.Data[0] 2#1111_1111_1111_1111 Source B int_0 2#1111_1111_1111_1111

2#1111_1111_1111_1111

MOV Move Source 2#1111_1111_1111_1111 Dest int_0 2#1111_1111_1111_1111

42093

638

Publicacin 1756-RM003K-ES-P Julio 2008

Atributos comunes

Apndice A

Entero en REAL
El controlador almacena valores REAL en formato de valor con punto flotante (coma flotante) de precisin simple IEEE. ste utiliza un bit para el signo del valor, 23 bits para el valor base y ocho bits para el exponente (32 bits en total). Si usted mezcla un tag de nmero entero (SINT, INT o DINT) y un tag REAL como entradas en la misma instruccin, el controlador convierte en un valor REAL el valor entero, antes de que se ejecute la instruccin. Un valor SINT o INT siempre se convierte en el mismo valor REAL. Un valor DINT puede no convertirse al mismo valor REAL: Un valor REAL usa hasta 24 bits para el valor base (23 bits almacenados ms un bit oculto). Un valor DINT usa hasta 32 bits para el valor (uno para el signo y 31 para el valor). Si el valor DINT requiere ms de 24 bits significativos, puede no convertirse en el mismo valor REAL. De ser as, el controlador se redondear al valor REAL ms cercano usando 24 bits significativos.

DINT en SINT o INT


Para convertir un valor DINT en un valor SINT o INT, el controlador trunca la porcin superior del DINT y establece el indicador de estado de overflow, si es necesario. El siguiente ejemplo muestra el resultado de una conversin de DINT en SINT o INT. EJEMPLO
Este valor DINT 16#0001_0081 (65,665)

Conversin de DINT en INT y SINT


Se convierte en este valor menor INT: SINT: 16#0081 (129) 16#81 (-127)

Publicacin 1756-RM003K-ES-P Julio 2008

639

Apndice A

Atributos comunes

REAL en un nmero entero


Para convertir un valor REAL en un valor entero, el controlador redondea la parte fraccionaria y trunca la porcin superior de la parte no fraccionaria. Si se pierden datos, el controlador establece el indicador de estado de overflow. Los nmeros se redondean de la siguiente manera: Los nmeros diferentes de x.5 se redondean al nmero entero ms cercano. X.5 se redondea al nmero par ms cercano. El siguiente ejemplo muestra el resultado de convertir valores REAL en valores DINT. EJEMPLO
Este valor REAL -2.5 -1.6 -1.5 -1.4 1.4 1.5 1.6 2.5

Conversin de valores REAL en valores DINT

Se convierte en este valor DINT -2 -2 -2 -1 1 2 2 2

IMPORTANTE

Los indicadores de estado aritmtico se establecen segn el valor que se est almacenando. Las instrucciones que normalmente no afectan palabras clave de estado aritmticas pueden parecer que lo hacen si ocurre una conversin de tipo debido a una mezcla de tipos de datos en los parmetros de instruccin. El proceso de conversin de tipo establece palabras clave de estado aritmtico.

640

Publicacin 1756-RM003K-ES-P Julio 2008

Apndice

Atributos de bloque de funciones

Introduccin

Este apndice describe aspectos que son nicos con las instrucciones de bloque de funciones. Repase la informacin proporcionada en este apndice para asegurarse de que entiende cmo funcionarn las rutinas de bloque de funciones. Cuando se programa un bloque de funciones, es necesario restringir el rango de unidades de ingeniera a +/-10+/-15 puesto que los clculos de punto flotante (coma flotante) internos se realizan usando punto flotante (coma flotante) de precisin simple. Las unidades de ingeniera que no se encuentran dentro de este rango pueden provocar una prdida de exactitud si los resultados se acercan a las limitaciones del punto flotante (coma flotante) de precisin simple (+/-10+/-38).

IMPORTANTE

Seleccin de elementos de bloques de funciones


referencia de entrada (IREF)

Para controlar un dispositivo, use los siguientes elementos:

bloque de funciones

referencia de salida (OREF)

conector de cable de salida (OCON)

conector de cable de entrada (ICON)

Use la siguiente tabla para seleccionar los elementos de bloques de funciones:


Si usted desea suministrar un valor desde un dispositivo de entrada o tag enviar un valor a un dispositivo de salida o tag Use una referencia de entrada (IREF) referencia de salida (OREF)

641Publicacin 1756-RM003K-ES-P Julio 2008

641

Apndice B

Atributos de bloque de funciones

Si usted desea realizar una operacin con un valor o valores de entrada, y producir un valor o valores de salida transferir datos entre bloques de funciones cuando stos estn: bastante separados en la misma hoja en hojas diferentes dentro de la misma rutina dispersar datos a varios puntos en la rutina

Use una bloque de funciones conector de cable de salida (OCON) y un conector de cable de entrada (ICON)

conector de cable de una salida (OCON) y varios conectores de cable de entrada (ICON)

Enclavamiento de datos

Si usted usa una IREF para especificar datos de entrada en una instruccin de bloques de funciones, los datos en la IREF se enclavan para el escn de la rutina de bloque de funciones. La IREF enclava datos desde los tags bajo el control del programa y tags bajo el control del controlador. El controlador actualiza todos los datos IREF al comienzo de cada escn.

IREF

En este ejemplo, el valor de tagA se almacena al comienzo de la ejecucin de la rutina. El valor almacenado se usa cuando se ejecuta Block_01. El mismo valor almacenado tambin se usa cuando se ejecuta Block_02. Si el valor de tagA cambia durante la ejecucin de la rutina, el valor almacenado de tagA en IREF no cambia hasta la siguiente ejecucin de la rutina.
Block_01

tagA

Block_02

642

Publicacin 1756-RM003K-ES-P Julio 2008

Atributos de bloque de funciones

Apndice B

Este ejemplo es igual al anterior. El valor de tagA se almacena slo una vez al comienzo de la ejecucin de la rutina. La rutina usa este valor almacenado en toda la rutina.
Block_01

tagA

Block_02

tagA

Comenzando con el software RSLogix 5000, versin 11, se puede usar el mismo tag en mltiples IREF y un OREF en la misma rutina. Puesto que los valores de tags en las IREF se enclavan en cada escn en toda la rutina, todas las IREF usarn el mismo valor, aunque una OREF obtenga un valor de tag diferente durante la ejecucin de la rutina. En este ejemplo, si tagA tiene un valor de 25.4 cuando la rutina comienza a ejecutar este escn, y Block_01 cambia el valor de tagA a 50.9, la segunda IREF cableada en Block_02 seguir usando un valor de 25.4 cuando Block_02 ejecute este escn. El nuevo valor de tagA de 50.9 no ser usado por ninguna IREF en esta rutina hasta el comienzo del siguiente escn.

Publicacin 1756-RM003K-ES-P Julio 2008

643

Apndice B

Atributos de bloque de funciones

Orden de ejecucin

El software de programacin RSLogix 5000 determina automticamente el orden de ejecucin de los bloques de funciones en una rutina cuando usted: verifica una rutina de bloque de funciones verifica un proyecto que contiene una rutina de bloque de funciones descarga un proyecto que contiene una rutina de bloque de funciones El orden de ejecucin se define cableando bloques de funciones unos con otros, e indicando el flujo de datos de los cables de retroalimentacin, si es necesario. Si los bloques de funciones no estn cableados unos con otros, no importa cul bloque se ejecuta primero. No existe un flujo de datos entre los bloques.

Si usted cablea los bloques de manera secuencial, el orden de ejecucin va de entrada a salida. Las entradas de un bloque requieren que los datos estn disponibles para que el controlador pueda ejecutar dicho bloque. Por ejemplo, el bloque 2 tiene que ejecutarse antes que el bloque 3 porque las salidas del bloque 2 alimentan las entradas del bloque 3.
1 2 3

El orden de ejecucin se relaciona slo a los bloques que estn cableados unos con otros. El siguiente es un buen ejemplo porque los dos grupos de bloques no estn cableados unos con otros. Los bloques dentro de un grupo especfico se ejecutan en el orden apropiado en relacin con los bloques de dicho grupo.
1 3 5

644

Publicacin 1756-RM003K-ES-P Julio 2008

Atributos de bloque de funciones

Apndice B

Resolucin de un lazo
Para crear un lazo de retroalimentacin alrededor de un bloque, cablee un pin de salida de un bloque a un pin de entrada del mismo bloque. El siguiente es un buen ejemplo. El lazo contiene un solo bloque, por lo que el orden de ejecucin no es importante.

Este pin de entrada usa una salida que el bloque produjo en el escn anterior.

Si hay un grupo de bloques en un lazo, el controlador no puede determinar cul bloque debe ejecutarse primero. En otras palabras, no puede resolver el lazo.
? ? ?

Para identificar cul bloque debe ejecutarse primero, marque el cable de entrada que crea el lazo (el cable de retroalimentacin) con el indicador Suponer datos disponibles. En el siguiente ejemplo, el bloque 1 usa la salida del bloque 3 que se produjo en la ejecucin previa de la rutina.
1 2 3

Este pin de entrada usa la salida que el bloque 3 produjo en el escn anterior. Indicador Suponer datos disponibles

El indicador Suponer datos disponibles define el flujo de datos dentro del lazo. La flecha indica que los datos sirven como entrada para el primer bloque en el lazo.

Publicacin 1756-RM003K-ES-P Julio 2008

645

Apndice B

Atributos de bloque de funciones

No marque todos los cables de un lazo con el indicador Suponer datos disponibles.
Esto es correcto 1 2 ? Esto no es correcto ?

Indicador Suponer datos disponibles

El controlador no puede resolver el lazo porque los cables usan el indicador Suponer datos disponibles.

El indicador Suponer datos disponibles define el flujo de datos dentro del lazo.

646

Publicacin 1756-RM003K-ES-P Julio 2008

Atributos de bloque de funciones

Apndice B

Resolucin del flujo de datos entre dos bloques


Si usted usa dos o ms cables para conectar dos bloques, use los mismos indicadores de flujo de datos para todos los cables entre los dos bloques.
Esto es correcto Esto no es correcto

Ningn cable usa el indicador Suponer datos disponibles.

Un cable usa el indicador Suponer datos disponibles y el otro cable no.

Indicador Suponer datos disponibles

Ambos cables usan el indicador Suponer datos disponibles.

Creacin de un retardo de escn


Para producir un retardo de escn entre bloques, use el indicador Suponer datos disponibles. En el siguiente ejemplo, el bloque 1 se ejecuta primero. Utiliza la salida del bloque 2 que se produjo en el escn anterior de la rutina.
2 1

Indicador Suponer datos disponibles

Publicacin 1756-RM003K-ES-P Julio 2008

647

Apndice B

Atributos de bloque de funciones

Resumen
En resumen, una rutina de bloque de funciones se ejecuta en este orden: 1. El controlador enclava todos los valores de datos en las IREF. 2. El controlador ejecuta los otros bloques de funciones en el orden determinado segn su cableado. 3. El controlador escribe salidas en las OREF.

Respuestas de bloque de funciones a condiciones de overflow


Respuesta 1: Los bloques ejecutan su algoritmo y verifican el resultado para NAN o INF. Si NAN o INF, el bloque establece la salida NAN o INF.

En general, las instrucciones de bloque de funciones que mantienen el historial no actualizan el historial con valores NAN o INF cuando se produce un overflow. Cada instruccin tiene una de estas respuestas frente a una condicin de overflow:
Respuesta 2: Los bloques con lmite de salida ejecutan su algoritmo y verifican el resultado para NAN o INF. Los lmites de salida son definidos por los parmetros de entrada HighLimit y LowLimit. Si INF, el bloque establece la salida un resultado limitado. Si NAN, los lmites de salida no se usan y el bloque establece la salida NAN. HLL INTG PI PIDE SCL SOC Respuesta 3: La condicin de overflow no se aplica. Estas instrucciones generalmente tienen una salida booleana.

ALMNTCH DEDTPMUL DERVPOSP ESELRLIM FGENRMPS HPFSCRV LDL2SEL LDLGSNEG LPFSRTP MAVESSUM MAXCTOT MINCUPDN MSTD MUX

BANDOSRI BNOTRESD BORRTOR BXORSETD CUTDTOFR D2SDTONR D3SD DFF JKFF OSFI

648

Publicacin 1756-RM003K-ES-P Julio 2008

Atributos de bloque de funciones

Apndice B

Modos de temporizacin

Estas instrucciones de control de procesos y de variadores aceptan diferentes modos de temporizacin. DEDT DERV HPF INTG LDL2 LDLG LPF NTCH PI PIDE RLIM SCRV SOC TOT

Hay tres modos de temporizacin diferentes:


Modo de temporizacin peridico Descripcin El modo peridico es el modo predeterminado y es adecuado para la mayora de las aplicaciones de control. Recomendamos que coloque las instrucciones que utilizan este modo en una rutina que se ejecute en una tarea peridica. El tiempo delta (DeltaT) para la instruccin se determina de la siguiente manera: Si la instruccin se DeltaT es igual a ejecuta en una tarea peridica el perodo de la tarea un evento o una tarea el tiempo transcurrido desde la ejecucin previa continua El controlador trunca el tiempo transcurrido a milisegundos (ms) enteros. Por ejemplo, si el tiempo transcurrido = 10.5 ms, el controlador establece DeltaT = 10 ms. La actualizacin de la entrada del proceso necesita sincronizarse con la ejecucin de la tarea o muestrearse 5 - 10 veces ms rpido que el tiempo en que se ejecuta la tarea a fin de minimizar los errores de muestreo entre la entrada y la instruccin. sobremuestreo En el modo de sobremuestreo, el tiempo delta (DeltaT) usado por la instruccin es el valor escrito en el parmetro OversampleDT de la instruccin. Si la entrada del proceso tiene un valor de sello de hora, use en lugar de ello el modo de muestreo en tiempo real.

Aada lgica al programa para controlar cundo se ejecuta la instruccin. Por ejemplo, puede usar un temporizador para establecer el valor de OversampleDeltaT y as controlar la ejecucin usando la entrada EnableIn de la instruccin.

La entrada del proceso necesita muestrearse 5 - 10 veces ms rpido que el tiempo en que se ejecuta la instruccin a fin de minimizar los errores de muestreo entre la entrada y la instruccin.

Publicacin 1756-RM003K-ES-P Julio 2008

649

Apndice B

Atributos de bloque de funciones

Modo de temporizacin muestreo en tiempo real

Descripcin En el modo de muestreo en tiempo real, el tiempo delta (DeltaT) usado por la instruccin es la diferencia entre dos valores de sello de hora que corresponden a las actualizaciones de la entrada del proceso. Use este modo cuando la entrada del proceso tiene un sello de hora asociado con sus actualizaciones y usted necesita una coordinacin precisa.

El valor del sello de hora se lee en el nombre de tag introducido para el parmetro RTSTimeStamp de la instruccin. Normalmente este nombre de tag es un parmetro en el mdulo de entrada asociado con la entrada del proceso.

La instruccin compara el valor RTSTime configurado (perodo de actualizacin previsto) con el DeltaT calculado para determinar si la instruccin est leyendo cada actualizacin de la entrada del proceso. Si DeltaT no se encuentra dentro de un milisegundo del tiempo de configuracin, la instruccin establece el bit de estado RTSMissed para indicar que existe un problema con la lectura de actualizaciones de la entrada en el mdulo.

Las instrucciones basadas en tiempo requieren un valor constante para DeltaT a fin de que el algoritmo de control calcule correctamente la salida del proceso. Si DeltaT vara, se produce una discontinuidad en la salida del proceso. La severidad de la discontinuidad depende de la instruccin y del rango de variacin de DeltaT. Se produce una discontinuidad si: la instruccin no se ejecuta durante un escn; la instruccin se ejecuta varias veces durante una tarea; la tarea se est ejecutando y cambia la velocidad de escn de la tarea o el tiempo de muestreo de la entrada del proceso; el usuario cambia el modo de base de tiempo mientras la tarea se est ejecutando. El parmetro Order se cambia en un bloque de filtro mientras la tarea se est ejecutando. Al cambiar el parmetro Order se selecciona un algoritmo de control diferente dentro de la instruccin.

650

Publicacin 1756-RM003K-ES-P Julio 2008

Atributos de bloque de funciones

Apndice B

Parmetros de instruccin comunes para modos de temporizacin


Las instrucciones que aceptan modos de base de tiempo tienen estos parmetros de entrada y salida:

Parmetros de entrada
Parmetro de entrada TimingMode Tipo de datos DINT Descripcin Selecciona el modo de ejecucin de temporizacin. Valor: 0 1 2 Descripcin: modo peridico modo de sobremuestreo modo de muestreo en tiempo real

vlido = 0 a 2 valor predeterminado = 0

Cuando TimingMode = 0 y la tarea es peridica, la temporizacin peridica se establece y DeltaT se establece en la velocidad de escn de la tarea. Cuando TimingMode = 0 y la tarea es de evento o una tarea continua, la temporizacin peridica se habilita y DeltaT se establece en un valor igual al tiempo transcurrido desde la ltima vez que se ejecut la instruccin.

Cuando TimingMode = 1, la temporizacin de sobremuestreo se habilita y DeltaT se establece en el valor del parmetro OversampleDT.

Cuando TimingMode = 2, la temporizacin del muestreo en tiempo real se habilita y DeltaT es la diferencia entre los valores de sello de hora actual y previo que fueron ledos del mdulo asociado con la entrada.

Si TimingMode es no vlido, la instruccin establece el bit apropiado en Status. OversampleDT REAL Tiempo de ejecucin para temporizacin de sobremuestreo. El valor usado para DeltaT es en segundos. Si TimingMode = 1, implica que OversampleDT = 0.0 inhabilita la ejecucin del algoritmo de control. Si no es vlido, la instruccin establece DeltaT = 0.0 y establece el bit apropiado en Status. vlido = 0 a 4194.303 segundos valor predeterminado = 0.0

Publicacin 1756-RM003K-ES-P Julio 2008

651

Apndice B

Atributos de bloque de funciones

Parmetro de entrada RTSTime

Tipo de datos DINT

Descripcin Perodo de actualizacin del mdulo para temporizacin de muestreo en tiempo real. El perodo de actualizacin DeltaT previsto es en milisegundos. El perodo de actualizacin normalmente es el valor usado para configurar el tiempo de actualizacin del mdulo. Si no es vlido, la instruccin establece el bit apropiado en Status e inhabilita la verificacin de RTSMissed. vlido = 1 a 32,767 ms valor predeterminado = 1

TTSTimeStamp

DINT

Valor de sello de hora para temporizacin de muestreo en tiempo real. El valor de sello de hora que corresponde a la ltima actualizacin de la seal de entrada. Este valor se usa para calcular DeltaT. Si no es vlido, la instruccin establece el bit apropiado en Status, inhabilita la ejecucin del algoritmo de control e inhabilita la verificacin de RTSMissed. vlido = 1 a 32,767 ms (regresa de 32767 a 0) 1 conteo = 1 milisegundo valor predeterminado = 0

Parmetros de salida
Parmetro de salida Tipo de datos DeltaT REAL Descripcin Tiempo transcurrido entre actualizaciones. Es el tiempo transcurrido en segundos usado por el algoritmo de control para calcular la salida del proceso.

Peridica: DeltaT = velocidad de escn de la tarea si la tarea es una tarea peridica. DeltaT = tiempo transcurrido desde la ejecucin de la instruccin previa si la tarea es de evento o una tarea continua.

Sobremuestreo DeltaT = OversampleDT

Muestreo en tiempo real: DeltaT = (RTSTimeStampn - RTSTimeStampn-1) Status TimingModeInv (Status.27) DINT BOOL Estado del bloque de funciones. Valor no vlido de TimingMode. Slo se usa en el modo de muestreo en tiempo real. Se establece cuando ABS | DeltaT - RTSTime | > 1 (.001 segundo). Valor no vlido de RTSTime. Valor no vlido de RTSTimeStamp. Valor DeltaT no vlido.

RTSMissed (Status.28) BOOL RTSTimeInv (Status.29) RTSTimeStampInv (Status.30) DeltaTInv (Status.31) BOOL BOOL BOOL

652

Publicacin 1756-RM003K-ES-P Julio 2008

Atributos de bloque de funciones

Apndice B

Descripcin general de los modos de temporizacin


El siguiente diagrama muestra cmo una instruccin determina el modo de temporizacin adecuado.

Determine el modo de base de tiempo TimingMode = 0 TimingMode = 1 TimingMode = 2

Temporizacin peridica

Temporizacin de sobremuestreo

Temporizacin en tiempo real

DeltaT = OversampleDT Si DeltaT < 0 o DeltaT > 4194.303 segundos, la instruccin establece DeltaT = 0.0 y establece el bit apropiado en Status. Determine el tipo de tarea Si DeltaT > 0, la instruccin se ejecuta.

DeltaT = RTSTimeStampn - RTSTimeStampn-1 Si DeltaT > 0, la instruccin se ejecuta. Si |RTSTIME - DeltaT| > 1, la instruccin establece el bit RTSMissed en Status.

Tarea peridica

Evento o tarea continua

DeltaT = tiempo de escn de tarea Si DeltaT > 0, la instruccin se ejecuta.

DeltaT = tiempo transcurrido desde la ltima ejecucin Si DeltaT > 0, la instruccin se ejecuta.

Publicacin 1756-RM003K-ES-P Julio 2008

653

Apndice B

Atributos de bloque de funciones

Control de programa/ operador

Hay varias instrucciones compatibles con el concepto de control de programa/operador. Estas instrucciones incluyen: Seleccin mejorada (ESEL) Totalizador (TOT) PID mejorado (PIDE) Rampa y estabilizacin (RMPS) Dispositivo de 2 estados discretos (D2SD) Dispositivo de 3 estados discretos (D3SD)

El control de programa/operador permite controlar estas instrucciones simultneamente desde el programa de usuario y desde un dispositivo de interface de operador. Cuando est en control de programa, la instruccin es controlada por las entradas del programa a la instruccin; cuando est en control del operador, la instruccin es controlada por las entradas del operador a la instruccin. El control de programa u operador se determina mediante el uso de estas entradas:
Entrada .ProgProgReq .ProgOperReq .OperProgReq .OperOperReq Descripcin Una peticin del programa para ir a control de programa. Una peticin del programa para ir a control de operador. Una peticin del operador para ir a control de programa. Una peticin del operador para ir a control de operador.

Para determinar si una instruccin est en control de programa o de operador, examine la salida ProgOper. Si ProgOper est establecida, la instruccin est en control del programa; si ProgOper se borra, la instruccin est en control del operador. El control de operador tiene precedencia sobre el control de programa si ambos bits de peticin de entrada estn establecidos. Por ejemplo, si ProgProgReq y ProgOperReq estn establecidos, la instruccin pasa a control de operador.

654

Publicacin 1756-RM003K-ES-P Julio 2008

Atributos de bloque de funciones

Apndice B

Las entradas de peticin de programa tienen precedencia sobre las entradas de peticin de operador. Esto proporciona la capacidad de usar las entradas ProgProgReq y ProgOperReq para bloquear una instruccin en un control deseado. Por ejemplo, supongamos que una instruccin Totalizer siempre se usar en el control de operador y que el programa de usuario nunca controlar la ejecucin o paro de la instruccin Totalizer En este caso, usted podra cablear un valor literal de 1 en ProgOperReq. Con esto impedira que el operador pueda poner Totalizer en el control de programa estableciendo OperProgReq desde un dispositivo de interface de operador.
Puesto que la entrada ProgOperReq siempre est establecida, presionar el botn Program en la plantilla (lo cual establece la entrada OperProgReg) no tiene ningn efecto. Normalmente, establecer OperProgReq pone TOT en control de programa.

Cablear un 1 en ProgOperReq significa que el programa de usuario desea que TOT siempre est en control de operador.

Publicacin 1756-RM003K-ES-P Julio 2008

655

Apndice B

Atributos de bloque de funciones

De igual modo, el establecer constantemente ProgProgReq puede bloquear la instruccin en control de programa. Esto es til para las secuencias de puesta en marcha automtica cuando usted desea que el programa controle la accin de la instruccin sin tener que preocuparse de que un operador tome accidentalmente el control de la instruccin. En este ejemplo el programa establece la entrada ProgProgReq durante la puesta en marcha y posteriormente borra la entrada ProgProgReq una vez que concluye la puesta en marcha. Una vez que se borra la entrada ProgProgReq, la instruccin permanece en control de programa hasta que recibe una peticin de cambiar. Por ejemplo, el operador podra establecer la entrada OperOperReq desde la plantilla para asumir el control de esa instruccin. El siguiente ejemplo muestra cmo bloquear una instruccin en control de programa.

Cuando se establece StartupSequenceActive, la instruccin PIDE se coloca en control de programa y en modo manual. El valor StartupCV se usa como salida de lazo.

Las entradas de peticin de operador a una instruccin siempre son borradas por la instruccin cuando sta se ejecuta. Esto permite que las interfaces de operador funcionen con estas instrucciones simplemente estableciendo el bit de peticin del modo deseado. No es necesario programar la interface de operador para restablecer los bits de peticin. Por ejemplo, si una interface de operador establece la entrada OperAutoReq a una instruccin PIDE, cuando se ejecuta la instruccin PIDE, sta determina cul debe ser la respuesta apropiada y borra OperAutoReq.

656

Publicacin 1756-RM003K-ES-P Julio 2008

Atributos de bloque de funciones

Apndice B

Las entradas de peticin de programa normalmente no son borradas por la instruccin porque stas normalmente estn cableadas como entradas en la instruccin. Si la instruccin borra estas entradas, la entrada sera establecida nuevamente por la entrada cableada. Puede haber situaciones en las que usted desee usar otra lgica para establecer las peticiones de programa de manera tal que desee que las peticiones de programa sean borradas por la instruccin. En este caso puede establecer la entrada ProgValueReset y la instruccin siempre borrar las entradas de peticin del modo de programacin cuando sta se ejecute. En este ejemplo se usa un rengln de lgica de escalera en otra rutina para realizar un enclavamiento monoestrable de ProgAutoReq a una instruccin PIDE cuando se presiona un botn pulsador. Puesto que la instruccin PIDE automticamente borra las peticiones del modo de programacin, usted no tiene que escribir ninguna lgica de escalera para borrar ProgAutoReq despus de que se ejecute la rutina, y la instruccin PIDE recibir slo una peticin para pasar a Auto cada vez que se presione el botn pulsador.
Cuando se presiona el botn pulsador TIC101AutoReq, se realiza un enclavamiento monoestrable de ProgAutoReq para la instruccin PIDE TIC101. TIC101 se ha configurado con la entrada ProgValueReset establecida; por lo tanto, cuando se ejecuta la instruccin PIDE, sta automticamente borra ProgAutoReq.

Publicacin 1756-RM003K-ES-P Julio 2008

657

Apndice B

Atributos de bloque de funciones

Notas:

658

Publicacin 1756-RM003K-ES-P Julio 2008

Apndice

Programacin de texto estructurado

Introduccin

Este apndice describe aspectos que son nicos con la programacin de texto estructurado. Repase la informacin proporcionada en este apndice para asegurarse de que entiende cmo se ejecutar la programacin de texto estructurado.
Si desea informacin acerca de Sintaxis del texto estructurado Asignaciones Expresiones Instrucciones Construcciones Comentarios Vea la pgina 659 661 663 670 671 687

Sintaxis del texto estructurado

El texto estructurado es un lenguaje de programacin textual que usa declaraciones para definir lo que se va a ejecutar. El texto estructurado no permite distinguir maysculas de minsculas. Use caracteres de tabulacin y de retorno de carro (lneas separadas) para facilitar la lectura del texto estructurado. Dichos caracteres no tienen ningn efecto en la ejecucin del texto estructurado. El texto estructurado no permite distinguir maysculas de minsculas. El texto estructurado contiene estos componentes:

Trmino asignacin (ver pgina 661)

Definicin Use una declaracin de asignacin para asignar valores a los tags. El operador := es el operador de asignacin. Termine la asignacin con un punto y coma ;.

Ejemplos tag := expression;

659Publicacin 1756-RM003K-ES-P Julio 2008

659

Apndice C

Programacin de texto estructurado

Trmino expresin (ver pgina 663)

Definicin Una expresin es parte de una declaracin de construccin o asignacin completa. Una expresin evala segn un nmero (expresin numrica) o segn un estado de verdadero o falso (expresin BOOL).

Ejemplos

Una expresin contiene: tags Un rea de la memoria con nombre asignado, donde se almacenan los datos (BOOL, SINT,INT,DINT, REAL, cadena). Un valor constante. Un smbolo o mnemnico que especifica una operacin dentro de una expresin. Cuando se ejecuta, una funcin produce un valor. Use parntesis para delimitar el operando de una funcin. Aunque su sintaxis es similar, las funciones se diferencian de las instrucciones porque las funciones slo pueden usarse en expresiones. Las instrucciones no pueden usarse en expresiones. instruccin (ver pgina 670) Una instruccin es una declaracin autnoma. Una instruccin usa parntesis para delimitar sus operandos. Segn la instruccin, puede haber cero, uno o varios operandos. Cuando se ejecuta, una instruccin produce uno o ms valores que son parte de una estructura de datos. Termine la instruccin con un punto y coma ;. instruction(operand1, operand2,operand3); instruction(operand); instruction(); value1

inmediatos operadores

4 tag1 + tag2 tag1 >= value1

funciones

function(tag1)

Aunque su sintaxis es similar, las instrucciones se diferencian de las funciones porque las instrucciones no pueden usarse en expresiones. Las funciones slo pueden usarse en expresiones.

660

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Apndice C

Trmino construccin (ver pgina 671)

Definicin Una declaracin condicional usada para activar cdigo de texto estructurado (a saber, otras declaraciones). Termine la construccin con un punto y coma ;.

Ejemplos IF...THEN CASE FOR...DO WHILE...DO REPEAT...UNTIL EXIT

comentario (ver pgina 687)

Texto que explica o aclara lo que hace una seccin de texto estructurado. //comment Use comentarios para facilitar la interpretacin del texto estructurado. Los comentarios no tienen ningn efecto en la ejecucin del texto estructurado. Los comentarios pueden aparecer en cualquier lugar del texto estructurado. /*start of comment . . . end of comment*/ (*start of comment . . . end of comment*)

Asignaciones

Use una asignacin para cambiar el valor almacenado dentro de un tag. Una asignacin tiene esta sintaxis: tag := expression ; donde:
Componente tag Descripcin representa el tag que est obteniendo el nuevo valor el tag debe ser BOOL, SINT, INT, DINT o REAL := expresin es el smbolo de asignacin representa el nuevo valor que se va a asignar al tag Si el tag es de este tipo de Use este tipo de expresin: datos: BOOL SINT INT DINT REAL ; finaliza la asignacin expresin BOOL expresin numrica

Publicacin 1756-RM003K-ES-P Julio 2008

661

Apndice C

Programacin de texto estructurado

El tag retiene el valor asignado hasta que otra asignacin cambia el valor. La expresin puede ser simple, como un valor inmediato u otro nombre de tag, o la expresin puede ser compleja e incluir varios operadores y/o funciones Vea la siguiente seccin Expresiones en la pgina 663 para obtener detalles.

Especifique una asignacin no retentiva


La asignacin no retentiva es diferente de la asignacin regular antes descrita porque el tag en una asignacin no retentiva se pone en cero cada vez que el controlador: entra al modo de MARCHA sale del paso de un SFC si usted configura el SFC para Restablecimiento automtico (Esto slo se aplica si usted incorpora la asignacin en la accin del paso o usa la accin para llamar una rutina de texto estructurado mediante una instruccin JSR). Una asignacin no retentiva tiene esta sintaxis: tag [:=] expresin ; donde:
Componente tag Descripcin representa el tag que obtiene el nuevo valor el tag debe ser BOOL, SINT, INT, DINT o REAL [:=] expresin es el smbolo de asignacin no retentiva representa el nuevo valor que se va a asignar al tag Si el tag es de este tipo de Use este tipo de expresin: datos: BOOL SINT INT DINT REAL ; finaliza la asignacin expresin BOOL expresin numrica

662

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Apndice C

Asigne un carcter ASCII a una cadena


Use el operador de asignacin para asignar un carcter ASCII a un elemento del miembro DATA de un tag de cadena. Para asignar un carcter, especifique el valor del carcter o especifique el nombre de tag, miembro DATA y elemento del carcter. Por ejemplo:
Esto es correcto string1.DATA[0]:= 65; string1.DATA[0]:= string2.DATA[0]; Esto no es correcto. string1.DATA[0] := A; string1 := string2;

Para aadir o insertar una cadena de caracteres en un tag de cadena, use cualquiera de estas instrucciones de cadena ASCII:
Para aadir caracteres al final de una cadena insertar caracteres dentro de una cadena Use esta instruccin CONCAT INSERT

Expresiones

Una expresin es un nombre de tag, ecuacin o comparacin. Para escribir una expresin, use cualquiera de los siguientes: nombre de tag que almacena el valor (variable) nmero que usted introduce directamente en una expresin (valor inmediato) funciones, tales como: ABS, TRUNC operadores, tales como: +, -, <, >, And, Or Cuando escriba las expresiones, siga estas reglas generales: Use cualquier combinacin de letras maysculas y minsculas. Por ejemplo, cualquiera de estas tres variaciones de AND es aceptable: AND, And, and. Para requisitos ms complejos, use parntesis a fin de agrupar expresiones dentro de otras expresiones. Esto hace que toda la expresin sea ms fcil de leer y asegura que la expresin se ejecute en la secuencia deseada. Consulte Determine el orden de ejecucin en la pgina 669.

Publicacin 1756-RM003K-ES-P Julio 2008

663

Apndice C

Programacin de texto estructurado

En texto estructurado usted usa dos tipos de expresiones: Expresin BOOL: Una expresin que produce ya sea el valor BOOL de 1 (verdadero) o 0 (falso). Una expresin booleana usa tags booleanos, operadores relacionales y operadores lgicos para comparar valores o verificar si las condiciones son verdaderas o falsas. Por ejemplo, tag1>65. Una expresin booleana simple puede ser un simple tag BOOL. Normalmente usted usa expresiones para condicionar la ejecucin de otra lgica. Expresin numrica: Una expresin que calcula un valor entero o de punto flotante (coma flotante). Una expresin numrica usa operadores aritmticos, funciones aritmticas y operadores a nivel de bits. Por ejemplo, tag1+5. A menudo usted anida una expresin numrica dentro de una expresin booleana. Por ejemplo, (tag1+5)>65. Use la siguiente tabla a fin de seleccionar operadores para sus expresiones:
Si desea Calcular un valor aritmtico Comparar dos valores o cadenas Verificar si determinadas condiciones son verdaderas o falsas Comparar los bits dentro de valores Entonces Use funciones y operadores aritmticosen la pgina 665. Use operadores relacionalesen la pgina 666. Use operadores lgicosen la pgina 668. Use operadores a nivel de bitsen la pgina 669.

664

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Apndice C

Use funciones y operadores aritmticos


Usted puede combinar mltiples operadores y funciones en expresiones aritmticas. Los operadores aritmticos calculan nuevos valores.
Para sumar restar/cambiar signo multiplicar exponente (x a la potencia y) dividir obtener el mdulo de una divisin Use este operador + * ** / MOD Tipo de datos ptimo DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL

Las funciones aritmticas realizan operaciones matemticas. Especifique una constante, un tag no booleano o una expresin para la funcin.
Para obtener valor absoluto arco coseno arco seno arco tangente coseno radianes a grados logaritmo natural logaritmo base 10 grados a radianes seno raz cuadrada tangente truncar Use esta funcin ABS (numeric_expression) ACOS (numeric_expression) ASIN (numeric_expression) ATAN (numeric_expression) COS (numeric_expression) DEG (numeric_expression) LN (numeric_expression) LOG (numeric_expression) RAD (numeric_expression) SIN (numeric_expression) SQRT (numeric_expression) TAN (numeric_expression) TRUNC (numeric_expression) Tipo de datos ptimo DINT, REAL REAL REAL REAL REAL DINT, REAL REAL REAL DINT, REAL REAL DINT, REAL REAL DINT, REAL

Publicacin 1756-RM003K-ES-P Julio 2008

665

Apndice C

Programacin de texto estructurado

Por ejemplo:
Use este formato Ejemplo Para esta situacin value1 operator value2 Si gain_4 y gain_4_adj son tags DINT y su especificacin dice: Aadir 15 a gain_4 y almacenar el resultado en gain_4_adj. Si alarm y high_alarm son valores DINT y su especificacin dice: Cambiar signo de high_alarm y almacenar el resultado en alarm. Si overtravel y overtravel_POS son tags DINT y su especificacin dice: Calcular el valor absoluto de overtravel y almacenar el resultado en overtravel_POS. Si adjustment y position son tags DINT, sensor1 y sensor2 son tags REAL, y su especificacin dice: Encontrar el valor absoluto del promedio de sensor1 y sensor2, aadir el adjustment y guardar el resultado en position. Usted escribira gain_4_adj := gain_4+15; alarm:= -high_alarm; overtravel_POS := ABS(overtravel);

operator value1

function(numeric_expression)

value1 operator (function((value2+value3)/2)

position := adjustment + ABS((sensor1 + sensor2)/2);

Use operadores relacionales


Los operadores relacionales comparan dos valores o cadenas para proporcionar un resultado verdadero o falso. El resultado de una operacin relacional es un valor BOOL:
Si la comparacin es verdadera falsa El resultado es 1 0

Use los siguientes operadores relacionales:


Para esta comparacin: igual menor que menor o igual que mayor que mayor o igual que diferente de Use este operador = < <= > >= <> Tipo de datos ptimo DINT, REAL, cadena DINT, REAL, cadena DINT, REAL, cadena DINT, REAL, cadena DINT, REAL, cadena DINT, REAL, cadena

666

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Apndice C

Por ejemplo:
Use este formato Ejemplo Para esta situacin value1 operator value2 stringtag1 operator stringtag2 char1 operator char2 Usted escribira Si temp es un tag DINT y su especificacin dice: IF temp<100 THEN... Si temp es menor que 100 entonces Si bar_code y dest son tags de cadena y su especificacin dice: Si bar_code es igual a dest entonces Si bar_code es un tag de cadena y su especificacin dice: Si bar_code.DATA[0] es igual a A entonces IF bar_code=dest THEN...

IF bar_code.DATA[0]=65 THEN...

Para introducir un carcter ASCII directamente en la expresin, introduzca el valor decimal del carcter. bool_tag := bool_expressions Si count y length son tags DINT, done es un tag BOOL y su especificacin dice Si count es mayor o igual que length, usted ya termin el conteo. done := (count >= length);

Cmo se evalan las cadenas


Los valores hexadecimales de los caracteres ASCII determinan si una cadena es mayor o menor que otra cadena. Cuando las dos cadenas se clasifican como en un directorio telefnico, el orden de las cadenas determina cul es mayor.
Caracteres ASCII 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

Las cadenas son iguales si sus caracteres coinciden. Los caracteres permiten distinguir maysculas de minsculas. La A mayscula ($41) es diferente a la a minscula ($61). Para obtener el valor decimal y el cdigo hexadecimal de un carcter, consulte la contraportada de este manual.

Publicacin 1756-RM003K-ES-P Julio 2008

667

Apndice C

Programacin de texto estructurado

Use operadores lgicos


Los operadores lgicos le permiten verificar si varias condiciones son verdaderas o falsas. El resultado de una operacin lgica es un valor BOOL.
Si la comparacin es verdadera falsa El resultado es 1 0

Use los siguientes operadores lgicos:


Para obtener Y lgico O lgico O exclusivo lgico complemento lgico Use este operador &, AND OR XOR NOT Tipo de datos BOOL BOOL BOOL BOOL

Por ejemplo:
Use este formato Ejemplo Para esta situacin
BOOLtag NOT BOOLtag

Usted escribira IF photoeye THEN... IF NOT photoeye THEN...

Si photoeye es un tag BOOL y su especificacin dice: Si photoeye est activada, entonces Si photoeye es un tag BOOL y su especificacin dice: Si photoeye est desactivada entonces Si photoeye es un tag BOOL, temp es un tag DINT y su especificacin dice: Si photoeye est activada y temp es menor que 100 entonces. Si photoeye es un tag BOOL, temp es un tag DINT y su especificacin dice: Si photoeye est activada o temp es menor que 100 entonces. Si photoeye1 y photoeye2 son tags BOOL y su especificacin dice: Si: photoeye1 est activada mientras que photoeye2 est desactivada o photoeye1 est desactivada mientras que photoeye2 est activada entonces

expression1 & expression2

IF photoeye & (temp<100) THEN...

expression1 OR expression2

IF photoeye O (temp<100) THEN...

expression1 XOR expression2

IF photoeye1 XOR photoeye2 THEN...

BOOLtag := expression1 & expression2

Si photoeye1 y photoeye2 son tags BOOL, open es un tag BOOL y su especificacin dice: Si photoeye1 y photoeye2 estn ambas activadas, establezca open en verdadero.

abrir := photoeye1 y photoeye2;

668

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Apndice C

Use operadores a nivel de bits


Los operadores a nivel de bits manipulan los bits dentro de un valor basado en dos valores.
Para obtener Y a nivel de bits O a nivel de bits O exclusivo a nivel de bits complemento a nivel de bits Use este operador &, AND OR XOR NOT Tipo de datos ptimo DINT DINT DINT DINT

Por ejemplo:
Use este formato Ejemplo Para esta situacin value1 operator value2 Si input1, input2, y result1 son tags DINT y su especificacin dice: Calcule el resultado a nivel de bits de input1 e input2. Guarde el resultado en result1. Usted escribira result1 := input1 AND input2;

Determine el orden de ejecucin


Las operaciones que usted escribe en una expresin se realizan en un orden prescrito, no necesariamente de izquierda a derecha. Las operaciones de igual orden se realizan de izquierda a derecha. Si una expresin contiene varios operadores o funciones, agrupe las condiciones en parntesis ( ). Esto asegura el orden correcto de ejecucin y facilita la lectura de la expresin.
Orden 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Operacin () funcin () ** (cambiar signo) NOT *, /, MOD +, - (restar) <, <=, >, >= =, <> &, AND XOR OR

Publicacin 1756-RM003K-ES-P Julio 2008

669

Apndice C

Programacin de texto estructurado

Instrucciones

Las declaraciones de texto estructurado tambin pueden ser instrucciones. Consulte en la tabla de ubicacin al comienzo de este manual la lista de las instrucciones disponibles en texto estructurado. Una instruccin de texto estructurado se ejecuta cada vez que se escanea. Una instruccin de texto estructurado dentro de una construccin se ejecuta cada vez que las condiciones de la construccin son verdaderas. Si las condiciones de la construccin son falsas, las declaraciones dentro de la construccin no se escanean. No existe una condicin de rengln o transicin de estado que active la ejecucin. Esto difiere de las instruccin de bloque de funciones que usan EnableIn para activar la ejecucin. Las instrucciones de texto estructurado se ejecutan como si EnableIn siempre estuviera establecido. Esto tambin difiere de las instrucciones de lgica de escalera que usan condicin de entrada de rengln para activar la ejecucin. Algunas instrucciones de lgica de escalera de rels slo se ejecutan cuando la condicin de entrada de rengln cambia de falso a verdadero. stas son instrucciones de lgica de escalera de rels transicionales. En texto estructurado, las instrucciones se ejecutarn cada vez que sean escaneadas, a menos que usted condicione previamente la ejecucin de la instruccin de texto estructurado. Por ejemplo, la instruccin ABL es una instruccin transicional en lgica de escalera de rels. En este ejemplo, la instruccin ABL slo se ejecuta en un escn cuando tag_xic cambia de borrado a establecido. La instruccin ABL no se ejecuta cuando tag_xic permanece establecido ni cuando tag_xic se borra.

En texto estructurado, si usted escribe este ejemplo como: IF tag_xic THEN ABL(0,serial_control); END_IF; la instruccin ABL se ejecutar en cada escn que tag_xic est establecido, no slo cuando tag_xic cambie de borrado a establecido.

670

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Apndice C

Si desea que la instruccin ABL se ejecute slo cuando tag_xic cambie de borrado a establecido, tiene que condicionar la instruccin de texto estructurado. Use un impulso para activar la ejecucin.
osri_1.InputBit := tag_xic; OSRI(osri_1);

IF (osri_1.OutputBit) THEN ABL(0,serial_control); END_IF;

Construcciones
Si desea hacer algo si o cuando ocurre una condicin especfica seleccionar qu hacer segn a un valor numrico

Las construcciones pueden programarse individualmente o anidadas dentro de otras construcciones.


Use esta construccin IF...THEN CASE...OF FOR...DO WHILE...DO REPEAT...UNTIL Disponible en estos lenguajes texto estructurado texto estructurado texto estructurado texto estructurado texto estructurado Vea la pgina 672 675 678 681 684

hacer algo un nmero especfico de veces antes de hacer otra cosa continuar haciendo algo siempre que ciertas condiciones sean verdaderas seguir haciendo algo hasta que una condicin sea verdadera

Algunas palabras clave estn reservadas para uso futuro


Estas construcciones no estn disponibles: GOTO REPEAT El software RSLogix 5000 no le permitir usarlas como nombres de tags ni como construcciones.

Publicacin 1756-RM003K-ES-P Julio 2008

671

Apndice C

Programacin de texto estructurado

IF...THEN
Operandos:

Use IFTHEN para hacer algo si o cuando ocurre una condicin especfica.

Texto estructurado
IF bool_expression THEN <statement>; END_IF;

Operando bool_ expression

Tipo BOOL

Formato tag expresin

Introduzca Expresin o tag BOOL que evala respecto a un valor BOOL (expresin BOOL)

Descripcin: La sintaxis es:


IF bool_expression1 THEN <statement >;

. . .
opcional

declaraciones que deben ejecutarse cuando bool_expression1 es verdadero

ELSIF bool_expression2 THEN <statement>;

. . .
opcional

declaraciones que deben ejecutarse cuando bool_expression2 es verdadero

ELSE <statement>;

. . .
END_IF; Para usar ELSIF o ELSE, siga estas pautas:

declaraciones que deben ejecutarse cuando ambas expresiones son falsas

1. Para seleccionar entre varios posibles grupos de declaraciones, aada una o ms declaraciones ELSIF. Cada instruccin ELSIF representa una ruta alternativa. Especifique todas las rutas ELSIF que necesite. El controlador ejecuta la primera instruccin IF o ELSIF verdadera y se salta el resto de las instrucciones ELSIF y ELSE. 2. Para hacer algo cuando todas las condiciones IF o ELSIF son falsas, aada una declaracin ELSE.

672

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Apndice C

La siguiente tabla resume las diferentes combinaciones de IF, THEN, ELSIF y ELSE.
Si desea Y Use esta construccin IFTHEN IFTHENELSE IFTHENELSIF IFTHENELSIFELSE

hacer algo si o cuando las condiciones no hacer nada si las condiciones son son verdaderas falsas hacer algo diferente si las condiciones son falsas seleccionar entre declaraciones alternativas (o grupos de declaraciones) segn las condiciones de entrada no hacer nada si las condiciones son falsas asignar declaraciones predeterminadas si todas las condiciones son falsas

Indicadores de estado aritmtico: no afectados Condiciones de fallo: ninguna Ejemplo 1: IFTHEN


Si usted desea esto Si rechazos > 3 entonces transportador = desactivado (0) alarma = activada (1) Introduzca este texto estructurado IF rejects > 3 THEN conveyor := 0; alarm := 1; END_IF;

Ejemplo 2: IFTHENELSE
Si usted desea esto Si el contacto de direccin del transportador = avance (1) entonces luz = apagada De lo contrario, luz = encendida Introduzca este texto estructurado IF conveyor_direction THEN light := 0; ELSE light [:=] 1; END_IF;

El [:=] le indica al controlador que borre light cada vez que el controlador: entre al modo de MARCHA salga del paso de un SFC si usted configura el SFC para Restablecimiento automtico. (Esto slo se aplica si usted incorpora la asignacin en la accin del paso o usa la accin para llamar una rutina de texto estructurado mediante una instruccin JSR).

Publicacin 1756-RM003K-ES-P Julio 2008

673

Apndice C

Programacin de texto estructurado

Ejemplo 3: IFTHENELSIF
Si usted desea esto Si el interruptor de final de carrera de azcar baja = baja (activado) y el interruptor de final de carrera de azcar alta = no alta (activado) entonces vlvula de entrada = abierta (activada) Hasta que el interruptor de final de carrera de azcar alta = alta (desactivado) Introduzca este texto estructurado IF Sugar.Low & Sugar.High THEN

Sugar.Inlet [:=] 1; ELSIF NOT(Sugar.High) THEN Sugar.Inlet := 0; END_IF;

El [:=] le indica al controlador que borre Sugar.Inlet cada vez que el controlador: entre al modo de MARCHA salga del paso de un SFC si usted configura el SFC para Restablecimiento automtico. (Esto slo se aplica si usted incorpora la asignacin en la accin del paso o usa la accin para llamar una rutina de texto estructurado mediante una instruccin JSR).

Ejemplo 4: IFTHENELSIFELSE
Si usted desea esto Si la temperatura del tanque > 100 entonces bomba = lenta Si la temperatura del tanque > 200 entonces bomba = rpida de lo contrario, bomba = desactivada ELSE pump.fast :=0; pump.slow :=0; pump.off :=1; END_IF; Introduzca este texto estructurado IF tank.temp > 200 THEN pump.fast :=1; pump.slow :=0; pump.off :=0; ELSIF tank.temp > 100 THEN pump.fast :=0; pump.slow :=1; pump.off :=0;

674

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Apndice C

CASE...OF
Operandos:

Use CASE para seleccionar qu hacer segn un valor numrico.

Texto estructurado
CASE numeric_expression OF selector1: statement; selectorN: statement; ELSE statement; END_CASE;

Operando
numeric_ expression

Tipo SINT INT DINT REAL

Formato tag expresin

Introduzca tag o expresin que evala respecto a un nmero (expresin numrica)

selector

SINT INT DINT REAL

inmediato

el mismo tipo que


numeric_expression

IMPORTANTE

Si usted usa valores REAL, emplee un rango de valores para un selector, ya que es ms probable que un valor REAL se encuentre dentro de un rango de valores, y no que coincida exactamente con un valor especfico.

Descripcin: La sintaxis es:


CASE numeric_expression OF selector1 : <statement>; . . . <statement>;
declaraciones a ejecutar cuando numeric_expression = selector1

especifique todos los valores de selector alternativos (rutas) que necesite

selector2 :

. . .
selector3 : <statement>;

declaraciones a ejecutar cuando numeric_expression = selector2

. . .
ELSE <statement>;
opcional

declaraciones a ejecutar cuando numeric_expression = selector3

. . .
END_CASE;

declaraciones a ejecutar cuando numeric_expression cualquier selector

Publicacin 1756-RM003K-ES-P Julio 2008

675

Apndice C

Programacin de texto estructurado

Vea la tabla en la siguiente pgina para obtener los valores de selector vlidos. La sintaxis para introducir los valores de selector es:
Cuando el selector es un valor varios valores distintos Introduzca value: statement value1, value2, valueN : <statement>

Use una coma (,) para separar cada valor. un rango de valores value1..valueN : <statement>

Use dos puntos (..) para identificar el rango. valores distintos ms un rango de valores valuea, valueb, value1..valueN : <statement>

La construccin CASE es similar a una declaracin de interruptor en los lenguajes de programacin C o C++. Sin embargo, con la construccin CASE el controlador ejecuta slo las declaraciones asociadas con la primera coincidencia con el valor de selector. La ejecucin siempre se interrumpe despus de las declaraciones de dicho selector y va a la declaracin END_CASE.

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

676

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Apndice C

Ejemplo
Si usted desea esto Si el nmero de receta = 1 entonces Ingrediente A salida 1 = abierto (1) Ingrediente B salida 4 = abierto (1) Si el nmero de receta = 2 3 entonces Ingrediente A salida 4 = abierto (1) Ingrediente B salida 2 = abierto (1) Si el nmero de receta = 4, 5, 6 7 entonces Ingrediente A salida 4 = abierto (1) Ingrediente B salida 2 = abierto (1) Si el nmero de receta = 8, 11, 12 13 entonces Ingrediente A salida 1 = abierto (1) Ingrediente B salida 4 = abierto (1) De lo contrario, todas las salidas = cerradas (0)
ELSE Ingredient_A.Outlet_1 [:=]0; Ingredient_A.Outlet_4 [:=]0; Ingredient_B.Outlet_2 [:=]0; Ingredient_B.Outlet_4 [:=]0; END_CASE; 8,11..13 Ingredient_A.Outlet_1 :=1; Ingredient_B.Outlet_4 :=1; 4..7: Ingredient_A.Outlet_4 :=1; Ingredient_B.Outlet_2 :=1; 2,3:

Introduzca este texto estructurado


CASE recipe_number OF 1: Ingredient_A.Outlet_1 :=1; Ingredient_B.Outlet_4 :=1; Ingredient_A.Outlet_4 :=1; Ingredient_B.Outlet_2 :=1;

El [:=] le indica al controlador que tambin borre los tags de salida cada vez que el controlador: entre al modo de MARCHA salga del paso de un SFC si usted configura el SFC para Restablecimiento automtico. (Esto slo se aplica si usted incorpora la asignacin en la accin del paso o usa la accin para llamar una rutina de texto estructurado mediante una instruccin JSR).

Publicacin 1756-RM003K-ES-P Julio 2008

677

Apndice C

Programacin de texto estructurado

FORDO
Operandos:

Use el lazo FORDO para hacer algo una cantidad determinada de veces antes de hacer otra cosa.

Texto estructurado
FOR count:= initial_value TO final_value BY increment DO <statement>; END_FOR;

Operando count

Tipo SINT INT DINT

Formato tag

Descripcin tag para almacenar la posicin de conteo a medida que FORDO se ejecuta

initial_ value

SINT INT DINT

tag expresin inmediato tag expresin inmediato tag expresin inmediato

se debe evaluar con respecto a un nmero especifica el valor inicial del conteo

final_ value

SINT INT DINT

especifica el valor final del conteo, el cual determina cundo salir del lazo

increment

SINT INT DINT

(opcional) cantidad a incrementar el conteo cada vez que se pasa por el lazo

Si usted no especifica un incremento, el conteo se incrementa en 1.

IMPORTANTE

Asegrese de no efectuar iteraciones dentro de un lazo demasiadas veces en un solo escn. El controlador no ejecuta ninguna otra declaracin en la rutina hasta que completa el lazo. Si el tiempo que se requiere para completar el lazo es mayor que el temporizador de control (watchdog) de la tarea, se produce un fallo mayor. Considere usar una construccin diferente, por ejemplo IF...THEN.

678

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Apndice C

Descripcin: La sintaxis es:


FOR count := initial_value TO final_value
opcional {

BY increment DO <statement>; IF bool_expression THEN EXIT;

Si usted no especifica un incremento, el lazo se incrementa en 1.

opcional

END_IF;

Si existen condiciones cuando usted desea salir del lazo anticipadamente, use otras declaraciones, tal como la construccin IF...THEN, para condicionar una declaracin EXIT.

END_FOR; Los siguientes diagramas muestran cmo se ejecuta un lazo FOR...DO y cmo una declaracin EXIT deja el lazo anticipadamente.
Efectuado x veces? no declaracin 1 declaracin 2 declaracin 3 declaracin 4 resto de la rutina s Efectuado x veces? no declaracin 1 declaracin 2 declaracin 3 declaracin 4 Salir? no resto de la rutina s

El lazo FORDO se ejecuta un nmero especfico de veces.

Para detener el lazo antes de que el conteo llegue al ltimo valor, use una declaracin EXIT.

Indicadores de estado aritmtico: no afectados Condiciones de fallo:


Ocurrir un fallo mayor si la construccin tiene un lazo excesivamente largo Tipo de fallo 6 Cdigo de fallo 1

Publicacin 1756-RM003K-ES-P Julio 2008

679

Apndice C

Programacin de texto estructurado

Ejemplo 1:
Si usted desea esto Borrar los bits 0 - 31 en una matriz de elementos BOOL: 1. Inicializar el tag subscript a 0. 2. Borrar la matriz[ subscript ]. Por ejemplo, cuando subscript = 5, borrar array[5]. 3. Aadir 1 a subscript. 4. Si subscript es 31, repetir 2 y 3. De lo contrario, parar. Introduzca este texto estructurado For subscript:=0 to 31 by 1 do array[subscript] := 0; End_for;

Ejemplo 2:
Si usted desea esto Un tipo de datos definido por el usuario (estructura) almacena la siguiente informacin acerca de un tem en su inventario: ID de cdigo de barras del tem (tipo de datos de cadena) Cantidad en inventario del tem (tipo de datos DINT) Una matriz de la estructura anterior contiene un elemento para cada tem diferente en su inventario. Usted desea buscar la matriz para un producto especfico (use su cdigo de barras) y determine la cantidad que hay en inventario. 1. Obtener el tamao (nmero de tems) de la matriz Inventory y almacenar el resultado en Inventory_Items (tag DINT). 2. Inicializar el tag position a 0. 3. Si el cdigo de barras coincide con el ID de un tem en la matriz, entonces: a. Establecer el tag Quantity = Inventory[position].Qty. Esto produce la cantidad en inventario del tem. b. Parar. Barcode es un tag de cadena que almacena el cdigo de barras del tem que usted est buscando. Por ejemplo, cuando position = 5, comparar Barcode con Inventory[5].ID. 4. Aadir 1 a position. 5. Si position es (Inventory_Items -1), repetir 3 y 4. Puesto que los nmeros de elemento comienzan en 0, el ltimo elemento es 1 menos el nmero de elementos en la matriz. De lo contrario, parar. Introduzca este texto estructurado SIZE(Inventory,0,Inventory_Items); For position:=0 to Inventory_Items - 1 do If Barcode = Inventory[position].ID then Quantity := Inventory[position].Qty; Exit; End_if; End_for;

680

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Apndice C

WHILEDO
Operandos:

Use el lazo WHILEDO para continuar haciendo algo siempre y cuando ciertas condiciones sean verdaderas.

Texto estructurado
WHILE bool_expression DO <statement>; END_WHILE;

Operando bool_ expression

Tipo BOOL

Formato tag expresin

Introduzca Expresin o tag BOOL que evala respecto a un valor BOOL

IMPORTANTE

Asegrese de no efectuar iteraciones dentro de un lazo demasiadas veces en un solo escn. El controlador no ejecuta ninguna otra declaracin en la rutina hasta que completa el lazo. Si el tiempo que se requiere para completar el lazo es mayor que el temporizador de control (watchdog) para la tarea, se produce un fallo mayor. Considere usar una construccin diferente, por ejemplo IF...THEN.

Descripcin: La sintaxis es:


WHILE bool_expression1 DO <statement>; IF bool_expression2 THEN EXIT;
opcional declaraciones que se ejecutan mientras bool_expression1 es verdadero

END_IF;

Si existen condiciones cuando usted desea salir del lazo anticipadamente, use otras declaraciones, tal como la construccin IF...THEN, para condicionar una declaracin EXIT.

END_WHILE;

Publicacin 1756-RM003K-ES-P Julio 2008

681

Apndice C

Programacin de texto estructurado

Los siguientes diagramas muestran cmo se ejecuta un lazo WHILE...DO y cmo un comando EXIT deja el lazo anticipadamente.
expresin BOOL verdadera declaracin 1 declaracin 2 declaracin 3 declaracin 4 resto de la rutina falsa expresin BOOL verdadera declaracin 1 declaracin 2 declaracin 3 declaracin 4 Salir? no resto de la rutina falsa

Mientras bool_expression es verdadero, el controlador ejecuta slo las declaraciones dentro del lazo WHILEDO.

Para detener el lazo antes de que las condiciones sean verdaderas, use una declaracin EXIT.

Indicadores de estado aritmtico: no afectados Condiciones de fallo:


Ocurrir un fallo mayor si la construccin tiene un lazo excesivamente largo Tipo de fallo 6 Cdigo de fallo 1

Ejemplo 1:
Si usted desea esto El lazo WHILE...DO evala sus condiciones primero. Si las condiciones son verdaderas, el controlador ejecuta las declaraciones dentro del lazo. Esto es diferente del lazo REPEAT...UNTIL porque el lazo REPEAT...UNTIL ejecuta las declaraciones en la construccin y posteriormente determina si las condiciones son verdaderas antes de ejecutar las declaraciones nuevamente. Las declaraciones en un lazo REPEAT...UNTIL siempre se ejecutan por lo menos una vez. Las declaraciones en un lazo WHILE...DO es posible que nunca se ejecuten. Introduzca este texto estructurado pos := 0; While ((pos <= 100) & structarray[pos].value <> targetvalue)) do pos := pos + 2; String_tag.DATA[pos] := SINT_array[pos]; end_while;

682

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Apndice C

Ejemplo 2:
Si usted desea esto Mover caracteres ASCII desde una matriz SINT a un tag de cadena. (En una matriz SINT, cada elemento retiene un carcter). Parar cuando llegue al retorno de carro. 1. Inicializar Element_number a 0. 2. Contar el nmero de elementos en SINT_array (la matriz que contiene los caracteres ASCII) y almacenar el resultado en SINT_array_size (tag DINT). 3. Si el carcter en SINT_array[element_number] = 13 (valor decimal del retorno de carro), parar. 4. Establecer String_tag[element_number] = el carcter en SINT_array[element_number]. 5. Aadir 1 a element_number. Esto permite al controlador verificar el siguiente carcter en SINT_array. 6. Establecer el miembro Length de String_tag = element_number. (As registra el nmero de caracteres que hay hasta el momento en String_tag). 7. Si element_number = SINT_array_size, parar. (Usted est al final de la matriz y sta no contiene un retorno de carro). 8. Ir a 3. Introduzca este texto estructurado element_number := 0; SIZE(SINT_array, 0, SINT_array_size); While SINT_array[element_number] <> 13 do String_tag.DATA[element_number] := SINT_array[element_number]; element_number := element_number + 1; String_tag.LEN := element_number; If element_number = SINT_array_size then exit; end_if; end_while;

Publicacin 1756-RM003K-ES-P Julio 2008

683

Apndice C

Programacin de texto estructurado

REPEATUNTIL
Operandos:

Use el lazo REPEATUNTIL para continuar haciendo algo hasta que las condiciones sean verdaderas.

Texto estructurado
REPEAT <statement>; UNTIL bool_expression END_REPEAT;

Operando bool_ expression

Tipo BOOL

Formato tag expresin

Introduzca Expresin o tag BOOL que evala respecto a un valor BOOL (expresin BOOL)

IMPORTANTE

Asegrese de no efectuar iteraciones dentro de un lazo demasiadas veces en un solo escn. El controlador no ejecuta ninguna otra declaracin en la rutina hasta que completa el lazo. Si el tiempo que se requiere para completar el lazo es mayor que el temporizador de control (watchdog) para la tarea, se produce un fallo mayor. Considere usar una construccin diferente, por ejemplo IF...THEN.

Descripcin: La sintaxis es:


REPEAT <statement>; IF bool_expression2 THEN EXIT;
opcional declaraciones que se ejecutan mientras bool_expression1 es falso

END_IF;

Si existen condiciones cuando usted desea salir del lazo anticipadamente, use otras declaraciones, tal como la construccin IF...THEN, para condicionar una declaracin EXIT.

UNTIL bool_expression1 END_REPEAT;

684

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Apndice C

Los siguientes diagramas muestran cmo se ejecuta un lazo REPEAT...UNTIL y cmo un comando EXIT deja el lazo anticipadamente.
declaracin 1 declaracin 2 declaracin 3 declaracin 4 expresin BOOL falsa resto de la rutina falsa resto de la rutina verdadera declaracin 1 declaracin 2 declaracin 3 declaracin 4 Salir? no expresin BOOL verdadera

Mientras bool_expression es falso, el controlador ejecuta slo las declaraciones dentro del lazo REPEATUNTIL.

Para detener el lazo antes de que las condiciones sean falsas, use una declaracin EXIT.

Indicadores de estado aritmtico: no afectados Condiciones de fallo:


Ocurrir un fallo mayor si la construccin tiene un lazo excesivamente largo Tipo de fallo 6 Cdigo de fallo 1

Ejemplo 1:
Si usted desea esto El lazo REPEAT...UNTIL ejecuta las declaraciones en la construccin y posteriormente determina si las condiciones son verdaderas antes de ejecutar las declaraciones nuevamente. Esto es diferente del lazo WHILE...DO porque el lazo WHILE...DO evala su condicin primero. Si las condiciones son verdaderas, el controlador ejecuta las declaraciones dentro del lazo. Las declaraciones en un lazo REPEAT...UNTIL siempre se ejecutan por lo menos una vez. Las declaraciones en un lazo WHILE...DO es posible que nunca se ejecuten. Introduzca este texto estructurado pos := -1; REPEAT pos := pos + 2; UNTIL ((pos = 101) OR (structarray[pos].value = targetvalue)) end_repeat;

Publicacin 1756-RM003K-ES-P Julio 2008

685

Apndice C

Programacin de texto estructurado

Ejemplo 2:
Si usted desea esto Mover caracteres ASCII desde una matriz SINT a un tag de cadena. (En una matriz SINT, cada elemento retiene un carcter). Parar cuando llegue al retorno de carro. 1. Inicializar Element_number a 0. 2. Contar el nmero de elementos en SINT_array (la matriz que contiene los caracteres ASCII) y almacenar el resultado en SINT_array_size (tag DINT). 3. Establecer String_tag[element_number] = el carcter en SINT_array[element_number]. 4. Aadir 1 a element_number. Esto permite al controlador verificar el siguiente carcter en SINT_array. 5. Establecer el miembro Length de String_tag = element_number. (As registra el nmero de caracteres que hay hasta el momento en String_tag). 6. Si element_number = SINT_array_size, parar. (Usted est al final de la matriz y sta no contiene un retorno de carro). 7. Si el carcter en SINT_array[element_number] = 13 (valor decimal del retorno de carro), parar. De lo contrario, ir a 3. Introduzca este texto estructurado element_number := 0; SIZE(SINT_array, 0, SINT_array_size); Repeat String_tag.DATA[element_number] := SINT_array[element_number]; element_number := element_number + 1; String_tag.LEN := element_number; If element_number = SINT_array_size then exit; end_if; Until SINT_array[element_number] = 13 end_repeat;

686

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Apndice C

Comentarios

Para facilitar la interpretacin del texto estructurado, adale comentarios. Los comentarios le permiten usar un lenguaje simple para describir cmo funciona su texto estructurado. Los comentarios no tienen ningn efecto en la ejecucin del texto estructurado. Para aadir comentarios a su texto estructurado:
Para aadir un comentario en una sola lnea al final de una lnea de texto estructurado (*comment*) Use uno de estos formatos //comment

/*comment*/ dentro de una lnea de texto estructurado (*comment*)

/*comment*/ que abarque ms de una lnea (*start of comment . . . end of comment*)

/*start of comment . . . end of comment*/

Publicacin 1756-RM003K-ES-P Julio 2008

687

Apndice C

Programacin de texto estructurado

Por ejemplo:
Formato //comment Ejemplo Al comienzo de una lnea //Se verifica el sentido de desplazamiento del transportador IF conveyor_direction THEN...

Al final de una lnea ELSE //Si el transportador no se est moviendo, se establece la luz de alarma light := 1; END_IF; (*comment*) Sugar.Inlet[:=]1;(*open the inlet*)

IF Sugar.Low (*low level LS*)& Sugar.High (*high level LS*)THEN...

(*Controla la velocidad de la bomba de recirculacin. La velocidad depende de la temperatura en el tanque*). IF tank.temp > 200 THEN... /*comment*/ Sugar.Inlet:=0;/*close the inlet*/

IF bar_code=65 /*A*/ THEN...

/*Obtiene el nmero de elementos en la matriz Inventory y almacena el valor en el tag Inventory_Items*/ SIZE(Inventory,0,Inventory_Items);

688

Publicacin 1756-RM003K-ES-P Julio 2008

ndice
A
activacin de salida 82 activar tarea de evento 464 actualizar salida 201 ajuste 503 alarma digital 30 alarmas 504 arco coseno 532 arco seno 529 arco tangente 535 aritmtica y lgica de archivo 335 ASCII asignacin de texto estructurado 663 asignacin carcter ASCII 663 no retentiva 662 retentiva 661 atributos conversin de tipos de datos 635 valores inmediatos 635 atributos comunes 635 conversin de tipos de datos 635 valores inmediatos 635 comentarios texto estructurado 687 comparacin de bits de archivo 478 comparar 206 concatenacin de cadenas 601 condiciones de overflow 648 conector diagrama de bloques de funciones 641 conector de cable de entrada 641 conector de cable de salida 641 conexin cach 173 configuracin 159 instruccin MSG 159 instruccin PID 502 construccin texto estructurado 671 conteo progresivo 128 conteo progresivo/regresivo 136 conteo regresivo 132 control de programa/operador descripcin general 654 conversin de tipos de datos 635 convertir a BCD 556 convertir en entero 559 copiar 356 copiar sncrono 356 coseno 523

B
BAND 317 banda muerta 514 BNOT 326 BOR 320 borrar 298 Borrar ASCII bfer 575 buscar cadena 605 bsqueda y comparacin de archivos 347 BXOR 323

D
descarga FIFO 400 descripcin texto estructurado 687 desenclavamiento de salida 86 desplazamiento de bits a la derecha 390 desplazamiento de bits a la izquierda 386 desviacin estndar 376 deteccin de diagnstico 486 determinacin de igualdad con mscara 237 diagrama de bloques de funciones creacin de un retardo de escn 647 resolucin del flujo de datos entre dos bloques 647 resolver un lazo 645 seleccin de elementos 641 diferente de 242 DINT en cadena 619 distribuir campo de bits 292 distribuir campo de bits con receptor 295 divisin 261 documento texto estructurado 687

C
cach conexin 173 cadena evaluacin en texto estructurado 667 Cadena a DINT 614 Cadena central 609 Cadena en REAL 616 clculo 248 cambiar signo 274 caracteres ASCII en el bfer 573 carga de secuenciador 428 carga FIFO 394 carga LIFO 406, 412 CASE 675 clasificar 371 cdigos de error ASCII 568 instruccin MSG 152 cdigos de productos 181

689Publicacin 1756-RM003K-ES-P Julio 2008

689

ndice

E
elementos instruccin SIZE 381 Eliminacin de cadena 603 enclavamiento de datos 642 enclavamiento de salida 84 Encontrar cadena 605 escalado 505 escritura ASCII 594 escritura ASCII con anexo 589 establecer valor del sistema 176 estado tarea 195 estructura COMPARE 479, 487 estructura CONTROL 336, 347, 367, 371, 376, 386, 390, 395, 401, 406, 407, 413, 420, 424, 428 estructura COUNTER 128, 132 estructura de control 448 Estructura FBD_BIT_FIELD_ DISTRIBUTE 295 Estructura FBD_BOOLEAN_ AND 317 Estructura FBD_BOOLEAN_ NOT 326 Estructura FBD_BOOLEAN_OR 320 Estructura FBD_BOOLEAN_XOR 323 estructura FBD_COMPARE 212, 216, 220, 224, 228, 243 estructura FBD_CONVERT 556, 559 Estructura FBD_COUNTER 136 estructura FBD_LIMIT 232 Estructura FBD_LOGICAL 305, 308, 311, 315 Estructura FBD_MASKED_ MOVE 288 Estructura FBD_MASK_EQUAL 238 estructura FBD_MATH 253, 256, 259, 262, 267, 275, 547 Estructura FBD_MATH_ADVANCED 271, 520, 524, 527, 529, 532, 535, 540, 544, 550, 553 estructura FBD_MATH_ ADVANCED 278 estructura FBD_ONESHOT 96, 99 estructura FBD_TIMER 116, 120, 124 Estructura FBD_TRUNCATE 561 estructura MESSAGE 144 estructura PID 498 estructura RESULT 479, 487 Estructura SERIAL_PORT_ CONTROL 566, 568, 570, 573, 578, 582, 586, 590, 595 estructura STRING 568, 600, 613 estructura TIMER 104, 108, 112 estructuras cadena 568, 613 COMPARE 479, 487 CONTROL 336, 347, 367, 371, 376, 386, 390, 395, 401, 406, 407, 413, 420, 424, 428 COUNTER 128, 132
690

FBD_BIT_FIELD_DISTRIBUTE 295 FBD_BOOLEAN_AND 317 FBD_BOOLEAN_NOT 326 FBD_BOOLEAN_OR 320 FBD_BOOLEAN_XOR 323 FBD_COMPARE 212, 216, 220, 224, 228, 243 FBD_CONVERT 556, 559 FBD_COUNTER 136 FBD_LIMIT 232 FBD_LOGICAL 305, 308, 311, 315 FBD_MASKED_MOVE 288 FBD_MASK_EQUAL 238 FBD_MATH 253, 256, 259, 262, 267, 275, 547 FBD_MATH_ADVANCED 271, 278, 520, 524, 527, 529, 532, 535, 540, 544, 550, 553 FBD_ONESHOT 96, 99 FBD_TIMER 116, 120, 124 FBD_TRUNCATE 561 instruccin RES 141 MESSAGE 144 PID 498 RESULT 479, 487 SERIAL_PORT_CONTROL 566, 568, 570, 573, 578, 582, 586, 590, 595 STRING 568, 600, 613 TIMER 104, 108, 112 etiqueta 434, 627, 631 examinar si est abierto 80 expiracin configurar para tarea de evento 195 exponencial 546 expresin expresin BOOL texto estructurado 663 expresin numrica texto estructurado 663 orden de ejecucin texto estructurado 669 texto estructurado descripcin general 663 funciones 665 operadores a nivel de bits 669 operadores aritmticos 665 operadores lgicos 668 operadores relacionales 666 expresin BOOL texto estructurado 663 expresin numrica 663 expresiones formato 209, 250, 345, 353 operadores vlidos 208, 250, 345, 353 orden de operacin 209, 251, 346, 354

Publicacin 1756-RM003K-ES-P Julio 2008

ndice

F
fin temporal 450 FORDO 678 funciones texto estructurado 665

G
ganancia anticipativa 515 grados 550

H
habilitacin de interrupcin de usuario 454

I
ICON 641 IF...THEN 672 igual a 211 indicadores de estado aritmtico overflow 648 inhabilitacin de interrupcin de usuario 454 Insertar cadena 607 instruccin ABL 570 instruccin ABS 277 instruccin ACB 573 instruccin ACL 575 instruccin ACS 532 instruccin activar tarea de evento 464 instruccin ADD 252 instruccin AFI 456 instruccin AHL 577 instruccin ALMA 42 instruccin ALMD, instrucciones de alarmas y eventos ALMD 30 instruccin AND 304 instruccin ARD 581 instruccin ARL 585 instruccin ASN 529 instruccin ATN 535 instruccin AVE 366 instruccin AWA 589 instruccin AWT 594 instruccin BRK 473 instruccin BSL 386 instruccin BSR 390 instruccin BTD 292 instruccin BTDT 295 instruccin CLR 298 instruccin CMP 206 instruccin CONCAT 601 instruccin COP 356 instruccin COS 523 instruccin CPS 356 instruccin CPT 248 instruccin CTD 132
Publicacin 1756-RM003K-ES-P Julio 2008

instruccin CTU 128 instruccin CTUD 136 instruccin DDT modo de bsqueda 488 operandos 486 instruccin de salida inmediata 201 instruccin DEG 550 instruccin DELETE 603 instruccin DIV 261 instruccin DTOS 619 instruccin DTR 494 instruccin EOT 458 instruccin EQU 211 instruccin EVENT 464 instruccin FAL modo de operacin 330 operandos 335 instruccin FBC modo de bsqueda 480 operandos 478 instruccin FFL 394 instruccin FFU 400 instruccin fin de transicin 458 instruccin FIND 605 instruccin FLL 362 instruccin FOR 470 instruccin FRD 559 instruccin FSC modo de operacin 330 operandos 347 instruccin GEQ 215 instruccin GRT 219 instruccin GSV objetos 179 operandos 176 instruccin INSERT 607 instruccin IOT 201 instruccin JMP 434, 627, 631 instruccin JSR 436 instruccin JXR estructura de control 448 instruccin LBL 434, 627, 631 instruccin LEQ 223 instruccin LES 227 instruccin LFL 406 instruccin LFU 412 instruccin LIM 231 instruccin LN 540 instruccin LOG 543 instruccin LOWER 625 instruccin MCR 452 instruccin MEQ 237 instruccin MID 609 instruccin MOD 266 instruccin MOV 283 instruccin MSG 159 cdigos de error 152 conexin en cach 173 estructura 144 mtodo de comunicacin 172 operandos 144 pautas de programacin 175
691

ndice

instruccin MUL 258 instruccin MVM 285 instruccin MVMT 288 instruccin NEG 274 instruccin NEQ 242 instruccin NOP 457 instruccin NOT 314 instruccin ONS 88 instruccin OR 307 instruccin OSF 94 instruccin OSFI 99 instruccin OSRI 96 instruccin OTE 82 instruccin OTL 84 instruccin OTU 86 instruccin pausa SFC 460 instruccin PID ajuste 503 alarmas 504 banda muerta 514 configuracin 502 escalado 505 ganancia anticipativa 515 operandos 497 polarizacin de salida 515 instruccin RAD 553 instruccin RES 141 instruccin restablecer SFC 462 instruccin RET 436, 474 instruccin RTO 112 instruccin RTOR 124 instruccin RTOS 621 instruccin SBR 436 instruccin SFP 460 instruccin SFR 462 instruccin siempre falso 456 instruccin SIN 520 instruccin SIZE 381 instruccin SQI 420 instruccin SQL 428 instruccin SQO 424 instruccin SQR 270 instruccin SRT 371 instruccin SSV objetos 179 operandos 176 instruccin STOD 614 instruccin STOR 616 instruccin SUB 255 instruccin SWPB 300 Instruccin TAN 526 instruccin TND 450 instruccin TOD 556 Instruccin TOF 108 instruccin TOFR 120 instruccin TON 104 instruccin TONR 116 instruccin TRN 561 instruccin UID 454 instruccin UIE 454 instruccin UPPER 623 instruccin XIO 80

instruccin XOR 310 instruccin XPY 546 instrucciones alarmas y eventos 29 bit 77 clculo 247 comparar 205 contador 103 control de programa 433 conversin 549 conversin ASCII 611 conversin de cadenas 611 conversin matemtica 549 depurar 627 desplazamiento 385 entrada/salida 143 especiales 477 for/break 469 lgicas 281 manipulacin de cadenas 599 manipulacin de cadenas ASCII 599 matemticas avanzadas 539 matriz movimiento 281 puerto serie 565 puerto serie ASCII 565 secuenciador 419 temporizador 103 trigonomtricas 519 instrucciones ASCII ABL 570 ACB 573 ACL 575 AHL 577 ARD 581 ARL 585 AWA 589 AWT 594 CONCAT 601 DELETE 603 DTOS 619 FIND 605 INSERT 607 LOWER 625 MID 609 RTOS 621 STOD 614 STOR 616 SWPB 300 UPPER 623 instrucciones de alarmas y eventos acceder programticamente 70 ALMA, alarma analgica 42 almacenamiento de alarmas en el bfer 69 configuracin 62 ejecucin de alarma basada en el controlador 72
Publicacin 1756-RM003K-ES-P Julio 2008

692

ndice

estado de alarma 68 suprima o inhabilite alarmas 71 texto de mensaje 65 instrucciones de archivo. Vea instrucciones de matriz instrucciones de bit ONS 88 OSF 94 OSFI 99 OSR 91 OSRI 96 OTE 82 OTL 84 OTU 86 XIO 80 instrucciones de bits introduccin 77 instrucciones de clculo ABS 277 ADD 252 CPT 248 DIV 261 formato de expresin 250, 345 Introduccin 247 MOD 266 MUL 258 NEG 274 operadores vlidos 250, 345 orden de operacin 251, 346 SQR 270 SUB 255 instrucciones de comparacin CMP 206 EQU 211 formato de expresin 209, 353 GEQ 215 GRT 219 Introduccin 205 LEQ 223 LES 227 LIM 231 MEQ 237 NEQ 242 operadores vlidos 208, 353 orden de operacin 209, 354 instrucciones de contador CTD 132 CTU 128 CTUD 136 introduccin 103 RES 141 instrucciones de control de programa AFI 456 EOT 458 EVENT 464 introduccin 433 JMP 434, 627, 631 JSR 436
Publicacin 1756-RM003K-ES-P Julio 2008

LBL 434, 627, 631 MCR 452 NOP 457 RET 436 SBR 436 TND 450 UID 454 UIE 454 instrucciones de conversin DEG 550 FRD 559 Introduccin 549 RAD 553 TOD 556 TRN 561 instrucciones de conversin de cadena DTOS 619 LOWER 625 RTOS 621 STOR 616 SWPB 300 UPPER 623 instrucciones de conversin de cadenas introduccin 611 STOD 614 instrucciones de conversin matemtica DEG 550 FRD 559 Introduccin 549 RAD 553 TOD 556 TRN 561 instrucciones de depuracin 627 instrucciones de desplazamiento BSL 386 BSR 390 FFL 394 FFU 400 Introduccin 385 LFL 406 LFU 412 instrucciones de entrada/salida GSV 176 introduccin 143 IOT 201 MSG 144 SSV 176 instrucciones de manipulacin de cadenas CONCAT 601 DELETE 603 FIND 605 INSERT 607 introduccin 599 MID 609

693

ndice

instrucciones de matriz archivo/miscelneas 329 AVE 366 BSL 386 BSR 390 COP 356 CPS 356 DDT 486 desplazamiento 385 FAL 335 FBC 478 FFL 394 FFU 400 FLL 362 FSC 347 LFL 406 LFU 412 modo de operacin 330 RES 141 secuenciador 419 SIZE 381 SQI 420 SQL 428 SQO 424 SRT 371 STD 376 instrucciones de movimiento BTD 292 BTDT 295 CLR 298 Introduccin 281 MOV 283 MVM 285 MVMT 288 instrucciones de puerto serie ABL 570 ACB 573 ACL 575 AHL 577 ARD 581 ARL 585 AWA 589 AWT 594 instrucciones de secuenciador introduccin 419 SQI 420 SQL 428 SQO 424 instrucciones de temporizador introduccin 103 RES 141 RTO 112 RTOR 124 TOF 108 TOFR 120 TON 104 TONR 116

instrucciones de traslado/lgicas BAND 317 BNOT 326 BOR 320 BXOR 323 instrucciones especiales DDT 486 DTR 494 FBC 478 introduccin 477 PID 497 SFP 460 SFR 462 instrucciones for/break BRK 473 FOR 470 Introduccin 469 RET 474 instrucciones lgicas AND 304 introduccin 281 NOT 314 OR 307 XOR 310 instrucciones matemticas avanzadas Introduccin 539 LN 540 logaritmo 543 XPY 546 instrucciones OSR 91 instrucciones para puerto serie Introduccin 565 instrucciones STD 376 instrucciones trigonomtricas ACS 532 ASN 529 ATN 535 COS 523 Introduccin 519 SIN 520 TAN 526 intercambiar byte 300 interrumpir 473 IREF 641

L
lazo de retroalimentacin diagrama de bloques de funciones 645 lazo no resuelto diagrama de bloques de funciones 645 lectura ASCII 581 lmite 231 lnea de lectura ASCII 585 lneas de handshake ASCII 577 llenar archivo 362

694

Publicacin 1756-RM003K-ES-P Julio 2008

ndice

logaritmo base 10 543 natural 540 logaritmo base 10 543 logaritmo natural 540

M
mscaras 495 mayor o igual que 215 mayor que 219 maysculas 623 menor o igual que 223 menor que 227 mensaje 144 conexiones en cach 173 pautas de programacin 175 mezcla de tipos de datos 635 minsculas 625 modo de bsqueda 480, 488 modo de operacin 330 modo incremental 333 modo numrico 331 modo todos 330 modos de temporizacin 649 mdulo de divisin 266 mover 283 mover con mscara 285 movimiento enmascarado con receptor 288 multiplicacin 258

FAULTLOG 187 instruccin GSV/SSV 179 MESSAGE 188 MODULE 190 MOTIONGROUP 191 PROGRAM 192 ROUTINE 193 SERIALPORT 193 TASK 195 WALLCLOCKTIME 197 obtener valor del sistema 176 OCON 641 operadores 208, 250, 345, 353 orden de ejecucin texto estructurado 669 operadores a nivel de bits texto estructurado 669 operadores aritmticos texto estructurado 665 operadores lgicos texto estructurado 668 operadores matemticos texto estructurado 665 operadores relacionales texto estructurado 666 orden de ejecucin 644 expresin de texto estructurado 669 orden de operacin 209, 251, 346, 354 OREF 641

N
NO a nivel de bits 314 NO booleano 326

P
polarizacin de salida 515 post-escn texto estructurado 662 promedio 366 proporcional, integral y derivativo 497 prueba ASCII para lnea de bfer 570

O
O a nivel de bits 307 O booleano 320 O exclusivo a nivel de bits 310 O exclusivo booleano 323 objeto CONTROLLER 180 objeto CONTROLLERDEVICE 181 objeto CST 183 objeto DF1 184 objeto FAULTLOG 187 objeto MESSAGE 188 objeto MODULE 190 objeto MOTIONGROUP 191 objeto PROGRAM 192 objeto ROUTINE 193 objeto SERIALPORT 193 objeto TASK 195 objeto WALLCLOCKTIME 197 objetos CONTROLLER 180 CONTROLLERDEVICE 181 CST 183 DF1 184

R
radianes 553 raz cuadrada 270 REAL en cadena 621 referencia de entrada 641 referencia de salida 641 REPEATUNTIL 684 resta 255 restablecer 141 restablecimiento de control maestro 452 retardo de escn diagrama de bloques de funciones 647 retornar 474 retorno 436

Publicacin 1756-RM003K-ES-P Julio 2008

695

ndice

S
Salida actualizar inmediatamente 201 habilitar o inhabilitar fin de procesamiento de tarea 195 saltar 434, 627, 631 saltar a subrutina 436 secuenciador de entrada 420 secuenciador de salida 424 seno 520 sin operacin 457 subrutina 436 sumar 252 superposicin verifica 195 suponer datos disponibles 645, 647

IF...THEN 672 operadores a nivel de bits 669 operadores aritmticos 665 operadores lgicos 668 operadores relacionales 666 REPEATUNTIL 684 WHILEDO 681 tipo de datos de cadena 568, 600, 613 transicin de datos 494 truncar 561

U
un impulso 88 un impulso en flanco ascendente 91 un impulso en flanco ascendente con entrada 96 un impulso en flanco descendente 94 un impulso en flanco descendente con entrada 99

T
tamao en elementos 381 tangente 526 tarea activar mediante tag consumido 201 activar tarea de evento 464 configurar programticamente 195 monitorear 195 tarea de evento activar mediante instruccin EVENT 464 activar mediante tag consumido 201 configurar 195 temporizador de retardo a la conexin 104 temporizador de retardo a la conexin con restablecimiento 116 temporizador de retardo a la desconexin 108 temporizador de retardo a la desconexin con restablecimiento 120 temporizador retentivo activado 112 temporizador retentivo activado con restablecimiento 124 texto estructurado asignacin 661 asignacin no retentiva 662 asigne carcter ASCII 663 CASE 675 comentarios 687 componentes 659 construcciones 671 evaluacin de cadenas 667 expresin 663 expresin numrica 663 FORDO 678 funciones 665
696

V
valor absoluto 277 valores inmediatos 635

W
WHILEDO 681

X
X a la potencia de Y 546

Y
Y a nivel de bits 304 Y booleano 317

Publicacin 1756-RM003K-ES-P Julio 2008

Cdigos de caracteres ASCII


Carcter [ctrl-A] SOH [ctrl-B] STX [ctrl-C] ETX [ctrl-D] EOT [ctrl-E] ENQ [ctrl-F] ACK [ctrl-G] BEL [ctrl-H] BS [ctrl-I] HT [ctrl-J] LF [ctrl-K] VT [ctrl-L] FF [ctrl-M] CR [ctrl-N] SO [ctrl-O] SI [ctrl-P] DLE [ctrl-Q] DC1 [ctrl-R] DC2 [ctrl-S] DC3 [ctrl-T] DC4 [ctrl-U] NAK [ctrl-V] SYN [ctrl-W] ETB [ctrl-X] CAN [ctrl-Y] EM [ctrl-Z] SUB ctrl-[ ESC [ctrl-\] FS ctrl-] GS [ctrl-^] RS [ctrl-_] US Dec 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Hex $00 $01 $02 $03 $04 $05 $06 $07 $08 $09 $l ($0A) $0B $0C $r ($0D) $0E $0F $10 $11 $12 $13 $14 $15 $16 $17 $18 $19 $1A $1B $1C $1D $1E $1F Carcter SPACE ! # $ % & ( ) * + , . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? Dec 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 Hex $20 $21 $22 $23 $24 $25 $26 $27 $28 $29 $2A $2B $2C $2D $2E $2F $30 $31 $32 $33 $34 $35 $36 $37 $38 $39 $3A $3B $3C $3D $3E $3F Carcter @ A B C D E F G H I J K L m N O P Q R S T U V W X Y Z [ \ ] ^ _ Dec 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 Hex $40 $41 $42 $43 $44 $45 $46 $47 $48 $49 $4A $4B $4C $4D $4E $4F $50 $51 $52 $53 $54 $55 $56 $57 $58 $59 $5A $5B $5C $5D $5E $5F Carcter a b c d e f g h i j k l m n o P q r s t u v w X y z { | } ~ DEL Dec 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 Hex $60 $61 $62 $63 $64 $65 $66 $67 $68 $69 $6A $6B $6C $6D $6E $6F $70 $71 $72 $73 $74 $75 $76 $77 $78 $79 $7A $7B $7C $7D $7E $7F

[ctrl-@] NUL 0

Servicio de asistencia tcnica de Rockwell Automation

Rockwell Automation ofrece informacin tcnica en Internet para proporcionarle asistencia a la hora de utilizar sus productos. En http://support.rockwellautomation.com, puede encontrar manuales tcnicos, una base de conocimientos con respuestas a preguntas frecuentes, notas tcnicas y de aplicacin, ejemplos de cdigo y vnculos a Service Packs de software, as como un vnculo llamado MySupport que se puede personalizar para sacar el mximo provecho de estas herramientas. Con el fin de brindarle un nivel adicional de asistencia tcnica para la instalacin, configuracin y resolucin de problemas por telfono, ofrecemos los programas de asistencia tcnica TechConnect Support. Si desea obtener ms informacin, pngase en contacto con el representante o distribuidor local de Rockwell Automation, o vistenos en http://support.rockwellautomation.com.

Asistencia para la instalacin


Si se le presenta un problema con un mdulo de hardware durante las 24 horas posteriores a la instalacin, revise la informacin proporcionada en este manual. Tambin puede llamar a un nmero especial de asistencia tcnica al cliente a fin de recibir ayuda inicial para la puesta en marcha del mdulo: En los Estados Unidos Fuera de Estados Unidos +1.440.646.3223 Lunes a viernes, de 8:00 am a 5:00 pm, hora oficial del Este de EE.UU. Pngase en contacto con el representante local de Rockwell Automation para cualquier consulta relacionada con asistencia tcnica.

Devolucin de productos nuevos


Rockwell prueba todos sus productos para garantizar su correcto funcionamiento cuando salen de las instalaciones de fabricacin. No obstante, si el producto no funciona y es necesario devolverlo: En los Estados Unidos Pngase en contacto con el distribuidor. Debe proporcionar al distribuidor un nmero de caso de asistencia tcnica (llame al nmero de telfono indicado anteriormente para obtenerlo) a fin de completar el proceso de devolucin. Pngase en contacto con el representante local de Rockwell Automation para obtener informacin sobre el procedimiento de devolucin.

Fuera de Estados Unidos

Publicacin 1756-RM003K-ES-P Julio 2008 699


Reemplaza la publicacin 1756-RM003I-ES-P Enero de 2007 Copyright 2008 Rockwell Automation, Inc. Todos los derechos reservados. Impreso en EE.UU.

Contraportada

Instrucciones generales de los controladores Logix5000

Manual de referencia

You might also like