rslogix 5000 instrucciones en español

March 29, 2018 | Author: hiramyonara | Category: Electrical Engineering, Technology, Computing, Mathematics, Science


Comments



Description

Instrucciones generales de los controladores Logix5000™Manual de referencia Números de catálogo 1756-L1x, 1756-L5x, 1756-L6x, 1768-L4x, 1769L30, 1769-L31, 1769-L32C, 1769-L32E, 1769-L35CR, 1769-L35E, 1789-L60, 1794-L34, 20D Información importante para el usuario Los equipos de estado sólido tienen características de funcionamiento distintas de las de los equipos electromecánicos. El documento Safety Guidelines for the Application, Installation and Maintenance of Solid State Controls (publicación SGI-1.1 disponible en la oficina de ventas local del Rockwell Automation o en línea en http://literature.rockwellautomation.com) describe algunas diferencias importantes entre los equipos de estado sólido y los dispositivos electromecánicos de lógica cableada. Debido a esta diferencia y también a la gran variedad de usos de los equipos de estado sólido, toda persona encargada de la aplicación de estos equipos debe asegurarse de la idoneidad de cada una de las aplicaciones concebidas con estos equipos. En ningún caso Rockwell Automation, Inc. será responsable ni asumirá ninguna obligación por daños indirectos o consecuentes que resulten del uso o de la aplicación 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 instalación en particular, Rockwell Automation, Inc. no puede asumir responsabilidad u obligación alguna por el uso de estos equipos basado en ejemplos y diagramas. Rockwell Automation, Inc. no asume ninguna obligación de patente con respecto al uso de la información, los circuitos, los equipos o el software descritos en este manual. Se prohíbe la reproducción total o parcial del contenido de este manual sin la autorización escrita de Rockwell Automation, Inc. Este manual contiene notas de seguridad en cada circunstancia en que se estimen necesarias. ADVERTENCIA Identifica información sobre prácticas o circunstancias que pueden provocar una explosión en un ambiente peligroso, lo que podría causar lesiones personales o la muerte, daños materiales o pérdidas económicas. IMPORTANTE ATENCIÓN Identifica información importante para la correcta aplicación y comprensión del producto. Identifica información sobre prácticas o circunstancias que pueden provocar lesiones personales o la muerte, daños materiales o pérdidas económicas. Los mensajes de Atención 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 podrían 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™ Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A quién está dirigido este manual . . . . . . . . . . . . . . . . . Propósito de este manual . . . . . . . . . . . . . . . . . . . . . . . Información común para todas las instrucciones. . . . . . . Convenciones y términos relacionados. . . . . . . . . . . . . . Establecer y borrar . . . . . . . . . . . . . . . . . . . . . . . . . . Condición de renglón de lógica de escalera de relés . Estados del bloque de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 23 24 25 25 25 26 27 Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA) Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Alarma digital (ALMD). . . . . . . . . . . . . . . . . . . . . . . . . . . Diagramas de estado cuando se requiere confirmación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diagramas de estado cuando no se requiere confirmación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Confirmación de alarma ALMD requerida y enclavada . Confirmación de alarma ALMD requerida y no enclavada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Confirmación de alarma ALMD no requerida y enclavada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Confirmación de alarma ALMD no requerida y no enclavada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Alarma Analógica (ALMA) . . . . . . . . . . . . . . . . . . . . . . . . Diagramas de estado cuando se requiere confirmación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diagramas de estado cuando no se requiere confirmación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Confirmación de condición de nivel ALMA requerida . Confirmación de condición de nivel ALMA no requerida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Confirmación de velocidad de cambio ALMA requerida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Confirmación de velocidad de cambio ALMA no requerida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configure una instrucción de alarma . . . . . . . . . . . . . . . . Introduzca el texto del mensaje de alarma . . . . . . . . . . . . Variables de la cadena de mensaje . . . . . . . . . . . . . . . Versiones de los mensajes de alarma en múltiples idiomas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Monitoreo del estado de alarma. . . . . . . . . . . . . . . . . . . . Almacenamiento de alarmas en el búfer. . . . . . . . . . . . . . Acceda programáticamente a información de alarmas . . . . Suprima o inhabilite alarmas . . . . . . . . . . . . . . . . . . . . . . Ejecución de alarma basada en el controlador . . . . . . . . . Uso de la memoria del controlador. . . . . . . . . . . . . . . Tiempo de escán . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 3Publicación 1756-RM003K-ES-P – Julio 2008 3 Índice Capítulo 2 Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Examinar si está cerrado (XIC). . . . . . . . . . . . . . . . . . . Examinar si está abierto (XIO) . . . . . . . . . . . . . . . . . . . Activación 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 Capítulo 3 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Temporizador de retardo a la conexión (TON). . . . . . Temporizador de retardo a la desconexión (TOF) . . . Temporizador retentivo activado (RTO) . . . . . . . . . . . Temporizador de retardo a la conexión con restablecimiento (TONR) . . . . . . . . . . . . . . . . . . . . . . Temporizador de retardo a la desconexión 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 Capítulo 4 Instrucciones de entrada/salida (MSG, GSV, SSV, IOT) Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mensaje (MSG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Códigos de error MSG . . . . . . . . . . . . . . . . . . . . . . . . . . . Códigos de error . . . . . . . . . . . . . . . . . . . . . . . . . . . . Códigos de error extendidos . . . . . . . . . . . . . . . . . . . Códigos de error PLC y SLC (.ERR) . . . . . . . . . . . . . . . Códigos de error de transferencia en bloques . . . . . . . Especifique los detalles de configuración . . . . . . . . . . . . . Especifique mensajes de lectura y escritura de la tabla de datos CIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reconfigure un módulo de E/S. . . . . . . . . . . . . . . . . . Especifique mensajes genéricos CIP . . . . . . . . . . . . . . Especifique mensajes PLC-5 . . . . . . . . . . . . . . . . . . . . Especifique mensajes SLC. . . . . . . . . . . . . . . . . . . . . . Especifique mensajes de transferencia en bloques . . . . Especifique mensajes PLC-3 . . . . . . . . . . . . . . . . . . . . Especifique mensajes PLC-2 . . . . . . . . . . . . . . . . . . . . Ejemplos de configuración MSG . . . . . . . . . . . . . . . . . . . Especifique los detalles de comunicación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 144 152 152 154 156 158 159 160 161 162 163 165 165 166 167 168 169 4 Publicación 1756-RM003K-ES-P – Julio 2008 Índice Especifique una ruta . . . . . . . . . . . . . . . . . . . . . . . Para transferencia en bloques. . . . . . . . . . . . . . . . . Especifique un método de comunicación o una dirección de módulo . . . . . . . . . . . . . . . . . . . . . . . Seleccione una opción 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 programación GSV/SSV . . . . . . . . . . . . . . . Obtenga información de fallo . . . . . . . . . . . . . . . . . Establezca los indicadores de habilitación e inhabilitación. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Capítulo 5 Instrucciones de comparación (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comparar (CMP) . . . . . . . . . . . . . . . . . . . . . . . . . . Expresiones CMP . . . . . . . . . . . . . . . . . . . . . . . Operadores válidos . . . . . . . . . . . . . . . . . . . . . Expresiones de formato . . . . . . . . . . . . . . . . . . Determine el orden de operación . . . . . . . . . . . Use cadenas en una expresión . . . . . . . . . . . . . Igual a (EQU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mayor o igual que (GEQ) . . . . . . . . . . . . . . . . . . . Mayor que (GRT) . . . . . . . . . . . . . . . . . . . . . . . . . Menor o igual que (LEQ). . . . . . . . . . . . . . . . . . . . Menor que (LES) . . . . . . . . . . . . . . . . . . . . . . . . . . Límite (LIM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Máscara igual que (MEQ) . . . . . . . . . . . . . . . . . . . Introducción de un valor de máscara inmediato Diferente de (NEQ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 206 208 208 209 209 210 211 215 219 223 227 231 237 238 242 Publicación 1756-RM003K-ES-P – Julio 2008 5 Índice Capítulo 6 Instrucciones de cálculo/ matemáticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS) Introducción . . . . . . . . . . . . . . . . . . . Calcular (CPT) . . . . . . . . . . . . . . . . . Operadores válidos . . . . . . . . . . . Expresiones de formato . . . . . . . . Determine el orden de operación . Sumar (ADD) . . . . . . . . . . . . . . . . . . Restar (SUB) . . . . . . . . . . . . . . . . . . . Multiplicar (MUL) . . . . . . . . . . . . . . . Dividir (DIV) . . . . . . . . . . . . . . . . . . Módulo (MOD) . . . . . . . . . . . . . . . . . Raíz cuadrada (SQR) . . . . . . . . . . . . . Cambiar signo (NEG) . . . . . . . . . . . . Valor absoluto (ABS). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 248 250 250 251 252 255 258 261 266 270 274 277 Capítulo 7 Instrucciones de movimiento/ lógicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT) Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . Mover (MOV) . . . . . . . . . . . . . . . . . . . . . . . . . . Mover con máscara (MVM) . . . . . . . . . . . . . . . . Introduzca un valor de máscara 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 Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE) Introducción . . . . . . . . . . . . . . . . . . . . . . . . Selección del modo de operación . . . . . . . . Modo Todos . . . . . . . . . . . . . . . . . . . . . Modo numérico . . . . . . . . . . . . . . . . . . . Modo incremental . . . . . . . . . . . . . . . . . Aritmética y lógica de archivo (FAL) . . . . . . Expresiones FAL . . . . . . . . . . . . . . . . . . Operadores válidos . . . . . . . . . . . . . . . . Expresiones de formato . . . . . . . . . . . . . Determine el orden de operación . . . . . . Búsqueda y comparación de archivos (FSC) . Expresiones FSC . . . . . . . . . . . . . . . . . . Operadores válidos . . . . . . . . . . . . . . . . Expresiones de formato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 330 330 331 333 335 344 345 345 346 347 352 353 353 6 Publicación 1756-RM003K-ES-P – Julio 2008 Índice Determine el orden de operación . . . . . . . . . . . . Use cadenas en una expresión . . . . . . . . . . . . . . Copiar archivo (COP) Copiar archivo síncrono (CPS) Llenar archivo (FLL) . . . . . . . . . . . . . . . . . . . . . . . . Promedio de archivo (AVE) . . . . . . . . . . . . . . . . . . . Clasificación de archivo (SRT) . . . . . . . . . . . . . . . . . Desviación estándar de archivo (STD) . . . . . . . . . . . Tamaño en elementos (SIZE). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 355 356 362 366 371 376 381 Capítulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU) Introducción . . . . . . . . . . . . . . . . . . . . . . . . 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 Capítulo 10 Instrucciones de secuenciador (SQI, SQO, SQL) Introducción . . . . . . . . . . . . . . . . . . . . . . . . . Secuenciador de entrada (SQI) . . . . . . . . . . . Introduzca un valor de máscara inmediato Use SQI sin SQO . . . . . . . . . . . . . . . . . . . Secuenciador de salida (SQO) . . . . . . . . . . . . Introduzca un valor de máscara inmediato Uso de SQI con SQO . . . . . . . . . . . . . . . . Restablecimiento de la posición de SQO. . Carga de secuenciador (SQL). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 420 421 423 424 425 427 427 428 Capítulo 11 Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT) Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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) . . . . . . . Inhabilitación de interrupción de usuario (UID) Habilitación de interrupción de usuario (UIE) . . . . . Instrucción siempre falso (AFI) . . . . . . . . . . . . . . . . Sin operación (NOP) . . . . . . . . . . . . . . . . . . . . . . . . Fin de transición (EOT) . . . . . . . . . . . . . . . . . . . . . . Pausa SFC (SFP) . . . . . . . . . . . . . . . . . . . . . . . . . . . Restablecer SFC (SFR) . . . . . . . . . . . . . . . . . . . . . . . Activar tarea de evento (EVENT) . . . . . . . . . . . . . . . Determine programáticamente si una instrucción EVENT activó una tarea . . . . . . . . . . . . . . . . . . . . . . . . 433 . . . . . 434 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 447 450 452 454 456 457 458 460 462 464 . . . . . 464 Publicación 1756-RM003K-ES-P – Julio 2008 7 Índice Capítulo 12 Instrucciones For/Break (FOR, FOR...DO, BRK, EXIT, RET) Introducción . . . . . For (FOR) . . . . . . . Interrumpir (BRK) . Retornar (RET) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 470 473 474 Capítulo 13 Instrucciones especiales (FBC, DDT, DTR, PID) Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comparación de bits de archivo (FBC). . . . . . . . . Selección del modo de búsqueda . . . . . . . . . . Detección de diagnóstico (DDT) . . . . . . . . . . . . . Selección del modo de búsqueda . . . . . . . . . . Transición de datos (DTR). . . . . . . . . . . . . . . . . . Introduzca un valor de máscara inmediato . . . Proporcional integral derivativo (PID) . . . . . . . . . Configure una instrucción PID. . . . . . . . . . . . . . . Especifique el ajuste. . . . . . . . . . . . . . . . . . . . Especifique la configuración. . . . . . . . . . . . . . Especificación de alarmas. . . . . . . . . . . . . . . . Especificación de escalado . . . . . . . . . . . . . . . Uso de instrucciones PID . . . . . . . . . . . . . . . . . . Bloqueo de acción integral y transferencia sin perturbaciones de manual a automático . . . . . Temporización de la instrucción PID . . . . . . . Reinicio sin problemas . . . . . . . . . . . . . . . . . . Suavizado derivativo . . . . . . . . . . . . . . . . . . . Establezca la banda muerta . . . . . . . . . . . . . . Use límite de salida . . . . . . . . . . . . . . . . . . . . Ganancia anticipativa o polarización de salida Lazos en cascada . . . . . . . . . . . . . . . . . . . . . . Control de relación . . . . . . . . . . . . . . . . . . . . Teoría 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 Capítulo 14 Instrucciones trigonométricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN) Introducción . . . . . . . Seno (SIN) . . . . . . . . Coseno (COS) . . . . . . Tangente (TAN) . . . . Arco seno (ASN) . . . . Arco coseno (ACS) . . Arco tangente (ATN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 520 523 526 529 532 535 8 Publicación 1756-RM003K-ES-P – Julio 2008 Índice Capítulo 15 Instrucciones matemáticas avanzadas (LN, LOG, XPY) Introducción . . . . . . . . . . . . Logaritmo natural (LN) . . . . Logaritmo base 10 (LOG) . . X a la potencia de Y (XPY) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 540 543 546 Capítulo 16 Instrucciones de conversión matemática (DEG, RAD, TOD, FRD, TRN, TRUNC) Introducción . . . . . . . . . . Grados (DEG). . . . . . . . . Radianes (RAD) . . . . . . . Convertir a BCD (TOD). . Convertir a entero (FRD) . Truncar (TRN). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549 550 553 556 559 561 Capítulo 17 Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT) Introducción . . . . . . . . . . . . . . . . . . . . . Ejecución de la instrucción. . . . . . . . Códigos de error ASCII . . . . . . . . . . Tipos de datos de cadena. . . . . . . . . Prueba ASCII para línea de búfer (ABL) . Caracteres ASCII en el búfer (ACB) . . . . Borrar ASCII búfer (ACL) . . . . . . . . . . . . Líneas de handshake ASCII (AHL) . . . . . Lectura ASCII (ARD) . . . . . . . . . . . . . . . Lectura ASCII de línea (ARL) . . . . . . . . . Escritura ASCII con anexo (AWA) . . . . . Escritura ASCII (ASCII Write (AWT)) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565 566 568 569 570 573 575 577 581 585 589 594 Capítulo 18 Instrucciones de cadena ASCII (CONCAT, DELETE, FIND, INSERT, MID) Introducción . . . . . . . . . . . . . . . . . . . . Tipos de datos de cadena. . . . . . . . Concatenación de cadenas (CONCAT) . Eliminación de cadena (DELETE). . . . . Encontrar cadena (FIND). . . . . . . . . . . Insertar cadena (INSERT). . . . . . . . . . . Cadena central (MID) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599 600 601 603 605 607 609 Capítulo 19 Instrucciones de conversión ASCII Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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) . . . . . . . . Mayúsculas (UPPER) . . . . . . . . . . . Minúsculas (Lower Case (LOWER)) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616 619 621 623 625 Publicación 1756-RM003K-ES-P – Julio 2008 9 Índice Capítulo 20 Instrucciones de depuración (BPT, TPT) Introducción . . . . . . . . . . . . . Puntos de interrupción (BPT) Formato de cadena . . . . . Puntos de rastreo (TPT). . . . . Formato de cadena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627 627 628 631 631 Apéndice A Atributos comunes Introducción . . . . . . . . . . . . . . Valores inmediatos . . . . . . . . . Conversiones de datos . . . . . . SINT o INT en DINT . . . . . Entero en REAL . . . . . . . . . DINT en SINT o INT . . . . . REAL en un número entero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635 635 635 637 639 639 640 Apéndice B Atributos de bloque de funciones Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Selección de elementos de bloques de funciones . . . . . . Enclavamiento de datos. . . . . . . . . . . . . . . . . . . . . . . . . Orden de ejecución. . . . . . . . . . . . . . . . . . . . . . . . . . . . Resolución de un lazo . . . . . . . . . . . . . . . . . . . . . . . Resolución del flujo de datos entre dos bloques . . . . Creación de un retardo de escán . . . . . . . . . . . . . . . Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Respuestas de bloque de funciones a condiciones de overflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Modos de temporización . . . . . . . . . . . . . . . . . . . . . . . Parámetros de instrucción comunes para modos de temporización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Descripción general de los modos de temporización . Control de programa/operador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641 641 642 644 645 647 647 648 . . 648 . . 649 . . 651 . . 653 . . 654 10 Publicación 1756-RM003K-ES-P – Julio 2008 Índice Apéndice C Programación de texto estructurado Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sintaxis del texto estructurado . . . . . . . . . . . . . . . . . . Asignaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Especifique una asignación no retentiva . . . . . . . . Asigne un carácter ASCII a una cadena . . . . . . . . . Expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Use funciones y operadores aritméticos . . . . . . . . Use operadores relacionales . . . . . . . . . . . . . . . . . Use operadores lógicos . . . . . . . . . . . . . . . . . . . . Use operadores a nivel de bits . . . . . . . . . . . . . . . Determine el orden de ejecución . . . . . . . . . . . . . Instrucciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Construcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Algunas palabras clave están reservadas para uso futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IF...THEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CASE...OF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FOR…DO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . WHILE…DO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . REPEAT…UNTIL . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comentarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Códigos 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 Publicación 1756-RM003K-ES-P – Julio 2008 11 Índice 12 Publicación 1756-RM003K-ES-P – Julio 2008 Resumen de cambios Introducción Esta versión del documento contiene información nueva y actualizada. Para encontrar la información nueva y actualizada, busque barras de cambio como las mostradas al lado de este párrafo. Información actualizada Este documento contiene los siguientes cambios. Cambio Capítulo 1 – Se combinaron las instrucciones de alarma digital (ALMD) y de alarma analógica (ALMA) en un capítulo. Se añadió información sobre configuración, cadenas de mensajes y estados. Capítulo 4 – Se añadieron nuevos atributos de objeto de controlador GSV/SSV. Capítulo 20 – Se añadieron instrucciones de depuración (PPT, TPT). Página 29 180 627 13Publicación 1756-RM003K-ES-P – Julio 2008 13 Resumen de cambios Notas: 14 Publicación 1756-RM003K-ES-P – Julio 2008 publicación 1756-RM006 15Publicación 1756-RM003K-ES-P – Julio 2008 15 . Si la tabla de ubicación indica: un número de página control de movimiento PhaseManager control de procesos La instrucción se encuentra en: este manual Logix5000 Controllers Motion Instruction Set Reference Manual. publicación LOGIX-UM001 Logix5000 Controllers Process Control and Drives Instruction Set Reference Manual. publicación 1756-RM007 PhaseManager User Manual. Esta tabla de ubicación de instrucciones también indica los lenguajes de programación disponibles para las instrucciones.Ubicación de instrucciones Dónde se encuentran las instrucciones Use esta tabla de ubicación de instrucciones para encontrar detalles de referencia acerca de las instrucciones Logix (las instrucciones atenuadas en color gris están disponibles en otros manuales). Ubicación de instrucciones Instrucción: ABL Prueba ASCII para línea de búfer Ubicación: 609 Lenguajes: lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés bloque de funciones. texto estructurado lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés lógica de escalera de relés texto estructurado texto estructurado bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés Instrucción: AWA Escritura ASCII con anexo Ubicación: 589 Lenguajes: lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado texto estructurado bloque de funciones texto estructurado bloque de funciones texto estructurado bloque de funciones lógica de escalera de relés lógica de escalera de relés lógica de escalera de relés lógica de escalera de relés lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado texto estructurado bloque de funciones texto estructurado bloque de funciones lógica de escalera de relés texto estructurado lógica de escalera de relés lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés 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 búfer 573 BNOT NO booleano ACL Borrar ASCII búfer 575 BOR O booleano ACS Arco coseno 532 BPT Puntos de interrupción BRK Interrupción ADD Suma 252 BSL Desplazamiento de bit a la izquierda AFI Instrucción siempre falso 456 577 BSR Desplazamiento de bit a la derecha 390 AHL Líneas 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 analógica 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 línea 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 Publicación 1756-RM003K-ES-P – Julio 2008 . Ubicación de instrucciones Instrucción: CPS Copiar archivo síncrono Ubicación: 356 Lenguajes: lógica de escalera de relés texto estructurado lógica de escalera de relés lógica de escalera de relés lógica de escalera de relés texto estructurado bloque de funciones texto estructurado bloque de funciones texto estructurado bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado texto estructurado bloque de funciones texto estructurado bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado lógica de escalera de relés lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado bloque de funciones texto estructurado bloque de funciones lógica de escalera de relés texto estructurado Instrucción: FAL Aritmética y lógica de archivo Ubicación: 335 Lenguajes: lógica de escalera de relés lógica de escalera de relés lógica de escalera de relés lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado lógica de escalera de relés lógica de escalera de relés lógica de escalera de relés bloque de funciones lógica de escalera de relés lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado texto estructurado bloque de funciones texto estructurado bloque de funciones bloque de funciones texto estructurado bloque de funciones lógica de escalera de relés texto estructurado texto estructurado bloque de funciones lógica de escalera de relés texto estructurado CPT Calcular 248 132 128 136 control de procesos control de procesos 486 control de procesos 553 FBC Comparación 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 Detección de diagnóstico FOR Instrucción FOR DEDT Tiempo muerto FRD Convertir en entero DEG Grados FSC Búsqueda y comparación 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 Límite superior/inferior DTOS DINT en cadena 619 control de procesos control de procesos 641 control de procesos 607 HPF Filtro pasaaltos DTR Transición de datos 494 458 ICON Conector de cable de entrada IMC Control de modelos interno EOT Fin de transición EQU Igual a 206 INSERT Insertar cadena ESEL Selección mejorada control de procesos 464 INTG Integrador control de procesos 201 EVENT Activar tarea de evento IOT Salida inmediata Publicación 1756-RM003K-ES-P – Julio 2008 17 . Ubicación de instrucciones Instrucción: IREF Referencia de entrada Ubicación: 641 control de procesos 434 436 Lenguajes: bloque de funciones texto estructurado bloque de funciones lógica de escalera de relés lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés lógica de escalera de relés texto estructurado bloque de funciones texto estructurado bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés lógica de escalera de relés lógica de escalera de relés bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado texto estructurado bloque de funciones lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado Instrucción: MAG Engranaje de eje de movimiento Ubicación: 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: lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado texto estructurado bloque de funciones lógica de escalera de relés texto estructurado texto estructurado bloque de funciones lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado JKFF Circuito multivibrador JK MAHD Aplicar diagnósticos de conexión de movimiento JMP Saltar a etiqueta JSR Saltar a subrutina MAH Posición 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 posición de eje de movimiento LEQ Menor o igual que MAR Registro de brazo de movimiento LES Menor que 227 MASD Desactivación de eje de movimiento LFL Carga LIFO 406 412 231 MAS Paro de eje de movimiento LFU Descarga LIFO MASR LIM Límite Restablecer desactivación 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 móvil LOG Logaritmo base 10 (1) MAW Observar brazo de movimiento LOWER Minúsculas 625 MAXC Captura máxima LPF Filtro pasabajos control de procesos control de movimiento control de MCCD Dinámica 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 cálculo de movimiento 18 Publicación 1756-RM003K-ES-P – Julio 2008 . Ubicación de instrucciones Instrucción: MCD Dinámica de cambio de movimiento Ubicación: control de movimiento control de movimiento 452 Lenguajes: lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado Instrucción: MGSR Restablecimiento de desactivación de grupo de movimiento Ubicación: control de movimiento Lenguajes: lógica de escalera de relés texto estructurado MCLM Movimiento lineal de coordenadas de movimiento MID Cadena central 609 lógica de escalera de relés texto estructurado texto estructurado bloque de funciones texto estructurado bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado texto estructurado bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones MCR Restablecimiento de control maestro MINC Captura mínima IMMC Control multivariable modular control de procesos control de procesos 266 MCSD Desactivación de coordenadas de movimiento control de movimiento control de movimiento control de movimiento MCS Paro de coordenadas de movimiento MOD Módulo MCSR Restablecimiento de desactivación de coordenadas de movimiento MCT Transformada de coordenadas de movimiento MOV Mover 283 control de MRAT control de movimiento lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado Ajuste de eje de movimiento movimiento de marcha MRHD control de MCTP control de Posición de transformada de movimiento cálculo de movimiento Diagnósticos de conexión de movimiento movimiento de marcha MRP Posición 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 desactivación 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 Desviación estándar de movimiento MDW Observar desarme de movimiento MUL Multiplicar MEQ Máscara igual que MUX Multiplexor MGSD Desactivación de grupo de movimiento control de movimiento control de control de procesos 285 288 MVM Mover con máscara MGS MVMT Mover con máscara con receptor Paro de grupo de movimiento movimiento MGSP control de Posición de estroboscopio de movimiento grupo de movimiento NEG Cambiar signo 274 Publicación 1756-RM003K-ES-P – Julio 2008 19 . Ubicación de instrucciones Instrucción: NEQ Diferente de Ubicación: 242 Lenguajes: lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés lógica de escalera de relés texto estructurado bloque de funciones texto estructurado bloque de funciones bloque de funciones lógica de escalera de relés lógica de escalera de relés texto estructurado bloque de funciones bloque de funciones texto estructurado bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés lógica de escalera de relés lógica de escalera de relés lógica de escalera de relés lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado Instrucción: PFL Fallo de fase de equipo Ubicación: PhaseManager Lenguajes: lógica de escalera de relés texto estructurado texto estructurado bloque de funciones lógica de escalera de relés texto estructurado texto estructurado bloque de funciones texto estructurado bloque de funciones texto estructurado bloque de funciones lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado bloque de funciones texto estructurado bloque de funciones lógica de escalera de relés lógica de escalera de relés texto estructurado bloque de funciones texto estructurado bloque de funciones texto estructurado bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones NOP Sin operación 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 posición ONS Un impulso POVR Comando de anulación 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 Parámetros 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 Activación 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 régimen control de procesos control de procesos 112 PCLF Fallo de borrado de fase de equipo PhaseManager RMPS Rampa y estabilización 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 Publicación 1756-RM003K-ES-P – Julio 2008 . Ubicación de instrucciones Instrucción: RTOS REAL en cadena Ubicación: 621 Lenguajes: lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado bloque de funciones texto estructurado bloque de funciones texto estructurado bloque de funciones bloque de funciones texto estructurado bloque de funciones lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado texto estructurado bloque de funciones texto estructurado bloque de funciones lógica de escalera de relés lógica de escalera de relés lógica de escalera de relés lógica de escalera de relés bloque de funciones texto estructurado lógica de escalera de relés texto estructurado texto estructurado bloque de funciones texto estructurado bloque de funciones Instrucción: SSV Establecer valor del sistema Ubicación: 176 Lenguajes: lógica de escalera de relés texto estructurado lógica de escalera de relés lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés lógica de escalera de relés bloque de funciones texto estructurado bloque de funciones SBR Subrutina 436 STD Desviación estándar 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 Tamaño en elementos 381 TOFR Temporizador de retardo a la desconexión 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 desconexión 108 lógica de escalera de relés texto estructurado bloque de funciones SQI Secuenciador de entrada TONR Temporizador de retardo a la conexión con restablecimiento 116 SQL Carga de secuenciador SQO Secuenciador de salida TON Temporizador de retardo a la conexión 104 lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés lógica de escalera de relés bloque de funciones texto estructurado lógica de escalera de relés texto estructurado SQR Raíz cuadrada TOT Totalizador control de procesos 631 561 SQRT Raíz cuadrada 270 371 TPT Puntos de rastreo TRN Truncar SRT Clasificación de archivo SRTP Dividir rango de tiempo proporcional control de procesos control de procesos TRUNC Truncar 561 454 SSUM Sumador seleccionado UID Inhabilitación de interrupción de usuario Publicación 1756-RM003K-ES-P – Julio 2008 21 . Ubicación de instrucciones Instrucción: UIE Habilitación de interrupción de usuario Ubicación: 454 Lenguajes: lógica de escalera de relés texto estructurado texto estructurado bloque de funciones lógica de escalera de relés texto estructurado lógica de escalera de relés lógica de escalera de relés lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones UPDN Acumulador progresivo/ regresivo control de procesos 623 UPPER Mayúsculas 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 Publicación 1756-RM003K-ES-P – Julio 2008 . publicación LOGIX-UM001 Logix5000 Controllers Import/Export Reference Manual. Documentos Manual de referencia de instrucciones generales de controladores Logix5000. El usuario ya debe estar familiarizado con la manera en que el controlador basado en Logix almacena y procesa datos.5 A quién 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.8. Los programadores sin experiencia deben leer todos los detalles de una instrucción antes de usarla.Prefacio Instrucciones generales de controladores Logix5000™ Introducción Tarea/meta Programar el controlador para aplicaciones secuenciales Usted se encuentra aquí Este manual es uno de varios manuales de instrucciones del sistema Logix5000. publicación 1756-RM007 PhaseManager User Manual. publicación 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. 23Publicación 1756-RM003K-ES-P – Julio 2008 23 . Los programadores con experiencia pueden consultar la información sobre las instrucciones para verificar detalles. publicación 1756-RM006 Logix5000 Controllers Motion Instruction Set Reference Manual. publicación 1756-RM084 Convertir una aplicación de PLC-5 o SLC 500 Logix5550 Controller Converting PLC-5 or SLC 500 Logic to Logix5550 Logic Reference en una aplicación Logix5000 Manual. publicación 1756-6. describe los operandos Los pines mostrados en un bloque de funciones predeterminado son sólo los pines predeterminados. describe los operandos si está disponible en texto estructurado.Prefacio Instrucciones generales de controladores Logix5000™ Propósito de este manual Esta sección Nombre de la instrucción Este manual proporciona una descripción de cada instrucción en este formato: Proporciona este tipo de información identifica la instrucción define si la instrucción es una instrucción de entrada o de salida Operandos lista de todos los operandos de la instrucción si está disponible en lógica de escalera de relés. describe los operandos si está disponible en bloque de funciones. La tabla de operandos indica todos los pines posibles para un bloque de funciones. define el tipo de fallo y el código Ejecución Ejemplo especifica cómo funciona la instrucción proporciona por lo menos un ejemplo de programación en cada lenguaje de programación disponible incluye una descripción que explica cada ejemplo Los siguientes iconos ayudan a identificar información específica del lenguaje: Este icono Indica este lenguaje de programación lógica de escalera de relés texto estructurado bloque de funciones 24 Publicación 1756-RM003K-ES-P – Julio 2008 . si los hay Descripción describes el uso de la instrucción define cualquier diferencia cuando la instrucción está habilitada e inhabilitada. Estructura de la instrucción indica los bits y valores de estado de control de la instrucción. si corresponde Indicadores de estado aritmético Condiciones de fallo define si la instrucción afecta o no los indicadores de estado aritmético consulte el apéndice Atributos comunes define si la instrucción genera o no genera fallos menores o mayores de ser así. Publicación 1756-RM003K-ES-P – Julio 2008 25 .Instrucciones generales de controladores Logix5000™ Prefacio Información común para todas las instrucciones El conjunto de instrucciones Logix5000 tiene algunos atributos comunes: Para esta información atributos comunes Vea este apéndice El apéndice Atributos comunes define: • indicadores de estado aritmético • tipos de datos • palabras clave atributos de bloques de funciones El apéndice Atributos de bloque de funciones: • control del programa y del operador • modos de temporización Convenciones y términos 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 término establecer Significa el bit se establece en 1 (ON) un valor se establece en cualquier número 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 parámetro acepta más de un tipo de datos. Las instrucciones se ejecutan más rápidamente y requieren menos memoria si todos los operandos de instrucción usan el mismo tipo de datos óptimos. los tipos de datos en negrita indican tipos de datos óptimos. típicamente DINT o REAL. pero ignora saltos que podrían omitir la ejecución de las instrucciones. se ejecuta cada vez que se llama. si la instrucción se evalúa como falsa. el controlador establece la condición de renglón que sigue la instrucción (condición de salida de renglón). la condición de salida del renglón es verdadera. Si una subrutina se llama más de una vez. afecta cualquier instrucción subsiguiente.Prefacio Instrucciones generales de controladores Logix5000™ Condición de renglón de lógica de escalera de relés El controlador evalúa las instrucciones de lógica de escalera según la condición de renglón que precede a la instrucción (condición de entrada del renglón). Un preescán no se produce para un programa cuando: • El programa se prioriza mientras el controlador está en ejecución. instrucción de entrada instrucción de salida condición de entrada de renglón condición de salida de renglón Si la condición de entrada de renglón de una instrucción de entrada es verdadera. la condición de salida del renglón es falsa. El controlador ejecuta todos los lazos FOR y llamadas de subrutina. Según la condición de entrada de renglón y la instrucción. a su vez. El preescán es un escán especial de todas las rutinas en el controlador. los valores de entrada no están actualizados y no se escriben las salidas. Si la instrucción se evalúa como verdadera. Durante el preescán. lo cual. 26 Publicación 1756-RM003K-ES-P – Julio 2008 . • El programa se desprioriza cuando el controlador entra al modo de marcha. Las siguientes condiciones generan un preescán: • Conmutar del modo de programación al modo de marcha • Entrar automáticamente al modo de marcha tras encender la unidad. El controlador escanea todas las rutinas principales y subrutinas durante el preescán. el controlador evalúa la instrucción y establece la condición de renglón de entrada según los resultados de la instrucción. El controlador también preescanea las instrucciones. El controlador usa el preescán de las instrucciones de lógica de escalera de relés para restablecer E/S no retentivas y valores internos. hay algunas instrucciones de bloques de funciones que especifican una funcionalidad especial. la instrucción de bloque de funciones ejecuta la lógica de preescán. Las unidades de ingeniería que no se están dentro de este rango pueden provocar una pérdida de exactitud si los resultados se acercan a las limitaciones de punto flotante (coma flotante) de precisión simple (+/-10+/-38). la instrucción siempre se reanuda donde se detuvo cuando EnableIn cambió de borrado a establecido. Si el parámetro EnableIn no está cableado. EnableOut también se borra. si la ejecución del bloque de funciones detecta una condición de overflow. • EnableOut es similar a EnableIn. Posible condición preescán Descripción El preescán para las rutinas de bloques de funciones es igual que para las rutinas de lógica de escalera de relés. cuando EnableIn cambia de borrado a establecido. • cuando EnableIn se borra. cada vez que el modo de temporización es sobremuestreo. tal como la función de reinicialización. El controlador usa el primer escán de instrucción para leer las entradas actuales y determinar el estado apropiado en que estarán primera ejecución de instrucción La primera ejecución de instrucción se refiere a la primera vez que la instrucción se ejecuta con una nueva instancia de estructura de datos. éste cambia para establecerse la próxima vez que se ejecute la instrucción. El controlador evalúa las instrucciones de bloques de funciones según el estado de condiciones diferentes. la instrucción siempre se ejecuta como normal y EnableIn permanece establecido. es necesario restringir el rango de unidades de ingeniería a +/-10+/-15 puesto que los cálculos de punto flotante (coma flotante) internos se realizan usando un punto flotante (coma flotante) de precisión simple. la lógica de post-escán o simplemente omite la ejecución del algoritmo normal. La única diferencia radica en que el parámetro EnableIn para cada instrucción de bloque de funciones se borra durante el preescán. El controlador usa la primera ejecución de instrucción para generar coeficientes y otros almacenamientos de datos que no cambian para un bloque de funciones después de una descarga inicial. Si usted borra EnableIn. Cada instrucción de bloque de funciones incluye también los parámetros EnableIn y EnableOut: • las instrucciones de bloques de funciones se ejecutan normalmente cuando se establece EnableIn. primer escán de instrucción El primer escán de instrucción se refiere a la primera vez que se ejecuta una instrucción después del preescán. Publicación 1756-RM003K-ES-P – Julio 2008 27 . • la ejecución del bloque de funciones se reanuda desde donde se detuvo cuando EnableIn cambió de borrado a establecido.Instrucciones generales de controladores Logix5000™ Prefacio Estados del bloque de funciones IMPORTANTE Cuando se programa un bloque de funciones. Para las instrucciones de bloques de funciones con parámetros basados en tiempo. Sin embargo. sin embargo. Prefacio Instrucciones generales de controladores Logix5000™ Notas: 28 Publicación 1756-RM003K-ES-P – Julio 2008 . Si desea detectar alarmas basadas en condiciones booleanas (verdadero/falso) Use esta instrucción ALMD Disponible en estos lenguajes lógica de escalera de relés texto estructurado bloque de funciones Vea la página 30 detectar alarmas en base al nivel o velocidad de cambio de un valor ALMA lógica de escalera de relés texto estructurado bloque de funciones 42 29Publicación 1756-RM003K-ES-P – Julio 2008 29 . ALMA) Introducción Estas instrucciones de alarma basadas en Logix están disponibles en lógica de escalera de relés. Cuando se usan con las versiones 5. texto estructurado y diagrama de bloques de funciones.0 y posteriores del software FactoryTalk View SE. 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.Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. estas instrucciones crean un sistema de alarmas con su paquete de visualización. Especifica la duración de la alarma antes de que sea reportada (milisegundos). Los operandos son iguales a los de la instrucción ALMD de lógica de escalera de relés. ProgReset. El valor se copia a InhabProg (ProgDisable) cuando se ejecuta la instrucción. Indica el número de milisegundos que han transcurrido desde que se cumplió la condición de la alarma. El valor se copia a RestabProg (ProgReset) cuando se ejecuta la instrucción. la entrada de condición de alarma (In) se obtiene a partir de la condición de renglón. 30 Publicación 1756-RM003K-ES-P – Julio 2008 . Cuando se establece. Texto estructurado ALMD(ALMD. En la transición de borrado a establecido. En la transición de borrado a establecido. In.Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. ProgEnable). ProgAck BOOL Tag Inmediato Tag Inmediato Tag Inmediato Tag Inmediato Inmediato El valor se copia a ConfProg (ProgAck) cuando se ejecuta la instrucción. ALMA) Alarma digital (ALMD) La instrucción ALMD detecta alarmas basadas en condiciones booleanas (verdadero/falso) Los parámetros de control de programa (Prog) y de operador (Oper) proporcionan una interface para los comandos de alarma. ProgAck. habilita la alarma (tiene precedencia sobre los comandos de inhabilitación). El valor de entrada de alarma es comparado para determinar si existe una alarma. inhabilita la alarma (no anula los comandos de habilitación). El valor se copia a In cuando se ejecuta la instrucción. Cuando se establece. ProgReset BOOL ProgDisable BOOL ProgEnable BOOL MinDurationPRE DINT MinDurationACC DINT Inmediato Lógica de escalera de relés solamente. confirma la alarma (si se requiere confirmación). borra la alarma (si se requiere). ProgDisable. Lógica de escalera de relés solamente. Operando tag ALMD In Tipo ALARM_DIGITAL BOOL Formato Estructura Tag Inmediato Descripción Estructura ALMD Texto estructurado solamente. Operandos: Lógica de escalera de relés En la lógica de escalera de relés. El valor se copia a HabilitProg (ProgEnable) cuando se ejecuta la instrucción. con algunas excepciones como se indicó anteriormente. la instrucción no se ejecuta y las salidas no se actualizan. se activa la condición de alarma cuando In se establece. Texto estructurado: Copiado del operando de instrucción. ALMA) Capítulo 1 Bloque de funciones Operando tag ALMD Tipo ALARM_DIGITAL Formato Estructura Descripción Estructura ALMD Estructura ALARM_DIGITAL Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Lógica de escalera de relés: Corresponde al estado del renglón. Texto estructurado: Ningún efecto. Cuando se borra la condición. No afecta el procesamiento. El usuario puede establecer InFault para indicar que la señal de entrada tiene un error. En cualquier caso. la instrucción establece InFaulted (Status.1). Publicación 1756-RM003K-ES-P – Julio 2008 31 . la instrucción continúa evaluando In en lo que respecta a las condiciones de alarma. la instrucción borra InFaulted (Status. Cuando se establece la condición. la instrucción se ejecuta. Se borra si la condición del renglón es falsa. La opción predeterminada es establecido. La instrucción siempre se ejecuta. La opción predeterminada es establecido. In BOOL La entrada de señal digital para la instrucción. Si se establece.1). Cuando se establece. InFault BOOL Indicador de estado deficiente para la entrada. Lógica de escalera de relés: Sigue la condición del renglón. Cuando se borra.Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. Condition BOOL Especifica cómo se activa la alarma. La opción predeterminada es borrado (buen estado). La opción predeterminada es borrado. se activa la condición de alarma cuando In se borra. Se establece si la condición del renglón es verdadera. Bloque de funciones: Si se borra. 32 Publicación 1756-RM003K-ES-P – Julio 2008 . se enclava la alarma. ProgAck BOOL Se establece mediante el programa de usuario para confirmar la alarma. La opción predeterminada es borrado.Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. OperSuppress BOOL Se establece mediante la interface del operador para suprimir la alarma. ALMA) Parámetro de entrada AckRequired Tipo de datos BOOL Descripción Especifica si se requiere confirmación de alarma. Requiere que una transición cambie de borrado a establecido mientras la alarma está InAlarm y la condición In no está en alarma. no se requiere confirmación y siempre se establece Acked. se desenclava la alarma. ProgSuppress BOOL Se establece mediante el programa de usuario para suprimir la alarma. La instrucción borra este parámetro. Requiere que una transición cambie de borrado a establecido mientras la alarma no está confirmada. OperReset BOOL Se establece mediante la interface del operador para restablecer la alarma. Lógica de escalera de relés: Copiado del operando de instrucción. Las alarmas enclavadas permanecen InAlarm cuando la condición de alarma se hace falsa. Requiere que una transición cambie de borrado a establecido mientras la alarma está InAlarm y la condición In no está en alarma. La instrucción de alarma borra este parámetro. hasta que se reciba un comando de restablecimiento (Reset). Cuando se establece. requiere confirmación. La opción predeterminada es borrado. ProgReset BOOL Se establece mediante el programa de usuario para restablecer la alarma. Cuando se establece. La instrucción de alarma borra este parámetro. Requiere que una transición cambie de borrado a establecido mientras la alarma no está confirmada. Cuando se borra. La opción predeterminada es borrado. La opción predeterminada es borrado. Cuando se borra. OperAck BOOL Se establece mediante la interface del operador para confirmar la alarma. La opción predeterminada es borrado. La opción predeterminada es borrado. Lógica de escalera de relés: Copiado del operando de instrucción. Una alarma enclavada sólo puede restablecerse cuando la condición de alarma es falsa. Texto estructurado: Copiado del operando de instrucción. Texto estructurado: Copiado del operando de instrucción. La opción predeterminada es establecido. Latched BOOL Especifica si la alarma está enclavada. La opción predeterminada es borrado. La opción predeterminada es borrado. Tiene precedencia sobre los comandos de supresión. 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. Tiene precedencia sobre los comandos de supresión. La instrucción de alarma borra este parámetro. Lógica de escalera de relés: Copiado del operando de instrucción. Texto estructurado: Copiado del operando de instrucción. ALMA) Capítulo 1 Parámetro de entrada ProgUnsuppress Tipo de datos BOOL Descripción Se establece mediante el programa de usuario para cancelar la supresión de la alarma. ProgDisable BOOL Se establece mediante el programa de usuario para inhabilitar la alarma. La opción predeterminada es borrado. Una transición que cambia de borrado a establecido restablece el conteo de alarmas a cero. La instrucción de alarma borra este parámetro. OperUnsuppress BOOL Se establece mediante la interface del operador para cancelar la supresión de la alarma. Tiene precedencia sobre un comando de inhabilitación. Texto estructurado: Copiado del operando de instrucción. Cuando se establece. La opción predeterminada es borrado. Lógica de escalera de relés: Copiado del operando de instrucción. La opción predeterminada es borrado. AlarmCountReset BOOL Se establece mediante el programa de usuario para restablecer el conteo de alarmas. Cuando se borra. La opción predeterminada es borrado. La opción predeterminada es borrado.Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. OperDisable BOOL Se establece mediante la interface del operador para inhabilitar la alarma. Tiene precedencia sobre un comando de inhabilitación. OperEnable BOOL Se establece mediante la interface del operador para habilitar la alarma. La opción predeterminada es borrado. el valor de ProgTime proporciona el sello de hora. La instrucción de alarma borra este parámetro. ProgEnable BOOL Se establece mediante el programa de usuario para habilitar la alarma. Publicación 1756-RM003K-ES-P – Julio 2008 33 . La opción predeterminada es borrado. el reloj del controlador proporciona el sello de hora. confirmada. Tiempo transcurrido desde que se detectó la alarma Cuando este valor llega a MínDuraciónPRE. Esto permite que la aplicación aplique sellos de hora obtenidos del origen de la alarma. Sello de hora de la detección de alarma. Estado suprimido de la alarma. Si la alarma no requiere confirmación. Se establece cuando la alarma está suprimida. Válido = 0. Se borra cuando la entrega es exitosa o está en curso. 1 = menos severa).647. Sello de hora de confirmación de alarma. Se establece cuando la alarma está confirmada.. El controlador recolecta los datos de alarma tan pronto como se detecta la condición de alarma. Si se llega al valor máximo.1000 (1000 = más severa. Sello de hora del retorno de la alarma al estado normal. Se establece cuando la alarma está inhabilitada. Severity DINT MínDurationPRE DINT Preajuste de duración mínima (milisegundos) para que la condición de alarma permanezca verdadera antes de que la alarma sea marcada como InAlarm y se envíe notificación de alarma a los clientes. el contador deja el valor en el máximo valor de conteo. Sello de hora que indica cuándo se restableció la alarma. Valor predeterminado = 500. Válido = 1. Se borra cuando la alarma no está suprimida. Estado inhabilitado de la alarma. Se establece cuando hay un error de entrega: es decir. ningún subscriptor de alarma estaba suscrito o por lo menos un suscriptor no recibió el último mensaje de estado de cambio de alarma..147. Acked siempre se establece cuando AckRequired se borra. por lo tanto. Estado de alarma confirmada.Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. la alarma se activa (InAlarm está establecido) y se envía una notificación a los clientes. Se borra cuando la alarma no está confirmada. no se pierden datos durante la espera hasta cumplir con la duración mínima. Número de veces que se activó la alarma (InAlarm está establecido). Error de entrega del mensaje de notificación de alarma.483. Se establece cuando la alarma está activa (InAlarm está establecido) y no confirmada (Acked está borrado). pero puede usarse para clasificar y filtrar funciones en el subscriptor de alarmas.2. InAlarmUnack BOOL Combinación de alarma activa y estado confirmado. Se borra cuando la alarma está normal (inactiva). este valor se usa para proporcionar el valor de sello de hora para todos los eventos. ALMA) Parámetro de entrada ProgTime Tipo de datos LINT Descripción Si UseProgTime se establece.. Se establece cuando la alarma está activa. Suppressed Disabled MínDurationACC BOOL BOOL DINT AlarmCount InAlarmTime AckTime RetToNormalTime DeliveryER DINT LINT LINT LINT BOOL AlarmCountResetTime LINT 34 Publicación 1756-RM003K-ES-P – Julio 2008 . Parámetro de salida Tipo de datos EnableOut InAlarm Acked BOOL BOOL BOOL Descripción Habilitación de salida. Estado activo de alarma. Valor predeterminado = 0. Esto no afecta el procesamiento de alarmas por parte del controlador. tal como un módulo de entrada de secuencia de eventos. o ambas. Se borra cuando la alarma no está activa (estado normal). este sello de hora es igual a la hora de la alarma. Severidad de la alarma. Se borra cuando la alarma está habilitada.. Se establece cuando el mensaje de alarma se almacena en el búfer por lo menos para un suscriptor. El programa del usuario estableció InFault para indicar datos de entrada de mala calidad. Alarm Banner. Se establece cuando la entrega está en curso. Alarm Status Explorer y Alarm Log Viewer del software FactoryTalk View SE. Status. Se borra cuando por lo menos un suscriptor está conectado o cuando no hay suscriptores. DeliveryEN NoSubscriber NoConnection BOOL BOOL BOOL CommError BOOL AlarmBuffered BOOL Subscribers SubscNotified Status DINT DINT DINT InstructFault (Status. Número de suscriptores notificados correctamente acerca del cambio de estado de alarma más reciente. Número de suscriptores para esta alarma. Se borra cuando todos los suscriptores conectados confirman recepción del mensaje de alarma. Error de comunicación al entregar un mensaje de alarma. Descripción La instrucción ALMD detecta alarmas con base en condiciones booleanas (verdadero/falso) La instrucción ALMD proporciona funcionalidad adicional cuando se usa con el software RSLinx Enterprise y FactoryTalk View SE. Se establece cuando no hay suscriptores. Status. ALMA) Capítulo 1 Parámetro de salida Tipo de datos DeliveryDN BOOL Descripción Entrega del mensaje de notificación de alarma realizada. Los subscriptores de la alarma no estaban conectados cuando se intentó entregar el mensaje más reciente. Éste no es un error menor ni mayor del controlador. Se borra cuando la entrega no se realizó correctamente o está en curso.2 = SeverityInv.2) BOOL BOOL Existen condiciones de error de instrucción. La alarma continúa evaluando In en lo que respecta a la condición de alarma. La severidad de la alarma no es válida. Si la severidad <1. Si la severidad >1000. Se borra cuando la entrega no está en curso.1 = InFaulted. Se establece cuando todos los suscriptores están desconectados. Se establece cuando hay errores de comunicación y se han usado todos los reintentos. Esto significa que un suscriptor estaba suscrito y tenía una conexión.Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. la instrucción usa Severity = 1. la instrucción usa Severity = 1000. Indicadores de estado combinados: Status. 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. Mensaje de alarma almacenado en el búfer debido a error de comunicación (ComError está establecido) o pérdida de conexión (NoConnection está establecido).0) BOOL InFaulted (Status. Usted puede mostrar alarmas en las pantallas Alarm Summary. Verifique los bits de estado restantes para determinar lo que ocurrió. Se borra cuando el mensaje de alarma no se almacena en el búfer.0 = InstructFault.1) SeverityInv (Status. Estado de entrega del mensaje de notificación de alarma. pero el controlador no recibió confirmación de la entrega del mensaje. Se borra cuando hay por lo menos un suscriptor. Publicación 1756-RM003K-ES-P – Julio 2008 35 . La alarma no tenía suscriptores cuando se intentó entregar el mensaje más reciente. ALMA) El software RSLinx Enterprise se encarga de las alarmas en el controlador. clientes Alarm can be reset by several different ways: ProgReset. software. OperAck. clientes Alarm can be acked by several different ways: ProgAck. software. 36 Publicación 1756-RM003K-ES-P – Julio 2008 . OperReset. Condición. Condición. Diagramas de estado cuando se requiere confirmación Enclavado = Falso Latched = False InAlarm = Falso En= = Condition. 2 La 2 alarma puede restablecerse de diferentes maneras: ProgReset. OperReset. 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.MinDurationACC MinDurationACC >= >= Min DurationPRE In MinDurationPRE ión 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 . Reset InAlarm = False Acked = Verdadero Acked = True InAlarm = Falso InIn !=!= CC on od nid tiio cin ó. clients (RSLogix 5000 (software RSLogix 5000. MinDurationACC MinDurationACC >= >= MinDurationPRE In MinDurationPRE InAlarm = Verdadero InAlarm = True Acked = False Acked = Falso 2 2 != Condición. Use los parámetros de salida para monitorear la instrucción a fin de ver el estado de suscripción de alarmas y para mostrar cambios de estado de alarmas. Si se pierde una conexión con el software RSLinx Enterprise.Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. clients (RSLogix 5000 (software RSLogix 5000. OperAck. el controlador puede almacenar en el búfer datos de alarmas brevemente hasta que se restaure la conexión. RSView software). RSView software).nR . . software RSView). Reset In != In Condition.e Rs ee st e2 t2 1 Ack Ack1 InAlarm = Verdadero InAlarm = True Acked = Verdadero Acked = True 1 La 1 alarma puede confirmarse de diferentes maneras: ProgAck. software RSView). EnableIn y EnableOut se establecen El Parámetro In se establece y la instrucción realiza una evaluación para determinar el estado de la alarma. OperReset. condición de entrada de renglón es verdadera La condición de salida de renglón se establece como verdadera. clients (RSLogix 5000 Indicadores de estado aritmético: ninguno Condiciones de fallo: ninguna Ejecución: Condición preescán Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. sellos de hora e indicadores de entrega se borran. Publicación 1756-RM003K-ES-P – Julio 2008 37 . MinDurationACC >= MinDurationPRE MinDurationPRE InAlarm = Falso InAlarm = False In In !=!= Condición Condition InAlarm = Verdadero InAlarm = True Acked Acked == True Verdadero Enclavado Latched = True= Verdadero In = Condición. El Parámetro In se borra y la instrucción realiza una evaluación para determinar el estado de la alarma. InAlarma se borra y Acked se establece. ALMA) Capítulo 1 Diagramas de estado cuando no se requiere confirmación Enclavado = Latched = False Falso In = Condición. clientes 1 (software RSLogix 5000. condición de entrada de renglón es falsa La condición de salida de renglón se establece como falsa. post-escán La condición de salida de renglón se establece como falsa. software. Reset 1 InAlarm = Verdadero InAlarm = True 1 Acked Acked == True Verdadero 1 La alarma puede restablecerse de diferentes maneras: ProgReset. OperReset. software RSView). EnableIn y EnableOut se borran. MinDurationACC >= In = Condition.Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. Todas las peticiones del operador. MinDurationACC >= MinDurationPRE InAlarm = False Falso InAlarm = In In !=!= Condición. Resset Condition. MínDuraciónACC >= MínDuraciónPRE In = Condition. RSView software) Alarm can be reset by several different ways: ProgReset. sellos de hora e indicadores de entrega se borran. ALMA) Condición preescán Acción de bloque de funciones Todas las peticiones del operador. InAlarm se borra y Acked se establece. EnableOut se establece. EnableOut siempre se establece. La instrucción no se ejecuta. EnableOut siempre se establece. sellos de hora e indicadores de entrega se borran. post-escán Ninguna. primer escán de instrucción Ninguna. La instrucción se ejecuta. Ninguna. Acción de texto estructurado Todas las peticiones del operador. InAlarm se borra y Acked se establece. Ninguna. La instrucción se ejecuta. EnableIn se establece La instrucción se ejecuta.Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. EnableOut se borra. Ninguna. primera ejecución de instrucción EnableIn se borra Ninguna. Confirmación de alarma ALMD requerida y enclavada 38 Publicación 1756-RM003K-ES-P – Julio 2008 . ALMA) Capítulo 1 Confirmación de alarma ALMD requerida y no enclavada Confirmación de alarma ALMD no requerida y enclavada Publicación 1756-RM003K-ES-P – Julio 2008 39 .Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. Lógica de escalera de relés 40 Publicación 1756-RM003K-ES-P – Julio 2008 . Confirme programáticamente la alarma con una transición de borrado a establecido del valor del tag Motor101Ack. La lógica de la aplicación debe borrar Motor101Ack. de manera que si se presenta uno de ellos. ALMA) Confirmación de alarma ALMD no requerida y no enclavada Ejemplo: Se combinan dos señales de fallo de motor.Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. se activa una alarma de fallo de motor. Motor101FaultConditions. 0. ALMA) Capítulo 1 Texto estructurado Motor101FaultConditions := Motor101Overtemp OR Motor101FailToStart.0.Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. ALMD(Motor101Fault.Motor101Ack.0 ). Bloque de funciones Publicación 1756-RM003K-ES-P – Julio 2008 41 . Límite de alarma alta. Límite de alarma alta alta. El valor de entrada de alarma. ALMA) Alarma Analógica (ALMA) La instrucción ALMA detecta alarmas basadas en el nivel o velocidad de cambio de un valor analógico. Operandos: Lógica de escalera de relés Operando tag ALMA In Tipo ALARM_ANALOG REAL DINT INT SINT BOOL Formato Estructura Tag inmediato Descripción Estructura ALMA El valor se copia a In cuando se ejecuta la instrucción. LLimit REAL Inmediato Lógica de escalera de relés solamente. El valor se copia a ProgAckAll cuando se ejecuta la instrucción. Cuando se establece.Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. que se compara con los límites de alarma para detectar las condiciones de la alarma. 42 Publicación 1756-RM003K-ES-P – Julio 2008 . HHlimit REAL Inmediato Lógica de escalera de relés solamente. Límite de alarma baja baja. Los parámetros de control de programa (Prog) y de operador (Oper) proporcionan una interface para los comandos de alarma. HLimit REAL Inmediato Lógica de escalera de relés solamente. habilita la alarma (tiene precedencia sobre los comandos de inhabilitación). inhabilita la alarma (no anula los comandos de habilitación). confirma todas las condiciones de alarma que requieren confirmación. El valor se copia a ProgDisable cuando se ejecuta la instrucción. Cuando se establece. Límite de alarma baja. En la transición de borrado a establecido. LLLimit REAL Inmediato Lógica de escalera de relés solamente. ProgAckAll Tag Inmediato Tag Inmediato ProgDisable BOOL ProgEnable BOOL Tag Inmediato El valor se copia a ProgEnable cuando se ejecuta la instrucción. ProgAckAll. ALMA) Capítulo 1 Texto estructurado ALMA(ALMA. In. Bloque de funciones Operando tag ALMA Tipo ALARM_ANALOG Formato Estructura Descripción Estructura ALMA Publicación 1756-RM003K-ES-P – Julio 2008 43 . ProgEnable). Los operandos son iguales a los de la instrucción ALMD de lógica de escalera de relés. con algunas excepciones como se indicó anteriormente.Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. ProgDisable. La opción predeterminada es establecido. Texto estructurado: Ningún efecto. Se establece para habilitar la detección de la condición de alarma baja baja. Valor predeterminado = 0. En cualquier caso. La opción predeterminada es establecido. Texto estructurado: Copiado del operando de instrucción. la instrucción establece InFaulted (Status. La instrucción siempre se ejecuta. Se borra para inhabilitar la detección de la condición de alarma alta alta. La opción predeterminada es establecido. HabilitadaA BOOL Detección de condición de alarma alta. Se establece para habilitar la detección de la condición de alarma alta alta. el cual se compara con los límites de alarma para detectar las condiciones de la alarma. la instrucción continúa evaluando In en lo que respecta a las condiciones de alarma. Se establece para habilitar la detección de la condición de alarma baja. la instrucción no se ejecuta y las salidas no se actualizan. La opción predeterminada es borrado (buen estado). In REAL El valor de entrada de alarma. Se borra para inhabilitar la detección de la condición de alarma alta. Si se borra. LLEnabled BOOL Detección de condición de alarma baja baja. Cuando se borra. la instrucción no se ejecuta y las salidas no se actualizan. La opción predeterminada es establecido. HHEnabled BOOL Detección de condición de alarma alta alta. Lógica de escalera de relés: Copiado del operando de instrucción. Se borra para inhabilitar la detección de la condición de alarma baja baja. La opción predeterminada es establecido. la instrucción borra InFaulted (Status. Se borra para inhabilitar la detección de la condición de alarma baja.0. Cuando se establece. Se establece para habilitar la detección de la condición de alarma alta. ALMA) Estructura ALARM_ANALOG Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Lógica de escalera de relés: Corresponde al estado del renglón.1). InFault BOOL Indicador de estado deficiente para la entrada. Bloque de funciones: Si se borra. 44 Publicación 1756-RM003K-ES-P – Julio 2008 . LEnabled BOOL Detección de condición de alarma baja. El usuario puede establecer InFault para indicar que la señal de entrada tiene un error.Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD.1). LOperAck BOOL Confirmación de operador baja. La opción predeterminada es borrado. Cuando se borra. HHOperAck BOOL Confirmación de operador alta alta. LProgAck BOOL Confirmación de programa baja. ProgAckAll BOOL Se establece mediante el programa de usuario para confirmar todas las condiciones de esta la alarma. Requiere que una transición cambie de borrado a establecido mientras la condición de alarma no está confirmada. ROCPosAcked y ROCNegAcked siempre se establecen. La instrucción de alarma borra este parámetro. requiere confirmación. HHProgAck BOOL Confirmación de programa alta alta. Texto estructurado: Copiado del operando de instrucción. OperAckAll BOOL Se establece mediante la interface del operador para confirmar todas las condiciones de esta la alarma. Lógica de escalera de relés: Copiado del operando de instrucción. Publicación 1756-RM003K-ES-P – Julio 2008 45 . La opción predeterminada es establecido. Se establece mediante el programa de usuario para confirmar una condición alta alta. La instrucción de alarma borra este parámetro. Cuando se establece. HOperAck BOOL Confirmación de operador alta. la confirmación no se requiere y HHAcked. La opción predeterminada es borrado. LAcked. Requiere que una transición cambie de borrado a establecido mientras las condiciones de alarma no están confirmadas. ALMA) Capítulo 1 Parámetro de entrada AckRequired Tipo de datos BOOL Descripción Especifica si se requiere confirmación de alarma.Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. LLAcked. La opción predeterminada es borrado. HAcked. Requiere que una transición cambie de borrado a establecido mientras las condiciones de alarma no están confirmadas. Requiere que una transición cambie de borrado a establecido mientras la condición de alarma no está confirmada. La opción predeterminada es borrado. La instrucción de alarma borra este parámetro. La opción predeterminada es borrado. Se establece mediante el programa de usuario para confirmar una condición baja. La instrucción de alarma borra este parámetro. La opción predeterminada es borrado. Requiere que una transición cambie de borrado a establecido mientras la condición de alarma no está confirmada. Se establece mediante el programa de usuario para confirmar una condición alta. Se establece mediante la interface de operador para confirmar una condición baja. Se establece mediante la interface de operador para confirmar una condición alta alta. La opción predeterminada es borrado. Se establece mediante la interface de operador para confirmar una condición alta. Requiere que una transición cambie de borrado a establecido mientras la condición de alarma no está confirmada. HProgAck BOOL Confirmación de programa alta. La opción predeterminada es borrado. Requiere que una transición cambie de borrado a establecido mientras la condición de alarma no está confirmada. Requiere que una transición cambie de borrado a establecido mientras la condición de alarma no está confirmada. OperUnsuppress BOOL Se establece mediante la interface del operador para cancelar la supresión de la alarma. Requiere que una transición cambie de borrado a establecido mientras la condición de alarma no está confirmada. La instrucción de alarma borra este parámetro. Se establece mediante la interface de operador para confirmar una condición baja baja. Se establece mediante el programa de usuario para confirmar una condición de velocidad de cambio positiva. ProgUnsuppress BOOL Se establece mediante el programa de usuario para cancelar la supresión de la alarma. ROCNegProgAck BOOL Confirmación de programa de velocidad de cambio negativa. Se establece mediante la interface de operador para confirmar una condición de velocidad de cambio negativa. Requiere que una transición cambie de borrado a establecido mientras la condición de alarma no está confirmada.Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. ALMA) Parámetro de entrada LLProgAck Tipo de datos BOOL Descripción Confirmación de programa baja baja. ROCNegOperAck BOOL Confirmación de operador de velocidad de cambio negativa. Requiere que una transición cambie de borrado a establecido mientras la condición de alarma no está confirmada. Requiere que una transición cambie de borrado a establecido mientras la condición de alarma no está confirmada. ProgSuppress BOOL Se establece mediante el programa de usuario para suprimir la alarma. La opción predeterminada es borrado. Se establece mediante el programa de usuario para confirmar una condición de velocidad de cambio negativa. Se establece mediante el programa de usuario para confirmar una condición baja baja. Tiene precedencia sobre los comandos de supresión. LLOperAck BOOL Confirmación de operador baja baja. La opción predeterminada es borrado. La opción predeterminada es borrado. La instrucción de alarma borra este parámetro. La opción predeterminada es borrado. La opción predeterminada es borrado. La opción predeterminada es borrado. La instrucción de alarma borra este parámetro. Tiene precedencia sobre los comandos de supresión. 46 Publicación 1756-RM003K-ES-P – Julio 2008 . Requiere que una transición cambie de borrado a establecido mientras la condición de alarma no está confirmada. La instrucción de alarma borra este parámetro. OperSuppress BOOL Se establece mediante la interface del operador para suprimir la alarma. ROCPosProgAck BOOL Confirmación de programa de velocidad de cambio positiva. La opción predeterminada es borrado. Requiere que una transición cambie de borrado a establecido mientras la condición de alarma no está confirmada. Se establece mediante la interface de operador para confirmar una condición de velocidad de cambio positiva. La opción predeterminada es borrado. ROCPosOperAck BOOL Confirmación de operador de velocidad de cambio positivo. La opción predeterminada es borrado. La instrucción de alarma borra este parámetro. La opción predeterminada es borrado. La instrucción de alarma borra este parámetro. HLimit REAL Límite de alarma alta. Tiene precedencia sobre un comando de inhabilitación. OperEnable BOOL Se establece mediante la interface del operador para habilitar la alarma. La opción predeterminada es borrado.0. 1 = la menos severa). ProgEnable BOOL Se establece mediante el programa de usuario para habilitar la alarma. Texto estructurado: Copiado del operando de instrucción. Lógica de escalera de relés: Copiado del operando de instrucción.Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. pero puede usarse para clasificar y filtrar funciones en el subscriptor de alarmas.. Válido = 1. Esto no afecta el procesamiento de alarmas por parte del controlador. HHlimit REAL Límite de alarma alta alta.1000 (1000 = la más severa. La instrucción de alarma borra este parámetro. La opción predeterminada es borrado. ALMA) Capítulo 1 Parámetro de entrada ProgDisable Tipo de datos BOOL Descripción Se establece mediante el programa de usuario para inhabilitar la alarma. Publicación 1756-RM003K-ES-P – Julio 2008 47 . Válido = LLimit < HLimit < HHLimit. Valor predeterminado = 0.. Valor predeterminado = 500. La opción predeterminada es borrado. OperDisable BOOL Se establece mediante la interface del operador para inhabilitar la alarma. AlarmCountReset BOOL Se establece mediante el programa de usuario para reinicializar los conteos de alarmas para todas las condiciones. Válido = HLimit < HHLimit < valor con punto flotante (coma flotante) positivo máximo. Valor predeterminado = 0. Tiene precedencia sobre un comando de inhabilitación. La opción predeterminada es borrado. La opción predeterminada es borrado. Texto estructurado: Copiado del operando de instrucción.0. HHSeverity DINT Severidad de la condición de alarma alta alta. Lógica de escalera de relés: Copiado del operando de instrucción. Una transición que cambia de borrado a establecido pone en cero los conteos de alarmas. . pero puede usarse para clasificar y filtrar funciones en el subscriptor de alarmas.. 1 = la menos severa).483. Válido = 1. la condición alta alta se activa inmediatamente. pero puede usarse para clasificar y filtrar funciones en el subscriptor de alarmas. LSeverity DINT Severidad de la condición de alarma baja. LLSeverity DINT Severidad de la condición de alarma baja baja. MinDurationPRE sólo se aplica a la primera excursión de normal en cualquier dirección.. mientras que una condición baja esperará el período de tiempo de espera.0. El controlador recolecta datos de alarmas tan pronto como se detecta la condición de alarma.1000 (1000 = la más severa. Válido = LLLimit < LLimit < HLimit. no se pierden datos durante la espera hasta cumplir con la duración mínima. LLimit REAL Límite de alarma baja..147. Esto no afecta el procesamiento de alarmas por parte del controlador. Válido = 0.2. 48 Publicación 1756-RM003K-ES-P – Julio 2008 . una vez que la condición alta sobrepasa el tiempo de espera.1000 (1000 = la más severa. 1 = la menos severa). Valor predeterminado = 500. Valor predeterminado = 500. Válido = valor con punto flotante (coma flotante) negativo máximo < LLLimit < LLimit. No se aplica a condiciones de velocidad de cambio.Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. Esto no afecta el procesamiento de alarmas por parte del controlador. LLLimit REAL Límite de alarma baja baja.. 1 = la menos severa).1000 (1000 = la más severa. por lo tanto.647. pero puede usarse para clasificar y filtrar funciones en el subscriptor de alarmas.. Válido = 1. ALMA) Parámetro de entrada HSeverity Tipo de datos DINT Descripción Severidad de la condición de alarma alta. Valor predeterminado = 500. Valor predeterminado = 0. Valor predeterminado = 0. MínDurationPRE DINT Preajuste de duración mínima (milisegundos) para que una condición de nivel de alarma permanezca verdadera antes de que la condición sea marcada como InAlarm y se envíe notificación de la alarma a los clientes.0. Esto no afecta el procesamiento de alarmas por parte del controlador. Válido = 1. Valor predeterminado = 0.. Por ejemplo.. ALMA) Capítulo 1 Parámetro de entrada Deadband Tipo de datos REAL Descripción Banda muerta para detectar que los niveles de alarma alta alta. Valor predeterminado = 0. Válido = 1..0. pero puede usarse para clasificar y filtrar funciones en el subscriptor de alarmas. pero antes de que la condición regrese al estado inactivo (normal). La detección se habilita para cualquiera valor > 0. ROCNegLimit REAL Límite para una velocidad de cambio decreciente.. Valor predeterminado = 0. Valor predeterminado = 0.1000 (1000 = más severa..0 si ROCPeriod también es > 0...valor con punto flotante (coma flotante) máximo posible.Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. ROCPosLimit REAL Límite para una velocidad de cambio creciente. ROCNegSeverity DINT Severidad de la condición de velocidad de cambio decreciente. La detección de velocidad de cambio se habilita para cualquiera valor > 0.1000 (1000 = más severa.valor con punto flotante (coma flotante) máximo posible. La detección se habilita para cualquiera valor > 0. Válido = 0 ≤ Deadband < Span desde la primera alarma baja habilitada hasta la primera alarma alta habilitada.0. se almacena una nueva muestra de In. Valor predeterminado = 500. 1 = menos severa). el valor In debe.0 si ROCPeriod también es > 0... Esto no afecta el procesamiento de alarmas por parte del controlador.. baja y baja baja han regresado a lo normal. 1 = menos severa). o bien • subir por encima del umbral más la banda muerta (para condiciones baja y baja baja). La banda muerta no se usa para condicionar la medición del tiempo de duración mínima. El valor de la banda muerta no afecta la transición al estado InAlarm (activo). Una banda muerta diferente de cero puede reducir la vibración de la condición de alarma si el valor In está cambiando continuamente pero permanece cerca del nivel de umbral de la condición. Valor predeterminado = 0.0.0..0. Esto no afecta el procesamiento de alarmas por parte del controlador.. Válido = 0. Publicación 1756-RM003K-ES-P – Julio 2008 49 .0.0. Cada vez que expira el intervalo de muestreo.0. alta. ROCPeriod REAL Período de tiempo en segundos para calcular (intervalo de muestreo) el valor de la velocidad de cambio.valor con punto flotante (coma flotante) máximo posible. Valor predeterminado = 500. ROCPosSeverity DINT Severidad de la condición de velocidad de cambio creciente.0. y se calcula ROC. Válido = 0. en unidades por segundo. pero puede usarse para clasificar y filtrar funciones en el subscriptor de alarmas. Una vez que una condición de nivel está activa.0. Válido = 0. en unidades por segundo. o bien: • caer por debajo del umbral menos la banda muerta (para condiciones alta y alta alta). Válido = 1. Se establece cuando cualquier condición de alarma está activa. Estado de condición de alarma de velocidad de cambio positiva. o ambas. ALMA) Parámetro de salida EnableOut InAlarm Tipo de datos BOOL BOOL Descripción Habilitación de salida. Se borra cuando no existe una condición de alarma alta alta. Se borra cuando no existe una condición de velocidad de cambio positiva. Estado confirmado de condición alta. Siempre se establece cuando AckRequired se borra. Se establece cuando se confirma una condición alta. Se borra cuando no existe una condición de alarma alta. Estado de confirmación de condición baja baja. 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 condición alta alta. Se establece cuando una condición de alarma se ha detectado y no está confirmada. Estado de condición de alarma baja baja. Se borra cuando no existe una condición de alarma baja. Se borra cuando no existe una condición de velocidad de cambio negativa. confirmada. o ambas. Se establece cuando existe una condición de alarma baja baja. Se establece cuando existe una condición de alarma baja. Velocidad de cambio calculada del valor In. Estado de confirmación de condición de velocidad de cambio negativa. Se borra cuando no existe una condición de alarma baja baja. Se establece cuando se confirma una condición baja. Siempre se establece cuando AckRequired se borra. El valor ROC se usa para evaluar condiciones de ROCPosInAlarm y ROCNegInAlarm. Se borra cuando todas las alarmas son normales (inactivas). Estado de confirmación de condición baja.Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. Se establece cuando existe una condición de velocidad de cambio negativa. Se borra cuando no se confirma una condición alta. Se establece cuando existe una condición de alarma alta. Estado de condición de alarma de velocidad de cambio negativa. Este valor se actualiza cuando la instrucción se escanea después de cada ROCPeriod transcurrido. Siempre se establece cuando AckRequired se borra. Alarma activa y estado confirmado combinados. Se establece cuando se confirma una condición de velocidad de cambio negativa. Se borra cuando todas las condiciones de alarma no están activas (estado normal). Siempre se establece cuando AckRequired se borra. Se establece cuando existe una condición de alarma alta alta. Se borra cuando no se confirma una condición alta alta. Se establece cuando se confirma una condición baja baja. Se borra cuando no se confirma una condición baja baja. Estado de condición de alarma alta alta. Se establece cuando se confirma una condición alta alta. Siempre se establece cuando AckRequired se borra. Se borra cuando no se confirma una condición de velocidad de cambio negativa. Estado de confirmación de condición de velocidad de cambio positiva. Estado de condición de alarma baja. Se establece cuando existe una condición de velocidad de cambio positiva. Se establece cuando la condición alta alta está activa (HHInAlarm está establecido) y no confirmada. Estado no confirmado y condición alta alta activa combinado. Estado de condición de alarma alta. HAcked BOOL LAcked BOOL LLAcked BOOL ROCPosAcked BOOL ROCNegAcked BOOL HHInAlarmUnack BOOL 50 Publicación 1756-RM003K-ES-P – Julio 2008 . Se borra cuando no se confirma una condición baja. Estado activo de alarma. confirmadas. Se borra cuando no se confirma una condición de velocidad de cambio positiva. Se borra cuando la condición alta alta es normal (inactiva). Se establece cuando se confirma una condición de velocidad de cambio positiva. Siempre se establece cuando AckRequired se borra. Se establece cuando la alarma está inhabilitada. Se borra cuando la condición de velocidad de cambio negativa es normal (inactiva). Se borra cuando la alarma no está suprimida. Si se llega al valor máximo. Se establece cuando la condición alta está activa (HInAlarm está establecido) y no confirmada. Estado no confirmado y condición baja baja activa combinado. el contador deja el valor en el máximo valor de conteo. o ambas. Sello de hora cuando la instrucción ALMA detectó que el valor In excedió el límite de condición baja baja para la transición más reciente al estado activo. el contador deja el valor en el máximo valor de conteo. Se borra cuando la condición baja baja es normal (inactiva). ALMA) Capítulo 1 Parámetro de salida HInAlarmUnack Tipo de datos BOOL Descripción Estado no confirmado y condición alta activa combinado. Sello de hora cuando la instrucción ALMA detectó que el valor In excedió el límite de condición alta alta para la transición más reciente al estado activo. o ambas. Se establece cuando la condición baja está activa (LInAlarm está establecido) y no confirmada. Se establece cuando la alarma está suprimida. Estado inhabilitado de la alarma. El número de veces que se activó la condición baja baja. Si se llega al valor máximo. el contador deja el valor en el máximo valor de conteo. Sello de hora cuando la instrucción ALMA detectó que el valor In excedió el límite de condición baja para la transición más reciente al estado activo. confirmada. Se establece cuando la condición baja baja está activa (LLInAlarm está establecido) y no confirmada. Si se llega al valor máximo. el contador deja el valor en el máximo valor de conteo. o ambas. Estado suprimido de la alarma. confirmada. Tiempo transcurrido desde que se detectó una condición de alarma. Cuando este valor llega a MinDurationPRE. El número de veces que se activó la condición baja. todas las condiciones de nivel de alarma detectadas se activan (xInAlarm está establecido) y se envía una notificación a los clientes. confirmada. Se establece cuando la condición de velocidad de cambio positiva está activa (ROCPosInAlarm está establecido) y no confirmada. LInAlarmUnack BOOL LLInAlarmUnack BOOL ROCPosInAlarmUnack BOOL ROCNegInAlarmUnack BOOL Suppressed BOOL Disabled BOOL MínDurationACC 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 Publicación 1756-RM003K-ES-P – Julio 2008 51 . Se borra cuando la condición de velocidad de cambio positiva es normal (inactiva). Sello de hora cuando la instrucción ALMA detectó que el valor In excedió el límite de condición de velocidad de cambio negativa para la transición más reciente al estado activo. Estado no confirmado y condición de velocidad de cambio positiva activa combinado. o ambas. el contador deja el valor en el máximo valor de conteo. El número de veces que se activó la condición de velocidad de cambio positiva. Se borra cuando la condición alta es normal (inactiva). Estado no confirmado y condición de velocidad de cambio negativa activa combinado. Estado no confirmado y condición baja activa combinado. confirmada. Si se llega al valor máximo. Sello de hora cuando la instrucción ALMA detectó que el valor In excedió el límite de condición de velocidad de cambio positiva para la transición más reciente al estado activo. Si se llega al valor máximo. Si se llega al valor máximo. El número de veces que se activó la condición de velocidad de cambio negativa. El número de veces que se activó la condición alta. o ambas.Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. El número de veces que se activó la condición alta alta. Se borra cuando la alarma está habilitada. el contador deja el valor en el máximo valor de conteo. Se establece cuando la condición de velocidad de cambio negativa está activa (ROCNegInAlarm está establecido) y no confirmada. Se borra cuando la condición baja es normal (inactiva). confirmada. Sello de hora cuando la instrucción ALMA detectó que el valor In excedió el límite de condición alta para la transición más reciente al estado activo. Status. Se borra cuando la entrega no se realiza correctamente o está en curso. Status. Se establece cuando hay un error de entrega: ningún subscriptor de alarma estaba suscrito. DeliveryDN BOOL DeliveryEN BOOL NoSubscriber BOOL NoConnection BOOL CommError BOOL AlarmBuffered BOOL Subscribers SubscNotified Status DINT DINT DINT InstructFault (Status.Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. Verifique los bits de estado restantes para determinar lo que ocurrió. Número de suscriptores notificados correctamente acerca del cambio de estado de alarma más reciente. Éste no es un error menor ni mayor del controlador. Entrega del mensaje de notificación de alarma realizada.1 = InFaulted. Los subscriptores de la alarma no estaban conectados cuando se intentó entregar el mensaje más reciente. Sello de hora del retorno de la alarma al estado normal. Sello de hora que indica cuándo se restableció la alarma.2 = SeverityInv.6 = ROCNegLimitInv. Se establece cuando no hay suscriptores. Se establece cuando la entrega está en curso.0 = InstructFault. este sello de hora es igual a la hora de la alarma de condición más reciente. Status. Error de comunicación al entregar un mensaje de alarma. Esto significa que un suscriptor estaba suscrito y tenía una conexión.0) BOOL Existen condiciones de error de instrucción. Se borra cuando por lo menos un suscriptor está conectado o cuando no hay suscriptores. Se borra cuando la entrega no está en curso. 52 Publicación 1756-RM003K-ES-P – Julio 2008 . Status. 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. Status.7 = ROCPeriodInv. Se borra cuando todos los suscriptores conectados confirman la recepción del mensaje de alarma. ALMA) Parámetro de salida AckTime RetToNormalTime AlarmCountResetTime DeliveryER Tipo de datos LINT LINT LINT BOOL Descripción Sello de hora de la confirmación de condición más reciente.3 = AlarmLimitsInv. Se borra cuando hay por lo menos un suscriptor. Status. Error de entrega del mensaje de notificación de alarma. La alarma no tenía suscriptores cuando se intentó entregar el mensaje más reciente. Status. Número de suscriptores para esta alarma. 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. pero el controlador no recibió confirmación de la entrega del mensaje. Se establece cuando hay errores de comunicación y se han usado todos los reintentos. Si la alarma no requiere confirmación.4 = DeadbandInv. Indicadores de estado combinados: Status. Se borra cuando el mensaje de alarma no se almacena en el búfer. Mensaje de alarma almacenado en el búfer debido a error de comunicación (ComError está establecido) o pérdida de conexión (NoConnection está establecido). Estado de entrega del mensaje de notificación de alarma.5 = ROCPosLimitInv. Se establece cuando el mensaje de alarma se almacena en el búfer por lo menos para un suscriptor. Se establece cuando todos los suscriptores están desconectados. la instrucción usa ROCPosLimit = 0.7) BOOL BOOL BOOL Límite de velocidad de cambio positiva no válido. la instrucción usa Deadband = 0.1) SeverityInv (Status. lo cual inhabilita la detección de velocidad de cambio negativa. ALMA) Capítulo 1 Parámetro de salida InFaulted (Status. El software RSLinx Enterprise se suscribe a alarmas en el controlador. Alarm Status Explorer y Alarm Log Viewer en el software FactoryTalk View SE. lo cual inhabilita la detección de velocidad de cambio. Límite de velocidad de cambio negativa no válido.0. La configuración de la banda muerta no es válida. La severidad de la alarma no es válida. Si no es válida. la instrucción usa ROCPeriod = 0. No se podrán detectar nuevas condiciones de nivel hasta que se borre el fallo. Válido = 0 ≤ Deadband < Span desde la primera alarma baja habilitada hasta la primera alarma alta habilitada. Descripción La instrucción ALMA detecta alarmas según el nivel o velocidad de cambio de un valor. La instrucción ALMA proporciona funcionalidad adicional cuando se usa con el software RSLinx Enterprise y FactoryTalk View SE. Si no es válido. la instrucción usa Severity = 1.5) ROCNegLimitInv (Status. Si se pierde una conexión al software RSLinx Enterprise. lo cual inhabilita la detección de velocidad de cambio positiva.0. la instrucción usa ROCNegLimit = 0.3) DeadbandInv (Status. Período de velocidad de cambio no válido. LLimit < LLLimit). Publicación 1756-RM003K-ES-P – Julio 2008 53 . el controlador puede almacenar en el búfer datos de alarmas brevemente hasta que se restaure la conexión.6) ROCPeriodInv (Status. Si no es válido. la instrucción borra todos los bits activos de condiciones de nivel. La alarma continúa evaluando In en lo que respecta a las condiciones de alarma. Si la severidad <1. Si no es válido.Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD.4) BOOL La configuración de límite de alarma no es válida (por ejemplo. Alarm Banner.0.2) Tipo de datos BOOL BOOL Descripción El programa del usuario estableció InFault para indicar datos de entrada de mala calidad. AlarmLimitsInv (Status. Si a severidad >1000. BOOL ROCPosLimitInv (Status. la instrucción usa Severity = 1000. Use los parámetros de salida para monitorear la instrucción a fin de ver el estado de suscripción de alarmas y para mostrar cambios de estado de alarmas. Si no es válido. Usted puede mostrar alarmas en las pantallas Alarm Summary.0. . HH alarm condition can be acked by several different ways: HHProgAck. ProgAckAll. software RSView). software RSView)..D t (H i it H H m LL im Liim PRE im nE HL iit oR t -. ProgAckAll. InIn >= LLimit. ProgAckAll. HOperAck. ROC == ROC In(CurrentSample) . >=MinDurationPRE MinDurationPRE >= HLimit. L alarm condition can be acked by several different ways: LProgAck. software RSView). La condición de alarma ROCNeg puede confirmarse de diferentes maneras: RocNegProgAck. l. OperAckAll. RocPosOperAck. 1 La condición de alarma HH puede confirmarse de diferentes maneras: HHProgAck. clientes (software 5000. ProgAckAll. OperAckAll. ProgAkkAll. La de alarma LLacked puede confirmarse de diferentes maneras: LLProgAck. OperAckAll. ProgAckAll. 54 Publicación 1756-RM003K-ES-P – Julio 2008 . LOperAck. OperAckAll. clients (RSLogix 5000 software. OperAckAll. 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.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 . HHOperAck.MinDurationACC MinDurationACC >= LinAlarm = False False LInAlarm = LAcked = True True LAcked = ) d ) d ann ba db ad IIn n< Dea >( LL L it+. HHOperAck. RocNegOperAck. >= MinDurationPRE MinDurationPRE In <= LLLimit. clients (RSLogix 5000 software. OperAckAll. LLOperAck. software RSView). OperAckAll. it.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 -. clientes (software RSLogix 5000.Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. software RSView). clients (RSLogix 5000 software. RSView OperAckAll. HOperAck. 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 1 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 condición de alarma ROCPos puede confirmarse de diferentes maneras: RocPosProgAck. ProgAckAll. ROCPos alarm condition can be acked by several different ways: RocPosProgAck. clients (RSLogix 5000(software software. ALMA) Diagramas de estado cuando se requiere confirmación InIn >= HLimit. clientes (software RSLogix 5000. RSView software).De ea ad db ba an nd d)) ) ) and and adb adb De InIn >= HHLimit. RSLogix RSView software). M t i im m i LLinAlarm = True LL LL LLInAlarm = True ==LL In>< LAcked = In LLAcked =True True 1 La condición de alarma H puede confirmarse de diferentes maneras: LProgAck. LLOperAck. OperAckAll. OperAckAll. RSView software). OperAckAll. clients (RSLogix 5000 software. >=MinDurationPRE MinDurationPRE >= HHLimit. LLcondición alarm condition can be by several different ways: LLProgAck.De Liim m it miitt + i L EE PR . clientes (software RSLogix 5000. M Ack1 Ack 1 1 Ack Ack 1 Ack1 Ack 1 HinAlarm = True HInAlarm = True HAcked = True True HAcked = HHinAlarm = False HHInAlarm = False HHAcked HHAcked = = False False 1 I HHinAlarm True HHInAlarm = = True HHAcked HHAcked = = True True 1 La condición de alarma H puede confirmarse de diferentes maneras: HProgAck. software RSView). >=MinDurationPRE MinDurationPRE <= LLimit. clients (RSLogix 5000 software. RSView software).. H alarm condition can be acked by several different ways: HProgAck. RocPosOperAck.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 escán después de que haya transcurrido next scan after the ROCPeriod has elapsed. 1 ProgAckAll.MinDurationACC MinDurationACC >= HinAlarm==False False HInAlarm HAcked==True True HAcked In In< <(( H H LL im im iit t . RSView software). ProgAckAll. LOperAck.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. clientes RSLogixsoftware). 1 ROCNeg alarm condition can be acked by several different ways: RocNegProgAck. ProgAckAll. ProgAckAll. RocNegOperAck.itM Lim im LLL <= n= InI> LinAlarm = True LInAlarm = True LAcked = False False LAcked = In >= LLLimit. . OperAckAll. ProgAckAll.MinDurationACC MinDurationACC >= LLinAlarm = False False LLInAlarm = LAcked = LLAcked =True True IIn n< Ack1 Ack1 Ack1 Ack 1 1 Ack Ack 1 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. clientes (software RSLogix 5000. 5000. 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 aritmético: Los indicadores de estado aritmético se establecen para la salida ROC.Deadband) InIn << (HHLimit Deadband) HHinAlarm = HHInAlarm =True True HHAcked = HHAcked =True True In >= LLLimit. MinDurationACC MinDurationPRE HInAlarm = False HinAlarm = False HInAlarm = True HinAlarm = True HAcked = True HAcked = True < (HLimit Deadband) In In < (HLimit . La instrucción se ejecuta. sellos de hora e indicadores de entrega se borran. EnableOut se borra. Todas las peticiones del operador. condición de entrada de renglón es falsa condición de entrada de renglón es verdadera post-escán La instrucción no se ejecuta. EnableOut se establece. Condiciones de fallo: Fallo menor Overflow ROC Tipo de fallo 4 Código de fallo 4 Ejecución: Condición preescán Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. MinDurationACC >= >= MinDurationPRE In >= HLimit. Publicación 1756-RM003K-ES-P – Julio 2008 55 . ALMA) Capítulo 1 Diagramas de estado cuando no se requiere confirmación In >= HLimit.Deadband) In In > (LLLimit Deadband) ROC == ROC In(CurrentSample) . MinDurationACC >= In >= HHLimit. La condición de salida de renglón se establece como falsa.Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD.-Deadband) >= LLLimit. Todos los parámetros xInAlarm se borran y se confirman todas las condiciones de alarma. MinDurationACC >= In <= LLLimit. MinDurationACC >= >= MinDurationPRE In In <= LLimit. MinDurationACC >=MinDurationPRE MinDurationPRE HHinAlarm = = False HHInAlarm False (HHLimit .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 escán después de the queROCPeriod haya transcurrido ROCPeriod next scan after has elapsed. MinDurationACC >=MinDurationPRE MinDurationPRE LLInAlarm = False LLinAlarm = False LLInAlarm = True LLinAlarm = True LLAcked = True LLAcked = True < (LLLimit+ . MinDurationACC MinDurationPRE LInAlarm = False LinAlarm = False LInAlarm = True LinAlarm = True LAcked = True LAcked = True (LLimit + .Deadband) InIn >< (LLimit Deadband) In >= HHLimit. Ninguna. post-escán Ninguna. La instrucción se ejecuta. primer escán de instrucción Ninguna. Todos los parámetros xInAlarm se borran y se confirman todas las condiciones de alarma. ALMA) Condición preescán Acción de bloque de funciones Todas las peticiones del operador. EnableOut siempre se establece. 56 Publicación 1756-RM003K-ES-P – Julio 2008 . Ninguna. Ninguna. sellos de hora e indicadores de entrega se borran. La instrucción se ejecuta. La instrucción no se ejecuta. EnableOut se borra. Todos los parámetros xInAlarm se borran y se confirman todas las condiciones de alarma. Acción de texto estructurado Todas las peticiones del operador. EnableIn se establece La instrucción se ejecuta. EnableOut siempre se establece.Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. EnableOut se establece. primera ejecución de instrucción EnableIn se borra Ninguna. sellos de hora e indicadores de entrega se borran. Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. ALMA) Capítulo 1 Confirmación de condición de nivel ALMA requerida Publicación 1756-RM003K-ES-P – Julio 2008 57 . Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. ALMA) Confirmación de condición de nivel ALMA no requerida 58 Publicación 1756-RM003K-ES-P – Julio 2008 . ALMA) Capítulo 1 Confirmación de velocidad de cambio ALMA requerida Publicación 1756-RM003K-ES-P – Julio 2008 59 .Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. La lógica de la aplicación debe borrar Tank32LevelAck. 60 Publicación 1756-RM003K-ES-P – Julio 2008 . ALMA) Confirmación de velocidad de cambio ALMA no requerida Ejemplo: Se activa una alarma de tanque si el nivel del tanque sobrepasa el límite de alarma alta o alta alta. Confirme programáticamente todas las condiciones de alarma con una transición de borrado a establecido del valor de tag Tank32LevelAck. 0. Bloque de funciones Publicación 1756-RM003K-ES-P – Julio 2008 61 . ALMA) Capítulo 1 Lógica de escalera de relés Texto estructurado ALMA(Tank32Level.Tank32LevelAck.Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD.Tank32LT. 0). ALMA) Configure una instrucción de alarma Después de introducir una alarma ALMD o ALMA y especificar el nombre de tag de la alarma. El diálogo Properties de la instrucción de alarma incluye la ficha Configuration.Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. use el diálogo Alarm Configuration para especificar los detalles del mensaje. Haga clic aquí para configurar la instrucción. 62 Publicación 1756-RM003K-ES-P – Julio 2008 . además.1000 son de prioridad urgente. Las alarmas enclavadas requieren un comando de restablecimiento para cambiar a normal.. El comando de restablecimiento debe recibirse después de que la condición regrese al estado normal. Seleccione Input=0 para una alarma activa cuando In=0. La confirmación indica que un operador tiene conocimiento de la condición de alarma. Input Level – Instrucción ALMA Input Rate of Change – Instrucción ALMA Nivel de entrada (High High. Inhabilite las condiciones de velocidad de cambio introduciendo un 0 para el período o límite. Acknowledgement Required Las alarmas están configuradas de manera predeterminada para requerir confirmación.500 son de prioridad media.. Seleccione enclavado (Latched) si desea que la alarma permanezca activa (InAlarm) después de que la condición de alarma regresa al estado inactivo (normal).. Seleccione un rango de severidades entre 1. el límite bajo es 20 y la banda muerta es 5. Una severidad de 1 es para alarmas de baja prioridad. Por ejemplo. • 501. la condición baja se activará cuando el valor sea ≤ 20 y regresará a lo normal cuando el valor sea ≥ ≤ 25.. Los comandos de confirmación no borrarán una alarma enclavada. Low o Low Low) o velocidad de cambio de entrada (positiva o negativa) para activar una alarma. Minimum Duration Latched – Instrucción ALMD Introduzca el tiempo en ms que una condición de alarma debe estar activa antes de que se reporte la alarma. La banda muerta no tiene ningún efecto en las condiciones de alarma de velocidad de cambio.. mientras que una severidad de 1000 es para una condición de emergencia. Una vez que una condición de nivel de activa (InAlarm)... si el límite alto es 80.. Severity Publicación 1756-RM003K-ES-P – Julio 2008 63 . configure esta información.250 son de baja prioridad • 251.1000 para clasificar la importancia de una condición de alarma. Remítase a la ayuda de FactoryTalk para obtener detalles. permanecerá activa hasta que el valor In regrese dentro del límite mediante la banda muerta especificada. El valor de banda muerta no afecta el límite de alarma para la transición al estado activo y. la condición alta se activará cuando el valor sea ≥ 80 y regresará a lo normal cuando el valor sea ≤ 75. no se usa durante el intervalo de duración mínima. Opción Condition – Instrucción ALMD Descripción Condición para activar la alarma. Borre el ajuste Acknowledgement Required si desea que la alarma aparezca y desaparezca del resumen de alarmas en el HMI sin interacción del operador. Deadband – Instrucción ALMA Especifique un valor de banda muerta para reducir la vibración de la condición de alarma causada por pequeñas fluctuaciones en el valor In. el comando de restablecimiento también reconoce la alarma. ya sea que las condiciones hayan regresado a lo normal o no. Usted puede configurar la asignación de severidad a prioridad en el sistema FactoryTalk Alarms and Events. Seleccione las condiciones de la alarma e introduzca los límites para dichas condiciones. en el sistema FactoryTalk Alarms and Events los rangos de severidad se asignan a prioridades de la siguiente manera: • 1. Las alarmas que no requieren confirmación siempre tienen establecido el estado Acked. ALMA) Capítulo 1 Para cada instrucción de alarma. High. De manera predeterminada.Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD.. • 751. Si una alarma digital se configura como enclavada.750 son de alta prioridad.. Seleccione Input=1 para una alarma activa cuando In=1. 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. Por ejemplo. un botón en las pantallas de resumen e indicador deja que el operador ejecute un comando de visualización asociado. Tenga cuidado a fin de ingresar la sintaxis de comando correcta y pruebe el comando en tiempo de ejecución. Los cambios en línea automáticamente se propagan desde la estructura de alarmas del controlador al resto de la arquitectura. La clase de alarma permite distinguir mayúsculas de minúsculas.Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. ya que cuando se introduce el comando no se realiza una verificación de errores. La clase de alarma no limita las alarmas a las que se subscribe un objeto del resumen de alarmas. Cuando se produce la condición de alarma y se muestra al operador. Por ejemplo. un operador puede mostrar todas las alarmas de tanques o todas las alarmas de lazo PID. Especifique exactamente la misma clase de alarma para cada alarma que usted desea mantener en la misma clase. El software FactoryTalk View puede filtrar la clase de alarma sustituyendo comodines por caracteres. acceder a archivos de ayuda e iniciar aplicaciones externas. ejecutar macros. O especifique la clase Lazos de control para agrupar todas las alarmas de lazos PID. Después de ello podrá mostrar y filtrar alarmas en la interface operador-máquina (HMI) según la clase. tal como llamar a plantillas y pantallas específicas. Las ediciones en línea de las alarmas nuevas y existentes se envían inmediatamente a los suscriptores de FactoryTalk (los terminales de HMI de versiones anteriores que están encuestando [polling] los tags no se actualizan automáticamente). ALMA) Opción Alarm class Descripción Use la clase de alarma para agrupar alarmas relacionadas. Usted puede editar todos los aspectos de la configuración de alarmas fuera de línea y en línea. Esto permite que un operador ejecute cualquier comando de FactoryTalk View estándar. Los suscriptores de FactoryTalk no tienen que volver a suscribirse para recibir información actualizada. especifique Zona de tanques A para agrupar todas las alarmas de los tanques de un área específica. View command Ejecute un comando en la estación del operador cuando lo solicite el operador para una alarma específica. 64 Publicación 1756-RM003K-ES-P – Julio 2008 . Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. especifique esta información. Además de introducir texto. Para obtener más información. vea la página 67. usted introduce la información del mensaje en la ficha Configuration. Usted puede tener versiones de los mensajes en múltiples idiomas. Usted no puede acceder programáticamente a la cadena del mensaje de alarma desde el tag de alarma. pero el valor real del tag de cadena podría tener 82 caracteres. /*S:0 %Tag1*/ especifica un tag de cadena y añade 13 caracteres a la longitud total de la cadena. Publicación 1756-RM003K-ES-P – Julio 2008 65 . Opción Message String Descripción La cadena de mensaje contiene la información que se mostrará al operador respecto a la alarma. usted introduce la información de mensaje en la ficha Message. también puede incorporar información variable. Para una instrucción ALMA. Para cambiar el mensaje de alarma basado en eventos específicos. ALMA) Capítulo 1 Introduzca el texto del mensaje de alarma Introduzca el texto de mensaje apropiado que se mostrará cuando una condición de alarma está activa (InAlarm). La cadena de mensaje puede tener un máximo de 255 caracteres. Por ejemplo. incluidos los caracteres que especifican las variables incorporadas (no el número de caracteres en los valores reales de las variables incorporadas). seleccione la variable que desee y añádala en cualquier lugar de la cadena de mensaje. configure uno de los tags asociados como tipo de datos de cadena e incorpore dicho tag asociado en el mensaje. Para definir un mensaje de alarma. Para una instrucción ALMD. En el editor de mensaje de alarma. El idioma adicional se introduce mediante la utilidad de importación/exportación. /*N:5 %LimitValue NOFILL DP:0*/ Severity Values of associated tags La severidad configurada de la condición de alarma. Por ejemplo. ALMA) Opción Associated tags Descripción Puede seleccionar hasta cuatro tags adicionales desde el proyecto del controlador para asociarlos con la alarma. • la alarma analógica muestra el valor de la variable de entrada que está monitoreando. DINT. Opcionalmente. independientemente de que los haya incorporado en la cadena de mensaje.MyAlarmTagName. Variables de la cadena de mensaje Puede incorporar esta información variable en una cadena de mensaje. Por ejemplo. LoLo. SINT o REAL) o un STRING. La condición que activa la alarma: • la alarma digital muestra el disparo. Los valores de estos tags se envían con un mensaje de alarma al servidor de alarmas. /*N:5 %Severity NOFILL DP:0*/ /*N:5 %Tag1 NOFILL DP:0*/ 66 Publicación 1756-RM003K-ES-P – Julio 2008 . una alarma digital para una válvula de alivio de presión también podría incluir información tal como la velocidad de la bomba y la temperatura del tanque. Hi. No se permiten referencias a matrices variables. que consiste en el nombre del /*S:0 %AlarmName*/ controlador. • la alarma analógica muestra la verificación de rango configurada actual para la condición de alarma analógica. Lo. Pueden ser elementos en un UDT o una matriz. [Zone1Controller]Program:Main. visibles para el operador e introducidos en el registro del historial. ROC_POS ó ROC_NEG.Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. los tags asociados también deben estar bajo el control del controlador. /*N:5 %InputValue NOFILL DP:0*/ Limit value El umbral de la alarma: • la alarma digital muestra 0 ó 1. • la alarma analógica muestra HiHi. El valor de un tag configurado para incluirse con el evento de alarma. Si la alarma está bajo el control del controlador. nombre del programa y nombre de tag. incorpore los tags asociados en la cadena de texto de mensaje. Los tags asociados pueden ser de cualquier tipo de datos atómico (BOOL. Variable Alarm name Se incorpora en la cadena de mensaje Código predeterminado añadido a la cadena de mensaje El nombre de la alarma. Los valores de tag asociados siempre se envían con la alarma. /*S:0 %ConditionName*/ Condition name Input value El valor de entrada para la alarma: • la alarma digital muestra 0 ó 1. INT. Introduzca los diversos idiomas en las versiones de idiomas asociados del software de programación RSLogix 5000 o en un archivo de importación/exportación (. Valor REAL. Versiones de los mensajes de alarma en múltiples idiomas Usted puede mantener mensajes de alarmas en varios idiomas. relleno con ceros a la izquierda.CSV o . relleno con ceros a la izquierda. cuántos dígitos o caracteres hay en un valor de tag y si desea rellenar los bits vacíos con espacios o ceros a la izquierda. Los mensajes en diferentes idiomas usan códigos de lenguaje ISO en la columna TIPO. 26 caracteres. Valor de cadena. 9 dígitos (incluye decimal) 3 dígitos después del decimal. Por ejemplo: Tag Valor BOOL Valor DINT. ancho fijo Código /*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 información variable se incluye con los datos de alarma. que incluye los códigos de variable incorporados para el operador. 9 dígitos.TXT) y añadir líneas adicionales para las versiones traducidas de la cadena de mensaje original. Publicación 1756-RM003K-ES-P – Julio 2008 67 . visibles para el operador e introducidos en el registro de historial. sin ancho fijo Valor de cadena. independientemente de que usted haya incorporado la información en el texto del mensaje.CSV o . relleno con espacio a la izquierda Valor de entrada REAL. El texto de mensaje de alarma. Usted puede acceder al texto del mensaje de alarma desde un archivo de importación/exportación (. El ESPECIFICADOR identifica la condición de la alarma.TXT).Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. 8 dígitos (incluye decimal) 4 dígitos después del decimal. está en la columna DESCRIPCIÓN. ALMA) Capítulo 1 El código varía según el tipo de tag que seleccione. ACD. El formato de importación/exportación .Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. Al eliminar un mensaje en un archivo .CSV o . Los mensajes de importación y exportación siempre realizan una fusión. 68 Publicación 1756-RM003K-ES-P – Julio 2008 . confirme una alarma.CVS no admite caracteres de doble byte. monitoree la condición de una alarma. nombre y especificador llenados pero con la descripción en blanco.CSV o . por lo tanto usted puede usar este formato para todos los idiomas. Use las selecciones del diálogo para ver cómo se comporta una alarma sin necesidad de tener un HMI en operación. ALMA) Use la utilidad de importación/exportación para crear y traducir cadenas de mensajes en múltiples idiomas.TXT admite caracteres de doble byte. Para eliminar un mensaje. suprima una alarma o restablezca una alarma. Monitoreo del estado de alarma En la ficha Status del diálogo de alarma.TXT con los campos tipo. inclusive chino. inhabilite una alarma. japonés y coreano. importe el archivo .TXT no se elimina el mensaje del archivo . El formato de importación/exportación . el búfer deja de añadir transiciones de alarmas hasta que el suscriptor deje un espacio disponible en el búfer. ALMA) Capítulo 1 Almacenamiento de alarmas en el búfer Para recibir mensajes de alarma basados en el controlador. El búfer se crea cuando el suscriptor establece su conexión inicial y se mantiene por un tiempo configurable (0. se descartan los mensajes de alarma más nuevos. siendo el valor predeterminado 20 minutos) después de que un suscriptor pierde su conexión. El mecanismo de publicación entrega los mensajes de alarma a cada suscriptor tan rápido como sea posible.. el mecanismo de publicación almacena los mensajes de alarma no entregados en un búfer de 100 KB. El controlador mantiene una conexión con cada suscriptor y monitorea el estado de dicha conexión.. los clientes de alarmas (como el servidor RSLinx Enterprise) deben establecer una suscripción a las alarmas en el controlador Logix. los problemas de comunicación con un suscriptor no interfieren con la entrega de mensajes de alarmas a otros suscriptores. o si la conexión a un suscriptor conocido no es buena. comienza a recibir mensajes de alarma actuales y también carga los mensajes que puedan haberse acumulado en el búfer. Si algún suscriptor no confirma recibo del mensaje de alarma. A medida que ocurren cambios de estado de alarma. las instrucciones de alarma almacenan en caché la información necesaria (como sellos de hora y valores de tag asociados) y solicitan la transmisión del mensaje de alarma a todos los suscriptores. los suscriptores se sincronizan de manera exacta con el estado actual de las alarmas (inclusive los sellos de hora más recientes de InAlarmTime. RetToNormalTime y AckTime. El almacenamiento en el búfer continúa hasta llenarse. Cuando el suscriptor restablece una conexión dentro del intervalo de tiempo de espera del búfer. obtiene el estado actual de todas las alarmas. Publicación 1756-RM003K-ES-P – Julio 2008 69 . Cuando el búfer está lleno.Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. Una vez lleno. Cada suscriptor tiene su propio búfer. Aun si el búfer estuviera lleno y los mensajes fueras descartados. por lo tanto.120 minutos. Cuando usted crea una instrucción de alarma. En lógica de escalera de relés.ProgDisable. Cuando se establece un parámetro del operador. cree MyDigitalAlarm del tipo de datos ALARM_DIGITAL. Por ejemplo. mediante acceso al miembro de tag MyDigitalAlarm. por lo tanto. MyAnalogAlarm. Existen tres maneras de realizar acciones en una instrucción de alarma. estos parámetros de instrucción deben introducirse en la instrucción: • ProgAck • ProgReset • ProgDisable • ProgEnable En lógica de escalera de relés y en texto estructurado. estos elementos siempre están activos.Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. Las instrucciones de alarma no usan ajustes de modo para determinar si el acceso al programa o el acceso al operador están activos. HMI personalizado • OperAck • OperReset • OperSuppress • OperDisable • OperEnable Objeto HMI estándar No accesible La interacción normal del operador se realiza a través de objetos del resumen de alarmas. el valor o tag que usted asigna a un parámetro de instrucción (como ProgAck) se escribe automáticamente en el miembro del tag de alarma (por ej. y posteriormente restablece siempre el parámetro. Esta interacción es similar a la opción de HMI personalizada antes descrita.ProgAck) cada vez que se escanea la instrucción. La estructura de alarma incluye tanto elementos de control de programa y de operador. si el operador necesita retirar una herramienta. Los parámetros del operador trabajan con cualquier interface de Rockwell Automation o de otros fabricantes para permitir el control de estados de alarma. debe crear y asignar un tag del tipo de datos correcto para dicha alarma. Por ejemplo. en lugar de inhabilitar manualmente o suprimir alarmas individualmente desde las pantallas de alarmas. el operador puede presionar una tecla de inhabilitación que brinda acceso a un tag MyDigitalAlarm. pero no hay interacción ni visibilidad programática.. Por ejemplo. ALMA) Acceda programáticamente a información de alarmas Cada instrucción de alarma tiene una estructura de alarma que almacena información de configuración y ejecución de alarma. 70 Publicación 1756-RM003K-ES-P – Julio 2008 .OperDisable. Por ejemplo. MyDigitalAlarm de tipo de datos ALARM_DIGITAL. Acceso Programa de usuario Elementos de estructura de alarmas • ProgAck • ProgReset • ProgSuppress • ProgDisable • ProgEnable Consideraciones Use la lógica del controlador para acceder programáticamente a elementos del sistema de alarmas. la instrucción evalúa si puede responder a la petición. Cree una plantilla de HMI personalizada para acceder a elementos del sistema de alarmas. indicador de alarma y explorador de estado de alarmas en la aplicación FactoryTalk View. el programa de control podría inhabilitar una instrucción de alarma. el programa de control puede determinar si se inhabilitará una serie de alarmas relacionadas con una sola causa raíz. como elementos de operador. Todos los suscriptores son notificados de este evento. Suprima o inhabilite alarmas Suprima alarmas para retirar las alarmas cuya existencia usted conoce desde el HMI. Inhabilite una alarma para tratar la alarma como si ésta no existiera en el programa de control. pero mantenga las alarmas activas. todas sus condiciones se establecen en el estado inicial (InAlarm se borra y Acked se establece). • Cuando una alarma no está suprimida. Publicación 1756-RM003K-ES-P – Julio 2008 71 . Por ejemplo. las alarmas suprimidas pueden registrarse en la base de datos históricos pero no pueden anunciarse al operador. pero una alarma suprimida igualmente se envía a los suscriptores. monitorea el parámetro In en lo que respecta a las condiciones de alarma y responde a peticiones de confirmación. Los clientes de alarmas pueden responder de manera diferente a las alarmas suprimidas. si usted desea acceder programáticamente a la estructura de alarmas. y todo mensaje de alarma generado mientras la alarma se encuentra en estado suprimido incluye el estado suprimido.ProgAck en lógica. Una alarma inhabilitada no cambia el estado de alarma ni se registra en la base de datos históricos. asigne el tag MyAnalogAlarm. tener sello de hora y responder a otras interacciones programáticas o del operador. Una alarma suprimida no aparece en las pantallas de indicadores o resumen de operador. para usar MyAnalogAlarm. puede cambiar el estado de alarma. Todos los suscriptores son notificados de este evento. se registra en la base de datos históricos. Por ejemplo. ALMA) Capítulo 1 En lógica de escalera de relés y en texto estructurado. El parámetro In no es monitoreado en lo que respecta a las condiciones de alarma. Esto le permitirá borrar el resumen de alarmas mientras que usted está resolviendo una alarma conocida sin continuar viendo información de alarmas.Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. asigne el tag de estructura al parámetro en la instrucción.ProgAck al parámetro ProgAck. ésta continúa funcionando normalmente. • Cuando una alarma se suprime. • Cuando una alarma está inhabilitada. todos los suscriptores son notificados y los mensajes de alarma a los suscriptores ya no incluyen el estado suprimido. Una alarma inhabilitada aun se rastrea y puede rehabilitarse en el explorador de estado de alarmas en el software FactoryTalk View SE. SubscNotified Mensajes de clientes Los mensajes de clientes son procesados a medida que se reciben. podría colocar las instrucciones de alarma que necesitan dicha resolución en una tarea periódica de 10 ms. Ejecución de alarma basada en el controlador Fuente Miembros de tag de alarma Las alarmas basadas en el controlador procesan entradas provenientes de dos fuentes. de manera asíncrona con el escán del programa. • procesamiento de los comandos Prog y Oper. comienza a monitorear el parámetro In en lo que respecta a las condiciones de alarma. Por ejemplo. si usted desea una exactitud de 10 ms en los sellos de hora. dentro de los intervalos de tiempo determinados por la aplicación de usuario. confirmar. • Comandos restablecer. de manera asíncrona con el escán del programa: • DeliveryEN. La exactitud de los sellos de hora se ve afectada por la rapidez con que se escanea la instrucción después de que la condición de alarma cambia de estado. • captura de los sellos de hora de InAlarmTime y RetToNormalTime. AlarmBuffered.Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. NoConnection. confirmar. CommError. DeliveryER. ALMA) • Cuando una alarma se habilita. Todos los suscriptores son notificados de este evento. estos miembros de estado de tag de alarma se actualizan a medida que los mensajes de alarma se entregan a cada suscriptor. • Comandos restablecer. Esto incluye lo siguiente: • procesamiento de cambios a los parámetros de configuración. DeliveryDN • NoSubscriber. Descripción Los miembros de tag de alarma en su mayor parte se procesan cuando la aplicación del usuario escanea la instrucción de alarma. inhabilitar/habilitar y suprimir/cancelar supresión desde un suscriptor de alarmas FactoryTalk View SE. Los cálculos de acumulación de tiempo de MinDuration y la velocidad de cambio requieren escaneo repetido. Tenga cuidado al determinar dónde colocar las instrucciones de alarma en la aplicación. • evaluación de la condición de alarma. • captura de valores de tag asociados. Además. • medición del tiempo transcurrido para MinDuration. inhabilitar/habilitar y suprimir/cancelar supresión desde un terminal RSLogix 5000. 72 Publicación 1756-RM003K-ES-P – Julio 2008 . Las instrucciones de alarma deben continuar escaneándose después de que la condición de alarma se hace falsa. de modo que pueda detectarse la transición de ReturnToNormal. 1 KB por alarma digital sin tags asociados Ejemplo de alarma digital Alarma digital sin tags asociados y esta configuración: • Mensaje de alarma: Fallo de contactor • Clase de alarma: Zona de tanques A Alarma digital con dos tags asociados y esta configuración: • 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 configuración: • 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 Tamaño aproximado 1012 bytes Publicación 1756-RM003K-ES-P – Julio 2008 73 . ALMA) Capítulo 1 Uso de la memoria del controlador Como pauta. use los siguientes tamaños de alarma para hacer un cálculo general del uso de memoria del controlador: • Típicamente.Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. 74 Publicación 1756-RM003K-ES-P – Julio 2008 . de la longitud del mensaje y de los tags asociados pasados con la alarma. al igual que las cadenas de mensaje para múltiples idiomas. El uso real de memoria depende de cómo se configura la alarma. consumen memoria adicional de su controlador.2 KB por alarma analógica sin tags asociados Ejemplo de alarma analógica Alarma analógica sin tags asociados y esta configuración: • 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 rápido • Mensaje negativo de velocidad de cambio: Se vacía demasiado rápido • Clase de alarma: Zona de tanques A Alarma analógica con dos tags asociados y esta configuración: • 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 rápido • Mensaje negativo de velocidad de cambio: Se vacía demasiado rápido • Clase de alarma: Zona de tanques A • Tag asociado 1 = tipo de datos DINT • Tag asociado 2 = tipo de datos DINT Alarma analógica con dos tags asociados y esta configuración: • 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 rápido • Mensaje negativo de velocidad de cambio: Se vacía demasiado rápido • 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 Tamaño aproximado 2228 bytes Las cadenas de mensaje más largas. 2. ALMA) • Típicamente. tal como confirmar o suprimir la alarma. Estado de renglón Tiempos de ejecución Alarma digital (ALMD) Sin cambio de estado Renglón de alarma falso Renglón verdadero Cambio de estado de alarma Renglón falso Renglón verdadero 8 μs 8 μs 35 μs 35 μs Alarma analógica (ALMA) 17 μs 60 μs 17 μs 126 μs Un cambio de estado de alarma es un evento que cambia la condición de la alarma.Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. Publicación 1756-RM003K-ES-P – Julio 2008 75 . Minimice el potencial de que un gran número de alarmas cambie de estado simultáneamente (ráfagas de alarmas) creando dependencias en alarmas relacionadas. Las grandes ráfagas de alarmas pueden tener un efecto considerable en el tiempo de escán del código de aplicación. ALMA) Capítulo 1 Tiempo de escán Estos tiempos de ejecución muestran cómo las instrucciones ALMD y ALMA afectan el tiempo de escán total. Capítulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD. ALMA) Notas: 76 Publicación 1756-RM003K-ES-P – Julio 2008 . OTL. Vea la descripción de la instrucción. OTE.Capítulo 2 Instrucciones de bits (XIC. OSFI) Introducción Si desea habilitar salidas cuando se establece un bit. establecer un bit establecer un bit (retentivo) borrar un bit (retentivo) habilitar salidas por un escán cada vez que el renglón se hace verdadero establecer un bit por un escán cada vez que el renglón se hace verdadero establecer un bit por un escán cada vez que el renglón se hace falso establecer un bit por un escán cada vez que el bit de entrada se establece en el bloque de funciones establecer un bit por un escán 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. OSF. OTU. OSR. Use otra programación en texto estructurado para lograr el mismo resultado. OSRI. habilitar salidas cuando se borra un bit. Use esta instrucción XIC XIO OTE OTL OTU ONS OSR OSF OSRI Disponible en estos lenguajes lógica de escalera de relés texto estructurado(1) lógica de escalera de relés texto estructurado (1) Vea la página 78 80 82 84 86 88 91 94 96 lógica de escalera de relés texto estructurado(1) lógica de escalera de relés texto estructurado texto estructurado texto estructurado (1) lógica de escalera de relés (1) lógica de escalera de relés (1) lógica de escalera de relés lógica de escalera de relés texto estructurado bloque de funciones texto estructurado bloque de funciones OSFI 99 No hay una instrucción equivalente en texto estructurado. ONS. XIO. 77Publicación 1756-RM003K-ES-P – Julio 2008 77 . OTU.THEN.. Consulte el Apéndice 641B.Capítulo 2 Instrucciones de bits (XIC. La condición de salida de renglón se establece como falsa. OTE. pero usted puede lograr los mismos resultados usando una construcción IF. OSFI) Examinar si está cerrado (XIC) Operandos: La instrucción XIC examina el bit de datos para determinar si está establecido. OSRI. Lógica de escalera de relés Operando bit de datos Tipo BOOL Formato tag Descripción bit que se va a probar Texto estructurado El texto estructurado no tiene una instrucción XIC. examinar bit de datos bit de datos = 1 la condición de salida de renglón se establece como verdadera fin post-escán La condición de salida de renglón se establece como falsa. ONS. END_IF. OSF. IF data_bit THEN <statement>. Atributos de bloque de funciones para obtener información sobre la sintaxis de las construcciones en texto estructurado.. OSR. Descripción: La instrucción XIC examina el bit de datos para determinar si está establecido. 78 Publicación 1756-RM003K-ES-P – Julio 2008 . OTL. Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera bit de datos = 0 la condición de salida de renglón se establece como falsa Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. XIO. XIO. Lógica de escalera de relés Texto estructurado IF S:V THEN <statement>. OTE. END_IF.Instrucciones de bits (XIC. Lógica de escalera de relés Texto estructurado IF limit_switch THEN <statement>. OSFI) Capítulo 2 Ejemplo 1: Si se establece limit_switch_1. OSF. Ejemplo 2: Si se establece S:V (indica que ocurrió un overflow). END_IF. OTU. Publicación 1756-RM003K-ES-P – Julio 2008 79 . OSR. esto habilita la siguiente instrucción (la condición de salida del renglón es verdadera). OSRI. ONS. esto habilita la siguiente instrucción (la condición de salida de renglón es verdadera). OTL. OSR.. Lógica de escalera de relés Operando bit de datos Tipo BOOL Formato tag Descripción bit que se va a probar Texto estructurado El texto estructurado no tiene una instrucción XIO. IF NOT data_bit THEN <statement>. OSFI) Examinar si está abierto (XIO) Operandos: La instrucción XIO examina el bit de datos para determinar si está borrado. OSF. La condición de salida de renglón se establece como falsa. OTE. OSRI. examinar bit de datos bit de datos = 1 la condición de salida de renglón se establece como falsa fin post-escán La condición de salida de renglón se establece como falsa.Capítulo 2 Instrucciones de bits (XIC. ONS.. OTU. Consulte el Apéndice 641B. XIO.THEN. pero usted puede lograr los mismos resultados usando una construcción IF. Descripción: La instrucción XIO examina el bit de datos para determinar si está borrado. Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera bit de datos = 0 la condición de salida de renglón se establece como verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. END_IF. OTL. Atributos de bloque de funciones para obtener información sobre la sintaxis de las construcciones en texto estructurado. 80 Publicación 1756-RM003K-ES-P – Julio 2008 . OSFI) Capítulo 2 Ejemplo 1: Si se borra limit_switch_2. esto habilita la siguiente instrucción (la condición de salida de renglón es verdadera). XIO. OSF. OTL. Publicación 1756-RM003K-ES-P – Julio 2008 81 .Instrucciones de bits (XIC. ONS. Lógica de escalera de relés Texto estructurado IF NOT S:V THEN <statement>. OTU. OSR. END_IF. END_IF. esto habilita la siguiente instrucción (la condición de salida del renglón es verdadera). Ejemplo 2: Si S:V se borra (indica que no ocurrió un overflow). Lógica de escalera de relés Texto estructurado IF NOT limit_switch_2 THEN <statement>. OSRI. OTE. XIO. OSF. Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán Acción de lógica de escalera de relés El bit de datos se borra. OSFI) Activación de salida (OTE) Operandos: La instrucción OTE establece o borra el bit de datos. OTL. condición de entrada de renglón es verdadera El bit de datos se establece. Descripción: Cuando se habilita la instrucción OTE. el controlador borra el bit de datos. el controlador establece el bit de datos. 82 Publicación 1756-RM003K-ES-P – Julio 2008 . OTU. condición de entrada de renglón es falsa El bit de datos se borra. La condición de salida de renglón se establece como falsa. Atributos de bloque de funciones para obtener información sobre la sintaxis de asignaciones y expresiones en texto estructurado. OTE. ONS. pero usted puede lograr los mismos resultados usando una asignación no retentiva. La condición de salida de renglón se establece como verdadera. OSRI. post-escán El bit de datos se borra. OSR. La condición de salida de renglón se establece como falsa. Cuando se inhabilita la instrucción OTE. Consulte el Apéndice 641B. Lógica de escalera de relés Operando bit de datos Tipo BOOL Formato tag Descripción bit que se va a establecer o borrar Texto estructurado El texto estructurado no tiene una instrucción OTE.Capítulo 2 Instrucciones de bits (XIC. data_bit [:=] BOOL_expression. La condición de salida de renglón se establece como falsa. OSFI) Capítulo 2 Ejemplo: Cuando se establece switch. Publicación 1756-RM003K-ES-P – Julio 2008 83 . OTU. la instrucción OTE establece (activa) light_1. OSRI. XIO. OTL.Instrucciones de bits (XIC. Lógica de escalera de relés Texto estructurado light_1 [:=] switch. Cuando se borra switch. ONS. OTE. OSR. la instrucción OTE borra (desactiva) light_1. OSF. OSR. Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán Acción de lógica de escalera de relés El bit de datos no se modifica. Atributos de bloque de funciones para obtener información sobre la sintaxis de construcciones. Consulte el Apéndice 641B. XIO.THEN y una asignación. OTU. La condición de salida de renglón se establece como verdadera.. Lógica de escalera de relés Operando bit de datos Tipo BOOL Formato tag Descripción bit que se va a establecer Texto estructurado El texto estructurado no tiene una instrucción OTL. pero usted puede lograr los mismos resultados usando una construcción IF. generalmente por una instrucción OTU. OSRI. Descripción: Cuando se habilita. ONS. post-escán El bit de datos no se modifica. OSFI) Enclavamiento de salida (OTL) Operandos: La instrucción OTL establece (enclava) el bit de datos. Cuando se inhabilita. La condición de salida de renglón se establece como falsa. La condición de salida de renglón se establece como falsa.. El bit de datos permanece establecido hasta que es borrado. la instrucción OTL establece el bit de datos. OTL. La condición de salida de renglón se establece como falsa. la instrucción OTL no cambia el estado del bit de datos. IF BOOL_expression THEN data_bit := 1. condición de entrada de renglón es verdadera El bit de datos se establece. OSF. OTE. expresiones y asignaciones en texto estructurado. 84 Publicación 1756-RM003K-ES-P – Julio 2008 . condición de entrada de renglón es falsa El bit de datos no se modifica.Capítulo 2 Instrucciones de bits (XIC. END_IF. OTU. Lógica de escalera de relés Texto estructurado IF BOOL_expression THEN light_2 := 1. OTE. Publicación 1756-RM003K-ES-P – Julio 2008 85 . OSR. Este bit de datos permanece establecido hasta que es borrado. OSRI. OSF.Instrucciones de bits (XIC. XIO. ONS. generalmente por una instrucción OTU. OTL. la instrucción OTL establece light_2. OSFI) Capítulo 2 Ejemplo: Cuando se habilita. END_IF. Consulte el Apéndice 641B. Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán Acción de lógica de escalera de relés El bit de datos no se modifica. OTU. la instrucción OTU borra el bit de datos. Cuando se inhabilita. Lógica de escalera de relés Operando bit de datos Tipo BOOL Formato tag Descripción bit que se va a borrar Texto estructurado El texto estructurado no tiene una instrucción OTU. OSRI. La condición de salida de renglón se establece como falsa. END_IF. ONS. condición de entrada de renglón es verdadera El bit de datos se borra. IF BOOL_expression THEN data_bit := 0. 86 Publicación 1756-RM003K-ES-P – Julio 2008 . La condición de salida de renglón se establece como falsa.. La condición de salida de renglón se establece como falsa. XIO. OSFI) Desenclavamiento de salida (OTU) Operandos: La instrucción OTU borra (desenclava) el bit de datos.THEN y una asignación. Atributos de bloque de funciones para obtener información sobre la sintaxis de construcciones. La condición de salida de renglón se establece como verdadera. post-escán El bit de datos no se modifica. OSF. Descripción: Cuando se habilita. expresiones y asignaciones en texto estructurado. pero usted puede lograr los mismos resultados usando una construcción IF. OTL. OSR. condición de entrada de renglón es falsa El bit de datos no se modifica.Capítulo 2 Instrucciones de bits (XIC.. la instrucción OTU no cambia el estado del bit de datos. OTE. la instrucción OTU borra light_2. OSF. OSFI) Capítulo 2 Ejemplo: Cuando se habilita. OSR. OTL. Publicación 1756-RM003K-ES-P – Julio 2008 87 . END_IF.Instrucciones de bits (XIC. XIO. Lógica de escalera de relés Texto estructurado IF BOOL_expression THEN light_2 := 0. OSRI. OTE. OTU. ONS. OTL. OSRI. XIO. END_IF. la instrucción ONS habilita el resto del renglón. OSF.Capítulo 2 Instrucciones de bits (XIC. OSR.. la instrucción ONS inhabilita el resto del renglón. dependiendo del estado del bit de almacenamiento. ONS. storage_bit := BOOL_expression. IF BOOL_expression AND NOT storage_bit THEN <statement>. OSFI) Un impulso (ONS) Operandos: La instrucción ONS habilita o inhabilita el resto del renglón. OTE. Descripción: Cuando se habilita y el bit de almacenamiento se borra.THEN. Atributos de bloque de funciones para obtener información sobre la sintaxis de construcciones y expresiones en texto estructurado. Consulte el Apéndice 641B.. pero usted puede lograr los mismos resultados usando una construcción IF. Cuando se inhabilita o cuando el bit de almacenamiento se establece. Lógica de escalera de relés Operando storage bit Tipo BOOL Formato tag Descripción bit de almacenamiento interno almacena la condición de entrada del renglón desde la última vez que se ejecutó la instrucción Texto estructurado El texto estructurado no tiene una instrucción ONS. Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna 88 Publicación 1756-RM003K-ES-P – Julio 2008 . OTU. ONS. condición de entrada de renglón es verdadera bit de almacenamiento = 0 examinar bit de almacenamiento el bit de almacenamiento se establece la condición de salida de renglón se establece como verdadera bit de almacenamiento = 1 el bit de almacenamiento permanece establecido la condición de salida de renglón se establece como falsa fin post-escán El bit de almacenamiento se borra.Instrucciones de bits (XIC. Una vez que la instrucción ONS se habilita. OSRI. Publicación 1756-RM003K-ES-P – Julio 2008 89 . condición de entrada de renglón es falsa El bit de almacenamiento se borra. OSF. La condición de salida de renglón se establece como falsa. Ejemplo: Normalmente una instrucción ONS está precedida por una instrucción de entrada. OTE. La condición de salida de renglón se establece como falsa. OSR. La condición de salida de renglón se establece como falsa. o el bit de almacenamiento debe borrarse para que la instrucción ONS se habilite nuevamente. porque la instrucción ONS se escanea cuando ésta se habilita y cuando se inhabilita para que funcione correctamente. OSFI) Capítulo 2 Ejecución: Condición preescán Acción de lógica de escalera de relés El bit de almacenamiento se establece para evitar una activación no válida durante el primer escán. la condición de entrada de renglón debe borrarse. OTL. OTU. XIO. la instrucción ONS establece storage_1 y la instrucción ADD incrementa sum en 1.Capítulo 2 Instrucciones de bits (XIC. OSR. En todo escán en que limit_switch_1 se establece y storage_1 se borra. OSFI) En todo escán en que limit_switch_1 se borra o storage_1 se establece. 90 Publicación 1756-RM003K-ES-P – Julio 2008 . Lógica de escalera de relés Texto estructurado IF limit_switch_1 AND NOT storage_1 THEN sum := sum + 1. sum permanece con el mismo valor. OSF. END_IF. ONS. limit_switch_1 debe cambiar de borrado a establecido nuevamente para que se incremente sum nuevamente. Siempre que limit_switch_1 permanezca esta blecido. OTL. XIO. OTU. OTE. storage_1 := limit_switch_1. OSRI. este renglón no tiene efecto. dependiendo del estado del bit de almacenamiento. XIO. OSFI) Capítulo 2 Un impulso en flanco ascendente (OSR) La instrucción OSR establece o borra el bit de salida. OTE. la instrucción OSR borra el bit de salida. OSR. ONS. la instrucción OSR establece el bit de salida. OTU. Esta instrucción está disponible en texto estructurado y en bloque de funciones como OSRI. OSRI. Cuando se habilita y el bit de almacenamiento está establecido o cuando se inhabilita. OSF. Operandos: Lógica de escalera de relés Operando storage bit Tipo BOOL Formato tag Descripción bit de almacenamiento interno almacena la condición de entrada del renglón desde la última vez que se ejecutó la instrucción output bit BOOL tag bit que se va a establecer Descripción: Cuando se habilita y el bit de almacenamiento está borrado. condición de entrada del renglón bit de almacenamiento bit de salida la instrucción se ejecuta la instrucción se restablece durante la siguiente ejecución del escán Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Publicación 1756-RM003K-ES-P – Julio 2008 91 . OTL.Instrucciones de bits (XIC. vea la página 96. La condición de salida de renglón se establece como falsa. condición de entrada de renglón es falsa El bit de almacenamiento se borra. OTL. El bit de salida no se modifica.Capítulo 2 Instrucciones de bits (XIC. 92 Publicación 1756-RM003K-ES-P – Julio 2008 . El bit de salida no se modifica. La condición de salida de renglón se establece como falsa. ONS. OSFI) Ejecución: Condición preescán Acción de lógica de escalera de relés El bit de almacenamiento se establece para evitar una activación no válida durante el primer escán. OSR. El bit de salida se borra. condición de entrada de renglón es verdadera examinar bit de almacenamiento bit de almacenamiento = 0 el bit de almacenamiento se establece el bit de salida se establece la condición de salida de renglón se establece como verdadera bit de almacenamiento = 1 el bit de almacenamiento permanece establecido el bit de salida se borra la condición de salida de renglón se establece como verdadera fin post-escán El bit de almacenamiento se borra. OTE. OSF. OSRI. La condición de salida de renglón se establece como falsa. OTU. XIO. Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Capítulo 2 Ejemplo: Cada vez que limit_switch_1 cambia de borrado a establecido, la instrucción OSR establece output_bit_1 y la instrucción 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. Publicación 1756-RM003K-ES-P – Julio 2008 93 Capítulo 2 Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Un impulso en flanco descendente (OSF) La instrucción OSF establece o borra el bit de salida dependiendo del estado del bit de almacenamiento. Esta instrucción está disponible en texto estructurado y en bloque de funciones como OSFI; vea la página 99. Operandos: Operandos de lógica de escalera de relés Operando storage bit Tipo BOOL Formato tag Descripción bit de almacenamiento interno almacena la condición de entrada del renglón desde la última vez que se ejecutó la instrucción output bit BOOL tag bit que se va a establecer Descripción: Cuando se inhabilita y el bit de almacenamiento está establecido, la instrucción OSF establece el bit de salida. Cuando se inhabilita y el bit de almacenamiento está borrado o cuando se habilita, la instrucción OSF borra el bit de salida. condición de entrada del renglón bit de almacenamiento bit de salida la instrucción se ejecuta la instrucción se restablece durante la siguiente ejecución del escán Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna 94 Publicación 1756-RM003K-ES-P – Julio 2008 Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Capítulo 2 Ejecución: Condición preescán Acción de lógica de escalera de relés El bit de almacenamiento se borra para evitar una activación no válida durante el primer escán. El bit de salida se borra. La condición de salida de renglón se establece como falsa. condición de entrada de renglón es falsa bit de almacenamiento = 0 el bit de almacenamiento permanece borrado el bit de salida se borra la condición de salida de renglón 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 condición de salida de renglón se establece como falsa fin condición de entrada de renglón es verdadera El bit de almacenamiento se establece. El bit de salida se borra. La condición de salida de renglón se establece como verdadera. post-escán Nótese que la condición de entrada del renglón es falsa arriba. Ejemplo: Cada vez que limit_switch_1 cambia de establecido a borrado, la instrucción OSF establece output_bit_2 y la instrucción 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. Publicación 1756-RM003K-ES-P – Julio 2008 95 Capítulo 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 instrucción OSRI establece el bit de salida por un ciclo de ejecución cuando el bit de entrada cambia de borrado a establecido. Esta instrucción está disponible en lógica de escalera de relés como OSR; vea la página 91. Texto estructurado Operando tag OSRI Tipo FBD_ONESHOT Formato estructura Descripción estructura OSRI Bloque de funciones Operando tag OSRI Tipo FBD_ONESHOT Formato estructura Descripción estructura OSRI Estructura FBD_ONESHOT Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Bloque de funciones: Si se borra, la instrucción no se ejecuta y las salidas no se actualizan. Si se establece, la instrucción se ejecuta. La opción predeterminada es establecido. Texto estructurado: Ningún efecto. La instrucción se ejecuta. InputBit BOOL Bit de entrada. Esto es equivalente a la condición del renglón para la instrucción OSR de lógica de escalera de relés. La opción predeterminada es borrado. Parámetro de salida Tipo de datos EnableOut OutputBit BOOL BOOL Descripción La instrucción produjo un resultado válido. Bit de salida 96 Publicación 1756-RM003K-ES-P – Julio 2008 Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Capítulo 2 Descripción: Cuando InputBit se establece y InputBitn-1 se borra, la instrucción OSRI establece OutputBit. Cuando InputBitn-1 se establece o cuando InputBit se borra, la instrucción OSRI borra OutputBit. InputBit InputBitn-1 OutputBit la instrucción se ejecuta la instrucción se restablece durante la siguiente ejecución del escán 40048 Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán Acción de bloque de funciones Ninguna. Acción de texto estructurado Ninguna. InputBit n-1 se establece. InputBit n-1 se establece. n. a. En una transición de borrado a establecido de InputBit, la instrucción establece InputBit n-1. EnableIn siempre se establece. La instrucción se ejecuta. Ninguna. primer escán de instrucción InputBit n-1 se establece. primera ejecución de instrucción EnableIn se borra EnableIn se establece InputBit n-1 se establece. EnableOut se borra, la instrucción no efectúa ninguna operación y las salidas no se actualizan. En una transición de borrado a establecido de InputBit, la instrucción establece InputBit n-1. La instrucción se ejecuta. EnableOut se establece. post-escán Ninguna. Publicación 1756-RM003K-ES-P – Julio 2008 97 Capítulo 2 Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Ejemplo: Cuando limit_switch1 cambia de borrado a establecido, la instrucción OSRI establece OutputBit por un escán. Texto estructurado OSRI_01.InputBit := limit_switch1; OSRI(OSRI_01); State := OSRI_01.OutputBit; Bloque de funciones 98 Publicación 1756-RM003K-ES-P – Julio 2008 Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Capítulo 2 Un impulso en flanco descendente con entrada (OSFI) Operandos: OSFI(OSFI_tag); La instrucción OSFI establece OutputBit por un ciclo de ejecución cuando InputBit cambia de establecido a borrado. Esta instrucción está disponible en lógica de escalera de relés como OSF; vea la página 94. Texto estructurado Operando tag OSFI Tipo FBD_ONESHOT Formato estructura Descripción estructura OSFI Bloque de funciones Operando tag OSFI Tipo FBD_ONESHOT Formato estructura Descripción estructura OSFI Estructura FBD_ONESHOT Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Bloque de funciones: Si se borra, la instrucción no se ejecuta y las salidas no se actualizan. Si se establece, la instrucción se ejecuta. La opción predeterminada es establecido. Texto estructurado: Ningún efecto. La instrucción se ejecuta. InputBit BOOL Bit de entrada. Esto es equivalente a la condición del renglón para la instrucción OSF de lógica de escalera de relés La opción predeterminada es borrado. Parámetro de salida Tipo de datos EnableOut OutputBit BOOL BOOL Descripción La instrucción produjo un resultado válido. Bit de salida Publicación 1756-RM003K-ES-P – Julio 2008 99 Capítulo 2 Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Descripción: Cuando InputBit se borra y InputBit n-1 se establece, la instrucción OSFI establece OutputBit. Cuando InputBit n-1 se borra o cuando InputBit se establece, la instrucción OSFI borra OutputBit. InputBit InputBit n-1 OutputBit la instrucción se ejecuta la instrucción se restablece durante la siguiente ejecución del escán 40047 Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán Acción de bloque de funciones Ninguna. Acción de texto estructurado Ninguna. InputBit n-1 se borra. InputBit n-1 se borra. n. a. En una transición de borrado a establecido de InputBit, la instrucción borra InputBit n-1. EnableIn siempre se establece. La instrucción se ejecuta. Ninguna. primer escán de instrucción InputBit n-1 se borra. primera ejecución de instrucción EnableIn se borra EnableIn se establece InputBit n-1 se borra. EnableOut se borra, la instrucción no efectúa ninguna operación y las salidas no se actualizan. En una transición de borrado a establecido de InputBit, la instrucción borra InputBit n-1. La instrucción se ejecuta. EnableOut se establece. post-escán Ninguna. 100 Publicación 1756-RM003K-ES-P – Julio 2008 Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Capítulo 2 Ejemplo: Cuando limit_switch1 cambia de establecido a borrado, la instrucción OSFI establece OutputBit por un escán. Texto estructurado OSFI_01.InputBit := limit_switch1; OSFI(OSFI_01); Output_state := OSFI_01.OutputBit; Bloque de funciones Publicación 1756-RM003K-ES-P – Julio 2008 101 Capítulo 2 Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI) Notas: 102 Publicación 1756-RM003K-ES-P – Julio 2008 Capítulo 3 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Introducción 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 número de eventos. Use esta instrucción TON TOF RTO TONR Disponible en estos lenguajes lógica de escalera de relés lógica de escalera de relés lógica de escalera de relés texto estructurado bloque de funciones TOFR texto de estructura bloque de funciones RTOR texto estructurado bloque de funciones CTU CTD CTUD lógica de escalera de relés lógica de escalera de relés texto estructurado bloque de funciones RES lógica de escalera de relés 141 128 132 136 124 120 Vea la página 104 108 112 116 La base de tiempo para todos los temporizadores es 1 ms. 103Publicación 1756-RM003K-ES-P – Julio 2008 103 Capítulo 3 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Temporizador de retardo a la conexión (TON) La instrucción TON es un temporizador no retentivo que acumula el tiempo cuando la instrucción está habilitada (la condición de entrada del renglón es verdadera). Esta instrucción está disponible en texto estructurado y en bloque de funciones como TONR; vea la página 116. Operandos: Lógica de escalera de relés Operando Timer Preset Acum Tipo TIMER DINT DINT Formato tag inmediato inmediato Descripción estructura de temporizador período de retardo (acumulación de tiempo) el tiempo en ms contado por el temporizador el valor inicial es típicamente 0 Estructura TIMER Mnemónico .EN .TT .DN .PRE .ACC Tipo de datos BOOL BOOL BOOL DINT DINT Descripción El bit de habilitación indica que la instrucción TON está habilitada. El bit de temporización indica que se está ejecutando una operación de temporización. 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 instrucción establezca el bit .DN. El valor acumulado especifica el número de milisegundos que han transcurrido desde que se habilitó la instrucción TON. Descripción: La instrucción TON acumula tiempo hasta que: • la instrucción 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 Publicación 1756-RM003K-ES-P – Julio 2008 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Capítulo 3 Cuando se inhabilita la instrucción TON, se borra el valor .ACC. condición de entrada del renglón bit de habilitación 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 conexión Un temporizador se ejecuta restando la hora de su último escán de la hora actual: ACC = ACC + (current_time - last_time_scanned) Después de que se actualiza el ACC, el temporizador establece last_time_scanned = current_time. Esto deja el temporizador listo para el siguiente escán. Asegúrese 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 cálculo 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 ejecución de un temporizador, escanéelo dentro de un lapso no mayor de 69 minutos si lo coloca en una: • subrutina • sección de código comprendida entre las instrucciones JMP y LBL • diagrama de función secuencial (SFC) • evento o tarea periódica • rutina de estado de una fase IMPORTANTE Indicadores de estado aritmético: no afectados Condiciones de fallo: Ocurrirá un fallo mayor si .PRE < 0 .ACC < 0 Tipo de fallo 4 4 Código de fallo 34 34 Publicación 1756-RM003K-ES-P – Julio 2008 105 Capítulo 3 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES) Ejecución: Condición preescán Acción de lógica de escalera de relés Los bits .EN, .TT y .DN se borran. El valor .ACC se borra. La condición de salida de renglón se establece como falsa. condición de entrada de renglón es falsa Los bits .EN, .TT y .DN se borran. El valor .ACC se borra. La condición de salida de renglón se establece como falsa. condición de entrada de renglón 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 condición de salida de renglón se establece como verdadera .ACC = 2,147,483,647 fin post-escán La condición de salida de renglón se establece como falsa. 106 Publicación 1756-RM003K-ES-P – Julio 2008 Light_3 permanece encendida hasta que se inhabilita la instrucción TON. Si limit_switch_1 se borra mientras que timer_1 está temporizando light_2 se apaga. TOFR. Publicación 1756-RM003K-ES-P – Julio 2008 107 . RTOR. (timer_1 está temporizando). RTO.Instrucciones de temporizador y contador (TON. CTD. light_2 se apaga y light_3 se enciende.acc llega a 180. TOF. CTUD. Cuando timer_1. RES) Capítulo 3 Ejemplo: Cuando limit_switch_1 se establece. CTU. TONR. light_2 se enciende por 180 ms. Descripción: La instrucción TOF acumula tiempo hasta que: • la instrucción TOF se inhabilita • . TONR.TT . El valor de preajuste especifica el valor (en unidades de 1 ms) al que debe llegar el valor acumulado para que la instrucción borre el bit .ACC ≥ . Por ejemplo. El valor acumulado especifica el número de milisegundos que han transcurrido desde que se habilitó la instrucción TOF. CTU. CTUD. Operandos: Lógica de escalera de relés Operando Timer Preset Acum Tipo TIMER DINT DINT Formato tag inmediato inmediato Descripción estructura de temporizador período de retardo (acumulación de tiempo) total de ms que contó el temporizador el valor inicial es típicamente 0 Estructura TIMER Mnemónico .PRE La base de tiempo siempre es 1 ms.Capítulo 3 Instrucciones de temporizador y contador (TON. TOFR. CTD. RTO.ACC ≥ . vea la página 120. introduzca 2000 para el valor . TOF.EN .ACC Tipo de datos BOOL BOOL BOOL DINT DINT Descripción El bit de habilitación indica que la instrucción TOF está habilitada. El bit de efectuado se borra cuando . Esta instrucción está disponible en texto estructurado y en bloque de funciones como TOFR. en un temporizador de 2 segundos. El bit de temporización indica que se está ejecutando una operación de temporización. 108 Publicación 1756-RM003K-ES-P – Julio 2008 .PRE .DN . RES) Temporizador de retardo a la desconexión (TOF) La instrucción TOF es un temporizador no retentivo que acumula el tiempo cuando la instrucción está habilitada (la condición de entrada del renglón es falsa).PRE.DN.PRE. RTOR. RTO. El valor last_time_scanned tiene un rango de hasta 69 minutos. Asegúrese de escanear el temporizador por lo menos cada 69 minutos mientras se ejecuta.DN) retardo a la desconexión preajuste valor acumulado de temporizador (. condición de entrada del renglón bit de habilitación de temporizador (. TOFR. escanéelo dentro de un lapso no mayor de 69 minutos si lo coloca en una: • subrutina • sección de código comprendida entre las instrucciones JMP y LBL • diagrama de función secuencial (SFC) • evento o tarea periódica • rutina de estado de una fase IMPORTANTE Indicadores de estado aritmético: no afectados Condiciones de fallo: Ocurrirá un fallo mayor si . RES) Capítulo 3 Cuando se inhabilita la instrucción TOF. El cálculo del temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso de 69 minutos.ACC < 0 Tipo de fallo 4 4 Código de fallo 34 34 Publicación 1756-RM003K-ES-P – Julio 2008 109 .PRE < 0 .last_time_scanned) Después de que se actualiza el ACC. CTUD. Esto deja el temporizador listo para el siguiente escán. Durante la ejecución de un temporizador.TT) bit de temporizador expirado (.PRE 16650 Un temporizador se ejecuta restando la hora de su último escán de la hora actual: ACC = ACC + (current_time .ACC. Si esto sucede. el valor ACC no será correcto. De no hacerse.EN) bit de temporizador temporizando (. el valor ACC no será correcto. TOF. CTD. TONR.ACC) 0 el temporizador no llegó al valor . CTU. el temporizador establece last_time_scanned = current_time. se borra el valor .Instrucciones de temporizador y contador (TON. RTOR. CTUD. TONR.TT y . La condición de salida de renglón se establece como verdadera.EN Bit .647 fin condición de entrada de renglón es verdadera Los bits . RTO. TOF.EN.ACC ≥ .ACC se establece para coincidir con el valor . TOFR.DN se borran.EN se borra el bit .PRE.ACC = .TT se establece last_time = current_time Bit . .483. post-escán La condición de salida de renglón se establece como falsa. .last_time) last_time = current_time examine .DN se establecen.PRE . RTOR.EN se borra el valor .Capítulo 3 Instrucciones de temporizador y contador (TON.ACC + (current_time .DN Bit .DN se borra el bit .EN = 0 .ACC .ACC < . condición de entrada de renglón es falsa Bit .ACC retorna al valor inicial sí no la condición de salida de renglón se establece como falsa .ACC se borra. 110 Publicación 1756-RM003K-ES-P – Julio 2008 . El valor . CTD.TT se establece .TT se borra el bit .DN = 1 examine el bit .DN = 0 examine el bit . CTU.TT y . El valor .EN. La condición de salida de renglón se establece como falsa.PRE el bit .147.EN = 1 el bit . RES) Ejecución: Condición preescán Acción de lógica de escalera de relés Los bits .ACC = 2. Si limit_switch_2 se establece mientras que timer_2 está temporizando light_2 se apaga.acc llega a 180. Cuando timer_2. TOFR. light_2 se enciende durante 180 ms (timer_2 está temporizando).Instrucciones de temporizador y contador (TON. CTUD. Light_3 permanece encendida hasta que se habilita la instrucción TOF. Publicación 1756-RM003K-ES-P – Julio 2008 111 . RTOR. TONR. RES) Capítulo 3 Ejemplo: Cuando limit_switch_2 se borra. CTU. RTO. TOF. CTD. light_2 se apaga y light_3 se enciende. ACC. Esta instrucción está disponible en texto estructurado y en bloque de funciones como RTOR.DN . Operandos: Lógica de escalera de relés Operando Timer Preset Acum Tipo TIMER DINT DINT Formato tag inmediato inmediato Descripción estructura de temporizador período de retardo (acumulación de tiempo) número de ms que contó el temporizador el valor inicial es típicamente 0 Estructura TIMER Mnemónico .EN .PRE. El valor acumulado especifica el número de milisegundos que han transcurrido desde que se habilitó la instrucción RTO. Descripción: La instrucción RTO acumula tiempo hasta que se inhabilita. TONR. RTO. 112 Publicación 1756-RM003K-ES-P – Julio 2008 . CTUD.ACC.ACC ≥ . CTU.TT . El bit de temporización indica que se está ejecutando una operación de temporización.ACC Tipo de datos BOOL BOOL BOOL DINT DINT Descripción El bit de habilitación indica que la instrucción RTO está habilitada. TOFR.DN. El bit de efectuado indica que . RTOR. TOF. vea la página 124. RES) Temporizador retentivo activado (RTO) La instrucción RTO es un temporizador retentivo que acumula tiempo cuando la instrucción está habilitada. Cuando la instrucción RTO se inhabilita.Capítulo 3 Instrucciones de temporizador y contador (TON. El valor de preajuste especifica el valor (en unidades de 1 ms) al que debe llegar el valor acumulado para que la instrucción establezca el bit . Usted debe borrar el valor . normalmente con una instrucción RES que referencia la misma estructura TIMER.PRE . retiene su valor . CTD. El valor last_time_scanned tiene un rango de hasta 69 minutos. el valor ACC no será correcto. el temporizador establece last_time_scanned = current_time. RTO. TOFR.ACC < 0 Tipo de fallo 4 4 Código de fallo 34 34 Publicación 1756-RM003K-ES-P – Julio 2008 113 . Si esto sucede.DN) preajuste valor acumulado de temporizador (. CTD.Instrucciones de temporizador y contador (TON. Por ejemplo.EN) condición de renglón que controla la instrucción RES bit de temporizador temporizando (.ACC) 0 el temporizador no llegó al valor . en un temporizador de 2 segundos. TOF. el valor ACC no será correcto. RTOR. escanéelo dentro de un lapso no mayor de 69 minutos si lo coloca en una: • subrutina • sección de código comprendida entre las instrucciones JMP y LBL • diagrama de función secuencial (SFC) • evento o tarea periódica • rutina de estado de una fase IMPORTANTE Indicadores de estado aritmético: no afectados Condiciones de fallo: Ocurrirá un fallo mayor si . RES) Capítulo 3 La base de tiempo siempre es 1 ms.last_time_scanned) Después de que se actualiza el ACC.PRE. introduzca 2000 para el valor . Durante la ejecución de un temporizador.TT) bit de temporizador expirado (. CTU. TONR. Esto deja el temporizador listo para el siguiente escán. condición de entrada del renglón bit de habilitación de temporizador (. El cálculo del temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso de 69 minutos.PRE 16651 Un temporizador se ejecuta restando la hora de su último escán de la hora actual: ACC = ACC + (current_time . CTUD.PRE < 0 . Asegúrese de escanear el temporizador por lo menos cada 69 minutos mientras se ejecuta. De no hacerse. EN y .ACC = .last_time) last_time = current_time examine . RES) Ejecución: Condición preescán Acción de lógica de escalera de relés Los bits .EN se establece el bit . .ACC ≥ .TT se establece .DN no se modifica. TOF. TOFR.ACC = 2.DN = 1 Bit .TT se establece last_time = current_time Bit . CTD.ACC no se modifica.EN Bit . La condición de salida de renglón se establece como falsa. CTU. El valor .ACC no se modifica. La condición de salida de renglón se establece como falsa.PRE el bit . TONR.Capítulo 3 Instrucciones de temporizador y contador (TON.TT se borra el bit .TT y .647 fin post-escán La condición de salida de renglón se establece como falsa.EN = 0 el bit .DN se borran.ACC + (current_time . RTO. condición de entrada de renglón es falsa Los bits .EN se establece el valor .EN.PRE .TT se borran. 114 Publicación 1756-RM003K-ES-P – Julio 2008 .DN = 0 examine el bit . El bit . RTOR.ACC retorna al valor inicial sí no la condición de salida de renglón se establece como verdadera .DN se establece el bit .147. condición de entrada de renglón es verdadera examine el bit . El valor .483.EN = 1 .ACC .DN Bit . CTUD.ACC < . TOFR.Instrucciones de temporizador y contador (TON. Cuando limit_switch_2 se establece. Publicación 1756-RM003K-ES-P – Julio 2008 115 . Light_2 permanece hasta que timer_3 se restablece. TOF. TONR. RTOR.ACC). RES) Capítulo 3 Ejemplo: Cuando limit_switch_1 se establece. CTD. CTU. RTO. Si limit_switch_2 se borra mientras que timer_3 está temporizando light_1 permanece encendida. CTUD. 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. la instrucción RES restablece timer_3 (borra los bits de estado y el valor . CTUD. se está ejecutando una operación de temporización. Salida de temporizador habilitado.Capítulo 3 Instrucciones de temporizador y contador (TON. TOFR. La opción predeterminada es borrado. Salida de temporizador temporizando. Válido = 0 hasta el entero positivo máximo Reset BOOL Petición para restablecer el temporizador. CTU. el temporizador se restablece. TimerEnable BOOL Si se establece. Cuando se establece. la instrucción establece el bit apropiado en Status y el temporizador no se ejecuta. permite que el temporizador se ejecute y acumule tiempo. Éste es un valor expresado en unidades de 1 ms al que ACC debe llegar antes de que concluya la temporización. RTOR. Tiempo acumulado en milisegundos. La opción predeterminada es establecido. la instrucción no se ejecuta y las salidas no se actualizan. Indica que la instrucción de temporizador está habilitada. la instrucción se ejecuta. La instrucción se ejecuta. Cuando se establece. Esta instrucción está disponible en lógica de escalera de relés como dos instrucciones separadas: TON (vea página 104) y RES (vea página 141). Parámetro de salida Tipo de datos EnableOut ACC EN TT BOOL BOOL BOOL BOOL Descripción La instrucción produjo un resultado válido. Si se establece. TONR. RES) Temporizador de retardo a la conexión con restablecimiento (TONR) La instrucción TONR es un temporizador no retentivo que acumula tiempo cuando TimerEnable está establecido. TOF. CTD. Texto estructurado: Ningún efecto. Texto estructurado Variable tag TONR Tipo FBD_TIMER Formato estructura Descripción estructura TONR Bloque de funciones Operando tag TONR Tipo FBD_TIMER Formato estructura Descripción estructura TONR Estructura FBD_TIMER Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Bloque de funciones: Si se borra. Si no es válido. Operandos: TONR(TONR_tag). RTO. PRE DINT Valor prefijado en el temporizador. 116 Publicación 1756-RM003K-ES-P – Julio 2008 . La opción predeterminada es borrado. ACC) 0 el temporizador no llegó al valor PRE Retardo a la conexión 16649 Establezca el parámetro de entrada Reset para restablecer la instrucción. El valor de preajuste no es válido. CTD. introduzca 2000 para el valor . CTU. RTO.Instrucciones de temporizador y contador (TON. la instrucción TONR comienza la temporización nuevamente cuando Reset se borra. TONR.last_time_scanned) Publicación 1756-RM003K-ES-P – Julio 2008 117 . Un temporizador se ejecuta restando la hora de su último escán de la hora actual: ACC = ACC + (current_time . Éste no es un error menor ni mayor del controlador. TimerEnable bit de habilitación (EN) bit de temporizador temporizando (TT) bit de temporizador expirado (. RTOR.PRE. Por ejemplo. en un temporizador de 2 segundos. TOF. Verifique los bits de estado restantes para determinar lo que ocurrió. La instrucción detectó uno de los siguientes errores de ejecución. Indica cuando el tiempo acumulado es mayor o igual que el valor de preajuste. Estado del bloque de funciones. Si TimerEnable se establece cuando Reset se establece. RES) Capítulo 3 Parámetro de entrada DN Status Tipo de datos BOOL DINT Descripción Salida de temporización efectuada. CTUD.0) BOOL PresetInv (Status. InstructFault (Status.1) BOOL Descripción: La instrucción TONR acumula tiempo hasta que: • la instrucción TONR se inhabilita • ACC ≥ PRE La base de tiempo siempre es 1 ms. TOFR.DN) preajuste valor acumulado de temporizador (. RES) Después de que se actualiza el ACC. primer escán de instrucción Los bits EN. EnableOut se establece. n. TT y DN y establece ACC = cero. Ninguna. Asegúrese de escanear el temporizador por lo menos cada 69 minutos mientras se ejecuta.Capítulo 3 Instrucciones de temporizador y contador (TON. TT y DN se borran. el temporizador establece last_time_scanned = current_time. Los bits EN. post-escán 118 Publicación 1756-RM003K-ES-P – Julio 2008 . De no hacerse. Los bits EN. El valor last_time_scanned tiene un rango de hasta 69 minutos. escanéelo dentro de un lapso no mayor de 69 minutos si lo coloca en una: • subrutina • sección de código comprendida entre las instrucciones JMP y LBL • diagrama de función secuencial (SFC) • evento o tarea periódica • rutina de estado de una fase IMPORTANTE Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán Acción de bloque de funciones Ninguna. Acción de texto estructurado Ninguna. el valor ACC no será correcto. el valor ACC no será correcto. La instrucción se ejecuta. la instrucción no efectúa ninguna operación y las salidas no se actualizan. CTD. RTO. TOF. El valor ACC se establece en 0. CTU. primera ejecución de instrucción EnableIn se borra EnableIn se establece Los bits EN. TT y DN se borran. EnableOut se borra. Ninguna. RTOR. El cálculo del temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso de 69 minutos. TONR. El valor ACC se establece en 0. la instrucción se inicializa según lo descrito para el primer escán de la instrucción. El valor ACC se establece en 0. Esto deja el temporizador listo para el siguiente escán. TT y DN y establece la instrucción borra EN. la instrucción borra EN. Cuando EnableIn cambia de borrado a establecido. Si esto sucede. El valor ACC se establece en 0. TT y DN se borran. ACC = cero. TT y DN se borran. CTUD. Durante la ejecución de un temporizador. TOFR. restablecimiento Cuando el parámetro de entrada Reset se establece. Cuando el parámetro de entrada Reset se establece. a. La instrucción se ejecuta. EnableIn siempre se establece. RTO. TONR_01. TOF. CTUD. el parámetro DN se establece y timer_state se establece.Preset := 500. TONR. CTU. la instrucción TONR incrementa el valor ACC en una cantidad equivalente al tiempo transcurrido hasta que el valor ACC llega al valor PRE. Cuando ACC ≥ PRE.DN. TONR_O1. RES) Capítulo 3 Ejemplo: En cada escán que limit_switch1 se establece. Ejemplo de bloque de funciones Publicación 1756-RM003K-ES-P – Julio 2008 119 . timer_state := TONR_01. RTOR.Reset : = reset. TONR(TONR_01). Texto estructurado TONR_01.Instrucciones de temporizador y contador (TON. CTD.TimerEnable := limit_switch1. TOFR. TOF. La opción predeterminada es borrado. PRE DINT Valor prefijado en el temporizador. Salida de temporizador habilitado. Si se establece. Esta instrucción está disponible en lógica de escalera de relés como dos instrucciones separadas: TOF (vea página 108) y RES (vea página 141). la instrucción se ejecuta. Éste es un valor en unidades de 1 ms al que ACC debe llegar antes de que concluya la temporización. Parámetro de salida Tipo de datos EnableOut ACC EN TT BOOL BOOL BOOL BOOL Descripción La instrucción produjo un resultado válido.Capítulo 3 Instrucciones de temporizador y contador (TON. TONR. Tiempo acumulado en milisegundos. CTU. Cuando se establece. Cuando se establece. la instrucción no se ejecuta y las salidas no se actualizan. permite que el temporizador se ejecute y acumule tiempo. TimerEnable BOOL Si se borra. se está ejecutando una operación de temporización. Salida de temporizador temporizando. Válido = 0 hasta el entero positivo máximo Reset BOOL Petición para restablecer el temporizador. TOFR. CTD. La opción predeterminada es borrado. CTUD. Indica que la instrucción de temporizador está habilitada. RES) Temporizador de retardo a la desconexión con restablecimiento (TOFR) La instrucción TOFR es un temporizador no retentivo que acumula tiempo cuando TimerEnable está borrado. La instrucción se ejecuta. RTO. Texto estructurado: Ningún efecto. RTOR. el temporizador se restablece. las instrucciones establecen el bit apropiado en Status y el temporizador no se ejecuta. Operandos: TOFR(TOFR_tag). Texto estructurado Variable TOFR tag Tipo FBD_TIMER Formato estructura Descripción estructura TOFR Operandos de bloque de funciones Operando TOFR tag Tipo FBD_TIMER Formato estructura Descripción estructura TOFR Estructura FBD_TIMER Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Bloque de funciones: Si se borra. La opción predeterminada es establecido. Si no es válido. Publicación 1756-RM003K-ES-P – Julio 2008 120 . RTOR. la instrucción TOFR no comienza a temporizar nuevamente hasta que se Reset se borra.DN) retardo a la desconexión preajuste valor acumulado de temporizador (. Si TimerEnable se borra cuando Reset se establece. CTUD. Por ejemplo. TimerEnable bit de habilitación (EN) bit de temporizador temporizando (TT) bit de temporizador expirado (. Indica cuando el tiempo acumulado es mayor o igual que el valor de preajuste. Un temporizador se ejecuta restando la hora de su último escán de la hora actual: ACC = ACC + (current_time . introduzca 2000 para el valor . El valor de preajuste no es válido. en un temporizador de 2 segundos. TONR.0) BOOL PresetInv (Status. Éste no es un error menor ni mayor del controlador. TOF. CTU.1) BOOL Descripción: La instrucción TOFR acumula tiempo hasta que: • la instrucción TOFR se inhabilita • ACC ≥ PRE La base de tiempo siempre es 1 ms. RES) Capítulo 3 Parámetro de entrada DN Status Tipo de datos BOOL DINT Descripción Salida de temporizador expirado.ACC) 0 el temporizador no llegó al valor PRE 16650 Establezca el parámetro de entrada Reset para restablecer la instrucción. RTO. TOFR. InstructFault (Status.PRE. CTD. Verifique los bits de estado restantes para determinar lo que ocurrió.Instrucciones de temporizador y contador (TON. Estado del bloque de funciones. La instrucción detectó uno de los siguientes errores de ejecución.last_time_scanned) Publicación 1756-RM003K-ES-P – Julio 2008 121 . primera ejecución de instrucción EnableIn se borra EnableIn se establece Los bits EN. Esto deja el temporizador listo para el siguiente escán. el parámetro DN se borra y timer_state2 se establece. el valor ACC no será correcto. la instrucción borra EN. primer escán de instrucción Los bits EN. la instrucción no efectúa ninguna operación y las salidas no se actualizan. la instrucción TOFR incrementa el valor ACC en una cantidad equivalente al tiempo transcurrido hasta que el valor ACC llega al valor PRE. TONR. La instrucción se ejecuta. la instrucción borra EN. Durante la ejecución de un temporizador. TT y DN. el temporizador establece last_time_scanned = current_time. El valor ACC se establece en PRE. De no hacerse. el valor ACC no será correcto. 122 Publicación 1756-RM003K-ES-P – Julio 2008 . EnableOut se establece. TOFR. Tenga presente que esto es diferente a usar una instrucción RES en una instrucción TOF. y establece ACC = PRE. escanéelo dentro de un lapso no mayor de 69 minutos si lo coloca en una: • subrutina • sección de código comprendida entre las instrucciones JMP y LBL • diagrama de función secuencial (SFC) • evento o tarea periódica • rutina de estado de una fase IMPORTANTE Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán Acción de bloque de funciones Ninguna. y establece ACC = PRE. Ninguna. Asegúrese de escanear el temporizador por lo menos cada 69 minutos mientras se ejecuta. Cuando ACC ≥ PRE. CTU. RTOR. RTO. Cuando EnableIn cambia de borrado a establecido. TT y DN se borran. CTD. restablecimiento Cuando el parámetro de entrada Reset se establece. CTUD. Cuando el parámetro de entrada Reset se establece. n. TT y DN se borran. a.Capítulo 3 Instrucciones de temporizador y contador (TON. Si esto sucede. post-escán Ejemplo: En cada escán después de que limit_switch1 se borra. El valor ACC se establece en PRE. EnableOut se borra. la EnableIn siempre se establece. Tenga presente que esto es diferente a usar una instrucción RES en una instrucción TOF. TT y DN se borran. El valor ACC se establece en PRE. La instrucción se ejecuta. instrucción se inicializa según lo descrito para el primer escán de la instrucción. El cálculo del temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso de 69 minutos. Los bits EN. Los bits EN. Ninguna. TT y DN. El valor ACC se establece en PRE. TT y DN se borran. RES) Después de que se actualiza el ACC. El valor last_time_scanned tiene un rango de hasta 69 minutos. Acción de texto estructurado Ninguna. TOF. CTUD. RTO.TimerEnable := limit_switch1. CTU.Preset := 500 TOFR_01. TOF. CTD. RES) Capítulo 3 Texto estructurado TOFR_01.Reset := reset. Bloque de funciones Publicación 1756-RM003K-ES-P – Julio 2008 123 . TOFR. TOFR_O1. RTOR. timer_state2 := TOFR_01.Instrucciones de temporizador y contador (TON. TONR.DN. TOFR(TOFR_01). permite que el temporizador se ejecute y acumule tiempo. CTUD. Cuando se establece. Indica que la instrucción de temporizador está habilitada. Cuando se establece. la instrucción no se ejecuta y las salidas no se actualizan. La opción predeterminada es borrado. el temporizador se restablece. se está ejecutando una operación de temporización. la instrucción establece el bit apropiado en Status y el temporizador no se ejecuta. TOF. PRE DINT Valor prefijado en el temporizador. la instrucción se ejecuta. RES) Temporizador retentivo activado con restablecimiento (RTOR) La instrucción RTOR es un temporizador retentivo que acumula tiempo cuando TimerEnable está establecido. Si se establece. Si no es válido. RTOR. Operandos: RTOR(RTOR_tag). Tiempo acumulado en milisegundos. Éste es un valor expresado en unidades de 1 ms al que ACC debe llegar antes de que concluya la temporización. Descripción La instrucción produjo un resultado válido. Esta instrucción está disponible en lógica de escalera de relés como dos instrucciones separadas: RTO (vea página 112) y RES (vea página 141). Salida de temporizador temporizando. TONR. Ésta es la diferencia entre el comportamiento de este bloque y el del bloque TONR. Este valor queda retenido aun cuando la entrada TimerEnable se borra. CTD. TOFR. Salida de temporizador habilitado. RTO. La instrucción se ejecuta. La opción predeterminada es establecido. Texto estructurado Variable RTOR tag Tipo FBD_TIMER Formato estructura Descripción estructura RTOR Operandos de bloque de funciones Operando RTOR tag Tipo FBD_TIMER Formato estructura Descripción estructura RTOR Estructura FBD_TIMER Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Bloque de funciones: Si se borra. CTU. Publicación 1756-RM003K-ES-P – Julio 2008 Parámetro de salida Tipo de datos EnableOut ACC BOOL DINT EN TT BOOL BOOL 124 . Válido = 0 hasta el entero positivo máximo Reset BOOL Petición para restablecer el temporizador. TimerEnable BOOL Si se establece.Capítulo 3 Instrucciones de temporizador y contador (TON. Texto estructurado: Ningún efecto. Indica cuando el tiempo acumulado es mayor o igual que el valor de preajuste. retiene su valor . TONR. Estado del bloque de funciones. La instrucción detectó uno de los siguientes errores de ejecución. InstructFault (Status. CTUD.ACC. TOF. Verifique los bits de estado restantes para determinar lo que ocurrió. Éste no es un error menor ni mayor del controlador. Cuando la instrucción RTOR se inhabilita. RTOR.last_time_scanned) Publicación 1756-RM003K-ES-P – Julio 2008 125 .ACC) 0 el temporizador no llegó al valor PRE 16651 Establezca el parámetro de entrada Reset para restablecer la instrucción. CTU. RES) Capítulo 3 Parámetro de entrada DN Status Tipo de datos BOOL DINT Descripción Salida de temporizador expirado. RTO. TimerEnable bit de habilitación (EN) Reset bit de temporizador temporizando (TT) bit de temporizador expirado (.0) BOOL PresetInv (Status. CTD. Un temporizador se ejecuta restando la hora de su último escán de la hora actual: ACC = ACC + (current_time . la instrucción RTOR comienza la temporización nuevamente cuando Reset se borra. Por ejemplo. Usted debe borrar el valor .PRE. en un temporizador de 2 segundos. Si TimerEnable se establece cuando Reset se establece.1) BOOL Descripción: La instrucción RTOR acumula tiempo hasta que se inhabilita. El valor de preajuste no es válido. introduzca 2000 para el valor .Instrucciones de temporizador y contador (TON.DN) preajuste valor acumulado de temporizador (.ACC usando la entrada de restablecimiento. TOFR. La base de tiempo siempre es 1 ms. Ninguna. CTUD. El cálculo del temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso de 69 minutos.ACC no se modifica. El valor last_time_scanned tiene un rango de hasta 69 minutos. El valor . Los bits EN. RTO. El valor . primer escán de instrucción Los bits EN. TT y DN y establece ACC = cero. n. el valor ACC no será correcto. La instrucción se ejecuta. EnableOut se borra. TT y DN y establece la instrucción borra EN. RES) Después de que se actualiza el ACC. primera ejecución de instrucción EnableIn se borra EnableIn se establece Los bits EN. Bloque de funciones: Cuando EnableIn cambia de borrado a establecido. EnableIn siempre se establece. TT y DN se borran. TT y DN se borran. RTOR. el temporizador establece last_time_scanned = current_time. restablecimiento Cuando el parámetro de entrada Reset se establece. Cuando el parámetro de entrada Reset se establece. ACC = cero. la instrucción no efectúa ninguna operación y las salidas no se actualizan. TT y DN se borran. Los bits EN. Asegúrese de escanear el temporizador por lo menos cada 69 minutos mientras se ejecuta. CTU. CTD. escanéelo dentro de un lapso no mayor de 69 minutos si lo coloca en una: • subrutina • sección de código comprendida entre las instrucciones JMP y LBL • diagrama de función secuencial (SFC) • evento o tarea periódica • rutina de estado de una fase IMPORTANTE Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán Acción de bloque de funciones Ninguna.ACC no se modifica. la instrucción borra EN. Acción de texto estructurado Ninguna. TONR. Esto deja el temporizador listo para el siguiente escán. La instrucción se ejecuta. la instrucción se inicializa según lo descrito para el primer escán de la instrucción. a.ACC no se modifica.ACC no se modifica. TOF.Capítulo 3 Instrucciones de temporizador y contador (TON. Ninguna. EnableOut se establece. De no hacerse. TT y DN se borran. TOFR. post-escán 126 Publicación 1756-RM003K-ES-P – Julio 2008 . Durante la ejecución de un temporizador. Si esto sucede. el valor ACC no será correcto. El valor . El valor . TOFR. CTU. el parámetro DN se establece y timer_state3 se establece. timer_state3 := RTOR_01. se establece.Instrucciones de temporizador y contador (TON. Bloque de funciones Publicación 1756-RM003K-ES-P – Julio 2008 127 .Reset := reset. Cuando ACC ≥ PRE. RTO. RES) Capítulo 3 Ejemplo: En cada escán que limit_switch1 se establece. CTD. RTOR(RTOR_01). CTUD. la instrucción RTOR incrementa el valor ACC en una cantidad equivalente al tiempo transcurrido hasta que el valor ACC llega al valor PRE. Texto estructurado RTOR_01. RTOR_O1.Preset := 500 RTOR_01.TimerEnable := limit_switch1. TOF. TONR. RTOR.DN. El bit de efectuado indica que . El valor acumulado especifica el número de transiciones que contó la instrucción.147.UN . CTD. por lo que el contador regresa a -2.Capítulo 3 Instrucciones de temporizador y contador (TON. TOFR. 128 Publicación 1756-RM003K-ES-P – Julio 2008 .483.DN. por lo que el contador regresa a 2. CTUD. El valor de preajuste especifica el valor al que debe llegar el valor acumulado para que la instrucción establezca el bit . RES) Conteo progresivo (CTU) La instrucción CTU cuenta progresivamente.PRE.CU . Operandos: Lógica de escalera de relés Operando Counter Preset Acum Tipo COUNTER DINT DINT Formato tag inmediato inmediato Descripción estructura de contador valor superior hasta donde contar número de veces que contó el contador el valor inicial es típicamente 0 Estructura COUNTER Mnemónico .DN . CTU.147.648 y comienza nuevamente el conteo progresivo.483.647 y comienza nuevamente el conteo regresivo.147. RTO. TONR.PRE .647.648.483.ACC Tipo de datos BOOL BOOL BOOL BOOL DINT DINT Descripción El bit de habilitación de conteo progresivo indica que la instrucción CTU está habilitada. vea la página 136.OV .ACC ≥ . Esta instrucción está disponible en texto estructurado y en bloque de funciones como CTUD. El bit de underflow indica que el contador excedió el límite inferior de -2. El bit de overflow indica que el contador excedió el límite superior de 2. RTOR.483.147. TOF. Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Publicación 1756-RM003K-ES-P – Julio 2008 129 . TOFR. Para borrar el valor acumulado. Cuando se habilita y el bit . use una instrucción RES que referencie la estructura de contador o escriba 0 en el valor acumulado.DN.CU se borra. incluso después de que se establece el bit . o cuando se inhabilita. condición de entrada del renglón bit de habilitación de conteo progresivo (. la instrucción CTU retiene su valor .CU se establece.Instrucciones de temporizador y contador (TON. RES) Capítulo 3 Descripción: Cuando se habilita y el bit .ACC. RTOR.ACC) 16636 El valor acumulado continúa incrementándose. CTU. TOF. la instrucción CTU incrementa el contador en uno. CTUD. RTO.DN) preajuste valor acumulado de contador (. CTD. TONR.CU) bit de conteo progresivo efectuado (. OV se borra el bit . TONR.ACC retorna al valor inicial no sí bit .ACC < . La condición de salida de renglón se establece como falsa. CTD.ACC ≥ .OV el bit . RTOR.UN = 1 el bit .PRE el bit .UN = 0 el bit .CU bit .UN = 1 examine el bit .OV = 0 examine el bit .OV se establece examine .CU = 1 el bit .DN se borra el bit . TOFR.UN el bit .ACC + 1 el valor . 130 Publicación 1756-RM003K-ES-P – Julio 2008 .DN se establece la condición de salida de renglón se establece como verdadera fin post-escán La condición de salida de renglón se establece como falsa. CTU.CU = 0 el bit .OV = 1 el bit .Capítulo 3 Instrucciones de temporizador y contador (TON. La condición de salida de renglón se establece como falsa.EN se borra.UN = 0 el bit . CTUD.CU se establece . RTO.DN se borra el bit . condición de entrada de renglón es falsa El bit .UN examine el bit . condición de entrada de renglón es verdadera examine el bit .ACC . TOF.UN se borra el bit . RES) Ejecución: Condición preescán Acción de lógica de escalera de relés El bit .CU se establece para evitar incrementos no válidos durante el primer escán del programa.PRE .ACC = . Publicación 1756-RM003K-ES-P – Julio 2008 131 . el bit . RTO. counter_1 continúa incrementando su conteo y el bit . TONR.DN permanece establecido. Si limit_switch_1 continúa cambiando de inhabilitado a habilitado. TOF. TOFR. CTU. CTUD. la instrucción RES restablece counter_1 (borra el bit de estado y el valor . CTD. Cuando limit_switch_2 se habilita. RES) Capítulo 3 Ejemplo: Después de que limit_switch_1 cambia de inhabilitado a habilitado 10 veces.Instrucciones de temporizador y contador (TON.ACC) y light_1 se apaga.DN se establece y light_1 se enciende. RTOR. RTO.UN . por lo que el contador regresa a 2.147. El bit de underflow indica que el contador excedió el límite inferior de -2. El bit de efectuado indica que . CTD. CTUD.147.OV .483. RTOR.147. El bit de overflow indica que el contador excedió el límite superior de 2. El valor acumulado especifica el número de transiciones que contó la instrucción. CTU. vea la página 136.DN. Operandos: Lógica de escalera de relés Operando Counter Preset Acum Tipo COUNTER DINT DINT Formato tag inmediato inmediato Descripción estructura de contador valor inferior hasta donde contar número de veces que contó el contador el valor inicial es típicamente 0 Estructura COUNTER Mnemónico . por lo que el contador regresa a -2.648 y comienza nuevamente el conteo progresivo.147.Capítulo 3 Instrucciones de temporizador y contador (TON.483. TOFR.ACC Tipo de datos BOOL BOOL BOOL BOOL DINT DINT Descripción El bit de habilitación de conteo regresivo indica que la instrucción CTD está habilitada. TOF. TONR.483.PRE. 132 Publicación 1756-RM003K-ES-P – Julio 2008 . El valor de preajuste especifica el valor al que debe llegar el valor acumulado para que la instrucción establezca el bit .648.DN .483.647 y comienza nuevamente el conteo regresivo.CD . RES) Conteo regresivo (CTD) La instrucción CTD cuenta regresivamente.647.PRE . Esta instrucción está disponible en texto estructurado y en bloque de funciones como CTUD.ACC ≥ . CTD. CTUD. Cuando se habilita y el bit . Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Publicación 1756-RM003K-ES-P – Julio 2008 133 . la instrucción CTD retiene su valor . la instrucción CTD decrementa el contador en uno.DN. TOF. TONR. Cuando se habilita y el bit . TOFR. aun después de que se establece el bit .ACC) preajuste 16637 El valor acumulado continúa decrementándose. Para borrar el valor acumulado.CD) bit de conteo regresivo efectuado (.CD se establece. condición de entrada del renglón bit de habilitación de conteo regresivo (.DN) valor acumulado de contador (.CD se borra. use una instrucción RES que referencie la estructura de contador o escriba 0 en el valor acumulado. RTO.ACC. RTOR. CTU. o cuando se inhabilita. RES) Capítulo 3 Descripción: La instrucción CTD normalmente se usa con una instrucción CTU que referencia la misma estructura de contador.Instrucciones de temporizador y contador (TON. PRE .CD se establece .CD = 0 el bit . CTD.OV = 0 el bit .DN se borra el bit . RTO.UN examine el bit .CD = 1 el bit .OV el bit .OV = 1 el bit . CTUD.CD el bit .ACC = . RES) Ejecución: Condición preescán Acción de lógica de escalera de relés El bit . TONR. TOF.CD se establece para evitar decrementos no válidos durante el primer escán del programa.OV = 0 el bit .ACC < .Capítulo 3 Instrucciones de temporizador y contador (TON. condición de entrada de renglón es verdadera examine el bit . 134 Publicación 1756-RM003K-ES-P – Julio 2008 .OV el bit .CD se borra.UN se establece examine . CTU.UN = 0 examine el bit .OV se borra el bit . La condición de salida de renglón se establece como falsa.ACC .ACC ≥ .UN = 1 el bit . TOFR.OV = 1 examine el bit .DN se borra el bit . RTOR.PRE el bit . condición de entrada de renglón es falsa El bit .ACC retorna al valor inicial no sí el bit . La condición de salida de renglón se establece como falsa.UN se borra el bit .ACC .DN se establece la condición de salida de renglón se establece como verdadera fin post-escán La condición de salida de renglón se establece como falsa.1 el valor . RES) Capítulo 3 Ejemplo: Un transportador lleva partes a una zona de almacenamiento intermedio. TOFR. limit_switch_1 se habilita y counter_1 se incrementa en 1. TOF. RTOR. Publicación 1756-RM003K-ES-P – Julio 2008 135 . CTUD.Instrucciones de temporizador y contador (TON. Si hay 100 partes en la zona de almacenamiento intermedio (counter_1. TONR. Cada vez que sale una parte. RTO. Cada vez que entra una parte. limit_switch_2 se habilita y counter_1 se decrementa en 1.dn se establece). conveyor_a se activa y detiene el transportador para que no lleve más partes hasta que la zona de almacenamiento intermedio tenga espacio para más partes. CTU. CTD. Si se establece. Cuando la entrada cambia de borrado a establecido. La instrucción se ejecuta. Texto estructurado: Ningún efecto. La opción predeterminada es borrado. CTD (ver página 132). La instrucción decrementa en uno el conteo cuando CDEnable cambia de borrado a establecido. 136 Publicación 1756-RM003K-ES-P – Julio 2008 . el acumulador se incrementa en uno. Operandos: CTUD(CTUD_tag). TOF. RTO. TOFR. la instrucción se ejecuta. TONR. la instrucción no se ejecuta y las salidas no se actualizan. RES) Conteo progresivo/ regresivo (CTUD) La instrucción CTUD incrementa en uno el conteo cuando CUEnable cambia de borrado a establecido. La opción predeterminada es establecido. Esta instrucción está disponible en lógica de escalera de relés como tres instrucciones separadas: CTU (ver página 128). CTUD. CTU. y RES (ver página 141). Texto estructurado Variable CTUD tag Tipo FBD_COUNTER Formato estructura Descripción estructura CTUD Bloque de funciones Operando CTUD tag Tipo FBD_COUNTER Formato estructura Descripción estructura CTUD Estructura FBD_COUNTER Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Bloque de funciones: Si se borra. CTD. RTOR.Capítulo 3 Instrucciones de temporizador y contador (TON. CUEnable BOOL Habilita el conteo progresivo. Cuando se establece.647. Parámetro de salida Tipo de datos EnableOut ACC CU CD DN OV BOOL DINT BOOL BOOL BOOL BOOL Descripción La instrucción produjo un resultado válido. CTUD. RTO. Conteo progresivo habilitado. TOF. Reset BOOL Petición para restablecer el temporizador. Valor acumulado.Instrucciones de temporizador y contador (TON. La opción predeterminada es borrado.147. la instrucción CTUD incrementa el contador en uno.483.483. Indica que el contador excedió el límite inferior de −2. Seguidamente el contador regresa a −2. Se establece cuando el valor acumulado es mayor o igual que el valor de preajuste.483. Éste es el valor al cual debe llegar el valor acumulado para que se establezca DN.147. Indica que el contador excedió el límite superior de 2. CTU. Descripción Cuando se habilita y CUEnable se establece. Conteo efectuado. PRE DINT Valor de preajuste del contador. Seguidamente el contador regresa a 2. Cuando la entrada cambia de borrado a establecido. Publicación 1756-RM003K-ES-P – Julio 2008 137 . Ambos parámetros de entrada CUEnable y CDEnable pueden alternarse durante el mismo escán. TONR.647 y comienza nuevamente el conteo regresivo. el acumulador se decrementa en uno. la instrucción CTUD decrementa el contador en uno. el contador se restablece.483. La opción predeterminada es borrado.147.648. Overflow del contador. RES) Capítulo 3 Parámetro de entrada CDEnable Tipo de datos BOOL Descripción Habilita el conteo regresivo. Conteo regresivo habilitado. UN BOOL Underflow del contador.147. Cuando se habilita y CDEnable se establece.648 y comienza nuevamente el conteo regresivo. Válido = cualquier número entero El valor predeterminado es 0. TOFR. CTD. La instrucción ejecuta el conteo progresivo antes del conteo regresivo. RTOR. la instrucción CTUD retiene su valor acumulado.DN) preajuste valor acumulado de contador (ACC) 16636 Conteo regresivo CDEnable bit de habilitación de conteo regresivo (CD) bit de conteo regresivo efectuado (.DN) valor acumulado de contador (ACC) preajuste 16637 Cuando se inhabilita. RTOR. RES) Conteo progresivo CUEnable bit de habilitación de conteo progresivo (CU) bit de conteo progresivo efectuado (. TOFR. Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna 138 Publicación 1756-RM003K-ES-P – Julio 2008 . CTU. TONR. TOF. CTD. RTO. Establezca el parámetro de entrada Reset de la estructura FBD_COUNTER para restablecer la instrucción.Capítulo 3 Instrucciones de temporizador y contador (TON. CTUD. Publicación 1756-RM003K-ES-P – Julio 2008 139 . EnableOut se borra. CUEnablen-1 y CDEnablen-1 se establecen. Ninguna. la instrucción borra CUEnablen-1.Instrucciones de temporizador y contador (TON. CU. RTO. Acción de texto estructurado No se requiere inicialización. Texto estructurado CTUD_01. a.Preset := 500.Reset := Restart. primera ejecución de instrucción EnableIn se borra EnableIn se establece CUEnablen-1 y CDEnablen-1 se establecen. CTU. CDEnablen-1. Cuando ACC ≥ PRE. CTUD. RES) Capítulo 3 Ejecución: Condición preescán Acción de bloque de funciones No se requiere inicialización. CTUD(CTUD_01). CUEnablen-1 y CDEnablen-1 se establecen. TONR. CD. La instrucción establece CUEnablen-1 y CDEnablen-1. CD. DN. CTUD_01. DN. Ninguna. CTUD_O1. counter_state := CTUD_01.CUEnable := limit_switch1. CUEnable se establece por un escán y la instrucción CTUD incrementa el valor ACC en 1. restablecimiento Cuando se establece. el parámetro DN se establece. post-escán Ejemplo: Cuando limit_switch1 cambia de borrado a establecido.DN. TOF. OV y UN y establece ACC = cero. Cuando se establece. la instrucción borra CUEnablen-1. primer escán de instrucción CUEnablen-1 y CDEnablen-1 se establecen. TOFR. En una transición de borrado a establecido de EnableIn: • La instrucción se ejecuta. CTD. OV y UN y establece ACC = cero. • EnableOut se establece. La instrucción establece CUEnablen-1 y CDEnablen-1. La instrucción se ejecuta. EnableIn siempre se establece. n. RTOR. CU. lo cual habilita la instrucción de bloque de funciones después de la instrucción CTUD. la instrucción no efectúa ninguna operación y las salidas no se actualizan. CDEnablen-1. TONR. TOFR. CTUD. TOF. RTOR. CTD.Capítulo 3 Instrucciones de temporizador y contador (TON. RES) Bloque de funciones 140 Publicación 1756-RM003K-ES-P – Julio 2008 . RTO. CTU. Lógica de escalera de relés Operando estructura Tipo TIMER CONTROL COUNTER Formato tag Descripción estructura que se va a restablecer Descripción: Cuando se habilita.TT.POS los bits de estado de control ATENCIÓN Puesto que la instrucción RES borra el valor . CTD. Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Publicación 1756-RM003K-ES-P – Julio 2008 141 . RTO.ACC los bits de estado de control CONTROL el valor . CTU. no use la instrucción RES para restablecer un temporizador TOF. RES) Capítulo 3 Restablecer (RES) Operandos: La instrucción RES restablece una estructura TIMER. CTUD.ACC los bits de estado de control COUNTER el valor .DN y el bit . la instrucción RES borra estos elementos: Cuando se usa una instrucción RES para TIMER La instrucción borra el valor . TOFR.ACC. TOF. TONR. COUNTER o CONTROL.Instrucciones de temporizador y contador (TON. el bit . RTOR. TOFR. TOF.Capítulo 3 Instrucciones de temporizador y contador (TON. TONR. La instrucción RES restablece la estructura especificada. La condición de salida de renglón se establece como verdadera. RES) Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. RTOR. RTO. post-escán La condición de salida de renglón se establece como falsa. CTU. La condición de salida de renglón se establece como falsa. CTUD. 142 Publicación 1756-RM003K-ES-P – Julio 2008 . CTD. IOT) Introducción Las instrucciones de entrada/salida leen o escriben datos desde o hacia el controlador. SSV. GSV.Capítulo 4 Instrucciones de entrada/salida (MSG. Use esta instrucción MSG Disponible en estos lenguajes lógica de escalera de relés texto estructurado Vea la página 144 Si desea enviar datos desde o hacia otro módulo obtener información de estado del controlador GSV lógica de escalera de relés texto estructurado 176 establecer información de estado del controlador • enviar valores de salida a un módulo de E/S o controlador consumidor en un punto específico de su lógica • activar una tarea de evento en otro controlador SSV lógica de escalera de relés texto estructurado 176 IOT lógica de escalera de relés texto estructurado 201 143Publicación 1756-RM003K-ES-P – Julio 2008 143 . o un bloque de datos desde o hacia otro módulo en otra red. ER. GSV. Use una copia de los bits si los verifica en más de un lugar en la lógica. EW y ST de manera asíncrona con el escán de la lógica. Los operandos son iguales a los de la instrucción MSG de lógica de escalera de relés.Capítulo 4 Instrucciones de entrada/salida (MSG. Si lo hace. el controlador puede sufrir un fallo no recuperable. SSV. Estructura MESSAGE Si usted revisa los bits de estado más de una vez El controlador cambia los bits DN. Lógica de escalera de relés Operando Message control Tipo MESSAGE Formato tag Descripción estructura de mensaje Texto estructurado MSG(MessageControl). De lo contrario. Una manera de hacer una copia es usar la palabra FLAGS. ATENCIÓN IMPORTANTE No cambie los siguientes bits de estado de una instrucción MSG: • DN • EN • ER • EW • ST No cambie esos bits por sí mismos ni como parte de la palabra FLAGS. Copie la palabra FLAGS a otro tag y verifique los bits en la copia. El controlador borra el proyecto de su memoria cuando sufre un fallo no recuperable. IOT) Mensaje (MSG) Operandos: La instrucción MSG lee o escribe asíncronamente un bloque de datos en otro módulo de una red. los bits pueden cambiar durante el escán y la lógica no funcionará según lo esperado. 144 Publicación 1756-RM003K-ES-P – Julio 2008 . Las conexiones para instrucciones MSG a través del puerto serie no se guardan en la memoria caché aunque se establezca el bit .FLAGS Tipo de datos INT Descripción El miembro .Instrucciones de entrada/salida (MSG.EN . Por ejemplo.EW .DN .ST. Este bit: 2 4 5 6 7 8 9 Es este miembro: . La longitud efectuada identifica cuántas palabras se transfirieron realmente. . El controlador ignora el cambio y usa el valor del bit almacenado internamente. El controlador restablece el bit .EN_CC. .ER está establecido.ERR_SRC SINT Publicación 1756-RM003K-ES-P – Julio 2008 145 .EN BOOL Se establece el bit de habilitación cuando la condición de entrada de renglón se hace verdadera y permanece establecida hasta que se establece el bit .EW cuando se establece el bit . Importante: No cambie el bit DN. Consulte Seleccione una opción de caché en la página 4-173. Importante: No cambie el bit ER. IOT) Capítulo 4 Mnemónico . 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. Se establece el bit de habilitación/espera cuando el controlador detecta que una solicitud de mensaje ha entrado en la cola.ST BOOL Se establece el bit de arranque cuando el controlador comienza a ejecutar la instrucción MSG.DN y .DN BOOL Se establece el bit de efectuado cuando se transfiere correctamente el último paquete del mensaje.EXERR . El bit . El controlador ignora el cambio y usa los valores de los bits almacenados internamente.ER .EN_CC BOOL BOOL Si se establece manualmente el bit . Usado por el software RSLogix 5000 para mostrar la ruta de error en el cuadro de diálogo Message Configuration .ST . Si la condición de entrada de renglón se hace falsa. Importante: No cambie el bit ST. Importante: No cambie el bit EN.DN o . el bit . El bit de habilitación de caché determina cómo administrar la conexión MSG. La longitud solicitada especifica cuántas palabras la instrucción de mensaje intentará transferir.EN_CC Importante: No cambie los bits EW.ER se borran.ERR . .DN_LEN . Importante: No cambie el bit EW. la palabra de código de error identifica los códigos de error de la instrucción MSG. . SSV.ER y la condición de entrada de renglón es falsa.TO. pero los bits . .DN se restablece la próxima vez que la condición de entrada de renglón cambia de falsa a verdadera. ER.REQ_LEN .EN permanece establecido. no borre toda la palabra FLAGS.ER. El bit . El bit . La palabra de código de error extendida especifica información adicional de algunos códigos de error.ER se restablece la próxima vez que la condición de entrada de renglón cambia de falsa a verdadera.FLAGS proporciona acceso a los miembros de estado (bits) en una palabra de 16 bits. . DN ni ST del miembro FLAGS.TO .EW INT INT INT INT BOOL Si el bit .ER.ST se restablece cuando se establece el bit . el controlador interrumpe el procesamiento del mensaje y establece el bit .TO . GSV.DN o . establezca este miembro en el valor requerido. establezca este miembro en el valor requerido. el LocalIndex proporciona el número de elemento.SourceLink . establezca este miembro en la nueva ruta. Para llegar a un dispositivo y crear automáticamente una porción o toda la nueva cadena. Para cambiar el parámetro Class de un mensaje genérico de CIP. GSV. Si el mensaje: lee datos escribe datos La matriz local es el: Elemento de destino Elemento de origen . el RemoteIndex proporciona el número de elemento.DestinationNode . • Omita las comas [. 0. establezca este miembro en el número de ranura requerido.] Por ejemplo. establezca este miembro en el valor requerido. • Introduzca la ruta en valores decimales.LocalIndex Tipo de datos INT INT INT INT INT DINT DINT Descripción Para cambiar el vínculo de destino de un DH+ o CIP con mensaje de ID de origen. Para cambiar el vínculo de origen de un DH+ o CIP con mensaje de ID de origen.Rack .Instance . IOT) Mnemónico . 1. Use el carácter ASCII A o B.Path STRING Para enviar el mensaje a un controlador diferente.Group . establezca este miembro en el valor requerido. Para cambiar el número de rack en un mensaje de transferencia en bloques. establezca este miembro en el valor requerido. Para cambiar el número de ranura en un mensaje de transferencia en bloques. 42.Slot SINT SINT SINT SINT Para enviar el mensaje a través de un canal diferente del módulo 1756-DHRIO. Para cambiar el número de grupo en un mensaje de transferencia en bloques. .DestinationLink . Para cambiar el número de elemento. 3. para una ruta de 1. 2. introduzca $01$00$02$2A$01$03. SSV. Si el mensaje: lee datos escribe datos La matriz remota es el: Elemento de origen Elemento de destino 146 Publicación 1756-RM003K-ES-P – Julio 2008 . Si el mensaje se envía a través de esta red: E/S remotas universales ControlNet Especifique el número de ranura en: octal decimal (0-15) . establezca este miembro en el valor requerido. Si usted usa un asterisco [*] para eliminar el número de elemento de la matriz local. establezca este miembro en el número de rack requerido (octal). Para cambiar el nodo de destino de un DH+ o CIP con mensaje de ID de origen. haga clic con el botón derecho del mouse en un tag de cadena y seleccione Go to Message Path Editor. Para cambiar el número de elemento. establezca este miembro en el valor requerido. Para cambiar el parámetro Instance de un mensaje genérico de CIP. establezca este miembro en el valor requerido.Capítulo 4 Instrucciones de entrada/salida (MSG.RemoteIndex DINT Si usted usa un asterisco [*] para designar el número de elemento de la matriz remota. Para cambiar el parámetro Attribute de un mensaje genérico de CIP.Channel . establezca este miembro en el número de grupo requerido (octal). establezca este miembro en el valor requerido.Class .Attribute . Este tiempo de espera es para la respuesta proveniente del otro dispositivo acerca del envío de datos. Introduzca el tag o dirección en caracteres ASCII. Consulte el Apéndice B. Publicación 1756-RM003K-ES-P – Julio 2008 147 . • En texto estructurado. • Para cambiar el tiempo de espera. IOT) Capítulo 4 Mnemónico . • El tiempo de espera predeterminado para los mensajes conectados es 30 segundos (7. SSV. • Este tiempo de espera se aplica solamente después de que se hace la conexión.Instrucciones de entrada/salida (MSG. • El tiempo de espera = ConnectionRate x TimeoutMultiplier. Descripción La instrucción MSG transfiere los elementos de datos. . establezca este miembro en el valor requerido.RemoteElement Tipo de datos STRING Descripción Para especificar un tag o dirección diferente en el controlador al cual se envía el mensaje. Si el mensaje es no conectado conectado Entonces El bit ER se activa si el controlador no recibe una respuesta dentro del tiempo UnconnectedTimeout.UnconnnectedTimeout DINT Tiempo de espera para un mensaje no conectado o para hacer una conexión. • El valor predeterminado de TimeoutMultiplier es 0 (que es un factor de multiplicación de 4). • El valor predeterminado de ConnectionRate es 7. cambie la condición de entrada del renglón de borrado a establecido cada vez que deba ejecutarse la instrucción. El bit ER se activa si el controlador no recibe una respuesta para hacer la conexión dentro del tiempo UnconnectedTimeout. Si el mensaje: lee datos escribe datos La matriz remota es el: Elemento de origen Elemento de destino .5 segundos. GSV. Ésta es una instrucción transicional: • En la lógica de escalera de relés.TimeoutMultiplier DINT SINT Tiempo de espera para un mensaje conectado una vez que tiene una conexión. El valor predeterminado es 30 segundos. cambie ConnectionRate y deje TimeoutMultiplier en el valor predeterminado. condicione la instrucción de manera que sólo se ejecute cuando ocurra una transición.ConnectionRate .5 segundos x 4 = 30 segundos). EW conexión con .DN o bit .EN_CC = 0 bit . IOT) El tamaño de cada elemento depende de los tipos de datos que usted especifica y del tipo de comando de mensaje que usa.EN_CC = 1 condición de entrada de renglón bit . SSV. GSV.ST bit . conexión con .EN bit .ER 41382 1 2 3 4 5 6 7 148 Publicación 1756-RM003K-ES-P – Julio 2008 .Capítulo 4 Instrucciones de entrada/salida (MSG. DN o .ST se borra La conexión está cerrada (si .DN o .ER se borra Ejecución: Condición preescán Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa.EW se establece la conexión está abierta* Donde 5 Descripción el mensaje se envía .EN se borra . Acción de texto estructurado Ninguna.EN_CC = 0) 3 mensaje efectuado o con error condición de entrada de renglón es falsa 7 la condición de entrada de renglón se hace falsa y .EN se borra (la condición de entrada de renglón es falsa) 4 condición de entrada de renglón es verdadera . IOT) Capítulo 4 Donde 1 Descripción condición de entrada de renglón es verdadera .Instrucciones de entrada/salida (MSG.ER se estableció previamente .EW se borra 2 el mensaje se envía .DN o . Publicación 1756-RM003K-ES-P – Julio 2008 149 .ER se establece .DN o .ER se establece . GSV.EW se borra 6 mensaje efectuado o con error condición de entrada de renglón todavía es verdadera . SSV.DN o .EW se establece la conexión está abierta* .EN_CC = 0) .ST se establece .EN se establece .ER se establece .ST se borra La conexión está cerrada (si .EN se establece .ST se establece . DN = 1 examine el bit .EN Acción de texto estructurado condición de entrada de renglón es falsa (no se aplica a texto estructurado) bit .ER el bit .EW se establece el bit .ER se establece bit . IOT) Condición Acción de lógica de escalera de relés bit .ER = 0 comando de transferencia en bloques no sí la ruta de acceso del módulo es válida sí no bit .DN = 0 bit .DN bit .ST = 0 bit .DN = 0 el bit .DN sí conexión de módulo en ejecución no bit .EN = 0 examine el bit .ST bit .EN se borra ejecute la petición de mensaje bit .DN = 1 examine el bit . SSV.ER bit .ST = 1 examine el bit . n.ER = 1 examine el bit .EN = 1 examine el bit .Capítulo 4 Instrucciones de entrada/salida (MSG. La condición de salida de renglón se establece como verdadera.EW bit .EW = 1 bit .ER = 1 examine el bit .ER = 0 la condición de salida de renglón se establece como falsa fin condición de entrada de renglón es verdadera La instrucción se ejecuta. 150 Publicación 1756-RM003K-ES-P – Julio 2008 . GSV. a.EW = 0 bit . EW.ER se borran y el bit . a.EN se establece ejecute la petición de mensaje el bit . .ER la ruta de acceso del módulo es válida sí sí conexión de módulo en ejecución no los bits . . La instrucción se ejecuta.DN y .DN y .ST bit .EW = 1 bit .EW = 1 examine el bit .ST = 1 bit .Instrucciones de entrada/salida (MSG. IOT) Capítulo 4 Condición EnableIn se establece Acción de lógica de escalera de relés n.DN bit . Ninguna.EN se establece bit . .EW examine el bit .ER se borran el bit .EW = 0 bit .TO. . .ST.EW = 0 bit .DN = 0 el bit .EN se establece bit .DN = 1 examine el bit . Publicación 1756-RM003K-ES-P – Julio 2008 151 .ST = 0 bit .EN = 1 examine el bit .ER = 0 comando de transferencia en bloques no sí no bit . GSV.ST examine el bit .EW se establece el bit . .ST = 1 examine el bit .ST = 0 los bits .EN bit .EN = 0 bit .ST.ER se establece la condición de salida de renglón se establece como falsa fin post-escán La condición de salida de renglón se establece como falsa. Acción de texto estructurado EnableIn siempre se establece.TO. ejecución de la instrucción bit .EW.ER = 1 examine el bit . SSV.EW bit . clase no compatible. Código de error Descripción (hex) 0001 0002 0003 0004 0005 Fallo de conexión (vea los códigos de error extendidos) Recurso insuficiente Valor no válido Error de sintaxis IOI (vea los códigos de error extendidos) Destino desconocido. IOT) Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Códigos de error MSG Los códigos de error dependen del tipo de instrucción MSG.Capítulo 4 Instrucciones de entrada/salida (MSG. Códigos de error El software RSLogix 5000 no siempre muestra la descripción completa. GSV. SSV. instancia no definida o elemento de estructura no definido (vea los códigos de error extendidos) Espacio de paquete insuficiente Conexión perdida Servicio no compatible Error en segmento de datos o valor de atributo no válido 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 Petición de puente demasiado grande Respuesta de puente demasiado grande Lista de atributos insuficiente Lista de atributos no válida Error de servicio incorporado Se muestra en el software idéntico a la descripción idéntico a la descripción idéntico a la descripción idéntico a la descripción idéntico a la descripción 0006 0007 0008 0009 000A 000B 000C 000D 000E 000F 0010 0011 0012 0013 0014 0015 001A 001B 001C 001D 001E idéntico a la descripción idéntico a la descripción idéntico a la descripción idéntico a la descripción idéntico a la descripción idéntico a la descripción idéntico a la descripción idéntico a la descripción idéntico a la descripción idéntico a la descripción idéntico a la descripción idéntico a la descripción idéntico a la descripción idéntico a la descripción idéntico a la descripción idéntico a la descripción idéntico a la descripción idéntico a la descripción idéntico a la descripción idéntico a la descripción idéntico a la descripción 152 Publicación 1756-RM003K-ES-P – Julio 2008 . GSV. SSV. IOT) Capítulo 4 Código de error Descripción (hex) 001F 0022 0025 0026 0027 0028 0029 00D1 00FB 00FC 00FD 00FE 00FF Fallo relacionado con la conexión (vea los códigos de error extendidos) Respuesta no válida recibida Error de segmento clave Error IOI no válido Atributo inesperado en lista Error DeviceNet – ID de miembro no válido Error DeviceNet – miembro no se puede establecer El módulo no se encuentra en estado de marcha Puerto de mensajes no compatible Tipo de mensaje no compatible Mensaje no inicializado Expiración de mensaje Error general (vea los códigos de error extendidos) Se muestra en el software idéntico a la descripción idéntico a la descripción idéntico a la descripción idéntico a la descripción idéntico a la descripción idéntico a la descripción idéntico a la descripción error desconocido error desconocido error desconocido error desconocido error desconocido error desconocido Publicación 1756-RM003K-ES-P – Julio 2008 153 .Instrucciones de entrada/salida (MSG. ): 0100 0103 0106 0107 0108 0109 0110 0111 0114 0115 0116 0118 011A Descripción Código de error extendido (hex. SSV. IOT) Códigos de error extendidos El software RSLogix 5000 no muestra ningún texto para los códigos de error extendidos.): 0203 0204 0205 0206 0301 0302 0303 0305 0311 0312 0315 0317 Descripción Conexión en uso Transporte no compatible Conflicto de propiedad No se encontró la conexión Tipo de conexión no válido Tamaño de conexión no válido Módulo no configurado EPR no compatible Módulo incorrecto Tipo incorrecto de dispositivo Revisión incorrecta Formato de configuración no válido Aplicación sin conexiones Expiración de conexión Expiración de mensaje no conectado Error de parámetro de envío no conectado Mensaje demasiado grande No hay memoria de búfer Ancho de banda no disponible No hay protectores disponibles Coincidencia de firma Porte no disponible Dirección de vínculo no disponible Tipo de segmento no válido Conexión no programada Estos son los códigos de error extendidos para el código de error 001F. GSV.): 0203 Descripción Expiración de conexión Estos son los códigos de error extendidos para el código de error 0004 y 0005. Código de error extendido (hex. Código de error extendido (hex. Estos son los códigos de error extendidos para el código de error 0001. Código de error extendido (hex.): 0000 0001 Descripción estado extendido fuera de memoria estado extendido fuera de instancias 154 Publicación 1756-RM003K-ES-P – Julio 2008 .Capítulo 4 Instrucciones de entrada/salida (MSG. IOT) Capítulo 4 Estos son los códigos de error extendidos para el código de error 00FF.): 2001 2002 2018 201B 201C 2100 2101 2102 2103 2104 2105 2106 Descripción Código de error extendido (hex. Código de error extendido (hex.Instrucciones de entrada/salida (MSG.): 2107 2108 2109 210A 210B 210E 210F 2110 2111 2112 2113 2114 Descripción IOI excesivo Valor de parámetro incorrecto Rechazo de semáforo Tamaño demasiado pequeño Tamaño no válido Fallo de privilegio Posición no válida de interruptor de llave Contraseña no válida No se emitió contraseña Dirección fuera de rango Dirección y cuántas fuera de rango Datos en uso Tipo no válido o no compatible Controlador en modo de carga o descarga Intento para cambiar el número de dimensiones de registro Nombre de símbolo no válido El símbolo no existe La búsqueda 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 Publicación 1756-RM003K-ES-P – Julio 2008 155 . SSV. GSV. 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 . GSV. desconectado o desactivado Procesador conectado pero en fallo (hardware) Número de estación incorrecto La función solicitada no está disponible El procesador está en el modo de programación El archivo de compatibilidad del procesador no existe El nodo remoto no puede almacenar temporalmente el comando El procesador está descargando.ERR retorna un valor único por cada error PCCC.x y posteriores . • Este cambio permite que el software RSLogix 5000 muestre una descripción significativa para muchos de los errores. La siguiente tabla muestra el cambio en los códigos de error de R9.EXERR R10. . por lo que no es accesible El procesador convirtió la dirección incorrectamente Dirección incompleta Dirección incorrecta Formato de dirección prohibido – no se encontró el símbolo Formato de dirección prohibido – El símbolo tiene 0 o es mayor que el máximo número de caracteres aceptados por el dispositivo El archivo de direcciones no existe en el procesador receptor El archivo de destino es demasiado pequeño para el número de palabras solicitado No puede completarse la solicitud La situación cambió durante la operación con múltiples paquetes 00F0 0009 F009 Los datos o el archivo son demasiado grandes Memoria no disponible Descripción 156 Publicación 1756-RM003K-ES-P – Julio 2008 . proporciona nuevos códigos de error asociados con tipos de mensajes PLC y SLC (mensajes PCCC).ERR) Logix. Anteriormente. el software no daba una descripción de ninguno de los errores asociados con el código de error 00F0. revisión de firmware 10.x y posteriores. IOT) Códigos de error PLC y SLC (. tales como los controladores PLC-5. Códigos de error PLC y SLC (hex) R9.x y posteriores. Como resultado del cambio. SSV.EXERR ya no se requiere para estos errores. el miembro .ERR 1000 2000 3000 4000 5000 6000 7000 8000 9000 B000 F001 F002 F003 F004 F005 F006 F007 F008 .Capítulo 4 Instrucciones de entrada/salida (MSG.x y anteriores hasta R10. • El cambio también hace que los códigos de errores sean más coherentes con los errores devueltos por otros controladores.EXERR Comando o formato prohibido proveniente del procesador local El módulo de comunicación no funciona Nodo remoto ausente. Instrucciones de entrada/salida (MSG.) R9.EXERR El procesador receptor no puede poner en paquetes la información solicitada Error de privilegio.EXERR 000A 000B 000C 000D 000E 000F 0010 0011 0012 0013 0014 R10.ERR F00A F00B F00C F00D F00E F00F F010 F011 F012 F013 F014 . acceso denegado La función solicitada no está disponible La petición es redundante El comando no puede ejecutarse Overflow.ERR 00F0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 .x y posteriores . overflow de histograma Sin acceso El tipo de datos solicitado no coincide con los datos disponibles Parámetros de comando incorrectos Existe referencia de dirección a área eliminada Fallo de ejecución de comando por razón 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 conversión de datos El escáner no está disponible para comunicarse con un adaptador de rack 1771 El adaptador no está disponible para comunicarse con el módulo La respuesta del modulo 1771 no fue válida Etiqueta duplicada Propietario de archivo activo – el archivo está en uso Propietario de programa activo – alguien está descargando o editando en línea El archivo de disco tiene protección contra escritura o no es accesible (fuera de línea solamente) El archivo de disco lo está usando otra aplicación Actualización no realizada (fuera de línea solamente) Descripción Publicación 1756-RM003K-ES-P – Julio 2008 157 .x y anteriores . SSV. IOT) Capítulo 4 Códigos de error PLC y SLC (hex) (cont. GSV. GSV. pero el módulo de transferencia en bloques respondió lo opuesto El escáner solicitó una longitud y el módulo de transferencia en bloques respondió con una longitud diferente El escáner recibió una respuesta del módulo de transferencia en bloques indicando que la petición de escritura falló. 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 comunicación defectuoso El módulo de transferencia en bloques solicitó una longitud diferente a la instrucción de transferencia en bloques asociada La suma de comprobación 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 válida de datos de transferencia en bloques de escritura entre el error desconocido adaptador y el módulo de transferencia en bloques El tamaño de la transferencia en bloques más el tamaño del índice en la tabla de datos de transferencias en bloques era mayor que el tamaño del archivo de tablas de datos de transferencia en bloques error desconocido 158 Publicación 1756-RM003K-ES-P – Julio 2008 . El tamaño de la petición de transferencia en bloques no es coherente con las peticiones de tamaño de transferencia en bloques válidas El tipo de la petición de transferencia en bloques no es coherente con la BT_READ o BT_WRITE esperada El escáner no pudo encontrar una ranura disponible en la tabla de transferencia en bloques para aceptar la petición de transferencia en bloques El escáner recibió una petición para restablecer los canales de E/S remotas mientras que había transferencias en bloques pendientes Las colas para las transferencias en bloques remotas están llenas Los canales de comunicación están configurados para el rack o ranura solicitada Ningún canal de comunicación está configurado para E/S remotas El tiempo de espera de la transferencia en bloques. Código de error Descripción (hex) 00D0 00D1 00D2 00D3 00D6 00EA 00EB 00EC 00ED 00EE 00EF 00F0 00F3 00F5 00F6 00F7 00F8 00F9 00FA 00FB 00FC 00FD El escáner no recibió una respuesta de transferencia en bloques del módulo de transferencia en bloques dentro de los 3. SSV. establecido en la instrucción. Se muestra en el software error desconocido error desconocido error desconocido error desconocido error desconocido El escáner no estaba configurado para comunicarse con el rack que contendría este módulo error desconocido de transferencia en bloques La ranura lógica especificada no está disponible para el tamaño de rack dado Actualmente está en curso una petición de transferencia en bloques y se requiere una respuesta antes de que pueda comenzar otra petición.Capítulo 4 Instrucciones de entrada/salida (MSG.5 segundos siguientes a la petición La suma de comprobación de la respuesta de lectura no coincidió con la suma de comprobación del flujo de datos El escáner solicitó una lectura o una escritura. IOT) Códigos de error de transferencia en bloques Estos son los códigos de error específicos para la transferencia en bloques de Logix5000. use el cuadro de diálogo Message Configuration para especificar los detalles del mensaje.Instrucciones de entrada/salida (MSG. SSV. 42976 Si el dispositivo receptor es un Controlador Logix5000 Módulo 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 Reconfiguración de módulo CIP genérico TypedRead PLC5 TypedWrite PLC5 Lectura de rango de palabras PLC5 Escritura de rango de palabras PLC5 Vea la página 160 161 162 163 Controlador SLC Controlador MicroLogix Módulo 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 Publicación 1756-RM003K-ES-P – Julio 2008 159 . Haga clic aquí para configurar la instrucción MSG Los detalles que usted configura dependen del tipo de mensaje que selecciona. GSV. IOT) Capítulo 4 Especifique los detalles de configuración Después de introducir la instrucción MSG y de especificar la estructura MESSAGE. Un elemento se refiere a un segmento de datos asociados. Use la sintaxis del dispositivo receptor. Seleccione este comando Lectura de tabla de datos CIP Si desea leer datos de otro controlador. IOT) Usted debe especificar esta información de configuración: Para esta propiedad Elemento de origen Especifique • Si selecciona un tipo de mensaje de lectura. Los tipos de Source y Destination deben coincidir. GSV. SSV. el tag timer1 es un elemento que consiste en una estructura de control del temporizador. Los tipos de Source y Destination deben coincidir. Escritura de tabla de datos CIP escribir datos a otro controlador. Por ejemplo. 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. 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. el elemento de destino es la dirección del lugar en el dispositivo receptor donde desea escribir los datos.Capítulo 4 Instrucciones de entrada/salida (MSG. 160 Publicación 1756-RM003K-ES-P – Julio 2008 . • 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. el elemento de origen es la dirección de los datos que desea leer en el dispositivo receptor. • Si selecciona un tipo de mensaje de escritura. • Si selecciona un tipo de mensaje de lectura. Número de elementos El número de elementos que usted lee/escribe depende del tipo de datos que usa. SSV. Cambie al nuevo valor el miembro requerido del tag de configuración del módulo. Durante la reconfiguración: • Los módulos de entrada continúan enviando datos de entrada al controlador. Lógica de escalera de relés Texto estructurado IF reconfigure[5] AND NOT reconfigure[6]THEN Local:4:C. IF NOT change_Halarm.EN THEN MSG(change_Halarm). Seguidamente el mensaje de reconfiguración de módulo envía al módulo el nuevo valor de alarma.Instrucciones de entrada/salida (MSG. Cuando reconfigure[5] se establece.HAlarmLimit := 60. END_IF. • Los módulos de salida continúan controlando sus dispositivos de salida. La instrucción de un impulso impide que el renglón envíe múltiples mensajes al módulo mientras reconfigure[5] está activado. Envíe al módulo un mensaje de reconfiguración de módulo. IOT) Capítulo 4 Reconfigure un módulo de E/S Utilice el mensaje de reconfiguración de módulo para enviar la nueva información de configuración a un módulo de E/S. GSV. END_IF. Un mensaje de reconfiguración de módulo requiere estas propiedades de configuración: En esta propiedad Tipo de mensaje Seleccione Reconfiguración de módulo Ejemplo: Para reconfigurar un módulo de E/S: 1. Publicación 1756-RM003K-ES-P – Julio 2008 161 .Ch0Config. reconfigure[6] := reconfigure[5]. establezca la alarma alta en 60 en el módulo local en la ranura 4. 2. dejar 0 anchura de impulso (centenares de μsegundos. Restablecer diagnósticos enclavados en Tipo de mensaje un módulo de salida digital Tipo de servicio Origen CIP genérico Restablecer diagnósticos enclavados (O) tag_name de tipo DINT Este tag representa una máscara de bit de los puntos en los cuales se restablecen los diagnósticos. 162 Publicación 1756-RM003K-ES-P – Julio 2008 . generalmente 20) retardo de cruce por cero para E/S ControlLogix (centenares de μsegundos. Si desea Realizar una prueba de impulso en un módulo de salida digital En esta propiedad Tipo de mensaje Tipo de servicio Origen Escriba o seleccione CIP genérico Prueba de impulso tag_name de tipo INT [5] Esta matriz contiene: tag_name[0] tag_name[1] tag_name[2] tag_name[3] máscara de bit de puntos a probar (pruebe sólo un punto a la vez) reservado. GSV. generalmente 40) verificar el retardo tag_name[4] Destino Restablecer los fusibles electrónicos en Tipo de mensaje un módulo de salida digital Tipo de servicio Origen dejar en blanco CIP genérico Restablecer fusible electrónico tag_name de tipo DINT Este tag representa una máscara de bit de los puntos en los cuales se restablecen los fusibles Destino Restablecer diagnósticos enclavados en Tipo de mensaje un módulo de entrada digital Tipo de servicio Origen dejar en blanco CIP genérico Restablecer diagnósticos enclavados (I) tag_name de tipo DINT Este tag representa una máscara de bit de los puntos en los cuales se restablecen los diagnósticos.Capítulo 4 Instrucciones de entrada/salida (MSG. IOT) Especifique mensajes genéricos CIP Un mensaje genérico CIP realiza una acción específica en un módulo de E/S. SSV. Instrucciones de entrada/salida (MSG. con punto flotante (coma flotante) o de tipo de cadena y mantener la integridad de los datos. Escribir datos de números enteros de 16 bits. Los datos del elemento de origen se almacenan a partir de la dirección especificada como tag de destino. Escritura de rango de palabras PLC5 Escribir un rango continuo de palabras de 16 bits en la memoria Logix5000. Este comando comienza en la dirección especificada como el elemento de origen y lee secuencialmente el número de palabras de 16 bits solicitado. Vea Tipos de datos para mensajes TypedRead y TypedWrite de PLC5 en la página 164 Leer un rango continuo de palabras de 16 bits en la memoria PLC-5 independientemente del tipo de datos. Los datos del tag de origen se almacenan a partir de la dirección especificada como el elemento de destino en el procesador PLC-5. con punto flotante (coma flotante) o de tipo de cadena y mantener la integridad de los datos. TypedWrite PLC5 Lectura de rango de palabras PLC5 Publicación 1756-RM003K-ES-P – Julio 2008 163 . SSV. Vea Tipos de datos para mensajes TypedRead y TypedWrite de PLC5 en la página 164. GSV. Este comando comienza en la dirección especificada en el tag de origen y lee secuencialmente el número de palabras de 16 bits solicitado. independientemente del tipo de datos a la memoria PLC-5. IOT) Capítulo 4 Si desea Desenclavar la alarma de un módulo de entrada analógico En esta propiedad Tipo de mensaje Tipo de servicio Escriba o seleccione CIP genérico Seleccione la alarma que desea desenclavar: • Desenclavar todas las alarmas (I) • Desenclavar alarma alta analógica (I) • Desenclavar alarma alta alta analógica (I) • Desenclavar alarma baja analógica (I) • Desenclavar alarma baja baja analógica (I) • Desenclavar alarma de régimen (I) Instancia Desenclavar la alarma de un módulo de salida analógico Tipo de mensaje Tipo de servicio Canal de la alarma que desea desenclavar CIP genérico 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 números enteros de 16 bits. GSV. IOT) La siguiente tabla muestra los tipos de datos a usar con mensajes TypedRead de PLC5 y mensajes TypedWrite de PLC5.768 y ≤ 32. 164 Publicación 1756-RM003K-ES-P – Julio 2008 .) S ST INT STRING Los comandos TypedRead y TypedWrite también funcionan con los procesadores SLC 5/03 (OS303 y posteriores). Los comandos de rango de palabras llenan el tag de destino contiguamente. SSV. La estructura y valor de los datos se cambian según el tipo de datos de destino. El ejemplo usa comandos de lectura de un procesador PLC-5 a un controlador Logix5000. 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. procesadores SLC 5/04 (OS402 y posteriores) y procesadores SLC 5/05.767. Los diagramas siguientes muestran la diferencia entre los comandos de tipo (TypedWrite/TypedRead) y de rango de palabras.Capítulo 4 Instrucciones de entrada/salida (MSG. 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. Escritura de transferencia en bloques Seleccione este comando Lectura de transferencia en bloques Para configurar un mensaje de transferencia en bloques. IOT) Capítulo 4 Especifique mensajes SLC Use los tipos de mensajes SLC para comunicarse con los controladores SLC y MicroLogix. Puede especificar de 0 a 64 números enteros. SSV. • Especifique la cantidad de números enteros de 16 bits (INT) que desea enviar o recibir. Especifique 0 para el número de elementos Publicación 1756-RM003K-ES-P – Julio 2008 165 . Si usted desea que el módulo de transferencia en bloques determine cuántos enteros de 16 bits enviar (BTR). La tabla también muestra el tipo de datos Logix5000 correspondiente. controlador envíe 64 enteros (BTW). GSV. escribir datos en un módulo de transferencia en bloques Este tipo de mensaje reemplaza la instrucción BTW. AXIS y MODULE. Si desea leer los datos de un módulo de transferencia en bloques Este tipo de mensaje reemplaza la instrucción BTR. La siguiente tabla muestra los tipos de datos que la instrucción le permite acceder. excepto por las estructuras MESSAGE.Instrucciones de entrada/salida (MSG. 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 módulos de transferencia en bloques mediante una red de E/S remotas universales. siga estas pautas: • Los tags de origen (para BTW) y destino (para BTR) deben ser suficientemente grandes para aceptar los datos solicitados. INT o DINT en el controlador Logix5000. Este comando comienza en la dirección especificada en el tag de origen y lee secuencialmente el número de palabras de 16 bits solicitado. TypedWrite PLC3 escribir números enteros o datos tipo REAL. Este comando comienza en la dirección especificada en el elemento de origen y lee secuencialmente el número de palabras de 16 bits solicitado. IOT) Especifique mensajes PLC-3 Los tipos de mensaje PLC-3 han sido diseñados para los procesadores PLC-3. SSV. Seleccione este comando TypedRead PLC3 Si desea leer números enteros o datos de tipo REAL. Usted puede escribir datos DINT siempre y cuando estén comprendidos dentro de un tipo de datos INT (−32. Este comando también 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. Para enteros. Este comando también escribe datos de tipo REAL del controlador Logix5000 en un archivo de valores con punto flotante (coma flotante) PLC-3. y mantiene la integridad de los datos.768 ≥ ≤ 32.767). y mantiene la integridad de los datos. Los datos del elemento de origen se almacenan a partir de la dirección especificada como tag de destino.Capítulo 4 Instrucciones de entrada/salida (MSG. 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 escribe datos SINT o INT en el archivo de números enteros PLC-3. 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. Los datos del tag de origen se almacenan a partir de la dirección especificada como el elemento de destino en el procesador PLC-3. 166 Publicación 1756-RM003K-ES-P – Julio 2008 . GSV. este comando lee enteros de 16 bits del procesador PLC-3 y los almacena en matrices de datos SINT. Los comandos de rango de palabras llenan el tag de destino contiguamente. Publicación 1756-RM003K-ES-P – Julio 2008 167 . La transferencia de mensaje usa palabras de 16 bits. por lo tanto. GSV. Especifique mensajes PLC-2 Los tipos de mensaje PLC-2 han sido diseñados para los procesadores PLC-2. SSV.Instrucciones de entrada/salida (MSG. 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. 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. El ejemplo usa los comandos de lectura de un procesador PLC-3 a un controlador Logix5000. La estructura y el valor de los datos se cambian según el tipo de datos de destino. 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. asegúrese de que el tag Logix5000 almacena apropiadamente los datos transferidos (generalmente como una matriz INT). IOT) Capítulo 4 Los diagramas siguientes muestran la diferencia entre los comandos TypedWrite/TypedRead y de rango de palabras. Capítulo 4 Instrucciones de entrada/salida (MSG. 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). 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. GSV. Logix5000 → PLC-2 elemento de origen tag de destino 010 array_1[0] 168 Publicación 1756-RM003K-ES-P – Julio 2008 . El destino debe ser un tag de base. No puede usar un tag de alias para el tag de destino. El origen 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). SSV. IOT) Ejemplos de configuración MSG Los ejemplos siguientes muestran tags de origen y destino. 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). Puede usar un tag de alias para el tag de destino (en el controlador Logix5000 de origen). SSV. La misma utiliza ya sea los nombres de la configuración de E/S del controlador. usted especifica estos detalles en la ficha Communication. 1. Use el botón Browse para seleccionar el módulo de comunicación local. Escriba la ruta. Entonces Use el botón Browse para seleccionar el módulo. IOT) Capítulo 4 Especifique los detalles de comunicación Para configurar una instrucción MSG. GSV. o ambos. La configuración de E/S del controlador tiene sólo el módulo de comunicación local. Si La configuración de E/S del controlador tiene el módulo que obtiene el mensaje. 2.Instrucciones de entrada/salida (MSG. Publicación 1756-RM003K-ES-P – Julio 2008 169 . los números que usted escribe. Especifique una ruta Especifique un método de comunicación o una dirección de módulo Seleccione una opción de caché Especifique una ruta La ruta de acceso muestra la ruta que sigue el mensaje para llegar al destino. Escriba el resto de la ruta. La configuración de E/S del controlador no tiene ninguno de los módulos que necesita para el mensaje. Vaya al puerto EtherNet/IP…. Para escribir una ruta. next_address. IOT) Ejemplo La configuración de E/S del controlador tiene el módulo que obtiene el mensaje. Vaya a través del backplane… al módulo de comunicación local en la ranura 1 Vaya al puerto ControlNet…. Vaya al módulo de comunicación local. Vaya a través del backplane… al módulo en la ranura 0.10.Capítulo 4 Instrucciones de entrada/salida (MSG. SSV.10. Haga clic en el botón Browse y seleccione el módulo.10. GSV. next_address. … 170 Publicación 1756-RM003K-ES-P – Julio 2008 . port. use este formato: port. La configuración de E/S del controlador no tiene ninguno de los módulos que necesita para el mensaje. a la dirección de 10. al nodo 4 Vaya a través del backplane… al módulo en la ranura 0. La configuración de E/S del controlador tiene sólo el módulo de comunicación local. tanques) Nombre DNS:Puerto (por ejemplo. 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+ número de ranura del módulo dirección de estación (0-254) número de nodo (1-99 decimal) 8# seguido del número de nodo (1-77 octal) Por ejemplo. escriba 8#37.10) Dirección IP:Puerto (por ejemplo. 10. EtherNet/IP Usted puede especificar un módulo en una red EtherNet/IP usando cualquiera de estos formatos: Dirección IP (por ejemplo. IOT) Capítulo 4 Donde Es Para esta red Tipo 1 2 backplane DF1 (canal 0 serie.Instrucciones de entrada/salida (MSG.10:24) Nombre DNS (por ejemplo.10.10.10. tanques:24) Publicación 1756-RM003K-ES-P – Julio 2008 171 . GSV. para especificar la dirección de nodo octal de 37.10. 10. SSV. GSV. el módulo 1756-CNB) • módulo adaptador remoto (por ejemplo. en octal Seleccione CIP Y especifique no se requieren otras especificaciones Procesador PLC-3 Procesador PLC-2 Vínculo de destino Nodo de destino: Si sólo hay un vínculo DH+ y usted no usó el software RSLinx para configurar el módulo DH/RIO para vínculos remotos. 172 Publicación 1756-RM003K-ES-P – Julio 2008 . el módulo 1771-ACN) • módulo de comunicación local (por ejemplo. SSV. (El nodo de origen en la tabla de encaminamiento es automáticamente el número de ranura del controlador). 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: Vínculo de origen: Canal A o B del módulo 1756-DHRIO que está conectado a la red DH+ La identificación de vínculo asignada al backplane del controlador en la tabla de encaminamiento del módulo 1756-DHRIO. La identificación de vínculo de la red DH+ remota donde reside el dispositivo receptor Dirección de estación del dispositivo receptor. añada los siguientes módulos a la configuración de E/S del controlador: Para transferencias en bloques mediante esta red ControlNet E/S remotas universales Añada estos módulos a la configuración de E/S • módulo de comunicación local (por ejemplo. IOT) Para transferencia en bloques Para mensajes de transferencia en bloques. especifique 0 tanto para el vínculo de origen como para el vínculo de destino. el módulo 1771-ASB) para cada rack o porción de un rack en el chasis • módulo de transferencia en bloques (opcional) Especifique un método de comunicación o una dirección de módulo Use la tabla siguiente para seleccionar un método de comunicación o dirección de módulo para el mensaje. el módulo 1756-DHRIO) • un módulo adaptador remoto (por ejemplo.Capítulo 4 Instrucciones de entrada/salida (MSG. Así se optimiza el tiempo de ejecución. recomendamos que deje no conectados los mensajes genéricos CIP. Para el tema DDE en RSLinx. Módulo de transferencia en bloques mediante una red de E/S remotas universales RIO Canal: Rack Grupo Ranura Módulo de transferencia en bloques mediante una red ControlNet ControlNet Ranura Canal A o B del módulo 1756-DHRIO que está conectado a la red RIO Número de rack (octal) del módulo Número de grupo del módulo Número de ranura donde está el módulo Número de ranura donde está el módulo Seleccione una opción de caché Dependiendo de cómo usted configure una instrucción MSG. SSV. PLC5 o SLC (todos los tipos) CIP CIP con ID de origen DH+ CIP genérico Lectura o escritura de transferencia en bloques (1) Y este método de comunicación Usa una conexión ✓ ✓ su opción (1) ✓ Puede conectar mensajes genéricos CIP. usted tiene la opción de dejar la conexión abierta (en caché) o cerrar la conexión cuando haya acabado de transmitir el mensaje. Este tipo de mensaje Lectura o escritura de datos CIP PLC2. PLC3. GSV. CIP con ID de origen Aplicación en una estación de trabajo que recibe un mensaje no solicitado encaminado por una red Ethernet/IP o ControlNet a través de RSLinx. (Esto permite que la aplicación reciba datos de un controlador) El número de ranura del controlador ControlLogix se usa como nodo de origen. IOT) Capítulo 4 Si el dispositivo de destino es un Seleccione Y especifique Vínculo de origen: Vínculo de destino: Nodo de destino: ID remoto del tema en el software RSLinx ID de vínculo virtual configurado en RSLinx (0-65535) ID de destino (0-77 octal) proporcionado por la aplicación a RSLinx.Instrucciones de entrada/salida (MSG. puede usar una conexión para enviar o recibir datos. use 77. No almacena en caché la conexión Publicación 1756-RM003K-ES-P – Julio 2008 173 . Si una instrucción MSG usa una conexión. La conexión se cierra una vez finalizada la instrucción MSG. Así se libera la conexión para otros usos. Si usted Almacena en caché la conexión Entonces La conexión se mantiene abierta una vez finalizada la instrucción MSG. Pero para la mayoría de las aplicaciones. El abrir una conexión cada vez que se ejecuta el mensaje aumenta el tiempo de ejecución. (es decir. EJEMPLO Comparta una conexión 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 módulo. Almacenar en caché ambos mensajes se cuenta como 1 en la lista de caché.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. 174 Publicación 1756-RM003K-ES-P – Julio 2008 . SSV. Cada instrucción MSG usa 1 conexión.x o posterior hasta 32 conexiones Si varios mensajes van al mismo dispositivo. IOT) El controlador tiene los siguientes límites en el número de conexiones que usted puede poner en caché: Si tiene esta revisión de software y firmware 11. ambos mensajes se cuentan como 1 conexión. es posible que los mensajes puedan compartir una conexión.Capítulo 4 Instrucciones de entrada/salida (MSG. GSV. juntas cuentan como 1 conexión). Si las instrucciones MSG son para diferentes dispositivos el mismo dispositivo están habilitadas simultáneamente NO están habilitadas simultáneamente Y Entonces Cada instrucción MSG usa 1 conexión. Las instrucciones MSG comparten la misma conexión. • Programe un mensaje para comunicarse con varios dispositivos. Almacene en caché la conexión para dichas instrucciones MSG que se ejecutan con más frecuencia. 6. • Habilite los mensajes en grupos. consulte Logix5000 Controllers Common Procedures. consulte Logix5000 Controllers Common Procedures. Para obtener más información. • Para aumentar el número de búferes no conectados. hasta el número máximo permitido por la revisión del controlador. MSG y DINT en todo el proyecto. consulte Logix5000 Controllers Common Procedures.40 búferes no conectados. Si su mensaje es a un dispositivo que usa enteros de 16 bits. El número predeterminado es 10. cree un tag de control. 4. Así se aumenta la eficiencia de su proyecto porque los controladores Logix se ejecutan más eficientemente y usan menos memoria cuando trabajan con enteros de 32 bits (DINT). IOT) Capítulo 4 Pautas Cuando planifique y programe sus instrucciones MSG. use un búfer de INT en el mensaje y DINT en todo el proyecto.Instrucciones de entrada/salida (MSG. Para obtener más información. • Usted puede aumentar el número de búferes no conectados (40 máx. tal como un controlador 3. Para convertir entre INT y DINT. • Programe la lógica para coordinar la ejecución de mensajes. Para cada instrucción MSG. pero continúe siguiendo las pautas 5. publicación 1756-PM001. Mantenga los datos de origen y/o destino al Una instrucción MSG puede acceder sólo a tags que están en la carpeta de tags del alcance del controlador. y éste transfiere enteros (no valores REAL). Si usted habilita más de 16 MSG a la vez. 2.). use el mismo tipo de estrategia de administración. Almacene en caché los MSG conectados que se ejecutan con mayor frecuencia. SSV. se produce un error en la instrucción y no transfiere los datos. • Habilite cada mensaje en secuencia. Detalles Cada instrucción MSG requiere su propio tag de control. El controlador puede tener 10 . • 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. controlador (alcance del controlador). 5. publicación 1756-PM001. use una de estas opciones. Mantenga el número de MSG no conectados y no almacenados en caché en un valor menor que el número de búferes no conectados. publicación 1756-PM001. algunas instrucciones MSG pueden experimentar retardos al ingresar en la cola. Esto optimiza el tiempo de ejecución porque el controlador no tiene que abrir una conexión cada vez que se ejecuta el mensaje. GSV. Para garantizar la ejecución de cada mensaje. consulte Logix5000 Controllers Common Procedures. • Si todos los búferes no conectados se usan cuando una instrucción deja la cola de mensajes. siga estas pautas: Pauta 1. Si desea habilitar más de 16 MSG simultáneamente. Si su MSG es a un dispositivo que usa enteros de 16 bits. use un búfer de INT en el PLC-5® o SLC 500™. Publicación 1756-RM003K-ES-P – Julio 2008 175 . publicación 1756-PM001. 176 Publicación 1756-RM003K-ES-P – Julio 2008 .InstanceName. IOT) Obtener valor del sistema (GSV) y establecer valor del sistema (SSV) Operandos: Las instrucciones GSV/SSV reciben y envían datos de sistema del controlador que se almacenan en los objetos.AttributeName.AttributeName.Source).InstanceName. GSV.Dest). SSV.Capítulo 4 Instrucciones de entrada/salida (MSG. SSV(ClassName. Lógica de escalera de relés Operando Class name Instance name Attribute Name Tipo Formato nombre nombre nombre Descripción nombre del objeto nombre de objeto específico 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. Los operandos son iguales que para las instrucciones GSV y SSV de lógica de escalera de relés. el software muestra sólo los atributos que usted puede establecer (SSV). El controlador almacena datos del sistema en objetos. la instrucción GSV recupera la información especificada y la coloca en el destino. En lugar de ello. Para la instrucción SSV. Por lo tanto. Si el tag es demasiado pequeño. 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 más allá de un miembro hacia otros miembros de un tag. Cuando se habilita. GSV. a diferencia del procesador PLC-5.Instrucciones de entrada/salida (MSG. Para la instrucción GSV. Utilice las instrucciones GSV y SSV con precaución. las instrucciones no escriben ni leen los datos. Cuando se habilita. Cuando se introduce una instrucción GSV o SSV. el atributo MajorFaultRecord del objeto Program necesita un tipo de datos DINT[11]. nombres de objetos y nombres de atributos para cada instrucción. la instrucción GSV escribe el último valor a Member_B. Publicación 1756-RM003K-ES-P – Julio 2008 177 . la instrucción SSV establece el atributo especificado con datos del origen. Por lo tanto. Los cambios en los objetos pueden provocar una operación inesperada del controlador o lesiones al personal. No hay un archivo de estado. SSV. la instrucción GSV se detiene y registra un fallo menor. usted puede obtener valores para todos los atributos disponibles. La sección de objetos GSV/SSV muestra los atributos de cada objeto y sus tipos de datos asociados. Ejemplo 2 My_Tag es demasiado pequeño para el atributo. Ejemplo 1 ATENCIÓN Member_A es demasiado pequeño para el atributo. el software de programación muestra las clases de objetos válidas. registran un fallo menor. IOT) Capítulo 4 Descripción: Las instrucciones GSV/SSV reciben y envían datos de sistema del controlador que se almacenan en objetos. Por ejemplo. Capítulo 4 Instrucciones de entrada/salida (MSG. a. n. EnableIn se establece n. EnableIn siempre se establece. La condición de salida de renglón se establece como Ninguna. a. falsa. La instrucción se ejecuta. SSV. La instrucción se ejecuta. IOT) Indicadores de estado aritmético: no afectados Condiciones de fallo: Ocurrirá un fallo menor si dirección de objeto no válida se especificó un objeto que no es compatible con GSV/SSV atributo no válido no se proporcionó suficiente información para una instrucción SSV el destino GSV no es suficientemente grande para retener los datos solicitados Tipo de fallo 4 4 4 4 4 Código de fallo 5 6 6 6 7 Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés Acción de texto estructurado La condición de salida de renglón se establece como Ninguna falsa. 178 Publicación 1756-RM003K-ES-P – Julio 2008 . n. GSV. la instrucción se ejecuta post-escán Obtenga o establezca el valor especificado. a. La condición de salida de renglón se establece como falsa. Obtenga o establezca el valor especificado. La condición de salida de renglón se establece como verdadera. usted especifica el objeto y su atributo al cual desea tener acceso. Por ejemplo. Para la instrucción GSV. publicación 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 Publicación 1756-RM003K-ES-P – Julio 2008 179 . por lo que también puede ser necesario especificar el nombre del objeto. puede haber varias tareas en su aplicación. SSV. ATENCIÓN Se puede obtener acceso a los siguientes objetos: Para obtener información acerca de este objeto AXIS Vea esta página o publicación ControlLogix Motion Module Setup and Configuration Manual. Cada tarea tiene su propio objeto TASK al cual usted accede mediante el nombre de la tarea. IOT) Capítulo 4 Objetos GSV/SSV Cuando introduce una instrucción GSV/SSV. En ciertos casos. Por ejemplo. si el atributo está especificado como un SINT y el destino es un DINT. GSV. sólo el tamaño especificado de datos se copia al destino. existirá más de una instancia del mismo tipo de objeto. dejando los 24 bits sin ningún cambio. sólo los 8 bits inferiores del destino DINT se actualizan.Instrucciones de entrada/salida (MSG. ControllerLogAutoWrite BOOL MSG Indicador usado para determinar si la escritura automática del registro del controlador al medio físico extraíble está habilitada. El número se restablecerá si la RAM entra en un mal estado. 1 = forzados incluidos (todo además de los forzados). También puede configurarse para incluir entradas de registro que se originan a partir de forzados. El número no tiene como límite el mayor DINT. Este valor no puede cambiarse cuando el interruptor de llave del controlador se encuentra en la posición de marcha. ExecutionCountConfigureM DINT ask MSG Matriz de bits usada para determinar qué hará que se incremente el conteo de modificación de ejecución. 0 = predeterminado (todo excepto los forzados). SSV. Número de entradas de registro del controlador desde la última actualización de firmware. Descripción El porcentaje de la CPU disponible que se asigna a las comunicaciones. GSV. El número tiene como límite el DINT más alto. y puede ocurrir un salto entre los valores extremos (rollover). 1 = el registro del controlador tratará de escribir al medio físico extraíble cuando el registro esté al 80% de su capacidad. Atributo TimeSlice Tipo de datos INT Instrucción GSV SSV Los valores válidos son 10-90. 0 = la escritura automática está inhabilitada (fallo). una edición en línea o un cambio del segmento de tiempo del controlador. IOT) Acceso al objeto CONTROLLER El objeto CONTROLLER proporciona información de estado acerca de la ejecución de un controlador. ControllerLogTotalEntryCou nt DINT SSV GSV El número se restablecerá si la RAM entra en un mal estado. Rango de 0 al número máximo de entradas. 180 Publicación 1756-RM003K-ES-P – Julio 2008 . ControllerLogExecutionMod DINT ificationCount SSV GSV Número de entradas de registro del controlador que se originó a partir de un cambio de propiedades de programa/tarea. ControllerLogUnsavedEntry Count DINT GSV Número de entradas en el registro del controlador que todavía tienen que almacenarse en el medio físico extraíble.Capítulo 4 Instrucciones de entrada/salida (MSG. Atributo DeviceName Tipo de datos SINT[33] Instrucción GSV Descripción La cadena ASCII que identifica el número de catálogo del controlador y la tarjeta de memoria. El número de serie se asigna cuando se construye el dispositivo.Instrucciones de entrada/salida (MSG. El byte inferior contiene la revisión mayor. GSV. Publicación 1756-RM003K-ES-P – Julio 2008 181 . IOT) Capítulo 4 Acceso al objeto CONTROLLERDEVICE El objeto CONTROLLERDEVICE identifica el hardware físico del controlador. SSV. La visualización debe ser hexadecimal. El primer byte contiene un conteo del número de caracteres ASCII retornados en la cadena de matriz. SerialNumber DINT GSV Número de serie del dispositivo. Controlador Logix CompactLogix5320 CompactLogix5330 CompactLogix5335E ControlLogix5550 ControlLogix5553 ControlLogix5555 ControlLogix5561 ControlLogix5562 ControlLogix5563 DriveLogix5720 FlexLogix5433 FlexLogix5434 SoftLogix5860 ProductRev INT GSV Código de producto 43 44 65 3 50 51 54 55 56 48 41 42 15 Identifica la revisión del producto actual. ProductCode INT GSV Identifica el tipo de controlador. el byte superior contiene la revisión menor. Allen-Bradley = 0001 182 Publicación 1756-RM003K-ES-P – Julio 2008 . GSV. Controlador = 14 Vendor INT GSV Identifica el suministrador del dispositivo.Capítulo 4 Instrucciones de entrada/salida (MSG. SSV. IOT) Atributo Status Tipo de datos INT Instrucción GSV Descripción Bits que identifican el estado: Los bits 3-0 están reservados Bits de estado de dispositivo Bits 7-4: 0000 0001 0010 0011 0100 0101 0110 0111 Significado: reservado actualización 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 específicos 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 depuración si el controlador está en el modo de marcha Identifica el dispositivo como controlador. Este bit siempre es 0 en los nodos dependientes de la hora. El ajuste representa un aumento en rampa hasta el valor solicitado o un establecimiento inmediato en el valor solicitado. DINT[1] contiene los 32 bits superiores. 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 actualización 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 actúa en un modo de relevo de tiempo se detectó un maestro duplicado: se ha detectado un maestro de hora duplicado en la red local. El método de sincronización por puntos para la red específica manipula estos bits. Atributo CurrentStatus Tipo de datos INT Instrucción GSV Descripción El estado actual de la hora coordinada del sistema. 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 1 2 3 4 5 6 7 8-9 10-15 CurrentValue DINT[2] GSV Valor actual del temporizador. 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. SSV. según se reporte en el atributo CurrentStatus. DINT[0] contiene los 32 bits inferiores. Publicación 1756-RM003K-ES-P – Julio 2008 183 . La fuente del temporizador se ajusta para coincidir con el valor suministrado en los servicios de actualización y de la sincronización de red de comunicación local. GSV.Instrucciones de entrada/salida (MSG. IOT) Capítulo 4 Acceso al objeto CST El objeto CST (hora coordinada del sistema) proporciona la hora coordinada del sistema para los dispositivos en un chasis. Capítulo 4 Instrucciones de entrada/salida (MSG. SSV. Atributo ACKTimeout Tipo de datos DINT Instrucción GSV Descripción La cantidad de tiempo que se debe esperar por la confirmación de una transmisión de mensaje (punto a punto y maestro solamente). Valor: 0 no cero Significado: supresión de EOT inhabilitada supresión de EOT habilitada 184 Publicación 1756-RM003K-ES-P – Julio 2008 . 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 diagnóstico para el driver de comunicación DF1. IOT) Acceso al objeto DF1 El objeto DF1 proporciona una interface al driver de comunicación que se puede configurar para el puerto serie. Valor: 0 no cero Significado: detección de mensajes duplicados inhabilitada detección de mensajes duplicados inhabilitada EmbeddedResponseEnable SINT GSV Habilita la funcionalidad de respuesta incorporada (punto a punto solamente). EOTSuppression SINT GSV Habilita la supresión de transmisiones de EOT como respuesta a los paquetes de encuesta (esclavo solamente). Retardo en conteos de períodos de 20 ms. El valor predeterminado es 50 (1 segundo).767. El ajuste predeterminado es 3. GSV. DF1 esclavo firma (0x0042) bits de módem 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 módem perdido no se usa no se usa no se usa no se usa no se usa maestro firma (0x0044) bits de módem 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 módem perdido máximo de tiempo de escán prioritario último tiempo de escán prioritario máximo de tiempo de escán normal último tiempo de escán normal no se usa DF1 punto a punto firma (0x0043) bits de módem 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 módem perdido no se usa no se usa no se usa no se usa ENQ enviados SINT GSV Habilita la detección de mensajes duplicados. Los valores válidos son 0-127. El valor válido es 0-32. Valor: 0 1 Significado: se inicia solamente después de que se recibe uno (opción predeterminada) habilitado incondicionalmente ENQTransmitLimit SINT GSV El número de consultas (ENQ) que se envían después del tiempo de espera de ACK (punto a punto solamente). Retardo en conteos de períodos de 20 ms. transferencia de varios mensajes por escán de nodo La configuración predeterminada es 1. Retardo en conteos de períodos de 20 ms.Instrucciones de entrada/salida (MSG. SSV. La configuración predeterminada es 3000 períodos (1 minuto). Valores válidos de 0-65. El valor predeterminado es 0.535. pero permite a los esclavos iniciar mensajes (predeterminado) estándar. GSV. Valores válidos de 0-254. NAKReceiveLimit SINT GSV El número de NAK recibidos como respuesta a un mensaje antes de detener la transmisión (comunicación punto a punto solamente). Los valores válidos son 0-127. El valor predeterminado es 0. no permite a los esclavos iniciar mensajes basado en mensajes. StationAddress INT GSV Dirección de estación actual del puerto serie. IOT) Capítulo 4 Atributo ErrorDetection Tipo de datos SINT Instrucción GSV Descripción Especifica el esquema de detección de errores. El valor predeterminado es 3. La configuración predeterminada es 5 períodos (100 ms). NormalPollGroupSize INT GSV El número de estaciones que se encuestan en la matriz de nodos de encuesta normal después de encuestarse todas las estaciones en la matriz de nodos de encuesta prioritaria (maestro solamente). 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). Valor: 0 1 2 3 Significado: basado en mensajes. ReplyMessageWait DINT GSV El tiempo (actuando como maestro) que se debe esperar después de recibirse un ACK antes de encuestarse el esclavo en busca de una respuesta (maestro solamente). Valores válidos de 0-32. transferencia de un solo mensaje por escán de nodo estándar. Publicación 1756-RM003K-ES-P – Julio 2008 185 . Valor: 0 1 Significado: entre encuestas de estación en secuencia de encuesta (en lugar del número de estación del maestro) El valor predeterminado es 0. Los valores válidos son 0-255. Valor: 0 1 Significado: BCC (predeterminado) CRC MasterMessageTransmit SINT GSV Valor actual de la transmisión de mensaje del maestro (maestro solamente).767. PollingMode SINT GSV Modo de encuesta actual (maestro solamente). usando una instrucción SSV por cada atributo pendiente. Usted puede establecer tantos atributos pendientes como desee. Valor pendiente para el atributo NAKReceiveLimit. Configure la instrucción MSG como: Ficha MSG Configuration Configuración Campo Message Type Service Code Tipo de objeto Object ID Object Attribute Source Number of Elements Destination Comunicación Path Valor CIP genérico 0d hex a2 1 dejar en blanco dejar en blanco 0 dejar en blanco ruta de comunicación consigo mismo (1.Capítulo 4 Instrucciones de entrada/salida (MSG. Valor pendiente para el atributo StationAddress.s donde s = número de ranura del controlador) 186 Publicación 1756-RM003K-ES-P – Julio 2008 . Valor pendiente para el atributo ReplyMessageWait. Valor pendiente para el atributo ErrorDetection. Use una instrucción MSG para aplicar el valor. Use una instrucción SSV para establecer el valor del atributo pendiente. IOT) Atributo TransmitRetries Tipo de datos SINT Instrucción GSV Descripción El número de veces que se puede volver a enviar un mensaje sin obtenerse una confirmación (maestro y esclavo solamente). Valor pendiente para el atributo EOTSuppression. Valor pendiente para el atributo SlavePollTimeout. Valor pendiente para el atributo PollingMode. El valor predeterminado es 3. La instrucción MSG aplica cada atributo pendiente establecido. Valor pendiente para el atributo ENQTransmitLimit. Valor pendiente para el atributo DuplicateDetection. Para aplicar los valores en cualquiera de los atributos DF1 pendientes: 1. SSV. Valor pendiente para el atributo NormalPollGroupSize. Valor pendiente para el atributo MasterMessageTransmit. Valor pendiente para el atributo TransmitRetries. Valores válidos de 0-127. 2. Valor pendiente para el atributo EmbeddedResponse. GSV. 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. SSV. Atributo MajorEvents Tipo de datos INT Instrucción GSV SSV MinorEvents INT GSV SSV MajorFaultBits DINT GSV SSV Los bits individuales indican la razón del fallo mayor actual. GSV. Bit: 4 6 9 10 Significado: ejecución de instrucción (programa) temporizador de control (watchdog) puerto serie batería Publicación 1756-RM003K-ES-P – Julio 2008 187 . MinorFaultBits DINT GSV SSV Los bits individuales indican la razón del fallo menor actual. Descripción Cuántos fallos mayores han ocurrido desde la última vez que se restableció este contador.Instrucciones de entrada/salida (MSG. IOT) Capítulo 4 Acceso al objeto FAULTLOG El objeto FAULTLOG proporciona información de fallo acerca del controlador. Bit: 1 3 4 5 6 7 8 11 Significado: corte de energía E/S ejecución de instrucción (programa) administrador de fallos temporizador de control (watchdog) pila cambio de modo control de movimiento Cuántos fallos menores han ocurrido desde la última vez que se restableció este contador. Capítulo 4 Instrucciones de entrada/salida (MSG. 2. Valor: 1 2 Significado: backplane puerto serie TimeoutMultiplier SINT GSV SSV Determina cuándo una conexión se debe considerar como que ha sobrepasado el tiempo de espera y se ha cerrado. Use una instrucción SSV para establecer el atributo MessageType nuevamente al valor original que usted obtuvo en el paso 1. SSV. Valor: 0 Significado: no inicializado Descripción Datos para configurar la ruta de conexión. Especifique el nombre del tag de mensaje para determinar qué objeto MESSAGE desea. Atributo ConnectionPath Tipo de datos SINT[130] Instrucción GSV SSV ConnectionRate DINT GSV SSV MessageType SINT GSV SSV Port SINT GSV SSV Especifica el tipo de mensaje. en microsegundos. para todos los mensajes no conectados. La opción predeterminada es 30.000 microsegundos (30 segundos). Use una instrucción SSV para establecer el atributo MESSAGE que desea cambiar. El objeto MESSAGE proporciona una interface para configurar y activar las comunicaciones entre dispositivos similares. 4. Indica el puerto por el que se debe enviar el mensaje. Use una instrucción SSV para establecer MessageType en 0. IOT) Acceso al objeto MESSAGE Usted puede acceder al objeto MESSAGE a través de las instrucciones GSV/SSV. Use una instrucción GSV para obtener el atributo MessageType y guárdelo en un tag. 188 Publicación 1756-RM003K-ES-P – Julio 2008 . 3. Régimen de paquetes solicitado de la conexión. Siga los pasos que aparecen a continuación para cambiar un atributo MESSAGE: 1. Este objeto reemplaza el tipo de datos MG del procesador PLC-5.000. Los dos primeros bytes (byte inferior y byte superior) representan la longitud en bytes de la ruta de conexión. GSV. Valor: 0 1 2 Significado: la conexión sobrepasará el tiempo de espera en un lapso igual a 4 veces el régimen de actualización (predeterminado) la conexión sobrepasará el tiempo de espera en un lapso igual a 8 veces el régimen de actualización la conexión sobrepasará el tiempo de espera en un lapso igual a 16 veces el régimen de actualización UnconnectedTimeout DINT GSV SSV El tiempo de espera. IOT) Capítulo 4 Ejemplo: El ejemplo siguiente cambia el atributo ConnectionPath de modo que el mensaje se envíe a un controlador diferente. tag de matriz que almacena la nueva ruta de conexión para el mensaje msg_1 msg_1_type tag_a msg_1_path Lógica de escalera de relés 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 1 msg_1. Esto hace que se envíe el mensaje a un controlador diferente.ConnectionPath.EN / MSG MSG Tipo – Escritura de tabla de Write datos CIP Type . END_IF. SSV.Instrucciones de entrada/salida (MSG. establece la ruta del mensaje msg_1 en el valor de msg_1_path.msg_1_path[0]).. SSV(MESSAGE.msg_1.tag_a). GSV.msg_1_type)..msg_1_type).msg_1. SSV(MESSAGE.MessageType. Donde Es mensaje cuyo atributo usted desea cambiar tag que almacena el valor del atributo MessageType tag que almacena un 0.EN THEN MSG(msg_1). IF NOT msg_1. Message Control msg_1 EN EN DN DN ER ER Texto estructurado IF msg_path THEN GSV(MESSAGE.CIP Data Table Message Control msg_1 . END_IF.MessageType.EN msg_1.msg_1. Cuando msg_path está activado. Publicación 1756-RM003K-ES-P – Julio 2008 189 .MessageType.msg_1. SSV(MESSAGE. los atributos FaultCode y FaultInfo son válidos hasta que se corrige la condición de fallo. 0=no) no se usa 190 Publicación 1756-RM003K-ES-P – Julio 2008 . Solamente los bits 12-15 son válidos. Conectándose: el objeto MODULE está iniciando las conexiones al módulo. realice una prueba para determinar si hay un estado de marcha (16#4000). Los 12 bits inferiores se deben enmascarar cuando se realiza una operación de comparación.Capítulo 4 Instrucciones de entrada/salida (MSG. GSV. Desactivándose: el objeto MODULE está en proceso de desactivar todas las conexiones al módulo. Con fallo: cualquiera de las conexiones del objeto MODULE al módulo asociado entran en fallo. Valor: 16#0000 16#1000 Significado: Reserva: el controlador se está encendiendo. No se debe usar este valor para determinar si el módulo ha entrado en fallo puesto que el objeto MODULE sale periódicamente de este estado cuando intenta volver a conectarse al módulo. establezca el operando Object Name de la instrucción GSV/SSV en el nombre del módulo. Bit: 0 1 2-15 Significado: forzados instalados (1=sí. 0=no) forzados habilitados (1=sí. Para seleccionar un objeto MODULE determinado. Atributo EntryStatus Tipo de datos INT Instrucción GSV Descripción Especifica el estado actual de la entrada de mapa especificada. Inhibido: el objeto MODULE se inhibe (el bit de inhibición está establecido en el atributo de modo). Funcionando: todas las conexiones al módulo han sido establecidas y los datos se transfieren correctamente. Proporciona información específica acerca del código de fallo del objeto MODULE. En lugar de ello. Verifique si hay un FaultCode diferente de 0 para determinar si un módulo ha entrado en fallo. IOT) Acceso al objeto MODULE El objeto MODULE proporciona información de estado acerca de un módulo. 16#2000 16#3000 16#4000 16#5000 16#6000 16#7000 FaultCode FaultInfo ForceStatus INT DINT INT GSV GSV GSV Un número que identifica un fallo del módulo. si ocurre. En espera: no funciona el objeto MODULE primario del cual depende este objeto MODULE. SSV. El módulo especificado deberá estar presente en la sección I/O Configuration del organizador del controlador y deberá tener un nombre de dispositivo. Una vez que han entrado en fallo. Validando: el objeto MODULE está verificando la integridad del objeto MODULE antes de establecer las conexiones al módulo. Especifica el estado de los forzados. GSV. 1 2 3 Nota: No introduzca un nombre de objeto con este atributo puesto que el atributo se aplica a toda la colección de módulos. hace que el objeto MODULE entre en el estado inhibido después de desactivar todas las conexiones al módulo. 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. SSV. Mode INT GSV SSV Especifica el modo actual del objeto MODULE.Instrucciones de entrada/salida (MSG. Atributo Instance Tipo de datos DINT Instrucción GSV Descripción Proporciona el número de instancia de este objeto MOTION_GROUP. Especifique el nombre de tag del grupo de control de movimiento para determinar el objeto MOTIONGROUP deseado. Bit: 0 Significado: Si se establece. Verde fijo: Todos los objetos Module están en ejecución. Especifica el estado actual del indicador LED de E/S en la parte frontal del controlador. Publicación 1756-RM003K-ES-P – Julio 2008 191 . Si se establece. 2 Acceso al objeto MOTIONGROUP El objeto MOTIONGROUP proporciona información de estado acerca de un grupo de ejes para el módulo servo. Valor: 0 Significado: LED apagado: No hay objetos MODULE configurados para el controlador (no hay módulos en la sección I/O Configuration del organizador del controlador). IOT) Capítulo 4 Atributo Instance LEDStatus Tipo de datos DINT INT Instrucción GSV GSV Descripción Proporciona el número de instancia de este objeto MODULE. Verde parpadeante: Por lo menos uno de los objetos MODULE no está en ejecución. Rojo parpadeante: Ninguno de los objetos MODULE está en ejecución. Valor: 0 1 Significado: ejecución habilitada ejecución inhabilitada Instance LastScanTime DINT DINT GSV GSV SSV Proporciona el número de instancia de este objeto PROGRAM. E/S. Registra los fallos mayores para este programa.Capítulo 4 Instrucciones de entrada/salida (MSG. El tiempo se representa en microsegundos. etc. Especifique el nombre del programa para determinar el objeto PROGRAM deseado. IOT) Acceso al objeto PROGRAM El objeto PROGRAM proporciona información de estado acerca de un programa.) código único para el fallo (depende del tipo de fallo) información específica del fallo (depende del código y tipo de fallo) El tiempo de ejecución máximo registrado para este programa. E/S. SSV. El tiempo necesario para que se ejecutara este programa la última vez que se ejecutó. Registra los fallos menores para este programa Recomendamos que usted cree una estructura definida por el usuario para simplificar el acceso al atributo MinorFaultRecord: Descripción: 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. Atributo DisableFlag Tipo de datos SINT Instrucción GSV SSV Descripción Controla la ejecución de este programa. etc.) código único para el fallo (depende del tipo de fallo) información específica del fallo (depende del código 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 Publicación 1756-RM003K-ES-P – Julio 2008 . El tiempo se representa en microsegundos. GSV. Recomendamos que usted cree una estructura definida por el usuario para simplificar el acceso al atributo MajorFaultRecord: Descripción: 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. Atributo BaudRate Tipo de datos DINT Instrucción GSV Descripción Especifica la velocidad en baudios. IOT) Capítulo 4 Acceso al objeto ROUTINE El objeto ROUTINE proporciona información de estado acerca de una rutina. Publicación 1756-RM003K-ES-P – Julio 2008 193 . Los valores válidos son 0-65. 2400. RTSSendDelay INT GSV La cantidad de tiempo necesario para retardar la transmisión del primer carácter de un mensaje después de activar la línea RTS. GSV. Especifique el nombre de la rutina para determinar el objeto ROUTINE deseado. 9600 y 19200 (predeterminado). Valor pendiente para el atributo Parity. StopBits SINT GSV Especifica el número de bits de fin.767. El valor predeterminado es 0 ms. DataBits SINT GSV Especifica el número de bits de datos por carácter. 4800. Acceso al objeto SERIALPORT El objeto SERIALPORT proporciona una interface al puerto de comunicación serie. Retardo en conteos de períodos de 20 ms. Valor: 1 2 Significado: 1 bit de fin (opción predeterminada) 2 bits de fin (ASCII solamente) PendingBaudRate PendingDataBits PendingParity DINT SINT SINT SSV SSV SSV Valor pendiente para el atributo BaudRate.Instrucciones de entrada/salida (MSG. 600. Valor: 7 8 Parity SINT GSV Significado: 7 bits de datos (ASCII solamente) 8 bits de datos (opción predeterminada) Especifica la paridad. Valor pendiente para el atributo DataBits. El valor predeterminado es 0 ms. 1200. 300.767. Retardo en conteos de períodos de 20 ms. Los valores válidos son 110. El valor válido es 0-32. SSV. Atributo Instance Tipo de datos DINT Instrucción GSV Descripción Proporciona el número de instancia de este objeto ROUTINE. El valor válido es 0-32. 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 desconexión de la línea RTS después de la transmisión del último carácter.535. La instrucción MSG aplica cada atributo pendiente establecido. GSV. 2. Valor pendiente para el atributo RTSSendDelay. Usted puede establecer tantos atributos pendientes como desee. IOT) Atributo PendingRTSOffDelay PendingRTSSendDelay PendingStopBits Tipo de datos INT INT SINT Instrucción SSV SSV SSV Descripción Valor pendiente para el atributo RTSOffDelay. 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 genérico 0d hex 6f hex 1 dejar en blanco dejar en blanco 0 dejar en blanco ruta de comunicación consigo mismo (1. SSV.s donde s = número de ranura del controlador) 194 Publicación 1756-RM003K-ES-P – Julio 2008 . Use una instrucción MSG para aplicar el valor. Use una instrucción SSV para establecer el valor para el atributo pendiente. Para aplicar los valores para cualquiera de los atributos SERIALPORT pendientes: 1. Valor pendiente para el atributo StopBits. usando una instrucción SSV para cada atributo pendiente.Capítulo 4 Instrucciones de entrada/salida (MSG. El intervalo de tiempo máximo entre las ejecuciones sucesivas de la tarea. El intervalo de tiempo mínimo entre las ejecuciones sucesivas de la tarea. El tiempo se representa en microsegundos. Un valor de 0 indica 1 o menos ejecuciones de la tarea. Publicación 1756-RM003K-ES-P – Julio 2008 195 . GSV. MaxInterval DINT[2] GSV SSV MaxScanTime DINT GSV SSV El tiempo de ejecución máximo registrado para este programa. MinInterval DINT[2] GSV SSV OverlapCount DINT GSV SSV El número de veces que se activó la tarea mientras se estaba ejecutando. 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 número de instancia de este objeto TASK. el controlador igualmente preescanea la tarea cuando el controlador cambia del modo de programación al modo de marcha o al modo de prueba. Válido para un evento o una tarea periódica. IOT) Capítulo 4 Acceso al objeto TASK El objeto TASK proporciona información de estado acerca de una tarea. El tiempo se representa en microsegundos. Un valor de 0 indica 1 o menos ejecuciones de la tarea. Si se inhibe una tarea. DINT[0] contiene los 32 bits inferiores del valor. Los valores válidos son 0-31. DINT[1] contiene los 32 bits superiores del valor. 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 función de tiempo de espera de una tarea de evento. Para borrar el conteo. Especifique el nombre de la tarea para determinar el objeto TASK deseado.Instrucciones de entrada/salida (MSG. DINT[1] contiene los 32 bits superiores del valor. Para: inhabilitar la función de tiempo de espera habilitar la función 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. LastScanTime DINT GSV SSV El tiempo necesario para ejecutar esta tarea desde la última vez que se ejecutó. DINT[0] contiene los 32 bits inferiores del valor. establezca el atributo en 0. SSV. Atributo DisableUpdateOutputs Tipo de datos DINT Instrucción GSV SSV Descripción Habilita o inhabilita el procesamiento de salidas al final de una tarea. 5 s 5. GSV. Proporciona información de estado acerca de la tarea. Si el tipo de tarea es: periódica El atributo Rate especifica el: Período para la tarea. El tiempo se representa en microsegundos. El tiempo se representa en microsegundos.15. Rate DINT GSV SSV evento StartTime DINT[2] GSV SSV El valor WALLCLOCKTIME cuando se inició la última ejecución de la tarea.. Para determinar si: Una instrucción EVNT activó la tarea (tarea de evento solamente). El valor de tiempo de espera para la tarea.Capítulo 4 Instrucciones de entrada/salida (MSG. usted puede borrar el bit manualmente. SSV.0 s Tipo de tarea: periódica o de evento continua 196 Publicación 1756-RM003K-ES-P – Julio 2008 . DINT[0] contiene los 32 bits inferiores del valor. DINT[1] contiene los 32 bits superiores del valor.. Si se introduce 0. Valores válidos 1. Ocurrió una superposición para esta tarea. IOT) Atributo Priority Tipo de datos INT Instrucción GSV SSV Descripción La prioridad relativa de esta tarea comparada con las otras tareas. El tiempo se representa en microsegundos. Un tiempo de espera sobrepasado activó la tarea (tarea de evento solamente). Una vez que el controlador establece uno de estos bits. se asignan estos valores: Tiempo: 0. Examine este bit: 0 Status DINT GSV SSV 1 2 Watchdog DINT GSV SSV El límite de tiempo para la ejecución de todos los programas asociados con esta tarea. DINT[0] contiene los 32 bits inferiores del valor. CurrentValue DINT[2] GSV SSV El valor es el número de microsegundos que han transcurrido desde las 0000 horas del 1º de enero de 1972. GSV. Publicación 1756-RM003K-ES-P – Julio 2008 197 . IOT) Capítulo 4 Acceso al objeto WALLCLOCKTIME El objeto WALLCLOCKTIME proporciona un sello de hora que el controlador puede usar para la priorización. Por ejemplo. Los objetos CST y WALLCLOCKTIME están relacionados matemáticamente en el controlador. SSV. El valor predeterminado es 0. DateTime DINT[7] GSV SSV La fecha y hora en un formato legible. DINT[1] contiene los 32 bits superiores del valor. si se suman CST CurrentValue y WALLCLOCKTIME CTSOffset. Valor en μs. DINT[1] contiene los 32 bits superiores del valor. DINT[0] contiene los 32 bits inferiores del valor. vea la página 183). el resultado es WALLCLOCKTIME CurrentValue. Atributo CSTOffset Tipo de datos DINT[2] Instrucción GSV SSV Descripción Offset positivo del CurrentValue del objeto CST (hora coordinada del sistema.Instrucciones de entrada/salida (MSG.999) El valor actual de la hora del reloj. DINT[0] DINT[1] DINT[2] DINT[3] DINT[4] DINT[5] DINT[6] año representación del mes en números enteros (1-12) representación del día en números enteros (1-31) hora (0-23) minuto (0-59) segundos (0-59) microsegundos (0-999. FaultCode. Lógica de escalera de relés Texto estructurado GSV(MODULE.FaultCode).DISCRETE.disc_in_2_info. GSV(PROGRAM. 198 Publicación 1756-RM003K-ES-P – Julio 2008 .Mode). IOT) Ejemplo de programación GSV/SSV Obtenga información de fallo Los siguientes ejemplos usan instrucciones GSV para obtener información de fallo. GSV(MODULE.MAXSCANTIME.MaxScanTime).disc_in_2_info.disc_in_2info. GSV.Capítulo 4 Instrucciones de entrada/salida (MSG.disc_in_2.LastScanTime). Ejemplo 1: Este ejemplo obtiene información de fallo del módulo de E/S disc_in_2 y coloca los datos en una estructura definida por el usuario disc_in_2_info.discrete_info. Lógica de escalera de relés Texto estructurado GSV(PROGRAM.FaultInfo. Ejemplo 2: Este ejemplo obtiene información de estado acerca del programa discrete y coloca los datos en una estructura definida por el usuario discrete_info.DISCRETE.Mode. discrete_info.disc_in_2.LASTSCANTIME. GSV(MODULE.FaultInfo). SSV.disc_in_2. MaxScanTime).WATCHDOG.IO_TEST.io_test_info. GSV.Instrucciones de entrada/salida (MSG. SSV.MAXSCANTIME. IOT) Capítulo 4 Ejemplo 3: Este ejemplo obtiene información de estado acerca de la tarea IO_test y coloca los datos en una estructura definida por el usuario io_test_info.IO_TEST.io_test_info. Lógica de escalera de relés Texto estructurado GSV(TASK.WatchDog). Publicación 1756-RM003K-ES-P – Julio 2008 199 .io_test_info.LastScanTime). GSV(TASK.LASTSCANTIME.IO_TEST. GSV(TASK. IOT) Establezca los indicadores de habilitación e inhabilitación El siguiente ejemplo usa la instrucción SSV para habilitar o inhabilitar un programa.1 THEN discrete_prog_flag := enable_prog. GSV. lo cual es similar a usar bits de inhibición con un procesador PLC-5. coloque el valor apropiado en el atributo disableflag del programa discrete. ELSE discrete_prog_flag := disable_prog. SSV. Ejemplo: Según el estado de SW. END_IF.DISABLEFLAG.DISCRETE. Lógica de escalera de relés Texto estructurado IF SW. Usted también podría usar este método para habilitar o inhabilitar un módulo de E/S.Capítulo 4 Instrucciones de entrada/salida (MSG. 200 Publicación 1756-RM003K-ES-P – Julio 2008 . SSV(PROGRAM.1.discrete_prog_flag). • Si la conexión es para un tag producido. Texto estructurado Los operandos son iguales a los de la instrucción IOT de lógica de escalera de relés. la instrucción IOT también envía el activador de evento al controlador consumidor. pero Local:5:0. Esto permite a la instrucción IOT activar una tarea de evento en el controlador consumidor. De esta manera se configura el tag para actualizar su activador de evento sólo mediante una instrucción IOT. IOT(output_tag). • Una conexión de salida es una conexión asociada con el tag de salida de un módulo de E/S o con un tag producido. configure el tag producido de la siguiente manera: Marque esta casilla.Data no es correcto.Instrucciones de entrada/salida (MSG. GSV. Descripción: La instrucción IOT anula el intervalo solicitado entre paquetes (RPI) de una conexión de salida y envía datos nuevos mediante la conexión. Para usar una instrucción IOT y un tag producido para activar una tarea de evento en un controlador consumidor. IOT) Capítulo 4 Salida inmediata (IOT) Operandos: La instrucción IOT actualiza inmediatamente los datos de salida especificados (tag de salida o tag producido). Por ejemplo. Lógica de escalera de relés Operando Update Tag Tipo Formato tag Descripción tag que usted desea actualizar. Publicación 1756-RM003K-ES-P – Julio 2008 201 . ya sea: • tag de salida de un módulo de E/S • tag producido No seleccione un miembro o elemento de un tag. SSV. Local:5:0 es correcto. Red EtherNet/IP valores cargados al tag producido instrucción IOT en el controlador productor tarea de evento en el controlador consumidor Red ControlNet valores cargados al tag producido instrucción IOT en el controlador productor RPI del tag producido tarea de evento en el controlador consumidor Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna 202 Publicación 1756-RM003K-ES-P – Julio 2008 . GSV. SSV.Capítulo 4 Instrucciones de entrada/salida (MSG. IOT) El tipo de red entre los controladores determina cuándo el controlador consumidor recibe los nuevos datos y el activador de eventos mediante la instrucción IOT. El dispositivo consumidor recibe los datos y el activador de evento inmediatamente inmediatamente dentro del intervalo entre paquetes actual (API) del tag consumido (conexión) dentro del intervalo entre paquetes actual (API) del tag consumido (conexión) Los siguientes diagramas comparan la recepción de datos mediante una instrucción IOT por las redes EtherNet/IP y ControlNet. Con este controlador ControlLogix Mediante esta red backplane Red EtherNet/IP Red ControlNet SoftLogix5800 Usted puede producir y consumir tags sólo por una red ControlNet. Ninguna. a. La instrucción se ejecuta. IOT) Capítulo 4 Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera EnableIn se establece ejecución de la instrucción Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. n. GSV. SSV. ésta inmediatamente envía los valores del tag Local:5:0 al módulo de salida. La condición de salida de renglón se establece como falsa. a. Lógica de escalera de relés Texto estructurado IOT (Local:5:O).Instrucciones de entrada/salida (MSG. Publicación 1756-RM003K-ES-P – Julio 2008 203 . Acción de texto estructurado Ninguna. n. La condición de salida de renglón se establece como verdadera. • restablece el temporizador RPI de la conexión post-escán La condición de salida de renglón se establece como falsa. n. EnableIn siempre se establece. a. La instrucción se ejecuta. La instrucción: • actualiza la conexión del tag especificado. Ejemplo 1: Cuando la instrucción IOT se ejecuta. IOT (Produced_Tag).Capítulo 4 Instrucciones de entrada/salida (MSG. Trigger_Consumer := New_Data. Cuando el controlador consumidor recibe esta actualización. el tag producido se configura de la siguiente manera: Produced_Tag se configura para actualizar su activador de eventos mediante una instrucción IOT. ocurre lo siguiente durante un escán: La instrucción CPS establece Produced_Tag = Source_Tag. END_IF. activa la tarea de evento asociada en dicho controlador. GSV. 204 Publicación 1756-RM003K-ES-P – Julio 2008 . La instrucción IOT actualiza Produced_Tag y envía esta actualización al controlador consumidor (estación 25).Produced_Tag. IOT) Ejemplo 2: Este controlador controla la estación 24 y produce datos para la siguiente estación (estación 25). Texto estructurado IF New_Data AND NOT Trigger_Consumer THEN CPS (Source_Tag. Lógica de escalera de relés Si New_Data = activado.1). SSV. Para usar una instrucción IOT para señalar la transmisión de nuevos datos. NEQ) Introducción Si desea comparar los valores según una expresión probar si dos valores son iguales Las instrucciones de comparación le permiten comparar los valores usando una expresión o una instrucción de comparación específica. EQU.Capítulo 5 Instrucciones de comparación (CMP. 205Publicación 1756-RM003K-ES-P – Julio 2008 205 . LES. por ejemplo. valores de punto flotante (coma flotante) y valores enteros. Las instrucciones se ejecutan más rápidamente y requieren menos memoria si todos los operandos de instrucción usan el mismo tipo de datos óptimos. Use el operador en una expresión. No hay una instrucción equivalente en texto estructurado. los tipos de datos que aparecen en negrita indican tipos de datos óptimos. (2) Usted puede comparar valores de diferentes tipos de datos como. Use otra programación en texto estructurado para lograr el mismo resultado. GRT. Use esta instrucción CMP EQU Disponible en estos lenguajes lógica de escalera de relés texto estructurado(1) lógica de escalera de relés texto estructurado(2) bloque de funciones lógica de escalera de relés texto estructurado(1) bloque de funciones lógica de escalera de relés texto estructurado(1) bloque de funciones lógica de escalera de relés texto estructurado(1) bloque de funciones lógica de escalera de relés texto estructurado(1) bloque de funciones lógica de escalera de relés texto estructurado(1) bloque de funciones lógica de escalera de relés texto estructurado(1) bloque de funciones lógica de escalera de relés texto estructurado(1) bloque de funciones Vea la página 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 través de una máscara y determinar si son iguales determinar si un valor diferente a otro valor LIM 231 MEQ 237 NEQ 242 (1) No hay una instrucción equivalente en texto estructurado. GEQ. LEQ. MEQ. típicamente DINT o REAL. Vea la descripción de la instrucción. LIM. Para las instrucciones de lógica de escalera de relés. GEQ. LEQ. La ejecución de una instrucción CMP es un poco más lenta y usa más memoria que la ejecución de las otras instrucciones de comparación. IF BOOL_expression THEN <statement>. −. Programación de texto estructurado para obtener información sobre la sintaxis de construcciones y expresiones en texto estructurado. Condiciones de fallo: ninguna 206 Publicación 1756-RM003K-ES-P – Julio 2008 . Indicadores de estado La instrucción CMP afecta los indicadores de estado aritmético si la aritmético: expresión contiene un operador (por ejemplo. MEQ.Capítulo 5 Instrucciones de comparación (CMP. Formato inmediato tag Descripción una expresión que consiste en tags y/o valores inmediatos separados por operadores. Lógica de escalera de relés Operando Expression Tipo SINT INT DINT REAL cadena Un tag SINT o INT se convierte en un valor DINT mediante extensión de signo. END_IF. GRT. LES. pero usted puede lograr los mismos resultados usando una construcción IF. La ventaja de la instrucción CMP es que le permite introducir expresiones complejas en una sola instrucción. /) que afecta los indicadores de estado aritmético. Consulte Apéndice C. Use paréntesis ( ) para definir secciones de expresiones más complejas. EQU. LIM.THEN y una expresión.. Texto estructurado El texto estructurado no tiene una instrucción CMP.. NEQ) Comparar (CMP) Operandos: La instrucción CMP realiza una comparación de las operaciones aritméticas que se especifican en la expresión. tags y valores inmediatos. Descripción: Defina la expresión CMP mediante operadores. +. *. la instrucción evalúa la expresión como: Si la expresión es diferente de cero cero La condición de salida de renglón se establece como verdadera falsa Publicación 1756-RM003K-ES-P – Julio 2008 207 . LEQ. evalúe la expresión la expresión es verdadera la condición de salida de renglón se establece como verdadera la expresión es falsa la condición de salida de renglón se establece como falsa fin post-escán La condición de salida de renglón se establece como falsa. LES. MEQ. LIM. Ejemplos: Si la instrucción CMP determina que la expresión es verdadera. EQU. GEQ.Instrucciones de comparación (CMP. La condición de salida de renglón se establece como falsa. tal como value_1 + value_2 o value_1. la condición de salida de renglón se establece como verdadera. NEQ) Capítulo 5 Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. Si introduce una expresión sin un operador de comparación. GRT. REAL REAL DINT REAL REAL REAL OR RAD SIN SQR TAN TOD TRN XOR Operador: DEG FRD LN LOG MOD NOT Descripción radianes a grados BCD a entero logaritmo natural logaritmo base 10 módulo de división complemento a nivel de bits O a nivel de bits grados a radianes seno raíz cuadrada tangente entero a BCD truncar O exclusivo a nivel de bits Óptimo DINT. LES.Capítulo 5 Instrucciones de comparación (CMP. REAL DINT. que son comunes para ambas instrucciones. GRT. REAL DINT. formato y orden de operación. REAL DINT. LEQ. GEQ. REAL DINT. NEQ) Expresiones CMP Usted programa las expresiones en las instrucciones CMP de la misma manera que las expresiones en las instrucciones FSC. REAL DINT. MEQ. REAL DINT 208 Publicación 1756-RM003K-ES-P – Julio 2008 . REAL DINT. REAL DINT. REAL REAL DINT DINT. REAL DINT. REAL DINT. LIM. Operadores válidos Operador: + * / = < <= > >= <> ** ABS ACS AND ASN ATN COS Descripción 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. Use las siguientes secciones para obtener información sobre operadores válidos. REAL DINT. EQU. REAL DINT REAL REAL DINT. REAL DINT DINT DINT. REAL REAL DINT. SIN. >. MOD <.Instrucciones de comparación (CMP. LEQ. ASN. Operación () ABS. 10. ATN. FRD. 8. forzando a la instrucción para que realice una operación dentro del paréntesis antes de otras operaciones. NEQ) Capítulo 5 Expresiones de formato Por cada operador que use en una expresión. 9. LIM. Use la siguiente tabla para formatear operadores y operandos dentro de una expresión: 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 operación Las operaciones que usted escribe en la expresión son realizadas por la instrucción en un orden prescrito. usted tiene que proporcionar uno o dos operandos (tags o valores inmediatos). GRT. NOT *. SQR. LES. Orden 1. TRN ** − (cambiar signo). ACS. LN. MEQ. <=. 4. 6. no necesariamente en el orden en que usted las escribe. DEG. EQU. COS. 2. = − (restar). Las operaciones de igual orden se realizan de izquierda a derecha. TAN. Usted puede anular el orden de operación agrupando términos dentro de paréntesis. >=. RAD. TOD. 7. /. 5. 3. LOG. + AND XOR OR Publicación 1756-RM003K-ES-P – Julio 2008 209 . GEQ. LIM.Capítulo 5 Instrucciones de comparación (CMP. Para obtener el código hexadecimal de un carácter. LEQ. • Los valores hexadecimales de los caracteres determinan si una cadena es mayor o menor que otra cadena. GEQ. EQU. Caracteres ASCII 1ab m e n o r m a y o r Códigos hexadecimales $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B 1b A AB B a ab 210 Publicación 1756-RM003K-ES-P – Julio 2008 . • Cuando las dos cadenas se clasifican como en un directorio telefónico. NEQ) Use cadenas en una expresión Use una expresión de texto estructurado o lógica de escalera de relés para comparar tipos de datos de cadena. MEQ. • Usted no puede introducir caracteres ASCII directamente en la expresión. LES. siga estas pautas: • Una expresión le permite comparar dos tags de cadena. el orden de las cadenas determina cuál es mayor. remítase a la contraportada de este manual. La “A” mayúscula ($41) es diferente a la “a” minúscula ($61). • Sólo se permiten los siguientes operadores Operador = < <= > >= <> Descripción igual que menor que menor o igual que mayor que mayor o igual que diferente de • Las cadenas son iguales si sus caracteres coinciden. GRT. • Los caracteres ASCII permiten distinguir mayúsculas de minúsculas. Para usar cadenas en una expresión. Instrucciones de comparación (CMP. LIM. GEQ. LES. Texto estructurado IF sourceA = sourceB THEN <statements>. Publicación 1756-RM003K-ES-P – Julio 2008 211 . Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. • Los valores REAL pocas veces son absolutamente iguales. introduzca un tag de cadena tanto para Source A como para Source B. use la instrucción LIM. LEQ. Si necesita determinar la igualdad de dos valores REAL. el valor se convierte en un valor DINT mediante extensión de signo. EQU. Consulte el Apéndice C. Use el signo igual “=” como operador dentro de una expresión. NEQ) Capítulo 5 Igual a (EQU) Operandos: La instrucción EQU determina si Source A es igual a Source B. GRT. MEQ. Esta expresión evalúa si sourceA es igual que sourceB. Lógica de escalera de relés 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 Descripción valor que se compara con Source B • Si usted introduce un tag SINT o INT. • 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. LES. Cuando usted compara las cadenas: • Las cadenas son iguales si sus caracteres coinciden. Es equivalente a la condición de salida de renglón de la instrucción EQU de lógica de escalera de relés. LEQ. GEQ. NEQ) Bloque de funciones Operando EQU tag Tipo FBD_COMPARE Formato estructura Descripción estructura EQU Estructura FBD_COMPARE Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. SourceA REAL Valor que se compara con SourceB Válido = cualquier valor con punto flotante (coma flotante) SourceB REAL Valor que se compara con SourceA Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida Tipo de datos EnableOut Dest BOOL BOOL Descripción La instrucción produjo un resultado válido. La opción predeterminada es establecido. EQU. MEQ. LIM. Si se borra.Capítulo 5 Instrucciones de comparación (CMP. Resultado de la instrucción. Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna 212 Publicación 1756-RM003K-ES-P – Julio 2008 . GRT. • Los caracteres ASCII permiten distinguir mayúsculas de minúsculas. La “A” mayúscula ($41) es diferente a la “a” minúscula ($61). la instrucción no se ejecuta y las salidas no se actualizan. Descripción: Use la instrucción EQU para comparar dos números o dos cadenas de caracteres ASCII. LIM. Ninguna. La instrucción se ejecuta. GRT. Ninguna. MEQ. EnableOut se establece. Source A = Source B sí la condición de salida de renglón se establece como verdadera no la condición de salida de renglón se establece como falsa fin post-escán La condición de salida de renglón se establece como falsa. EnableOut se borra. LEQ.Instrucciones de comparación (CMP. Publicación 1756-RM003K-ES-P – Julio 2008 213 . La condición de salida de renglón se establece como falsa. post-escán Ninguna. EQU. Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. GEQ. LES. NEQ) Capítulo 5 Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. establezca light_a. GEQ. LIM. Si value_1 es diferente de value_2. MEQ. LEQ. Bloque de funciones 214 Publicación 1756-RM003K-ES-P – Julio 2008 . NEQ) Ejemplo: Si value_1 es igual a value_2. Lógica de escalera de relés Texto estructurado light_a := (value_1 = value_2).Capítulo 5 Instrucciones de comparación (CMP. GRT. borre light_a. EQU. LES. introduzca un tag de cadena tanto para Source A como para Source B. GRT. Texto estructurado IF sourceA >= sourceB THEN <statements>. LES. MEQ. Lógica de escalera de relés 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 Descripción valor que se compara con Source B • Si usted introduce un tag SINT o INT. • 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. GEQ. LIM.Instrucciones de comparación (CMP. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. EQU. Use los signos mayor que e igual “>=” adyacentes como operador dentro de una expresión. LEQ. Publicación 1756-RM003K-ES-P – Julio 2008 215 . el valor se convierte en un valor DINT mediante extensión de signo. Consulte el Apéndice C. NEQ) Capítulo 5 Mayor o igual que (GEQ) Operandos: La instrucción GEQ determina si Source A es mayor o igual que Source B. Esta expresión evalúa si sourceA es mayor o igual que sourceB. Para obtener el código hexadecimal de un carácter. GRT. SourceA REAL Valor que se compara con SourceB Válido = cualquier valor con punto flotante (coma flotante) SourceB REAL Valor que se compara con SourceA Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida Tipo de datos EnableOut Dest BOOL BOOL Descripción La instrucción produjo un resultado válido. Resultado de la instrucción. remítase a la contraportada de este manual. Cuando usted compara las cadenas: • Los valores hexadecimales de los caracteres determinan si una cadena es mayor o menor que otra cadena. Si se borra. LIM. la instrucción no se ejecuta y las salidas no se actualizan.Capítulo 5 Instrucciones de comparación (CMP. GEQ. el orden de las cadenas determina cuál es mayor. Descripción: La instrucción GEQ determina si Source A es mayor o igual que Source B. Es equivalente a la condición de salida de renglón para la instrucción GEQ de lógica de escalera de relés. NEQ) Bloque de funciones Operando GEQ tag Tipo FBD_COMPARE Formato estructura Descripción estructura GEQ Estructura FBD_COMPARE Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. EQU. La opción predeterminada es establecido. LES. LEQ. Caracteres ASCII 1ab m e n o r m a y o r Códigos hexadecimales $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B 1b A AB B a ab 216 Publicación 1756-RM003K-ES-P – Julio 2008 . MEQ. • Cuando las dos cadenas se clasifican como en un directorio telefónico. Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. GRT. LIM. MEQ. NEQ) Capítulo 5 Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. LEQ. GEQ. post-escán Ninguna.Instrucciones de comparación (CMP. Ninguna. LES. Source A ≥ Source B sí la condición de salida de renglón se establece como verdadera no la condición de salida de renglón se establece como falsa fin post-escán La condición de salida de renglón se establece como falsa. La condición de salida de renglón se establece como falsa. EnableOut se establece. Publicación 1756-RM003K-ES-P – Julio 2008 217 . La instrucción se ejecuta. EQU. Ninguna. EnableOut se borra. Capítulo 5 Instrucciones de comparación (CMP. Bloque de funciones 218 Publicación 1756-RM003K-ES-P – Julio 2008 . establezca light_b. LEQ. Lógica de escalera de relés Texto estructurado light_b := (value_1 >= value_2). GRT. borre light_b. Si value_1 es menor que value_2. GEQ. NEQ) Ejemplo: Si value_1 es mayor o igual que value_2. LES. MEQ. EQU. LIM. Texto estructurado IF sourceA > sourceB THEN <statements>. LES. introduzca un tag de cadena tanto para Source A como para Source B. NEQ) Capítulo 5 Mayor que (GRT) Operandos: La instrucción GRT determina si Source A es mayor que Source B. EQU. GEQ. el valor se convierte en un valor DINT mediante extensión de signo. Bloque de funciones Operando GRT tag Tipo FBD_COMPARE Formato estructura Descripción estructura GRT Publicación 1756-RM003K-ES-P – Julio 2008 219 . Esta expresión evalúa si sourceA es mayor que sourceB. GRT. MEQ.Instrucciones de comparación (CMP. Use el signo mayor que “>” como un operador dentro de una expresión. LEQ. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. LIM. Lógica de escalera de relés 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 Descripción valor que se compara con Source B • Si usted introduce un tag SINT o INT. Consulte el Apéndice C. • 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. la instrucción no se ejecuta y las salidas no se actualizan. remítase a la contraportada de este manual. GEQ. Si se borra. el orden de las cadenas determina cuál es mayor. Caracteres ASCII 1ab m e n o r m a y o r Códigos 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 aritmético: no afectados Condiciones de fallo: ninguna 220 Publicación 1756-RM003K-ES-P – Julio 2008 . Cuando usted compara cadenas: • Los valores hexadecimales de los caracteres determinan si una cadena es mayor o menor que otra cadena. MEQ. Descripción: La instrucción GRT determina si Source A es mayor que Source B. • Cuando las dos cadenas se clasifican como en un directorio telefónico. Es equivalente a la condición de salida de renglón para la instrucción GRT de lógica de escalera de relés. LIM. GRT. EQU. La opción predeterminada es establecido. NEQ) Estructura FBD_COMPARE Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. LEQ.Capítulo 5 Instrucciones de comparación (CMP. Resultado de la instrucción. LES. SourceA REAL Valor que se compara con SourceB Válido = cualquier valor con punto flotante (coma flotante) SourceB REAL Valor que se compara con SourceA Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida Tipo de datos EnableOut Dest BOOL BOOL Descripción La instrucción produjo un resultado válido. Para obtener el código hexadecimal de un carácter. Instrucciones de comparación (CMP. Source A > Source B sí la condición de salida de renglón se establece como verdadera no la condición de salida de renglón se establece como falsa fin post-escán La condición de salida de renglón se establece como falsa. Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. La instrucción se ejecuta. EnableOut se borra. Publicación 1756-RM003K-ES-P – Julio 2008 221 . NEQ) Capítulo 5 Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. Ninguna. post-escán Ninguna. Ninguna. LEQ. MEQ. EnableOut se establece. GRT. EQU. GEQ. LES. La condición de salida de renglón se establece como falsa. LIM. Si value_1 es menor o igual que value_2.Capítulo 5 Instrucciones de comparación (CMP. LIM. Bloque de funciones 222 Publicación 1756-RM003K-ES-P – Julio 2008 . GEQ. borre light_1. GRT. LEQ. Lógica de escalera de relés Texto estructurado light_1 := (value_1 > value_2). NEQ) Ejemplo: Si value_1 es mayor que value_2. EQU. MEQ. establezca light_1. LES. • 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. el valor se convierte en un valor DINT mediante extensión de signo. LES.Instrucciones de comparación (CMP. Consulte el Apéndice C. Publicación 1756-RM003K-ES-P – Julio 2008 223 . GRT. MEQ. EQU. Use los signos menor que e igual “<=” adyacentes como operador dentro de una expresión. Esta expresión evalúa si sourceA es menor o igual que sourceB. Lógica de escalera de relés 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 Descripción valor que se compara con Source B • Si usted introduce un tag SINT o INT. GEQ. LEQ. introduzca un tag de cadena tanto para Source A como para Source B. Texto estructurado IF sourceA <= sourceB THEN <statements>. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. LIM. NEQ) Capítulo 5 Menor o igual que (LEQ) Operandos: La instrucción 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. EQU. Caracteres ASCII 1ab m e n o r m a y o r Códigos hexadecimales $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B 1b A AB B a ab 224 Publicación 1756-RM003K-ES-P – Julio 2008 . Para obtener el código hexadecimal de un carácter. LEQ. • Cuando las dos cadenas se clasifican como en un directorio telefónico.Capítulo 5 Instrucciones de comparación (CMP. la instrucción no se ejecuta y las salidas no se actualizan. remítase a la contraportada de este manual. La opción predeterminada es establecido. SourceA REAL Valor que se compara con SourceB Válido = cualquier valor con punto flotante (coma flotante) SourceB REAL Valor que se compara con SourceA Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida Tipo de datos EnableOut Dest BOOL BOOL Descripción La instrucción produjo un resultado válido. Descripción: La instrucción LEQ determina si Source A es menor o igual que Source B. LES. MEQ. Resultado de la instrucción. Si se borra. NEQ) Bloque de funciones Operando LEQ tag Tipo FBD_COMPARE Formato estructura Descripción estructura LEQ Estructura FBD_COMPARE Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. LIM. Es equivalente a la condición de salida de renglón para la instrucción LEQ de lógica de escalera de relés. GEQ. GRT. el orden de las cadenas determina cuál es mayor. GEQ. La condición de salida de renglón se establece como falsa. GRT. Source A ≤ Source B sí la condición de salida de renglón se establece como verdadera no la condición de salida de renglón se establece como falsa fin post-escán La condición de salida de renglón se establece como falsa. MEQ. Ninguna. EQU. LEQ. EnableOut se establece. Ninguna.Instrucciones de comparación (CMP. LIM. EnableOut se borra. Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. post-escán Ninguna. La instrucción se ejecuta. Publicación 1756-RM003K-ES-P – Julio 2008 225 . NEQ) Capítulo 5 Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. LES. LEQ. NEQ) Ejemplo: Si value_1 es menor o igual que value_2. GEQ. Bloque de funciones 226 Publicación 1756-RM003K-ES-P – Julio 2008 . establezca light_2. Si value_1 es mayor que value_2. LIM. borre light_2. Lógica de escalera de relés Texto estructurado light_2 := (value_1 <= value_2). GRT. LES. EQU.Capítulo 5 Instrucciones de comparación (CMP. MEQ. Instrucciones de comparación (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Capítulo 5 Menor que (LES) Operandos: La instrucción LES determina si Source A es menor que Source B. Lógica de escalera de relés 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 Descripción 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 extensión 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 expresión. Esta expresión evalúa si sourceA es menor que sourceB. Consulte el Apéndice C, Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. Bloque de funciones Operando LES tag Tipo FBD_COMPARE Formato estructura Descripción estructura LES Publicación 1756-RM003K-ES-P – Julio 2008 227 Capítulo 5 Instrucciones de comparación (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Estructura FBD_COMPARE Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. Si se borra, la instrucción no se ejecuta y las salidas no se actualizan. La opción predeterminada es establecido. SourceA REAL Valor que se compara con SourceB Válido = cualquier valor con punto flotante (coma flotante) SourceB REAL Valor que se compara con SourceA Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida Tipo de datos EnableOut Dest BOOL BOOL Descripción La instrucción produjo un resultado válido. Resultado de la instrucción. Es equivalente a la condición de salida de renglón para la instrucción LES de lógica de escalera de relés. Descripción: La instrucción 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 código hexadecimal de un carácter, remítase a la contraportada de este manual. • Cuando las dos cadenas se clasifican como en un directorio telefónico, el orden de las cadenas determina cuál es mayor. Caracteres ASCII 1ab m e n o r m a y o r Códigos 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 aritmético: no afectados Condiciones de fallo: ninguna 228 Publicación 1756-RM003K-ES-P – Julio 2008 Instrucciones de comparación (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Capítulo 5 Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. La condición de salida de renglón se establece como falsa. Source A < Source B sí la condición de salida de renglón se establece como verdadera no la condición de salida de renglón se establece como falsa fin post-escán La condición de salida de renglón se establece como falsa. Bloque de funciones Condición: preescán primer escán de instrucción primera ejecución de instrucción EnableIn es falsa EnableIn es verdadera Acción Ninguna. Ninguna. Ninguna. EnableOut se borra. La instrucción se ejecuta. EnableOut se establece. post-escán Ninguna. Publicación 1756-RM003K-ES-P – Julio 2008 229 Capítulo 5 Instrucciones de comparación (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. Lógica de escalera de relés Texto estructurado light_3 := (value_1 < value_2); Bloque de funciones 230 Publicación 1756-RM003K-ES-P – Julio 2008 Instrucciones de comparación (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Capítulo 5 Límite (LIM) Operandos: La instrucción LIM determina si el valor de prueba se encuentra dentro del rango de los límites inferior y superior. Lógica de escalera de relés Operando Low limit Tipo SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensión de signo. Test SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensión de signo. High limit SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensión de signo. inmediato tag valor del límite superior inmediato tag valor que se prueba Formato inmediato tag Descripción valor del límite inferior Texto estructurado El texto estructurado no cuenta con la instrucción 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; Publicación 1756-RM003K-ES-P – Julio 2008 231 Capítulo 5 Instrucciones de comparación (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Bloque de funciones Operando LIM tag Tipo FBD_LIMIT Formato estructura Descripción estructura LIM Estructura FBD_LIMIT Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Si se borra, la instrucción no se ejecuta y las salidas no se actualizan. Si se establece, la instrucción se ejecuta según lo descrito en Ejecución. La opción predeterminada es establecido. LowLimit REAL Valor del límite inferior Válido = cualquier valor con punto flotante (coma flotante) Test REAL Valor que se compara con límites Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida Tipo de datos EnableOut Dest HighLimit BOOL BOOL REAL Descripción La instrucción produjo un resultado válido. Resultado de la instrucción. Es equivalente a la condición de salida de renglón para la instrucción LIM de lógica de escalera de relés. Valor del límite superior Válido = cualquier valor con punto flotante (coma flotante) Descripción: La instrucción LIM determina si el valor de prueba se encuentra dentro del rango de los límites inferior y superior. Si es límite inferior ≤ Límite superior Y el valor de prueba es igual a o está entre los límites diferente o está fuera de los límites ≥ Límite superior igual a o está fuera de los límites diferente o está dentro de los límites La condición de salida de renglón se establece como verdadera falsa verdadera falsa 232 Publicación 1756-RM003K-ES-P – Julio 2008 Instrucciones de comparación (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Capítulo 5 Los números enteros con signo saltan (“roll over”) del número positivo máximo al número negativo máximo cuando se establece el bit más significativo. Por ejemplo, en los números enteros de 16 bits (tipo INT), el número entero positivo máximo es 32,767, el cual se representa en hexadecimal como 16#7FFF (todos los bits del 0 al 14 están en uno). Si usted incrementa dicho número 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 línea circular de números (vea los siguientes diagramas). La instrucción LIM comienza en el límite inferior e se va incrementando en sentido horario hasta llegar al límite superior. Cualquier valor de prueba que se encuentre en el rango en sentido horario desde el límite inferior al límite superior establece en verdadera la condición de salida del renglón. Cualquier valor de prueba que se encuentre en el rango en sentido horario desde el límite superior al límite inferior establece en falsa la condición de salida del renglón. Límite inferior ≤ Límite superior La instrucción es verdadera si el valor de prueba se encuentra entre los límites inferior y superior, o coincide con uno de dichos límites. 0 −1 +1 límite inferior −1 Límite inferior ≥ Límite superior La instrucción es verdadera si el valor de prueba se encuentra fuera de los límites inferior y superior, o coincide con uno de dichos límites. 0 +1 límite superior límite superior −(n+1) límite inferior −(n+1) +n n = valor máximo +n n = valor máximo Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Publicación 1756-RM003K-ES-P – Julio 2008 233 Capítulo 5 Instrucciones de comparación (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. La condición de salida de renglón se establece como falsa. evaluar el límite la comparación es verdadera la condición de salida de renglón se establece como verdadera la comparación es falsa la condición de salida de renglón se establece como falsa fin post-escán La condición de salida de renglón se establece como falsa. Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. Ninguna. Ninguna. EnableOut se borra, la instrucción no efectúa ninguna operación y las salidas no se actualizan. La instrucción se ejecuta. EnableOut se establece. post-escán Ninguna. 234 Publicación 1756-RM003K-ES-P – Julio 2008 Instrucciones de comparación (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Capítulo 5 Ejemplo 1: Límite inferior ≤ Límite superior: Cuando 0 ≤ value ≥ 100, establezca light_1. Si value < 0 or value > 100, borre light_1. Lógica de escalera de relés 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 Publicación 1756-RM003K-ES-P – Julio 2008 235 Capítulo 5 Instrucciones de comparación (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Ejemplo 2: Límite inferior ≥ Límite superior: Cuando value ≥ 0 o value ≤ −100, establezca light_1. Si value < 0 o value >−100, borre light_1. Lógica de escalera de relés 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 Publicación 1756-RM003K-ES-P – Julio 2008 Instrucciones de comparación (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Capítulo 5 Máscara igual que (MEQ) Operandos: La instrucción MEQ pasa los valores Source y Compare por una máscara y compara los resultados. Lógica de escalera de relés 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 Descripción valor que se compara con Compare Texto estructurado El texto estructurado no cuenta con la instrucción 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 Descripción estructura MEQ Publicación 1756-RM003K-ES-P – Julio 2008 237 Capítulo 5 Instrucciones de comparación (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Estructura FBD_MASK_EQUAL Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Si se borra, la instrucción no se ejecuta y las salidas no se actualizan. Si se establece, la instrucción se ejecuta según lo descrito en Ejecución. La opción predeterminada es establecido. Source DINT Valor que se compara con Compare. Válido = cualquier número entero Mask DINT Define qué bits se deben bloquear (enmascarar). Válido = cualquier número entero Compare DINT Valor de comparación. Válido = cualquier número entero Parámetro de salida Tipo de datos EnableOut Dest BOOL BOOL Descripción La instrucción produjo un resultado válido. Resultado de la instrucción. Es equivalente a la condición de salida de renglón para la instrucción MEQ de lógica de escalera de relés. Descripción: Un número “1” en la máscara significa que se pasa el bit de datos. Un número “0” en la máscara 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 instrucción llena con ceros los bits superiores de los tipos de datos enteros menores para que tengan el mismo tamaño que el tipo de datos mayores. Introducción de un valor de máscara inmediato Cuando usted introduce una máscara, el software de programación cambia de manera predeterminada a valores decimales. Si desea introducir una máscara usando otro formato, preceda el valor con el prefijo correcto. Prefijo 16# Descripción hexadecimal por ejemplo; 16#0F0F 8# octal por ejemplo; 8#16 2# binario por ejemplo; 2#00110011 238 Publicación 1756-RM003K-ES-P – Julio 2008 Instrucciones de comparación (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ) Capítulo 5 Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. La condición de salida de renglón se establece como falsa. origen enmascarado = comparación enmascarada sí la condición de salida de renglón se establece como verdadera no la condición de salida de renglón se establece como falsa fin post-escán La condición de salida de renglón se establece como falsa. Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. Ninguna. Ninguna. EnableOut se borra, la instrucción no efectúa ninguna operación y las salidas no se actualizan. La instrucción se ejecuta. EnableOut se establece. post-escán Ninguna. Publicación 1756-RM003K-ES-P – Julio 2008 239 Capítulo 5 Instrucciones de comparación (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 número 0 en la máscara impide que la instrucción 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 Lógica de escalera de relés Texto estructurado light_1 := ((value_1 AND mask_1)=(value_2 AND mask_2)); Bloque de funciones 240 Publicación 1756-RM003K-ES-P – Julio 2008 EQU. 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 Lógica de escalera de relés Texto estructurado light_1 := ((value_1 AND mask_1)=(value_2 AND mask_2)). GEQ. Un número 0 en la máscara impide que la instrucción compare el bit (representado por x en el ejemplo). LIM. LEQ. Bloque de funciones Publicación 1756-RM003K-ES-P – Julio 2008 241 . MEQ. NEQ) Capítulo 5 Ejemplo 2: Si value_1 enmascarado es igual a value_2 enmascarado. establezca light_1. LES.Instrucciones de comparación (CMP. Este ejemplo muestra que los valores enmascarados son diferentes. borre light_1. GRT. Si value_1 enmascarado es diferente de value_2 enmascarado. GRT. Bloque de funciones Operando NEQ tag Tipo FBD_COMPARE Formato estructura Descripción estructura NEQ 242 Publicación 1756-RM003K-ES-P – Julio 2008 . Consulte el Apéndice C. Lógica de escalera de relés 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 Descripción valor que se compara con Source B • Si usted introduce un tag SINT o INT. • 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. NEQ) Diferente de (NEQ) Operandos: La instrucción NEQ determina si Source A es diferente de Source B. introduzca un tag de cadena tanto para Source A como para Source B. MEQ. LIM. GEQ.Capítulo 5 Instrucciones de comparación (CMP. Use los signos menor que y mayor que “<>” juntos como operador dentro de una expresión. el valor se convierte en un valor DINT mediante extensión de signo. LES. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. Esta expresión evalúa si sourceA es diferente de sourceB. LEQ. EQU. Texto estructurado IF sourceA <> sourceB THEN <statements>. GRT.Instrucciones de comparación (CMP. Es equivalente a la condición de salida de renglón para la instrucción NEQ de lógica de escalera de relés. • Los caracteres ASCII permiten distinguir mayúsculas de minúsculas. Una “A” mayúscula ($41) es diferente a una “a” minúscula ($61). LES. EQU. NEQ) Capítulo 5 Estructura FBD_COMPARE Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. LEQ. MEQ. La opción predeterminada es establecido. Resultado de la instrucción. LIM. la instrucción no se ejecuta y las salidas no se actualizan. Caracteres ASCII 1ab m e n o r m a y o r Códigos 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 aritmético: no afectados Condiciones de fallo: ninguna Publicación 1756-RM003K-ES-P – Julio 2008 243 . GEQ. Si se borra. Descripción: La instrucción NEQ determina si Source A es diferente de Source B. SourceA REAL Valor que se compara con SourceB Válido = cualquier valor con punto flotante (coma flotante) SourceB REAL Valor que se compara con SourceA Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida Tipo de datos EnableOut Dest BOOL BOOL Descripción La instrucción produjo un resultado válido. Cuando usted compara las cadenas: • Las cadenas son diferentes si algunos de sus caracteres no coinciden. LIM. EQU. MEQ. La instrucción se ejecuta. Source A = Source B sí la condición de salida de renglón se establece como verdadera no la condición de salida de renglón se establece como falsa fin post-escán La condición de salida de renglón se establece como falsa. LES. 244 Publicación 1756-RM003K-ES-P – Julio 2008 . La condición de salida de renglón se establece como falsa. post-escán Ninguna.Capítulo 5 Instrucciones de comparación (CMP. GRT. Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. Ninguna. LEQ. EnableOut se borra. Ninguna. NEQ) Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. GEQ. EnableOut se establece. LES. Si value_1 es igual a value_2. GEQ. EQU. MEQ. NEQ) Capítulo 5 Ejemplo: Si value_1 es diferente de value_2.Instrucciones de comparación (CMP. Bloque de funciones Publicación 1756-RM003K-ES-P – Julio 2008 245 . Lógica de escalera de relés Texto estructurado light_4 := (value_1 <> value_2). borre light_4. LEQ. LIM. establezca light_4. GRT. EQU. GEQ.Capítulo 5 Instrucciones de comparación (CMP. LIM. MEQ. GRT. NEQ) Notas: 246 Publicación 1756-RM003K-ES-P – Julio 2008 . LEQ. LES. Las instrucciones se ejecutan más rápidamente y requieren menos 247Publicación 1756-RM003K-ES-P – Julio 2008 247 . (2) (3) Usted puede mezclar diferentes tipos de datos. pero puede producirse pérdida de exactitud y error de redondeo. NEG 274 hallar el valor absoluto de un valor. MOD. Use otra programación en texto estructurado para lograr el mismo resultado. Use esta instrucción CPT ADD Disponible en estos lenguajes lógica de escalera de relés texto estructurado(1) lógica de escalera de relés texto estructurado(2) bloque de funciones lógica de escalera de relés texto estructurado(2) bloque de funciones lógica de escalera de relés texto estructurado(2) bloque de funciones lógica de escalera de relés texto estructurado(2) bloque de funciones lógica de escalera de relés texto estructurado(2) bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado(2) bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones Vea la página 248 252 restar dos valores SUB 255 multiplicar dos valores MUL 258 dividir dos valores DIV 261 determinar el residuo después de dividir un valor entre otro calcular la raíz cuadrada de un valor MOD 266 SQR SQRT(3) 270 tomar el signo opuesto de un valor. y la instrucción requerirá más tiempo para ejecutarse. SUB. DIV. No hay una instrucción equivalente en texto estructurado. Para las instrucciones de lógica de escalera de relés. SQRT. ABS) Introducción Si desea evaluar una expresión sumar dos valores Las instrucciones de cálculo/matemáticas evalúan las operaciones aritméticas usando una expresión o una instrucción aritmética específica. Verifique el bit S:V para determinar si se truncó el resultado. Texto estructurado solamente. MUL. los tipos de datos que aparecen en negrita indican tipos de datos óptimos. SQR. ADD. NEG. Use el operador en una expresión.Capítulo 6 Instrucciones de cálculo/matemáticas (CPT. ABS 277 (1) No hay una instrucción equivalente en texto estructurado. Vea la descripción de la instrucción. la instrucción CPT evalúa la expresión y coloca el resultado en Destination. típicamente DINT o REAL. La ejecución de una instrucción CPT es un poco más lenta y usa más memoria que la ejecución de las otras instrucciones de cálculo/ matemáticas. ABS) memoria si todos los operandos de instrucción usan el mismo tipo de datos óptimos. destino := numeric_expresion. DIV. Condiciones de fallo: ninguna 248 Publicación 1756-RM003K-ES-P – Julio 2008 . Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. Lógica de escalera de relés Operando Destination Tipo SINT INT DINT REAL SINT INT DINT REAL Formato: tag Descripción tag para almacenar el resultado Expression inmediato tag una expresión que consiste en tags y/o valores inmediatos separados por operadores Un tag SINT o INT se convierte en un valor DINT mediante extensión de signo. SUB. NEG. Cuando se habilita. Texto estructurado El texto estructurado no tiene una instrucción CPT. SUGERENCIA No hay límite en la longitud de una expresión. MUL. La ventaja de la instrucción CPT es que le permite introducir expresiones complejas en una sola instrucción.Capítulo 6 Instrucciones de cálculo/matemáticas (CPT. Programación de texto estructurado para obtener información sobre la sintaxis de asignaciones y expresiones en texto estructurado. ADD. pero usted puede lograr los mismos resultados usando una asignación y una expresión. Consulte Apéndice C. Calcular (CPT) Operandos: La instrucción CPT realiza las operaciones aritméticas que usted define en la expresión. Descripción: La instrucción CPT realiza las operaciones aritméticas que usted define en la expresión. SQR. SQRT. MOD. Publicación 1756-RM003K-ES-P – Julio 2008 249 . Ejemplo 2: Cuando se habilita. eleva el valor truncado float_value_2 al cuadrado. ABS) Capítulo 6 Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. MUL. SQRT. post-escán La condición de salida de renglón se establece como falsa. la instrucción CPT trunca float_value_1 y float_value_2. la instrucción CPT evalúa value_1 multiplicado por 5. SQR. SUB. La instrucción evalúa la expresión y coloca el resultado en Destination. MOD. divide dicho resultado entre el resultado de value_2 dividido entre 7 y coloca el resultado final en result_1. Ejemplo 1: Cuando se habilita. La condición de salida de renglón se establece como verdadera. NEG. DIV. La condición de salida de renglón se establece como falsa. ADD. divide el valor truncado float_value_1 entre dicho resultado y almacena el residuo después de la división en float_value_result_cpt.Instrucciones de cálculo/matemáticas (CPT. Capítulo 6 Instrucciones de cálculo/matemáticas (CPT. REAL DINT. REAL DINT. ABS) Operadores válidos Operador + * / ** ABS ACS AND ASN ATN COS DEG FRD LN Descripción 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. SQRT. MUL. REAL REAL DINT. usted tiene que proporcionar uno o dos operandos (tags o valores inmediatos). DIV. SQR. REAL REAL DINT REAL REAL REAL DINT. REAL DINT. REAL DINT. MOD. SUB. REAL DINT DINT DINT. Use la siguiente tabla para formatear operadores y operandos dentro de una expresión: 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 Publicación 1756-RM003K-ES-P – Julio 2008 . ADD. REAL DINT REAL OR RAD SIN SQR TAN TOD TRN XOR Operador LOG MOD NOT Descripción logaritmo base 10 módulo de división complemento a nivel de bits O a nivel de bits grados a radianes seno raíz cuadrada tangente entero a BCD truncar O exclusivo a nivel de bits Óptimo REAL DINT. REAL DINT Expresiones de formato Por cada operador que use en una expresión. REAL DINT. NEG. REAL REAL DINT DINT. TAN. 7. DIV. 2. /. LOG. LN. 4.Instrucciones de cálculo/matemáticas (CPT. + AND XOR OR Publicación 1756-RM003K-ES-P – Julio 2008 251 . Orden: 1. 9. SIN. SQRT. FRD. 3. ABS) Capítulo 6 Determine el orden de operación Las operaciones que usted escribe en la expresión son realizadas por la instrucción en un orden prescrito. ADD. RAD. DEG. Operación: () ABS. Usted puede anular el orden de operación agrupando términos dentro de paréntesis. COS. 6. SQR. 8. MUL. TRN ** − (cambiar signo). ACS. NEG. forzando a la instrucción para que realice una operación dentro del paréntesis antes de otras operaciones. ASN. que no es necesariamente el orden en que usted las escribe. SUB. Las operaciones de igual orden se realizan de izquierda a derecha. ATN. TOD. MOD. 5. SQR. MOD − (restar). NOT *. Destination SINT INT DINT REAL tag tag para almacenar el resultado inmediato tag valor que se suma a Source A Formato: inmediato tag Descripción: valor que se suma a Source B Texto estructurado dest := sourceA + sourceB. Consulte el Apéndice C. SQR. ABS) Sumar (ADD) Operandos: La instrucción ADD suma Source A con Source B y coloca el resultado en Destination. MOD. Source B SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensión de signo. Use el signo más “+” como operador dentro de una expresión. MUL. Lógica de escalera de relés Operando: Source A Tipo: SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensión de signo. Bloque de funciones Operando: ADD tag Tipo: FBD_MATH Formato: estructura Descripción: estructura ADD 252 Publicación 1756-RM003K-ES-P – Julio 2008 .Capítulo 6 Instrucciones de cálculo/matemáticas (CPT. DIV. SUB. Esta expresión suma sourceA a sourceB y almacena el resultado en dest. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. NEG. SQRT. ADD. Si se borra.Instrucciones de cálculo/matemáticas (CPT. Resultado de la instrucción matemática. Destination = Source A + Source B La condición de salida de renglón se establece como verdadera. DIV. La condición de salida de renglón se establece como falsa. La opción predeterminada es establecido. MOD. ADD. MUL. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. SUB. Publicación 1756-RM003K-ES-P – Julio 2008 253 . SQR. Se establecen indicadores de estado aritmético para esta salida. Condiciones de fallo: ninguna Ejecución: Lógica de escalera de relés Condición: preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción: La condición de salida de renglón se establece como falsa. SQRT. NEG. ABS) Capítulo 6 Estructura FBD_MATH Parámetro de entrada: EnableIn Tipo de datos: BOOL Descripción: Habilitación de entrada. post-escán La condición de salida de renglón se establece como falsa. Descripción: La instrucción ADD suma Source A con Source B y coloca el resultado en Destination. la instrucción no se ejecuta y las salidas no se actualizan. SourceA REAL valor que se suma a SourceB Válido = cualquier valor con punto flotante (coma flotante) SourceB REAL valor que se suma a SourceA Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida: EnableOut Dest Tipo de datos: BOOL REAL Descripción: La instrucción produjo un resultado válido. SQRT. DIV. ADD. post-escán Ninguna. SUB.Capítulo 6 Instrucciones de cálculo/matemáticas (CPT. NEG. Lógica de escalera de relés Texto estructurado add_result := float_value_1 + float_value_2. Ejemplo: Sume float_value_1 a float_value_2 y coloque el resultado en add_result. Bloque de funciones 254 Publicación 1756-RM003K-ES-P – Julio 2008 . SQR. MOD. Ninguna. La instrucción se ejecuta. EnableOut se borra. ABS) Bloque de funciones Condición: preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción: Ninguna. Ninguna. EnableOut se establece. MUL. MUL. Esta expresión resta sourceB de sourceA y almacena el resultado en dest. Consulte el Apéndice C. SQRT. SUB. Destination SINT INT DINT REAL tag tag para almacenar el resultado inmediato tag valor que se resta de Source A Formato: inmediato tag Descripción: valor del cual restar Source B Texto estructurado dest := sourceA .sourceB. NEG. DIV. Bloque de funciones Operando: SUB tag Tipo: FBD_MATH Formato: estructura Descripción: estructura SUB Publicación 1756-RM003K-ES-P – Julio 2008 255 . Lógica de escalera de relés Operando: Source A Tipo: SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensión de signo. SQR. Source B SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensión de signo. ADD.Instrucciones de cálculo/matemáticas (CPT. ABS) Capítulo 6 Restar (SUB) Operandos: La instrucción SUB resta Source B de Source A y coloca el resultado en Destination. MOD. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. Use el signo menos “−” como operador en una expresión. ABS) Estructura FBD_MATH Parámetro de entrada: EnableIn Tipo de datos: BOOL Descripción: Habilitación de entrada. SourceA REAL Valor del cual restar SourceB Válido = cualquier valor con punto flotante (coma flotante) SourceB REAL Valor que se resta de SourceA Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida: EnableOut Dest Tipo de datos: BOOL REAL Descripción: La instrucción produjo un resultado válido. Se establecen indicadores de estado aritmético para esta salida. Si se borra. NEG. SUB. ADD. DIV. MOD. Descripción: La instrucción SUB resta Source B de Source A y coloca el resultado en Destination. SQR. La condición de salida de renglón se establece como falsa. La opción predeterminada es establecido. la instrucción no se ejecuta y las salidas no se actualizan. SQRT. post-escán La condición de salida de renglón se establece como falsa. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. Destination = Source B – Source A La condición de salida de renglón se establece como verdadera. Condiciones de fallo: ninguna Ejecución: Lógica de escalera de relés Condición: preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción: La condición de salida de renglón se establece como falsa. 256 Publicación 1756-RM003K-ES-P – Julio 2008 .Capítulo 6 Instrucciones de cálculo/matemáticas (CPT. Resultado de la instrucción matemática. MUL. SQRT. Lógica de escalera de relés Texto estructurado subtract_result := float_value_1 . EnableOut se borra. SUB. Bloque de funciones Publicación 1756-RM003K-ES-P – Julio 2008 257 .Instrucciones de cálculo/matemáticas (CPT. ADD. La instrucción se ejecuta. ABS) Capítulo 6 Bloque de funciones Condición: preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción: Ninguna. Ninguna. Ejemplo: Reste float_value_2 de float_value_1 y coloque el resultado en subtract_result. EnableOut se establece. MUL. MOD. NEG.float_value_2. post-escán Ninguna. Ninguna. DIV. SQR. NEG. MUL. SUB. DIV.Capítulo 6 Instrucciones de cálculo/matemáticas (CPT. SQR. Consulte el Apéndice C. SQRT. Source B SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensión de signo. Lógica de escalera de relés Operando Source A Tipo SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensión de signo. ABS) Multiplicar (MUL) Operandos: La instrucción MUL multiplica Source A por Source B y coloca el resultado en Destination. Esta expresión multiplica sourceA por sourceB y almacena el resultado en dest. MOD. Destination SINT INT DINT REAL tag tag para almacenar el resultado inmediato tag valor del multiplicador Formato inmediato tag Descripción valor del multiplicando Texto estructurado dest := sourceA * sourceB. ADD. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. Use el signo de multiplicación “∗” como operador en una expresión. Bloque de funciones Operando MUL tag Tipo FBD_MATH Formato estructura Descripción estructura MUL 258 Publicación 1756-RM003K-ES-P – Julio 2008 . Descripción: La instrucción MUL multiplica Source A por Source B y coloca el resultado en Destination. Si se borra. Condiciones de fallo: ninguna Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. La condición de salida de renglón se establece como falsa. post-escán La condición de salida de renglón se establece como falsa. MOD. SUB. Publicación 1756-RM003K-ES-P – Julio 2008 259 . ADD. la instrucción no se ejecuta y las salidas no se actualizan. NEG. Resultado de la instrucción matemática. Destination = Source B x Source A La condición de salida de renglón se establece como verdadera. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados.Instrucciones de cálculo/matemáticas (CPT. Se establecen indicadores de estado aritmético para esta salida. SQR. La opción predeterminada es establecido. DIV. SQRT. Source A REAL Valor del multiplicando Válido = cualquier valor con punto flotante (coma flotante) Source B REAL Valor del multiplicador Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripción La instrucción produjo un resultado válido. MUL. ABS) Capítulo 6 Estructura FBD_MATH Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. SUB. EnableOut se borra. Ejemplo: Multiplique float_value_1 por float_value_2 y coloque el resultado en multiply_result. SQR. ADD. post-escán Ninguna. MUL. EnableOut se establece. DIV. Lógica de escalera de relés Texto estructurado multiply_result := float_value_1 ∗ float_value_2. MOD. La instrucción se ejecuta. NEG. ABS) Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. SQRT. Ninguna. Bloque de funciones 260 Publicación 1756-RM003K-ES-P – Julio 2008 .Capítulo 6 Instrucciones de cálculo/matemáticas (CPT. Ninguna. NEG. SQRT. SQR. Esta expresión divide sourceA entre sourceB y almacena el resultado en dest. ABS) Capítulo 6 Dividir (DIV) Operandos: La instrucción DIV divide Source A entre Source B y coloca el resultado en Destination. SUB. Lógica de escalera de relés Operando Source A Tipo SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensión de signo. Publicación 1756-RM003K-ES-P – Julio 2008 261 . MOD. MUL. Use el signo de dividir “/” como operador en una expresión. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. DIV. Destination SINT INT DINT REAL tag tag para almacenar el resultado inmediato tag valor del divisor Formato inmediato tag Descripción valor del dividendo Texto estructurado dest := sourceA / sourceB.Instrucciones de cálculo/matemáticas (CPT. ADD. Consulte el Apéndice C. Source B SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensión de signo. Se establecen indicadores de estado aritmético para esta salida. SQRT. Source A REAL Valor del dividendo. la instrucción maneja la porción fraccionaria del resultado de la siguiente manera: Si Source A Entonces la porción 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. ABS) Bloque de funciones Operando DIV tag Tipo FBD_MATH Formato estructura Descripción estructura DIV Estructura FBD_MATH Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. NEG. Válido = cualquier valor con punto flotante (coma flotante) Source B REAL Valor del divisor. La opción predeterminada es establecido. SQR. la instrucción no se ejecuta y las salidas no se actualizan. Si se borra. MOD. DIV.Capítulo 6 Instrucciones de cálculo/matemáticas (CPT. Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripción La instrucción produjo un resultado válido. MUL. SUB. Descripción: Si el destino no es un tipo REAL.0 3 2 o Source B es REAL se redondea Source A Source B Destination 262 Publicación 1756-RM003K-ES-P – Julio 2008 . ADD. Resultado de la instrucción matemática. DIV. MUL. Consulte el documento Logix5000 Controllers Common Procedures. La condición de salida de renglón se establece como falsa. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. SQRT.Instrucciones de cálculo/matemáticas (CPT. SQR. ABS) Capítulo 6 Si Source B (el divisor) es cero: • se produce un fallo menor – Tipo 4: fallo del programa – Código 4: overflow aritmético • el destino se establece de la siguiente manera: Si Source B es cero y: todos los operandos son números enteros (SINT. MOD. 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. examine el fallo menor (S:MINOR). SUB. post-escán La condición de salida de renglón se establece como falsa.$ (infinito positivo) -1.$ (infinito negativo) Para detectar una posible división entre cero. NEG. publicación 1756-PM001. Destination = Source A/Source B La condición de salida de renglón se establece como verdadera. Publicación 1756-RM003K-ES-P – Julio 2008 263 . Condiciones de fallo: Se produce un fallo menor si el divisor es cero Tipo de fallo 4 Código de fallo 4 Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. ADD. INT o DINT) por lo menos un operando es REAL SINT. Ninguna. MUL. Lógica de escalera de relés Texto estructurado divide_result := float_value_1 / float_value_2. NEG. SQRT. SQR. Bloque de funciones 264 Publicación 1756-RM003K-ES-P – Julio 2008 . EnableOut se borra. ADD. ABS) Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. Ejemplo 1: Dividir float_value_1 entre float_value_2 y coloque el resultado en divide_result. MOD. DIV. La instrucción se ejecuta. SUB. post-escán Ninguna.Capítulo 6 Instrucciones de cálculo/matemáticas (CPT. EnableOut se establece. Ninguna. DIV. • Para redondear el resultado. Destination es un tag REAL. SQRT.Instrucciones de cálculo/matemáticas (CPT. ADD. MUL. el valor de real_temp se redondea y se coloca en el destino DINT. SUB. redondear el resultado y colocarlo en un tag de número entero: • La instrucción DIV divide dint_a entre dint_b. la instrucción truncaría el resultado). • La instrucción MOV traslada el resultado redondeado (real_temp) de la DIV a divide_result_rounded. • Puesto que divide_result_rounded es un tag DINT. Lógica de escalera de relés 43009 Publicación 1756-RM003K-ES-P – Julio 2008 265 . INT o DINT). MOD. SQR. NEG. (Si el destino fuera un tag entero (SINT. ABS) Capítulo 6 Ejemplo 2: Las instrucciones DIV y MOV funcionan juntas para dividir dos enteros. MOD. SQR. Bloque de funciones Operando MOD tag Tipo FBD_MATH Formato estructura Descripción estructura MOD 266 Publicación 1756-RM003K-ES-P – Julio 2008 . Lógica de escalera de relés Operando Source A Tipo SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensión de signo. MUL. Consulte el Apéndice C. ADD. Esta expresión divide sourceA entre sourceB y almacena el residuo en dest. Destination SINT INT DINT REAL tag tag para almacenar el resultado inmediato tag valor del divisor Formato inmediato tag Descripción valor del dividendo Texto estructurado dest := sourceA MOD sourceB.Capítulo 6 Instrucciones de cálculo/matemáticas (CPT. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. SQRT. Use MOD como operador en una expresión. NEG. SUB. Source B SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensión de signo. ABS) Módulo (MOD) Operandos: La instrucción MOD divide Source A entre Source B y coloca el residuo en Destination. DIV. ADD. Resultado de la instrucción matemática. La opción predeterminada es establecido. Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripción La instrucción produjo un resultado válido. Consulte el documento Logix5000 Controllers Common Procedures. Source A REAL Valor del dividendo. publicación 1756-PM001. DIV. SUB. NEG. INT o DINT) por lo menos un operando es REAL SINT. SQRT. Válido = cualquier valor con punto flotante (coma flotante) Source B REAL Valor del divisor. Se establecen indicadores de estado aritmético para esta salida. MOD. Si se borra. 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. SQR.$ (infinito negativo) Para detectar una posible división entre cero.$ (infinito positivo) -1. ABS) Capítulo 6 Estructura FBD_MATH Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. la instrucción no se ejecuta y las salidas no se actualizan. MUL. Publicación 1756-RM003K-ES-P – Julio 2008 267 . Descripción: Si Source B (el divisor) es cero: • se produce un fallo menor – Tipo 4: fallo del programa – Código 4: overflow aritmético • el destino se establece de la siguiente manera: Si Source B es cero y: todos los operandos son números enteros (SINT. examine el fallo menor (S:MINOR).Instrucciones de cálculo/matemáticas (CPT. SQR. ABS) Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. Destination = Source A – ( TRN ( Source A/Source B ) * Source B ) La condición de salida de renglón se establece como verdadera. EnableOut se borra. MOD. SUB. post-escán La condición de salida de renglón se establece como falsa. Ninguna. La condición de salida de renglón se establece como falsa.Capítulo 6 Instrucciones de cálculo/matemáticas (CPT. ADD. NEG. SQRT. Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra post-escán Acción Ninguna. MUL. DIV. Ninguna. Condiciones de fallo: Se produce un fallo menor si el divisor es cero Tipo de fallo 4 Código de fallo 4 Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. Ninguna. 268 Publicación 1756-RM003K-ES-P – Julio 2008 . DIV. SQRT. MOD. NEG. tres cabe tres veces dentro de 10. SQR. ADD. Bloque de funciones Publicación 1756-RM003K-ES-P – Julio 2008 269 . y arroja un residuo de uno. SUB.Instrucciones de cálculo/matemáticas (CPT. En este ejemplo. MUL. Lógica de escalera de relés Texto estructurado residuo := dividendo MOD divisor. ABS) Capítulo 6 Ejemplo: Divida dividend entre divisor y coloque el residuo en remainder. ADD. 270 Publicación 1756-RM003K-ES-P – Julio 2008 . SQR. MUL. Destination SINT INT DINT REAL tag tag para almacenar el resultado Formato inmediato tag Descripción halla la raíz cuadrada de este valor Texto estructurado dest := SQRT(source). ABS) Raíz cuadrada (SQR) Operandos: La instrucción SQR calcula la raíz cuadrada de Source y coloca el resultado en Destination.Capítulo 6 Instrucciones de cálculo/matemáticas (CPT. MOD. DIV. Use SQRT como función. NEG. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. Esta expresión calcula la raíz cuadrada de source y almacena el resultado en dest. Consulte el Apéndice C. Lógica de escalera de relés Operando Source Tipo SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensión de signo. SQRT. SUB. La opción predeterminada es establecido. Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripción La instrucción produjo un resultado válido. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados.0 2 Si Source es negativo. Descripción: Si Destination no es REAL. DIV. SQRT. Condiciones de fallo: ninguna Publicación 1756-RM003K-ES-P – Julio 2008 271 .Instrucciones de cálculo/matemáticas (CPT. Si se borra. NEG. la instrucción no se ejecuta y las salidas no se actualizan. SQR. Source REAL Halla la raíz cuadrada de este valor. MUL. ABS) Capítulo 6 Bloque de funciones Operando SQR tag Tipo FBD_MATH_ADVANCED Formato estructura Descripción estructura SQR Estructura FBD_MATH_ADVANCED Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. ADD. la instrucción maneja la porción fraccionaria del resultado de la siguiente manera: Si Source Entonces la porción fraccionaria del resultado se trunca se redondea Ejemplo no es REAL es REAL Source Destination Source Destination DINT DINT REAL DINT 3 1 3. la instrucción toma el valor absoluto de Source antes de calcular la raíz cuadrada. Resultado de la instrucción matemática. Se establecen indicadores de estado aritmético para esta salida. MOD. SUB. Destination = Source La condición de salida de renglón se establece como verdadera. DIV. SUB. MUL. MOD. EnableOut se establece. NEG. EnableOut se borra. Ninguna. ADD.Capítulo 6 Instrucciones de cálculo/matemáticas (CPT. post-escán La condición de salida de renglón se establece como falsa. 272 Publicación 1756-RM003K-ES-P – Julio 2008 . Ninguna. La condición de salida de renglón se establece como falsa. ABS) Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. post-escán Ninguna. SQR. SQRT. La instrucción se ejecuta. DIV. SQR. Lógica de escalera de relés Texto estructurado sqr_result := SQRT(value_1). MUL.Instrucciones de cálculo/matemáticas (CPT. MOD. Bloque de funciones Publicación 1756-RM003K-ES-P – Julio 2008 273 . ABS) Capítulo 6 Ejemplo: Calcule la raíz cuadrada de value_1 y coloque el resultado en sqr_result. ADD. SUB. NEG. SQRT. DIV. ABS) Cambiar signo (NEG) Operandos: La instrucción NEG cambia el signo de Source y coloca el resultado en Destination. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. ADD. MUL. SQRT. NEG. MOD. SQR. Use el signo menos “−” como operador en una expresión.Capítulo 6 Instrucciones de cálculo/matemáticas (CPT. Bloque de funciones Operando NEG tag Tipo FBD_MATH_ADVANCED Formato estructura Descripción estructura NEG 274 Publicación 1756-RM003K-ES-P – Julio 2008 . Lógica de escalera de relés Operando Source Tipo SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensión de signo. La expresión cambia el signo de source y almacena el resultado en dest. SUB. Destination SINT INT DINT REAL tag tag para almacenar el resultado Formato inmediato tag Descripción valor cuyo signo se cambia Texto estructurado dest := -source. Consulte el Apéndice C. Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripción La instrucción produjo un resultado válido. el resultado es positivo. ADD. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. EnableOut se borra. Ninguna. Condiciones de fallo: ninguna Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. Si se borra. Publicación 1756-RM003K-ES-P – Julio 2008 275 . NEG. La condición de salida de renglón se establece como falsa. Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. EnableOut se establece. SQRT. ABS) Capítulo 6 Estructura FBD_MATH Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. Descripción: Si usted cambia el signo de un valor negativo. la opción predeterminada es establecido Source REAL Valor cuyo signo se cambia. post-escán Ninguna. MUL. SUB. Resultado de la instrucción matemática. Destination = 0 − Source La condición de salida de renglón se establece como verdadera. Se establecen indicadores de estado aritmético para esta salida. el resultado es negativo. la instrucción no se ejecuta y las salidas no se actualizan. La instrucción se ejecuta. Si usted cambia el signo de un valor positivo.Instrucciones de cálculo/matemáticas (CPT. Ninguna. MOD. DIV. SQR. post-escán La condición de salida de renglón se establece como falsa. DIV. Lógica de escalera de relés Texto estructurado negate_result := -value_1. MUL. Bloque de funciones 276 Publicación 1756-RM003K-ES-P – Julio 2008 . MOD.Capítulo 6 Instrucciones de cálculo/matemáticas (CPT. ADD. ABS) Ejemplo: Cambie el signo de value_1 y coloque el resultado en negate_result. SQRT. NEG. SQR. SUB. SQR. ADD. ABS) Capítulo 6 Valor absoluto (ABS) Operandos: La instrucción ABS toma el valor absoluto de Source y coloca el resultado en Destination. Bloque de funciones Operando ABS tag Tipo FBD_MATH_ADVANCED Formato estructura Descripción estructura ABS Publicación 1756-RM003K-ES-P – Julio 2008 277 . SQRT. MUL. NEG. Esta expresión calcula el valor absoluto de source y almacena el resultado en dest. Lógica de escalera de relés Operando Source Tipo SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensión de signo. MOD. Consulte el Apéndice C. SUB. DIV. Destination SINT INT DINT REAL tag tag para almacenar el resultado Formato inmediato tag Descripción valor del cual hallar el valor absoluto Texto estructurado dest := ABS(source).Instrucciones de cálculo/matemáticas (CPT. Use ABS como función. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. SUB. Descripción: La instrucción ABS toma el valor absoluto de Source y coloca el resultado en Destination. Ninguna. La opción predeterminada es establecido. Condiciones de fallo: ninguna Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. Destination = | Source | La condición de salida de renglón se establece como verdadera.Capítulo 6 Instrucciones de cálculo/matemáticas (CPT. EnableOut se establece. ADD. la instrucción no se ejecuta y las salidas no se actualizan. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. post-escán La condición de salida de renglón se establece como falsa. SQRT. post-escán Ninguna. Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripción La instrucción produjo un resultado válido. Si se borra. ABS) Estructura FBD_MATH_ADVANCED Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. La condición de salida de renglón se establece como falsa. MUL. Se establecen indicadores de estado aritmético para esta salida. 278 Publicación 1756-RM003K-ES-P – Julio 2008 . La instrucción se ejecuta. EnableOut se borra. Resultado de la instrucción matemática. Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. SQR. Source REAL Valor del cual hallar el valor absoluto. Ninguna. DIV. NEG. MOD. ADD. SUB. Bloque de funciones Publicación 1756-RM003K-ES-P – Julio 2008 279 . Lógica de escalera de relés Texto estructurado value_1_absolute := ABS(value_1). ABS) Capítulo 6 Ejemplo: Coloque el valor absoluto de value_1 en value_1_absolute. MUL. SQRT.Instrucciones de cálculo/matemáticas (CPT. DIV. En este ejemplo. SQR. el valor absoluto de cuatro negativo es cuatro positivo. NEG. MOD. SQRT. ADD. NEG. SQR.Capítulo 6 Instrucciones de cálculo/matemáticas (CPT. DIV. ABS) Notas: 280 Publicación 1756-RM003K-ES-P – Julio 2008 . SUB. MOD. MUL. SWPB. Use otra programación en texto estructurado para lograr el mismo resultado. y la instrucción requiere más tiempo para ejecutarse. AND. Para las instrucciones de lógica de escalera de relés. BTDT. Verifique el bit S:V para determinar si se truncó el resultado. BAND. los tipos de datos que aparecen en negrita indican tipos de datos óptimos. MVM. BTD. CLR. típicamente DINT o REAL. OR. 281Publicación 1756-RM003K-ES-P – Julio 2008 281 . Las instrucciones se ejecutan más rápidamente y requieren menos memoria si todos los operandos de instrucción usan el mismo tipo de datos óptimos. Las instrucciones de movimiento modifican y mueven bits. BXOR. XOR. BNOT) Introducción Usted puede mezclar diferentes tipos de datos. Vea la descripción de la instrucción. NOT. MVMT. BOR. DINT o REAL (1) SWPB lógica de escalera de relés texto estructurado 300 No hay una instrucción equivalente en texto estructurado.Capítulo 7 Instrucciones de movimiento/lógicas (MOV. pero puede producirse pérdida de exactitud y error de redondeo. Si desea copiar un valor Use esta instrucción MOV Disponible en estos lenguajes lógica de escalera de relés texto estructurado(1) Vea la página 283 copiar una parte específica de un número entero copiar una parte específica de un número entero en el bloque de funciones mover bits dentro de un número entero o entre números enteros mover bits dentro de un número entero o entre números enteros en el bloque de funciones borrar un valor MVM MVMT lógica de escalera de relés texto estructurado bloque de funciones 285 288 BTD BTDT lógica de escalera de relés texto estructurado bloque de funciones 292 295 CLR texto estructurado(1) lógica de escalera de relés 298 reacomodar los bytes de un tag INT. Boolean OR (BOR) texto estructurado(2) bloque de funciones realizar un O exclusivo en dos entradas booleanas. BAND. BOR. BTD. las operaciones AND. BNOT) Las instrucciones lógicas realizan operaciones con los bits. complementar una entrada booleana. OR. AND. Boolean Exclusive OR (BXOR) Boolean NOT (BNOT) texto estructurado(2) bloque de funciones texto estructurado(2) bloque de funciones (1) (2) Vea la página 304 307 310 314 317 320 323 326 Texto estructurado solamente. CLR. OR.Capítulo 7 Instrucciones de movimiento/lógicas (MOV. NOT. Si desea: operación Y a nivel de bits Use esta instrucción: Bitwise AND &(1) Disponible en estos lenguajes lógica de escalera de relés texto estructurado(2) bloque de funciones operación O a nivel de bits Bitwise OR lógica de escalera de relés texto estructurado(2) bloque de funciones operación O exclusivo a nivel de bits Bitwise XOR lógica de escalera de relés texto estructurado(2) bloque de funciones operación NOT a nivel de bits Bitwise NOT lógica de escalera de relés texto estructurado(2) bloque de funciones Y lógico hasta ocho entradas booleanas. Boolean AND (BAND) texto estructurado(2) bloque de funciones O lógico hasta ocho entradas booleanas. MVM. XOR y NOT pueden ser lógicas o a nivel de bits. En texto estructurado. BXOR. BTDT. 282 Publicación 1756-RM003K-ES-P – Julio 2008 . MVMT. SWPB. XOR. Lógica de escalera de relés Operando: Source Tipo: SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensión de signo. BXOR. Source no cambia. NOT. MVMT. BOR. MVM. OR. BTDT. Consulte Apéndice C. AND. Programación de texto estructurado para obtener información sobre la sintaxis de expresiones y asignaciones en texto estructurado. XOR. Esta asignación mueve el valor de source a dest. Descripción: La instrucción MOV copia Source en Destination. Source no cambia. SWPB. BNOT) Capítulo 7 Mover (MOV) Operandos: La instrucción MOV copia Source en Destination. CLR. Condiciones de fallo: ninguna Publicación 1756-RM003K-ES-P – Julio 2008 283 . Destination SINT INT DINT REAL tag tag para almacenar el resultado Formato inmediato tag Descripción: valor a mover (copiar) Texto estructurado dest := source.Instrucciones de movimiento/lógicas (MOV. Use una asignación “:=” con una expresión. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. BAND. BTD. Lógica de escalera de relés Texto estructurado value_2 := value _1. La instrucción copia Source en Destination. AND. BXOR. BTDT. BOR. BTD. OR. Ejemplo: Mueva los datos en value_1 a value_2. MVMT. XOR.Capítulo 7 Instrucciones de movimiento/lógicas (MOV. SWPB. NOT. post-escán La condición de salida de renglón se establece como falsa. BAND. 284 Publicación 1756-RM003K-ES-P – Julio 2008 . La condición de salida de renglón se establece como falsa. CLR. BNOT) Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. MVM. La condición de salida de renglón se establece como verdadera. BTD. Esta instrucción está disponible en texto estructurado como MVMT. BOR. XOR. Esta instrucción está disponible en texto estructurado y en bloque de funciones como MVMT. OR. NOT. vea la página 288. Operandos: Lógica de escalera de relés Operando Source Tipo SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros. CLR. BAND. Publicación 1756-RM003K-ES-P – Julio 2008 285 . O puede combinar lógica a nivel de bits dentro de una expresión y asignar el resultado al destino. Un número “0” en la máscara significa que se bloquea el bit de datos. Destination SINT INT DINT tag tag para almacenar el resultado inmediato tag qué bits se bloquean o se pasan Formato inmediato tag Descripción valor a mover Texto estructurado dest := (Dest AND NOT (Mask)) OR (Source AND Mask). BNOT) Capítulo 7 Mover con máscara (MVM) La instrucción MVM copia Source a un Destination y permite enmascarar porciones de los datos. Programación de texto estructurado para obtener información sobre la sintaxis de expresiones y asignaciones en texto estructurado.Instrucciones de movimiento/lógicas (MOV. la instrucción llena con ceros los bits superiores de los tipos de datos enteros menores para que tengan el mismo tamaño que el tipo de datos mayor. SWPB. Si mezcla diferentes tipos de datos enteros. BXOR. Mask SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros. BTDT. Esta expresión realiza un movimiento con máscara en Source. AND. Consulte Apéndice C. Un número “1” en la máscara significa que se pasa el bit de datos. MVM. MVMT. Descripción: La instrucción MVM usa una máscara para pasar o bloquear bits de datos de Source. MVMT. post-escán La condición de salida de renglón se establece como falsa. 2#00110011 Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. XOR. SWPB. preceda el valor con el prefijo correcto. CLR. BXOR. Prefijo: 16# Descripción hexadecimal por ejemplo. BOR. 16#0F0F 8# octal por ejemplo. MVM. BNOT) Introduzca un valor de máscara inmediato Cuando usted introduce una máscara. el software de programación cambia de manera predeterminada a valores decimales. Los bits sin máscara en Destination permanecen sin ningún cambio. NOT. La instrucción pasa Source a través de la máscara y copia el resultado en Destination. Si desea introducir una máscara usando otro formato. AND. La condición de salida de renglón se establece como verdadera.Capítulo 7 Instrucciones de movimiento/lógicas (MOV. BTDT. BAND. La condición de salida de renglón se establece como falsa. BTD. OR. 286 Publicación 1756-RM003K-ES-P – Julio 2008 . condiciones de fallo ninguna Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. 8#16 2# binario por ejemplo. Instrucciones de movimiento/lógicas (MOV. Publicación 1756-RM003K-ES-P – Julio 2008 287 . BNOT) Capítulo 7 Ejemplo: Copie datos de value_a a value_b. XOR. mientras permite que los datos sean enmascarados (un 0 enmascara los datos en value_a). NOT. OR. BTDT. MVMT. 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. AND. SWPB. MVM. BAND. BXOR. Lógica de escalera de relés Texto estructurado value_b := (value_b AND NOT (mask_2)) OR (value_a AND mask_2). BOR. BTD. CLR. NOT. la instrucción se ejecuta. La instrucción se ejecuta. Operandos: MVMT(MVMT_tag). Texto estructurado Ningún efecto. MVMT. OR. BAND. MVM. Válido = cualquier número entero Target DINT Valor de entrada para mover a Dest antes de mover los bits de Source a través de la máscara. Seguidamente la instrucción compara Source enmascarado con Destination y hace los cambios requeridos en Destination. XOR. AND. Texto estructurado Variable MVMT tag Tipo FBD_MASKED_MOVE Formato estructura Descripción: estructura MVMT Bloque de funciones Operando MVMT tag Tipo FBD_MASKED_MOVE Formato estructura Descripción estructura MVMT Estructura FBD_MASKED_MOVE Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Bloque de funciones Si se borra. Válido = cualquier número entero Mask DINT Máscara de bits para mover de Source a Dest. vea la página 285. Esta instrucción está disponible en lógica de escalera de relés como MVM. Source DINT Valor de entrada para mover el destino con base en el valor de la máscara. la instrucción no se ejecuta y las salidas no se actualizan. SWPB. Todos los bits que se establecen en cero hacen que los bits correspondientes no se muevan de Source a Dest. BTD. Target y Source permanecen sin ningún cambio. BXOR. CLR. Todos los bits establecidos en uno hacen que los bits correspondientes se muevan de Source a Dest. BNOT) Movimiento enmascarado con receptor (MVMT) La instrucción MVMT primero copia Target en Destination. BTDT.Capítulo 7 Instrucciones de movimiento/lógicas (MOV. BOR. La opción predeterminada es establecido. Válido = cualquier número entero 288 Publicación 1756-RM003K-ES-P – Julio 2008 . Si se establece. Si desea introducir una máscara usando otro formato. la instrucción MVMT usa una máscara para pasar o bloquear bits de datos de Source. Un número “0” en la máscara significa que se bloquea el bit de datos. SWPB. Introduzca un valor de máscara inmediato usando una referencia de entrada Cuando usted introduce una máscara. Un número “1” en la máscara significa que se pasa el bit de datos. Prefijo 16# Descripción hexadecimal por ejemplo. BTD. AND. BXOR. CLR. 2#00110011 Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. la instrucción llena con ceros los bits superiores de los tipos de datos enteros menores para que tengan el mismo tamaño que el tipo de datos mayor. preceda el valor con el prefijo correcto. 16#0F0F 8# octal por ejemplo. BOR. 8#16 2# binario por ejemplo. el software de programación cambia de manera predeterminada a valores decimales. Descripción: Cuando se habilita. Condiciones de fallo: ninguna Publicación 1756-RM003K-ES-P – Julio 2008 289 . Si mezcla diferentes tipos de datos enteros. OR. Se establecen indicadores de estado aritmético para esta salida. BNOT) Capítulo 7 Parámetro de salida Tipo de datos EnableOut Dest BOOL DINT Descripción La instrucción produjo un resultado válido. XOR.Instrucciones de movimiento/lógicas (MOV. MVMT. MVM. BAND. NOT. BTDT. Resultado de la instrucción de movimiento enmascarado. primer escán de instrucción Ninguna. La instrucción se ejecuta. EnableOut se borra. MVMT(MVMT_01). a. EnableIn siempre se establece.Source := value _1. BOR.Mask := mask1. 290 Publicación 1756-RM003K-ES-P – Julio 2008 . Un número 0 en la máscara impide que la instrucción compare ese bit (representado por x en el ejemplo). Ninguna. Texto estructurado MVMT_01. OR. value_masked := MVMT_01. BAND. Ninguna. BNOT) Ejecución: Condición preescán primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción de bloque de funciones Ninguna. XOR. MVM. BTD. MVMT. NOT. 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.Dest. Enmascare Source y compárelo con Dest. MVMT_01. n. Copie el receptor a Dest.Target := target. EnableOut se establece. AND. Ejemplo: 1. la instrucción no efectúa ninguna operación y las salidas no se actualizan. La instrucción se ejecuta. Ninguna. BTDT. 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.Capítulo 7 Instrucciones de movimiento/lógicas (MOV. BXOR. Ninguna. SWPB. Source y Target permanecen sin ningún cambio. post-escán Ninguna. MVMT_01. CLR. Cualquier cambio requerido se hace en Dest. Acción de texto estructurado Ninguna. AND. BOR. BTD. BAND. BNOT) Capítulo 7 Bloque de funciones Publicación 1756-RM003K-ES-P – Julio 2008 291 . MVM. NOT. OR. MVMT. BTDT. XOR. BXOR. SWPB. CLR.Instrucciones de movimiento/lógicas (MOV. BTD. Si la longitud del campo de bits se extiende más allá de Destination. BXOR. desplaza los bits a la posición apropiada y escribe los bits en Destination. BAND. AND. la instrucción BTD copia un grupo de bits de Source a Destination. la instrucción llena con ceros los bits superiores de los tipos de datos enteros menores para que tengan el mismo tamaño que el tipo de datos mayor. la instrucción no guarda los bits adicionales. El grupo de bits es identificado por el bit de Source (el número de bit más bajo del grupo) y la longitud (el número de bits a copiar). XOR. CLR. NOT. MVMT. MVM. El bit de Destination identifica el número de bit menor con el cual se comienza en Destination. 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) número del bit (número del bit más bajo) desde donde empezar a copiar bits desde Source debe estar dentro del rango válido para el tipo de datos del destino número de bits que se van a mover tag número del bit (número del bit más bajo) desde donde empezar el movimiento debe estar dentro del rango válido para el tipo de datos de Source tag a donde mover los bits Formato inmediato tag Descripción el tag que contiene los bits a mover Descripción: Cuando se habilita.Capítulo 7 Instrucciones de movimiento/lógicas (MOV. Si mezcla diferentes tipos de datos enteros. Source no cambia. BNOT) Distribuir campo de bits (BTD) La instrucción BTD copia los bits especificados de Source. 292 Publicación 1756-RM003K-ES-P – Julio 2008 . Operandos: Lógica de escalera de relés Operando Source Tipo SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros. SWPB. vea la página 295. BOR. BTDT. OR. Esta instrucción está disponible en texto estructurado y en bloque de funciones como BTDT. Los bits adicionales no pasan a la próxima palabra. La condición de salida de renglón se establece como verdadera. MVM. Publicación 1756-RM003K-ES-P – Julio 2008 293 . SWPB. La condición de salida de renglón se establece como falsa. AND. la instrucción BTD transfiere los bits dentro de value_1. MVMT. post-escán La condición de salida de renglón se establece como falsa. 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 instrucción BTD value_1 después 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 instrucción BTD Las casillas sombreadas muestran los bits que cambiaron en value_1. BOR. XOR. NOT. BNOT) Capítulo 7 Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. CLR.Instrucciones de movimiento/lógicas (MOV. Ejemplo 1: Una vez habilitada. La instrucción copia y desplaza los bits de Source a Destination. BAND. BTD. BXOR. OR. BTDT. MVM. BXOR.Capítulo 7 Instrucciones de movimiento/lógicas (MOV. AND. BTD. MVMT. OR. 294 Publicación 1756-RM003K-ES-P – Julio 2008 . 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 instrucción BTD value_2 después 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 instrucción BTD Las casillas sombreadas muestran los bits que cambiaron en value_2. BAND. BOR. NOT. SWPB. XOR. BNOT) Ejemplo 2: Una vez habilitada. la instrucción BTD mueve 10 bits de value_1 a value_2. BTDT. CLR. la instrucción no se ejecuta y las salidas no se actualizan. Válido = 0-31 Publicación 1756-RM003K-ES-P – Julio 2008 295 . la instrucción BTD copia los bits especificados desde Source. Seguidamente. Válido = cualquier número entero SourceBit DINT La posición de bit en Source (el número de bit más bajo desde el cual se inicia la transferencia). SWPB. Source DINT El valor de entrada que contiene los bits que se transfieren a Destination. La instrucción se ejecuta. BOR. Texto estructurado Variable BTDT tag Tipo FBD_BIT_FIELD_DISTRIBUTE Formato estructura Descripción estructura BTDT Bloque de funciones Operando BTDT tag Tipo FBD_BIT_FIELD_DISTRIBUTE Formato estructura Descripción estructura BTDT Estructura FBD_BIT_FIELD_DISTRIBUTE Parámetro de entrada EnableIn Tipo de datos BOOL Descripción: Bloque de funciones: Si se borra. BTD. Operandos: BTDT(BTDT_tag).Instrucciones de movimiento/lógicas (MOV. BNOT) Capítulo 7 Distribuir campo de bits con receptor (BTDT) La instrucción BTDT primero copia Target en Destination. BAND. Si se establece. Válido = 0-31 Length DINT Número de bits que se van a mover Válido = 1-32 DestBit DINT La posición de bit en Dest (el número de bit más bajo al cual se comienza a copiar bits). MVMT. MVM. desplaza los bits a la posición apropiada y escribe los bits en Destination. XOR. Target y Source no cambian. La opción predeterminada es establecido. OR. CLR. BTDT. NOT. Esta instrucción está disponible en lógica de escalera de relés como BTD. Texto estructurado: Ningún efecto. AND. BXOR. la instrucción se ejecuta. vea la página 292. MVMT. la instrucción no efectúa ninguna operación y las salidas no se actualizan. n. Resultado de la operación del traslado de bits. NOT. EnableOut se establece. BAND. a. BOR. Ninguna. El bit de Destination identifica el número de bit menor con el cual se comienza en Destination. EnableOut se borra. Los bits adicionales no pasan a la próxima palabra. El grupo de bits es identificado por el bit de Source (el número de bit más bajo del grupo) y Length (número de bits a copiar). post-escán Ninguna. Source no cambia. OR. Válido = cualquier número entero Parámetro de salida: EnableOut Dest Tipo de datos: BOOL DINT Descripción: La instrucción produjo un resultado válido. SWPB. CLR.Capítulo 7 Instrucciones de movimiento/lógicas (MOV. Ninguna. La instrucción se ejecuta. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados Condiciones de fallo: ninguna Ejecución: Condición preescán primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción de bloque de funciones Ninguna. Si la longitud del campo de bits se extiende más allá de Destination. Ninguna. La instrucción se ejecuta. BTDT. la instrucción no guarda los bits adicionales. XOR. Ninguna. Se establecen indicadores de estado aritmético para esta salida. AND. BTD. BNOT) Parámetro de entrada Target Tipo de datos DINT Descripción: Valor de entrada que se transfiere a Dest antes de transferir los bits de Source. 296 Publicación 1756-RM003K-ES-P – Julio 2008 . MVM. la instrucción BTD copia un grupo de bits de Source a Destination. Descripción: Cuando se habilita. Acción de texto estructurado Ninguna. BXOR. primer escán de instrucción Ninguna. EnableIn siempre se establece. CLR. NOT. BTDT. BTDT_01. 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. BTDT_01. distributed_value := BTDT_01.Instrucciones de movimiento/lógicas (MOV. El controlador copia el receptor en Destination. SWPB. 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. BXOR.Target := target. Bloque de funciones Publicación 1756-RM003K-ES-P – Julio 2008 297 . BAND. XOR. MVMT. AND.Source := source. OR. BTDT_01.Length := length. Source y Target no cambian. BTDT(BTDT_01).Dest. BTD.DestBit := dest_bit. MVM. BTDT_01. BOR.SourceBit := source_bit. SourceBit y Length especifican qué bits en Source se copian en Destination a partir de DestBit. BNOT) Capítulo 7 Ejemplo: 1. BXOR. Esta declaración de asignación borra dest. BAND. Descripción: La instrucción CLR borra todos los bits de Destination. post-escán La condición de salida de renglón se establece como falsa. La condición de salida de renglón se establece como verdadera. MVMT. MVM. En lugar de ello. La condición de salida de renglón se establece como falsa. XOR. La instrucción borra Destination. Texto estructurado El texto estructurado no cuenta con la instrucción CLR.Capítulo 7 Instrucciones de movimiento/lógicas (MOV. Lógica de escalera de relés Operando Destination Tipo SINT INT DINT REAL Formato tag Descripción tag que se borra dest := 0. Condiciones de fallo: ninguna Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. BTD. BNOT) Borrar (CLR) Operandos: La instrucción CLR borra (pone en cero) todos los bits de Destination. 298 Publicación 1756-RM003K-ES-P – Julio 2008 . BTDT. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. asigne 0 al tag que desea borrar. AND. CLR. Consulte Apéndice C. NOT. OR. BOR. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones y declaraciones de asignación en texto estructurado. SWPB. MVM. Lógica de escalera de relés Texto estructurado value := 0. BNOT) Capítulo 7 Ejemplo: Ponga en cero todos los bits de value. AND. Publicación 1756-RM003K-ES-P – Julio 2008 299 . SWPB. XOR. BTDT. NOT. BXOR. BTD. BOR. OR. CLR. BAND. MVMT.Instrucciones de movimiento/lógicas (MOV. AND.Capítulo 7 Instrucciones de movimiento/lógicas (MOV. BTDT. 300 Publicación 1756-RM003K-ES-P – Julio 2008 . 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. Lógica de escalera de relés 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 patrón (cada letra representa un byte diferente) n. BTD. BNOT) Intercambiar byte (SWPB) Operandos: La instrucción SWPB reacomoda los bytes de un valor. BOR. BXOR. XOR. MVMT. SWPB. BAND. a.Dest). NOT. Si selecciona el modo de orden HIGH/LOW. MVM. CLR. OR. Los operandos son los mismos que los de la instrucción SWPB de lógica de escalera de relés. introdúzcalo como HIGHLOW o HIGH_LOW (sin la barra diagonal).OrderMode. BXOR. a. Ninguna. La instrucción reacomoda los bytes especificados. a. n. como se muestra a continuación. NOT. BAND. MVM. BTD. MVMT. n. La condición de salida de renglón se establece como falsa. XOR. Las instrucciones de lectura y escritura ASCII (ARD. CLR. Cuando usted lee o escribe caracteres ASCII. generalmente no necesita intercambiar caracteres. EnableIn siempre se establece. n. La condición de salida de renglón se establece como verdadera. BNOT) Capítulo 7 Descripción: La instrucción SWPB reacomoda el orden de los bytes de Source y coloca el resultado en Destination. BOR.Instrucciones de movimiento/lógicas (MOV. AWA. lector de códigos de barras BA 42969 Nombre del tag bar_code[0] Valor AB Estilo ASCII Tipo INT 42968 AB Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera EnableIn se establece Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. BTDT. AWT) automáticamente intercambian caracteres. OR. SWPB. ARL. Acción de texto estructurado Ninguna. AND. La instrucción se ejecuta. La condición de salida de renglón se establece como falsa. ejecución de la instrucción post-escán La instrucción reacomoda los bytes especificados. Publicación 1756-RM003K-ES-P – Julio 2008 301 . a. SWPB(DINT_1. cuando index es igual a 0. • La instrucción SWPB invierte los bytes del número de elemento indicado por el valor de index. MVM.WORD. archivo Swap_Bytes_in_Array. • Si index es igual a array_length. en un diferente Destination. Determine cuándo la instrucción SWPB actuó sobre todos los elementos en la matriz. La instrucción SIZE encuentra el número de elementos en array y almacena ese valor en array_length.DINT_1_swap_word). continúe con el siguiente elemento en la matriz. 1. 2. Lógica de escalera de relés Texto estructurado SWPB(DINT_1. • Si index es menor que el número de elementos en la matriz (array_length). El estilo de visualización es ASCII.ACD. Una instrucción subsiguiente usa este valor para determinar cuándo actuó la rutina en todos los elementos de la matriz. Ejemplo 2: El siguiente ejemplo invierte los bytes en cada elemento de una matriz. abra la carpeta RSLogix 5000\Projects\Samples. AND. SWPB. la instrucción SWPB actúa sobre el siguiente elemento en array.HIGHLOW. CLR. Cada instrucción coloca los bytes. y cada carácter representa un byte. BOR. BTD. 302 Publicación 1756-RM003K-ES-P – Julio 2008 . La próxima vez que se ejecute la instrucción. en el nuevo orden. Invierta los bytes en un elemento de array. 3. la instrucción SWPB actúa sobre array[0]. • La instrucción ADD incrementa index.DINT_1_reverse). Para un proyecto RSLogix 5000 que contiene este ejemplo. SWPB(DINT_1.DINT_1_swap_high_low). NOT. OR. Inicialice los tags. Por ejemplo. MVMT.REVERSE. BTDT. XOR. BNOT) Ejemplo 1: Las tres instrucciones SWPB reacomodan los bytes de DINT_1 según un modo de orden diferente. significa que SWPB actuó sobre todos los elementos en la matriz.Capítulo 7 Instrucciones de movimiento/lógicas (MOV. BXOR. BAND. OR. Texto estructurado index := 0. MVM. SIZE (array[0]. SWPB. BNOT) Capítulo 7 Lógica de escalera de relés Inicialice los tags. Determine si la instrucción SWPB actuó sobre todos los elementos en la matriz. NOT. index := index + 1. BXOR. Invierta los bytes.Instrucciones de movimiento/lógicas (MOV.array_bytes_reverse[index]). AND. Publicación 1756-RM003K-ES-P – Julio 2008 303 .array_length). BOR. UNTIL(index >= array_length)END_REPEAT. BTD. BAND. MVMT. REPEAT SWPB(array[index]. XOR. CLR.0.REVERSE. BTDT. Destination SINT INT DINT tag almacena el resultado inmediato tag valor con que se a realiza la operación AND con Source A Formato inmediato tag Descripción valor con que se realiza la operación Y con Source B Texto estructurado dest := sourceA AND sourceB Use AND o el signo “&” como operador dentro de una expresión. AND. BXOR. Esta expresión evalúa sourceA AND sourceB. BOR. NOT. Consulte el Apéndice C. BNOT) Y a nivel de bits (AND) La instrucción AND realiza una operación Y a nivel de bits usando los bits en Source A y Source B. BAND. SWPB. CLR. MVMT. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. MVM.Capítulo 7 Instrucciones de movimiento/lógicas (MOV. Bloque de funciones Operando AND tag Tipo FBD_LOGICAL Formato estructura Descripción estructura AND 304 Publicación 1756-RM003K-ES-P – Julio 2008 . BTDT. vea la página 317. OR. y coloca el resultado en Destination. Para realizar una operación lógica Y. XOR. Operandos: Lógica de escalera de relés Operando Source A Tipo SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros. BTD. Source B SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros. Se establecen indicadores de estado aritmético para esta salida. BOR. la instrucción llena con ceros los bits superiores de los tipos de datos enteros menores para que tengan el mismo tamaño que el tipo de datos mayor. NOT. CLR. BXOR. OR. La opción predeterminada es establecido. Publicación 1756-RM003K-ES-P – Julio 2008 305 .Instrucciones de movimiento/lógicas (MOV. Resultado de la instrucción. la instrucción no se ejecuta y las salidas no se actualizan. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. Condiciones de fallo: ninguna Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. BAND. Descripción: Una vez habilitada. post-escán La condición de salida de renglón se establece como falsa. la instrucción evalúa la operación 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. MVM. BTDT. La instrucción realiza una operación Y a nivel de bits. Si se borra. BNOT) Capítulo 7 Estructura FBD_LOGICAL Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. AND. XOR. SWPB. La condición de salida de renglón se establece como falsa. BTD. MVMT. La condición de salida de renglón se establece como verdadera. SourceA DINT Valor con que se realiza la operación AND con SourceB Válido = cualquier número entero SourceB DINT Valor con que se realiza la operación AND con SourceA Válido = cualquier número entero Parámetro de salida Tipo de datos EnableOut Dest BOOL DINT Descripción La instrucción produjo un resultado válido. Ninguna. Ejemplo: Cuando se habilita.Capítulo 7 Instrucciones de movimiento/lógicas (MOV. BOR. CLR. EnableOut se borra. NOT. La instrucción se ejecuta. BXOR. MVM. SWPB. post-escán Ninguna. XOR. BNOT) Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. MVMT. OR. AND. la instrucción AND realiza una operación Y a nivel de bits en SourceA y SourceB y coloca el resultado en Dest. BAND. Ninguna. EnableOut se establece. Bloque de funciones 306 Publicación 1756-RM003K-ES-P – Julio 2008 . BTD. 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 Lógica de escalera de relés Texto estructurado value_result_and := value_1 AND value_2. BTDT. Consulte el Apéndice C. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. AND. BTDT. OR. BOR. Para realizar una operación lógica O. MVMT. y coloca el resultado en Destination. SWPB. Operandos: Lógica de escalera de relés Operando Source A Tipo SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros. vea la página 320. Destination SINT INT DINT tag almacena el resultado inmediato tag valor con que se realiza la operación O con Source A Formato inmediato tag Descripción valor con que se realiza la operación O con Source B Texto estructurado dest := sourceA OR sourceB Use OR como operador dentro de una expresión. BXOR. BTD. BNOT) Capítulo 7 O a nivel de bits (OR) La instrucción OR realiza una operación O a nivel de bits usando los bits en Source A y Source B. Bloque de funciones Operando OR tag Tipo FBD_LOGICAL Formato estructura Descripción estructura OR Publicación 1756-RM003K-ES-P – Julio 2008 307 . NOT. XOR. Source B SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros. BAND.Instrucciones de movimiento/lógicas (MOV. MVM. CLR. Esta expresión evalúa sourceA OR sourceB. MVMT. La condición de salida de renglón se establece como verdadera. Descripción: Una vez habilitada. Resultado de la instrucción. post-escán La condición de salida de renglón se establece como falsa. la instrucción evalúa la operación 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. NOT. BAND. La opción predeterminada es establecido. la instrucción llena con ceros los bits superiores de los tipos de datos enteros menores para que tengan el mismo tamaño que el tipo de datos mayor. 308 Publicación 1756-RM003K-ES-P – Julio 2008 . BXOR. CLR. AND. BNOT) Estructura FBD_LOGICAL Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. OR. Si se borra. BOR.Capítulo 7 Instrucciones de movimiento/lógicas (MOV. BTDT. XOR. La condición de salida de renglón se establece como falsa. La instrucción realiza una operación O a nivel de bits. MVM. SWPB. Condiciones de fallo: ninguna Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. Se establecen indicadores de estado aritmético para esta salida. la instrucción no se ejecuta y las salidas no se actualizan. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. SourceA DINT Valor con que se realiza la operación O con SourceB Válido = cualquier número entero SourceB DINT Valor con que se realiza la operación O con SourceA Válido = cualquier número entero Parámetro de salida Tipo de datos EnableOut Dest BOOL DINT Descripción La instrucción produjo un resultado válido. BTD. Ninguna. BXOR. EnableOut se establece. NOT. MVM. XOR.Instrucciones de movimiento/lógicas (MOV. BAND. CLR. Ejemplo: Cuando se habilita. La instrucción se ejecuta. la instrucción OR realiza una operación O a nivel de bits en SourceA y SourceB y coloca el resultado en Dest. BTD. BTDT. AND. SWPB. BOR. post-escán Ninguna. Bloque de funciones Publicación 1756-RM003K-ES-P – Julio 2008 309 . EnableOut se borra. OR. MVMT. 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 Lógica de escalera de relés Texto estructurado value_result_or := value_1 OR value_2. Ninguna. BNOT) Capítulo 7 Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. BTDT. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. Operandos: Lógica de escalera de relés Operando Source A Tipo SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros. MVMT. BTD. OR. y coloca el resultado en Destination. Para realizar una operación lógica XO. Esta expresión evalúa sourceA XOR sourceB. BOR.Capítulo 7 Instrucciones de movimiento/lógicas (MOV. Bloque de funciones Operando XOR tag Tipo FBD_LOGICAL Formato estructura Descripción estructura XOR 310 Publicación 1756-RM003K-ES-P – Julio 2008 . NOT. AND. Source B SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros. vea la página 323. BNOT) O exclusivo a nivel de bits (XOR) La instrucción XOR realiza una operación O exclusivo a nivel de bits usando los bits en Source A y Source B. BAND. XOR. SWPB. CLR. MVM. Destination SINT INT DINT tag almacena el resultado inmediato tag valor con que se realiza la operación XOR con Source A Formato inmediato tag Descripción valor con que se realiza la operación XOR con Source B Texto estructurado dest := sourceA XOR sourceB Use XOR como operador dentro de una expresión. BXOR. Consulte el Apéndice C. BNOT) Capítulo 7 Estructura FBD_LOGICAL Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. Si se borra. BTDT. la instrucción llena con ceros los bits superiores de los tipos de datos enteros menores para que tengan el mismo tamaño que el tipo de datos mayor. XOR. BTD. Publicación 1756-RM003K-ES-P – Julio 2008 311 . la instrucción evalúa la función 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 condición de salida de renglón se establece como falsa. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. La condición de salida de renglón se establece como verdadera. OR. Condiciones de fallo: ninguna Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. post-escán La condición de salida de renglón se establece como falsa. La opción predeterminada es establecido. BAND. AND. MVM.Instrucciones de movimiento/lógicas (MOV. La instrucción realiza una operación O a nivel de bits. SourceA DINT Valor con que se realiza la operación XOR con SourceB Válido = cualquier número entero SourceB DINT Valor con que se realiza la operación XOR con SourceA Válido = cualquier número entero Parámetro de salida Tipo de datos EnableOut Dest BOOL DINT Descripción La instrucción produjo un resultado válido. SWPB. CLR. MVMT. Se establecen indicadores de estado aritmético para esta salida. BXOR. BOR. la instrucción no se ejecuta y las salidas no se actualizan. Descripción: Una vez habilitada. NOT. Resultado de la instrucción. BTDT. OR. post-escán Ninguna. EnableOut se borra. BNOT) Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. AND. XOR. Ninguna. La instrucción se ejecuta. BAND. 312 Publicación 1756-RM003K-ES-P – Julio 2008 . NOT. MVMT. CLR. la instrucción AND realiza una operación 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 Lógica de escalera de relés Texto estructurado value_result_xor := value_1 XOR value_2. BOR. EnableOut se establece.Capítulo 7 Instrucciones de movimiento/lógicas (MOV. Ejemplo: Cuando se habilita. BTD. BXOR. SWPB. MVM. Ninguna. BTDT. AND. BTD. NOT. BXOR. XOR. MVMT. BOR. BNOT) Capítulo 7 Bloque de funciones Publicación 1756-RM003K-ES-P – Julio 2008 313 . SWPB. OR.Instrucciones de movimiento/lógicas (MOV. MVM. CLR. BAND. AND. BXOR. BTDT. MVM. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. BOR. Bloque de funciones Operando NOT tag Tipo FBD_LOGICAL Formato estructura Descripción estructura NOT 314 Publicación 1756-RM003K-ES-P – Julio 2008 . Destination SINT INT DINT tag almacena el resultado Formato inmediato tag Descripción valor sobre el cual se aplicará la operación NO Texto estructurado dest := NOT source Use NOT como operador dentro de una expresión. XOR. BAND. Esta expresión evalúa source con la operación NOT. Para realizar una operación lógica NO. Operandos: Lógica de escalera de relés Operando Source Tipo SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros. BNOT) NO a nivel de bits (NOT) La instrucción NOT realiza un NO a nivel de bits usando los bits en Source y coloca el resultado en Destination. Consulte el Apéndice C. NOT.Capítulo 7 Instrucciones de movimiento/lógicas (MOV. MVMT. CLR. SWPB. BTD. vea la página 326. OR. XOR. MVM. BTDT. NOT. MVMT. la opción predeterminada es establecido Source DINT Valor sobre el cual se aplicará la operación NO Válido = cualquier número entero Parámetro de salida Tipo de datos EnableOut Dest BOOL DINT Descripción La instrucción produjo un resultado válido. Si se borra. BAND. La instrucción realiza una operación NO a nivel de bits. la instrucción evalúa la operación NO: Si el bit en Source es: 0 1 El bit en Destination es: 1 0 Si mezcla diferentes tipos de datos enteros. La condición de salida de renglón se establece como falsa. Resultado de la instrucción. BXOR. BTD. SWPB. Condiciones de fallo: ninguna Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. AND. la instrucción llena con ceros los bits superiores de los tipos de datos enteros menores para que tengan el mismo tamaño que el tipo de datos mayor. La condición de salida de renglón se establece como verdadera. OR. Publicación 1756-RM003K-ES-P – Julio 2008 315 . CLR. BNOT) Capítulo 7 Estructura FBD_LOGICAL Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. BOR. Descripción: Una vez habilitada.Instrucciones de movimiento/lógicas (MOV. la instrucción no se ejecuta y las salidas no se actualizan. Se establecen indicadores de estado aritmético para esta salida. post-escán La condición de salida de renglón se establece como falsa. la instrucción NOT realiza una operación NO a nivel de bits en Source y coloca el resultado en Dest. La instrucción se ejecuta. Ejemplo: Cuando se habilita. Bloque de funciones 316 Publicación 1756-RM003K-ES-P – Julio 2008 . 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 Lógica de escalera de relés Texto estructurado value_result_not := NOT value_1. BNOT) Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. EnableOut se establece. BOR. MVM. Ninguna. BXOR. BAND. BTDT. AND. NOT. Ninguna. post-escán Ninguna. BTD. SWPB. MVMT.Capítulo 7 Instrucciones de movimiento/lógicas (MOV. XOR. CLR. OR. EnableOut se borra. La opción predeterminada es establecido. XOR. Esta expresión evalúa si tanto operandA como operandB están establecidos (verdaderos). Consulte el Apéndice C. BNOT) Capítulo 7 Y booleano (BAND) La instrucción BAND aplica la operación lógica Y a 8 entradas booleanas como máximo. Publicación 1756-RM003K-ES-P – Julio 2008 317 . BOR. BTD. MVM. END_IF. In6 BOOL Sexta entrada booleana. In5 BOOL Quinta entrada booleana. La opción predeterminada es establecido. Use AND o el signo “&” como operador dentro de una expresión. La opción predeterminada es establecido. In4 BOOL Cuarta entrada booleana. NOT. CLR.Instrucciones de movimiento/lógicas (MOV. Si se borra. BAND. SWPB. BXOR. In1 BOOL Primera entrada booleana. AND. La opción predeterminada es establecido. la instrucción no se ejecuta y las salidas no se actualizan. Operandos: Texto estructurado IF operandA AND operandB THEN <statement>. Para realizar una operación Y a nivel de bits. Los operandos deben ser valores BOOL o expresiones que resultan en valores BOOL. La opción predeterminada es establecido. In3 BOOL Tercera entrada booleana. La opción predeterminada es establecido. OR. Bloque de funciones Operando BAND tag Tipo FBD_BOOLEAN_AND Formato estructura Descripción estructura BAND Estructura FBD_BOOLEAN_AND Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. para obtener información sobre la sintaxis de las expresiones en texto estructurado. La opción predeterminada es establecido. BTDT. vea la página 304. In2 BOOL Segunda entrada booleana. MVMT. La opción predeterminada es establecido. In7 BOOL Séptima entrada booleana. SWPB. XOR. 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. BTDT. La salida de la instrucción. EnableOut se borra. Descripción: La instrucción BAND aplica la operación lógica Y a 8 entradas booleanas como máximo. BXOR. Out = In1 AND In2 AND In3 AND In4 AND In5 AND In6 AND In7 AND In8 Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción de bloque de funciones Ninguna. Ninguna. EnableOut se establece.Capítulo 7 Instrucciones de movimiento/lógicas (MOV. La instrucción se ejecuta. BOR. La opción predeterminada es establecido. NOT. MVM. MVMT. ésta se pone en uno (1) de manera predeterminada. CLR. Ninguna. OR. BNOT) Parámetro de entrada In8 Tipo de datos BOOL Descripción Octava entrada booleana. post-escán Ninguna. 318 Publicación 1756-RM003K-ES-P – Julio 2008 . Si no se usa una entrada. BTD. BAND. AND. Ejemplo 1: Este ejemplo efectúa la operación Y en bool_in1 y bool_in2 y coloca el resultado en value_result_and. Parámetro de salida Tipo de datos EnableOut Out BOOL BOOL Descripción Habilitación de salida. XOR. SWPB. light1 se establece (se enciende). AND. Publicación 1756-RM003K-ES-P – Julio 2008 319 . MVM. BAND. END_IF. BOR. BXOR. MVMT.Instrucciones de movimiento/lógicas (MOV. Texto estructurado IF bool_in1 AND bool_in2 THEN light1 := 1. OR. De lo contrario. ELSE light1 := 0. BTD. BNOT) Capítulo 7 Bloque de funciones Ejemplo 2: Si bool_in1 y bool_in2 se establecen (son verdaderos). NOT. light1 se borra (se apaga). BTDT. CLR. In7 BOOL Séptima entrada booleana. Si se borra. AND. In2 BOOL Segunda entrada booleana. vea la página 307. la instrucción no se ejecuta y las salidas no se actualizan. La opción predeterminada es borrado. OR. Esta expresión evalúa si operandA u operandB. END_IF. o ambos están establecidos (verdaderos). NOT. BAND. Bloque de funciones Operando BOR tag Tipo FBD_BOOLEAN_OR Formato estructura Descripción estructura BOR Estructura FBD_BOOLEAN_OR Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. La opción predeterminada es borrado. In4 BOOL Cuarta entrada booleana. Consulte el Apéndice C. SWPB. In1 BOOL Primera entrada booleana. La opción predeterminada es borrado. Use OR como operador dentro de una expresión. BNOT) O booleano (BOR) La instrucción BOR aplica la operación lógica O a 8 entradas booleanas como máximo. 320 Publicación 1756-RM003K-ES-P – Julio 2008 . Para realizar un O a nivel de bits. para obtener información sobre la sintaxis de las expresiones en texto estructurado. In3 BOOL Tercera entrada booleana. BTD. In5 BOOL Quinta entrada booleana.Capítulo 7 Instrucciones de movimiento/lógicas (MOV. CLR. La opción predeterminada es borrado. MVMT. La opción predeterminada es borrado. Los operandos deben ser valores BOOLEANOS o expresiones que resultan en valores BOOLEANOS. XOR. BOR. La opción predeterminada es establecido. BXOR. BTDT. Operandos: Texto estructurado IF operandA OR operandB THEN <statement>. MVM. In6 BOOL Sexta entrada booleana. La opción predeterminada es borrado. La opción predeterminada es borrado. MVM. Ninguna. BTDT. BXOR. CLR. BOR. post-escán Ninguna. AND. La instrucción se ejecuta. EnableOut se establece. La opción predeterminada es borrado. é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 aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción de bloque de funciones Ninguna. BTD. Descripción: La instrucción BOR aplica la operación lógica O a 8 entradas booleanas como máximo. NOT. La salida de la instrucción. BNOT) Capítulo 7 Parámetro de entrada In8 Tipo de datos BOOL Descripción Octava entrada booleana. OR. MVMT. SWPB. BAND. Ninguna. EnableOut se borra. Ejemplo 1: Este ejemplo efectúa la operación O en bool_in1 y bool_in2 y coloca el resultado en value_result_or. XOR.Instrucciones de movimiento/lógicas (MOV. 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. Si no se usa una entrada. Publicación 1756-RM003K-ES-P – Julio 2008 321 . Parámetro de salida Tipo de datos EnableOut Out BOOL BOOL Descripción Habilitación de salida. ELSE light1 := 0. NOT. XOR. AND. CLR. MVM. BNOT) Bloque de funciones Ejemplo 2: En este ejemplo. MVMT.Capítulo 7 Instrucciones de movimiento/lógicas (MOV. BAND. light1 se establece (se enciende) si: • sólo bool_in1 se establece (verdadero). BOR. BTD. Texto estructurado IF bool_in1 OR bool_in2 THEN light1 := 1. • sólo bool_in2 se establece (verdadero). light1 se borra (se apaga). END_IF. SWPB. OR. 322 Publicación 1756-RM003K-ES-P – Julio 2008 . BXOR. BTDT. • ambos bool_in1 y bool_in2 se establecen (verdaderos). De lo contrario. vea la página 310. BAND. Los operandos deben ser valores BOOLEANOS o expresiones que resultan en valores BOOLEANOS. la instrucción no se ejecuta y las salidas no se actualizan. In2 BOOL Segunda entrada booleana. Texto estructurado IF operandA XOR operandB THEN <statement>.Instrucciones de movimiento/lógicas (MOV. BTDT. NOT. SWPB. XOR. In1 BOOL Primera entrada booleana. MVMT. La opción predeterminada es borrado. para obtener información sobre la sintaxis de las expresiones en texto estructurado. BOR. está establecido (verdadero). BNOT) Capítulo 7 O exclusivo booleano (BXOR) Operandos: La instrucción BXOR realiza una operación O exclusivo de dos entradas booleanas. Parámetro de salida Tipo de datos EnableOut Out BOOL BOOL Descripción Habilitación de salida. Descripción: La instrucción BXOR realiza una operación O exclusivo de dos entradas booleanas. AND. Si se borra. Esta expresión evalúa si sólo operandA o sólo operandB. La opción predeterminada es establecido. Para realizar un XOR a nivel de bits. MVM. Use XOR como operador dentro de una expresión. Bloque de funciones Operando BXOR tag Tipo FBD_BOOLEAN_XOR Formato estructura Descripción estructura BXOR Estructura FBD_BOOLEAN_XOR Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. BXOR. La salida de la instrucción. BTD. La opción predeterminada es borrado. END_IF. Out = In1 XOR In2 Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Publicación 1756-RM003K-ES-P – Julio 2008 323 . OR. CLR. Consulte el Apéndice C. BTD. AND. BXOR. 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. MVM. EnableOut se establece. Bloque de funciones 324 Publicación 1756-RM003K-ES-P – Julio 2008 . post-escán Ninguna. OR. BTDT. La instrucción se ejecuta. XOR. BAND. Ninguna. EnableOut se borra. MVMT. BNOT) Ejecución: Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción de bloque de funciones Ninguna. Ejemplo 1: Este ejemplo realiza una operación O exclusivo en bool_in1 y bool_in2 y coloca el resultado en value_result_xor.Capítulo 7 Instrucciones de movimiento/lógicas (MOV. Ninguna. NOT. SWPB. BOR. CLR. BXOR. BTDT. CLR. BAND. • sólo bool_in2 se establece (verdadero). MVMT. OR. AND. light1 se establece (se enciende) si: • sólo bool_in1 se establece (verdadero). ELSE light1 := 0. BNOT) Capítulo 7 Ejemplo 2: En este ejemplo. BOR. light1 se borra (se apaga). BTD. De lo contrario.Instrucciones de movimiento/lógicas (MOV. SWPB. Publicación 1756-RM003K-ES-P – Julio 2008 325 . MVM. XOR. Texto estructurado IF bool_in1 XOR bool_in2 THEN light1 := 1. END_IF. NOT. Esta expresión evalúa si el operando está borrado (falso). Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. BOR. XOR. BNOT) NO booleano (BNOT) Operandos: La instrucción BNOT complementa una entrada booleana. In BOOL Entrada a la instrucción La opción predeterminada es establecido. END_IF. Parámetro de salida Tipo de datos EnableOut Out BOOL BOOL Descripción: Habilitación de salida. Use NOT como operador dentro de una expresión. SWPB. Descripción: La instrucción BNOT complementa una entrada booleana. Texto estructurado IF NOT operand THEN <statement>. Si se borra. MVM. NOT. La opción predeterminada es establecido. MVMT. La salida de la instrucción. El operando debe ser un valor BOOL o expresiones que resultan en valores BOOL. BTD. Para realizar una operación NO a nivel de bits. BTDT. vea la página 314. la instrucción no se ejecuta y las salidas no se actualizan. BAND. Consulte el Apéndice C. OR. Bloque de funciones Operando BNOT tag Tipo FBD_BOOLEAN_NOT Formato estructura Descripción estructura BNOT Estructura FBD_BOOLEAN_NOT Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. AND. Out = NOT In Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna 326 Publicación 1756-RM003K-ES-P – Julio 2008 . BXOR.Capítulo 7 Instrucciones de movimiento/lógicas (MOV. CLR. De lo contrario.Instrucciones de movimiento/lógicas (MOV. AND. CLR. Bloque de funciones Ejemplo 2: Si bool_in1 se borra. END_IF. BAND. EnableOut se establece. Texto estructurado IF NOT bool_in1 THEN light1 := 0. EnableOut se borra. Ejemplo 1: Este ejemplo complementa bool_in1 y coloca el resultado en value_result_not. BTDT. NOT. OR. BNOT) Capítulo 7 Ejecución: Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción de bloque de funciones Ninguna. Ninguna. light1 se borra (se apaga). BOR. light1 se establece (se enciende). BXOR. Ninguna. MVMT. ELSE light1 := 1. BTD. post-escán Ninguna. Si BOOL_IN1 es 0 1 Entonces VALUE_RESULT_NOT es 1 0 Texto estructurado value_result_not := NOT bool_in1. La instrucción se ejecuta. SWPB. XOR. Publicación 1756-RM003K-ES-P – Julio 2008 327 . MVM. SWPB. MVMT. AND. BTDT. NOT. OR. BNOT) Notas: 328 Publicación 1756-RM003K-ES-P – Julio 2008 .Capítulo 7 Instrucciones de movimiento/lógicas (MOV. BTD. MVM. BXOR. BOR. CLR. XOR. BAND. Las instrucciones se ejecutan más rápidamente y requieren menos memoria si todos los operandos de instrucción usan el mismo tipo de datos óptimos. Vea la descripción de la instrucción. de desplazamiento y de funciones en valores en matrices buscar y comparar valores en matrices Las instrucciones de archivo/misceláneas realizan operaciones en matrices de datos. Verifique el bit S:V para determinar si se truncó el resultado. Para las instrucciones de lógica de escalera de relés. Use otra programación en texto estructurado para lograr el mismo resultado. típicamente DINT o REAL. Use esta instrucción FAL Disponible en estos lenguajes lógica de escalera de relés texto estructurado(1) FSC COP lógica de escalera de relés lógica de escalera de relés texto estructurado 347 356 Vea la página 335 copiar el contenido de una matriz en otra matriz copiar el contenido de una matriz en otra matriz sin interrupción llenar una matriz con datos específicos CPS lógica de escalera de relés texto estructurado 356 FLL lógica de escalera de relés texto estructurado(1) 362 calcular el promedio de una matriz de valores AVE lógica de escalera de relés texto estructurado(1) 366 organizar una dimensión de datos de matriz en orden ascendente calcular la desviación estándar de una matriz de valores encontrar el tamaño de una dimensión de una matriz (1) SRT lógica de escalera de relés texto estructurado 371 STD lógica de escalera de relés texto estructurado(1) 376 SIZE lógica de escalera de relés texto estructurado 381 No hay una instrucción equivalente en texto estructurado. Usted puede mezclar diferentes tipos de datos. los tipos de datos que aparecen en negrita indican tipos de datos óptimos. 329Publicación 1756-RM003K-ES-P – Julio 2008 329 .Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL. FLL. SIZE) Introducción Si desea realizar operaciones aritméticas. lógicas. COP. AVE. pero puede producirse pérdida de exactitud y error de redondeo. SRT. FSC. CPS. y la instrucción requiere más tiempo para ejecutarse. STD. STD. el modo indica al controlador cómo distribuir la operación de la matriz. SIZE) Selección del modo de operación Para las instrucciones FAL y FSC.Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL. La operación se detiene cuando el valor . FSC. CPS.LEN. Matriz de datos un escán 16639 330 Publicación 1756-RM003K-ES-P – Julio 2008 . AVE. Si desea realizar una operación en todos los elementos especificados de una matriz antes de continuar con la próxima instrucción distribuir operaciones de matriz entre un número de escanes introduzca el número de elementos sobre los que se debe operar por escán (1-2147483647) manipular un elemento de la matriz cada vez que la condición de entrada de renglón cambia de falsa a verdadera Incremental Seleccione este modo Todos Numérico Modo Todos En el modo Todos. El valor de posición (. SRT.POS) en la estructura de control apunta al elemento de la matriz que la instrucción está usando actualmente.POS es igual al valor . FLL. COP. se opera sobre todos los elementos de la matriz antes de continuar con la próxima instrucción La operación comienza cuando la condición de entrada del renglón cambia de falso a verdadero. El bit .DN. COP. Sólo entonces podrá activarse otra ejecución de la instrucción por una transición de falso a verdadero de la condición de entrada del renglón.Instrucciones de matriz (archivo)/misceláneas (FAL.POS se borran cuando la condición de entrada del renglón es falsa.EN bit . Cuando concluye la ejecución de la instrucción. el bit . lo que mantiene más corto el tiempo de escán. FLL. STD. CPS.DN. Usted introduce el número de elementos sobre los que se va a operar por cada escán.DN borra los bits de estado y borra el valor . Publicación 1756-RM003K-ES-P – Julio 2008 331 . se establece el bit . Este modo es útil cuando se trabaja con datos no críticos en cuando a tiempo o con grandes cantidades de datos.EN y el valor . SRT. FSC. SIZE) Capítulo 8 El siguiente diagrama temporal muestra la relación entre los bits de estado y la operación de la instrucción. AVE.POS escán de la instrucción operación concluida no se realiza la ejecución 40010 Modo numérico El modo numérico distribuye la operación de la matriz entre un número de escanes. un escán condición de entrada de renglón bit . un escán segundo escán siguiente escán 16641 IMPORTANTE Evite usar los resultados de una instrucción de archivo que funciona en modo numérico hasta que esté establecido el bit .POS 332 Publicación 1756-RM003K-ES-P – Julio 2008 . STD. Cuando concluye la ejecución de la instrucción. la condición de entrada del renglón puede cambiar repetidamente sin interrumpir la ejecución de la instrucción. SRT. SIZE) La ejecución se activa cuando la condición de entrada del renglón cambia de falso a verdadero. Una vez activada. se establece el bit .DN.Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL. la instrucción se ejecuta cada vez que se escanea por el número de escanes necesarios para completar la operación en toda la matriz.EN bit .DN. El siguiente diagrama muestra la relación entre los bits de estado y la operación de la instrucción. AVE. FLL.POS borra los bits de estado y borra el valor . el renglón es verdadero al concluir múltiples escanes el renglón es falso al concluir múltiples escanes condición de entrada de renglón bit . Una vez activada.DN escán de la instrucción operación concluida operación concluida 40013 borra los bits de estado y borra el valor . COP. FSC. CPS. DN se establecen hasta que la condición de entrada de renglón se hace falsa. estos bits se borran y el valor . los bits .EN y . Un escán después de que se borra el bit . Habilitación de 1ª instrucción Habilitación de 2ª instrucción Habilitación de 3ª instrucción Habilitación de última instrucción 16643 Publicación 1756-RM003K-ES-P – Julio 2008 333 . Si la condición de entrada de renglón es falsa al concluir.EN se borra inmediatamente.POS se borran. SRT. el bit .POS se borra. el bit . Cuando la condición de entrada de renglón cambia a falso. CPS. Modo incremental El modo incremental manipula un elemento de la matriz cada vez que la condición de entrada de renglón de la instrucción cambia de falso a verdadero.Instrucciones de matriz (archivo)/misceláneas (FAL. AVE. SIZE) Capítulo 8 Si la condición de entrada de renglón es verdadera al concluir. FSC. STD. COP.EN.DN y el valor . FLL. EN bit .DN escán de la instrucción operación concluida 40014 borra los bits de estado y borra el valor .DN se establece cuando el último elemento de la matriz ha sido manipulado. un escán condición de entrada de renglón bit . FSC. se borran el bit . • El modo incremental requiere que la condición de entrada de renglón cambie de falso a verdadero para manipular un elemento de la matriz. El bit . SRT. La diferencia entre el modo incremental y el modo numérico a un régimen de un elemento por escán es: • El modo numérico con cualquier número de elementos por escán requiere sólo una transición de falso a verdadero de la condición de entrada de renglón para comenzar la ejecución. el bit . la instrucción sólo se ejecuta durante el primer escán.Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL. SIZE) El siguiente diagrama muestra la relación entre los bits de estado y la operación de la instrucción.POS.POS El bit . STD. CPS. FLL. Si la condición de entrada de renglón permanece verdadera por más de un escán. Cuando el último elemento ha sido manipulado y la condición de entrada de renglón cambia a falso. La ejecución se realiza sólo en un escán en el cual la condición de entrada del renglón cambia de falso a verdadero. independientemente del estado de la condición de entrada de renglón. La instrucción continúa ejecutando el número especificado de elementos en cada escán hasta concluir.DN y el valor . AVE.EN se establece cuando la condición de entrada del renglón es verdadera. sólo se manipula un elemento de la matriz. 334 Publicación 1756-RM003K-ES-P – Julio 2008 .EN. Cada vez que esto ocurre. COP. STD. SRT. Consulte el Apéndice C. FSC.. Programación de texto estructurado para obtener información sobre la sintaxis de las construcciones en texto estructurado. lógicas y funciones en los datos almacenados en una matriz. SIZE(destination. FOR position = 0 TO length DO destination[position] := numeric_expression.DO u otra construcción de lazo. ALL o introduzca un número Destination SINT INT DINT REAL Expression SINT INT DINT REAL Un tag SINT o INT se convierte en un valor DINT mediante extensión de signo. SIZE) Capítulo 8 Aritmética y lógica de archivo (FAL) Operandos: La instrucción FAL realiza operaciones de copia.Instrucciones de matriz (archivo)/misceláneas (FAL. pero usted puede lograr los mismos resultados usando una instrucción SIZE y una construcción FOR. Publicación 1756-RM003K-ES-P – Julio 2008 335 . aritméticas. COP. inmediato tag una expresión 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 instrucción FAL. AVE.. FLL. Lógica de escalera de relés Operando Control Length Position Tipo CONTROL DINT DINT Formato tag inmediato inmediato Descripción estructura de control para la operación número de elementos en la matriz que se manipularán elemento actual en la matriz el valor inicial es típicamente 0 Mode DINT inmediato cómo distribuir la operación seleccione INC.0. CPS. END_FOR.length-1). LEN < 0 Tipo de fallo 4 4 Código de fallo 20 21 336 Publicación 1756-RM003K-ES-P – Julio 2008 . FSC.POS contiene la posición del elemento que causó el overflow. STD.POS DINT DINT Descripción: La instrucción FAL realiza las mismas operaciones en las matrices que la instrucción CPT realiza en los elementos. El bit de efectuado se establece cuando la instrucción ha efectuado la operación en el último elemento (. La posición contiene la posición del elemento actual al cual la instrucción obtiene acceso. CPS. . El valor . COP. Condiciones de fallo: Ocurrirá un fallo mayor si el subíndice está fuera de rango .Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL.POS = . La longitud especifica el número de elementos de la matriz sobre el que opera la instrucción FAL. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. La instrucción detiene la ejecución hasta que el programa borra el bit .ER Tipo de datos BOOL BOOL BOOL Descripción El bit de habilitación indica que la instrucción FAL está habilitada. código 20). FLL. AVE. Si un subíndice de la expresión de Destination se encuentra fuera de rango.EN . SRT. la instrucción FAL genera un fallo mayor (tipo 4. SIZE) Estructura CONTROL Mnemónico .LEN).LEN .POS < 0 o . Los ejemplos que aparecen a partir de la página 342 describen cómo usar el valor .ER. El bit de error se establece si la expresión genera un overflow (se establece S:V).POS para procesar una matriz.DN . POS + 1 sí .DN se establece el bit . FLL. COP.ER se borra el bit . AVE.1 sí no . CPS.POS se borra modo ALL sí no .EN se borra el bit .POS = 0 no .DN = 1 el bit .POS < 0 no sí fallo mayor .POS .LEN página 341 la condición de salida de renglón se establece como falsa fin Publicación 1756-RM003K-ES-P – Julio 2008 337 .DN = 0 modo INC sí el bit .Instrucciones de matriz (archivo)/misceláneas (FAL.LEN > modo el bit . SIZE) Capítulo 8 Ejecución: Condición preescán condición de entrada de renglón es falsa Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa.EN se establece sí el bit .DN Bit .LEN = 0 no . examine el bit .DN se borra el valor .POS = .EN se borra no se borra el bit interno bit . STD.DN se establece el bit . SRT.EN se borra modo numérico no modo = . FSC.LEN < 0 o .POS < .POS = .LEN sí . CPS.POS = .ER Bit .POS = . SIZE) Condición condición de entrada de renglón es verdadera Acción de lógica de escalera de relés .1 loop_count < 0 sí no .ER = 1 no modo INC sí no modo ALL sí el bit .LEN < 0 o .EN se establece modo INC modo ALL común página 339 página 340 loop_count = loop_count .POS + 1 la condición de salida de renglón se establece como verdadera fin 338 Publicación 1756-RM003K-ES-P – Julio 2008 .POS = . FSC. STD.ER se establece . FLL. AVE.DN = 0 examinar el bit .POS + 1 no el bit .DN se establece el bit . SRT. COP.DN = 1 .POS < 0 examinar el bit .LEN = 0 sí sí página 341 fallo mayor modo numérico no bit .POS = .LEN sí no el bit .ER = 0 no bit .DN bit .DN se establece el bit .Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL.POS + 1 evaluar la expresión examinar S:V sí .EN se establece . DN se establece el bit . FLL.POS .Instrucciones de matriz (archivo)/misceláneas (FAL.POS = 0 no .EN = 1 examinar el bit .POS = .EN = 0 examinar el bit interno bit = 0 bit = 1 .EN bit . COP. STD.EN se establece loop_count = 1 .LEN no el bit .POS ≥ . AVE. CPS. FSC. SRT. SIZE) Capítulo 8 Condición modo INC Acción de lógica de escalera de relés bit .POS .POS = .1 sí .POS = .1 sí el bit .POS + 1 el bit interno se establece .EN se establece la condición de salida de renglón se establece como verdadera común página 338 fin Publicación 1756-RM003K-ES-P – Julio 2008 339 . POS = 0 no .POS .EN se establece . AVE.1 sí loop_count = .POS . FLL.POS ≥ .Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL.POS = .POS = . COP.POS + 1 el bit . CPS.EN se establece común la condición de salida de renglón se establece como verdadera página 338 fin 340 Publicación 1756-RM003K-ES-P – Julio 2008 ..EN = 1 bit .POS .EN bit .LEN . SRT.LEN no sí .1 el bit .EN = 0 examinar el bit interno bit = 0 bit = 1 .POS = . SIZE) Condición modo ALL Acción de lógica de escalera de relés examinar el bit .DN se establece el bit . STD. FSC. POS .EN = 1 examinar el bit .POS = 0 no .1 sí modo = . AVE.LEN no sí .EN se establece loop_count = modo sí común página 338 post-escán La condición de salida de renglón se establece como falsa. CPS.POS ≥ . FLL. FSC.LEN .LEN ≥ modo sí el bit .POS .EN bit . SRT. SIZE) Capítulo 8 Condición modo numérico Acción de lógica de escalera de relés bit . Publicación 1756-RM003K-ES-P – Julio 2008 341 .Instrucciones de matriz (archivo)/misceláneas (FAL.. COP.DN se establece el bit .EN se establece la condición de salida de renglón se establece como verdadera fin modo ≥ loop_count no el bit .POS = .POS + 1 bit = 1 examinar el bit interno bit = 0 el bit interno se establece .POS = .POS = .EN = 0 .EN se establece loop_count = . STD.LEN no .1 el bit .POS . STD. FSC. copia de matriz a matriz Expresión: array_2[control_2.pos] Ejemplo 3: Cada vez que la instrucción FAL se habilita. CPS.pos] Destino: array_1[control_2.control_2.pos] 342 Publicación 1756-RM003K-ES-P – Julio 2008 . copia de elemento a matriz Expresión: value_1 Destino: array_2[0. por lo tanto.pos] Ejemplo 2: Una vez habilitada. La próxima vez que se habilita la instrucción. la instrucción FAL copia cada elemento de array_2 en la misma posición dentro de array_1.pos] Destino: value_1 Ejemplo 4: Cuando se habilita. sólo se copia un valor de matriz cada vez que se habilita la instrucción. AVE.Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL. ésta sobrescribe value_1 con el siguiente valor en array_1. operación aritmética: (elemento + elemento) a matriz Expresión: value_1 + value_2 Destino: array_1[control_1. FLL. SIZE) Ejemplo 1: Una vez habilitada. COP. SRT. La instrucción FAL usa el modo incremental. la instrucción FAL copia value_1 en las 10 primeras posiciones de la segunda dimensión de array_2. copia el valor actual de array_1 a value_1. copia de matriz a elemento Expresión: array_1[control_1. la instrucción FAL suma value_1 y value_2 y almacena el resultado en la posición actual de array_1. pos] Destino: array_1[control_2. la instrucción FAL divide el valor en la posición actual de array_2 entre el valor de la posición actual de array_3 y almacena el resultado en la posición actual de array_1. y almacena el resultado en la posición actual en array_3. FSC.pos] + value_1 Destino: array_3[control_1.pos] Ejemplo 6: Cuando se habilita.Instrucciones de matriz (archivo)/misceláneas (FAL.pos] Ejemplo 7: Cada vez que la instrucción FAL se habilita. SIZE) Capítulo 8 Ejemplo 5: Cuando se habilita.pos] / array_3[control_2. suma value_1 al valor actual de array_1 y almacena el resultado en value_2. sólo se suma un valor de matriz a value_1 cada vez que se habilita la instrucción. STD. La siguiente vez que se habilita la instrucción. COP. ésta sobrescribe value_2. SRT. operación aritmética: (matriz + elemento) a matriz Expresión: array_1[control_1. CPS.pos] Destino: value_2 Publicación 1756-RM003K-ES-P – Julio 2008 343 . operación aritmética: (matriz/matriz) a matriz Expresión: array_2[control_2. por lo tanto. operación aritmética: (elemento + matriz) a elemento Expresión: value_1 + array_1[control_1. la instrucción FAL suma el valor en la posición actual en array_1 y value_1. La instrucción FAL usa el modo incremental. La instrucción debe ejecutarse 10 veces para que se manipulen array_1 y array_3 por completo. FLL. AVE. SIZE) Ejemplo 8: Cuando se habilita. La próxima vez que se habilita la instrucción. COP. FSC. FLL. operación aritmética: (matriz ∗ matriz) a elemento Expresión: array_1[control_1. La instrucción FAL usa el modo incremental. SRT. por lo tanto. STD.Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL. ésta sobrescribe value_1. sólo una pareja de valores de matriz se multiplica cada vez que se habilita la instrucción. Use las siguientes secciones para obtener información sobre operadores. 344 Publicación 1756-RM003K-ES-P – Julio 2008 .pos] * array_3[control_1. formato y orden de operación válidos que son comunes para ambas instrucciones. AVE. CPS. la instrucción FAL multiplica el valor actual de array_1 por el valor actual de array_3 y almacena el resultado en value_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. REAL DINT. REAL DINT REAL OR RAD SIN SQR TAN TOD TRN XOR Operador LOG MOD NOT Descripción logaritmo base 10 módulo de división complemento a nivel de bits O a nivel de bits grados a radianes seno raíz cuadrada tangente entero a BCD truncar O exclusivo a nivel de bits Óptimo REAL DINT. REAL DINT Expresiones de formato Por cada operador que use en una expresión. Use la siguiente tabla para formatear operadores y operandos dentro de una expresión: 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) Publicación 1756-RM003K-ES-P – Julio 2008 345 . SIZE) Capítulo 8 Operadores válidos Operador + * / ** ABS ACS AND ASN ATN COS DEG FRD LN Descripción 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. FLL. CPS. COP. STD. AVE. REAL DINT. FSC.Instrucciones de matriz (archivo)/misceláneas (FAL. REAL DINT. REAL REAL DINT REAL REAL REAL DINT. REAL REAL DINT DINT. REAL REAL DINT. REAL DINT. SRT. REAL DINT. REAL DINT DINT DINT. usted tiene que proporcionar uno o dos operandos (tags o valores inmediatos). Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL. MOD − (restar). 9. SIZE) Determine el orden de operación Las operaciones que usted escribe en la expresión son realizadas por la instrucción en un orden prescrito. Usted puede cambiar el orden de operación agrupando términos dentro de paréntesis. 6. forzando la instrucción para que realice una operación dentro del paréntesis antes de otras operaciones. LOG. COP. STD. TRN ** − (cambiar signo). FLL. ASN. 5. TOD. Operación () ABS. NOT *. SIN. FSC. ATN. 7. DEG. TAN. 3. 4. SQR. AVE. 2. CPS. Las operaciones de igual orden se realizan de izquierda a derecha. 8. FRD. Orden 1. /. + AND XOR OR 346 Publicación 1756-RM003K-ES-P – Julio 2008 . LN. COS. RAD. ACS. que no es necesariamente el orden en que usted las escribe. SRT. la instrucción establece el bit . Descripción: Cuando la instrucción FSC está habilitada y la comparación es verdadera.FD .IN .FD y el bit . La instrucción establece el bit .IN para interrumpir la búsqueda. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados.POS refleja la posición de la matriz donde la instrucción encontró la comparación verdadera. La longitud especifica el número de elementos en la matriz sobre el que opera la instrucción. STD.POS Tipo de datos BOOL BOOL BOOL BOOL BOOL DINT DINT Descripción El bit de habilitación indica que la instrucción FSC está habilitada.LEN). COP.LEN . SRT. FSC. AVE.DN . CPS. FLL. La posición contiene la posición del elemento actual al cual la instrucción obtiene acceso. El bit de encontrado indica que la instrucción FSC ha detectado una comparación verdadera.POS < 0 o .EN .ER .Instrucciones de matriz (archivo)/misceláneas (FAL.LEN < 0 Tipo de fallo 4 Código de fallo 21 Publicación 1756-RM003K-ES-P – Julio 2008 347 . El bit de inhibición indica que la instrucción FSC ha detectado una comparación verdadera. SIZE) Capítulo 8 Búsqueda y comparación de archivos (FSC) Operandos: La instrucción FSC compara los valores en una matriz. El bit de efectuado se establece cuando la instrucción ha efectuado la operación en el último elemento (. El bit de error no se modifica. Lógica de escalera de relés Operando Control Length Position Tipo CONTROL DINT DINT Formato tag inmediato inmediato Descripción estructura de control para la operación número de elementos en la matriz que se manipularán offset en la matriz el valor inicial es típicamente 0 Estructura CONTROL Mnemónico .POS = . elemento por elemento. Condiciones de fallo: Ocurrirá un fallo mayor si . Usted debe borrar este bit para poder continuar la operación de buscar. SIZE) Ejecución: Condición preescán condición de entrada de renglón es falsa Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa.POS < .EN se establece sí el bit .LEN = 0 no .LEN página 341 fin 348 Publicación 1756-RM003K-ES-P – Julio 2008 . STD. AVE.ER se borra el bit .POS se borra modo ALL sí no . FSC.DN se establece el bit .POS = 0 no .DN bit .Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL. COP.EN se borra el bit .EN se borra no se borra el bit interno bit .POS = . examinar el bit .DN se borra el valor .POS + 1 sí .1 sí no .DN se establece el bit .POS = .LEN > modo el bit .DN = 1 el bit .LEN < 0 o . FLL. CPS.EN se borra modo numérico la condición de salida de renglón se establece como falsa no modo = . SRT.POS .POS < 0 no sí fallo mayor .LEN sí .DN = 0 modo INC sí el bit . IN = 0 bit . CPS.DN = 0 .POS = .DN = 0 modo INC modo ALL página 339 página 340 loop_count = loop_count . FSC.POS = .POS = . SIZE) Capítulo 8 Condición condición de entrada de renglón es verdadera Acción de lógica de escalera de relés sí .EN se establece bit .DN común bit .1 loop_count < 0 sí no .LEN < 0 o .IN se establece .ER bit .POS + 1 la condición de salida de renglón se establece como verdadera fin post-escán La condición de salida de renglón se establece como falsa.EN se establece no . COP.DN = 1 el bit . STD.POS + 1 evalúe la comparación coincidencia sí .IN bit . Publicación 1756-RM003K-ES-P – Julio 2008 349 .EN se establece el bit .Instrucciones de matriz (archivo)/misceláneas (FAL.LEN = 0 sí página 341 fallo mayor modo numérico no no modo INC sí no modo ALL sí bit .FD se establece el bit . AVE.DN se establece el bit .POS < 0 examinar el bit .ER = 0 no bit . SRT.ER = 1 examinar el bit .POS + 1 no el bit .DN se establece el bit .POS = .LEN sí el bit . FLL.DN = 1 examinar el bit . Una vez habilitada. la instrucción FSC compara cada uno de los 10 primeros elementos en array_1 con los elementos correspondientes en array_2.IN. El valor .FD e . FLL. SIZE) Ejemplo 1: Buscar una coincidencia entre dos matrices. borre el bit .POS (4) indica la posición de los elementos que son diferentes. 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. FSC.pos 0 1 2 3 4 5 6 7 8 9 La instrucción FSC determina que estos elementos son diferentes.Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL. La instrucción establece los bits . 350 Publicación 1756-RM003K-ES-P – Julio 2008 .IN. COP. AVE. STD. Para continuar comparando el resto de la matriz. CPS. SRT. Para continuar comparando el resto de la matriz.pos 0 1 2 3 4 5 6 7 8 9 La instrucción FSC determina que este elemento de matriz es igual a MySearchKey. COP.POS (4) indica la posición de los elementos que son iguales.IN. AVE. MySearchKey referencia 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 control_3. SIZE) Capítulo 8 Ejemplo 2: Buscar una coincidencia en una matriz. FLL. CPS.Instrucciones de matriz (archivo)/misceláneas (FAL. STD. la instrucción FSC compara MySearchKey con 10 elementos en array_1. El valor .IN. 11111111111111110000000000000000 11111111111111110000000000000000 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 Publicación 1756-RM003K-ES-P – Julio 2008 351 . FSC. borre el bit .FD e . La instrucción establece los bits . Cuando se habilita. SRT. Use las siguientes secciones para obtener información sobre operadores. formato y orden de operación válidos que son comunes para ambas instrucciones. La instrucción establece los bits . AVE. Para continuar comparando el resto de la matriz. 352 Publicación 1756-RM003K-ES-P – Julio 2008 .POS (4) indica la posición de los elementos que son iguales. la instrucción FSC compara los caracteres en code con 10 elementos en code_table.IN. code code_table AFG BEH HUO SAK code_table_search.Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL. STD. Cuando se habilita. FSC. FLL.FD e .IN. SRT. 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. CPS. COP.POS 0 1 2 3 4 5 6 7 8 9 La instrucción FSC determina que este elemento de la matriz es igual a code. El valor . borre el bit . SIZE) Ejemplo 3: Buscar una cadena en una matriz de cadenas. REAL DINT. REAL REAL DINT REAL REAL REAL OR RAD SIN SQR TAN TOD TRN XOR Operador DEG FRD LN LOG MOD NOT Descripción radianes a grados BCD a entero logaritmo natural logaritmo base 10 módulo de división complemento a nivel de bits O a nivel de bits grados a radianes seno raíz cuadrada tangente entero a BCD truncar O exclusivo a nivel de bits Óptimo DINT. COP. REAL DINT REAL REAL DINT. SRT.Instrucciones de matriz (archivo)/misceláneas (FAL. REAL REAL DINT DINT. REAL DINT. REAL DINT. STD. REAL DINT. AVE. FSC. REAL DINT. REAL DINT. SIZE) Capítulo 8 Operadores válidos Operador + * / = < <= > >= <> ** ABS ACS AND ASN ATN COS Descripción 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 DINT DINT. REAL DINT. REAL DINT Expresiones de formato Por cada operador que use en una expresión. usted tiene que proporcionar uno o dos operandos (tags o valores inmediatos). REAL DINT. FLL. REAL REAL DINT. CPS. REAL DINT. REAL DINT. REAL DINT. Use la siguiente tabla para formatear operadores y operandos dentro de una expresión: 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) Publicación 1756-RM003K-ES-P – Julio 2008 353 . SIZE) Determine el orden de operación Las operaciones que usted escribe en la expresión son realizadas por la instrucción en un orden prescrito. LN.Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL. FSC. 6. SQR. CPS. FRD. + AND XOR OR 354 Publicación 1756-RM003K-ES-P – Julio 2008 . Orden 1. 9. SRT. 7. Operación () ABS. = − (restar). forzando a la instrucción para que realice una operación dentro del paréntesis antes de otras operaciones. 3. Usted puede anular el orden de operación agrupando términos dentro de paréntesis. 2. ASN. MOD <. SIN. ACS. TOD. 10. ATN. DEG. STD. TRN ** − (cambiar signo). 8. <=. RAD. Las operaciones de igual orden se realizan de izquierda a derecha. >. TAN. FLL. 5. COP. AVE. LOG. 4. /. NOT *. COS. que no es necesariamente el orden en que usted las escribe. >=. SRT. STD. SIZE) Capítulo 8 Use cadenas en una expresión Para usar cadenas de caracteres ASCII en una expresión. FSC. • Usted no puede introducir caracteres ASCII directamente en la expresión. • Cuando las dos cadenas se clasifican como en un directorio telefónico. • Sólo se permiten los siguientes operadores Operador = < <= > >= <> Descripción igual que menor que menor o igual que mayor que mayor o igual que diferente de • Las cadenas son iguales si sus caracteres coinciden. La “A” mayúscula ($41) es diferente a la “a” minúscula ($61). • Los valores hexadecimales de los caracteres determinan si una cadena es mayor o menor que otra cadena. FLL. Caracteres ASCII 1ab m e n o r m a y o r Códigos hexadecimales $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B 1b A AB B a ab Publicación 1756-RM003K-ES-P – Julio 2008 355 . COP. AVE. remítase a la contraportada de este manual. Para obtener el código hexadecimal de un carácter. • Los caracteres ASCII permiten distinguir mayúsculas de minúsculas. CPS. siga estas pautas: • Una expresión le permite comparar dos tags de cadena.Instrucciones de matriz (archivo)/misceláneas (FAL. el orden de las cadenas determina cuál es mayor. Length). COP. Lógica de escalera de relés Operando Source Tipo SINT INT DINT REAL cadena estructura Destination SINT INT DINT REAL cadena estructura Length DINT inmediato tag número de elementos de destino que se copian Importante: Los operandos Source y Destination deben ser del mismo tipo. FLL. FSC. STD. de lo contrario. SIZE) Copiar archivo (COP) Copiar archivo síncrono (CPS) Operandos: Las instrucciones COP y CPS copian el o los valores de Source en Destination. pueden ocurrir resultados inesperados.Dest. pueden ocurrir resultados inesperados. Source no cambia. AVE. CPS(Source.Dest. de lo contrario. 356 Publicación 1756-RM003K-ES-P – Julio 2008 . CPS. SRT. Texto estructurado COP(Source.Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL. Los operandos son iguales que los de las instrucciones COP y CPS de lógica de escalera de relés. tag el elemento inicial que va a ser sobrescrito por Source Formato tag Descripción elemento inicial que se copia Importante: Los operandos Source y Destination deben ser del mismo tipo.Length). consulte el documento ControlLogix System User Manual. • Para calcular el tiempo de ejecución de la instrucción CPS. No se genera un fallo mayor. permitir que los datos cambien durante la operación de copia ninguno de los anteriores COP COP El número de bytes copiados es: Conteo de bytes = Length ∗ (número de bytes en el tipo de datos de Destination) ATENCIÓN Si el conteo de bytes es mayor que la longitud de Source. NO es un tipo de datos definido por el usuario Si Length es demasiado grande. SRT. IMPORTANTE Usted debe probar y confirmar que la instrucción no cambie datos que usted no desea que cambien. la instrucción escribe más el usuario allá del final de la matriz a otros miembros del tag. Las instrucciones COP y CPS operan en memoria contigua. Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Publicación 1756-RM003K-ES-P – Julio 2008 357 . STD. FLL. Esto sucede si la longitud es excesiva y el tag es de un tipo de datos definido por el usuario. la instrucción se detiene al final de la matriz. Length es demasiado grande si es mayor que el número total de elementos en la matriz Destination. CPS. FSC. AVE. es posible que otras acciones del controlador puedan intentar interrumpir la operación 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 operación de copia Entonces seleccione CPS Notas • Las tareas que intentan interrumpir una instrucción CPS se suspenden hasta que haya finalizado la instrucción. publicación 1756-UM001. COP. En algunos casos. Si el tag es Entonces tipo de datos definido por Si Length es demasiado grande. No se genera un fallo mayor. Realizan una copia de memoria directa byte a byte. Se detiene al final del tag. se copian datos inesperados para el resto de los elementos. escriben más allá de la matriz en otros miembros del tag. SIZE) Capítulo 8 Descripción: Durante la ejecución de las instrucciones COP y CPS.Instrucciones de matriz (archivo)/misceláneas (FAL. Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL. EnableIn siempre se establece. a. a. STD. CPS. AVE. La condición de salida de renglón se establece como verdadera. n. COP. La instrucción se ejecuta. FSC. FLL. falsa. SRT. a. n. La condición de salida de renglón se establece como falsa. Ninguna. La instrucción se ejecuta. SIZE) Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés Acción de texto estructurado La condición de salida de renglón se establece como Ninguna. ejecución de la instrucción end_address = start_address + (Length ∗ número de bytes en un elemento de destino) end_address > fin de matriz de destino no sí end_address = fin de matriz de destino source_address = Source destination_address = end_address sí no copiar datos en source_address a destination_address la condición de salida de renglón se establece como verdadera source_address = source_address + 1 fin destination_address = destination_address + 1 post-escán La condición de salida de renglón se establece como falsa. 358 Publicación 1756-RM003K-ES-P – Julio 2008 . EnableIn se establece n. 1). AVE. Publicación 1756-RM003K-ES-P – Julio 2008 359 .array_5[0].Instrucciones de matriz (archivo)/misceláneas (FAL. SIZE) Capítulo 8 Ejemplo 1: Tanto array_4 como array_5 son del mismo tipo de datos. Ejemplo 2: Cuando se habilita. la instrucción COP copia los primeros 10 elementos de array_4 en los primeros 10 elementos de array_5. la instrucción COP copia la estructura timer_1 en el elemento 5 de array_timer.array_timer[5]. STD. COP.10). SRT. CPS. FLL. La instrucción copia sólo una estructura a un elemento de matriz. Cuando se habilita. FSC. Lógica de escalera de relés Texto estructurado COP(array_4[0]. Lógica de escalera de relés Texto estructurado COP(timer_1. 20). las actualizaciones de E/S u otras tareas no pueden cambiar los datos. • Mientras la instrucción CPS copia los datos. SIZE) Ejemplo 3: La matriz project_data (100 elementos) almacena una variedad de valores que cambian en momentos diferentes en la aplicación. la instrucción CPS copia project_data en produced_array. • A medida que se ejecuta la aplicación. FLL. SRT. 360 Publicación 1756-RM003K-ES-P – Julio 2008 . • El tag produced_array produce los datos en una red ControlNet para el consumo por parte de otros controladores. Lógica de escalera de relés Texto estructurado CPS(project_data[0]. • Mientras la instrucción CPS copia los datos. COP. ej. • Para usar la misma imagen de datos (p.. el o los controladores consumidores usan una instrucción CPS para copiar los datos desde el tag consumido a otro tag para uso en la aplicación. STD.Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL.Data almacena los datos de entrada para la red DeviceNet conectada al módulo 1756-DNB en la ranura 0. copiar los datos de manera sincronizada). AVE.Data[0]. FSC. Lógica de escalera de relés Texto estructurado CPS(Local:0:I. las actualizaciones de E/S no pueden cambiar los datos. Para sincronizar las entradas con la aplicación. ésta usa para sus entradas los datos de entrada en input_buffer.100). Ejemplo 4: Local:0:I. la instrucción CPS copia los datos de entrada en input_buffer. Para enviar una imagen completa de project_data en una instancia a tiempo a otro controlador.input_buffer[0]. CPS.produced_array[0]. Una vez habilitada.ACC del primer elemento array_timer.pre := 500. SIZE) Capítulo 8 Ejemplo 5: Este ejemplo inicializa una matriz de estructuras de temporizador. La longitud es nueve estructuras de temporizador. FLL. Cuando se habilita.acc := 0. CPS.array_timer[1].PRE y . la instrucción COP copia un bloque contiguo de bytes a partir de array_timer[0]. COP(array_timer[0]. STD. FSC. array_timer[0] Primero la instrucción copia los valores de timer[0] a timer[1] Seguidamente la instrucción copia los valores de timer[1] a timer[2] Seguidamente la instrucción copia los valores de timer[2] a timer[3] Seguidamente la instrucción 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. Publicación 1756-RM003K-ES-P – Julio 2008 361 . la instrucción MOV inicializa los valores .10). la instrucción copia los valores de timer[9] a timer[10] array_timer[10] Lógica de escalera de relés Texto estructurado IF S:FS THEN array_timer[0].Instrucciones de matriz (archivo)/misceláneas (FAL. COP. array_timer[0]. SRT. AVE. END_IF. Lógica de escalera de relés 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. Consulte el Apéndice C. de lo contrario. SIZE(destination.DO u otra construcción de lazo. pueden ocurrir resultados inesperados Texto estructurado El texto estructurado no cuenta con la instrucción FLL. SRT.0. Programación de texto estructurado para obtener información sobre la sintaxis de las construcciones en texto estructurado. número de elementos que se llenan tag elemento inicial que va a ser sobrescrito por Source Formato: inmediato tag Descripción elemento que se copia Importante: Los operandos Source y Destination deben ser del mismo tipo.. Source no cambia. FOR position = 0 TO length-1 DO destination[position] := source. FSC.length). STD.. END_FOR. pueden ocurrir resultados inesperados El método preferido para inicializar una estructura es mediante la instrucción COP. CPS. AVE. de lo contrario. SIZE) Llenar archivo (FLL) Operandos: La instrucción FLL llena los elementos de una matriz con el valor de Source. 362 Publicación 1756-RM003K-ES-P – Julio 2008 .Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL. FLL. pero usted puede lograr los mismos resultados usando una instrucción SIZE y una construcción FOR. COP. INT. Si Source es SINT. FSC. Si mezcla diferentes tipos de datos para Source y Destination. COP. STD. FLL. Si el tag es Entonces IMPORTANTE tipo de datos definido por Si la longitud es demasiado grande. INT. la instrucción se detiene al final de la matriz. Para obtener los mejores resultados. No se genera un fallo mayor. INT. use la instrucción COP (vea el ejemplo 3 en la página 359). Si usted desea llenar una estructura. DINT o REAL SINT. AVE. Length es demasiado grande si es mayor que el número total de elementos en la matriz Destination. CPS. INT. SRT. la instrucción escribe más allá de la matriz en otros miembros del tag. la instrucción escribe más el usuario allá del final de la matriz a otros miembros del tag. NO es un tipo de datos definido por el usuario Si Length es demasiado grande. Esto sucede si la longitud es excesiva y el tag es de un tipo de datos definido por el usuario. Se detiene al final del tag. SIZE) Capítulo 8 Descripción: El número de bytes llenados es: Conteo de bytes = Length ∗ (número de bytes en el tipo de datos de Destination) Usted debe probar y confirmar que la instrucción no cambie datos que usted no desea que cambien. DINT o REAL SINT. Source y Destination deben ser del mismo tipo.Instrucciones de matriz (archivo)/misceláneas (FAL. En algunos casos. los elementos de Destination se llenan con los valores de Source convertidos. No se genera un fallo mayor. 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 aritmético: no afectados Condiciones de fallo: ninguna Publicación 1756-RM003K-ES-P – Julio 2008 363 . La instrucción FLL realiza la operación en la memoria de datos contiguos. DINT o REAL SINT. SIZE) Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera end_address = start_address + (Length ∗ número de bytes en un elemento de destino) Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. SRT. La condición de salida de renglón se establece como falsa. 364 Publicación 1756-RM003K-ES-P – Julio 2008 .Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL. end_address > fin de una matriz de destino no sí end_address = fin de una matriz de destino source_address = Source destination_address = end_address sí no copiar los datos en source_address a destination _address destination_address = destination_address + 1 la condición de salida de renglón se establece como verdadera fin post-escán La condición de salida de renglón se establece como falsa. FSC. FLL. CPS. AVE. COP. STD. AVE. COP. Publicación 1756-RM003K-ES-P – Julio 2008 365 . SRT.Instrucciones de matriz (archivo)/misceláneas (FAL.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. FLL. STD. SIZE) Capítulo 8 Ejemplo: La instrucción FLL copia el valor de value_1 en dest_1 Lógica de escalera de relés 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) después de FLL 16#FFFF FF80 (-128) 16#78 1. FSC. CPS.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. dim_2] array[dim_0. AVE. CPS. SRT. 366 Publicación 1756-RM003K-ES-P – Julio 2008 .. 1. FOR position = 0 TO length-1 DO sum := sum + array[position].length). SIZE) Promedio de archivo (AVE) Operandos: La instrucción AVE calcula el promedio de un conjunto de valores. END_FOR.dim_1. STD. FSC. 2) especificar el primer elemento del grupo de elementos que se va a promediar no usar CONTROL.0. destino := sum / length. COP. pero usted puede lograr los mismos resultados usando una instrucción SIZE y una construcción FOR. sum := 0.DO u otra construcción de lazo.dim_1] array[dim_0] Destination SINT INT DINT REAL Control Length Position CONTROL DINT DINT tag inmediato inmediato estructura de control para la operación número de elementos de la matriz que se va a promediar elemento actual en la matriz el valor inicial es típicamente 0 tag resultado de la operación Formato tag de matriz Descripción hallar el promedio de los valores en esta matriz Texto estructurado El texto estructurado no cuenta con la instrucción AVE.Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL. SIZE(array..POS en el subíndice qué dimensión usar según el número de dimensiones. Lógica de escalera de relés Operando Array Tipo SINT INT DINT REAL Dimension to vary DINT inmediato (0. FLL. el orden es array[dim_0. POS DINT DINT Descripción: La instrucción AVE calcula el promedio de un conjunto de valores.LEN). SRT.POS.ER Tipo de datos BOOL BOOL BOOL Descripción El bit de habilitación indica que la instrucción AVE está habilitada. El bit de efectuado se establece cuando la instrucción ha realizado una operación en el último elemento de la matriz (. FSC.POS = .DN . Estructura CONTROL Mnemónico . FLL. .Instrucciones de matriz (archivo)/misceláneas (FAL. CPS. SIZE) Capítulo 8 Consulte el Apéndice C. La posición del elemento que causó el overflow se almacena en el valor . AVE. STD. IMPORTANTE Asegúrese de que la longitud no haga que la instrucción exceda la Dimension to vary especificada. Programación de texto estructurado para obtener información sobre la sintaxis de las construcciones en texto estructurado.LEN < 0 Dimension to vary no existe en la matriz especificada Tipo de fallo 4 4 Código de fallo 21 20 Publicación 1756-RM003K-ES-P – Julio 2008 367 . Condiciones de fallo: Ocurrirá un fallo mayor si .POS < 0 o . La posición contiene la posición del elemento actual al cual la instrucción obtiene acceso.ER. el destino será incorrecto.EN . Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. Se establece el bit de error si la instrucción genera un overflow. COP. La longitud especifica el número de elementos en la matriz sobre el que opera la instrucción. Si ocurre esto.LEN . La instrucción detiene la ejecución hasta que el programa borra el bit . DN = 1 el bit . STD.POS se borra la condición de salida de renglón se establece como falsa fin condición de entrada de renglón es verdadera La instrucción AVE calcula el promedio sumando todos los elementos especificados en la matriz y dividiendo el resultado entre el número de elementos.ER se borra. CPS. SRT. El bit .DN = 0 bit . Internamente.DN bit .DN se borra el valor . post-escán La condición de salida de renglón se establece como falsa. AVE. 368 Publicación 1756-RM003K-ES-P – Julio 2008 . vea la página 337.EN se borra. FLL. condición de entrada de renglón es falsa examinar el bit .Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL. SIZE) Ejecución: Condición preescán Acción de lógica de escalera de relés El bit . FSC. COP. El bit .DN se borra. La condición de salida de renglón se establece como falsa.EN se borra el bit . la instrucción usa una instrucción FAL para calcular el promedio: Expresión = cálculo de promedio Modo = ALL Para obtener detalles sobre cómo se ejecuta la instrucción FAL.ER se borra el bit . = 11.length). el cual es DINT[4.5]. FSC. sum := 0. dint_ave := sum / length. FLL. Publicación 1756-RM003K-ES-P – Julio 2008 369 . FOR position = 0 TO (length-1) DO sum := sum + array_dint[position]. COP.= 46 ----. CPS. END_FOR. dimensión 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 bín 0 dimensión 0 1 2 3 + 14 + 9 + 4 AVE = 19 -----------------------------------.5 4 4 dint_ave = 12 Lógica de escalera de relés Texto estructurado SIZE(array_dint. STD. AVE. SIZE) Capítulo 8 Ejemplo 1: Promediar array_dint.0. SRT.Instrucciones de matriz (archivo)/misceláneas (FAL. CPS. FOR position = 0 TO (length-1) DO sum := sum + array_dint[position]. END_FOR.1. FSC. 370 Publicación 1756-RM003K-ES-P – Julio 2008 .= 3 5 5 dint_ave = 3 Lógica de escalera de relés Texto estructurado SIZE(array_dint. dint_ave := sum / length. dimensión 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 dimensión 0 1 2 3 +4+3+2+1 AVE = 5 --------------------------------------. SRT. sum := 0. AVE.length).= 15 ----.5]. FLL. STD. SIZE) Ejemplo 2: Promediar array_dint.Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL. COP. el cual es DINT[4. SIZE) Capítulo 8 Clasificación de archivo (SRT) Operandos: La instrucción SRT clasifica un conjunto de valores en una dimensión (Dim to vary) de la matriz en orden ascendente. CPS. 2) qué dimensión usar según el número de dimensiones. en lugar de incluir los valores en la lista de operandos. Control). el orden es: array[dim_0.LEN .dim_1] array[dim_0] Control Length Position CONTROL DINT DINT tag inmediato inmediato estructura de control para la operación número de elementos en la matriz que se clasifica elemento actual en la matriz el valor inicial es típicamente 0 Formato tag de matriz Descripción matriz que se clasifica especificar el primer elemento del grupo de elementos que se clasifica Texto estructurado SRT(Array. FSC. COP.POS de la estructura CONTROL.dim_1.DN . Lógica de escalera de relés Operando Array Tipo SINT INT DINT no use CONTROL.EN . Se establece el bit de efectuado cuando los elementos especificados se han clasificado. Se establece el bit de error cuando . FLL. AVE.Dimtovary. usted especifica los valores de Length y Position al acceder a los miembros . SRT.POS Tipo de datos BOOL BOOL BOOL DINT DINT Descripción El bit de habilitación indica que la instrucción SRT está habilitada.ER . Estructura CONTROL Mnemónico . 1.Instrucciones de matriz (archivo)/misceláneas (FAL.POS < 0.LEN < 0 o .LEN y . Los operandos son los mismos que para la instrucción SRT de lógica de escalera de relés. STD.POS en el subíndice REAL Dimension to vary DINT inmediato (0. La posición contiene la posición del elemento actual al cual la instrucción obtiene acceso. La longitud especifica el número de elementos en la matriz en que la instrucción realiza una operación. Cualquiera de estas condiciones también genera un fallo mayor. Sin embargo.dim_2] array[dim_0. Publicación 1756-RM003K-ES-P – Julio 2008 371 . SRT. IMPORTANTE Usted debe probar y confirmar que la instrucción no cambie datos que usted no desea que cambien. La instrucción SRT realiza la operación en la memoria de datos contiguos.POS < 0 o . Consulte el Apéndice C.LEN < 0 La dimensión que se va a variar no existe para la matriz especificada Tipo de fallo 4 4 Código de fallo 21 20 20 La instrucción intenta obtener acceso a los 4 datos fuera de los límites de la matriz. FSC. AVE. cambie la condición de entrada del renglón de borrado a establecido cada vez que deba ejecutarse la instrucción. COP. ocurrirán resultados inesperados. condicione la instrucción de manera que sólo se ejecute cuando ocurra una transición. Programación de texto estructurado. Esto sucede si la longitud es excesiva y el tag es de un tipo de datos definido por el usuario. la instrucción cambia datos en otros miembros del tag. SIZE) Descripción: La instrucción SRT clasifica un conjunto de valores en una dimensión (Dimension to vary) de la matriz en orden ascendente.Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL. • En texto estructurado. Condiciones de fallo: Ocurrirá un fallo mayor si . IMPORTANTE Asegúrese de que la longitud no haga que la instrucción exceda la Dimension to vary especificada. CPS. 372 Publicación 1756-RM003K-ES-P – Julio 2008 . Si ocurre esto. En algunos casos. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. STD. Ésta es una instrucción transicional: • En lógica de escalera de relés. FLL. El bit . La condición de salida de renglón se establece como falsa.ER se borra. STD. La condición de salida de renglón se establece como falsa. La instrucción se ejecuta. La condición de salida de renglón se establece como verdadera. SRT. El bit . Publicación 1756-RM003K-ES-P – Julio 2008 373 . EnableIn se establece n. n. La instrucción clasifica los elementos especificados en la matriz en orden ascendente. a. EnableIn siempre se establece.DN = 1 el bit . Ninguna.DN bit . a. CPS. El bit . bit .EN se borra.DN se borra el valor .DN se borra.DN = 0 Acción de texto estructurado El bit . condición de entrada de renglón es falsa examinar el bit . AVE. ejecución de la instrucción post-escán La instrucción clasifica los elementos especificados en la matriz en orden ascendente. a.EN se borra. n. El bit .ER se borra el bit . FSC.Instrucciones de matriz (archivo)/misceláneas (FAL.POS se borra la condición de salida de renglón se establece como falsa fin condición de entrada de renglón es verdadera La instrucción se ejecuta. SIZE) Capítulo 8 Ejecución: Condición preescán Acción de lógica de escalera de relés El bit . COP.DN se borra.EN se borra el bit .ER se borra. FLL. FLL.POS := 0. que es DINT[4.0. AVE.5].Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL. CPS. Antes dimensión 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 dimensión 0 s ic e su d bín Después dimensión 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 bín su es dic 0 dimensión 0 1 2 3 0 1 2 3 Lógica de escalera de relés Texto estructurado control_1. control_1. FSC. COP. SRT.2].control_1). STD.LEN := 4. SIZE) Ejemplo 1: Clasifique int _array. SRT(int_array[0. 374 Publicación 1756-RM003K-ES-P – Julio 2008 . control_1). FLL. FSC.0].POS := 0. CPS. STD.1. SIZE) Capítulo 8 Ejemplo 2: Clasificar int _array. SRT(int_array[2. AVE.5]. COP. control_1.LEN := 5. que es DINT[4. Antes dimensión 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 dimensión 0 ice s b su índ Después dimensión 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 bín 0 dimensión 0 1 2 3 0 1 2 3 Lógica de escalera de relés Texto estructurado control_1. SRT. Publicación 1756-RM003K-ES-P – Julio 2008 375 .Instrucciones de matriz (archivo)/misceláneas (FAL. Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL. Se establece el bit de efectuado cuando se completa el cálculo.dim_2] array[dim_0. CPS.ER. Dimension to vary DINT inmediato (0. STD. Lógica de escalera de relés Operando Array Tipo SINT INT DINT REAL no use CONTROL. SRT. SIZE) Desviación estándar de archivo (STD) Operandos: La instrucción STD calcula la desviación estándar de un conjunto de valores en una dimensión de la matriz y almacena el resultado en Destination. La instrucción detiene la ejecución hasta que el programa borra el bit .ER Tipo de datos BOOL BOOL BOOL Descripción El bit de habilitación indica que la instrucción STD está habilitada.DN .POS.POS en el subíndice Un tag SINT o INT se convierte en un valor DINT mediante extensión de signo.EN .dim_1. La longitud especifica el número de elementos de la matriz sobre el que opera la instrucción. Se establece el bit de error cuando la instrucción genera un overflow. La posición contiene la posición del elemento actual al cual la instrucción obtiene acceso.dim_1] array[dim_0] Destination Control Length Position REAL CONTROL DINT DINT tag tag inmediato inmediato resultado de la operación estructura de control para la operación el número de elementos de la matriz que se usa para calcular el desviación estándar elemento actual en la matriz el valor inicial es típicamente 0 especificar el primer elemento del grupo de elementos que se usan para calcular la desviación estándar Formato tag de matriz Descripción hallar la desviación estándar de los valores en esta matriz Estructura CONTROL Mnemónico . el orden es: array[dim_0.POS DINT DINT 376 Publicación 1756-RM003K-ES-P – Julio 2008 . AVE. La posición del elemento que causó el overflow se almacena en el valor . COP. FSC. FLL.LEN . . 2) qué dimensión usar según el número de dimensiones. 1. Consulte el Apéndice C. AVE. CPS. Publicación 1756-RM003K-ES-P – Julio 2008 377 . pero usted puede lograr los mismos resultados usando una instrucción SIZE y una construcción FOR.Instrucciones de matriz (archivo)/misceláneas (FAL.DO u otra construcción de lazo..average)**2). Descripción: La desviación estándar se calcula según la fórmula siguiente: ⎛ N ⎞ 2 ⎟ ⎜ [ 〈 X – AVE 〉 ] ( start + i ) ⎜∑ ⎟ ⎝i = 1 ⎠ ------------------------------------------------------------------(N – 1) Desviación estándar = Donde: • inicio = subíndice de la dimensión para variar del operando de la matriz • xi = elemento variable en la matriz • N = número de elementos especificados en la matriz • AVE = ⎛ ⎞ ⎜ x ( start + i )⎟ ⎜ ⎟ ⎝i = 1 ⎠ ---------------------------------------N N ∑ IMPORTANTE Asegúrese de que Length no haga que la instrucción exceda la Dimension to vary especificada. sum := 0. FSC. average := sum / length. FOR position = 0 TO length-1 DO sum := sum + array[position]. Programación de texto estructurado para obtener información sobre la sintaxis de las construcciones en texto estructurado. destino := SQRT(sum /(length-1))..0. END_FOR. FLL.length). SIZE) Capítulo 8 Texto estructurado El texto estructurado no cuenta con la instrucción STD. FOR position = 0 TO length-1 DO sum := sum + ((array[position] . sum := 0. STD. SIZE(array. el destino será incorrecto. Si ocurre esto. COP. SRT. END_FOR. vea la página 337. Internamente. la instrucción usa una instrucción FAL para calcular el promedio: Expresión = cálculo de la desviación estándar Modo = ALL Para obtener detalles acerca de cómo se ejecuta la instrucción FAL. 378 Publicación 1756-RM003K-ES-P – Julio 2008 .ER se borra el bit .EN se borra el bit .DN se borra el valor .DN = 1 el bit . post-escán La condición de salida de renglón se establece como falsa. condición de entrada de renglón es falsa examinar el bit .DN bit . SRT. FLL.POS se borra la condición de salida de renglón se establece como falsa fin condición de entrada de renglón es verdadera La instrucción STD calcula la desviación estándar de los elementos especificados. El bit .DN = 0 bit .ER se borra. FSC. CPS. El bit .EN se borra. Condiciones de fallo: Ocurrirá un fallo mayor si .DN se borra. SIZE) Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados.POS < 0 o . AVE.Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL. La condición de salida de renglón se establece como falsa.LEN < 0 La dimensión que se va a variar no existe en la matriz especificada Tipo de fallo 4 4 Código de fallo 21 20 Ejecución: Condición preescán Acción de lógica de escalera de relés El bit . COP. STD. 5〉 + 〈 1 – 8.= 8. FOR position = 0 TO (length-1) DO sum := sum + ((dint_array[position] . sum := 0. average := sum / length. FLL. sum := 0. AVE. CPS. real_std := SQRT(sum / (length-1)).average)**2). STD.length).5 4 4 2 2 2 2 STD = 〈 16 – 8. FOR position = 0 TO (length-1) DO sum := sum + dint_array[position]. SRT. END_FOR.5〉 + 〈 6 – 8. END_FOR. FSC.454972 Lógica de escalera de relés Texto estructurado SIZE(dint_array. dimensión 1 su di c bín 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 dimensión 0 1 2 3 + 11 + 6 + 1 AVE = 16 -----------------------------------.454972 -------------------------------------------------------------------------------------------------------------------------〈 4 – 1〉 real_std = 6. COP.= 6.0.5〉 + 〈 11 – 8.Instrucciones de matriz (archivo)/misceláneas (FAL. SIZE) Capítulo 8 Ejemplo 1: Calcular la desviación estándar de dint_array.5]. Publicación 1756-RM003K-ES-P – Julio 2008 379 . que es DINT[4.= 34 ----.5〉 . FOR position = 0 TO (length-1) DO sum := sum + dint_array[position]. SRT. average := sum / length. SIZE) Ejemplo 2: Calcular la desviación estándar de dint_array. END_FOR. CPS. 380 Publicación 1756-RM003K-ES-P – Julio 2008 . real_std := SQRT(sum / (length-1)). sum := 0. FOR position = 0 TO (length-1) DO sum := sum + ((dint_array[position] .= 90 ----. dimensión 1 bín 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 dimensión 0 1 2 3 + 19 + 18 + 17 + 16 AVE = 20 -----------------------------------------------------.5].= 18 5 5 2 2 2 2 STD = 〈 20 – 18〉 + 〈 19 – 18〉 + 〈 18 – 18〉 + 〈 17 – 18〉 + 〈 16 – 18〉 .1. END_FOR.length). FLL.= 1.581139 Lógica de escalera de relés Texto estructurado SIZE(dint_array. STD.average)**2). COP. que es DINT[4.581139 ----------------------------------------------------------------------------------------------------------------------------------------------------------〈 5 – 1〉 2 real_std = 1. AVE. sum := 0.Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL. FSC. SRT.Size). • La instrucción encuentra el tamaño de una dimensión de una matriz. COP. FLL. Lógica de escalera de relés Operando Source Tipo SINT INT DINT REAL estructura cadena Dimension to Vary DINT inmediato (0. SIZE) Capítulo 8 Tamaño en elementos (SIZE) Operandos: La instrucción SIZE encuentra el tamaño de una dimensión de una matriz. 1.Instrucciones de matriz (archivo)/misceláneas (FAL.Dimtovary. FSC. AVE. 2) dimensión que se va a usar: Para el tamaño de primera dimensión segunda dimensión tercera dimensión Size SINT INT DINT REAL tag Introduzca 0 1 2 Formato tag de matriz Descripción la matriz en la cual la instrucción realizará la operación tag para guardar el número de elementos en la dimensión especificada de la matriz. STD. CPS. Descripción: La instrucción SIZE halla el número de elementos (tamaño) en la dimensión designada de la matriz Source y coloca el resultado en el operando Size. Los operandos son iguales a los de la instrucción SIZE de lógica de escalera de relés. Texto estructurado SIZE(Source. • La instrucción realiza la operación en una: – matriz – matriz en una estructura – matriz que es parte de una matriz más grande Indicadores de estado aritmético: no afectados Publicación 1756-RM003K-ES-P – Julio 2008 381 . 0. falsa. La condición de salida de renglón se establece como falsa. CPS. Lógica de escalera de relés SIZE SIZE Tamaño en elementos Size in Elements Source array_a[0] Source array_a[0] 255 255 Dim. En este ejemplo. EnableIn siempre se establece. La instrucción se ejecuta. a. Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés Acción de texto estructurado La condición de salida de renglón se establece como Ninguna. SRT.Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL. AVE. EnableIn se establece n . COP. STD. Ninguna. n. a.array_a_size).a. to Vary Dim. La instrucción se ejecuta. La condición de salida de renglón se establece como falsa. SIZE) Condiciones de fallo: ninguna. FSC. la dimensión 0 de array_a tiene 10 elementos. ejecución de la instrucción post-escán La instrucción encuentra el tamaño de una dimensión. Almacene el tamaño en array_a_size. Ejemplo 1: Encuentre el número de elementos en la dimensión 0 (primera dimensión) de array_a. La condición de salida de renglón se establece como verdadera. n. FLL. La instrucción encuentra el tamaño de una dimensión. 382 Publicación 1756-RM003K-ES-P – Julio 2008 . To Vary 00 Tamaño array_a_size Size array_a_size 10 10 Texto estructurado SIZE(array_a. SRT. (La cadena usa el tipo de datos STRING predeterminado). FLL. AVE. Publicación 1756-RM003K-ES-P – Julio 2008 383 . CPS. La instrucción SIZE encuentra el número de elementos en el miembro DATA de la estructura de cadena y almacena el tamaño en data_size_a.Instrucciones de matriz (archivo)/misceláneas (FAL. Almacene el tamaño en string_1_size.to To Vary 0 Tamaño string_1_size Size string_1_size 82 82 Texto estructurado SIZE(string_1. Vary 00 Tamaño data_size_a Size data_size_a 24 24 Texto estructurado SIZE(strings_a[0].DATA[0] Source strings_a[0].DATA[0] ’$00’ '$00' Dim.0. FSC. string_1 puede contener hasta 82 caracteres. el miembro DATA tiene 24 elementos. Vary 0 Dim. En este ejemplo.0.DATA[0] ’$00’ '$00' Dim. Lógica de escalera de relés SIZE SIZE Tamaño elementos Size inen Elements Source strings_a[0]. (La estructura de cadenas tiene una longitud especificada por el usuario de 24). COP. SIZE) Capítulo 8 Ejemplo 2: Encuentre el número de elementos en el miembro DATA de string_1. Puesto que cada elemento retiene 1 carácter.string_1_size).data_size_a). el miembro DATA de string_1 tiene 82 elementos. En este ejemplo.DATA[0]. STD. toTo Vary Dim. que es una cadena. Lógica de escalera de relés SIZE SIZE Tamaño elementos Size in en Elements Source string_1.DATA[0] Source string_1.DATA[0]. Ejemplo 3: Strings_a es una matriz de estructuras de cadenas. FSC. COP. FLL. CPS. SIZE) Notas: 384 Publicación 1756-RM003K-ES-P – Julio 2008 . STD.Capítulo 8 Instrucciones de matriz (archivo)/misceláneas (FAL. SRT. AVE. los tipos de datos que aparecen en negrita indican tipos de datos óptimos. Usted puede mezclar diferentes tipos de datos. FFL. 385Publicación 1756-RM003K-ES-P – Julio 2008 385 . Cargar y descargar valores en el orden invertido.Capítulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL. desplazar bits y descargar bits de una matriz de bits. Use las instrucciones de matriz (archivo)/desplazamiento para modificar la ubicación de datos dentro de matrices. Las instrucciones se ejecutan más rápidamente y requieren menos memoria si todos los operandos de instrucción usan el mismo tipo de datos óptimos. LFL. bit por bit. LFU) Introducción Si desea Cargar bits. FFU. típicamente DINT o REAL. pero esto puede causar pérdida de exactitud y errores de redondeo. BSR. Para las instrucciones de lógica de escalera de relés. Use esta instrucción BSL BSR FFL FFU LFL LFU Disponible en estos lenguajes lógica de escalera de relés lógica de escalera de relés lógica de escalera de relés lógica de escalera de relés lógica de escalera de relés lógica de escalera de relés Vea la página 386 390 394 400 406 412 Cargar y descargar valores en el mismo orden. El bit de descarga es la salida de la instrucción. LFL.DN .UL . Descripción: Cuando se habilita. FFL. la instrucción desplaza bits más allá de la matriz en otros miembros del tag. La instrucción BSL realiza la operación en la memoria de datos contiguos.POS en el subíndice Control Source bit Length CONTROL BOOL DINT tag tag inmediato estructura de control para la operación bit que se desplaza número de bits en la matriz que se desplazan Estructura CONTROL Mnemónico . FFU. En algunos casos. Se establece el bit de efectuado para indicar que los bits se han desplazado una posición hacia la izquierda. BSR.Capítulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL. la instrucción descarga el bit del extremo superior de los bits especificados al bit .EN .UL almacena el estado del bit que se desplazó fuera del rango de los bits.LEN Tipo de datos BOOL BOOL BOOL BOOL DINT Descripción El bit de habilitación indica que la instrucción BSL está habilitada.ER . Lógica de escalera de relés Operando Array Tipo DINT Formato tag de matriz Descripción matriz que se modifica especificar el primer elemento del grupo de elementos no usar CONTROL.UL. Usted debe probar y confirmar que la instrucción no cambie datos que usted no desea que cambien.LEN < 0. Esto sucede si la longitud es excesiva y el tag es de un tipo de datos definido por el usuario. El bit . La longitud especifica el número de bits de matriz que se desplazan. Se establece el bit de error cuando . desplaza los bits restantes una posición hacia la izquierda y carga el bit de Source en el bit 0 de Array. LFU) Desplazamiento de bits a la izquierda (BSL) Operandos: La instrucción BSL desplaza los bits especificados dentro de la matriz una posición hacia la izquierda. IMPORTANTE Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna 386 Publicación 1756-RM003K-ES-P – Julio 2008 . POS se borra.DN se borra. El bit .POS se borra. BSR.ER se borra. La condición de salida de renglón se establece como falsa. El bit .ER se borra. El valor . LFU) Capítulo 9 Ejecución: Condición: preescán Acción de lógica de escalera de relés El bit . condición de entrada de renglón es falsa El bit . Publicación 1756-RM003K-ES-P – Julio 2008 387 . El valor .DN se borra. El bit .EN se borra. FFL. FFU. El bit . LFL.Instrucciones de matriz (archivo)/desplazamiento (BSL.EN se borra. La condición de salida de renglón se establece como falsa. FFL.source bit = 0 no el bit . LFU) Condición: Acción de lógica de escalera de relés condición de entrada de renglón es verdadera examinar el bit .UL se establece. 388 Publicación 1756-RM003K-ES-P – Julio 2008 .ER se establece .LEN = 0 sí el bit .source bit = 1 el bit . .DN se establece no examinar el bit de origen el bit .EN se establece .POS = .DN se establece .EN = 0 el bit .UL matriz bit de origen .Capítulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL. LFL.EN = 1 bit . desplazar matriz izquierda una posición a la izquierda bit . BSR.LEN < 0 sí el bit .UL permanece establecido. FFU.EN bit .LEN la condición de salida de renglón se establece como verdadera fin post-escán La condición de salida de renglón se establece como falsa. UL.25 en el bit . LFU) Capítulo 9 Ejemplo 1: Cuando se habilita.UL.0. Observe cómo array_dint[0]. desplaza los bits restantes y carga input_1 en array_dint[0]. 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 .31 se desplaza a través de las palabras hasta array_dint[1]. la instrucción BSL comienza en el bit 0 en array_dint[0]. FFL. Los valores en los bits restantes (31-26 en array_dint[1]) no son válidos.0.UL estos bits se desplazan a la izquierda 9 8 7 6 5 4 3 2 1 0 array_dint[0] después del desplazamiento 0 1 1 1 1 0 0 0 0 1 1 input_1 Ejemplo 2: Cuando se habilita.Instrucciones de matriz (archivo)/desplazamiento (BSL. desplaza los bits restantes y carga input_1 en array_dint[0]. 31 0 array_dint[0] 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 estos bits se desplazan a la izquierda input_1 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 Publicación 1756-RM003K-ES-P – Julio 2008 389 . la instrucción BSL comienza en el bit 0 en array_dint[0]. La instrucción descarga array_dint[0].0. LFL. La instrucción descarga array_dint[1].9 en el bit . FFU. Los valores en los bits restantes (10-31) no son válidos. BSR. DN . BSR. La longitud especifica el número de bits de la matriz que se desplazan. FFU.UL .LEN < 0.ER . desplaza los bits restantes una posición hacia la derecha y carga el bit de Source en el bit de extremo superior de los bits especificados.Capítulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL. la instrucción cambia los bits en otros miembros del tag. LFL.LEN Tipo de datos BOOL BOOL BOOL BOOL DINT Descripción El bit de habilitación indica que la instrucción BSR está habilitada. El bit .EN . FFL.UL. IMPORTANTE Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna 390 Publicación 1756-RM003K-ES-P – Julio 2008 . Descripción: Cuando se habilita. la instrucción descarga el valor del bit 0 de Array en el bit . Se establece el bit de efectuado para indicar que los bits se han desplazado una posición hacia la derecha. En algunos casos.UL almacena el estado del bit que se desplazó fuera del rango de los bits.POS en el subíndice Control Source bit Length CONTROL BOOL DINT tag tag inmediato estructura de control para la operación bit que se desplaza número de bits en la matriz que se desplazan Estructura CONTROL Mnemónico . El bit de descarga es la salida de la instrucción. Lógica de escalera de relés Operando Array Tipo DINT Formato tag de matriz Descripción matriz que se modifica especificar el elemento a partir del cual se inicia el desplazamiento no usar CONTROL. Se establece el bit de error cuando . Usted debe probar y confirmar que la instrucción no cambie datos que usted no desea que cambien. Esto sucede si la longitud es excesiva y el tag es de un tipo de datos definido por el usuario. LFU) Desplazamiento de bits a la derecha (BSR) Operandos: La instrucción BSR desplaza los bits especificados dentro de la matriz una posición hacia la derecha. La instrucción BSR realiza la operación en la memoria de datos contiguos. El valor . FFU. BSR. El valor . FFL.EN se borra.EN se borra. El bit . El bit . El bit .POS se borra. LFL. La condición de salida de renglón se establece como falsa.ER se borra. Publicación 1756-RM003K-ES-P – Julio 2008 391 .POS se borra. El bit .ER se borra.DN se borra. La condición de salida de renglón se establece como falsa. condición de entrada de renglón es falsa El bit .Instrucciones de matriz (archivo)/desplazamiento (BSL. LFU) Capítulo 9 Ejecución: Condición preescán Acción de lógica de escalera de relés El bit .DN se borra. UL .source bit = 1 el bit .Capítulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL.source bit = 0 no el bit .DN se establece .UL se establece desplazar matriz izquierda una posición hacia la izquierda bit de origen matriz bit . FFU. 392 Publicación 1756-RM003K-ES-P – Julio 2008 . BSR. .EN bit . LFU) Condición Acción de lógica de escalera de relés condición de entrada de renglón es verdadera examinar el bit .EN = 1 bit .POS = .LEN la condición de salida de renglón se establece como verdadera fin post-escán La condición de salida de renglón se establece como falsa. FFL. LFL.ER se establece .EN = 0 el bit .LEN = 0 sí el bit .LEN < 0 sí el bit .UL permanece establecido.EN se establece .DN se establece no examinar el bit de origen el bit . 0 en el bit . Los valores en los bits restantes (31-26 en dint_array[1]) no son válidos.UL Ejemplo 2: Cuando se habilita. la instrucción BSR comienza en el bit 9 en array_dint[0]. LFL. Los valores en los bits restantes (10-31) no son válidos.UL. la instrucción BSR comienza en el bit 25 en array_dint[1]. Observe cómo array_dint[1].UL.9. FFU. LFU) Capítulo 9 Ejemplo 1: Cuando se habilita.0 en el bit .0 se desplaza a través de las palabras hasta array_dint[0]. La instrucción descarga array_dint[0]. desplaza los bits restantes a la derecha y carga input_1 en array_dint[1]. 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] después del desplazamiento 1 0 0 1 1 1 1 0 0 0 0 bit . BSR.31. 31 0 array_dint[0] 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 bit .25. desplaza los bits restantes a la derecha y carga input_1 en array_dint[0]. La instrucción descarga array_dint[0]. FFL.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 Publicación 1756-RM003K-ES-P – Julio 2008 393 .Instrucciones de matriz (archivo)/desplazamiento (BSL. use la misma estructura para los dos operandos.Capítulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL. LFU) Carga FIFO (FFL) Operandos: La instrucción FFL copia el valor de Source a la FIFO. LFL. Un número entero menor se convierte en un número entero mayor mediante extensión de signo. BSR. FFU.POS en el subíndice Formato inmediato tag Descripción 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. FFL. 394 Publicación 1756-RM003K-ES-P – Julio 2008 . Lógica de escalera de relés Operando Source Tipo SINT INT DINT REAL cadena estructura Source se convierte en el tipo de datos del tag de matriz. FIFO SINT INT DINT REAL cadena estructura Control CONTROL tag estructura de control para la operación generalmente se usa el mismo CONTROL que el FFU asociado Length Position DINT DINT inmediato inmediato número máximo de elementos que la FIFO puede contener a la vez la próxima ubicación en la FIFO donde la instrucción carga datos el valor inicial es típicamente 0 tag de matriz FIFO que se modifica especificar el primer elemento de la FIFO no usar CONTROL. Usted debe probar y confirmar que la instrucción no cambie datos que usted no desea que cambien.LEN . La instrucción carga un valor cada vez que la instrucción se habilita hasta que la FIFO esté llena. los bits .LEN ≤ 0 o . IMPORTANTE Indicadores de estado aritmético: no afectados Condiciones de fallo: Ocurrirá un fallo mayor si (elemento inicial + . Normalmente.EM y . FFL.LEN). Cuando se usan en parejas. primero en salir. la instrucción FFL carga el valor de Source en la posición de la FIFO identificada por el valor . LFU) Capítulo 9 Estructura CONTROL Mnemónico .EM . La instrucción FFL realiza la operación en la memoria de datos contiguos. la instrucción carga datos más allá de la matriz en otros miembros del tag.DN . El bit . La longitud especifica el número máximo de elementos que la FIFO puede contener a la vez. El bit de vacío indica que la FIFO está vacía.POS = . las instrucciones FFL y FFU establecen un registro de desplazamiento asíncrono. LFL. BSR. Source y la FIFO tienen el mismo tipo de datos.EN .POS Tipo de datos BOOL BOOL BOOL DINT DINT Descripción El bit de habilitación indica que la instrucción FFL está habilitada. FFU.POS. La posición identifica la ubicación en la FIFO donde la instrucción cargará el siguiente valor. Esto sucede si la longitud es excesiva y el tag es de un tipo de datos definido por el usuario.POS < 0. Si .LEN.POS < .Instrucciones de matriz (archivo)/desplazamiento (BSL.DN inhibe la carga de la FIFO hasta que . Descripción: Use la instrucción FFL con la instrucción FFU para almacenar y recuperar datos en el siguiente orden: primero en entrar.POS) > tamaño de la matriz FIFO Tipo de fallo 4 Código de fallo 20 Publicación 1756-RM003K-ES-P – Julio 2008 395 . Cuando se habilita.DN se establecen. En algunos casos. Se establece el bit de efectuado para indicar que la FIFO está llena (. LFU) Ejecución: Condición preescán se establece el bit .DN está establecido no la condición de salida de renglón se establece como falsa fin 396 Publicación 1756-RM003K-ES-P – Julio 2008 .EN para evitar una carga falsa cuando se inicia el escán Acción de lógica de escalera de relés .EM está establecido el bit .EM está establecido no . FFU.DN está establecido .EM se borra el bit . BSR. FFL.LEN sí el bit .POS ≥ .Capítulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL.POS < 0 sí no el bit . LFL.POS = 0 sí el bit .DN se borra el bit .LEN < 0 sí no . LFU) Capítulo 9 Condición condición de entrada de renglón es falsa Acción de lógica de escalera de relés el bit .EM está establecido el bit .DN está establecido .EM está establecido no . LFL. FFL.EM se borra el bit . BSR.POS = 0 sí el bit .POS ≥ .Instrucciones de matriz (archivo)/desplazamiento (BSL.LEN < 0 sí no . FFU.DN se borra el bit .LEN sí el bit .DN está establecido no la condición de salida de renglón se establece como falsa fin Publicación 1756-RM003K-ES-P – Julio 2008 397 .POS < 0 sí no el bit .EN se borra . POS > .POS ≥ .DN se borra .POS < 0 no el bit . BSR.1] = origen la condición de salida de renglón se establece como verdadera fin post-escán La condición de salida de renglón se establece como falsa.POS = 0 no sí el bit .LEN < 0 no sí .EN = 0 el bit .DN está establecido el bit .EN se establece .POS + 1 sí .EM está establecido .LEN no sí el bit . LFL.POS .EM se borra el bit .LEN < 0 no sí .DN se borra sí el bit .DN se establece sí .EM está establecido el bit . LFU) Condición condición de entrada de renglón es verdadera Acción de lógica de escalera de relés examinar el bit .EM se borra el bit .POS < 0 no el bit .EM está establecido el bit .POS o sí .POS ≥ .POS .1 FIFO[.DN se establece .EN = 1 .LEN > tamaño de la matriz no fallo mayor .LEN no sí el bit . 398 Publicación 1756-RM003K-ES-P – Julio 2008 .EN .POS = .DN está establecido .POS = . FFL. FFU.LEN no .Capítulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL. Instrucciones de matriz (archivo)/desplazamiento (BSL. BSR. LFL. 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. LFU) Capítulo 9 Ejemplo: Una vez habilitada.pos = 5 value_1 = 55555 después de la carga FIFO 00000 11111 22222 33333 44444 55555 00000 00000 00000 00000 control_1. FFL.pos = 6 Publicación 1756-RM003K-ES-P – Julio 2008 399 . FFU. la instrucción FFL carga value_1 en la siguiente posición de la FIFO. Control CONTROL tag estructura de control para la operación generalmente se usa el mismo CONTROL que el FFL asociado Length Position DINT DINT inmediato inmediato número máximo de elementos que la FIFO puede contener a la vez La próxima ubicación en la FIFO donde la instrucción descarga datos el valor inicial es típicamente 0 tag valor que sale de la FIFO Formato tag de matriz Descripción FIFO que se modifica especificar el primer elemento de la FIFO no usar CONTROL. LFU) Descarga FIFO (FFU) Operandos: La instrucción FFU descarga el valor desde la posición 0 (primera posición) de la FIFO y almacena dicho valor en Destination. Un número entero menor se convierte en un número entero mayor mediante extensión de signo. LFL.POS en el subíndice Si usted usa una estructura definida por el usuario como el tipo de datos para el operando FIFO o Destination. Lógica de escalera de relés 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. FFU. FFL. BSR.Capítulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL. 400 Publicación 1756-RM003K-ES-P – Julio 2008 . use la misma estructura para los dos operandos. El resto de los datos en la FIFO se desplazan hacia abajo una posición. Instrucciones de matriz (archivo)/desplazamiento (BSL. Si . Esto sucede si la longitud es excesiva y el tag es de un tipo de datos definido por el usuario. Usted debe probar y confirmar que la instrucción no cambie datos que usted no desea que cambien. Descripción: Use la instrucción FFU con una instrucción FFL para almacenar y recuperar datos en el siguiente orden: primero en entrar.LEN). El bit de vacío indica que la FIFO está vacía.EU se establece para impedir una descarga falsa cuando se inicia el escán del programa. FFU.POS Tipo de datos BOOL BOOL BOOL DINT DINT Descripción El bit de habilitación de descarga indica que la instrucción FFU está habilitada.LEN ≤ 0 o .EM y . Una vez habilitada. El bit . LFU) Capítulo 9 Estructura CONTROL Mnemónico . BSR.POS < 0. los bits . FFU retorna la cifra 0 a Destination. La posición identifica el final de los datos cargados en la FIFO.DN se establecen. En algunos casos.DN . primero en salir. IMPORTANTE Indicadores de estado aritmético: no afectados Condiciones de fallo: Ocurrirá un fallo mayor si Length > tamaño de la matriz FIFO Tipo de fallo 4 Código de fallo 20 Publicación 1756-RM003K-ES-P – Julio 2008 401 .POS = .EU .LEN . Se establece el bit de efectuado para indicar que la FIFO está llena (. La instrucción FFU realiza la operación en la memoria de datos contiguos.EM . la instrucción FFU descarga los datos desde el primer elemento de la FIFO y coloca dicho valor en Destination. Si la FIFO está vacía. La instrucción descarga un valor cada vez que la instrucción se habilita hasta que la FIFO esté vacía. LFL. La longitud especifica el número máximo de elementos en la FIFO. FFL. la instrucción descarga datos desde otros miembros del tag. POS < 0 sí no el bit .Capítulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL.DN está establecido no la condición de salida de renglón se establece como falsa fin 402 Publicación 1756-RM003K-ES-P – Julio 2008 .LEN < 0 sí no .EM está establecido no .EM se borra el bit .POS = 0 sí el bit . FFU. LFL.LEN sí el bit . BSR.EU para evitar una descarga falsa cuando se inicia el escán . LFU) Ejecución: Condición preescán Acción de lógica de escalera de relés se establece el bit .DN está establecido . FFL.EM está establecido el bit .POS ≥ .DN se borra el bit . EM está establecido el bit .POS ≥ .DN está establecido . LFL. FFU.DN está establecido no la condición de salida de renglón se establece como falsa fin Publicación 1756-RM003K-ES-P – Julio 2008 403 .EM se borra el bit .DN se borra el bit .POS < 0 sí no el bit .POS = 0 sí el bit .Instrucciones de matriz (archivo)/desplazamiento (BSL.EU se borra . FFL. LFU) Capítulo 9 Condición condición de entrada de renglón es falsa Acción de lógica de escalera de relés el bit .LEN < 0 sí no . BSR.EM está establecido no .LEN sí el bit . DN se borra sí el bit . LFL.EM se borra el bit .DN se borra sí .EU = 0 Acción de lógica de escalera de relés examinar el bit .1] = FIFO[i] i = i +1 sí i < . 404 Publicación 1756-RM003K-ES-P – Julio 2008 .LEN no la condición de salida de renglón se establece como verdadera fin post-escán La condición de salida de renglón se establece como falsa.POS = .POS ≥ . FFU.EM está establecido . BSR.LEN no sí .POS < 0 no el bit .EM está establecido el bit .EU está establecido .POS -1 Destination = FIFO[0] i=1 sí Destination = 0 FIFO[i .EU = 1 el bit .Capítulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL.POS ≤ 1 no sí el bit .LEN < 0 no sí .DN se establece no .EM está establecido .DN está establecido .EM se borra el bit .POS = 0 no sí el bit . FFL.LEN > tamaño de la matriz no sí fallo mayor . LFU) Condición condición de entrada de renglón es verdadera .EU .LEN < 0 no sí .DN está establecido el bit .POS < 1 el bit .POS < 0 no el bit .EM está establecido el bit . pos = 5 value_2 = 00000 Publicación 1756-RM003K-ES-P – Julio 2008 405 . antes de la descarga FIFO array_dint[0] 00000 11111 22222 33333 44444 array_dint[5] 55555 00000 00000 00000 00000 control_1. BSR. la instrucción FFU descarga array_dint[0] en value_2 y desplaza el resto de los elementos en array_dint. LFU) Capítulo 9 Ejemplo: Una vez habilitada.pos = 6 después de la descarga FIFO 11111 22222 33333 44444 55555 00000 00000 00000 00000 00000 control_1. FFL. LFL. FFU.Instrucciones de matriz (archivo)/desplazamiento (BSL. LFU) Carga LIFO (LFL) Operandos: La instrucción LFL copia el valor de Source en la LIFO. Un número entero menor se convierte en un número entero mayor mediante extensión de signo. use la misma estructura para los dos operandos.Capítulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL. 406 Publicación 1756-RM003K-ES-P – Julio 2008 . Lógica de escalera de relés Operando Source Tipo SINT INT DINT REAL cadena estructura Source se convierte en el tipo de datos del tag de matriz.POS en el subíndice Formato inmediato tag Descripción 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. FFL. LIFO SINT INT DINT REAL cadena estructura Control CONTROL tag estructura de control para la operación generalmente se usa el mismo CONTROL que el LFU asociado Length Position DINT DINT inmediato inmediato número máximo de elementos que la LIFO puede contener a la vez la siguiente ubicación en la LIFO donde la instrucción carga datos el valor inicial es típicamente 0 tag de matriz LIFO que se modifica especificar el primer elemento de la LIFO no usar CONTROL. BSR. LFL. FFU. El bit de vacío indica que la LIFO está vacía. Se establece el bit de efectuado para indicar que la LIFO está llena (.POS < 0.LEN ≤ 0 o . Cuando se usan en parejas. la instrucción carga datos más allá de la matriz en otros miembros del tag.EM .DN inhibe la carga de la LIFO hasta que .LEN). IMPORTANTE Indicadores de estado aritmético: no afectados Condiciones de fallo: Ocurrirá un fallo mayor si (elemento inicial + . Descripción: Use la instrucción LFL con la instrucción LFU para almacenar y recuperar datos en el siguiente orden: último en entrar. Source y LIFO tienen el mismo tipo de datos. El bit . La longitud especifica el número máximo de elementos que la LIFO puede contener a la vez. LFL. BSR. La instrucción LFL realiza la operación en la memoria de datos contiguos.POS Tipo de datos BOOL BOOL BOOL DINT DINT Descripción: El bit de habilitación indica que la instrucción LFL está habilitada.POS) > tamaño de la matriz LIFO Tipo de fallo 4 Código de fallo 20 Publicación 1756-RM003K-ES-P – Julio 2008 407 .EM y . Normalmente.POS = . Esto sucede si la longitud es excesiva y el tag es de un tipo de datos definido por el usuario.DN . La instrucción carga un valor cada vez que la instrucción se habilita hasta que la LIFO esté llena.DN se establecen.EN . La posición identifica la ubicación en la LIFO donde la instrucción cargará el siguiente valor. En algunos casos. los bits .Instrucciones de matriz (archivo)/desplazamiento (BSL. FFL. Cuando se habilita.LEN .POS.LEN. las instrucciones LFL y LFU establecen un registro de desplazamiento asíncrono. FFU.POS < . Usted debe probar y confirmar que la instrucción no cambie datos que usted no desea que cambien. Si . primero en salir. LFU) Capítulo 9 Estructura CONTROL Mnemónico . la instrucción LFL carga el valor de Source en la posición en la LIFO identificada por el valor . BSR.DN está establecido no la condición de salida de renglón se establece como falsa fin 408 Publicación 1756-RM003K-ES-P – Julio 2008 .DN se borra el bit .LEN sí el bit . FFL.EN para evitar una carga falsa cuando se inicia el escán . LFU) Ejecución: Condición: preescán Acción de lógica de escalera de relés se establece el bit .POS ≥ .POS < 0 sí no el bit .EM se borra el bit .Capítulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL.EM está establecido el bit .LEN < 0 sí no . LFL.EM está establecido no .DN está establecido .POS = 0 sí el bit . FFU. FFU.EN se borra .EM está establecido no .LEN < 0 sí no .POS < 0 sí no el bit .Instrucciones de matriz (archivo)/desplazamiento (BSL. FFL.LEN sí el bit . LFL.POS ≥ .EM se borra el bit . LFU) Capítulo 9 Condición: condición de entrada de renglón es falsa Acción de lógica de escalera de relés el bit .DN está establecido no la condición de salida de renglón se establece como falsa fin Publicación 1756-RM003K-ES-P – Julio 2008 409 .EM está establecido el bit .DN está establecido .POS = 0 sí el bit . BSR.DN se borra el bit . POS = 0 no sí el bit .POS < 0 no el bit . FFL.LEN < 0 no sí .1 LIFO[.EM está establecido . 410 Publicación 1756-RM003K-ES-P – Julio 2008 .EM está establecido el bit .DN está establecido el bit .POS + 1 sí .POS > .LEN no .LEN < 0 no sí .EM se borra el bit .POS < 0 no el bit .EM se borra el bit .POS ≥ .LEN no sí el bit . LFL.LEN no sí el bit .POS = .DN se borra .EM está establecido el bit .DN está establecido .POS = .LEN > tamaño de la matriz no fallo mayor .EN .DN se establece sí . FFU.POS .DN se borra sí el bit .POS ≥ . BSR.1] = origen la condición de salida de renglón se establece como verdadera fin post-escán La condición de salida de renglón se establece como falsa.EN = 1 .EN se establece .EN = 0 el bit .POS o sí .DN se establece . LFU) Condición: condición de entrada de renglón es verdadera Acción de lógica de escalera de relés examinar el bit .Capítulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL.POS . FFU. antes de la carga LIFO array_dint[0] 00000 11111 22222 33333 44444 array_dint[5] 00000 00000 00000 00000 00000 control_1.pos = 6 Publicación 1756-RM003K-ES-P – Julio 2008 411 .pos = 5 value_1 = 55555 después de la carga LIFO 00000 11111 22222 33333 44444 55555 00000 00000 00000 00000 control_1. la cual es array_dint[5] en este ejemplo. BSR. la instrucción LFL carga value_1 en la próxima posición en la LIFO. FFL.Instrucciones de matriz (archivo)/desplazamiento (BSL. LFL. LFU) Capítulo 9 Ejemplo: Una vez habilitada. LFL. FFU. FFL. use la misma estructura para los dos operandos.POS en el subíndice Si usted usa una estructura definida por el usuario como el tipo de datos para el operando LIFO o Destination.Capítulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL. Un número entero menor se convierte en un número entero mayor mediante extensión de signo. 412 Publicación 1756-RM003K-ES-P – Julio 2008 . BSR. Lógica de escalera de relés 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. LFU) Descarga LIFO (LFU) Operandos: La instrucción LFU descarga el valor en . Control CONTROL tag estructura de control para la operación generalmente se usa el mismo CONTROL que el LFL asociado Length Position DINT DINT inmediato inmediato número máximo de elementos que la LIFO puede contener a la vez La próxima ubicación en la LIFO donde la instrucción descarga datos el valor inicial es típicamente 0 tag valor que sale de la LIFO Formato tag de matriz Descripción LIFO que se modifica especificar el primer elemento de la LIFO no usar CONTROL.POS de la LIFO y almacena 0 en ese lugar. EU . El bit de vacío indica que la LIFO está vacía. Si la LIFO está vacía.Instrucciones de matriz (archivo)/desplazamiento (BSL. La posición identifica el final de los datos cargados en la LIFO. Se establece el bit de efectuado para indicar que la LIFO está llena (. primero en salir. En algunos casos. LFL.EM .DN se establecen. Esto sucede si la longitud es excesiva y el tag es de un tipo de datos definido por el usuario.DN . FFL. Si .POS de la LIFO y coloca dicho valor en Destination.LEN . la instrucción LFU descarga el valor en .EU se establece para impedir una descarga falsa cuando se inicia el escán del programa.POS Tipo de datos: BOOL BOOL BOOL DINT DINT Descripción El bit de habilitación de descarga indica que la instrucción LFU está habilitada. La instrucción descarga un valor y lo reemplaza por 0 cada vez que la instrucción se habilita hasta que la LIFO esté vacía.POS = . La instrucción LFU realiza la operación en la memoria de datos contiguos.EM y .LEN ≤ 0 o . FFU. Usted debe probar y confirmar que la instrucción no cambie datos que usted no desea que cambien. LFU retorna la cifra 0 a Destination. Una vez habilitada. IMPORTANTE Indicadores de estado aritmético: no afectados Condiciones de fallo: Ocurrirá un fallo mayor si Length > tamaño de la matriz LIFO Tipo de fallo 4 Código de fallo 20 Publicación 1756-RM003K-ES-P – Julio 2008 413 . La longitud especifica el número máximo de elementos que la LIFO puede contener a la vez. los bits . BSR. Descripción: Use la instrucción LFU con la instrucción LFL para almacenar y recuperar datos en el siguiente orden: último en entrar.POS < 0. la instrucción descarga datos desde otros miembros del tag. El bit . LFU) Capítulo 9 Estructura CONTROL Mnemónico .LEN). LEN < 0 sí no .Capítulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL. LFU) Ejecución: Condición preescán Acción de lógica de escalera de relés: se establece el bit .POS < 0 sí no el bit .LEN sí el bit .EM está establecido no . FFU.EM se borra el bit .POS = 0 sí el bit . BSR.EM está establecido el bit . .POS ≥ . FFL. LFL.DN se borra el bit .DN está establecido .DN está establecido no la condición de salida de renglón se establece como falsa fin 414 Publicación 1756-RM003K-ES-P – Julio 2008 .EU para evitar una descarga falsa cuando se inicia el escán. Instrucciones de matriz (archivo)/desplazamiento (BSL. FFU. BSR. LFU) Capítulo 9 Condición condición de entrada de renglón es falsa Acción de lógica de escalera de relés: el bit .EM está establecido el bit .POS ≥ .DN está establecido .LEN sí el bit .EM está establecido no .DN se borra el bit .EM se borra el bit .POS = 0 sí el bit .LEN < 0 sí no . FFL.EU se borra .DN está establecido no la condición de salida de renglón se establece como falsa fin Publicación 1756-RM003K-ES-P – Julio 2008 415 . LFL.POS < 0 sí no el bit . POS = 0 no sí el bit .DN se establece no .DN está establecido .POS < 1 no sí Destination = 0 .EU está establecido .LEN < 0 no sí . FFU.EM está establecido .POS) = 0 la condición de salida de renglón se establece como verdadera fin post-escán La condición de salida de renglón se establece como falsa.EU = 1 el bit .POS ≤ 1 no sí el bit . BSR.EU .EM está establecido el bit .DN se borra sí .EM está establecido .EM se borra el bit .POS = .LEN no sí .POS = . 416 Publicación 1756-RM003K-ES-P – Julio 2008 . LFL.POS] LIFO[control.DN se borra sí el bit . LFU) Condición condición de entrada de renglón es verdadera .LEN .POS < 0 no el bit .EM se borra el bit .EM está establecido el bit .POS ≥ . FFL.LEN > tamaño de la matriz no sí fallo mayor Destination = LIFO[control.POS > .EU = 0 Acción de lógica de escalera de relés: examinar el bit .LEN < 0 no sí .Capítulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL.POS < 0 no el bit .DN está establecido el bit .LEN el bit .POS -1 sí . antes de la descarga LIFO array_dint[0] 00000 11111 22222 33333 44444 array_dint[5] 55555 00000 00000 00000 00000 control_1. BSR.pos = 6 después de la descarga LIFO 00000 11111 22222 33333 44444 00000 00000 00000 00000 00000 control_1. la instrucción LFU descarga array_dint[5] en value_2. LFU) Capítulo 9 Ejemplo: Una vez habilitada. FFU.pos = 5 value_2 = 55555 Publicación 1756-RM003K-ES-P – Julio 2008 417 .Instrucciones de matriz (archivo)/desplazamiento (BSL. FFL. LFL. FFL. LFL. FFU. BSR. LFU) Notas: 418 Publicación 1756-RM003K-ES-P – Julio 2008 .Capítulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL. SQO. Use esta instrucción SQI SQO SQL Disponible en estos lenguajes lógica de escalera de relés lógica de escalera de relés lógica de escalera de relés Vea la página 420 424 428 Para las instrucciones de lógica de escalera de relés. los tipos de datos que aparecen en letras negritas indican tipos de datos óptimos. 419Publicación 1756-RM003K-ES-P – Julio 2008 419 .Capítulo 10 Instrucciones de secuenciador (SQI. SQL) Introducción Si desea Detectar cuándo ha concluido un paso Establecer condiciones de salida para el siguiente paso Cargar condiciones de referencia en matrices de secuenciador No se toma ninguna acción. Las instrucciones de secuenciador monitorean operaciones uniformes y repetibles. típicamente DINT o REAL. Las instrucciones se ejecutan más rápidamente y requieren menos memoria si todos los operandos de instrucción usan el mismo tipo de datos óptimos. SQO.POS en el subíndice Mask SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante la extensión con signo. o .ER . La longitud especifica el número de pasos en la matriz de secuenciador. 420 Publicación 1756-RM003K-ES-P – Julio 2008 . SQL) Secuenciador de entrada (SQI) Operandos: La instrucción SQI detecta cuándo ha concluido un paso en una pareja de instrucciones de secuencia SQO/SQI.POS > . Control CONTROL tag estructura de control para la operación normalmente se usa el mismo CONTROL que para las instrucciones SQO y SQL Length Position DINT DINT inmediato inmediato número de elementos en la matriz (tabla de secuenciador) que se va a comparar posición actual en la matriz el valor inicial es típicamente 0 tag datos de entrada en la matriz de secuenciador tag inmediato qué bits se bloquean o se pasan Estructura CONTROL Mnemónico .POS Tipo de datos BOOL DINT DINT Descripción El bit de error se establece cuando . . Lógica de escalera de relés Operando Array Tipo DINT Formato tag de matriz Descripción matriz de secuenciador especifica el primer elemento de la matriz de secuenciador no use CONTROL.LEN ≤ 0.Capítulo 10 Instrucciones de secuenciador (SQI. La posición identifica el elemento que la instrucción está comparando actualmente.LEN .POS < 0. Source SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante la extensión con signo.LEN. la instrucción SQI compara un elemento fuente (Source).Instrucciones de secuenciador (SQI. Prefijo: 16# Descripción hexadecimal por ejemplo. preceda el valor con el prefijo correcto. SQO. el software de programación cambia de manera predeterminada a valores decimales. a un elemento de matriz (Array) para determinar su equivalencia. 2#00110011 Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Publicación 1756-RM003K-ES-P – Julio 2008 421 . SQL) Capítulo 10 Descripción: Cuando se habilita. 16#0F0F 8# octal por ejemplo. a través de una máscara (Mask). Introduzca un valor de máscara inmediato Cuando usted introduce una máscara. Si desea introducir una máscara usando otro formato. Normalmente se usa la misma estructura de CONTROL que para las instrucciones SQO y SQL La instrucción SQI realiza la operación en memoria contigua. 8#16 2# binario por ejemplo. 422 Publicación 1756-RM003K-ES-P – Julio 2008 . SQL) Ejecución: Condición: preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa.LEN sí el bit . SQO.POS] enmascarada sí la condición de salida de renglón se establece como falsa la condición de salida de renglón se establece como verdadera fin post-escán La condición de salida de renglón se establece como falsa.POS > . .POS < 0 o .LEN ≤ 0 .ER se establece no el bit . La condición de salida de renglón se establece como falsa.ER se borra no Source enmascarada = Array[.Capítulo 10 Instrucciones de secuenciador (SQI. SQO. La comparación enmascarada es verdadera.Instrucciones de secuenciador (SQI. la condición de salida de renglón se hace verdadera. Use SQI sin SQO Si usted usa la instrucción SQI sin una instrucción SQO emparejada. 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 número 0 en la máscara significa que el bit no se compara (designado por xxxx en este ejemplo). La instrucción MOV restablece el valor de posición después de pasar paso a paso completamente por la matriz de secuenciador una vez. La instrucción SQI compara el valor de fuente. tiene que incrementar externamente la matriz de secuenciador. la instrucción SQI pasa el value_2 a través de la máscara para determinar si el resultado es igual al elemento actual en array_dint. GRT determinó si otro valor está disponible para verificación en la matriz de secuenciador. por lo tanto. SQL) Capítulo 10 Ejemplo: Cuando se habilita. La instrucción ADD incrementa la matriz de secuenciador. Publicación 1756-RM003K-ES-P – Julio 2008 423 . LEN. Lógica de escalera de relés Operando Array Tipo DINT Formato Descripción tag de matriz matriz de secuenciador especifica el primer elemento de la matriz de secuenciador no use CONTROL. SQL) Secuenciador de salida (SQO) Operandos: La instrucción SQO establece condiciones de salida para el siguiente paso de una pareja de instrucciones SQO/SQI de secuencia. La posición identifica el elemento que el controlador está manipulando actualmente. 424 Publicación 1756-RM003K-ES-P – Julio 2008 .ER .LEN ≤ 0. SQO. .POS en el subíndice 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 extensión con signo. El bit de error se establece cuando .Capítulo 10 Instrucciones de secuenciador (SQI.POS > . La longitud especifica el número de pasos en la matriz de secuenciador. Destination Control DINT CONTROL tag tag datos de salida provenientes de la matriz de secuenciador estructura de control para la operación normalmente. se usa el mismo CONTROL que para las instrucciones SQI y SQL Length DINT inmediato número de elementos en la matriz (tabla de secuenciador) que se va a establecer como salida posición actual en la matriz el valor inicial es típicamente 0 Position DINT inmediato Estructura CONTROL Mnemónico .POS Tipo de datos BOOL BOOL BOOL DINT DINT Descripción El bit de habilitación indica que la instrucción SQO está habilitada.EN . El bit de efectuado se establece cuando todos los elementos especificados se han transferido a Destination.POS < 0. o .LEN .DN . Si . 2#00110011 Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán Acción de lógica de escalera de relés El bit . Prefijo 16# Descripción hexadecimal por ejemplo.LEN. se usa la misma estructura de CONTROL que para las instrucciones SQI y SQL.Instrucciones de secuenciador (SQI. Normalmente.EN se borra. transfiere los datos en la posición a través de la máscara (Mask) y almacena el resultado en Destination. el software de programación cambia de manera predeterminada a valores decimales. 16#0F0F 8# octal por ejemplo. Si desea introducir una máscara usando otro formato. Introduzca un valor de máscara inmediato Cuando usted introduce una máscara. SQO.EN se establece para impedir una carga falsa cuando se inicia el escán del programa.POS = 1. SQL) Capítulo 10 Descripción: Cuando se habilita.POS > . preceda el valor con el prefijo correcto. condición de entrada de renglón es falsa El bit . 8#16 2# binario por ejemplo. La instrucción SQO realiza la operación en memoria contigua. La condición de salida de renglón se establece como falsa. La condición de salida de renglón se establece como falsa. la instrucción da la vuelta hasta el comienzo de la matriz de secuenciador y continúa con . Publicación 1756-RM003K-ES-P – Julio 2008 425 . la instrucción SQO incrementa la posición. POS = 1 sí el bit .EN = 1 . 426 Publicación 1756-RM003K-ES-P – Julio 2008 .POS < 0 sí no examine el bit .POS] AND Mask) la condición de salida de renglón se establece como verdadera fin post-escán La condición de salida de renglón se establece como falsa.POS + 1 el valor .ER se establece Destination = (Destination AND (NOT(Mask))) OR (Array[control.ER se borra el bit .POS = .EN se establece el bit .LEN no sí error el bit .POS = .POS retorna al valor inicial no sí ir a error .DN se establece no .POS > .LEN ≤ 0 o .LEN no .EN .EN = 0 el bit . SQL) Condición condición de entrada de renglón es verdadera Acción de lógica de escalera de relés .LEN sí el bit .POS ≥ .LEN sí .DN se establece no . SQO.DN se establece .POS = .Capítulo 10 Instrucciones de secuenciador (SQI. POS = 0). Publicación 1756-RM003K-ES-P – Julio 2008 427 . Restablecimiento de la posición de SQO Cada vez que el controlador cambia del modo de programación al modo de marcha. SQO.POS. asegúrese de que ambas instrucciones usen los mismos valores de Control. SQL) Capítulo 10 Ejemplo: Cuando se habilita.Instrucciones de secuenciador (SQI. Para restablecer . use una instrucción RES a fin de borrar el valor de posición.POS. la instrucción SQO incrementa la posición. 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 número 0 en la máscara significa que el bit no se compara (designado por xxxx en este ejemplo). la instrucción SQO borra (inicializa) el valor .POS al valor de inicialización (. Length y Position. Este ejemplo usa el estado del bit de primer escán para borrar el valor . pasa los datos en esa posición en array_dint a través de la máscara y almacena el resultado en value_1. Uso de SQI con SQO Si usted empareja una instrucción SQI con una instrucción SQO. se usa el mismo CONTROL que para las instrucciones SQI y SQO Length Position DINT DINT inmediato inmediato número de elementos en la matriz (tabla de secuenciador) que se va a cargar posición actual en la matriz el valor inicial es típicamente 0 Estructura CONTROL Mnemónico . SQL) Carga de secuenciador (SQL) Operandos: La instrucción SQL carga condiciones de referencia en una matriz de secuenciador.LEN.LEN ≤ 0.Capítulo 10 Instrucciones de secuenciador (SQI.POS > .DN .POS Tipo de datos BOOL BOOL BOOL DINT DINT Descripción El bit de habilitación indica que la instrucción SQL está habilitada.POS en el subíndice 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 extensión con signo. 428 Publicación 1756-RM003K-ES-P – Julio 2008 . El bit de error se establece cuando . La longitud especifica el número de pasos en la matriz de secuenciador.EN .ER .LEN . Control CONTROL tag estructura de control para la operación normalmente. . SQO. Lógica de escalera de relés Operando Array Tipo DINT Formato Descripción tag de matriz matriz de secuenciador especifica el primer elemento de la matriz de secuenciador no use CONTROL.POS < 0. o . La posición identifica el elemento que el controlador está manipulando actualmente. El bit de efectuado se establece cuando todos los elementos especificados se han cargado en la matriz. SQL) Capítulo 10 Descripción: Cuando se habilita. IMPORTANTE Indicadores de estado aritmético: no afectados Condiciones de fallo: Ocurrirá un fallo mayor si Longitud > tamaño de la matriz Tipo de fallo 4 Código de fallo 20 Ejecución: Condición preescán Acción de lógica de escalera de relés El bit . Usted debe probar y confirmar que la instrucción no cambie datos que usted no desea que cambien. se usa la misma estructura de CONTROL que para las instrucciones SQI y SQO. La instrucción SQL realiza la operación en memoria contigua.LEN.DN se establece. la instrucción SQL incremente la siguiente posición en la matriz de secuenciador y carga el valor de Source en dicha posición. Esto sucede si la longitud es excesiva y el tag es de un tipo de datos definido por el usuario. o si .POS ≥ .EN se establece para impedir una carga falsa cuando se inicia el escán del programa. La condición de salida de renglón se establece como falsa.EN se borra. Publicación 1756-RM003K-ES-P – Julio 2008 429 . Normalmente. la instrucción establece . En algunos casos. La condición de salida de renglón se establece como falsa. El bit . condición de entrada de renglón es falsa El bit . SQO. la instrucción carga datos más allá de la matriz en otros miembros del tag.Instrucciones de secuenciador (SQI.POS=1. POS = 1 sí el bit .DN se establece no .LEN no sí . SQL) Condición condición de entrada de renglón es verdadera Acción de lógica de escalera de relés .POS + 1 el valor .ER se establece Array[control. 430 Publicación 1756-RM003K-ES-P – Julio 2008 .EN = 1 .POS retorna al valor inicial no sí ir a error .ER se borra el bit .LEN ≤ 0 o .POS = .Capítulo 10 Instrucciones de secuenciador (SQI.POS] = Source la condición de salida de renglón se establece como verdadera fin post-escán La condición de salida de renglón se establece como falsa. SQO.POS = .LEN no .POS = .POS > .EN se establece el bit .DN se establece .DN se establece no .EN .POS < 0 sí no examine el bit .LEN sí el bit .POS ≥ .EN = 0 el bit .LEN sí .LEN > tamaño de la matriz no sí error fallo mayor el bit . antes de la carga array_dint[0] 00000 11111 22222 33333 44444 array_dint[5] 00000 00000 00000 00000 00000 control_1.pos = 6 Publicación 1756-RM003K-ES-P – Julio 2008 431 . SQL) Capítulo 10 Ejemplo: Una vez habilitada. la instrucción SQL carga value_3 en la próxima posición en la matriz de secuenciador la cual es array_dint[5] en este ejemplo. SQO.Instrucciones de secuenciador (SQI.pos = 5 value_3 = 55555 después de la carga 00000 11111 22222 33333 44444 55555 00000 00000 00000 00000 control_1. SQL) Notas: 432 Publicación 1756-RM003K-ES-P – Julio 2008 . SQO.Capítulo 10 Instrucciones de secuenciador (SQI. SFR.Capítulo 11 Instrucciones de control de programa (JMP. JSR. JXR. TND. UIE. ejecutar la rutina y retornar resultados. SFP. Inhabilitar un renglón. NOP. SBR. Saltar a una rutina separada. Inhabilitar todos los renglones en una sección de lógica. MCR. Use esta instrucción JMP LBL JSR SBR RET JXR TND MCR UID UIE AFI NOP EOT SFP SFR EVENT Disponible en estos lenguajes lógica de escalera de relés lógica de escalera de relés bloque de funciones texto estructurado lógica de escalera de relés lógica de escalera de relés texto estructurado lógica de escalera de relés lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés lógica de escalera de relés lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado 462 464 460 452 454 454 456 457 458 447 450 Vea la página 434 436 Saltarse una sección de lógica que no siempre necesita ejecutarse. UID. pasar datos a la rutina. AFI. Habilitar tareas de usuario. EOT. Insertar un indicador de posición en la lógica. EVENT) Introducción Si desea Use las instrucciones de control de programa para cambiar el flujo de la lógica. Saltar a una rutina externa (controlador SoftLogix5800 solamente) Marcar un fin temporal que detiene la ejecución de la rutina. RET. Finalizar una transición para un diagrama de función secuencial Poner en pausa un diagrama de función secuencial Restablecer un diagrama de función secuencial Activar la ejecución de una tarea de evento 433Publicación 1756-RM003K-ES-P – Julio 2008 433 . LBL. Inhabilitar tareas de usuario. UIE. El temporizador de control (watchdog) podría sobrepasar el tiempo de espera porque el controlador nunca llegaría al final de la lógica. SBR. NOP. MCR. Un nombre de etiqueta debe ser único dentro de una rutina. Los saltos hacia atrás permiten al controlador repetir iteraciones de lógica. UID. números y caracteres de subrayado (_) 434 Publicación 1756-RM003K-ES-P – Julio 2008 . la instrucción JMP no afecta la ejecución de la lógica de escalera. El nombre puede: • tener hasta 40 caracteres • contener letras. Asegúrese de que la instrucción LBL sea la primera instrucción en su renglón. La lógica saltada no se escanea. EVENT) Saltar a etiqueta (JMP) Etiqueta (LBL) Operandos: Las instrucciones JMP y LBL saltan porciones de la lógica de escalera. Cuando se inhabilita. ATENCIÓN La instrucción LBL es el objetivo de la instrucción JMP que tiene el mismo nombre de etiqueta. RET. JSR. TND. SFP. JXR. La instrucción JMP puede mover la ejecución de la lógica de escalera hacia adelante o hacia atrás. Lógica de escalera de relés Operando Nombre de etiqueta instrucción LBL Nombre de etiqueta nombre de etiqueta la ejecución salta a la instrucción LBL con el nombre de etiqueta al cual se hizo referencia Tipo Formato nombre de etiqueta Descripción introduzca un nombre para la instrucción LBL asociada instrucción JMP Descripción: Cuando se habilita. Saltar hacia adelante a una etiqueta ahorra tiempo de escán del programa al omitir un segmento de lógica hasta que éste sea necesario. SFR. Coloque la lógica crítica fuera de la zona saltada. LBL. la instrucción JMP salta a la instrucción LBL referenciada y el controlador continúa la ejecución desde allí. AFI.Capítulo 11 Instrucciones de control de programa (JMP. Absténgase de saltar hacia atrás un número excesivo de veces. lo cual haría fallar al controlador. EOT. JSR. LBL. SBR. SFR. EOT.Instrucciones de control de programa (JMP. la ejecución salta sobre renglones sucesivos de lógica hasta llegar al renglón que contiene la instrucción LBL con label_20. TND. NOP. La condición de salida de renglón se establece como falsa. UIE. post-escán La condición de salida de renglón se establece como falsa. MCR. Ejemplo: Cuando la instrucción JMP se habilita. [otros renglones de código] Publicación 1756-RM003K-ES-P – Julio 2008 435 . RET. La condición de salida de renglón se establece como verdadera. JXR. La ejecución salta al renglón que contiene la instrucción LBL con el nombre de etiqueta referenciado. EVENT) Capítulo 11 Indicadores de estado aritmético: no afectados Condiciones de fallo: Ocurrirá un fallo mayor si la etiqueta no existe Tipo de fallo 4 Código de fallo 42 Ejecución: Condición: preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. AFI. UID. SFP. LBL.Capítulo 11 Instrucciones de control de programa (JMP. UID. RET. JSR. • Introduzca múltiples parámetros de retorno. MCR. EVENT) Salto a subrutina (JSR) Subrutina (SBR) Retorno (RET) Operandos de JSR: La instrucción JSR salta la ejecución a una rutina diferente. JXR. si es necesario. Formato nombre inmediato tag tag de matriz Descripción rutina a ejecutar (es decir. SBR. AFI. si es necesario. Lógica de escalera de relés Operando Nombre de la rutina Parámetro de entrada Tipo ROUTINE BOOL SINT INT DINT REAL estructura Parámetro 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 parámetros de retorno son opcionales. SFP. UIE. subrutina) datos de esta rutina que desea copiar a un tag en la subrutina • Los parámetros de entrada son opcionales. NOP. EOT. TND. 436 Publicación 1756-RM003K-ES-P – Julio 2008 . SFR. • Introduzca múltiples parámetros de entrada. Las instrucciones SBR y RET son instrucciones opcionales que intercambian datos con la instrucción JSR. InputPar. EVENT) Capítulo 11 Operandos de JSR (cont. UID. EOT. si es necesario. JXR. LBL. SFP. si es necesario. MCR. Bloque de funciones Parámetros de entrada ❇ Parámetros de retorno ❇ Los operandos son iguales a los de la instrucción JSR de lógica de escalera de relés. • Introduzca múltiples parámetros de entrada. RET. subrutina) número de parámetros de entrada Parámetro 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 parámetros de entrada son opcionales. AFI. SFR. Publicación 1756-RM003K-ES-P – Julio 2008 437 .Instrucciones de control de programa (JMP. SBR. Parámetro 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 parámetros de retorno son opcionales. JSR. UIE.InputCount. NOP. • Introduzca múltiples parámetros de retorno. Operando Nombre de la rutina Conteo de entradas Tipo ROUTINE SINT INT DINT REAL Formato nombre inmediato Descripción rutina a ejecutar (es decir.): Texto estructurado JSR(RoutineName. TND.ReturnPar). Bloque de funciones Parámetros ❇ Los operandos son iguales a los de la instrucción SBR de lógica de escalera de relés. SBR. 438 Publicación 1756-RM003K-ES-P – Julio 2008 . SFR. NOP. AFI.Capítulo 11 Instrucciones de control de programa (JMP. SFP. Operandos de SBR: La instrucción SBR debe ser la primera instrucción en una lógica de escalera de relés o rutina de texto estructurado. Texto estructurado Los operandos son iguales a los de la instrucción SBR de lógica de escalera de relés. LBL. EVENT) ATENCIÓN Para cada parámetro en una instrucción SBR o RET. JSR. UID. EOT. Lógica de escalera de relés Operando Parámetro de entrada Tipo BOOL SINT INT DINT REAL estructura SBR(InputPar). Formato tag tag de matriz Descripción el tag en esta rutina al cual desea copiar el parámetro de entrada correspondiente proveniente de la instrucción JSR. El uso de tipos de datos diferentes puede producir resultados inesperados. TND. UIE. RET. use el mismo tipo de datos (inclusive las dimensiones de la matriz) que el parámetro correspondiente en la instrucción JSR. MCR. JXR. • Después de que se ejecuta la subrutina. Bloque de funciones Parámetros ❇ Los operandos son iguales a los de la instrucción RET de lógica de escalera de relés. EVENT) Capítulo 11 Operandos de RET: Lógica de escalera de relés Operando Parámetro de retorno Tipo BOOL SINT INT DINT REAL estructura RET(ReturnPar). RET. UID. TND.Instrucciones de control de programa (JMP. la cual se conoce como subrutina: • La subrutina se ejecuta una vez. AFI. SFP. LBL. Descripción: La instrucción JSR inicia la ejecución de la rutina especificada. la ejecución de la lógica regresa a la rutina que contiene la instrucción JSR. Publicación 1756-RM003K-ES-P – Julio 2008 439 . Texto estructurado Los operandos son iguales a los de la instrucción RET de lógica de escalera de relés. JXR. SFR. NOP. SBR. MCR. UIE. Formato inmediato tag tag de matriz Descripción datos de esta rutina que usted desea copiar al parámetro de retorno correspondiente en la instrucción JSR. JSR. EOT. 3. Si la instrucción JSR tiene un parámetro de retorno. introduzca un parámetro de retorno para enviar la instrucción JSR. Rutina que origina la llamada Subrutina SBR 1. Coloque la instrucción SBR como la primera instrucción en la rutina. Si la instrucción JSR tiene un parámetro de entrada. UIE. RET JSR RET RET 1. RET. Si desea copiar un resultado de la subrutina a un tag en esta rutina. se produce un fallo mayor (tipo 4. introduzca una instrucción SBR. • Si usted usa una instrucción JSR para llamar a la rutina principal y posteriormente coloca una instrucción RET en la rutina principal. EOT. Introduzca la cantidad necesaria de parámetros de entrada y retorno. 4. 2. AFI. 2. 440 Publicación 1756-RM003K-ES-P – Julio 2008 . SBR. código 31). SFR. UID. Para cada parámetro de retorno en la instrucción JSR. introduzca un parámetro de entrada. Coloque la instrucción RET como la última instrucción en la rutina. (Las rutinas de bloque de funciones sólo permiten una instrucción RET). 2. 3. MCR. 3. JSR. introduzca un parámetro de retorno. 42974 SBR JSR 1. En una rutina de lógica de escalera. JXR. SFP. coloque instrucciones RET adicionales para salir de la subrutina con base en diferentes condiciones de entrada. El diagrama siguiente ilustra cómo funcionan las instrucciones. Si desea copiar datos a un tag en la subrutina.Capítulo 11 Instrucciones de control de programa (JMP. introduzca una instrucción RET. si es necesario. LBL. Para cada parámetro de entrada en la instrucción JSR. siga estas pautas: IMPORTANTE No use una instrucción JSR para llamar (ejecutar) la rutina principal. • Usted puede colocar una instrucción JSR en la rutina principal o cualquier otra rutina. NOP. EVENT) Para programar un salto a una subrutina. introduzca el tag en el cual desea copiar los datos. TND. Si existen llamadas recursivas a la misma subrutina. las instrucciones RET no salen de la subrutina). SFR. Las salidas en la subrutina permanecen en su último estado. Si existen múltiples llamadas (no recursivas) a la misma subrutina. UID. LBL. MCR. excepto la memoria del controlador. EOT.x y anteriores. La condición de salida de renglón se establece como falsa. no se pasan los parámetros de entrada y retorno. SFP.x y posteriores. Publicación 1756-RM003K-ES-P – Julio 2008 441 . (es decir. la subrutina es preescaneada sólo la primera vez. La condición de entrada de renglón es falsa para la instrucción JSR La subrutina no se ejecuta. 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 aritmético: Los indicadores de estado aritmético son afectados. UIE. a. n. La condición de salida de renglón se establece en falso (lógica de escalera de relés solamente). Condiciones de fallo: Ocurrirá un fallo mayor si la instrucción JSR tiene menos parámetros de entrada que la instrucción SBR la instrucción JSR salta a una rutina de fallo la instrucción RET tiene menos parámetros de retorno que la instrucción JSR la rutina principal contiene una instrucción RET Tipo de fallo 4 Código de fallo 31 4 o proporcionado por 0 o proporcionado por el usuario el usuario 4 4 31 31 Ejecución: Lógica de escalera de relés y texto estructurado Condición preescán Acción de lógica de escalera de relés Acción de texto estructurado El controlador ejecuta todas las subrutinas independientemente de la condición del renglón. el controlador ignora las instrucciones RET. Para asegurar que todos los renglones en la subrutina estén previamente escaneados. JSR.Instrucciones de control de programa (JMP. TND. JXR. RET. • En las versiones 6. NOP. • En las versiones 7. la subrutina es preescaneada cada vez. para el número de rutinas anidadas que pueden existir ni para el número de parámetros que se pasan o retornan. AFI. SBR. se pasan los parámetros de entrada y retorno. EVENT) Capítulo 11 No hay restricciones. 442 Publicación 1756-RM003K-ES-P – Julio 2008 . EnableIn se establece n. JXR. SFR. a. La condición de salida de renglón se establece como verdadera. LBL. La instrucción se ejecuta. SBR. SFP. EnableIn siempre se establece. EVENT) Condición condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La instrucción se ejecuta. MCR. RET. JSR. TND. a. AFI.Capítulo 11 Instrucciones de control de programa (JMP. ejecución de la instrucción parámetros de entrada no sí JSR copia los parámetros de entrada en los tags SBR apropiados la ejecución de lógica comienza en la rutina identificada por JSR sí instrucción RET parámetros de retorno sí RET copia los parámetros de retorno en los tags JSR apropiados no no sí fin de la subrutina no la condición de salida de renglón se establece como falsa continuar ejecutando la subrutina fin la condición de salida de renglón se establece como verdadera la ejecución de la lógica regresa a JSR post-escán La misma acción que el preescán antes descrito. EOT. UIE. NOP. La misma acción que el preescán antes descrito. Acción de texto estructurado n. UID. el controlador ejecuta la instrucción RET por último. MCR. Publicación 1756-RM003K-ES-P – Julio 2008 443 . Si la rutina contiene una instrucción RET. SFP. el controlador primero ejecuta la instrucción SBR. Ninguna. El controlador enclava todos los valores de datos en las IREF. 3. AFI. Esto incluye otras instrucciones JSR. JXR. El controlador ejecuta los otros bloques de función en el orden determinado por su cableado. la rutina se inicializa de la misma manera que durante el preescán. UID. SBR. NOP. 1. JSR. 2. TND. EVENT) Capítulo 11 Bloque de funciones Condición: preescán primer escán de instrucción ejecución normal Acción Ninguna. 5. EOT. Si la rutina es una rutina SFC. 4.Instrucciones de control de programa (JMP. post-escán Se llama la subrutina. Si la rutina contiene una instrucción SBR. RET. UIE. El controlador escribe salidas en las OREF. SFR. primera ejecución de instrucción Ninguna. LBL. SFR. NOP. EOT.float_value_1). RET. SBR(value_a. La ejecución de la lógica continúa en esta rutina. EVENT) Ejemplo 1: La instrucción JSR pasa value_1 y value_2 a routine_1.Capítulo 11 Instrucciones de control de programa (JMP. SFP. AFI. <statements>. La instrucción SBR recibe value_1 y value_2 desde la instrucción JSR y copia esos valores en value_a y value_b. La instrucción JSR recibe float_a y copia el valor en float_value_1.2. La ejecución de la lógica continúa con la siguiente instrucción después de la instrucción JSR. 444 Publicación 1756-RM003K-ES-P – Julio 2008 . RET(float_a). MCR.value_b). La instrucción RET envía float_a a la instrucción JSR. TND. SBR. Lógica de escalera de relés Rutina: Rutina principal Programa Subrutina [otros renglones de código] Texto estructurado Rutina Rutina principal Subrutina Programa JSR(routine_1.value_1. UIE. respectivamente.value_2. JXR. JSR. UID. LBL. Cuando def y ghi están desactivados (renglones previos). SFR. EOT. NOP. la instrucción RET retorna value_3 al parámetro cookies_1 de JSR. Publicación 1756-RM003K-ES-P – Julio 2008 445 . AFI. Subroutine_1 Cuando def está activado. calcula el número de cookies y coloca un valor en cookies_1. EVENT) Capítulo 11 Ejemplo 2: Lógica de escalera de relés MainRoutine Cuando abc está activado. la instrucción RET retorna value_1 al parámetro cookies_1 de JSR y el resto de la subrutina no se escanea. JSR. subroutine_1 se ejecuta. UIE. TND. SFP.Instrucciones de control de programa (JMP. LBL. Añade el valor en cookies_1 a cookies_2 y almacena el resultado en total_cookies. RET. UID. SBR. MCR. JXR. Cuando def está desactivado (renglón previo) y ghi está activado. la instrucción RET retorna value_2 al parámetro cookies_1 de JSR y el resto de la subrutina no se escanea. Las instrucciones ADD suman Input_A. Los valores en Add_Input_1. MCR. y colocan el resultado en Sum_A_B_C. Input_B y Input_C. SBR. Bloques de funciones de la rutina Add_Three_Inputs 42973 2. El valor de Sum_A_B_C se copia en Add_Three_Result. EVENT) Ejemplo 3: Bloque de funciones Instrucción JSR en Routine_A 42972 1. RET. JSR. UIE. 446 Publicación 1756-RM003K-ES-P – Julio 2008 . TND. UID.Capítulo 11 Instrucciones de control de programa (JMP. JXR. EOT. Add_Input_2 y Add_Input_3 se copian en Input_A. respectivamente. SFR. NOP. SFP. 3. LBL. Input_B y Input_C. AFI. NOP. EVENT) Capítulo 11 Salto a rutina externa (JXR) Operandos: La instrucción JXR ejecuta una rutina externa. Lógica de escalera de relés . SBR. JXR. SFP. LBL. si es necesario.Instrucciones de control de programa (JMP. Control de rutina EXT_ROUTINE_ externa CONTROL Parámetro BOOL SINT INT DINT REAL estructura Parámetro de retorno BOOL SINT INT DINT REAL tag el tag en esta rutina al cual desea copiar un resultado de la rutina externa • El parámetro de retorno es opcional • Sólo puede tener un parámetro de retorno Publicación 1756-RM003K-ES-P – Julio 2008 447 . • Introduzca múltiples parámetros. TND. AFI. EOT. UIE. JSR. SFR. RET. Esta instrucción sólo es compatible con los controladores SoftLogix5800. • Puede tener hasta 10 parámetros. Operando Nombre de rutina externa Tipo ROUTINE Formato nombre tag inmediato tag tag de matriz Descripción rutina externa que se va a ejecutar estructura de control (ver la siguiente página) datos de esta rutina que desea copiar a una variable en la rutina externa • Los parámetros son opcionales. UID. MCR. EVENT) Estructura EXT_ROUTINE_CONTROL Mnemónico ErrorCode Tipo de datos SINT Descripción Si ocurre un error. El controlador establece este bit para reflejar el estado de escán. El controlador establece estos bits para reflejar el estado de escán. ER BOOL La rutina externa establece este bit. Si se borra. El bit de error se establece si ocurre un error. si es necesario.Capítulo 11 Instrucciones de control de programa (JMP. El controlador establece este bit para reflejar la condición de entrada del renglón. el bit de habilitación indica que la instrucción JXR está habilitada. SFR. este bit indica que no se introdujo un parámetro de retorno para la instrucción. Cuando se establece. La instrucción puede pasar hasta 10 parámetros. Esta matriz contiene definiciones de los parámetros que se van a pasar a la rutina externa. Visualización solamente – esta información proviene de la entrada de la instrucción. Los valores válidos son 0-255. RET. Si se establece. La instrucción se ejecuta independientemente de la condición del renglón. El bit de efectuado se establece cuando la rutina externa se ha ejecutado una vez hasta el final. Implementación No hay códigos de error predefinidos. TND. La instrucción detiene la ejecución hasta que el programa borra el bit de error. El encargado del desarrollo de la rutina externa debe proporcionar los códigos de error. Entrada de habilitación. JSR. SFP. La rutina externa establece este bit. NOP. El encargado del desarrollo de la rutina externa debe monitorear este estado y actuar como corresponde. El controlador no inicializa estos bits. Este bit identifica si éste es el primer escán después de que el controlador pasó al modo de marcha. La rutina externa o el programa de usuario pueden establecer estos bits. este valor identifica el error. JXR. este bit indica que se introdujo un parámetro de retorno para la instrucción. Este valor indica el número de parámetros asociados con esta instrucción. EN ReturnsValue DN BOOL La rutina externa establece este bit. EOT. Use FirstScan para inicializar la rutina externa. LBL. FirstScan BOOL EnableOut EnableIn BOOL BOOL La rutina externa establece este bit. UIE. AFI. UID. NumParams ParameterDefs SINT EXT_ROUTINE_ PARAMETERS[10] ReturnParamDef EXT_ROUTIN_ PARAMETERS BOOL BOOL Visualización solamente – esta información proviene de la entrada de la instrucción. Habilitación de salida. SBR. Sólo hay un parámetro de retorno. Este valor contiene definiciones del parámetro de retorno de la rutina externa. Visualización solamente – esta información proviene de la entrada de la instrucción. User1 User0 ScanType1 ScanType0 BOOL BOOL BOOL BOOL Estos bits están disponibles para el usuario. Estos bits identifican el tipo de escán actual: Valores de bit: Tipo de escán: 00 01 10 Normal Preescán Post-escán (no aplicable a programas de lógica de escalera de relés) 448 Publicación 1756-RM003K-ES-P – Julio 2008 . MCR. Visualización solamente – esta información proviene de la entrada de la instrucción. Para obtener más información sobre cómo usar la instrucción JXR y cómo crear rutinas externas. NOP.Instrucciones de control de programa (JMP. SBR. JSR. SFP. EOT. Indicadores de estado aritmético: Los indicadores de estado aritmético no son afectados. estado de condición de entrada de renglón y estado de condición de salida de renglón. SFR. MCR. La instrucción JXR inicia la ejecución de la rutina externa especificada: • La rutina externa se ejecuta una vez. LBL. Condiciones de fallo: Ocurrirá un fallo mayor si • ocurre una excepción en la rutina externa DLL • el DLL no pudo cargarse • el punto de entrada no se encontró en el DLL Tipo de fallo 4 Código de fallo: 88 Ejecución: La instrucción JXR puede ser síncrona o asíncrona según la implementación del DLL. La instrucción JXR es similar a la instrucción de salto a subrutina (JSR). UID. por lo tanto. UIE. la ejecución de lógica regresa a la rutina que contiene la instrucción JXR. • Después de que se ejecuta la rutina externa. puede pasar valores entre la rutina de lógica de escalera y la rutina externa. AFI. Publicación 1756-RM003K-ES-P – Julio 2008 449 . publicación 1789-UM002. consulte el documento SoftLogix5800 System User Manual. TND. El código en el DLL también determina cómo responder al estado de escán. RET. La instrucción JXR es compatible con varios parámetros. EVENT) Capítulo 11 Descripción: Use la instrucción de salto a rutina externa (JXR) para llamar a la rutina externa desde una rutina de lógica de escalera en el proyecto. JXR. el control regresa a la rutina que originó la llamada. EnableIn se establece n. EVENT) Fin temporal (TND) Operandos: La instrucción TND sirve como límite. aunque no haya operandos. Se termina la rutina actual. SFR. UID. a.Capítulo 11 Instrucciones de control de programa (JMP. la instrucción TND deja que el controlador ejecute la lógica sólo hasta esta instrucción. Cuando el controlador escanea una instrucción TND. La condición de salida de renglón se establece como Ninguna. RET. La instrucción se ejecuta. LBL. SBR. a. Cuando se habilita. SFP. Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés Acción de texto estructurado La condición de salida de renglón se establece como Ninguna. ejecución de la instrucción post-escán Se termina la rutina actual. La condición de salida de renglón se establece como verdadera. el control regresa al siguiente programa dentro de la tarea actual. EnableIn siempre se establece. el controlador va hasta el final de la rutina actual. a. n. falsa. Texto estructurado ninguno Se tienen que introducir los paréntesis () después del mnemónico de la instrucción. La instrucción se ejecuta. Si la instrucción TND está en una rutina principal. Descripción: Cuando se habilita. EOT. JXR. La condición de salida de renglón se establece como falsa. 450 Publicación 1756-RM003K-ES-P – Julio 2008 . NOP. MCR. Si la instrucción TND está en una subrutina. TND. n. Operadores de escalera de relé ninguno TND(). AFI. UIE. JSR. la instrucción TND actúa como el fin de la rutina. falsa. Una vez habilitada la instrucción TND. EVENT) Capítulo 11 Ejemplo: Usted puede usar la instrucción TND al depurar o resolver problemas para ejecutar la lógica hasta cierto punto. Progresivamente. AFI. SFP. NOP. Publicación 1756-RM003K-ES-P – Julio 2008 451 . TND. mueva la instrucción TND a través de la lógica conforme va depurando cada nueva sección. RET. MCR. LBL. UIE. EOT. JXR. JSR. SBR. UID. el controlador deja de escanear la rutina actual. SFR. Lógica de escalera de relés Texto estructurado TND().Instrucciones de control de programa (JMP. LBL. podría ocurrir una operación inesperada de la máquina con posible daño al equipo o lesiones personales. UIE. Usted debe instalar un relé de control maestro con cableado permanente para proporcionar desactivación de emergencia de la alimentación eléctrica de E/S. Cuando se inhabilita. saltar a la zona activa la zona desde el punto en el que usted saltó al final de la zona. NOP. Cuando programe una zona MCR. JSR. TND. UID. usada en parejas. se detiene la ejecución de la instrucción cuando la zona se inhabilita y el temporizador se borra. Si inicia instrucciones tales como temporizadores en una zona MCR. Coloque las operaciones críticas fuera de la zona MCR. RET. JXR. • Si una zona MCR continúa al final de la rutina. MCR.Capítulo 11 Instrucciones de control de programa (JMP. crea una zona de programa que puede inhabilitar todos los renglones dentro de las instrucciones MCR. Si la zona es falsa. • No puede anidar una zona MCR dentro de otra. La instrucción MCR no sustituye a un relé de control maestro con cableado permanente que proporciona capacidad de paro de emergencia. No superponga ni anide zonas MCR. Si se superponen o se anidan. los renglones en la zona MCR son escaneados para determinar la presencia de condiciones normales verdaderas o falsas. Lógica de escalera de relés ninguna Descripción: Cuando la zona MCR se habilita. usted no tiene que programar una instrucción MCR al final de la zona. EOT. pero el tiempo de escán se reduce debido a que las salidas no retentivas en la zona están inhabilitadas. SFP. SFR. • No salte a una zona MCR. ATENCIÓN Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna 452 Publicación 1756-RM003K-ES-P – Julio 2008 . tenga presente que: • Debe terminar la zona con una instrucción MCR incondicional. Cada zona MCR debe estar separada y completa. La condición de entrada de renglón es falsa para todas las instrucciones dentro de la zona MCR inhabilitada. el controlador todavía escanea renglones dentro de una zona MCR. EVENT) Restablecimiento de control maestro (MCR) Operandos: La instrucción MCR. AFI. SBR. Ejemplo: Cuando la primera instrucción MCR se habilita (input_1. EVENT) Capítulo 11 Ejecución: Condición preescán condición de entrada de renglón es falsa Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. Cuando la primera instrucción MCR se inhabilita (input_1. input_2 y input_3 no están establecidos simultáneamente). input_2 y input_3 se establecen). SBR. dependiendo de las condiciones de entrada. JSR. EOT. NOP. La condición de salida de renglón se establece como falsa. post-escán La condición de salida de renglón se establece como falsa. MCR. RET. el controlador ejecuta los renglones en la zona MCR (entre las dos instrucciones MCR) y la condición de entrada del renglón se hace falsa para todos los renglones en la zona MCR. Publicación 1756-RM003K-ES-P – Julio 2008 453 . pero la condición de entrada de renglón es falsa y las salidas no retentivas en la zona se inhabilitan. Las instrucciones en la zona son escaneadas. SFP. JXR. condición de entrada de renglón es verdadera La condición de salida de renglón se establece como verdadera. el controlador ejecuta los renglones en la zona MCR entre las dos instrucciones MCR) y establece o borra las salidas. LBL. SFR. TND. Las instrucciones en la zona se escanean normalmente.Instrucciones de control de programa (JMP. independientemente de las condiciones de entrada. UID. UIE. AFI. EOT. Si lo desea. Arriba del primer renglón que usted no desea sea interrumpido. Descripción: Cuando la condición de entrada de renglón es verdadera: • La instrucción UID evita que tareas de mayor prioridad interrumpan la tarea actual. EVENT) Inhabilitación de interrupción de usuario (UID) Habilitación de interrupció n de usuario (UIE) Operandos: La instrucción UID y la instrucción UIE funcionan juntas para evitar que otras tareas interrumpan una cantidad pequeña de renglones críticos. UIE. RET. 2. UIE(). JXR. pero no inhabilita la ejecución de una rutina de fallo o del administrador de fallos del controlador. NOP. Inhabilitar interrupciones por un tiempo prolongado puede ocasionar pérdida de comunicación. 4. Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna 454 Publicación 1756-RM003K-ES-P – Julio 2008 . • La instrucción UIE habilita otras tareas para interrumpir la tarea actual. UID. 3. JSR. MCR. Limite el número de renglones que no desea sean interrumpidos al menor número posible. introduzca un renglón y una instrucción UIE. introduzca un renglón y una instrucción UID. Para evitar la interrupción de una serie de renglones: 1. Texto estructurado ninguno Se tienen que introducir los paréntesis () después del mnemónico de instrucción.Capítulo 11 Instrucciones de control de programa (JMP. Después del último renglón que usted no desea sea interrumpido. puede anidar parejas de instrucciones UID/UIE. aunque no haya operandos. SFP. SBR. AFI. SFR. LBL. TND. Lógica de escalera de relés ninguno UID(). la instrucción FSC compara el código de error con una lista de errores críticos. n. post-escán La condición de salida de renglón se establece como falsa.FD alarm alarm UIE Texto estructurado UID(). Lógica de escalera de relés 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. <statements> UIE(). EnableIn se establece n.Instrucciones de control de programa (JMP. AFI. MCR. Las instrucciones UID y UIE evitan que cualquier otra tarea interrumpa la verificación de errores y alarmas. La instrucción UIE habilita la interrupción por parte de tareas de mayor prioridad.POS] EN EN DN ER ER error_check. JSR. La condición de salida de renglón se establece como verdadera. Publicación 1756-RM003K-ES-P – Julio 2008 455 . n. RET. EnableIn siempre se establece. SFP. La instrucción se ejecuta. Si la instrucción FSC determina que el error es crítico (error_check. UID. EOT. TND. Acción de texto estructurado Ninguna. a. JXR. Ninguna.FD está activado). SBR. La instrucción se ejecuta. a. EVENT) Capítulo 11 Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. NOP. ejecución de la instrucción La instrucción UID evita la interrupción por parte de tareas de mayor prioridad. UIE. LBL. La condición de salida de renglón se establece como falsa.POS] Expression Expression error_code=error_list[error_check. Ejemplo: Cuando ocurre un error (error_bit está activado). se anuncia una alarma. a.FD error_check. SFR. SFR. Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera post-escán Acción de lógica de escalera de relés: La condición de salida de renglón se establece como falsa.Capítulo 11 Instrucciones de control de programa (JMP. La condición de salida de renglón se establece como falsa. 456 Publicación 1756-RM003K-ES-P – Julio 2008 . UID. La condición de salida de renglón se establece como falsa. LBL. la instrucción AFI inhabilita todas las instrucciones en este renglón. EVENT) Instrucción siempre falso (AFI) Operandos: La instrucción AFI establece su condición de salida de renglón como falsa. Lógica de escalera de relés ninguno Descripción: La instrucción AFI establece su condición de salida de renglón como falsa. JSR. JXR. MCR. La condición de salida de renglón se establece como falsa. NOP. Cuando se habilita. RET. AFI. SBR. EOT. TND. SFP. UIE. Ejemplo: Use la instrucción AFI para inhabilitar temporalmente un renglón mientras depura un programa. SFR. Una vez habilitada. NOP. La condición de salida de renglón se establece como falsa. EVENT) Capítulo 11 Sin operación (NOP) Operandos: La instrucción NOP funciona como indicador de posición Lógica de escalera de relés ninguno Descripción: Usted puede colocar la instrucción NOP en cualquier parte de un renglón. TND. Una vez inhabilitada. AFI. La condición de salida de renglón se establece como falsa. UIE. RET. JXR. LBL. SBR. SFP.Instrucciones de control de programa (JMP. La instrucción NOP omite la instrucción XIC para habilitar la salida. Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera post-escán Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. JSR. EOT. Ejemplo Esta instrucción es útil para ubicar bifurcaciones incondicionales cuando usted coloca la instrucción NOP en la bifurcación. MCR. Publicación 1756-RM003K-ES-P – Julio 2008 457 . la instrucción NOP no realiza operación alguna. La condición de salida de renglón se establece como verdadera. la instrucción NOP no realiza operación alguna. UID. UID. La condición de salida de renglón se establece como Ninguna. en un controlador Logix. RET. n. SBR. la instrucción OET actúa como una instrucción TND (ver página 450). n. 458 Publicación 1756-RM003K-ES-P – Julio 2008 . 1=completada) EOT(data_bit). MCR. a. La instrucción se ejecuta. Lógica de escalera de relés Operando bit de datos Tipo BOOL Formato tag Descripción estado de la transición (0=en ejecución. En un controlador PLC-5. La condición de salida de renglón se establece como verdadera. EVENT) Fin de transición (EOT) Operandos: La instrucción EOT retorna un estado booleano a una transición SFC. AFI. múltiples rutinas SFC pueden compartir la misma rutina que contiene la instrucción OET. En lugar de ello. El parámetro de retorno. UIE. EnableIn siempre se establece. ejecución de la instrucción post-escán La instrucción retorna el valor del bit de datos a la rutina que originó la llamada. LBL. falsa. La rutina que originó la llamada no es una transición. retorna el estado de transición puesto que la condición del renglón no está disponible en todos los lenguajes de programación Logix. a. NOP. falsa. Descripción: Puesto que la instrucción EOT retorna un estado booleano. SFP. la instrucción EOT no tiene parámetros. TND. Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés: Acción de texto estructurado: La condición de salida de renglón se establece como Ninguna. JXR. La condición de salida de renglón se establece como falsa.Capítulo 11 Instrucciones de control de programa (JMP. EOT. la instrucción OET PLC-5 retorna la condición del renglón como su estado. JSR. a. La implementación Logix de la instrucción OET es diferente a la de un controlador PLC-5. SFR. Texto estructurado Los operandos son iguales a los de la instrucción EOT de lógica de escalera de relés. EnableIn se establece n. La instrucción se ejecuta. SFP.DN THEN EOT(state). SBR. LBL. NOP. SFR. AFI. EOT retorna el valor de state a la rutina que originó la llamada. EOT. JSR. MCR. Publicación 1756-RM003K-ES-P – Julio 2008 459 . RET. EVENT) Capítulo 11 Ejemplo: Cuando se establecen limit_switch1 y interlock_1. se establece el estado. END_IF. IF timer_1.Instrucciones de control de programa (JMP. Lógica de escalera de relés Texto estructurado state := limit_switch1 AND interlock_1. TND. UID. Después de que se completa timer_1. JXR. UIE. use la instrucción SFP para reanudar la ejecución del SFC después de usar una instrucción SFR (ver página 462) para restablecer una rutina SFC. EOT. EVENT) Pausa SFC (SFP) Operandos: La instrucción SFP pone en pausa una rutina SFC. SFP. UIE. NOP. use la instrucción SFP nuevamente para cambiar el estado y reanudar la ejecución de la rutina. SBR. LBL. SFR. Los operandos son iguales a los de la instrucción SFP de lógica de escalera de relés. Si una rutina SFC se encuentra en pausa. Además. MCR. UID.Capítulo 11 Instrucciones de control de programa (JMP. TND. Indicadores de estado aritmético: no afectados Condiciones de fallo: Ocurrirá un fallo mayor si: el tipo de rutina no es una rutina SFC Tipo de fallo 4 Código de fallo 85 460 Publicación 1756-RM003K-ES-P – Julio 2008 . TargetState). Lógica de escalera de relés Operando SFCRoutine Name TargetState Tipo: ROUTINE DINT Formato: nombre inmediato tag Descripción: 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. RET. AFI. JXR. JSR. Descripción: La instrucción SFP le permite poner en pausa una rutina SFC en ejecución. n. a. La instrucción se ejecuta.paused). RET. ejecución de la instrucción post-escán La instrucción pone en pausa o reanuda la ejecución de la rutina SFC especificada. La condición de salida de renglón se establece como verdadera. MCR. EnableIn se establece n. EnableIn siempre se establece. se pone en pausa la rutina SFC llamada normal. SFP. La condición de salida de renglón se establece como falsa. TND. a. SBR. JSR. SFR. Texto estructurado Se pone en pausa la rutina SFC. Lógica de escalera de relés Se pone en pausa la rutina SFC. Reinicie el SFC cuando se establezca sfc_en_e. IF (sfp_en_p) THEN SFP(normal. n. AFI. Ninguna. La instrucción se ejecuta. Se reanuda la ejecución de la rutina SFC. UIE. EVENT) Capítulo 11 Ejecución: Condición: preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. a. Publicación 1756-RM003K-ES-P – Julio 2008 461 . EOT. LBL. La condición de salida de renglón se establece como falsa. NOP. Acción de texto estructurado Ninguna.Instrucciones de control de programa (JMP. JXR. sfp_en_p := 0. Ejemplo: Si sfc_en_p se establece. END_IF. UID. MCR. Esta función de poner en pausa/cancelar la pausa de la instrucción SFR del PLC-5 se desacopló de la condición del renglón y se movió a la instrucción SFP. END_IF. SFP. UID. se detiene la ejecución de todas las acciones almacenadas (restablecimiento). Indicadores de estado aritmético: no afectados 462 Publicación 1756-RM003K-ES-P – Julio 2008 . sfp_en_e := 0. En el controlador PLC-5. EVENT) Se reanuda la ejecución de la rutina SFC: IF (sfp_en_e) THEN SFP(normal. TND. Después del restablecimiento. • El SFC comienza a ejecutarse en el paso especificado. LBL.executing). JSR. el SFC permanecería en pausa hasta que el renglón que contiene el SFR se haga falso.Capítulo 11 Instrucciones de control de programa (JMP. AFI. SFR. Si el paso objetivo es 0. UIE.StepName). el diagrama se restablecerá en su paso inicial. SBR. EOT. Esto permitió retardar la ejecución después de un restablecimiento. NOP. Restablecer SFC (SFR) Operandos: La instrucción SFR restablece la ejecución de una rutina SFC en un paso especificado. La implementación Logix de la instrucción SFR es diferente a la del controlador PLC-5. RET. el SFR se ejecutó cuando la condición del renglón fue verdadera. Los operandos son iguales a los de la instrucción SFR de lógica de escalera de relés. Operandos de lógica de escalera de relés Operando SFCRoutine Name Step Name Tipo ROUTINE SFC_STEP Formato nombre tag Descripción rutina SFC que se va a restablecer paso objetivo donde se va a reanudar la ejecución Texto estructurado SFR(SFCRoutineName. JXR. Descripción: Cuando la instrucción SFR está habilitada: • En la rutina SFC especificada. La instrucción restablece la rutina SFC especificada. a. EnableIn siempre se establece. Lógica de escalera de relés Texto estructurado IF shutdown THEN SFR(mySFC. La instrucción se ejecuta.Instrucciones de control de programa (JMP. RET. TND. n. Publicación 1756-RM003K-ES-P – Julio 2008 463 . SFR. Ejemplo: Si ocurre una condición específica (shutdown se establece) reinicie el SFC en el paso initialize. JSR. La condición de salida de renglón se establece como verdadera. La condición de salida de renglón se establece como falsa. a. ejecución de la instrucción post-escán La instrucción restablece la rutina SFC especificada. EOT. a. UIE. La instrucción se ejecuta. SBR. Ninguna. LBL. NOP. Acción de texto estructurado Ninguna. SFP. La condición de salida de renglón se establece como falsa. UID.initialize). JXR. n. END_IF. MCR. EnableIn se establece n. AFI. EVENT) Capítulo 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 Código de fallo 85 89 Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. use una instrucción Get System Value (GSV) para monitorear el atributo Status de la tarea. JSR. LBL.Capítulo 11 Instrucciones de control de programa (JMP. Lógica de escalera de relés Operando Tarea Tipo TASK Formato nombre Descripción tarea de evento que se va a ejecutar La instrucción le permite seleccionar otros tipos de tareas. pero no ejecutarlas. Ocurrió una superposición para esta tarea. ésta activa la tarea de evento especificada. EVENT(task_name). Texto estructurado Los operandos son iguales a los de la instrucción EVENT de lógica de escalera de relés. SFP. usted debe borrar manualmente el bit para determinar si ocurrió otro fallo de ese tipo. Al expirar un tiempo de espera se activó la tarea (tarea de evento solamente). MCR. Examine este bit: 0 1 2 464 Publicación 1756-RM003K-ES-P – Julio 2008 . SBR. EVENT) Activar tarea de evento (EVENT) Operandos: La instrucción EVENT activa una ejecución de una tarea de evento. NOP. SFR. el controlador incrementa el contador de superposiciones pero no activa la tarea de evento. Una vez que el controlador establece un bit. UID. AFI. Determine programáticamente si una instrucción EVENT activó una tarea Para determinar si una instrucción EVENT activó una tarea de evento. UIE. RET. se producirá una superposición. Atributo Status del objeto TASK Atributo Status Tipo de datos DINT Instrucción GSV SSV Descripción Proporciona información de estado acerca de la tarea. • Si usted ejecuta una instrucción EVENT mientras se está ejecutando la tarea de evento. EOT. JXR. Se lo contrario. • Cada vez que la instrucción se ejecuta. TND. • Asegúrese de dar a la tarea de evento tiempo suficiente para completar su ejecución antes de volver a activarla. Descripción: Use la instrucción EVENT para ejecutar programáticamente una tarea de evento. Para determinar si: Una instrucción EVENT activó la tarea (tarea de evento solamente). Ninguna. La instrucción activa una ejecución de la tarea de evento especificada La condición de salida de renglón se establece como falsa. n. La condición de salida de renglón se establece como falsa. a. n. EnableIn siempre se establece. TND. La instrucción se ejecuta. • Use una instrucción de establecer valor del sistema (Set System Value (SSV)) para establecer el atributo en un valor diferente.Instrucciones de control de programa (JMP. debe borrar manualmente el bit. JSR. EOT. EVENT) Capítulo 11 El controlador no borra los bits del atributo Status una vez que éstos están establecidos. La instrucción se ejecuta. RET. a. UID. UIE. n. La condición de salida de renglón se establece como verdadera. SFP. JXR. SFR. Acción de texto estructurado Ninguna. AFI. a. SBR. Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición: preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera EnableIn se establece ejecución de la instrucción post-escán Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. LBL. Publicación 1756-RM003K-ES-P – Julio 2008 465 . • Para usar un bit para nueva información de estado. MCR. NOP. Cada programa usa un tag bajo el control del programa llamado Shut_Down_Line el cual se activa si el programa detecta una condición que requiere una desactivación. SFR. NOP. TND. La lógica en cada programa se ejecuta de la siguiente manera: Si Shut_Down_Line = activado (la condición requiere una desactivación) entonces Ejecute la tarea Shut_Down una vez Lógica de escalera de relés 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. SFP. UID. 466 Publicación 1756-RM003K-ES-P – Julio 2008 . SBR. Shut_Down_Line_One_Shot := Shut_Down_Line. MCR. LBL. EVENT) Ejemplo 1: Un controlador usa múltiples programas pero un procedimiento de desactivación común. JSR. AFI. UIE. JXR. EOT.Capítulo 11 Instrucciones de control de programa (JMP. Shut_Down_Line_One_Shot := Shut_Down_Line. RET. Programa B IF Shut_Down_Line AND NOT Shut_Down_Line_One_Shot THEN EVENT (Shut_Down). END_IF. SFP. JSR. NOP. El controlador no borra los bits del atributo Status una vez que éstos están establecidos. UIE. La instrucción EVENT activa una ejecución de Task_1 (tarea de evento).0 = 0.0 = 1. Si Task_Status. UID.0 = 1. La instrucción OTU establece Task_Status. Tarea continua Si Initialize_Task_1 = 1 entonces La instrucción ONS limita la ejecución de la instrucción EVENT a un escán. significa que una instrucción EVENT activó la tarea de evento (es decir. EOT. borre ese bit.Instrucciones de control de programa (JMP. En el atributo Instance Name. (Otro tipo de evento normalmente activa la tarea de evento). Publicación 1756-RM003K-ES-P – Julio 2008 467 . TND. Si Task_Status. SFR. La instrucción SSV establece el atributo Status de la tarea THIS (Task_1) = Task_Status. SBR. LBL. RET. debe borrar el bit manualmente. THIS significa el objeto TASK para la tarea en la cual está la instrucción (o sea Task_1). JXR. EVENT) Capítulo 11 Ejemplo 2: El siguiente ejemplo usa una instrucción EVENT para inicializar una tarea de evento. Task_1 (tarea de evento) La instrucción GSV establece Task_Status (tag DINT) = atributo Status para la tarea de evento. Esto incluye el bit borrado. La instrucción RES pone en cero un contador que usa la tarea de evento. cuando la tarea continua ejecuta su instrucción EVENT para inicializar la tarea de evento). AFI. MCR. Para usar un bit para nueva información de estado. SBR. RET. UID. JSR. JXR. EOT. SFP. SFR.Capítulo 11 Instrucciones de control de programa (JMP. EVENT) Notas: 468 Publicación 1756-RM003K-ES-P – Julio 2008 . TND. LBL. UIE. NOP. AFI. MCR. Use la instrucción FOR para llamar repetidamente una subrutina. 469Publicación 1756-RM003K-ES-P – Julio 2008 469 . BRK.DO..DO(1) Disponible en estos lenguajes lógica de escalera de relés texto estructurado lógica de escalera de relés texto estructurado lógica de escalera de relés 474 473 Vea la página 470 Interrumpir la ejecución repetida de una rutina.Capítulo 12 Instrucciones For/Break (FOR. EXIT. Use la instrucción BRK para interrumpir la ejecución de una subrutina. (1) RET Texto estructurado solamente. BRK EXIT(1) Retornar a la instrucción FOR.. FOR... RET) Introducción Si desea Ejecutar repetidamente una rutina. Use esta instrucción Para obtener FOR. • Usted puede colocar una instrucción FOR en la rutina principal o en cualquier otra rutina. Descripción: No use una instrucción FOR para llamar (ejecutar) la rutina principal. RET) For (FOR) Operandos: La instrucción FOR ejecuta una rutina repetidamente. BRK. Programación de texto estructurado para obtener información sobre construcciones de texto estructurado. • Si usted usa una instrucción FOR para llamar a la rutina principal y posteriormente colocar una instrucción RET en la rutina principal.DO.Capítulo 12 Instrucciones For/Break (FOR.. EXIT. FOR.. Lógica de escalera de relés 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 añade al índice cada vez que la instrucción FOR ejecuta la rutina inmediato tag valor en que se detiene la ejecución de la rutina Formato Descripción nombre de la rutina que se ejecuta rutina tag inmediato tag cuenta cuántas 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. Consulte Apéndice C.DO. se produce un fallo mayor (tipo 4. código 31). Use la construcción FOR... IMPORTANTE 470 Publicación 1756-RM003K-ES-P – Julio 2008 . FOR.. EXIT. lo cual causa un fallo mayor. BRK. Un número excesivo de repeticiones puede hacer que el temporizador de control (watchdog) exceda el tiempo de espera. Tenga cuidado de no hacer lazos demasiadas veces en un solo escán. la subrutina es preescaneada sólo la primera vez. RET) Capítulo 12 Cuando se habilita. añade el Step size al Index. Indicadores de estado aritmético: no afectados Condiciones de fallo: Ocurrirá un fallo mayor si la rutina principal contiene una instrucción RET Tipo de fallo 4 Código de fallo 31 Ejecución: Condición preescán Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. Si existen múltiples instrucciones FOR (no recursivas) a la misma subrutina..DO.Instrucciones For/Break (FOR. Esta instrucción no pasa parámetros a la rutina. El controlador ejecuta la subrutina una vez. Publicación 1756-RM003K-ES-P – Julio 2008 471 . la subrutina es preescaneada cada vez. Si existen instrucciones FOR recursivas a la misma subrutina. la instrucción FOR ejecuta repetidamente la rutina hasta que el valor Index excede el valor Terminal. Cada vez que la instrucción FOR ejecuta la rutina. condición de entrada de renglón es falsa La condición de salida de renglón se establece como falsa. RET) Condición condición de entrada de renglón es verdadera Acción de lógica de escalera de relés index = initial_value no tamaño de paso < 0 sí ir a fin no índice ≤ valor terminal sí sí índice ≥ valor terminal no ir a fin fin ejecutar rutina índice = (index + step_size) la condición de salida de renglón se establece como verdadera fin post-escán La condición de salida de renglón se establece como falsa. FOR.. EXIT.. la instrucción FOR ejecuta repetidamente routine_2 e incrementa value_2 en un valor de 1 cada vez. BRK. Cuando value_2 es > 10 o una instrucción BRK está habilitada.DO. la instrucción FOR ya no ejecuta routine_2. Ejemplo: Una vez habilitada. 472 Publicación 1756-RM003K-ES-P – Julio 2008 .Capítulo 12 Instrucciones For/Break (FOR. Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. Publicación 1756-RM003K-ES-P – Julio 2008 473 ... la instrucción BRK sale de la rutina actual y retorna el controlador a la instrucción que sigue a la instrucción FOR. Consulte el Apéndice B para obtener información sobre construcciones de texto estructurado. Ejemplo: Una vez habilitada. La condición de salida de renglón se establece como falsa. La condición de salida de renglón se establece como verdadera. Lógica de escalera de relés ninguna EXIT. Si hay instrucciones FOR anidadas. BRK.Instrucciones For/Break (FOR. post-escán La condición de salida de renglón se establece como falsa. RET) Capítulo 12 Interrumpir (BRK) Operandos: La instrucción BRK interrumpe la ejecución de una rutina que fue llamada por una instrucción FOR. FOR. Descripción: Una vez habilitada. EXIT.DO. Texto estructurado Use la declaración EXIT en una construcción de lazo. una instrucción BRK retorna el control a la instrucción FOR del extremo interior. La ejecución retorna a la instrucción que sigue a la instrucción FOR que originó la llamada. la instrucción BRK hace que se deje de ejecutar la rutina actual y retorna a la instrucción que sigue a la instrucción FOR que originó la llamada. Si usted coloca una instrucción RET en la rutina principal. Si el valor de Index excede el valor Terminal. ocurre un fallo mayor (tipo 4. La condición de salida de renglón se establece como verdadera. La condición de salida de renglón se establece como falsa.DO.Capítulo 12 Instrucciones For/Break (FOR. código 31). La instrucción FOR incrementa el valor de Index por una cantidad equivalente al Step Size y ejecuta la subrutina nuevamente. 474 Publicación 1756-RM003K-ES-P – Julio 2008 . la instrucción RET retorna a la instrucción FOR... Cuando se habilita. Lógica de escalera de relés ninguna Descripción: IMPORTANTE No coloque una instrucción RET en la rutina principal. La instrucción FOR ignora cualquier parámetro que usted introduzca en una instrucción RET. BRK. RET) Retornar (RET) Operandos: La instrucción RET retorna a la instrucción FOR que originó la llamada. La instrucción FOR no usa parámetros. post-escán La condición de salida de renglón se establece como falsa. También puede usar una instrucción TND para terminar la ejecución de una subrutina. se completa la instrucción FOR y la ejecución pasa a la instrucción que sigue a la instrucción FOR. FOR. EXIT. Indicadores de estado aritmético: no afectados Condiciones de fallo: Ocurrirá un fallo mayor si la rutina principal contiene una instrucción RET Tipo de fallo 4 Código de fallo 31 Ejecución: Condición: preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. Retorna los parámetros especificados a la rutina que originó la llamada. . FOR. rutina que origina la llamada subrutina Publicación 1756-RM003K-ES-P – Julio 2008 475 . EXIT. si el valor de Index excede el valor de Terminal. RET) Capítulo 12 Ejemplo: La instrucción FOR ejecuta repetidamente routine_2 e incrementa value_2 en un valor de 1 cada vez. la instrucción FOR ya no ejecuta routine_2. la instrucción FOR se completa y la ejecución pasa a la instrucción que sigue a la instrucción FOR. La instrucción RET retorna a la instrucción FOR que originó la llamada.DO.Instrucciones For/Break (FOR. La instrucción FOR ejecuta la subrutina nuevamente e incrementa el valor de Index en una cantidad equivalente a Step Size o. Cuando value_2 es > 10 o una instrucción BRK está habilitada.. BRK. . FOR.DO. RET) Notas: 476 Publicación 1756-RM003K-ES-P – Julio 2008 .Capítulo 12 Instrucciones For/Break (FOR. EXIT. BRK.. Controlar un lazo PID. Seguidamente escribir el origen en la referencia para la siguiente comparación. registrar las incongruencias y actualizar la referencia para que sea igual al origen. DDT. Use esta instrucción FBC DDT Disponible en estos lenguajes: lógica de escalera de relés lógica de escalera de relés Vea la página 478 486 DTR lógica de escalera de relés 494 PID lógica de escalera de relés texto estructurado 497 477Publicación 1756-RM003K-ES-P – Julio 2008 477 . Las instrucciones especiales realizan operaciones específicas de la aplicación. Comparar datos con una buena referencia conocida.Capítulo 13 Instrucciones especiales (FBC. PID) Introducción Si desea Comparar datos con una buena referencia conocida y registrar las incongruencias. DTR. Pasar los datos de origen a través de una máscara y comparar los resultados con los datos de referencia. Capítulo 13 Instrucciones especiales (FBC. DDT. El usar el mismo tag para ambos podría resultar en una operación inesperada y causar daño al equipo y/o lesiones personales.POS en el subíndice Reference DINT tag de matriz matriz que se va a comparar con el origen. PID) Comparación de bits de archivo (FBC) Operandos: La instrucción FBC compara los bits en una matriz de origen con los bits en una matriz de referencia. Lógica de escalera de relés Operando Source Tipo DINT Formato Descripción: tag de matriz matriz que se va a comparar con la referencia. DTR.POS en el subíndice Result DINT tag de matriz matriz para almacenar el resultado no use CONTROL. no use CONTROL. 478 Publicación 1756-RM003K-ES-P – Julio 2008 .POS en los subíndices Cmp control Length Position CONTROL DINT DINT estructura inmediato inmediato estructura de control para la comparación número de bits que se van a comparar posición actual en el origen el valor inicial es típicamente 0 Result control Length Position CONTROL DINT DINT estructura inmediato inmediato estructura de control para los resultados número de ubicaciones de almacenamiento en el resultado posición actual en el resultado el valor inicial es típicamente 0 ATENCIÓN Use tags diferentes para la estructura de control de comparación y para la estructura de control de resultado. no use CONTROL. DTR. Descripción: Cuando se habilita. Usted debe probar y confirmar que la instrucción no cambie datos que usted no desea que cambien. El bit de inhibición indica el modo de búsqueda de FBC. la instrucción cambia el bit de referencia para que coincida con el bit de origen.ER. PID) Capítulo 13 Estructura COMPARE Mnemónico: . La instrucción detiene la ejecución hasta que el programa borra el bit . el resultado .ER BOOL El bit de error se establece si la comparación . El valor de posición identifica la posición actual en la matriz resultado. 0 = modo de todas 1 = modo de una incongruencia a la vez . .LEN .Instrucciones especiales (FBC. El valor de longitud identifica el número de bits que se van a comparar. El bit de encontrado se establece cada vez que la instrucción FBC registra una incongruencia (operación una a la vez) o después de registrar todas las incongruencias (operación todas por escán).LEN .POS < 0.LEN < 0.DN . El valor de longitud identifica el número de ubicaciones de almacenamiento en la matriz resultado. IMPORTANTE Publicación 1756-RM003K-ES-P – Julio 2008 479 .POS < 0 o el resultado . la instrucción busca o escribe más allá de la matriz en otros miembros del tag.POS Tipo de datos BOOL DINT DINT Descripción El bit de efectuado se establece cuando la matriz resultado está llena.EN .POS DINT DINT Estructura RESULT Mnemónico . La diferencia entre las instrucciones DDT y FBC es que cada vez que la instrucción DDT encuentra una incongruencia.DN . La instrucción FBC realiza la operación en la memoria de datos contiguos.LEN < 0.FD Tipo de datos BOOL BOOL BOOL Descripción: El bit de habilitación indica que la instrucción FBC está habilitada. El bit de efectuado se establece cuando la instrucción FBC compara el último bit en las matrices de origen y referencia. la instrucción FBC compara los bits en la matriz origen con los bits en la matriz de referencia y registra el número de bit de cada incongruencia en la matriz resultado. la comparación . El valor de posición identifica el bit actual. La instrucción FBC no cambia el bit de referencia. DDT. Esto sucede si una longitud es excesiva y el tag es de un tipo de datos definido por el usuario.IN BOOL . En algunos casos. IN en la estructura CONTROL de comparación. PID) Selección del modo de búsqueda Si desea detectar Una incongruencia a la vez Seleccione este modo Establezca el bit . Al encontrar una incongruencia. registra la posición de la incongruencia y detiene la ejecución. la instrucción FBC busca la siguiente incongruencia entre las matrices de origen y referencia. DTR. Cada vez que la condición de entrada del renglón cambia de falso a verdadero. DDT.POS > tamaño de matriz resultado Tipo de fallo 4 Código de fallo 20 480 Publicación 1756-RM003K-ES-P – Julio 2008 .IN en la estructura CONTROL de comparación. la instrucción establece el bit .FD. Cada vez que la condición de entrada del renglón cambia de falso a verdadero. Todas las incongruencias Borre el bit . Indicadores de estado aritmético: no afectados Condiciones de fallo: Ocurrirá un fallo mayor si: result. la instrucción FSC busca todas las incongruencias entre las matrices de origen y referencia.Capítulo 13 Instrucciones especiales (FBC. POS se borra la condición de salida de renglón se establece como falsa fin Publicación 1756-RM003K-ES-P – Julio 2008 481 .EN se borra el bit compare.POS se borra el bit result.DN = 0 compare.Instrucciones especiales (FBC.FD se borra Acción de lógica de escalera de relés examine el bit compare. DTR. DDT.DN = 1 el bit compare.DN se borra el valor compare.DN se borra el valor result.DN compare. PID) Capítulo 13 Ejecución: Condición preescán el bit compare. Capítulo 13 Instrucciones especiales (FBC.POS se borra la condición de salida de renglón se establece como falsa fin 482 Publicación 1756-RM003K-ES-P – Julio 2008 .DN = 1 el bit compare. DTR.DN compare.DN = 0 compare. DDT.DN se borra el valor compare.EN se borra el bit compare.DN se borra el valor result.FD se borra Acción de lógica de escalera de relés examine el bit compare. PID) Condición condición de entrada de renglón es falsa el bit compare.POS se borra el bit result. FD se borra no sí compare.EN compare.POS < 0 sí no la condición de salida de renglón se establece como verdadera comparar fin el bit compare. DDT. PID) Capítulo 13 Condición condición de entrada de renglón es verdadera Acción de lógica de escalera de relés examine el bit compare.ER se borra el bit compare.DN compare.DN = 0 el bit compare.Instrucciones especiales (FBC.ER se establece ir a la salida página 484 Publicación 1756-RM003K-ES-P – Julio 2008 483 .EN = 1 ir a la salida compare.LEN ≤ 0 exit compare.EN = 0 El bit compare.DN = 1 ir a la salida compare. DTR.EN se establece examine el bit compare. DN = 1 source[compare. PID) Condición comparar Acción de lógica de escalera de relés compare.DN se borra el valor result.DN se establece ir a la salida página 483 no result.POS ≥ compare.ER se establece sí fallo mayor result.POS < 0 no result.LEN sí el bit result.POS + 1 ir a la salida página 483 no result.POS > tamaño de matriz resultado no result[result.POS = result.LEN el bit compare.FD se establece examine el bit result. DTR.LEN ≤ 0 sí no el bit compare.DN = 0 sí result.DN se establece post-escán La condición de salida de renglón se establece como falsa.POS] = compare.POS > result.LEN sí compare.POS + 1 result.POS se borra sí compare.DN bit el bit result.POS = compare.POS = compare.POS result.POS] = reference[compare.Capítulo 13 Instrucciones especiales (FBC. DDT. 484 Publicación 1756-RM003K-ES-P – Julio 2008 .POS] no el bit compare. Instrucciones especiales (FBC. 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 Publicación 1756-RM003K-ES-P – Julio 2008 485 . DTR. DDT. PID) Capítulo 13 Ejemplo: Cuando se habilita. la instrucción FBC compara el origen array_dint1 con la referencia array_dint2 y almacena las ubicaciones de las incongruencias en el resultado array_dint3. PID) Detección de diagnóstico (DDT) Operandos: La instrucción DDT compara los bits en una matriz de origen con los bits en una matriz de referencia para determinar cambios de estado.POS en el subíndice Result DINT matriz para almacenar los resultados no use CONTROL.POS en el subíndice Reference DINT matriz que se va a comparar con el origen no use CONTROL. DTR. DDT.POS en el subíndice Cmp control Length Position CONTROL DINT DINT estructura de control para la comparación número de bits que se van a comparar posición actual en el origen el valor inicial es típicamente 0 Result control Length Position CONTROL DINT DINT estructura inmediato inmediato estructura de control para los resultados número de ubicaciones de almacenamiento en el resultado posición actual en el resultado el valor inicial es típicamente 0 ATENCIÓN Use tags diferentes para la estructura de control de comparación y para la estructura de control de resultado. Lógica de escalera de relés Operando Source Tipo DINT Formato tag de matriz tag de matriz tag de matriz estructura inmediato inmediato Descripción matriz que se va a comparar con la referencia no use CONTROL. 486 Publicación 1756-RM003K-ES-P – Julio 2008 .Capítulo 13 Instrucciones especiales (FBC. El usar el mismo tag para ambos podría resultar en un comportamiento inesperado y causar daño al equipo y/o lesiones personales. el resultado . DDT. El valor de posición identifica el bit actual.EN .ER BOOL El bit de error se establece si la comparación . la instrucción DDT cambia el bit de referencia para que coincida con el bit de origen. El bit de efectuado se establece cuando la instrucción DDT compara el último bit en las matrices de origen y referencia.POS DINT DINT Estructura RESULT Mnemónico .LEN .POS < 0. La instrucción detiene la ejecución hasta que el programa borra el bit . IMPORTANTE Publicación 1756-RM003K-ES-P – Julio 2008 487 . El valor de longitud identifica el número de bits que se van a comparar. Usted debe probar y confirmar que la instrucción no cambie datos que usted no desea que cambien.POS < 0 o el resultado . El valor de posición identifica la posición actual en la matriz resultado.LEN . PID) Capítulo 13 Estructura COMPARE Mnemónico . la instrucción busca o escribe más allá de la matriz en otros miembros del tag. la comparación .POS Tipo de datos BOOL DINT DINT Descripción El bit de efectuado se establece cuando la matriz resultado está llena. La instrucción FBC no cambia el bit de referencia. registra el número 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. . El bit de inhibición indica el modo de búsqueda de DDT. El valor de longitud identifica el número de ubicaciones de almacenamiento en la matriz resultado.FD Tipo de datos BOOL BOOL BOOL Descripción El bit de habilitación indica que la instrucción DDT está habilitada. Descripción: Cuando se habilita. El bit de encontrado se establece cada vez que la instrucción DDT registra una incongruencia (operación una a la vez) o después de registrar todas las incongruencias (operación todas por escán).LEN < 0.Instrucciones especiales (FBC. La diferencia entre las instrucciones DDT y FBC radica en que cada vez que la instrucción DDT encuentra una incongruencia. La instrucción DDT realiza la operación en la memoria de datos contiguos. 0 = modo de todas 1 = modo de una incongruencia a la vez . Esto sucede si una longitud es excesiva y el tag es de un tipo de datos definido por el usuario.DN .ER.LEN < 0. la instrucción DDT compara los bits en la matriz de origen con los bits en la matriz de referencia. En algunos casos. DTR.IN BOOL .DN . registra la posición de la incongruencia y detiene la ejecución. PID) Selección del modo de búsqueda Si desea detectar Una incongruencia a la vez Seleccione este modo Establezca el bit . la instrucción DDT busca todas las incongruencias entre las matrices de origen y referencia. DDT.POS > tamaño de matriz resultado 4 488 Publicación 1756-RM003K-ES-P – Julio 2008 .Capítulo 13 Instrucciones especiales (FBC. DTR. Cada vez que la condición de entrada del renglón cambia de falso a verdadero. Todas las incongruencias Borre el bit .IN en la estructura CONTROL de comparación.IN en la estructura CONTROL de comparación. Cada vez que la condición de entrada del renglón cambia de falso a verdadero. Al encontrar una incongruencia. la instrucción DDT busca la siguiente incongruencia entre las matrices de origen y referencia.FD. la instrucción establece el bit . Indicadores de estado aritmético: no afectados Condiciones de fallo: Ocurrirá un fallo mayor si Tipo de fallo Código de fallo 20 result. DN se borra el valor compare.DN = 1 el bit compare.DN compare.Instrucciones especiales (FBC.DN = 0 compare.POS se borra la condición de salida de renglón se establece como falsa fin Publicación 1756-RM003K-ES-P – Julio 2008 489 . DDT.EN se borra el bit compare.DN se borra el valor result.POS se borra el bit result. PID) Capítulo 13 Ejecución: Condición: preescán el bit compare.FD se borra Acción de lógica de escalera de relés examine el bit compare. DTR. DTR.Capítulo 13 Instrucciones especiales (FBC. DDT.DN compare.POS se borra la condición de salida de renglón se establece como falsa fin 490 Publicación 1756-RM003K-ES-P – Julio 2008 .EN se borra el bit compare.POS se borra el bit result.DN se borra el valor compare.DN se borra el valor result.DN = 1 el bit compare.FD se borra Acción de lógica de escalera de relés examine el bit compare.DN = 0 compare. PID) Condición: condición de entrada de renglón es falsa el bit compare. ER se borra el bit compare.ER se establece ir a la salida página 492 Publicación 1756-RM003K-ES-P – Julio 2008 491 .POS < 0 sí no la condición de salida de renglón se establece como verdadera comparar fin el bit compare.EN = 1 ir a la salida compare. PID) Capítulo 13 Condición: condición de entrada de renglón es verdadera Acción de lógica de escalera de relés examine el bit compare. DDT.DN = 1 ir a la salida bit compare. DTR.EN = 0 El bit compare.Instrucciones especiales (FBC.EN se establece examine el bit compare.DN = 0 el bit compare.FD se borra sí compare.DN bit compare.EN compare.LEN ≤ 0 no salida compare. POS] no compare.POS] examine el bit result. DDT.POS = compare.DN = 0 sí result.LEN el bit compare.POS ≥ compare.POS result.DN se establece post-escán La condición de salida de renglón se establece como falsa.DN = 1 source[compare.POS se borra sí compare.DN se establece ir a la salida página 491 no result.POS = compare.Capítulo 13 Instrucciones especiales (FBC.POS + 1 result.LEN ≤ 0 no el bit compare.POS] = source[compare.POS = result.DN bit el bit result.LEN sí el bit result.DN se borra el valor result. PID) Condición: comparar Acción de lógica de escalera de relés compare.POS + 1 ir a la salida página 483 no result.POS > tamaño de matriz resultado no result[result. DTR.POS ≥ result.LEN sí compare.FD bit se establece reference[compare.POS] = compare. 492 Publicación 1756-RM003K-ES-P – Julio 2008 .ER se establece sí fallo mayor result.POS < 0 no sí result.POS] = reference[compare. la instrucción DDT compara el origen array_dint1 con la referencia array_dint2 y almacena las ubicaciones de las incongruencias en el resultado array_dint3.Instrucciones especiales (FBC. PID) Capítulo 13 Ejemplo: Cuando se habilita. DDT. DTR. El controlador también 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 comparación) 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 (después de comparación) 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 Publicación 1756-RM003K-ES-P – Julio 2008 493 . la condición de salida del renglón se hace falsa. Si el valor de referencia es diferente del valor de origen. PID) Transición de datos (DTR) Operandos: La instrucción DTR pasa el valor de origen a través de una máscara y compara el resultado con el valor de referencia. Descripción: La instrucción DTR pasa el valor de origen a través de una máscara y compara el resultado con el valor de referencia. DDT. la condición de salida de renglón se hace falsa. Cuando Source enmascarado es diferente de la referencia. Tenga cuidado al insertar esta instrucción cuando el procesador está en el modo de marcha o de marcha remota. Cuando Source enmascarado es igual que la referencia. DTR. Lógica de escalera de relés Operando: Source Tipo DINT Formato inmediato tag Mask DINT inmediato tag Reference DINT tag matriz que se va a comparar con el origen.Capítulo 13 Instrucciones especiales (FBC. la condición de salida de renglón se hace verdadera en un escán. El programar en línea con esta instrucción puede ser peligroso. Un número “0” en la máscara significa que se bloquea el bit de datos. qué bits se bloquean o se pasan Descripción matriz que se va a comparar con la referencia. La instrucción DTR también escribe el valor de Source enmascarado en el valor de referencia para la siguiente comparación. Un número “1” en la máscara significa que se pasa el bit de datos. ATENCIÓN 494 Publicación 1756-RM003K-ES-P – Julio 2008 . Source no cambia. DDT. Prefijo 16# Descripción: hexadecimal por ejemplo. DTR. 16#0F0F 8# octal por ejemplo: 8#16 2# binario por ejemplo: 2#00110011 Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán Acción de lógica de escalera de relés La Referencia = Source AND Mask. La condición de salida de renglón se establece como falsa. el software de programación cambia de manera predeterminada a valores decimales. PID) Capítulo 13 Introduzca un valor de máscara inmediato Cuando usted introduce una máscara. Publicación 1756-RM003K-ES-P – Julio 2008 495 . condición de entrada de renglón es verdadera origen enmascarado = referencia no la referencia se establece igual que el origen enmascarado la condición de salida de renglón se establece como verdadera sí la condición de salida de renglón se establece como falsa fin post-escán La condición de salida de renglón se establece como falsa.Instrucciones especiales (FBC. Si desea introducir una máscara usando otro formato. condición de entrada de renglón es falsa La Referencia = Source AND Mask. La condición de salida de renglón se establece como falsa. preceda el valor con el prefijo correcto. DDT. la instrucción DTR enmascara value_1. DTR. ejemplo 1 origen 7 1 8 3 value_1 máscara = 0FFF 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 ejemplo 2 9 1 8 7 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 referencia escán actual escán previo 0 0 1 1 8 8 3 3 value_2 0 0 1 1 8 8 7 3 escán actual escán previo El renglón permanece falso siempre que el valor de entrada no cambie.Capítulo 13 Instrucciones especiales (FBC. Si existe una diferencia entre los dos valores. El renglón permanece verdadero por un escán cuando se detecta un cambio. PID) Ejemplo: Cuando se habilita. la condición de salida de renglón se establece como verdadera. 496 Publicación 1756-RM003K-ES-P – Julio 2008 . 13385 Un número “0” en la máscara deja el bit sin ningún cambio. DDT. 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. PID) Capítulo 13 Proporcional integral derivativo (PID) Operandos: La instrucción PID controla una variable del proceso. regulador. tal como flujo. temperatura o nivel. Inhold bit BOOL tag (opcional) estado actual del bit mantenido desde un canal de salida analógica 1756 para permitir un reinicio sin problemas Introduzca 0 si no desea usar este parámetro. DINT REAL Publicación 1756-RM003K-ES-P – Julio 2008 497 . DTR. presión. Introduzca 0 si no desea usar este parámetro. Control variable SINT INT DINT REAL tag valor que va al dispositivo de control final (válvula. Lógica de escalera de relés Operando PID Process variable Tipo PID SINT INT DINT REAL Formato estructura tag Descripción estructura PID valor que desea controlar Tieback SINT INT DINT REAL inmediato tag (opcional) salida de una estación manual/automática que está pasando por alto la salida del controlador Introduzca 0 si no desea usar este parámetro. la variable Control debe ser REAL o se forzará a 0 cuando el error esté dentro de la banda muerta.Instrucciones especiales (FBC. etc. Inhold value SINT INT tag (opcional) valor de repetición de lectura de datos desde un canal de salida analógica 1756 para permitir un reinicio sin problemas Introduzca 0 si no desea usar este parámetro.) Si usted está usando la banda muerta. introduzca el nombre del PID maestro. CL .PE . y . DTR. en lugar de incluir valores en la lista de operandos.INI .KP REAL REAL punto de ajuste independiente dependiente ganancia proporcional (sin unidades) ganancia de controlador (sin unidades) Es este miembro .SP.ControlVariable. PIDMasterLoop.OLH .EN .15. .OUT de la estructura PID.PVLA .ProcessVariable. PID) Operando Setpoint Process variable Output % Tipo Formato Descripción 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. Tieback.NOZC Es este miembro. InHoldValue). que la instrucción PID establece .SWM .NOBC . Sin embargo.NDF .CT .OLL . usted especifica Setpoint.DOE .InholdBit.Capítulo 13 Instrucciones especiales (FBC.SPOR .MO .EWD . Process Variable y Output % accediendo a los miembros . Estructura PID Mnemónico: . Los operandos son iguales que los de la instrucción PID de lógica de escalera de relés.CTL Tipo de datos DINT Descripción El miembro .CA . 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 .DVNA .PVHA 498 Publicación 1756-RM003K-ES-P – Julio 2008 .PVT .SP .DVPA .PV.CTL proporciona acceso a los miembros de estado (bits) en una palabra de 32 bits. DDT. La instrucción PID establece los bits 07 . DDT.KI .MAXO .PVH .TIE .KD .UPD .PV .MINS .MAXS .MINCV .DB .MINI .MINTIE . PID) Capítulo 13 Mnemónico: .DVDB .MAXCV .MAXI .ERR .SO .OUT .Instrucciones especiales (FBC.BIAS .MINO . DTR.DVN .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 Descripción independiente dependiente independiente dependiente ganancia integral (1/segundo) tiempo de acción integral (minutos por repetición) ganancia derivativa (segundos) tiempo de acción derivada (minutos) % de ganancia anticipativa o polarización valor máximo de escalado de unidades de ingeniería valor mínimo de escalado de unidades de ingeniería unidades de ingeniería de banda muerta % salida establecida límite máximo de salida (% de salida) límite mínimo de salida (% de salida) tiempo de actualización del lazo (segundos) valor PV escalado valor de error escalado % de salida límite de alarma alta de variable del proceso límite de alarma baja de variable del proceso límite de alarma de desviación positiva límite de alarma de desviación negativa banda muerta de alarma de variable del proceso banda muerta de alarma de desviación valor PV máximo (entrada no escalada) valor PV mínimo (entrada no escalada) valor retenido para control manual valor CV máximo (correspondiente a 100%) valor CV mínimo (correspondiente a 0%) valor retenido mínimo (correspondiente a 100%) valor retenido máximo (correspondiente a 0%) Publicación 1756-RM003K-ES-P – Julio 2008 499 .PVL .DVP .PVDB . Capítulo 13 Instrucciones especiales (FBC, DDT, DTR, PID) Mnemónico: .DATA Tipo de datos REAL[17] Descripción 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] Descripción acumulación integral valor temporal de suavizado derivativo valor .PV previo valor .ERR previo valor .SP previo válido 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 desactivación de escalado .CV constante de desactivación 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) acción de control (0 significa E=SP-PV; 1 significa E=PV-SP) modo de estación (0=automático; 1=manual) Ecuación PID (0=independiente; 1=dependiente) sin suavizado derivativo (0=filtro de suavizado derivativo habilitado; 1=filtro de suavizado derivativo inhabilitado) sin cálculo en base a datos originales de polarización (0=cálculo en base a datos originales de polarización habilitado; 1=cálculo en base a datos originales de polarización 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 límite de salida mínimo (0=no; 1=sí) VC está por arriba del límite de salida máximo (0=no; 1=sí) el error está dentro de la banda muerta (0=no; 1=sí) la desviación tiene alarma baja (0=no; 1=sí) .NOZC .INI .SPOR .OLL .OLH .EWD .DVNA BOOL BOOL BOOL BOOL BOOL BOOL BOOL 500 Publicación 1756-RM003K-ES-P – Julio 2008 Instrucciones especiales (FBC, DDT, DTR, PID) Capítulo 13 Mnemónico: .DVPA .PVLA .PVHA Tipo de datos BOOL BOOL BOOL Descripción la desviación tiene alarma alta (0=no; 1=sí) PV tiene alarma baja (0=no; 1=sí) PV tiene alarma alta (0=no; 1=sí) Descripción: La instrucción PID típicamente recibe la variable del proceso (PV) desde un módulo de entrada analógico y modula una salida de variable de control (CV) en un módulo de salidas analógicas a fin de mantener la variable del proceso en el punto de ajuste deseado. El bit .EN indica el estado de ejecución. El bit .EN se establece cuando la condición de entrada del renglón cambia de falso a verdadero. El bit .EN se borra cuando la condición de entrada del renglón se hace falsa. La instrucción PID no usa el bit .DN. La instrucción PID se ejecuta en cada escán, siempre que la condición de entrada de renglón sea verdadera. bit .EN estado de renglón ejecución de la instrucción PID Indicadores de estado aritmético: 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 Código de fallo 35 36 Publicación 1756-RM003K-ES-P – Julio 2008 501 Capítulo 13 Instrucciones especiales (FBC, DDT, DTR, PID) Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción Acción La condición de salida de renglón se establece como Ninguna. falsa. La condición de salida de renglón se establece como falsa. La instrucción se ejecuta. La condición de salida de renglón se establece como verdadera. EnableIn se establece n. a. EnableIn siempre se establece. La instrucción se ejecuta. ejecución de la instrucción post-escán La instrucción ejecuta el lazo PID. La instrucción ejecuta el lazo PID. La condición de salida de renglón se establece como Ninguna. falsa. n. a. n. a. Configure una instrucción PID Después de introducir la instrucción PID y especificar la estructura de PID, se usan las fichas de configuración para especificar cómo debe funcionar la instrucción PID. Haga clic aquí para configurar la instrucción PID 502 Publicación 1756-RM003K-ES-P – Julio 2008 Instrucciones especiales (FBC, DDT, DTR, PID) Capítulo 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 polarización 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 acción integral (minutos por repetición). 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 acción 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 están seleccionados. Publicación 1756-RM003K-ES-P – Julio 2008 503 Capítulo 13 Instrucciones especiales (FBC, DDT, DTR, PID) Especifique la configuración 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 términos (P, I y D). Control action Derivative of Seleccione ya sea E=PV-SP o E=SP-PV para la acción 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 rápidas 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 actualización (.UPD) para la instrucción. Introduzca un límite alto para la variable de control (.MAXO). Introduzca un límite bajo para la variable de control (.MINO). Introduzca un valor de banda muerta (.DB). Habilite o inhabilite esta selección (.NDF). Habilite o inhabilite esta selección (.NOBC). Habilite o inhabilite esta selección (.NOZC). Habilite o inhabilite esta selección (.PVT). Habilite o inhabilite esta selección (.CL). Si el lazo en cascada está habilitado, seleccione esclavo o maestro (.CT). Especificación 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 desviación positiva (.DVP). Introduzca un valor de desviación negativa (.DVN). Introduzca un valor de banda muerta de alarma de desviación (.DVDB). 504 Publicación 1756-RM003K-ES-P – Julio 2008 Instrucciones especiales (FBC, DDT, DTR, PID) Capítulo 13 Especificación 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 máximo (.MAXI) que sea igual al valor máximo sin escalado recibido desde el canal de entrada analógico para el valor PV. Introduzca un valor VP mínimo (.MINI) que sea igual al valor mínimo sin escalado recibido desde el canal de entrada analógico para el valor PV. Introduzca el valor máximo de unidades de ingeniería correspondiente a .MAXI (.MAXS) Introduzca el valor mínimo de unidades de ingeniería correspondiente a .MINI (.MINS) Introduzca un valor de CV máximo correspondiente al 100% (.MAXCV). Introduzca un valor de CV mínimo correspondiente al 0% (.MINCV). Introduzca un valor retenido máximo (.MAXTIE) que sea igual al valor máximo sin escalado recibido desde el canal de entrada analógico para el valor retenido. Introduzca un valor retenido mínimo (.MINTIE) que sea igual al valor mínimo sin escalado recibido desde el canal de entrada analógico para el valor retenido. Si usted cambia las constantes de escalado durante el modo de marcha, desactívelo para reinicializar valores internos de desactivación 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 régimen de flujo/nivel de fluido. punto de ajuste + error ecuación PID régimen 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 más alto que el punto de ajuste, la ecuación PID aumenta la variable de control y causa que se abra la válvula de salida del tanque, reduciendo así el nivel del tanque. Publicación 1756-RM003K-ES-P – Julio 2008 505 Capítulo 13 Instrucciones especiales (FBC, DDT, DTR, PID) La ecuación PID usada en la instrucción PID es una ecuación de forma posicional con la opción de usar ganancias independientes o dependientes. Al usar ganancias independientes, las ganancias proporcional, integral y derivativa sólo afectan sus respectivos términos proporcional, integral o derivativo específicos. Al usar ganancias dependientes, la ganancia proporcional es reemplazada con una ganancia de controlador que afecta los tres términos. Usted puede usar cualquier forma de ecuación para realizar el mismo tipo de control. Los dos tipos de ecuación se proporcionan simplemente para permitirle usar el tipo de ecuación con el que usted esté más familiarizado. Opción de ganancia Ganancias dependientes (estándar ISA) Derivada de error (E) t Ecuación 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 Publicación 1756-RM003K-ES-P – Julio 2008 Instrucciones especiales (FBC, DDT, DTR, PID) Capítulo 13 Donde: Variable KP Descripción ganancia proporcional (sin unidades) Kp = Kc sin unidades Ki ganancia integral (segundos -1) Para convertir entre Ki (ganancia integral) y Ti (tiempo de acción integral), use: KC K i = ---------60 T i Kd ganancia derivativa (segundos) Para convertir entre Kd (ganancia derivativa) y Td (tiempo de acción derivada), use: Kd = Kc (Td) 60 KC Ti Td SP PV E BIAS VC dt ganancia de controlador (sin unidades) tiempo de acción integral (minutos/repetición) tiempo de acción derivada (minutos) punto de ajuste variable de proceso error [(SP-PV) o (PV-SP)] ganancia anticipativa o polarización variable de control tiempo de actualización del lazo Si no desea usar un término particular de la ecuación PID, simplemente establezca su ganancia en cero. Por ejemplo, si no desea acción derivativa, establezca Kd o Td igual a cero. Bloqueo de acción integral y transferencia sin perturbaciones de manual a automático La instrucción PID evita automáticamente una acción integral de restablecimiento al evitar que el término integral se acumule cada vez que la salida CV llega a sus valores máximos o mínimos, según lo establecido por .MAXO y .MINO. El término integral acumulado permanece congelado hasta que la salida CV cae por debajo de su límite máximo o supera su límite mínimo. Seguidamente se reanuda automáticamente la acumulación integral normal. Publicación 1756-RM003K-ES-P – Julio 2008 507 Capítulo 13 Instrucciones especiales (FBC, DDT, DTR, PID) La instrucción PID acepta dos modos manuales de control: Modo manual de control manual de software (.SWM) Descripción también 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 instrucción PID se escala al 0 - 100% según los valores de .MINTIE y .MAXTIE y se utiliza como la salida del lazo. La entrada retenida generalmente viene desde la salida de una estación manual/automática 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 están establecidos. La instrucción PID también proporciona automáticamente transferencias sin perturbaciones desde el modo manual de software o desde el modo manual a automático. La instrucción PID vuelve a calcular en base a datos originales el valor del término de acumulación 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 automático, la salida CV comienza desde el valor retenido o salida establecida, y no ocurre ninguna “perturbación” en el valor de salida. La instrucción PID también puede proporcionar automáticamente una transferencia sin perturbaciones de manual a automático incluso si no se usa el control integral (es decir, Ki = 0). En este caso, la instrucción modifica el término .BIAS para hacer que la salida CV rastree la salida establecida o los valores retenidos. Al reanudarse el control automático, el término .BIAS mantendrá su valor más reciente. Usted puede inhabilitar el cálculo en base a datos originales del término .BIAS con sólo establecer el bit .NOBC en la estructura de datos PID. Tenga en cuenta que si establece .NOBC como verdadero, la instrucción PID ya no proporciona una transferencia sin perturbaciones de manual a automático cuando no se usa control integral. Temporización de la instrucción PID La instrucción PID y el muestreo de la variable del proceso necesitan actualizarse periódicamente. Este tiempo de actualización está relacionado con el proceso físico que usted está controlando. Para lazos muy lentos como, por ejemplo, lazos de temperatura, un período de una actualización por segundo o incluso un período 508 Publicación 1756-RM003K-ES-P – Julio 2008 Instrucciones especiales (FBC, DDT, DTR, PID) Capítulo 13 mayor, generalmente es suficiente para obtener un buen control. Para lazos algo más rápidos, tales como lazos de presión o flujo, se puede requerir períodos de actualización como de 250 milisegundos. Sólo en raras ocasiones, como en el caso de control de tensión mecánica o carrete desbobinador, se requieren períodos de actualización de lazo de 10 milisegundos o menores. Puesto que la instrucción PID usa una base de tiempo para su cálculo, usted necesita sincronizar la ejecución de esta instrucción con el muestreo de la variable del proceso (PV). La manera más fácil de ejecutar la instrucción PID es poner la instrucción PID en una tarea periódica. Establezca el tiempo de actualización de lazo (.UPD) igual al régimen de la tarea periódica para asegurarse de que la instrucción PID se ejecute en cada escán de la tarea periódica. Lógica de escalera de relés 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 periódica, asegúrese de que la entrada analógica empleada para la variable del proceso se actualice con el procesador a un régimen considerablemente más rápido que el régimen de la tarea periódica. Idealmente, la variable del proceso debe enviarse al procesador a un régimen por lo menos de cinco a diez veces mayor que el régimen de la tarea periódica. Esto minimiza la diferencia de tiempo entre las muestras de la variable del proceso y la ejecución del lazo PID. Por ejemplo, si el lazo PID es una tarea periódica de 250 milisegundos, use un tiempo de actualización de lazo de 250 milisegundos (.UPD = .25) y configure el módulo de entrada analógica para producir datos por lo menos cada 25 ó 50 milisegundos. Publicación 1756-RM003K-ES-P – Julio 2008 509 Capítulo 13 Instrucciones especiales (FBC, DDT, DTR, PID) Otro método algo menos exacto de ejecutar una instrucción PID consiste en colocar la instrucción en una tarea continua y usar un bit de temporizador expirado para activar la ejecución de la instrucción PID. Lógica de escalera de relés 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 método, el tiempo de actualización de lazo de la instrucción PID debe establecerse igual que el valor prefijado en el temporizador. Igual que cuando se usa una tarea periódica, usted debe establecer el módulo de entrada analógica para producir la variable del proceso a un régimen considerablemente mayor que el régimen de actualización de lazo. Usted sólo debe usar el método de temporización de ejecución PID para lazos cuyos tiempos de actualización de lazo sean por lo menos varias veces mayores que el tiempo de ejecución más largo posible de la tarea continua. La manera más exacta de ejecutar una instrucción PID es usar la función de muestreo en tiempo real (RTS) de los módulos de entradas analógicas 1756. El módulo de entradas analógicas muestrea sus entradas según el régimen de muestreo en tiempo real que usted haya establecido al momento de configurar el módulo. Cuando el período 510 Publicación 1756-RM003K-ES-P – Julio 2008 Instrucciones especiales (FBC, DDT, DTR, PID) Capítulo 13 de muestreo en tiempo real del módulo expira, éste actualiza sus entradas y actualiza un sello de hora continuo (representado por el miembro RolllingTimestamp de la estructura de entradas analógicas) producido por el módulo. 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 instrucción PID. Puesto que el muestreo de la variable del proceso es activado por el módulo de entradas analógicas, el tiempo de muestreo de entrada es muy exacto, y el tiempo de actualización de lazo usado por la instrucción PID debe establecerse igual al tiempo RTS del módulo de entradas analógicas. Para asegurarse de no omitir muestreos de la variable del proceso, ejecute la lógica a un régimen más rápido que el tiempo RTS. Por ejemplo, si el tiempo RTS es 250 ms, puede colocar la lógica PID en una tarea periódica que se ejecute cada 100 ms para asegurarse de no omitir nunca un muestreo. Incluso podría colocar la lógica PID en una tarea continua, siempre y cuando se asegure de que la lógica se actualizaría más frecuentemente que una vez cada 250 milisegundos. A continuación se muestra un ejemplo del método de ejecución RTS. La ejecución de la instrucción PID depende de la recepción de datos de entradas analógicas. Si el módulo de entradas analógicas 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 analógica PV y, si muestra un estado incorrecto, fuerce el lazo al modo manual de software y ejecute el lazo en cada escán. Así el operador podrá cambiar manualmente la salida del lazo PID. Lógica de escalera de relés Publicación 1756-RM003K-ES-P – Julio 2008 511 Capítulo 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 instrucción PID puede interactuar con los módulos de salidas analógicas 1756 para admitir un reinicio sin perturbaciones cuando el controlador cambia del modo de programación al modo de marcha, o cuando se enciende el controlador. Cuando el módulo de salidas analógicas 1756 pierde comunicación con el controlador o detecta que el controlador está en el modo de programación, el módulo de salidas analógicas establece sus salidas según los valores de condición de fallo que usted especificó cuando configuró el módulo. Seguidamente, cuando el controlador regresa al modo de marcha o vuelve a establecer comunicación con el módulo de salidas analógicas, usted puede disponer que la instrucción PID restablezca automáticamente su salida de variable de control igual a la salida analógica, mediante el bit Inhold y los parámetros Inhold Value en la instrucción PID. 512 Publicación 1756-RM003K-ES-P – Julio 2008 Instrucciones especiales (FBC, DDT, DTR, PID) Capítulo 13 Para establecer un reinicio sin problemas: Haga lo siguiente Configure el canal del módulo de salidas analógicas 1756 que recibe la variable de control proveniente de la instrucción PID Detalles: Marque la casilla de verificación de retener para inicialización (“hold for initialization”) en la página de propiedades del canal específico del módulo. Esto indicará al módulo de salidas analógicas que cuando el controlador regrese al modo de marcha o vuelva a establecer comunicación con el módulo, el módulo debe retener la salida analógica 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 término .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 instrucción PID El módulo de salidas analógicas 1756 retorna dos valores por cada canal en su estructura de datos de entrada. El bit de estado en retención (.Ch2InHold, por ejemplo) cuando es verdadero, indica que el canal de salida analógica está reteniendo su valor. El valor de relectura de datos (.Ch2Data, por ejemplo) muestra el valor de salida actual en unidades de ingeniería. Introduzca el tag del bit de estado en retención como parámetro InHold de la instrucción PID. Introduzca el tag del valor de relectura de datos como el parámetro Inhold Value. Cuando el bit Inhold se hace verdadero, la instrucción 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 módulo de salidas analógicas recibe su valor de vuelta desde el controlador, éste desactiva el bit de estado InHold, lo cual permite que la instrucción PID comience normalmente a realizar el control. Suavizado derivativo El cálculo 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 término derivativo causados por ruido en la PV. Este suavizado se hace más 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 opción sin suavizado derivativo (“No derivative smoothing”) en la ficha Configuration o establezca el bit .NDF en la estructura PID. Publicación 1756-RM003K-ES-P – Julio 2008 513 Capítulo 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 también 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 instrucción use el error para fines de cálculo 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 función de cruce por cero; para ello seleccione la opción “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 límite de salida Usted puede establecer un límite de salida (porcentaje de salida) en la salida de control. Cuando la instrucción detecta que la salida ha llegado a un límite, establece un bit de alarma y evita que la salida exceda el límite inferior o superior. 514 Publicación 1756-RM003K-ES-P – Julio 2008 master.Instrucciones especiales (FBC.0. En este caso. El lazo esclavo convierte automáticamente la salida del lazo maestro en las unidades de ingeniería correctas para el punto de ajuste del lazo esclavo. PID (slave.cv_slave. DTR. 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.cv_master. DDT.0. La ganancia anticipativa a menudo se usa para controlar procesos con un retraso de transporte.BIAS en el valor ganancia anticipativa/ polarización de la instrucción PID.0. un valor de ganancia anticipativa que representa “agua fría vertida en una mezcla tibia” podría reforzar el valor de salida más rápidamente que si se espera que la variable del proceso cambie como resultado de la mezcla.MINS. Por ejemplo.0). con base en los valores del lazo esclavo para .pv_slave. Lógica de escalera de relés Texto estructurado PID(master. Publicación 1756-RM003K-ES-P – Julio 2008 515 .0). El valor de ganancia anticipativa representa una perturbación alimentada en la instrucción PID antes de que la perturbación tenga oportunidad de cambiar la variable de proceso. el valor de polarización puede ajustarse para mantener la salida en el rango requerido a fin de mantener PV cerca del punto de ajuste. PID) Capítulo 13 Ganancia anticipativa o polarización de salida Usted puede establecer ganancia anticipativa a una perturbación del sistema alimentando el valor .MAXS y .0. Un valor de polarización generalmente se usa cuando no se usa control integral.pv_master.0. tieback_2.0).0. Para este parámetro de multiplicación destination source A source B Introduzca este valor valor controlado valor no controlado relación 516 Publicación 1756-RM003K-ES-P – Julio 2008 . DDT.0.Capítulo 13 Instrucciones especiales (FBC.cv_2.sp := uncontrolled_flow * ratio PID(pid_2. PID) Control de relación Usted puede mantener la relación entre dos valores usando estos parámetros: • valor no controlado • valor controlado (el punto de ajuste resultante que se usará para la instrucción PID) • relación entre estos dos valores Lógica de escalera de relés Texto estructurado pid_2.pv_2. DTR. % de polarización de salida Convierte unidades de ingeniería a % Error X 100 maxs-mins Lazo esclavo PV Acción de control Convierte % a unidades (SP) de ingeniería (Master. DTR. PID) Capítulo 13 Teoría de PID Las siguientes figuras muestran el flujo del proceso para una instrucción PID. unidades y modos que pertenecen al lazo esclavo designado.Out) Sí Convierte de binario a unidades de ingeniería (PV-mini)(maxs-mins) + mins maxi-mini SP PV Convierte unidades de ingeniería a % Modo A/M de software Auto Manual Manual Los ítems referidos en este cuadro son parámetros. DDT.Instrucciones especiales (FBC. Proceso PID SP Mostrado como EU Software A/M o bien Modo de estación A/M Auto + - Error mostrado como EU Acción de control SP-PV (Error) -1 Convierte unidades de ingeniería a % % de polarización de salida Modo A/M de software Cálculo PID (Out%) + Auto Auto Manual Modo de estación A/M % salida establecida Convierte % a unidades CV SP Manual PVT No PV-SP Error X 100 maxs-mins % salida establecida Límite de salida Manual Salida (CV) mostrada como % de escalado EU CV%(maxcv-mincv) + mincv 100 CV Sí Convierte de binario a unidades de ingeniería (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 estación A/M Auto SP + - Acción de control SP-PV (Error) -1 Convierte unidades de ingeniería a % % de polarización de salida Cálculo 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 estación A/M Límite de salida % salida establecida (Master.Out) SP-PV + -1 X (maxs-mins) + mins 100 Cálculo PID + Modo A/M de software Auto Auto Manual Modo de estación A/M Límite 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 ingeniería (PV-mini)(maxs-mins) + mins maxi-mini PV Publicación 1756-RM003K-ES-P – Julio 2008 517 . DTR. PID) Notas: 518 Publicación 1756-RM003K-ES-P – Julio 2008 . DDT.Capítulo 13 Instrucciones especiales (FBC. ATN. ASN ASIN(1) 529 Hallar el arco coseno de un valor. y la instrucción requiere más tiempo para ejecutarse. 519Publicación 1756-RM003K-ES-P – Julio 2008 519 . Verifique el bit de estado de overflow (S:V) para determinar si se truncó el resultado. ACS. Las instrucciones trigonométricas evalúan las operaciones aritméticas mediante operaciones trigonométricas. pero puede producirse pérdida de exactitud y error de redondeo. COS 523 Hallar la tangente de un valor. ASN. los tipos de datos que aparecen en letras negritas indican tipos de datos óptimos. TAN 526 Hallar el arco seno de un valor. ASIN. COS. Las instrucciones se ejecutan más rápidamente y requieren menos memoria si todos los operandos de instrucción usan el mismo tipo de datos óptimos. Usted puede mezclar diferentes tipos de datos. típicamente DINT o REAL. Use esta instrucción SIN Disponible en estos lenguajes lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones lógica de escalera de relés texto estructurado bloque de funciones Vea la página 520 Hallar el coseno de un valor. ACS ACOS(1) 532 Hallar el arco tangente de un valor.Capítulo 14 Instrucciones trigonométricas (SIN. ACOS. TAN. Para las instrucciones de lógica de escalera de relés. ATAN) Introducción Si desea Hallar el seno de un valor. ATN ATAN(1) 535 (1) Texto estructurado solamente. Si se borra. Consulte el Apéndice C. COS. ATN. Resultado de la instrucción matemática. ATAN) Seno (SIN) Operandos: La instrucción SIN halla el seno del valor de origen (en radianes) y almacena el resultado en Destination. ACOS.Capítulo 14 Instrucciones trigonométricas (SIN. ASIN. Esta función calcula el seno de source y almacena el resultado en dest. 520 Publicación 1756-RM003K-ES-P – Julio 2008 . Lógica de escalera de relés Operando Source Tipo SINT INT DINT REAL Destination SINT INT DINT REAL tag tag para almacenar el resultado Formato inmediato tag Descripción hallar el seno de este valor Texto estructurado dest := SIN(source). Bloque de funciones Operando SIN tag Tipo FBD_MATH_ADVANCED Formato estructura Descripción estructura SIN Estructura FBD_MATH_ADVANCED Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. Source REAL Entrada a la instrucción matemática. la instrucción no se ejecuta y las salidas no se actualizan. TAN. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. Use SIN como una función. Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripción La instrucción produjo un resultado válido. Se establecen indicadores de estado aritmético para esta salida. La opción predeterminada es establecido. ACS. ASN. post-escán Ninguna. ACOS. La condición de salida de renglón se establece como verdadera. COS.Instrucciones trigonométricas (SIN. Ninguna.4 (-2πx215) y menor o igual que 205887. La condición de salida de renglón se establece como falsa. Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. La instrucción se ejecuta. ATAN) Capítulo 14 Descripción: Source debe ser mayor o igual que -205887. post-escán La condición de salida de renglón se establece como falsa. El valor resultante en Destination siempre es mayor o igual que -1 y menor o igual que 1. EnableOut se establece. ASIN.4 (2πx215). ACS. TAN. EnableOut se borra. Ninguna. Publicación 1756-RM003K-ES-P – Julio 2008 521 . ASN. ATN. El controlador calcula el seno de Source y coloca el resultado en Destination. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. Condiciones de fallo: ninguna Ejecución: Lógica de escalera de relés Condición: preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción: La condición de salida de renglón se establece como falsa. ASIN. Bloque de funciones 522 Publicación 1756-RM003K-ES-P – Julio 2008 . ACOS. ASN. COS. TAN. ATAN) Ejemplo: Calcule el seno de value y coloque el resultado en result. Lógica de escalera de relés Texto estructurado result := SIN(value). ATN. ACS.Capítulo 14 Instrucciones trigonométricas (SIN. ASIN. ASN. Bloque de funciones Operando COS tag Tipo FBD_MATH_ADVANCED Formato estructura Descripción estructura COS Publicación 1756-RM003K-ES-P – Julio 2008 523 . Esta función calcula el coseno de source y almacena el resultado en dest. Use COS como función.Instrucciones trigonométricas (SIN. ACOS. COS. ATAN) Capítulo 14 Coseno (COS) Operandos: La instrucción COS halla el coseno del valor de origen (en radianes) y almacena el resultado en Destination. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. Consulte el Apéndice C. ATN. ACS. Lógica de escalera de relés Operando Source Tipo SINT INT DINT REAL Destination SINT INT DINT REAL tag tag para almacenar el resultado Formato inmediato tag Descripción hallar el coseno de este valor Texto estructurado dest := COS(source). TAN. ATAN) Estructura FBD_MATH_ADVANCED Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. Se establecen indicadores de estado aritmético para esta salida. La opción predeterminada es establecido. La condición de salida de renglón se establece como verdadera. ASIN. ACOS. ATN.4 (-2πx215) y menor o igual que 205887. post-escán La condición de salida de renglón se establece como falsa. Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripción La instrucción produjo un resultado válido. 524 Publicación 1756-RM003K-ES-P – Julio 2008 . Si se borra. Source REAL Entrada a la instrucción matemática. Resultado de la instrucción matemática. Descripción: Source debe ser mayor o igual que -205887. El controlador calcula el coseno de Source y coloca el resultado en Destination. COS. El valor resultante en Destination siempre es mayor o igual que -1 y menor o igual que 1.4 (2πx215). ACS. Condiciones de fallo: ninguna Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. la instrucción no se ejecuta y las salidas no se actualizan. TAN. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados.Capítulo 14 Instrucciones trigonométricas (SIN. ASN. La condición de salida de renglón se establece como falsa. ACS. Ninguna. La instrucción se ejecuta. ASN. ASIN. post-escán Ninguna. Ninguna. EnableOut se establece. EnableOut se borra. Bloque de funciones Publicación 1756-RM003K-ES-P – Julio 2008 525 . COS.Instrucciones trigonométricas (SIN. ATAN) Capítulo 14 Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. ATN. TAN. Ejemplo: Calcule coseno de value y coloque el resultado en result. Lógica de escalera de relés Texto estructurado result := COS(value). ACOS. Esta función calcula la tangente de source y almacena el resultado en dest. Bloque de funciones Operando TAN tag Tipo FBD_MATH_ADVANCED Formato estructura Descripción Estructura TAN 526 Publicación 1756-RM003K-ES-P – Julio 2008 . ATAN) Tangente (TAN) Operandos: La instrucción TAN halla la tangente del valor de origen (en radianes) y almacena el resultado en Destination. Consulte el Apéndice C. ACS.Capítulo 14 Instrucciones trigonométricas (SIN. ASIN. ACOS. TAN. Use TAN como función. ASN. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. ATN. COS. Lógica de escalera de relés Operando Source Tipo SINT INT DINT REAL Destination SINT INT DINT REAL tag tag para almacenar el resultado Formato inmediato tag Descripción halla la tangente de este valor Texto estructurado dest := TAN(source). Condiciones de fallo: ninguna Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa.7 (2πx214). TAN. La opción predeterminada es establecido. Descripción: Source debe ser mayor o igual que -102943. EnableOut se borra. La condición de salida de renglón se establece como verdadera. post-escán Ninguna. ACOS. COS. Ninguna. la instrucción no se ejecuta y las salidas no se actualizan. Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripción La instrucción produjo un resultado válido. ACS.7 (-2πx214) y menor o igual que 102943.Instrucciones trigonométricas (SIN. Ninguna. ASN. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. post-escán La condición de salida de renglón se establece como falsa. El controlador calcula la tangente de Source y coloca el resultado en Destination. La instrucción se ejecuta. Se establecen indicadores de estado aritmético para esta salida. La condición de salida de renglón se establece como falsa. Resultado de la instrucción matemática. Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. Si se borra. ATAN) Capítulo 14 Estructura FBD_MATH_ADVANCED Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. EnableOut se establece. Publicación 1756-RM003K-ES-P – Julio 2008 527 . Source REAL Entrada a la instrucción matemática. ASIN. ATN. Capítulo 14 Instrucciones trigonométricas (SIN. ACS. ATAN) Ejemplo: Calcule la tangente de value y coloque el resultado en result. ASN. TAN. ASIN. Bloque de funciones 528 Publicación 1756-RM003K-ES-P – Julio 2008 . ATN. Lógica de escalera de relés Texto estructurado result := TAN(value). ACOS. COS. la instrucción no se ejecuta y las salidas no se actualizan. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. ATAN) Capítulo 14 Arco seno (ASN) Operandos: La instrucción ASN halla el arco seno del valor de Source y almacena el resultado en Destination (en radianes). La opción predeterminada es establecido. ACS. Source REAL Entrada a la instrucción matemática. ASIN. Resultado de la instrucción matemática. Consulte el Apéndice C. Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripción La instrucción produjo un resultado válido. Publicación 1756-RM003K-ES-P – Julio 2008 529 .Instrucciones trigonométricas (SIN. Lógica de escalera de relés Operando Source Tipo SINT INT DINT REAL Destination SINT INT DINT REAL tag tag para almacenar el resultado Formato inmediato tag Descripción hallar el arco seno de este valor Texto estructurado dest := ASIN(source). Use ASIN como función. Bloque de funciones Operando ASN tag Tipo FBD_MATH_ADVANCED Formato estructura Descripción estructura ASN Estructura FBD_MATH_ADVANCED Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. ASN. ATN. COS. Se establecen indicadores de estado aritmético para esta salida. Si se borra. Esta función calcula el arco seno de source y almacena el resultado en dest. TAN. ACOS. La instrucción se ejecuta. ATAN) Descripción: Source debe ser mayor o igual que -1 y menor o igual que 1. El controlador calcula el arco seno de Source y coloca el resultado en Destination. ACOS. ASIN. Ninguna. Condiciones de fallo: ninguna Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. COS. La condición de salida de renglón se establece como falsa. 530 Publicación 1756-RM003K-ES-P – Julio 2008 . ACS. Ninguna. post-escán La condición de salida de renglón se establece como falsa.141593). TAN. EnableOut se establece. post-escán Ninguna. La condición de salida de renglón se establece como verdadera. ASN.Capítulo 14 Instrucciones trigonométricas (SIN. ATN. EnableOut se borra. El valor resultante en Destination siempre es mayor o igual que -π/2 y menor o igual que π/2 (donde π = 3. Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. Instrucciones trigonométricas (SIN. TAN. ATAN) Capítulo 14 Ejemplo: Calcule el arco seno de value y coloque el resultado en result. Lógica de escalera de relés Texto estructurado result := ASIN(value). ACS. ASIN. COS. ACOS. ATN. Bloque de funciones Publicación 1756-RM003K-ES-P – Julio 2008 531 . ASN. Consulte el Apéndice C. COS. Resultado de la instrucción matemática. TAN. Use ACOS como función. ATAN) Arco coseno (ACS) Operandos: La instrucción ACS halla el arco coseno del valor de Source y almacena el resultado en Destination (en radianes). la instrucción no se ejecuta y las salidas no se actualizan. Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripción La instrucción produjo un resultado válido. ASIN. Se establecen indicadores de estado aritmético para esta salida. ATN. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. Bloque de funciones Operando ACS tag Tipo FBD_MATH_ADVANCED Formato estructura Descripción estructura ACS Estructura FBD_MATH_ADVANCED Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada.Capítulo 14 Instrucciones trigonométricas (SIN. Si se borra. ACOS. La opción predeterminada es establecido. Esta función calcula el arco coseno de source y almacena el resultado en dest. ACS. Source REAL Entrada a la instrucción matemática. Lógica de escalera de relés Operando Source Tipo SINT INT DINT REAL Destination SINT INT DINT REAL tag tag para almacenar el resultado Formato inmediato tag Descripción hallar el arco coseno de este valor Texto estructurado dest := ACOS(source). 532 Publicación 1756-RM003K-ES-P – Julio 2008 . ASN. ATN. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. TAN. La instrucción se ejecuta. La condición de salida de renglón se establece como falsa. El controlador calcula el arco coseno de Source y coloca el resultado en Destination.141593). ASIN. Condiciones de fallo: ninguna Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. Ninguna.Instrucciones trigonométricas (SIN. COS. post-escán La condición de salida de renglón se establece como falsa. EnableOut se borra. ASN. ATAN) Capítulo 14 Descripción: Source debe ser mayor o igual que -1 y menor o igual que 1. post-escán Ninguna. ACOS. Ninguna. El valor resultante en Destination siempre es mayor o igual que 0 y menor o igual que π (donde π = 3. EnableOut se establece. Publicación 1756-RM003K-ES-P – Julio 2008 533 . Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. La condición de salida de renglón se establece como verdadera. ACS. ASIN. TAN. ATN.Capítulo 14 Instrucciones trigonométricas (SIN. COS. ATAN) Ejemplo: Calcule el arco coseno de value y coloque el resultado en result. Bloque de funciones 534 Publicación 1756-RM003K-ES-P – Julio 2008 . ACOS. Lógica de escalera de relés Texto estructurado result := ACOS(value). ACS. ASN. Esta función calcula el arco tangente de source y almacena el resultado en dest. COS. Consulte el Apéndice C. Publicación 1756-RM003K-ES-P – Julio 2008 535 . ASN. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. ASIN. la instrucción no se ejecuta y las salidas no se actualizan. Use ATAN como función. Bloque de funciones Operando ATN tag Tipo FBD_MATH_ADVANCED Formato estructura Descripción estructura ATN Estructura FBD_MATH_ADVANCED Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. ATN. Se establecen indicadores de estado aritmético para esta salida. ACOS. TAN. Lógica de escalera de relés Operando: Source Tipo SINT INT DINT REAL Destination SINT INT DINT REAL tag tag para almacenar el resultado Formato inmediato tag Descripción hallar el arco tangente de este valor Texto estructurado dest := ATAN(source). Source REAL Entrada a la instrucción matemática. ACS. ATAN) Capítulo 14 Arco tangente (ATN) Operandos: La instrucción ATN halla el arco tangente del valor de Source y almacena el resultado en Destination (en radianes). Si se borra. La opción predeterminada es establecido. Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripción La instrucción produjo un resultado válido.Instrucciones trigonométricas (SIN. Resultado de la instrucción matemática. La instrucción se ejecuta.141593). 536 Publicación 1756-RM003K-ES-P – Julio 2008 . post-escán La condición de salida de renglón se establece como falsa. ATN. Ninguna. post-escán Ninguna. COS. Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. ACOS. ASIN. EnableOut se borra. ACS. La condición de salida de renglón se establece como falsa. ATAN) Descripción: El valor resultante en Destination siempre es mayor o igual que -π/2 y menor o igual que π/2 (donde π = 3. TAN. ASN. Ninguna.Capítulo 14 Instrucciones trigonométricas (SIN. Condiciones de fallo: ninguna Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. EnableOut se establece. El controlador calcula el arco tangente de Source y coloca el resultado en Destination. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. La condición de salida de renglón se establece como verdadera. ASN. ACS. Lógica de escalera de relés Texto estructurado result := ATAN(value). ACOS. ATAN) Capítulo 14 Ejemplo: Calcule el arco tangente de value y coloque el resultado en result. ATN.Instrucciones trigonométricas (SIN. TAN. Bloque de funciones Publicación 1756-RM003K-ES-P – Julio 2008 537 . COS. ASIN. ASN. ATN. ACS. ASIN. TAN.Capítulo 14 Instrucciones trigonométricas (SIN. ACOS. ATAN) Notas: 538 Publicación 1756-RM003K-ES-P – Julio 2008 . COS. Capítulo 15 Instrucciones matemáticas avanzadas (LN. los tipos de datos que aparecen en negrita indican tipos de datos óptimos. Para las instrucciones de lógica de escalera de relés. Las instrucciones se ejecutan más rápidamente y requieren menos memoria si todos los operandos de instrucción usan el mismo tipo de datos óptimos. XPY) Introducción Si desea Hallar el logaritmo natural de un valor. Verifique el bit S:V para determinar si se truncó el resultado. y la instrucción requiere más tiempo para ejecutarse. LOG. Las instrucciones matemáticas avanzadas incluyen estas instrucciones: Use esta instrucción LN Disponible en estos lenguajes lógica de escalera de relés texto estructurado bloque de funciones Vea la página 540 Hallar el logaritmo base 10 de un valor. pero puede producirse pérdida de exactitud y error de redondeo. XPY lógica de escalera de relés texto estructurado(1) bloque de funciones 546 (1) No hay una instrucción equivalente en texto estructurado. Use el operador en una expresión. 539Publicación 1756-RM003K-ES-P – Julio 2008 539 . Usted puede mezclar diferentes tipos de datos. LOG lógica de escalera de relés texto estructurado bloque de funciones 543 Elevar un valor a la potencia de otro valor. típicamente DINT o REAL. Consulte el Apéndice C. 540 Publicación 1756-RM003K-ES-P – Julio 2008 .Capítulo 15 Instrucciones matemáticas avanzadas (LN. XPY) Logaritmo natural (LN) Operandos: La instrucción LN halla el logaritmo natural de Source y almacena el resultado en Destination. Source REAL Entrada a la instrucción matemática. Lógica de escalera de relés Operando Source Tipo SINT INT DINT REAL Destination SINT INT DINT REAL tag tag para almacenar el resultado Formato inmediato tag Descripción hallar el logaritmo natural de este valor Texto estructurado dest := LN(source). Use LN como función. La opción predeterminada es establecido. Bloque de funciones Operando LN tag Tipo FBD_MATH_ADVANCED Formato estructura Descripción estructura LN Estructura FBD_MATH_ADVANCED Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. LOG. Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida Tipo de datos EnableOut BOOL Descripción La instrucción produjo un resultado válido. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. Esta función calcula el logaritmo natural de source y almacena el resultado en dest. Si se borra. la instrucción no se ejecuta y las salidas no se actualizan. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. La instrucción se ejecuta. EnableOut se establece. Ninguna. se establece el bit de estado de overflow (S:V). Publicación 1756-RM003K-ES-P – Julio 2008 541 . EnableOut se borra. El controlador calcula el logaritmo natural de Source y coloca el resultado en Destination.Instrucciones matemáticas avanzadas (LN. Condiciones de fallo: ninguna Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. La condición de salida de renglón se establece como falsa.72284. de lo contrario. XPY) Capítulo 15 Descripción: Source debe ser mayor o igual que cero. post-escán Ninguna. El valor Destination resultante es mayor o igual que -87.33655 y menor o igual que 88. La condición de salida de renglón se establece como verdadera. LOG. Ninguna. post-escán La condición de salida de renglón se establece como falsa. Bloque de funciones 542 Publicación 1756-RM003K-ES-P – Julio 2008 .Capítulo 15 Instrucciones matemáticas avanzadas (LN. LOG. Ejemplo de la lógica de escalera de relés Texto estructurado result := LN(value). XPY) Ejemplo: Calcule el logaritmo natural de value y coloque el resultado en result. Instrucciones matemáticas avanzadas (LN. Lógica de escalera de relés Operando Source Tipo SINT INT DINT REAL Destination SINT INT DINT REAL tag tag para almacenar el resultado Formato inmediato tag Descripción hallar el logaritmo de este valor Texto estructurado dest := LOG(source). Consulte el Apéndice C. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. Esta función calcula el logaritmo de source y almacena el resultado en dest. XPY) Capítulo 15 Logaritmo base 10 (LOG) Operandos: La instrucción LOG halla el logaritmo base 10 de Source y almacena el resultado en Destination. Use LOG como función. Bloque de funciones Operando LOG tag Tipo FBD_MATH_ADVANCED Formato estructura Descripción Estructura LOG Publicación 1756-RM003K-ES-P – Julio 2008 543 . LOG. Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripción La instrucción produjo un resultado válido. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. EnableOut se establece. post-escán La condición de salida de renglón se establece como falsa. La instrucción se ejecuta.Capítulo 15 Instrucciones matemáticas avanzadas (LN. Resultado de la instrucción matemática. Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. LOG. Descripción: Source debe ser mayor o igual que cero.92978 y menor o igual que 38. Condiciones de fallo: ninguna Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. 544 Publicación 1756-RM003K-ES-P – Julio 2008 . de lo contrario. El controlador calcula el logaritmo de Source y coloca el resultado en Destination. la instrucción no se ejecuta y las salidas no se actualizan. El valor Destination resultante es mayor o igual que -37. Source REAL Entrada a la instrucción matemática. XPY) Estructura FBD_MATH_ADVANCED Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. La opción predeterminada es establecido. Ninguna. Se establecen indicadores de estado aritmético para esta salida. post-escán Ninguna. Si se borra. La condición de salida de renglón se establece como falsa. Ninguna. se establece un bit de estado de overflow (S:V). EnableOut se borra.53184. La condición de salida de renglón se establece como verdadera. XPY) Capítulo 15 Ejemplo: Calcule el logaritmo de value y coloque el resultado en result. Lógica de escalera de relés Texto estructurado result := LOG(value).Instrucciones matemáticas avanzadas (LN. Bloque de funciones Publicación 1756-RM003K-ES-P – Julio 2008 545 . LOG. Capítulo 15 Instrucciones matemáticas avanzadas (LN. Lógica de escalera de relés 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 Descripción valor base Texto estructurado dest := sourceX ** sourceY. Bloque de funciones Operando XPY tag Tipo FBD_MATH Formato estructura Descripción estructura XPY 546 Publicación 1756-RM003K-ES-P – Julio 2008 . Consulte el Apéndice C. LOG. XPY) X a la potencia de Y (XPY) Operandos: La instrucción XPY eleva Source A (X) a la potencia de Source B (Y) y almacena el resultado en Destination. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. Use dos signos de multiplicación adyacentes “∗∗” como operador dentro de una expresión. Esta expresión eleva sourceX a la potencia de sourceY y almacena el resultado en dest. Instrucciones matemáticas avanzadas (LN. post-escán La condición de salida de renglón se establece como falsa. El controlador eleva Source X a la potencia de Source Y y coloca el resultado en Destination. Si se borra. Source Y debe ser un valor entero. Descripción: Si Source X es negativo. Se establecen indicadores de estado aritmético para esta salida. LOG. La condición de salida de renglón se establece como verdadera. la instrucción no se ejecuta y las salidas no se actualizan. Resultado de la instrucción matemática. XPY) Capítulo 15 Estructura FBD_MATH Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. Condiciones de fallo: Ocurrirá un fallo menor si Source X es negativo y Source Y no es un valor entero Tipo de fallo 4 Código de fallo 4 Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. Publicación 1756-RM003K-ES-P – Julio 2008 547 . La opción predeterminada es establecido. Válido = cualquier valor con punto flotante (coma flotante) Source Y REAL exponente Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripción La instrucción produjo un resultado válido. de lo contrario se producirá un fallo menor. La instrucción XPY usa este algoritmo: Destination = X**Y El controlador evalúa x0=1 y 0x=0. La condición de salida de renglón se establece como falsa. Source X REAL Valor base. XPY) Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna.Capítulo 15 Instrucciones matemáticas avanzadas (LN. Bloque de funciones 548 Publicación 1756-RM003K-ES-P – Julio 2008 . EnableOut se borra. post-escán Ninguna. Ninguna. LOG. La instrucción se ejecuta. Ninguna. Ejemplo: La instrucción XPY eleva value_1 a la potencia de value_2 y coloca el resultado en result. EnableOut se establece. Lógica de escalera de relés Texto estructurado result := (value_1 ∗∗ value_2). Usted puede mezclar diferentes tipos de datos. TOD. TRN. TOD lógica de escalera de relés bloque de funciones 556 Convertir un valor BCD en un valor entero. los tipos de datos que aparecen en negrita indican tipos de datos óptimos. RAD. Para las instrucciones de lógica de escalera de relés. Use esta instrucción DEG Disponible en estos lenguajes lógica de escalera de relés texto estructurado bloque de funciones Vea la página 550 Convertir grados en radianes. Las instrucciones de conversión matemática convierten valores. FRD lógica de escalera de relés bloque de funciones 559 Retirar la parte fraccionaria de un valor. Las instrucciones se ejecutan más rápidamente y requieren menos memoria si todos los operandos de instrucción usan el mismo tipo de datos óptimos. típicamente DINT o REAL. TRUNC) Introducción Si desea Convertir radianes en grados. FRD. 549Publicación 1756-RM003K-ES-P – Julio 2008 549 . TRN TRUNC(1) lógica de escalera de relés texto estructurado bloque de funciones 561 (1) Texto estructurado solamente. pero puede producirse pérdida de exactitud y error de redondeo. RAD lógica de escalera de relés texto estructurado bloque de funciones 553 Convertir un valor entero en un valor BCD.Capítulo 16 Instrucciones de conversión matemática (DEG. Verifique el bit S:V para determinar si se truncó el resultado. y la instrucción requiere más tiempo para ejecutarse. La opción predeterminada es establecido. TRN. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. Si se borra. la instrucción no se ejecuta y las salidas no se actualizan. Se establecen indicadores de estado aritmético para esta salida. Bloque de funciones Operando DEG tag Tipo FBD_MATH_ADVANCED Formato estructura Descripción Estructura DEG Estructura FBD_MATH_ADVANCED Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. 550 Publicación 1756-RM003K-ES-P – Julio 2008 .Capítulo 16 Instrucciones de conversión matemática (DEG. Consulte el Apéndice C. Resultado de la instrucción de conversión. Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripción La instrucción produjo un resultado válido. Source REAL Entrada a la instrucción de conversión. Esta función convierte source en grados y almacena el resultado en dest. RAD. FRD. Lógica de escalera de relés Operando Source Tipo SINT INT DINT REAL Destination SINT INT DINT REAL tag tag para almacenar el resultado Formato inmediato tag Descripción valor que se va a convertir en grados Texto estructurado dest := DEG(source). TRUNC) Grados (DEG) Operandos: La instrucción DEG convierte Source (radianes) en grados y almacena el resultado en Destination. Use DEG como función. TOD. Condiciones de fallo: ninguna Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. FRD.Instrucciones de conversión matemática (DEG. EnableOut se borra. El controlador convierte Source en grados y coloca el resultado en Destination. La condición de salida de renglón se establece como falsa. post-escán La condición de salida de renglón se establece como falsa. post-escán Ninguna. La condición de salida de renglón se establece como verdadera. EnableOut se establece. Ninguna. La instrucción se ejecuta.141593) Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. TOD. TRN. Ninguna. RAD. TRUNC) Capítulo 16 Descripción: La instrucción DEG usa este algoritmo: Source*180/π (donde π = 3. Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. Publicación 1756-RM003K-ES-P – Julio 2008 551 . Bloque de funciones 552 Publicación 1756-RM003K-ES-P – Julio 2008 . RAD.Capítulo 16 Instrucciones de conversión matemática (DEG. TOD. TRUNC) Ejemplo: Convierta value en grados y coloque el resultado en result. Lógica de escalera de relés Texto estructurado result := DEG(value). FRD. TRN. Instrucciones de conversión matemática (DEG. Se establecen indicadores de estado aritmético para esta salida. la instrucción no se ejecuta y las salidas no se actualizan. Lógica de escalera de relés Operando Source Tipo SINT INT DINT REAL Destination SINT INT DINT REAL tag tag para almacenar el resultado Formato inmediato tag Descripción valor que se va a convertir en radianes Texto estructurado dest := RAD(source). FRD. TRN. Esta función convierte source a radianes y almacena el resultado en dest. Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripción La instrucción produjo un resultado válido. Consulte el Apéndice C. Publicación 1756-RM003K-ES-P – Julio 2008 553 . TOD. La opción predeterminada es establecido. TRUNC) Capítulo 16 Radianes (RAD) Operandos: La instrucción RAD convierte Source (grados) en radianes y almacena el resultado en Destination. RAD. Bloque de funciones Operando RAD tag Tipo FBD_MATH_ADVANCED Formato estructura Descripción estructura RAD Estructura FBD_MATH_ADVANCED Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. Use RAD como función. Resultado de la instrucción de conversión. Si se borra. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. Source REAL Entrada a la instrucción de conversión. TOD. La condición de salida de renglón se establece como verdadera. El controlador convierte Source en radianes y coloca el resultado en Destination. Ninguna. TRN. 554 Publicación 1756-RM003K-ES-P – Julio 2008 . TRUNC) Descripción: La instrucción RAD usa este algoritmo: Source*π/180 (donde π = 3. post-escán La condición de salida de renglón se establece como falsa.141593) Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. post-escán Ninguna. Condiciones de fallo: ninguna Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. Ninguna. EnableOut se borra.Capítulo 16 Instrucciones de conversión matemática (DEG. La instrucción se ejecuta. FRD. RAD. La condición de salida de renglón se establece como falsa. EnableOut se establece. TRN.Instrucciones de conversión matemática (DEG. Bloque de funciones Publicación 1756-RM003K-ES-P – Julio 2008 555 . TRUNC) Capítulo 16 Ejemplo Convierta value en radianes y coloque el resultado en result. RAD. FRD. TOD. Lógica de escalera de relés Texto estructurado result := RAD(value). TRUNC) Convertir a BCD (TOD) Operandos: La instrucción TOD convierte un valor decimal (0 ≤ Source ≤ 99. Destination SINT INT DINT tag almacena el resultado Formato inmediato tag Descripción valor que se va a convertir en decimal Bloque de funciones Operando TOD tag Tipo FBD_CONVERT Formato estructura Descripción estructura TOD Estructura FBD_CONVERT Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. RAD. Descripción: BCD es el sistema de números decimales codificados en binario que expresa dígitos decimales individuales (0-9) en una notación binaria de 4 bits. 556 Publicación 1756-RM003K-ES-P – Julio 2008 . Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados.999. La opción predeterminada es establecido. Source DINT Entrada a la instrucción de conversión.Capítulo 16 Instrucciones de conversión matemática (DEG.999) en un valor BCD y almacena el resultado en Destination. TRN. Resultado de la instrucción de conversión. la instrucción genera un fallo menor y borra el Destination. Se establecen indicadores de estado aritmético para esta salida. Lógica de escalera de relés Operando Source Tipo SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros. TOD. Si se borra. Si usted introduce un Source negativo. FRD. la instrucción no se ejecuta y las salidas no se actualizan. Válido = cualquier número entero Parámetro de salida Tipo de datos EnableOut Dest BOOL DINT Descripción La instrucción produjo un resultado válido. TRUNC) Capítulo 16 Condiciones de fallo: Ocurrirá un fallo menor si Source < 0 Tipo de fallo 4 Código de fallo 4 Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. no origen < 0 origen > 99. FRD. Ninguna. TRN. EnableOut se borra.999. Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. La condición de salida de renglón se establece como verdadera. Publicación 1756-RM003K-ES-P – Julio 2008 557 . post-escán Ninguna.999 no convertir origen en BCD sí sí S:V se establece a 1 la condición de salida de renglón se establece como verdadera fin condición de entrada de renglón es verdadera El controlador convierte Source en BCD y coloca el resultado en Destination. La instrucción se ejecuta. EnableOut se establece. RAD. La condición de salida de renglón se establece como falsa. TOD. post-escán La condición de salida de renglón se establece como falsa.Instrucciones de conversión matemática (DEG. Ninguna. Capítulo 16 Instrucciones de conversión matemática (DEG. FRD. TRUNC) Ejemplo: La instrucción TOD convierte value_1 en un valor BCD y coloca el resultado en result_a. TOD. TRN. RAD. Lógica de escalera de relés Bloque de funciones 558 Publicación 1756-RM003K-ES-P – Julio 2008 . Se establecen indicadores de estado aritmético para esta salida. Descripción: La instrucción FRD convierte un valor BCD (Source) en un valor decimal y almacena el resultado en Destination. TOD. Si se borra. Resultado de la instrucción de conversión. Condiciones de fallo: ninguna Publicación 1756-RM003K-ES-P – Julio 2008 559 . Lógica de escalera de relés Operando Source Tipo SINT INT DINT Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros. TRN. TRUNC) Capítulo 16 Convertir a entero (FRD) Operandos: La instrucción FRD convierte un valor BCD (Source) en un valor decimal y almacena el resultado en Destination. La opción predeterminada es establecido. Destination SINT INT DINT tag almacena el resultado Formato inmediato tag Descripción valor que se va a convertir en decimal Bloque de funciones Operando FRD tag Tipo FBD_CONVERT Formato: estructura Descripción estructura FRD Estructura FBD_CONVERT Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada.Instrucciones de conversión matemática (DEG. FRD. Válido = cualquier número entero Parámetro de salida Tipo de datos EnableOut Dest BOOL DINT Descripción La instrucción produjo un resultado válido. la instrucción no se ejecuta y las salidas no se actualizan. Source DINT Entrada a la instrucción de conversión. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. RAD. Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. TRN. La condición de salida de renglón se establece como verdadera. El controlador convierte Source en un valor decimal y coloca el resultado en Destination. La instrucción se ejecuta. Ninguna. RAD. TOD. Ejemplo: La instrucción FRD convierte value_a en un valor decimal y coloca el resultado en result_1. La condición de salida de renglón se establece como falsa. EnableOut se establece. TRUNC) Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. Lógica de escalera de relés Bloque de funciones 560 Publicación 1756-RM003K-ES-P – Julio 2008 . Ninguna.Capítulo 16 Instrucciones de conversión matemática (DEG. post-escán La condición de salida de renglón se establece como falsa. FRD. post-escán Ninguna. EnableOut se borra. Se establecen indicadores de estado aritmético para esta salida. FRD. Bloque de funciones Operando TRN tag Tipo FBD_TRUNCATE Formato estructura Descripción estructura TRM Estructura FBD_TRUNCATE Parámetro de entrada EnableIn Tipo de datos BOOL Descripción Habilitación de entrada. TOD.Instrucciones de conversión matemática (DEG. Resultado de la instrucción de conversión. Esta función trunca source y almacena el resultado en dest. La opción predeterminada es establecido. Source REAL Entrada a la instrucción de conversión. RAD. Si se borra. Use TRUNC como función. Consulte el Apéndice C. Válido = cualquier valor con punto flotante (coma flotante) Parámetro de salida Tipo de datos EnableOut Dest BOOL DINT Descripción La instrucción produjo un resultado válido. TRUNC) Capítulo 16 Truncar (TRN) Operandos: La instrucción TRN retira (trunca) la parte fraccionaria de Source y almacena el resultado en Destination. Programación de texto estructurado para obtener información sobre la sintaxis de las expresiones en texto estructurado. Lógica de escalera de relés Operando Source Tipo REAL Formato inmediato tag Destination SINT INT DINT REAL tag tag para almacenar el resultado Descripción valor que se va a truncar Texto estructurado dest := TRUNC(source). la instrucción no se ejecuta y las salidas no se actualizan. TRN. Publicación 1756-RM003K-ES-P – Julio 2008 561 . TOD. El controlador retira la parte fraccionaria de Source y coloca el resultado en Destination. FRD. La condición de salida de renglón se establece como verdadera. La instrucción se ejecuta. EnableOut se borra. Bloque de funciones Condición preescán primer escán de instrucción primera ejecución de instrucción EnableIn se borra EnableIn se establece Acción Ninguna. en lugar de ello. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados.Capítulo 16 Instrucciones de conversión matemática (DEG. la parte no fraccionaria permanece igual. La condición de salida de renglón se establece como falsa. post-escán Ninguna. Condiciones de fallo: ninguna Ejecución: Lógica de escalera de relés Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción La condición de salida de renglón se establece como falsa. Ninguna. EnableOut se establece. post-escán La condición de salida de renglón se establece como falsa. TRUNC) Descripción: El truncado no redondea el valor. independientemente del valor de la parte fraccionaria. TRN. RAD. Ninguna. 562 Publicación 1756-RM003K-ES-P – Julio 2008 . TRN. TRUNC) Capítulo 16 Ejemplo: Retire la parte fraccionaria de float_value_1. RAD. Lógica de escalera de relés Texto estructurado float_value_1_truncated := TRUNC(float_value_1). TOD. FRD. dejando igual la parte no fraccionaria. y coloque el resultado en float_value_1_truncated. Bloque de funciones Publicación 1756-RM003K-ES-P – Julio 2008 563 .Instrucciones de conversión matemática (DEG. Capítulo 16 Instrucciones de conversión matemática (DEG. TRN. TRUNC) Notas: 564 Publicación 1756-RM003K-ES-P – Julio 2008 . FRD. RAD. TOD. publicación 1756-PM001. AWA. AWT) Introducción Use las instrucciones para puerto serie ASCII a fin de leer y escribir caracteres ASCII. obtener el estado de las líneas de control del puerto serie activar y desactivar la señal DTR activar y desactivar la señal RTS leer un número fijo de caracteres • borrar datos antiguos del búfer al momento de la puesta en marcha • sincronizar el búfer con un dispositivo hacer que el módem cuelgue ACL lógica de escalera de relés texto estructurado 575 AHL lógica de escalera de relés texto estructurado 577 leer datos desde un dispositivo que envía el mismo número de caracteres durante cada transmisión leer datos desde un dispositivo que envía un número variable de caracteres en cada transmisión enviar mensajes que siempre usan los mismos caracteres de terminación ARD lógica de escalera de relés texto estructurado 581 leer un número variable de caracteres. inclusive el primer conjunto de caracteres de terminación enviar caracteres y añadir automáticamente uno o dos caracteres adicionales para marcar el final de los datos enviar caracteres ARL lógica de escalera de relés texto estructurado 585 AWA lógica de escalera de relés texto estructurado 589 enviar mensajes que usan una variedad de caracteres de terminación AWT lógica de escalera de relés texto estructurado 594 565Publicación 1756-RM003K-ES-P – Julio 2008 565 . ARD. IMPORTANTE Para usar las instrucciones del puerto serie ASCII.Capítulo 17 Instrucciones para puerto serie ASCII (ABL. ACB. usted debe configurar el puerto serie del controlador. ARL. ACL. AHL. Use esta instrucción ABL Disponible en estos lenguajes lógica de escalera de relés texto estructurado Vea la página 570 Si desea determinar cuándo el búfer contiene caracteres de terminación Por ejemplo ver si hay datos que tienen caracteres de terminación contar los caracteres en el búfer verificar el número requerido de caracteres antes de leer el búfer ACB lógica de escalera de relés texto estructurado 573 borrar el búfer borrar las instrucciones del puerto serie ASCII que actualmente se están ejecutando o están en la cola. Consulte el documento Logix5000 Controllers Common Procedures. Cada instrucción de puerto serie ASCII (excepto ACL) usa una estructura SERIAL_PORT_CONTROL para realizar las siguientes funciones: • controlar la ejecución de la instrucción • proporcionar información de estado acerca de la instrucción 566 Publicación 1756-RM003K-ES-P – Julio 2008 .Capítulo 17 Instrucciones para puerto serie ASCII (ABL. AWT) Ejecución de la instrucción Las instrucciones de puerto serie ASCII se ejecutan de manera asíncrona con el escán de la lógica: Lógica La condición de entrada de renglón de instrucción cambia de falsa a verdadera Cola ASCII Instrucción 1 Instrucción 2 Instrucción 3 Instrucción 4 La instrucción entra en la cola ASCII. ARD. AWA. Tarea ASCII La instrucción en la parte superior de la cola se ejecuta. Los datos fluyen entre el búfer y el puerto serie. ARL. AHL. ACB. ACL. Puerto serie Búfer Los datos fluyen entre la tarea y el búfer. EU desactivado activado . ACB. AWA. se establece el bit . ARD.EN desactivado activado desactivado activado desactivado . AWT) Capítulo 17 El siguiente diagrama de temporización muestra los cambios en los bits de estado mientras la instrucción ABL prueba el búfer en busca de caracteres de terminación.FD desactivado activado desactivado activado .DN o . AHL.ER está establecido.ER desactivado activado desactivado activado . ACL.EM Publicación 1756-RM003K-ES-P – Julio 2008 567 . ARL. encuentra caracteres de terminación restablece los bits de estado cuando se escanean y el bit .DN o .Instrucciones para puerto serie ASCII (ABL. escán escán escán escán condición de entrada de renglón falsa verdadera falsa verdadera falsa .EM desactivado activado desactivado activado entra en la cola se ejecuta en este ejemplo.RN desactivado activado desactivado activado desactivado . El valor LEN del tag de cadena es negativo o mayor que el tamaño de DATA del tag de cadena. pero la cola está llena entra en la cola Códigos de error ASCII Si una instrucción del puerto serie ASCII no logra ser ejecutada. Esto detiene la ejecución de una instrucción de puerto serie ASCII y borra la cola de instrucciones de puerto serie ASCII. La configuración del puerto serie cambió del modo de usuario al modo de sistema. una instrucción intenta entrar en la cola durante cada escán subsiguiente de la instrucción. según se muestra a continuación: escán escán escán escán condición de entrada de renglón falsa verdadera falsa . La longitud de control del puerto serie es mayor que el tamaño del búfer. AWT) La cola ASCII retiene hasta 16 instrucciones. se estableció el bit . El controlador cambió del modo de marcha al modo de programación. ARL. el miembro ERROR de su estructura SERIAL_PORT_CONTROL contendrá uno de los siguientes códigos de error hexadecimal: Este código 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 módem se desconectó. AWA. Esto impide la ejecución de la instrucción. Esto detiene la ejecución de una instrucción de puerto serie ASCII y borra la cola. El puerto serie estaba en el modo de sistema. AHL. Cuando la cola está llena. La longitud de control del puerto serie es negativa o mayor que el tamaño de Source o Destination. se cambiaron y se aplicaron los parámetros de tamaño de búfer o modo de eco. ARD. ACL.EU desactivado activado intenta entrar en la cola.EN desactivado activado . 568 Publicación 1756-RM003K-ES-P – Julio 2008 . En el cuadro de diálogo Controller Properties.UL. Esto detiene la ejecución de una instrucción de puerto serie ASCII y borra la cola. Antes de que se ejecutara la instrucción. La señal CTS se perdió durante la comunicación. Instrucción ACL ejecutada. ACB. ficha User Protocol.Capítulo 17 Instrucciones para puerto serie ASCII (ABL. que almacena hasta 82 caracteres. convierten o manipulan una cadena El LEN muestra la longitud de la cadena actual. Para crear un nuevo tipo de datos de cadena. consulte el documento Logix5000 Controllers Common Procedures. AHL. publicación 1756-PM001. 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. • Usted puede crear nuevos tipos de datos de cadena que almacenen menos o más caracteres. • Se puede usar el tipo de datos STRING predeterminado. Cada tipo de datos de cadena contiene los siguientes miembros: Nombre LEN Tipo de datos Descripción DINT número de caracteres en la cadena Notas El LEN se actualiza automáticamente con el nuevo conteo de los caracteres cuando usted: • usa el cuadro de diálogo String Browser para introducir caracteres • usa las instrucciones que leen. Publicación 1756-RM003K-ES-P – Julio 2008 569 . • Cada elemento de la matriz DATA contiene un carácter. • Usted puede crear un nuevo tipo de datos de cadena que almacene menos o más caracteres. introduzca string_1. para acceder a los caracteres del tag string_1. El miembro DATA puede contener caracteres adicionales antiguos. ARD. ARL. AWA.Instrucciones para puerto serie ASCII (ABL. ACL. utilice el nombre del tag. Por ejemplo. AWT) Capítulo 17 Tipos de datos de cadena Los caracteres ASCII se almacenan en tags que usan un tipo de datos de cadena. ACB. ER . El bit de encontrado indica que la instrucción encontró el carácter o los caracteres de terminación.RN . ACL. pero es asíncrono respecto al escán de la lógica. El bit de ejecución indica que la instrucción se está ejecutando.EN . inclusive el primer carácter de terminación. ACB. Estructura SERIAL_PORT_CONTROL Mnemónico . inclusive el primer conjunto de caracteres de terminación. AWT) Prueba ASCII para línea de búfer (ABL) Operandos: La instrucción ABL cuenta los caracteres en el búfer. Los operandos son iguales a los de la instrucción ABL de lógica de escalera de relés.Capítulo 17 Instrucciones para puerto serie ASCII (ABL.EM .POS de la estructura SERIAL_PORT_CONTROL. Usted accede al valor de conteo de caracteres mediante el miembro . El bit de efectuado indica que ha finalizado la instrucción. La posición determina el número de caracteres en el búfer. AHL.ERROR DINT 570 Publicación 1756-RM003K-ES-P – Julio 2008 . ARD. El bit de vacío indica que finalizó la instrucción.DN . pero es síncrono respecto al escán de la lógica.POS Tipo de datos BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT Descripción El bit de habilitación indica que la instrucción está habilitada. incluso el primer conjunto de caracteres de terminación. ARL. Lógica de escalera de relés 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 Descripción 0 ? ? ? Serial Port Control Character Count SERIAL_PORT_ CONTROL DINT tag tag que controla la operación inmediato 0 Durante la ejecución. . AWA.FD . La instrucción sólo retorna este número después de que encuentra el carácter o los caracteres de terminación. El bit de error indica que la instrucción falló (errores). El error contiene un valor hexadecimal que identifica la causa del error. El bit de cola indica que la instrucción entró en la cola ASCII. Texto estructurado ABL(Channel SerialPortControl). muestra el número de caracteres en el búfer.EU . Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. Para programar la instrucción ABL. se definen los caracteres ASCII que la instrucción considera como caracteres de terminación. Acción de texto estructurado Ninguna. Configure el puerto serie del controlador en modo de usuario y defina los caracteres que sirven como caracteres de terminación. • En texto estructurado. Si la instrucción encuentra los caracteres de terminación. n. condicione la instrucción de manera que sólo se ejecute cuando ocurra una transición. La condición de salida de renglón se establece como verdadera. ésta: • establece el bit . La instrucción se ejecuta. AWT) Capítulo 17 Descripción La instrucción ABL busca en el búfer el primer conjunto de caracteres de terminación. AWA.FD • cuenta los caracteres en el búfer. ARD. La instrucción se ejecuta cuando la condición de entrada del renglón alterna de borrado a establecido. ARL. cambie la condición de entrada del renglón de borrado a establecido cada vez que deba ejecutarse la instrucción. a. a. ACL.Instrucciones para puerto serie ASCII (ABL. 2. AHL. EnableIn siempre se establece. n. ficha User Protocol. inclusive el primer conjunto de caracteres de terminación En el cuadro de diálogo Controller Properties. siga estas pautas: 1. EnableIn se establece n. a. ACB. La condición de salida de renglón se establece como falsa. Ésta es una instrucción transicional: • En la lógica de escalera de relés. Publicación 1756-RM003K-ES-P – Julio 2008 571 . Capítulo 17 Instrucciones para puerto serie ASCII (ABL. El bit . Acción de texto estructurado post-escán La condición de salida de renglón se establece como Ninguna.EN se establece. ACL. Los bits de estado restantes. ARD. La instrucción trata de entrar en la cola ASCII. ARL.EN / ABL ABL ASCII Test For Buffer Line ASCII Test For Buffer Line Channel 0 Channel MV_line.EN MV_line.E SerialPort Control SerialPort Control MV_line Character Count Character Count 0 EN EN DN DN ER ER Texto estructurado ABL(0. AWT) Condición ejecución de la instrucción Acción de lógica de escalera de relés La instrucción cuenta los caracteres en el búfer. Ejemplo: Pruebe continuamente el búfer para determinar si contiene los caracteres de terminación. Lógica de escalera de relés MV_line. ACB. falsa. excepto . AWA. se borran.UL. 572 Publicación 1756-RM003K-ES-P – Julio 2008 .MV_line). AHL. Lógica de escalera de relés 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 operación inmediato 0 Durante la ejecución. Sin embargo. en lugar de incluir el valor en la lista de operandos. pero es asíncrono respecto al escán de la lógica. AWT) Capítulo 17 Caracteres ASCII en el búfer (ACB) Operandos: La instrucción ACB cuenta los caracteres en el búfer.ER . ARL. ARD. Estructura SERIAL_PORT_CONTROL Mnemónico . El bit de cola indica que la instrucción entró en la cola ASCII. Publicación 1756-RM003K-ES-P – Julio 2008 573 . Los operandos son los mismos que para la instrucción ACB de lógica de escalera de relés.ERROR Tipo de datos BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT Descripción El bit de habilitación indica que la instrucción está habilitada.EM .FD . muestra el número de caracteres en el búfer. ACB.DN . El bit de efectuado indica que ha finalizado la instrucción. usted especifica el valor de conteo de caracteres al acceder al miembro . Texto estructurado ACB(Channel SerialPortControl). El bit de error indica que la instrucción falló (errores).EN . El bit de vacío indica que finalizó la instrucción. El bit de ejecución indica que la instrucción se está ejecutando. inclusive el primer conjunto de caracteres de terminación. pero es síncrono respecto al escán de la lógica. AHL. ACL.POS de la estructura SERIAL_PORT_CONTROL. El bit de encontrado indica que la instrucción encontró un carácter. El error contiene un valor hexadecimal que identifica la causa del error.Instrucciones para puerto serie ASCII (ABL.POS .RN .EU . La posición determina el número de caracteres en el búfer. AWA. Lógica de escalera de relés bar_code_count. n. AWT) Descripción: La instrucción ACB cuenta los caracteres en el búfer.UL. AHL. a. se borran.Capítulo 17 Instrucciones para puerto serie ASCII (ABL. La instrucción se ejecuta. La condición de salida de renglón se establece como verdadera.bar_code_count). cambie la condición de entrada del renglón de borrado a establecido cada vez que deba ejecutarse la instrucción. El bit . ARD. 2.EN SerialPort Control bar_code_count SerialPort Control Character Count Character Count 0 EN EN DN DN ER ER Texto estructurado ACB(0.EN / ACB ACB ASCII Chars in Buffer ASCII Chars in Buffer Channel 0 Channel bar_code_count. n. Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. post-escán Ejemplo: Cuente continuamente los caracteres en el búfer. condicione la instrucción de manera que sólo se ejecute cuando ocurra una transición. La condición de salida de renglón se establece como falsa. • En texto estructurado. excepto . Ninguna. Ésta es una instrucción transicional: • En la lógica de escalera de relés. ACB. La instrucción se ejecuta cuando la condición de entrada del renglón alterna de borrado a establecido. EnableIn siempre se establece. ARL. La instrucción trata de entrar en la cola ASCII. siga estas pautas: 1.EN bar_code_count. Configure el puerto serie del controlador en modo de usuario. a. a. EnableIn se establece ejecución de la instrucción n. 574 Publicación 1756-RM003K-ES-P – Julio 2008 . La condición de salida de renglón se establece como falsa. La instrucción cuenta los caracteres en el búfer.EN se establece. Para programar la instrucción ACB. Los bits de estado restantes. AWA. ACL. Acción de texto estructurado Ninguna. ClearSerialPortWrite). examine los siguientes componentes de la instrucción apropiada: • El bit . siga estas pautas: 1.ER se establece • El miembro . AHL. Los operandos son iguales a los de la instrucción ACL de lógica de escalera de relés. introduzca Yes. AWA.ERROR es 16#E Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Publicación 1756-RM003K-ES-P – Julio 2008 575 . ARD. Configure el puerto serie del controlador: Si su aplicación 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. introduzca Yes. AWT) Capítulo 17 Borrar ASCII búfer (ACL) Operandos: La instrucción ACL borra inmediatamente el búfer y la cola ASCII. Descripción: La instrucción ACL inmediatamente realiza una de las dos siguientes acciones o ambas: • borra el búfer de caracteres y borra la cola ASCII de instrucciones de lectura • borra la cola ASCII de instrucciones de escritura Para programar la instrucción ACL. Lógica de escalera de relés ACL ACL Borrar ASCII ASCII Clear búfer 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 búfer y eliminar las instrucciones ARD y ARL de la cola. Para eliminar las instrucciones AWA y AWT de la cola. ARL. Para determinar si una instrucción se retiró de la cola o se canceló. BOOL inmediato tag Texto estructurado ACL(Channel. ACL. ACB. ClearSerialPortRead.Instrucciones para puerto serie ASCII (ABL. n. Lógica de escalera de relés S:FS ACL ACL ASCII Buffer Borrar Clear ASCII búfer 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.1). OSRI(osri_1). a. La instrucción se ejecuta. falsa. AHL. La condición de salida de renglón se establece como verdadera. borre el búfer así como la cola ASCII. La instrucción se ejecuta. La condición de salida de renglón se establece como Ninguna. ACL. a. END_IF.OutputBit) THEN ACL(0.0. AWT) Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés Acción de texto estructurado La condición de salida de renglón se establece como Ninguna. Ejemplo: Cuando el controlador entre en el modo de marcha. IF (osri_1.Capítulo 17 Instrucciones para puerto serie ASCII (ABL. EnableIn siempre se establece. 576 Publicación 1756-RM003K-ES-P – Julio 2008 . EnableIn se establece n. ACB. n. falsa. ARL. AWA. La condición de salida de renglón se establece como falsa. ejecución de la instrucción post-escán La instrucción borra las instrucciones especificadas y los búferes. a. ARD.InputBit := S:FS. ARD. Lógica de escalera de relés 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 Remítase a la descripción. ACB. ACL.POS de la estructura SERIAL_PORT_CONTROL. Sin embargo. se especifica el valor de estado del canal accediendo al miembro . muestra el estado de las líneas de control. AWA. Publicación 1756-RM003K-ES-P – Julio 2008 577 .ANDMask. y no incluyendo el valor en la lista de operandos. AWT) Capítulo 17 Líneas de handshake ASCII (AHL) Operandos: La instrucción AHl obtiene el estado de las líneas de control. y activa o desactiva las señales DTR y RTS. ARL. SerialPortControl). AHL. Para el estado de esta línea de control CTS RTS DSR DCD DTR Recibió el carácter XOFF Examine este bit: 0 1 2 3 4 5 Texto estructurado AHL(Channel.ORMask. Los operandos son iguales que los de la instrucción AHL de lógica de escalera de relés.Instrucciones para puerto serie ASCII (ABL. ORMask DINT inmediato tag Serial Port Control Channel Status (Decimal) SERIAL_PORT_CONTROL DINT tag inmediato tag que controla la operación 0 Durante la ejecución. ACL. 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 Publicación 1756-RM003K-ES-P – Julio 2008 .EM . El bit de efectuado indica que ha finalizado la instrucción. AWA. Configure el puerto serie del controlador: Si su aplicación 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. El bit de vacío indica que finalizó la instrucción. pero es asíncrono respecto al escán de la lógica.DN .EU . El bit de encontrado no se aplica a esta instrucción. ACB. pero es síncrono respecto al escán de la lógica.ER .ERROR Tipo de datos BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT Descripción El bit de habilitación indica que la instrucción está habilitada.RN .EN . Descripción: La instrucción AHL puede: • obtener el estado de las líneas de control del puerto serie • activar o desactivar la señal de terminal de datos listo (DTR) • activar o desactivar la señal de solicitud de envío (RTS) Para programar la instrucción AHL. siga estas pautas: 1.POS . El bit de cola indica que la instrucción entró en la cola ASCII.Capítulo 17 Instrucciones para puerto serie ASCII (ABL. ARL. El error contiene un valor hexadecimal que identifica la causa del error. La posición almacena el estado de las líneas de control. El bit de ejecución indica que la instrucción se está ejecutando. El bit de error indica que la instrucción falló (errores). AHL.FD . ARD. AWT) Estructura SERIAL_PORT_CONTROL Mnemónico . ACB. post-escán La condición de salida de renglón se establece como falsa.EN se establece. La instrucción trata de entrar en la cola ASCII. ARD. • Elimine la instrucción AHL. a. a. La condición de salida de renglón se establece como verdadera. AWA. ARL. cambie la condición de entrada del renglón de borrado a establecido cada vez que deba ejecutarse la instrucción. n. AHL. Método de recuperación Realice una de los siguientes acciones: • Cambie el ajuste de la línea de control del puerto serie. ejecución de la instrucción La instrucción obtiene el estado de la línea de control y activa o desactiva las señales DTR y RTS. AWT) Capítulo 17 3. EnableIn se establece n. La instrucción se ejecuta. Ninguna. n. ACL. excepto . Indicadores de estado aritmético: no afectados Condiciones de fallo: Tipo 4 Código 57 Causa La instrucción AHL no se ejecutó porque el puerto serie está configurado para no usar handshaking. El bit .Instrucciones para puerto serie ASCII (ABL.UL. EnableIn siempre se establece. condicione la instrucción de manera que sólo se ejecute cuando ocurra una transición. a. • En texto estructurado. La condición de salida de renglón se establece como falsa. Los bits de estado restantes. Acción de texto estructurado Ninguna. se borran. Ésta es una instrucción transicional: • En la lógica de escalera de relés. Publicación 1756-RM003K-ES-P – Julio 2008 579 . La instrucción se ejecuta cuando la condición de entrada del renglón cambia de borrado a establecido. Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. AWT) Ejemplo: Cuando get_control_line_status se establece. AHL.Capítulo 17 Instrucciones para puerto serie ASCII (ABL.InputBit := get_control_line_status. ACL.OutputBit) THEN AHL(0. IF (osri_1. Lógica de escalera de relés 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. obtenga el estado de las líneas de control del puerto serie y almacene el estado en el operando Channel Status. ARD. END_IF. Para ver el estado de una línea de control específica. ARL. monitoree el tag SerialPortControl y amplíe el miembro POS.serial_port). OSRI(osri_1). 580 Publicación 1756-RM003K-ES-P – Julio 2008 .0. ACB. AWA.0. • Si desea establecer Serial Port Control Length igual que el tamaño de Destination. ARL. ACL. introduzca el nombre del tag. Lógica de escalera de relés 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. SerialPortControl). • 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 operación número de caracteres a transferir al destino (lectura) • Serial Port Control Length debe ser menor o igual que el tamaño de Destination. AWT) Capítulo 17 Lectura ASCII (ARD) Operandos: La instrucción retira caracteres del búfer y los almacena en Destination.LEN y . AHL. Publicación 1756-RM003K-ES-P – Julio 2008 581 . en lugar de incluir los valores en la lista de operandos. AWA. inmediato Characters Read DINT inmediato 0 Texto estructurado ARD(Channel. ACB.POS de la estructura SERIAL_PORT_CONTROL. usted especifica los valores de Serial Port Control Length y Characters Read accediendo a los miembros . muestra el número de caracteres leídos. introduzca 0.Instrucciones para puerto serie ASCII (ABL. • Para una matriz SINT. Durante la ejecución. Los operandos son los mismos que para la instrucción ARD de lógica de escalera de relés. ARD. use un tipo de datos de cadena. introduzca el primer elemento de la matriz.Destination. Sin embargo. convertir o manipular los caracteres. • Si desea comparar. INT o DINT. Capítulo 17 Instrucciones para puerto serie ASCII (ABL. condicione la instrucción de manera que sólo se ejecute cuando ocurra una transición. 4. El bit de cola indica que la instrucción entró en la cola ASCII. Configure el puerto serie del controlador para el modo de usuario.DN . pero es síncrono respecto al escán de la lógica. Use los resultados de una instrucción ACB para activar la instrucción ARD.EM . cambie la condición de entrada del renglón de borrado a establecido cada vez que deba ejecutarse la instrucción. ARL. AWA. siga estas pautas: 1. ARD. AHL. • Mientras que la instrucción ARD se está ejecutando.ERROR Tipo de datos BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT DINT Descripción El bit de habilitación indica que la instrucción está habilitada.FD . Para activar una acción subsiguiente cuando se ha efectuado la instrucción. Descripción: La instrucción ARD retira el número especificado de caracteres del búfer y los almacena en Destination. El bit de efectuado indica que ha finalizado la instrucción.LEN . Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna 582 Publicación 1756-RM003K-ES-P – Julio 2008 . La longitud indica el número de caracteres a transferir al destino (lectura).POS . ACB. Así evita que la instrucción ARD retenga la cola ASCII mientras espera el número requerido de caracteres.EU . Ésta es una instrucción transicional: • En la lógica de escalera de relés. pero es asíncrono respecto al escán de la lógica. ninguna otra instrucción de puerto serie ASCII se ejecuta. El bit de ejecución indica que la instrucción se está ejecutando. El bit de vacío indica que finalizó la instrucción. • La instrucción ARD continúa ejecutándose hasta eliminar el número especificado de caracteres (Serial Port Control Length). Para programar la instrucción ARD. AWT) Estructura SERIAL_PORT_CONTROL Mnemónico . 3.RN . El error contiene un valor hexadecimal que identifica la causa del error. examine el bit EM.ER . 2. El bit de encontrado no se aplica a esta instrucción. La posición muestra el número de caracteres que se leyeron. ACL. • En texto estructurado. El bit de error indica que la instrucción falló (errores).EN . ejecución de la instrucción La instrucción retira caracteres del búfer y los almacena en el destino. Los bits de estado restantes. La instrucción se ejecuta cuando la condición de entrada del renglón cambia de borrado a establecido. se borran. AWT) Capítulo 17 Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. Acción de texto estructurado Ninguna.UL.pos bar_code_count. AWA. La instrucción trata de entrar en la cola ASCII.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. ACB. EnableIn se establece n. Cada código de barra contiene 24 caracteres. significa que el controlador ha recibido un código de barra.Instrucciones para puerto serie ASCII (ABL. ARD. ARL. a. a. ACL. a. Ejemplo: Un lector de códigos de barra envía códigos de barra al puerto serie (canal 0) del controlador. n. Lógica de escalera de relés bar_code_count. excepto .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 Publicación 1756-RM003K-ES-P – Julio 2008 583 . post-escán La condición de salida de renglón se establece como falsa. n. Ninguna. La condición de salida de renglón se establece como falsa. La instrucción se ejecuta.EN bar_code_count. La instrucción ARD pasa el código de barras al miembro DATA del tag bag_bar_code. El bit . Cuando el búfer contiene por lo menos 24 caracteres. la instrucción ACB cuenta continuamente los caracteres en el búfer.EN se establece. Para saber que el controlador ha recibido un código de barra. EnableIn siempre se establece. que es una cadena. AHL. La condición de salida de renglón se establece como verdadera. ACB.bag_bar_code.LEN := 24.bar_code_count). ARD(0. AWA. END_IF.bar_code_read). IF bar_code_count.Capítulo 17 Instrucciones para puerto serie ASCII (ABL. 584 Publicación 1756-RM003K-ES-P – Julio 2008 .POS >= 24 THEN bar_code_read. ACL. AHL. ARD. AWT) Texto estructurado ACB(0. ARL. POS de la estructura SERIAL_PORT_CONTROL. AWA. ARL. Texto estructurado ARL(Channel. Los operandos son los mismos que para la instrucción ARL de lógica de escalera de relés. inmediato Characters Read DINT inmediato 0 Durante la ejecución. AHL. SerialPortControl). Sin embargo. Publicación 1756-RM003K-ES-P – Julio 2008 585 . ACL. INT o DINT. • Si desea comparar. cuándo se debe interrumpir la lectura si no se encuentran caracteres de terminación). muestra el número de caracteres leídos.LEN y . si el mensaje tiene de 3 a 6 caracteres de longitud. Lógica de escalera de relés 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. ACB. • 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 operación número máximo de caracteres a leer si no se encuentran caracteres de terminación • Introduzca el número máximo de caracteres que contendrá cualquier mensaje (es decir. • Si desea establecer la longitud de control del puerto serie igual que el tamaño de Destination.Instrucciones para puerto serie ASCII (ABL. • Para una matriz SINT. AWT) Capítulo 17 Lectura ASCII de línea (ARL) Operandos: La instrucción ARL retira los caracteres especificados del búfer y los almacena en Destination. ARD. usted especifica los valores de Serial Port Control Length y Characters Read accediendo a los miembros . en lugar de incluir los valores en la lista de operandos. introduzca el nombre del tag. introduzca 6. Por ejemplo. introduzca el primer elemento de la matriz. convertir o manipular los caracteres. • Serial Port Control Length debe ser menor o igual que el tamaño de Destination.Destination. use un tipo de datos de cadena. introduzca 0. El error contiene un valor hexadecimal que identifica la causa del error. El bit de encontrado no se aplica a esta instrucción.LEN . AHL. Para activar una acción subsiguiente cuando se ha efectuado la instrucción. ACL.EU .EN .ER . AWA.ERROR Tipo de datos BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT DINT Descripción El bit de habilitación indica que la instrucción está habilitada.RN . El bit de ejecución indica que la instrucción se está ejecutando. El bit de efectuado indica que ha finalizado la instrucción. Use los resultados de una instrucción ABL para activar la instrucción ARL. La posición muestra el número de caracteres que se leyeron. Configure el puerto serie del controlador: a. ninguna otra instrucción de puerto serie ASCII se ejecuta. Descripción: La instrucción ARL retira los caracteres del búfer y los almacena en Destination de la siguiente manera: • La instrucción ARL continúa ejecutándose hasta eliminar: – el primer conjunto de caracteres de terminación – el número especificado de caracteres (Serial Port Control Length) • Mientras que la instrucción ARL se está ejecutando.DN . cuándo se debe interrumpir la lectura si no se encuentran caracteres de terminación). 3. 4. pero es asíncrono respecto al escán de la lógica. El bit de cola indica que la instrucción entró en la cola ASCII. ACB. examine el bit EM. pero es síncrono respecto al escán de la lógica. Ésta es una instrucción transicional: • En la lógica de escalera de relés.EM . ARL.FD . b. Defina los caracteres que sirven como caracteres de terminación. siga estas pautas: 1. condicione la instrucción de manera que sólo se ejecute cuando ocurra una transición. 2. El bit de vacío indica que finalizó la instrucción. AWT) Estructura SERIAL_PORT_CONTROL Mnemónico . La longitud indica el número máximo de caracteres a transferir al destino (es decir. Esto evita que la instrucción ARL retenga la cola ASCII mientras espera el número de caracteres de terminación.POS .Capítulo 17 Instrucciones para puerto serie ASCII (ABL. • En texto estructurado. 586 Publicación 1756-RM003K-ES-P – Julio 2008 . El bit de error indica que la instrucción falló (errores). Para programar la instrucción ARL. ARD. cambie la condición de entrada del renglón de borrado a establecido cada vez que deba ejecutarse la instrucción. Seleccione el modo de usuario. ARD.FD se establece) significa que el controlador ha recibido un mensaje completo. a.Instrucciones para puerto serie ASCII (ABL. EnableIn siempre se establece. Puesto que cada mensaje termina en un retorno de carro ($r). y los coloca en el miembro DATA del tag MV_msg. EnableIn se establece n. Cuando la instrucción ABL encuentra el retorno de carro (MV_line.UL. El bit . ficha User Protocol. ejecución de la instrucción La instrucción retira los caracteres especificados del búfer y los almacena en el destino. Ninguna. que es una cadena. excepto . se borran. La condición de salida de renglón se establece como verdadera. La instrucción ARL retira los caracteres del búfer. establece el bit FD. Los bits de estado restantes. La instrucción se ejecuta. ACL. Acción de texto estructurado Ninguna. AWA. Ejemplo: Pruebe continuamente el búfer para determinar si contiene un mensaje de un terminal MessageView. La condición de salida de renglón se establece como falsa. a. ACB. La instrucción trata de entrar en la cola ASCII. a. n.EN se establece. ARL. Publicación 1756-RM003K-ES-P – Julio 2008 587 . n. Cuando la instrucción ABL encuentra un retorno de carro. AHL. el retorno de carro se configura como el carácter de terminación en el cuadro de diálogo Controller Properties. AWT) Capítulo 17 Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. inclusive el retorno de carro. La instrucción se ejecuta cuando la condición de entrada del renglón cambia de borrado a establecido. post-escán La condición de salida de renglón se establece como falsa. EN MV_line. AHL. ACL.FD MV_line.MV_line).MV_read). OSRI(osri_1). ARL(0. ACB.OutputBit) THEN mv_read. osri_1.InputBit := MVLine. ARD.EN MV_msg '' MV_line.MV_msg.FD.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. 588 Publicación 1756-RM003K-ES-P – Julio 2008 .Capítulo 17 Instrucciones para puerto serie ASCII (ABL.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.EN MV_read 12 0 DN DN ER ER Texto estructurado ABL(0. AWA.LEN := 12. ARL. AWT) Lógica de escalera de relés MV_line. END_IF. IF (osri_1. Sin embargo. introduzca el nombre del tag. • Si desea comparar. INT o DINT. AWA. introduzca 0. • Para una matriz SINT. AHL. convertir o manipular los caracteres. • 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 operación número de caracteres a enviar • Serial Port Control Length debe ser menor o igual que el tamaño de Source. ACL. Publicación 1756-RM003K-ES-P – Julio 2008 589 .Source. muestra el número de caracteres enviados. inmediato Characters Sent DINT inmediato 0 Durante la ejecución.POS de la estructura SERIAL_PORT_CONTROL. Lógica de escalera de relés 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. use un tipo de datos de cadena. AWT) Capítulo 17 Escritura ASCII con anexo (AWA) Operandos: La instrucción AWA envía un número especificado de caracteres del tag Source a un dispositivo serie. Los operandos son los mismos que para la instrucción AWA de lógica de escalera de relés.LEN y . ARD. y añade uno o dos caracteres predefinidos. en lugar de incluir los valores en la lista de operandos. ARL. Texto estructurado AWA(Channel. introduzca el primer elemento de la matriz.Instrucciones para puerto serie ASCII (ABL. SerialPortControl). • Si desea establecer Serial Port Control Length igual que el número de caracteres en Source. ACB. usted especifica los valores de Serial Port Control Length y Characters Sent accediendo a los miembros . ARD. ACB. El bit de ejecución indica que la instrucción se está ejecutando. La longitud indica el número de caracteres a enviar. AWA. cambie la condición de entrada del renglón de borrado a establecido cada vez que deba ejecutarse la instrucción. El bit de encontrado no se aplica a esta instrucción. Descripción: La instrucción AWA: • envía el número especificado de caracteres (Serial Port Control Length) del tag Source al dispositivo conectado al puerto serie del controlador. siga estas pautas: 1.LEN .EU . ficha User Protocol. El error contiene un valor hexadecimal que identifica la causa del error. El bit de cola indica que la instrucción entró en la cola ASCII.EN . La posición muestra el número de caracteres que se enviaron. Defina los caracteres que se agregarán a los datos.RN . ARL. AWT) Estructura SERIAL_PORT_CONTROL Mnemónico .ER . 2. ACL. AHL.EM . pero es asíncrono respecto al escán de la lógica. • En texto estructurado. • añade al final de los caracteres (adiciona) ya sea uno o dos caracteres definidos en el cuadro de diálogo Controller Properties. condicione la instrucción de manera que sólo se ejecute cuando ocurra una transición. El bit de efectuado indica que ha finalizado la instrucción.FD .DN . Para programar la instrucción AWA. pero es síncrono respecto al escán de la lógica. 590 Publicación 1756-RM003K-ES-P – Julio 2008 .Capítulo 17 Instrucciones para puerto serie ASCII (ABL. ¿Incluye la aplicación también 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. Configure el puerto serie del controlador: a.POS . El bit de error indica que la instrucción falló (errores).ERROR Tipo de datos BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT DINT Descripción El bit de habilitación indica que la instrucción está habilitada. El bit de vacío indica que finalizó la instrucción. Ésta es una instrucción transicional: • En la lógica de escalera de relés. Los bits de estado restantes. a. se borran. El bit . La instrucción trata de entrar en la cola ASCII. introduzca el número de caracteres a enviar.UL. La condición de salida de renglón se establece como verdadera. Ninguna. EnableIn siempre se establece.EN se establece. establezca el miembro LEN del tag Source al miembro LEN del tag Serial Port Control. AWA. excepto . ACL. AWT) Capítulo 17 3.Instrucciones para puerto serie ASCII (ABL. Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. a. ¿Envía usted siempre el mismo número de caracteres cada vez que se ejecuta la instrucción? Si la respuesta es afirmativa la respuesta es negativa Entonces En Serial Port Control Length. Antes de que se ejecute la instrucción. n. ejecución de la instrucción La instrucción envía un número especificado de caracteres y añade uno o dos caracteres predefinidos. La condición de salida de renglón se establece como falsa. EnableIn se establece n. La instrucción se ejecuta cuando la condición de entrada del renglón cambia de borrado a establecido. n. ARD. La instrucción se ejecuta. ACB. AHL. Publicación 1756-RM003K-ES-P – Julio 2008 591 . post-escán La condición de salida de renglón se establece como falsa. a. ARL. Acción de texto estructurado Ninguna. Es el código hexadecimal del carácter Ctrl-T). END_IF. La instrucción también envía (adiciona) los caracteres definidos en las propiedades del controlador. que marca el final del mensaje.LEN := 5. Lógica de escalera de relés 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.Capítulo 17 Instrucciones para puerto serie ASCII (ABL. ACB. 592 Publicación 1756-RM003K-ES-P – Julio 2008 .string[1]. ARL. AWT) Ejemplo 1: Cuando la temperatura excede el límite alto (temp_high se establece) la instrucción AWA envía un mensaje a un terminal MessageView que está conectado al puerto serie del controlador. ACL. AHL. AWA(0. AWA. la instrucción AWA envía un retorno de carro ($0D). temp_high := 0. En este ejemplo.temp_high_write). ARD. El mensaje contiene cinco caracteres del miembro DATA del tag string[1]. que es una cadena. (El $14 se cuenta como un carácter. la instrucción AWA envía el número de caracteres especificado en alarm_msg y añade el o los caracteres de terminación.InputBit := alarm.Instrucciones para puerto serie ASCII (ABL. AWA(0. Publicación 1756-RM003K-ES-P – Julio 2008 593 .LEN) a Serial Port Control Length de la instrucción AWA (alarm_write. Puesto que el número de caracteres en alarm_msg varía.LEN Dest. ARD. Es el código hexadecimal del carácter Ctrl-T.LEN Source alarm_msg.LEN. el $14 se cuenta como un carácter.alarm_msg. AWT) Capítulo 17 Ejemplo 2: Cuando alarm se establece. Dest EN EN 5 alarm_write. END_IF. IF (osri_1. ACB. AWA.LEN alarm_write.alarm_write).LEN := alarm_msg.LEN). OSRI(osri_1).OutputBit) THEN alarm_write. el renglón primero pasa la longitud de la cadena (alarm_msg. ACL. ARL.LEN 5 0 alarm_msg alarm_msg '$1425\1' alarm_write alarm_write 5 6 DN DN ER ER Texto estructurado osri_1. Lógica de escalera de relés 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. En alarm_msg. AHL. AWA. inmediato Characters Sent DINT inmediato 0 Durante la ejecución. muestra el número de caracteres enviados. • Si desea comparar. usted especifica los valores de Serial Port Control Length y Characters Sent accediendo a los miembros . ACB. • Si desea establecer Serial Port Control Length igual que el número de caracteres en Source. AWT) Escritura ASCII (ASCII Write (AWT)) Operandos: La instrucción AWT envía un número especificado de caracteres del tag de origen a un dispositivo serie. SerialPortControl). ACL. introduzca 0. Los operandos son los mismos que para la instrucción AWT de lógica de escalera de relés. convertir o manipular los caracteres.Capítulo 17 Instrucciones para puerto serie ASCII (ABL. AHL. ARL. introduzca el primer elemento de la matriz. introduzca el nombre del tag. use un tipo de datos de cadena.POS de la estructura SERIAL_PORT_CONTROL. en lugar de incluir los valores en la lista de operandos.Source. ARD. 594 Publicación 1756-RM003K-ES-P – Julio 2008 . Sin embargo. Texto estructurado AWT(Channel. INT o DINT. • Para una matriz SINT.LEN y . Lógica de escalera de relés 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. • 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 operación el número de caracteres a enviar • Serial Port Control Length debe ser menor o igual que el tamaño de Source. ER . Para programar la instrucción AWT.EN .ERROR Tipo de datos BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT DINT Descripción El bit de habilitación indica que la instrucción está habilitada. La posición muestra el número de caracteres que se enviaron. Configure el puerto serie del controlador: Si la aplicación 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. El bit de error indica que la instrucción falló (errores).POS . introduzca el número de caracteres a enviar.FD .DN . • En texto estructurado. pero es síncrono respecto al escán de la lógica. La longitud indica el número de caracteres a enviar. siga estas pautas: 1.EU . El bit de encontrado no se aplica a esta instrucción. El bit de cola indica que la instrucción entró en la cola ASCII. AHL. ARL. ARD.LEN . Publicación 1756-RM003K-ES-P – Julio 2008 595 . condicione la instrucción de manera que sólo se ejecute cuando ocurra una transición. mueva el miembro LEN del tag Source al miembro LEN del tag Serial Port Control. El bit de efectuado indica que ha finalizado la instrucción. 3. Descripción: La instrucción AWT envía el número especificado de caracteres (Serial Port Control Length) del tag Source al dispositivo conectado al puerto serie del controlador. AWA. Ésta es una instrucción transicional: • En la lógica de escalera de relés. ACL. cambie la condición de entrada del renglón de borrado a establecido cada vez que deba ejecutarse la instrucción. ¿Envía usted siempre el mismo número de caracteres cada vez que se ejecuta la instrucción? Si la respuesta es afirmativa la respuesta es negativa Entonces En Serial Port Control Length. Antes de que se ejecute la instrucción.Instrucciones para puerto serie ASCII (ABL. El bit de ejecución indica que la instrucción se está ejecutando. ACB. pero es asíncrono respecto al escán de la lógica. AWT) Capítulo 17 Estructura SERIAL_PORT_CONTROL Mnemónico . El error contiene un valor hexadecimal que identifica la causa del error.EM . El bit de vacío indica que finalizó la instrucción.RN . La condición de salida de renglón se establece como falsa. n. ejecución de la instrucción La instrucción envía un número especificado de caracteres. Los bits de estado restantes.EN se establece. el cual indica el fin del mensaje. a. falsa. El bit . EnableIn siempre se establece. El último carácter es el retorno de carro ($r). n. post-escán La condición de salida de renglón se establece como Ninguna. La condición de salida de renglón se establece como verdadera. a. excepto . Ejemplo 1: Cuando la temperatura llega al límite bajo (temp_low se establece). La instrucción se ejecuta. La instrucción trata de entrar en la cola ASCII. El mensaje contiene nueve caracteres del miembro DATA del tag string[2]. AHL. AWA. EnableIn se establece n.Capítulo 17 Instrucciones para puerto serie ASCII (ABL. ARL. se borran. que es una cadena. La instrucción se ejecuta cuando la condición de entrada del renglón cambia de borrado a establecido. Lógica de escalera de relés 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 Publicación 1756-RM003K-ES-P – Julio 2008 . la instrucción AWT envía un mensaje al terminal MessageView que está conectado al puerto serie del controlador. AWT) Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés Acción de texto estructurado La condición de salida de renglón se establece como Ninguna. (El $14 se cuenta como un carácter. ARD. Es el código hexadecimal del carácter Ctrl-T).UL. a. ACB. falsa. ACL. AWT(0. ACB. IF (osri_1. el renglón primero pasa la longitud de la cadena (MV_msg. ARL.OutputBit) THEN temp_low_write.OutputBit) THEN MV_write.LEN Source MV_msg.string[2]. ARD.MV_write). Puesto que el número de caracteres en MV_msg varía.temp_low_write).Instrucciones para puerto serie ASCII (ABL. ACL. Es el código hexadecimal del carácter Ctrl-V.InputBit := temp_low. AWT) Capítulo 17 Texto estructurado osri_1. END_IF. En MV_msg.MV_msg.LEN := 9. AHL. el $16 se cuenta como un carácter. AWT(0.LEN.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.LEN Dest. Dest AWT AWT EN EN DN DN ER ER 10 MV_write.LEN := Mv_msg. OSRI(osri_1). END_IF. IF (osri_1. OSRI(osri_1). AWA. Lógica de escalera de relés MV_update MV_update MOV MOV Move Move Source MV_msg. Ejemplo 2: Cuando MV_update se establece. la instrucción AWT envía los caracteres en MV_msg.InputBit := MV_update. Publicación 1756-RM003K-ES-P – Julio 2008 597 .LEN) a Serial Port Control Length de la instrucción AWT (MV_write.LEN).LEN MV_write. AHL. ARL. ACL. ACB. AWA.Capítulo 17 Instrucciones para puerto serie ASCII (ABL. AWT) Notas: 598 Publicación 1756-RM003K-ES-P – Julio 2008 . ARD. INT. DINT o REAL Use esta instrucción CMP EQU NEQ GEQ GRT LEQ LES SWPB FSC STOD Vea la página 206 211 242 211 219 223 227 300 347 614 599Publicación 1756-RM003K-ES-P – Julio 2008 599 . FIND. DINT o REAL encontrar una cadena en una matriz de cadenas convertir caracteres en un valor SINT.Capítulo 18 Instrucciones de cadena ASCII (CONCAT. DELETE. MID) Introducción Si desea añadir caracteres al final de una cadena Use las instrucciones de cadena ASCII para modificar y crear cadenas de caracteres ASCII. INSERT. Por ejemplo añadir caracteres de terminación o delimitadores a una cadena Use esta instrucción CONCAT Disponible en estos lenguajes lógica de escalera de relés texto estructurado Vea la página 601 eliminar caracteres de una cadena eliminar caracteres de encabezado o control de una cadena DELETE lógica de escalera de relés texto estructurado 603 determinar el carácter inicial de una subcadena hallar un grupo de caracteres dentro de una cadena FIND lógica de escalera de relés texto estructurado 605 insertar caracteres dentro de una cadena crear una cadena que usa variables INSERT lógica de escalera de relés texto estructurado 607 extraer caracteres de una cadena extraer información de un código de barra MID lógica de escalera de relés texto estructurado 609 También 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 específicos determinar si los caracteres son diferentes a caracteres específicos determinar si los caracteres son mayores o iguales que caracteres específicos determinar si los caracteres son mayores que caracteres específicos determinar si los caracteres son menores o iguales que caracteres específicos determinar si los caracteres son menores que caracteres específicos reacomodar los bytes de un tag INT. El miembro DATA puede contener caracteres adicionales antiguos. • Usted puede crear un nuevo tipo de datos de cadena que almacene menos o más caracteres. • Cada elemento de la matriz DATA contiene un carácter. • Puede usar el tipo de datos STRING predeterminado. para acceder a los caracteres del tag string_1. 600 Publicación 1756-RM003K-ES-P – Julio 2008 . DATA Matriz SINT caracteres ASCII de la cadena • Para obtener acceso a los caracteres de la cadena. utilice el nombre del tag. introduzca string_1. DELETE. INT. Para crear un nuevo tipo de datos de cadena. MID) Si desea convertir caracteres en un valor REAL convertir un valor SINT. los cuales no se incluyen en el conteo LEN. FIND. consulte el documento Logix5000 Controllers Common Procedures. INSERT. Por ejemplo. • Usted puede crear nuevos tipos de datos de cadena que almacenen menos o más caracteres. Cada tipo de datos de cadena contiene los siguientes miembros: Nombre LEN Tipo de datos Descripción DINT número de caracteres en la cadena Notas El LEN se actualiza automáticamente al nuevo conteo de caracteres cuando usted: • usa el cuadro de diálogo String Browser para introducir caracteres • usa las instrucciones que leen. convierten o manipulan una cadena El LEN muestra la longitud de la cadena actual.Capítulo 18 Instrucciones de cadena ASCII (CONCAT. publicación 1756-PM001. DINT o REAL en una cadena de caracteres ASCII convertir un valor REAL en una cadena de caracteres ASCII Use esta instrucción STOR DTOS RTOS Vea la página 616 619 621 Tipos de datos de cadena Los caracteres ASCII se almacenan en tags que usan un tipo de datos de cadena. Almacena hasta 82 caracteres. • A menos que Source A y Destination sean el mismo tag. Lógica de escalera de relés 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. 2. Source A no cambia. DELETE.SourceB. Indicadores de estado aritmético: no afectados Condiciones de fallo: Tipo 4 Código 51 Causa El valor LEN del tag de cadena es mayor que el tamaño de DATA del tag de cadena. Descripción: La instrucción CONCAT combina los caracteres en Source A con los caracteres en Source B y coloca el resultado en Destination. Método de recuperación 1.Instrucciones de cadena ASCII (CONCAT. Verifique que ninguna instrucción esté escribiendo en el miembro LEN del tag de cadena. Los operandos son iguales a los de la instrucción CONCAT de lógica de escalera de relés. En el valor LEN. • Los caracteres de Source A son los primeros. seguidos por los caracteres de Source B. INSERT. Publicación 1756-RM003K-ES-P – Julio 2008 601 . MID) Capítulo 18 Concatenación de cadenas (CONCAT) Operandos: CONCAT CONCAT Sting Concatenate String Concatenate Source A A Source ?? ???? Source ?? Source B B ???? Dest ?? Dest ???? La instrucción CONCAT añade caracteres ASCII al final de una cadena. FIND. introduzca el número de caracteres que contiene la cadena. Dest). msg). DELETE.Capítulo 18 Instrucciones de cadena ASCII (CONCAT. n. Lógica de escalera de relés 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. END_IF. La instrucción se ejecuta. ejecución de la instrucción post-escán La instrucción concatena las cadenas. Cuando add_node se establece. Ninguna. la instrucción CONCAT añade los caracteres en node_num_ascii (número de nodo) al final de los caracteres en string_1 y posteriormente almacena el resultado en msg. FIND. La condición de salida de renglón se establece como falsa. La condición de salida de renglón se establece como falsa. MID) Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés Acción de texto estructurado La condición de salida de renglón se establece como Ninguna. a. La instrucción se ejecuta. EnableIn se establece n. a. el controlador debe enviar una cadena ASCII que contenga un número de mensaje y número de nodo. Ejemplo: Para activar un mensaje en un terminal MessageView. String_1 contiene el número de mensaje.node_num_ascii. n. INSERT. add_node := 0. a. EnableIn siempre se establece. La condición de salida de renglón se establece como verdadera. 602 Publicación 1756-RM003K-ES-P – Julio 2008 . falsa. Publicación 1756-RM003K-ES-P – Julio 2008 603 . INSERT. Descripción: La instrucción DELETE elimina (retira) un grupo de caracteres de Source y coloca los caracteres restantes en Destination. Destination cadena tag tag para almacenar el resultado Texto estructurado DELETE(Source.Start. Start SINT INT DINT inmediato tag la posición del primer carácter que se debe eliminar Introduzca un número entre 1 y el tamaño de DATA de Source. FIND.Instrucciones de cadena ASCII (CONCAT. • La posición Start así como Quantity definen los caracteres a retirar. Source no cambia. DELETE. Dest). Los operandos son iguales a los de la instrucción DELETE de lógica de escalera de relés. • A menos que Source y Destination sean el mismo tag. Lógica de escalera de relés ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 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 número de caracteres que se desea eliminar Start así como Quantity deben ser menores o iguales al tamaño de DATA de Source.Qty. MID) Capítulo 18 Eliminación de cadena (DELETE) Operandos: DELETE DELETE Sting Delete String Delete Source Source Qty Qty Start Start Dest Dest La instrucción DELETE retira los caracteres ASCII de una cadena. EM THEN DELETE(term_input. Acción de texto estructurado Ninguna. 1. 2.EM is set). INSERT. La condición de salida de renglón se establece como falsa.EM se establece) la instrucción DELETE retira el carácter de encabezado (term_read. El valor de Start o Quantity no es válido.1. Ejemplo: La información ASCII de un terminal contiene un carácter de encabezado. Verifique que ninguna instrucción esté escribiendo en el miembro LEN del tag de cadena. En el valor LEN. Método de recuperación 1. term_read. introduzca el número de caracteres que contiene la cadena. La condición de salida de renglón se establece como falsa.1. a. Ninguna. 2.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. n.EM := 0. a.term_text). La instrucción se ejecuta. DELETE. ejecución de la instrucción post-escán La instrucción elimina los caracteres especificados. EnableIn se establece n. 604 Publicación 1756-RM003K-ES-P – Julio 2008 . FIND. La condición de salida de renglón se establece como verdadera. 4 56 Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. La instrucción se ejecuta. MID) Indicadores de estado aritmético: no afectados Condiciones de fallo: Tipo 4 Código 51 Causa El valor LEN del tag de cadena es mayor que el tamaño de DATA del tag de cadena. n. Verifique que el valor de Start más el valor Quantity sea menor o igual que el tamaño de DATA de Source. Lógica de escalera de relés term_read.Capítulo 18 Instrucciones de cadena ASCII (CONCAT. a. Después de que el controlador lee los datos (term_read. EnableIn siempre se establece. Verifique que el valor de Start esté entre 1 y el tamaño de DATA de Source. END_IF. INSERT. Si la instrucción encuentra la cadena Search. MID) Capítulo 18 Encontrar cadena (FIND) Operandos: FIND FIND Find String Find String Source Source Search Search Start Start Result Result La instrucción FIND localiza la posición de una cadena especificada dentro de otra cadena. Lógica de escalera de relés ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? Operando Source Buscar Tipo cadena cadena Formato tag tag Introduzca cadena en que se debe buscar la cadena que se debe buscar la posición en Source en la cual se debe iniciar la búsqueda Notas Los tipos de datos de cadena son: • tipo de datos STRING predeterminado • cualquier tipo de datos nuevo que usted cree Introduzca un número entre 1 y el tamaño de DATA de Source. Result muestra la posición de inicio de la cadena Search dentro de la cadena Source.Search. Publicación 1756-RM003K-ES-P – Julio 2008 605 .Start. Start SINT INT DINT inmediato tag Result SINT INT DINT tag el tag que almacena la posición inicial de la cadena que se debe buscar Texto estructurado FIND(Source. Verifique que el valor de Start esté entre 1 y el tamaño de DATA de Source.Instrucciones de cadena ASCII (CONCAT. Indicadores de estado aritmético: no afectados Condiciones de fallo: Tipo 4 Código 51 Causa El valor LEN del tag de cadena es mayor que el tamaño de DATA del tag de cadena. 2. DELETE. Método de recuperación 1. Los operandos son iguales a los de la instrucción FIND de lógica de escalera de relés antes descritos. Descripción: La instrucción FIND busca en la cadena Source la cadena Search. En el valor LEN. Verifique que ninguna instrucción esté escribiendo en el miembro LEN del tag de cadena. Result). FIND. introduzca el número de caracteres que contiene la cadena. 4 56 El valor de Start no es válido. a.Capítulo 18 Instrucciones de cadena ASCII (CONCAT. 606 Publicación 1756-RM003K-ES-P – Julio 2008 . EnableIn siempre se establece. La barra diagonal invertida [ \ ] separa cada fragmento de información. MID) Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés Acción de texto estructurado La condición de salida de renglón se establece como Ninguna.find. La condición de salida de renglón se establece como falsa. DELETE.1. falsa. Lógica de escalera de relés MV_read. END_IF. n. la instrucción FIND busca el carácter correspondiente a la barra diagonal invertida y registra su posición en find_pos. ejecución de la instrucción post-escán La instrucción busca los caracteres especificados.EM THEN FIND(MV_msg. La instrucción se ejecuta.EM := 0. n.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. INSERT. Para ubicar un fragmento de información. La instrucción se ejecuta. MV_read. a. falsa. La condición de salida de renglón se establece como Ninguna. FIND. EnableIn se establece n.find_pos). a. La condición de salida de renglón se establece como verdadera. Ejemplo: Un mensaje de un terminal MessageView contiene varios componentes de información. En el valor LEN.Dest). Lógica de escalera de relés ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 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 añadir los caracteres • tipo de datos STRING predeterminado la cadena que contiene los • cualquier tipo de datos nuevo que usted caracteres que se deben cree añadir la posición en Source A a la Introduzca un número entre 1 y el tamaño de DATA de Source. Verifique que el valor de Start esté entre 1 y el tamaño de DATA de Source. Descripción: La instrucción INSERT añade los caracteres en Source B a una posición designada dentro de Source A y coloca el resultado en Destination: • Inicio define dónde se añade en Source A dicho Source B. • A menos que SourceA y Destination sean el mismo tag. MID) Capítulo 18 Insertar cadena (INSERT) Operandos: INSERT INSERT Insert String Insert String Source A A Source Source B B Source Start Start Dest Dest La instrucción INSERT añade caracteres ASCII a un lugar especificado dentro de una cadena. FIND. Indicadores de estado aritmético: no afectados Condiciones de fallo: Tipo 4 Código 51 Causa El valor LEN del tag de cadena es mayor que el tamaño de DATA del tag de cadena. DELETE. Start. 2. Publicación 1756-RM003K-ES-P – Julio 2008 607 . INSERT. Source A no cambia.SourceB. introduzca el número de caracteres que contiene la cadena. cual se deben añadir los caracteres Start SINT INT DINT inmediato tag Result cadena tag cadena para almacenar el resultado Texto estructurado INSERT(SourceA. Verifique que ninguna instrucción esté escribiendo en el miembro LEN del tag de cadena. Los operandos son iguales a los de la instrucción INSERT de lógica de escalera de relés.Instrucciones de cadena ASCII (CONCAT. 4 56 El valor de Start no es válido. Método de recuperación 1. DELETE. a. la instrucción INSERT añade los caracteres en string_2 a la posición 2 dentro de string_1 y coloca el resultado en string_3: Lógica de escalera de relés 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. a. La condición de salida de renglón se establece como falsa. EnableIn siempre se establece. FIND. MID) Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés Acción de texto estructurado La condición de salida de renglón se establece como Ninguna. falsa. INSERT. La instrucción se ejecuta.string_3). END_IF.string_2. La condición de salida de renglón se establece como verdadera. Ninguna. ejecución de la instrucción post-escán La instrucción inserta los caracteres especificados. La instrucción se ejecuta. a. La condición de salida de renglón se establece como falsa. n. Ejemplo: Cuando temp_high se establece.Capítulo 18 Instrucciones de cadena ASCII (CONCAT. temp_high := 0. EnableIn se establece n.2. n. 608 Publicación 1756-RM003K-ES-P – Julio 2008 . Instrucciones de cadena ASCII (CONCAT.Start. Lógica de escalera de relés ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 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 número de caracteres que se desea copiar Start así como Quantity deben ser menores o iguales al tamaño de DATA de Source. DELETE. Indicadores de estado aritmético: no afectados Publicación 1756-RM003K-ES-P – Julio 2008 609 . INSERT. Source no cambia. Los operandos son iguales a los de la instrucción MID de lógica de escalera de relés. MID) Capítulo 18 Cadena central (MID) Operandos: MID MID Middle String Middle String Source Source Qty Qty Start Start Dest Dest La instrucción MID copia un número especificado de caracteres ASCII de una cadena y los almacena en otra cadena. Destination cadena tag la cadena a la cual se deben copiar los caracteres Texto estructurado MID(Source. Dest). • A menos que Source y Destination sean el mismo tag. Descripción: La instrucción MID copia un grupo de caracteres desde Source y coloca el resultado en Destination. • La posición Start así como Quantity definen los caracteres a copiar. Start SINT INT DINT inmediato tag la posición del primer Introduzca un número entre 1 y el tamaño de carácter que se debe copiar DATA de Source. FIND.Qty. cada maleta tiene un código de barras. FIND. La condición de salida de renglón se establece como falsa. 2. 4 56 Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. Los caracteres 9 a 17 del código de barra corresponden al número de vuelo y aeropuerto de destino de la maleta. En el valor LEN. DELETE. n. El valor de Start o Quantity no es válido. Ninguna. La instrucción se ejecuta. Acción de texto estructurado Ninguna.EM se establece) la instrucción MID copia el número de vuelo y aeropuerto de destino en la cadena bag_flt_and_dest. INSERT. a. ejecución de la instrucción post-escán La instrucción MID copia los caracteres especificados de una cadena y los almacena en otra cadena. La condición de salida de renglón se establece como verdadera.9. EnableIn se establece n.Capítulo 18 Instrucciones de cadena ASCII (CONCAT. Lógica de escalera de relés bag_read. Verifique que el valor de inicio esté entre 1 y el tamaño de DATA de Source. MID) Condiciones de fallo: Tipo 4 Código 51 Causa El valor LEN del tag de cadena es mayor que el tamaño de DATA del tag de cadena. La condición de salida de renglón se establece como falsa. La instrucción se ejecuta. introduzca el número de caracteres que contiene la cadena. n. 1. a. Ejemplo: En un transportador de manejo de maletas de un aeropuerto. 2.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. Verifique que ninguna instrucción esté escribiendo en el miembro LEN del tag de cadena. Método de recuperación 1.bag_flt_and_dest). bag_read. Después de que se lee el código de barras (bag_read. a. Verifique que el valor de Start más el valor de Quantity sea menor o igual que el tamaño de DATA de Source.EM THEN MID(bar_barcode. END_IF.EM := 0. 610 Publicación 1756-RM003K-ES-P – Julio 2008 . EnableIn siempre se establece.9. STOR. DTOS. RTOS. INT. UPPER. DINT o REAL en una cadena de caracteres ASCII convertir un valor REAL en una cadena de caracteres ASCII Use las instrucciones de conversión ASCII para alterar el formato de los datos. LOWER) Introducción Si desea convertir la representación ASCII de un valor entero en un valor SINT. Por ejemplo convertir un valor proveniente de una báscula u otro dispositivo ASCII en un número entero para usarlo en la lógica convertir un valor proveniente de una báscula u otro dispositivo ASCII en un valor REAL para usarlo en la lógica 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 mayúsculas una entrada hecha por un operador para poder buscarla en una matriz convertir en minúsculas una entrada hecha por un operador para poder buscarla en una matriz Use esta instrucción STOD Disponible en estos lenguajes lógica de escalera de relés texto estructurado STOR lógica de escalera de relés texto estructurado DTOS lógica de escalera de relés texto estructurado RTOS lógica de escalera de relés texto estructurado 621 619 616 Vea la página 614 convertir en mayúsculas las letras de una cadena de caracteres ASCII UPPER lógica de escalera de relés texto estructurado 623 convertir en minúsculas las letras en una cadena de caracteres ASCII LOWER lógica de escalera de relés texto estructurado 625 611Publicación 1756-RM003K-ES-P – Julio 2008 611 . INT. DINT o REAL convertir la representación ASCII de un valor de punto flotante (coma flotante) en un valor REAL convertir un valor SINT.Capítulo 19 Instrucciones de conversión ASCII (STOD. DTOS. LOWER) También es posible usar las siguientes instrucciones para comparar o manipular caracteres ASCII: Si desea añadir caracteres al final de una cadena eliminar caracteres de una cadena identificar el carácter inicial de una subcadena insertar caracteres dentro de una cadena extraer caracteres de una cadena reacomodar los bytes de un tag INT. UPPER. RTOS.Capítulo 19 Instrucciones de conversión ASCII (STOD. STOR. DINT o REAL comparar una cadena con otra cadena determinar si los caracteres son iguales a caracteres específicos determinar si los caracteres son diferentes a caracteres específicos determinar si los caracteres son mayores o iguales que caracteres específicos determinar si los caracteres son mayores que caracteres específicos determinar si los caracteres son menores o iguales que caracteres específicos determinar si los caracteres son menores que caracteres específicos encontrar una cadena en una matriz de cadenas Use esta instrucción CONCAT DELETE FIND INSERT MID SWPB CMP EQU NEQ GEQ GRT LEQ LES FSC Vea la página 601 603 605 607 609 300 206 211 242 215 219 223 227 347 612 Publicación 1756-RM003K-ES-P – Julio 2008 . convierten o manipulan una cadena El LEN muestra la longitud de la cadena actual. UPPER. Por ejemplo. • Usted puede crear un nuevo tipo de datos de cadena que almacene menos o más caracteres. LOWER) Capítulo 19 Tipos de datos de cadena Los caracteres ASCII se almacenan en tags que usan un tipo de datos de cadena. introduzca string_1. STOR. DTOS.Instrucciones de conversión ASCII (STOD. RTOS. • Usted puede crear nuevos tipos de datos de cadena que almacenen menos o más caracteres. Para crear un nuevo tipo de datos de cadena. DATA Matriz SINT caracteres ASCII de la cadena • Para obtener acceso a los caracteres de la cadena. consulte el documento Logix5000 Controllers Common Procedures. que almacena hasta 82 caracteres. Cada tipo de datos de cadena contiene los siguientes miembros: Nombre: LEN Tipo de datos: DINT Descripción: número de caracteres en la cadena Notas: El LEN se actualiza automáticamente con el nuevo conteo de los caracteres cuando usted: • usa el cuadro de diálogo String Browser para introducir caracteres • usa instrucciones que leen. • Cada elemento de la matriz DATA contiene un carácter. El miembro DATA puede contener caracteres adicionales antiguos. Publicación 1756-RM003K-ES-P – Julio 2008 613 . publicación 1756-PM001. los cuales no se incluyen en el conteo LEN. • Puede usar el tipo de datos STRING predeterminado. para acceder a los caracteres del tag string_1. utilice el nombre del tag. Dest). Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. UPPER. DTOS.Capítulo 19 Instrucciones de conversión ASCII (STOD. RTOS. • Si la cadena Source contiene caracteres no numéricos. la instrucción convierte solamente la parte no fraccionaria del número (independientemente del tipo de datos de destino). Descripción: STOD convierte Source a un valor entero y coloca el resultado en Destination. LOWER) Cadena en DINT (STOD) Operandos: La instrucción STOD convierte la representación ASCII de un número entero en un valor entero o REAL. Lógica de escalera de relés 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 número de punto flotante (coma flotante). • La instrucción convierte números positivos y negativos. STOR. la instrucción convierte solamente el primer grupo de números. 614 Publicación 1756-RM003K-ES-P – Julio 2008 . /). Texto estructurado Los operandos son iguales a los de la instrucción STOD de lógica de escalera de relés. STOD convierte el primer conjunto de números contiguos: – La instrucción ignora los caracteres de control inicial y caracteres no numéricos (excepto el signo menos frente a un número). STOD(Source. – Si la cadena contiene múltiples grupos de números separados por delimitadores (por ejemplo. DTOS. LOWER) Capítulo 19 Condiciones de fallo Tipo 4 Código 51 Causa El valor LEN del tag de cadena es mayor que el tamaño de DATA del tag de cadena. la instrucción STOD convierte en un valor entero el primer conjunto de caracteres numéricos de MV_msg.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 Publicación 1756-RM003K-ES-P – Julio 2008 615 . La condición de salida de renglón se establece como falsa.Instrucciones de conversión ASCII (STOD. a. Lógica de escalera de relés MV_read. EnableIn se establece n. Verifique que ninguna instrucción esté escribiendo en el miembro LEN del tag de cadena. a. a. S:Z se establece. 4 53 El número de salida sobrepasa los límites del tipo de datos de destino. Ninguna. 2. post-escán La condición de salida de renglón se establece como falsa. La instrucción se ejecuta. La instrucción ignora el carácter de control inicial ($06) y se detiene en el delimitador ( \ ). n. EnableIn siempre se establece. Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. STOR. UPPER. n. • Use un tipo de datos mayor para el destino. En el valor LEN. Si el resultado es cero. Método de recuperación 1. introduzca el número de caracteres que contiene la cadena. ejecución de la instrucción SC se establece Destination se borra. La instrucción se ejecuta. La condición de salida de renglón se establece como verdadera. Acción de texto estructurado Ninguna. Ejemplo: Cuando MV_read. Realice uno de los siguientes: • Reduzca el tamaño del valor ASCII.EM se establece. La instrucción convierte Source. RTOS. LOWER) Texto estructurado IF MV_read. • La instrucción convierte números positivos y negativos. /). ]: – La instrucción ignora los caracteres de control inicial o caracteres no numéricos (excepto el signo menos frente a un número). 616 Publicación 1756-RM003K-ES-P – Julio 2008 . MV_read.EM := 0. Indicadores de estado aritmético: Los indicadores de estado aritmético son afectados. END_IF. RTOS. STOR. Texto estructurado Los operandos son iguales a los de la instrucción STOR de lógica de escalera de relés. UPPER. – Si la cadena contiene varios grupos de números separados por delimitadores (por ejemplo.Capítulo 19 Instrucciones de conversión ASCII (STOD.MV_msg_nmbr). la instrucción convierte solamente el primer grupo de números.Dest). Descripción: La instrucción STOR convierte Source en un valor REAL y coloca el resultado en Destination. STOR convierte el primer conjunto de números contiguos. 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. Cadena en REAL (STOR) Operandos: STOR STOR String toto Real String Real Source Source Dest Dest La instrucción STOR convierte en un valor REAL la representación ASCII de un valor de punto flotante (coma flotante). DTOS. • Si la cadena Source contiene caracteres no numéricos.EM THEN STOD(MV_msg. inclusive el punto decimal [ . DTOS. La instrucción se ejecuta. La instrucción convierte Source.EM STOR STOR String to Real String to Real Source weight_axcii Source weight_ascii ’428. EnableIn se establece n. UPPER.EM se establece) la instrucción STOR convierte en un valor REAL los caracteres numéricos de weight_ascii. Ninguna. LOWER) Capítulo 19 Condiciones de fallo: Tipo 4 Código 51 Causa El valor LEN del tag de cadena es mayor que el tamaño de DATA del tag de cadena. La instrucción se ejecuta. n. Si el resultado es cero. ejecución de la instrucción S:C se establece. Acción de texto estructurado Ninguna.259’ '428.259 428. a. post-escán La condición de salida de renglón se establece como falsa. introduzca el número de caracteres que contiene la cadena. n. La condición de salida de renglón se establece como falsa. a.259 Publicación 1756-RM003K-ES-P – Julio 2008 617 . Realice uno de los siguientes: • Reduzca el tamaño del valor ASCII. Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. 2.259' Dest weight Dest weight 428. Destination se borra. a. Verifique que ninguna instrucción esté escribiendo en el miembro LEN del tag de cadena. En el valor LEN. Ejemplo: Después de leer el resultado del pesaje en una báscula (weight_read. Método de recuperación 1. Lógica de escalera de relés weight_read. La condición de salida de renglón se establece como verdadera. RTOS. EnableIn siempre se establece.Instrucciones de conversión ASCII (STOD. Es posible que se perciba una pequeña diferencia entre las partes fraccionarias de Source y Destination. • Use un tipo de datos mayor para el destino. S:Z se establece. 4 53 El número de salida sobrepasa los límites del tipo de datos de destino. STOR. Capítulo 19 Instrucciones de conversión ASCII (STOD. DTOS.EM := 0. UPPER. STOR. 618 Publicación 1756-RM003K-ES-P – Julio 2008 .EM THEN STOR(weight_ascii.weight). RTOS. END_IF. weight_read. LOWER) Texto estructurado IF weight_read. LOWER) Capítulo 19 DINT en cadena (DTOS) Operandos: DTOS DTOS DINT to to String DINT String Source Source Dest Dest La instrucción DTOS produce la representación ASCII de un valor. Descripción: La instrucción DTOS convierte Source en una cadena de caracteres ASCII y coloca el resultado en Destination. STOR. Prepare un nuevo tipo de datos de cadena que sea suficientemente grande para la cadena de salida. 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. Método de recuperación 1. 2. RTOS. Indicadores de estado aritmético: no afectados Condiciones de fallo: Tipo 4 Código 51 Causa El valor LEN del tag de cadena es mayor que el tamaño de DATA del tag de cadena.Instrucciones de conversión ASCII (STOD. Texto estructurado Los operandos son iguales a los de la instrucción DTOS de lógica de escalera de relés. Consulte REAL en un número entero en la página 640. UPPER. En el valor LEN. Publicación 1756-RM003K-ES-P – Julio 2008 619 . 4 52 La cadena de salida es mayor que el destino. Lógica de escalera de relés ?? ?? ?? ?? ?? ?? Operando Source Tipo SINT INT DINT REAL Formato tag Introduzca Notas el tag que contiene el valor Si Source es un número REAL.Dest). introduzca el número de caracteres que contiene la cadena. Verifique que ninguna instrucción esté escribiendo en el miembro LEN del tag de cadena. Use el nuevo tipo de datos de cadena como tipo de datos para el destino. la instrucción lo convierte en un valor DINT. DTOS. falsa. LOWER) Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés Acción de texto estructurado La condición de salida de renglón se establece como Ninguna. a. EnableIn siempre se establece. Lógica de escalera de relés 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. Los renglones subsiguientes insertan o concatenan msg_num_ascii con otras cadenas a fin de producir un mensaje completo para un terminal de pantalla. La instrucción se ejecuta. STOR. Ejemplo: Cuando temp_high se establece. RTOS. La instrucción se ejecuta.msg_num_ascii). la instrucción DTOS convierte en una cadena de caracteres ASCII el valor en msg_num y coloca el resultado en msg_num_ascii. DTOS. La condición de salida de renglón se establece como falsa. 620 Publicación 1756-RM003K-ES-P – Julio 2008 . n. La condición de salida de renglón se establece como verdadera. n. falsa. EnableIn se establece n. ejecución de la instrucción post-escán La instrucción convierte Source. La condición de salida de renglón se establece como Ninguna. UPPER. temp_high := 0. a. END_IF.Capítulo 19 Instrucciones de conversión ASCII (STOD. a. Verifique que ninguna instrucción esté escribiendo en el miembro LEN del tag de cadena. STOR. Lógica de escalera de relés ?? ???? ?? ???? 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. 4 52 La cadena de salida es mayor que el destino. En el valor LEN. UPPER. Publicación 1756-RM003K-ES-P – Julio 2008 621 . RTOS. Use el nuevo tipo de datos de cadena como tipo de datos para el destino.Dest). LOWER) Capítulo 19 REAL en cadena (RTOS) Operandos: RTOS RTOS Real to to String Real String Source Source Dest Dest La instrucción RTOS produce la representación ASCII de un valor REAL. Texto estructurado Los operandos son iguales a los de la instrucción RTOS de lógica de escalera de relés. Método de recuperación 1. Prepare un nuevo tipo de datos de cadena que sea suficientemente grande para la cadena de salida. introduzca el número de caracteres que contiene la cadena. 2.Instrucciones de conversión ASCII (STOD. Indicadores de estado aritmético: no afectados Condiciones de fallo: Tipo 4 Código 51 Causa El valor LEN del tag de cadena es mayor que el tamaño de DATA del tag de cadena. Descripción: La instrucción RTOS convierte Source a una cadena de caracteres ASCII y coloca el resultado en Destination. DTOS. 622 Publicación 1756-RM003K-ES-P – Julio 2008 .data_1_ascii). La condición de salida de renglón se establece como falsa. falsa. EnableIn se establece n.3001 Dest data_1_ascii Dest data_1_ascii ’15. n.Capítulo 19 Instrucciones de conversión ASCII (STOD. La instrucción se ejecuta. a. LOWER) Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés Acción de texto estructurado La condición de salida de renglón se establece como Ninguna. END_IF. La condición de salida de renglón se establece como verdadera. EnableIn siempre se establece. a.301003’ '15. STOR. Los renglones subsiguientes insertan o concatenan data_1_ascii con otras cadenas para producir un mensaje completo para un terminal de pantalla. ejecución de la instrucción post-escán La instrucción convierte Source.3001003' Texto estructurado IF send_data THEN RTOS(data_1. La instrucción se ejecuta. n. send_data := 0.3001 15. DTOS. La condición de salida de renglón se establece como Ninguna. UPPER. a. falsa. Ejemplo: Cuando send_data se establece. Lógica de escalera de relés send_data RTOS RTOS Real to String Real to String Source data_1 Source data_1 15. RTOS. la instrucción RTOS convierte en una cadena de caracteres ASCII el valor en data_1 y coloca el resultado en data_1_ascii. Es posible que se perciba una pequeña diferencia entre las partes fraccionarias de Source y Destination. Texto estructurado Los operandos son iguales a los de la instrucción UPPER de lógica de escalera de relés. n. • Si los operadores introducen directamente caracteres ASCII. DTOS. LOWER) Capítulo 19 Mayúsculas (UPPER) Operandos: La instrucción UPPER convierte en mayúsculas los caracteres alfabéticos de una cadena. Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. STOR. La “A” mayúscula ($41) es diferente a la “a” minúscula ($61). Los caracteres en la cadena Source que no son letras permanecen iguales. UPPER. convierta en mayúsculas o minúsculas todos los caracteres antes de compararlos. Descripción: La instrucción UPPER convierte en mayúsculas todas las letras en Source y coloca el resultado en Destination. La condición de salida de renglón se establece como verdadera. Publicación 1756-RM003K-ES-P – Julio 2008 623 . La condición de salida de renglón se establece como falsa.Dest). Acción de texto estructurado Ninguna. n. La instrucción se ejecuta. RTOS. a.Instrucciones de conversión ASCII (STOD. • Los caracteres ASCII permiten distinguir mayúsculas de minúsculas. a. Lógica de escalera de relés Operando Source Destination Tipo cadena cadena Formato tag tag Descripción el tag que contiene los caracteres que usted desea convertir en mayúsculas el tag para almacenar los caracteres en mayúsculas UPPER(Source. La condición de salida de renglón se establece como falsa. UPPER. un operador introduce el número de catálogo del ítem en el terminal ASCII.Capítulo 19 Instrucciones de conversión ASCII (STOD. RTOS.a. STOR. Lógica de escalera de relés Texto estructurado IF terminal_read. END_IF.EM se establece). La instrucción se ejecuta.EM THEN UPPER(catalog_number. ejecución de la instrucción post-escán La instrucción convierte Source en mayúsculas. 624 Publicación 1756-RM003K-ES-P – Julio 2008 .EM := 0. un renglón subsiguiente busca en la matriz los caracteres que coinciden con los de catalog_number_upper_case.catalog_number_upper_case). terminal_read. Posteriormente. Después de que el controlador lee la entrada proveniente de un terminal (terminal_read. LOWER) Condición EnableIn se establece Acción de lógica de escalera de relés n . Acción de texto estructurado EnableIn siempre se establece. la instrucción UPPER convierte en mayúsculas todos los caracteres de catalog_number y almacena el resultado en catalog_number_upper_case. DTOS. Ninguna. Ejemplo: Para encontrar información acerca de un ítem especifico. UPPER. LOWER) Capítulo 19 Minúsculas (Lower Case (LOWER)) Operandos: La instrucción LOWER convierte en minúsculas los caracteres alfabéticos de una cadena. La “A” mayúscula ($41) es diferente a la “a” minúscula ($61). DTOS. Los caracteres de la cadena Source que no son letras permanecen iguales. Acción de texto estructurado Ninguna.Instrucciones de conversión ASCII (STOD. La condición de salida de renglón se establece como falsa. Lógica de escalera de relés Operando Source Destination Tipo cadena cadena Formato tag tag Descripción el tag que contiene los caracteres que usted desea convertir en minúsculas el tag para almacenar los caracteres en minúsculas LOWER(Source. • Los caracteres ASCII permiten distinguir mayúsculas de minúsculas. Publicación 1756-RM003K-ES-P – Julio 2008 625 . convierta en mayúsculas o minúsculas todos los caracteres antes de compararlos. n. a. La instrucción se ejecuta. RTOS. Descripción: La instrucción LOWER convierte en minúsculas todas las letras en Source y coloca el resultado en Destination. n. • Si los operadores introducen directamente caracteres ASCII. Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa. a. STOR.Dest). Texto estructurado Los operandos son iguales a los de la instrucción LOWER de lógica de escalera de relés. La condición de salida de renglón se establece como verdadera. Ninguna. RTOS. un renglón subsiguiente busca en la matriz los caracteres que coinciden con los de item_number_lower_case. un operador introduce el número de catálogo en un terminal ASCII. a. Después de que el controlador lee la entrada proveniente de un terminal (terminal_read. STOR. Acción de texto estructurado EnableIn siempre se establece. La instrucción se ejecuta. Ejemplo: Para encontrar información acerca de un ítem especifico. 626 Publicación 1756-RM003K-ES-P – Julio 2008 . END_IF. UPPER.EM se establece) la instrucción LOWER convierte en minúsculas todos los caracteres de item_number y almacena el resultado en item_number_lower_case. terminal_read. Lógica de escalera de relés Texto estructurado IF terminal_read. ejecución de la instrucción post-escán La instrucción convierte Source en minúsculas.EM THEN LOWER(item_number.item_number_lower_case).EM := 0. Posteriormente. La condición de salida de renglón se establece como falsa. LOWER) Condición EnableIn se establece Acción de lógica de escalera de relés n. DTOS.Capítulo 19 Instrucciones de conversión ASCII (STOD. Rastrear esto BOOL. SINT. Cuando las entradas en un renglón que contiene una instrucción BPT son verdaderas. Estas instrucciones sólo son compatibles con el software RSLogix Emulate 5000. DINT.Capítulo 20 Instrucciones de depuración (BPT. El tag que tiene un valor que usted desea mostrar en la ventana de rastreo. Use esta instrucción BPT TPT Disponible en estos lenguajes lógica de escalera de relés lógica de escalera de relés Vea la página 627 631 Si desea detener la emulación del programa cuando un renglón es verdadero registrar datos que usted selecciona cuando un renglón es verdadero Puntos de interrupción (BPT) Operandos: Los puntos de interrupción detienen la emulación del programa cuando un renglón es verdadero. la instrucción BPT detiene la ejecución del programa. INT. 627Publicación 1756-RM003K-ES-P – Julio 2008 627 . con el cual usted puede emular un controlador Logix 5000 en su computadora personal. REAL tag Descripción: Los puntos de interrupción se programan con la instrucción de salida de punto de interrupción (BPT). TPT) Introducción Use las instrucciones de depuración para monitorear el estado de la lógica cuando está en condiciones determinadas por usted. Lógica de escalera de relés Operando Formato Tipo Cadena Formato tag Descripción Una cadena que establece el formateo del texto que aparece en la ventana de rastreo del punto de interrupción. El software muestra una ventana que indica que se activó el punto de interrupción y los valores que lo activaron. Cuando se activa un punto de interrupción. podría 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 precisión con un exponente. el punto de interrupción volverá a ocurrir. y %d formatea el segundo tag rastreado como valor entero decimal con signo. aunque el valor de cualquier tag puede formatearse con cualquier indicador). ATENCIÓN Formato de cadena Con la cadena de formato en las instrucciones de punto de rastreo y punto de interrupción. Si intenta aceptar una edición de renglón mientras que está activado un punto de interrupción. Usted necesita un indicador de tipo para cada tag que está rastreando con la instrucción de punto de rastreo o punto de interrupción. puede controlar cómo aparecen los tags rastreados en las ventanas de punto de interrupción o en los rastreos. usted no podrá editar su proyecto hasta que permita que continúe la ejecución. pero no podrá editarlo. texto es una cadena que describe el tag (o cualquier otro texto que usted seleccione) y %(tipo) indica el formato del tag. Por ejemplo.Capítulo 20 Instrucciones de depuración (BPT. En este caso. aparece un cuadro de diálogo que indica que el controlador no está en el modo correcto. el emulador reanuda la ejecución del programa. Si las condiciones que activaron el punto de interrupción persisten. Puede entrar en línea con el emulador para observar el estado de su proyecto. Cuando usted hace clic en OK. TPT) Cuando se activa un punto de interrupción. 628 Publicación 1756-RM003K-ES-P – Julio 2008 . La barra de título de la ventana muestra la ranura que contiene el emulador que encontró el punto de interrupción. 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 interrupción. La ventana de rastreo muestra información acerca del punto de interrupción y los valores. Además el emulador abre una ventana de rastreo del punto de interrupción. el emulador muestra una ventana para informar que se produjo un punto de interrupción. usted tendría una instrucción de punto de rastreo con dos operandos de rastreo (Trace This) (uno para un valor REAL y uno para un valor INT. Sin embargo. TPT) Capítulo 20 La ventana de punto de rastreo resultante que aparecería cuando se activa el punto de rastreo sería similar a esta. Sin embargo. La condición de salida de renglón se establece como verdadera. Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición: preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de lógica de escalera de relés La condición de salida de renglón se establece como falsa.Instrucciones de depuración (BPT. El texto para el valor INT (representado en la cadena de formato mediante %d) aparece aquí. post-escán La condición de salida de renglón se establece como falsa. Ejemplo: Usted puede mostrar muchos valores de tag con la instrucción BPT. El texto para el valor REAL (representado en la cadena de formato mediante %e) aparece aquí. La ejecución salta al renglón que contiene la instrucción LBL con el nombre de etiqueta referenciado. reduciendo así el número de valores de tag que puede mostrar eficazmente una instrucción BPT a mucho menos de 41. Publicación 1756-RM003K-ES-P – Julio 2008 629 . la cadena de formateo puede contener sólo 82 caracteres. Puesto que la cadena de formateo requiere dos caracteres para cada tag que usted desea en el punto de interrupción. no podrá rastrear más de 41 tags con una sola instrucción BPT. El número de ranura indica la ranura que contiene el módulo emulador que tiene el punto de rastreo o el punto de interrupción rastreado en la ventana de rastreo. La condición de salida de renglón se establece como falsa. El encabezado (el texto que precede el signo de dos puntos en la cadena de formato) aparece aquí. para separar datos de tag en sus rastreos necesitará incluir espacios y otro formateo. Los rastreos resultantes se muestran aquí. Los demás caracteres conforman los rastreos.01. Usted desea mostrar la información del punto de interrupción en la cadena Formato (myformat). en este caso. la cadena de formato contiene el siguiente texto: Punto de interrupción:El valor de entrada es %f Cuando el punto de interrupción se activa. 630 Publicación 1756-RM003K-ES-P – Julio 2008 . %f representa el primer tag (y. el único) que se va a rastrear (“analogvalue”).02 o menor que 2. En este ejemplo.Capítulo 20 Instrucciones de depuración (BPT. la ventana de rastreo de punto de interrupción muestra los caracteres antes del signo de dos puntos (“Breakpoint”) en la barra de título de la ventana de rastreo. TPT) Este renglón muestra un punto de interrupción que detiene la ejecución del programa cuando un valor analógico es mayor que 3. En este caso. la cadena de formateo puede contener sólo 82 caracteres. El tag que usted desea rastrear. la instrucción TPT escribe una entrada de rastreo a una pantalla de rastreo o archivo de registros. Sin embargo. Trace This BOOL. Usted puede rastrear muchos tags con la instrucción TPT. puede controlar cómo aparecen los tags rastreados en las ventanas de rastreo o punto de interrupción.Instrucciones de depuración (BPT. texto es una cadena que describe el tag (o cualquier otro texto que usted seleccione) y %(tipo) indica el formato del tag. Puesto que la cadena de formateo requiere dos caracteres para cada tag que usted desea rastrear. Sin embargo. TPT) Capítulo 20 Puntos de rastreo (TPT) Operandos: Datos de registro de puntos de rastreo que usted selecciona cuando un renglón es verdadero. Formato de cadena Con la cadena de formato en las instrucciones de punto de rastreo y punto de interrupción. INT. Cuando las entradas en un renglón que contiene una instrucción TPT son verdaderas. DINT. no podrá rastrear más de 41 tags con una sola instrucción TPT. REAL tag Descripción: Los puntos de rastreo se programan con la instrucción de salida punto de rastreo (BPT). Lógica de escalera de relés Operando Format Tipo Cadena Formato tag Descripción Una cadena que establece el formateo de los informes de rastreo (tanto en pantalla como registrados en el disco). para separar datos de tags en sus rastreos. lo cual reduce el número de tags que puede rastrear eficazmente una instrucción TPT a mucho menos de 41. necesitará incluir espacios y otro formateo. Usted necesita un indicador de tipo para cada tag que está rastreando con la instrucción de punto de rastreo o punto de interrupción. SINT. Publicación 1756-RM003K-ES-P – Julio 2008 631 . 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 interrupción. El encabezado (el texto que precede el signo de dos puntos en la cadena de formato) aparece aquí. El número de ranura indica la ranura que contiene el módulo emulador que tiene el punto de rastreo o el punto de interrupción rastreado en la ventana de rastreo. La ejecución salta al renglón que contiene la instrucción LBL con el nombre de etiqueta referenciado. El texto para el valor REAL (representado en la cadena de formato mediante %e) aparece aquí.Capítulo 20 Instrucciones de depuración (BPT. y %d formatea el segundo tag rastreado como valor entero decimal con signo. post-escán La condición de salida de renglón se establece como falsa. El texto para el valor INT (representado en la cadena de formato mediante %d) aparece aquí. La ventana de punto de rastreo resultante que aparecería cuando se activa el punto de rastreo sería similar a esta. usted tendría una instrucción de punto de rastreo con dos operandos de rastreo (Trace This) (uno para un valor REAL y uno para un valor INT. En este caso. La condición de salida de renglón se establece como verdadera. La condición de salida de renglón se establece como falsa. aunque el valor de cualquier tag puede formatearse con cualquier indicador). . TPT) Por ejemplo. podría 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 precisión con un exponente. Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejecución: Condición: preescán condición de entrada de renglón es falsa condición de entrada de renglón es verdadera Acción de Lógica de escalera de relés La condición de salida de renglón se establece como falsa. 632 Publicación 1756-RM003K-ES-P – Julio 2008 . En este caso. Cuando este rastreo se registra en el disco. la cadena de formato contiene este texto: Rastreo de entradas analógicas:Entradas analógicas = %f. los caracteres antes del signo de dos puntos (“Rastreo de entradas analógicas”) aparecen en la barra de título de la ventana de rastreo. Los rastreos resultantes se muestran aquí. TPT) Capítulo 20 Ejemplo: Este renglón activa un rastreo de tres valores analógicos cuando cualquiera de ellos excede un valor específico (30. %f representa los tags que se van a rastrear (“analogvalue1”. %f y %f Cuando el punto de rastreo se activa.Instrucciones de depuración (BPT. Usted desea mostrar la información del punto de rastreo en la cadena Formato (myformat). En este ejemplo. “analogvalue2” y “analogvalue3”). Publicación 1756-RM003K-ES-P – Julio 2008 633 .01). los caracteres antes del signo de dos puntos aparecen en los rastreos. Los demás caracteres conforman los rastreos. Capítulo 20 Instrucciones de depuración (BPT. Éste es un ejemplo de una entrada de rastreo. 30.110001 634 Publicación 1756-RM003K-ES-P – Julio 2008 . TPT) Esto indica cuál punto de rastreo causó cuál entrada de rastreo. “Rastreo de entradas analógicas:” es el texto de encabezado de la cadena de formato del punto de rastreo.00201. Rastreo de entradas analógicas:Entradas analógicas = 31.282000 y 30. Si desea información acerca de Valores inmediatos Conversiones de datos Vea la página 635 635 Valores inmediatos Cada vez que usted introduce un valor inmediato (constante) en formato decimal (por ejemplo. por ejemplo. el controlador almacena el valor usando 32 bits. 3). 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 programación: Cuando se programa en Pueden ocurrir conversiones cuando usted Lógica de escalera de relés Mezcla diferentes tipos de datos en los parámetros dentro de una instrucción Bloque de funciones Cablea dos parámetros que tienen diferentes tipos de datos 635Publicación 1756-RM003K-ES-P – Julio 2008 635 . 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). -2. Si introduce un valor en una base diferente a la decimal como.Apéndice A Atributos comunes Introducción Este apéndice describe los atributos comunes en las instrucciones Logix. binario o hexadecimal. En las siguientes secciones se explica cómo se convierten los datos cuando usted usa tags SINT o INT o cuando mezcla diferentes tipos de datos. el resultado (un valor DINT o REAL) se convierte en el tipo de datos del destino. • ¿Es alguno de los operandos un valor REAL? Si La respuesta es afirmativa La respuesta es negativa Los operandos de entrada (por ejemplo. en sus instrucciones. si es necesario. Si usted mezcla diferentes tipos de datos y usa tags que no son del tipo de datos óptimo. límite) se convierten en: REAL DINT • Después de la ejecución de la instrucción.Apéndice A Atributos comunes Las instrucciones se ejecutan más rápidamente y requieren menos memoria si todos los operandos de la instrucción usan: • el mismo tipo de datos • un tipo de datos óptimo: – En la sección “Operandos” de cada instrucción en este manual. junto con valores inmediatos. el controlador convierte los datos según estas reglas. usted puede aumentar la eficiencia de su programa si: • usa el mismo tipo de datos en toda la instrucción • minimiza el uso de los tipos de datos SINT o INT En otras palabras. use todos los tags DINT o tags REAL. tag en una expresión. 636 Publicación 1756-RM003K-ES-P – Julio 2008 . Usted no puede especificar un tag BOOL en una instrucción que opera con tipos de datos enteros o REAL. Puesto que la conversión de datos requiere tiempo y memoria adicional. – Los tipos de datos DINT y REAL son generalmente los tipos de datos óptimos. un tipo de datos en negrita indica un tipo de datos óptimo. – La mayoría de las instrucciones de bloque de funciones sólo aceptan un tipo de datos (el tipo de datos óptimo) para sus operandos. origen. ceros a la izquierda de los bits existentes hasta que haya 32 bits. mientras que Source B. la comparación es falsa porque Source A. un INT.Total number of rungs: 3 EQU EQU Igual a (Equal) Equal Source remote_rack_1:I. las secciones “Operandos” en este manual identifican el método de conversión.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. 42093 Publicación 1756-RM003K-ES-P – Julio 2008 637 . Relleno con ceros Los siguientes ejemplos muestran los resultados de convertir un valor mediante extensión de signo y relleno con ceros.Data[0] Source AA remote_rack_1:I. Este método de conversión Extensión de signo Convierte datos colocando el valor del bit del extremo izquierdo (el signo del valor) en cada posición de bit a la izquierda de los bits existentes hasta que haya 32 bits. un valor inmediato.Atributos comunes Apéndice A SINT o INT en DINT En las instrucciones que convierten valores SINT o INT en valores DINT. la conversión de un valor SINT o INT puede producir resultados inesperados. En el siguiente ejemplo. se rellena 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 extensión de signo 2#0000_0000_0000_0000_1111_1111_1111_1111 Se convierte en este valor mediante relleno con ceros (65535) der Logic Listing . se convierte mediante extensión de signo. Para ello. • Cree un tag para cada operando y use el mismo tipo de datos en toda la instrucción. especifique los 32 bits del valor inmediato. En ambos ejemplos se verifican los bits de un módulo de E/S 1771 para determinar si todos los bits están activados. Puesto que la palabra de datos de entrada de un módulo de E/S 1771 es un tag INT.Data[0] es un tag INT. lo más fácil es usar un valor constante de 16 bits. EQU Equal Source A remote_rack_1:I. • Use una instrucción MEQ para verificar sólo los bits requeridos Los siguientes ejemplos muestran dos maneras de mezclar un valor inmediato con un tag INT.Data[0] es un tag INT.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. también un tag INT.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 Publicación 1756-RM003K-ES-P – Julio 2008 . introduzca el valor del bit del extremo izquierdo en cada posición de bit a la izquierda hasta que haya 32 bits. EQU Equal Source A remote_rack_1:I. realice uno de los siguientes procedimientos: – Introdúzcalo en uno de los tags – Añada una instrucción MOV que mueva el valor a uno de los tags. Para asignar un valor constante. el valor con el cual se va a verificar también se introduce como un tag INT. el valor con el cual se va a verificar primero se mueve a int_0. EJEMPLO Mezcla de un tag INT con un valor inmediato Puesto que remote_rack_1:I. use uno de estos métodos 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. Posteriormente la instrucción EQU compara ambos tags.Apéndice A Atributos comunes Si utiliza un tag SINT o INT y un valor inmediato en una instrucción que convierte datos mediante extensión de signo. 665) Conversión de DINT en INT y SINT Se convierte en este valor menor INT: SINT: 16#0081 (129) 16#81 (-127) Publicación 1756-RM003K-ES-P – Julio 2008 639 . el controlador se redondeará al valor REAL más cercano usando 24 bits significativos. – Un valor DINT usa hasta 32 bits para el valor (uno para el signo y 31 para el valor). • Un valor SINT o INT siempre se convierte en el mismo valor REAL. Si usted mezcla un tag de número entero (SINT. EJEMPLO Este valor DINT 16#0001_0081 (65. DINT en SINT o INT Para convertir un valor DINT en un valor SINT o INT. – Si el valor DINT requiere más de 24 bits significativos. INT o DINT) y un tag REAL como entradas en la misma instrucción. • Un valor DINT puede no convertirse al mismo valor REAL: – Un valor REAL usa hasta 24 bits para el valor base (23 bits almacenados más un bit “oculto”). Éste utiliza un bit para el signo del valor. puede no convertirse en el mismo valor REAL. el controlador convierte en un valor REAL el valor entero. antes de que se ejecute la instrucción. 23 bits para el valor base y ocho bits para el exponente (32 bits en total). el controlador trunca la porción superior del DINT y establece el indicador de estado de overflow. El siguiente ejemplo muestra el resultado de una conversión de DINT en SINT o INT. De ser así. si es necesario.Atributos comunes Apéndice A Entero en REAL El controlador almacena valores REAL en formato de valor con punto flotante (coma flotante) de precisión simple IEEE. 5 -1.4 1.Apéndice A Atributos comunes REAL en un número entero Para convertir un valor REAL en un valor entero.5 se redondea al número par más cercano.5 se redondean al número entero más cercano.5 -1. el controlador establece el indicador de estado de overflow. 640 Publicación 1756-RM003K-ES-P – Julio 2008 . El siguiente ejemplo muestra el resultado de convertir valores REAL en valores DINT. Las instrucciones que normalmente no afectan palabras clave de estado aritméticas pueden parecer que lo hacen si ocurre una conversión de tipo debido a una mezcla de tipos de datos en los parámetros de instrucción. • X.5 1.6 2. El proceso de conversión de tipo establece palabras clave de estado aritmético. el controlador redondea la parte fraccionaria y trunca la porción superior de la parte no fraccionaria. EJEMPLO Este valor REAL -2. Los números se redondean de la siguiente manera: • Los números diferentes de x. Si se pierden datos.5 Conversión 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 aritmético se establecen según el valor que se está almacenando.6 -1.4 1. Las unidades de ingeniería que no se encuentran dentro de este rango pueden provocar una pérdida de exactitud si los resultados se acercan a las limitaciones del punto flotante (coma flotante) de precisión simple (+/-10+/-38). 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) 641Publicación 1756-RM003K-ES-P – Julio 2008 641 . IMPORTANTE Selección de elementos de bloques de funciones referencia de entrada (IREF) Para controlar un dispositivo. Cuando se programa un bloque de funciones.Apéndice B Atributos de bloque de funciones Introducción Este apéndice describe aspectos que son únicos con las instrucciones de bloque de funciones. es necesario restringir el rango de unidades de ingeniería a +/-10+/-15 puesto que los cálculos de punto flotante (coma flotante) internos se realizan usando punto flotante (coma flotante) de precisión simple. Repase la información proporcionada en este apéndice para asegurarse de que entiende cómo funcionarán las rutinas de bloque de funciones. el valor almacenado de tagA en IREF no cambia hasta la siguiente ejecución de la rutina. El valor almacenado se usa cuando se ejecuta Block_01. los datos en la IREF se enclavan para el escán de la rutina de bloque de funciones. IREF En este ejemplo. y producir un valor o valores de salida transferir datos entre bloques de funciones cuando éstos están: • 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 instrucción de bloques de funciones. El controlador actualiza todos los datos IREF al comienzo de cada escán. el valor de tagA se almacena al comienzo de la ejecución de la rutina. La IREF enclava datos desde los tags bajo el control del programa y tags bajo el control del controlador. El mismo valor almacenado también se usa cuando se ejecuta Block_02. Block_01 tagA Block_02 642 Publicación 1756-RM003K-ES-P – Julio 2008 .Apéndice B Atributos de bloque de funciones Si usted desea realizar una operación con un valor o valores de entrada. Si el valor de tagA cambia durante la ejecución de la rutina. El valor de tagA se almacena sólo una vez al comienzo de la ejecución de la rutina. versión 11. la segunda IREF cableada en Block_02 seguirá usando un valor de 25.4 cuando la rutina comienza a ejecutar este escán.9 no será usado por ninguna IREF en esta rutina hasta el comienzo del siguiente escán. La rutina usa este valor almacenado en toda la rutina. aunque una OREF obtenga un valor de tag diferente durante la ejecución de la rutina. todas las IREF usarán el mismo valor. En este ejemplo. Block_01 tagA Block_02 tagA Comenzando con el software RSLogix 5000.Atributos de bloque de funciones Apéndice B Este ejemplo es igual al anterior. Puesto que los valores de tags en las IREF se enclavan en cada escán en toda la rutina. se puede usar el mismo tag en múltiples IREF y un OREF en la misma rutina. Publicación 1756-RM003K-ES-P – Julio 2008 643 . y Block_01 cambia el valor de tagA a 50. si tagA tiene un valor de 25.9.4 cuando Block_02 ejecute este escán. El nuevo valor de tagA de 50. Si usted cablea los bloques de manera secuencial. si es necesario. El siguiente es un buen ejemplo porque los dos grupos de bloques no están cableados unos con otros. el bloque 2 tiene que ejecutarse antes que el bloque 3 porque las salidas del bloque 2 alimentan las entradas del bloque 3. no importa cuál bloque se ejecuta primero. el orden de ejecución va de entrada a salida. 1 3 5 2 4 6 644 Publicación 1756-RM003K-ES-P – Julio 2008 . Los bloques dentro de un grupo específico se ejecutan en el orden apropiado en relación con los bloques de dicho grupo. Por ejemplo. 1 2 3 El orden de ejecución se relaciona sólo a los bloques que están cableados unos con otros. Si los bloques de funciones no están cableados unos con otros. No existe un flujo de datos entre los bloques.Apéndice B Atributos de bloque de funciones Orden de ejecución El software de programación RSLogix 5000 determina automáticamente el orden de ejecución 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 ejecución se define cableando bloques de funciones unos con otros. Las entradas de un bloque requieren que los datos estén disponibles para que el controlador pueda ejecutar dicho bloque. e indicando el flujo de datos de los cables de retroalimentación. Indicador Suponer datos disponibles El indicador Suponer datos disponibles define el flujo de datos dentro del lazo. En el siguiente ejemplo. Publicación 1756-RM003K-ES-P – Julio 2008 645 . El lazo contiene un solo bloque. El siguiente es un buen ejemplo. Si hay un grupo de bloques en un lazo. el controlador no puede determinar cuál bloque debe ejecutarse primero. En otras palabras. La flecha indica que los datos sirven como entrada para el primer bloque en el lazo. por lo que el orden de ejecución no es importante. marque el cable de entrada que crea el lazo (el cable de retroalimentación) con el indicador Suponer datos disponibles. 1 2 3 Este pin de entrada usa la salida que el bloque 3 produjo en el escán anterior. cablee un pin de salida de un bloque a un pin de entrada del mismo bloque. no puede resolver el lazo. ? ? ? Para identificar cuál bloque debe ejecutarse primero.Atributos de bloque de funciones Apéndice B Resolución de un lazo Para crear un lazo de retroalimentación alrededor de un bloque. Este pin de entrada usa una salida que el bloque produjo en el escán anterior. el bloque 1 usa la salida del bloque 3 que se produjo en la ejecución previa de la rutina. 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.Apéndice B Atributos de bloque de funciones No marque todos los cables de un lazo con el indicador Suponer datos disponibles. 646 Publicación 1756-RM003K-ES-P – Julio 2008 . El indicador Suponer datos disponibles define el flujo de datos dentro del lazo. Creación de un retardo de escán Para producir un retardo de escán entre bloques. Esto es correcto Esto no es correcto Ningún cable usa el indicador Suponer datos disponibles. use los mismos indicadores de flujo de datos para todos los cables entre los dos bloques.Atributos de bloque de funciones Apéndice B Resolución del flujo de datos entre dos bloques Si usted usa dos o más cables para conectar dos bloques. 2 1 Indicador Suponer datos disponibles Publicación 1756-RM003K-ES-P – Julio 2008 647 . el bloque 1 se ejecuta primero. Utiliza la salida del bloque 2 que se produjo en el escán anterior de la rutina. Un cable usa el indicador Suponer datos disponibles y el otro cable no. En el siguiente ejemplo. use el indicador Suponer datos disponibles. Indicador Suponer datos disponibles Ambos cables usan el indicador Suponer datos disponibles. Si ±NAN. el bloque establece la salida un resultado limitado.Apéndice B Atributos de bloque de funciones Resumen En resumen. 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 Publicación 1756-RM003K-ES-P – Julio 2008 . HLL INTG PI PIDE SCL SOC Respuesta 3: La condición de overflow no se aplica. el bloque establece la salida ±NAN o ±INF. los límites de salida no se usan y el bloque establece la salida ±NAN. Los límites de salida son definidos por los parámetros de entrada HighLimit y LowLimit. las instrucciones de bloque de funciones que mantienen el historial no actualizan el historial con valores ±NAN o ±INF cuando se produce un overflow. 3. Cada instrucción tiene una de estas respuestas frente a una condición de overflow: Respuesta 2: Los bloques con límite de salida ejecutan su algoritmo y verifican el resultado para ±NAN o ±INF. Si ±NAN o ±INF. una rutina de bloque de funciones se ejecuta en este orden: 1. Estas instrucciones generalmente tienen una salida booleana. 2. Respuestas de bloque de funciones a condiciones de overflow Respuesta 1: Los bloques ejecutan su algoritmo y verifican el resultado para ±NAN o ±INF. El controlador enclava todos los valores de datos en las IREF. Si ±INF. El controlador ejecuta los otros bloques de funciones en el orden determinado según su cableado. El controlador escribe salidas en las OREF. En general. Añada lógica al programa para controlar cuándo se ejecuta la instrucción. si el tiempo transcurrido = 10. El tiempo delta (DeltaT) para la instrucción se determina de la siguiente manera: Si la instrucción se DeltaT es igual a ejecuta en una tarea periódica el período de la tarea un evento o una tarea el tiempo transcurrido desde la ejecución previa continua El controlador trunca el tiempo transcurrido a milisegundos (ms) enteros. use en lugar de ello el modo de muestreo en tiempo real. el tiempo delta (DeltaT) usado por la instrucción es el valor escrito en el parámetro OversampleDT de la instrucción. Recomendamos que coloque las instrucciones que utilizan este modo en una rutina que se ejecute en una tarea periódica. puede usar un temporizador para establecer el valor de OversampleDeltaT y así controlar la ejecución usando la entrada EnableIn de la instrucción. La actualización de la entrada del proceso necesita sincronizarse con la ejecución de la tarea o muestrearse 5 . Si la entrada del proceso tiene un valor de sello de hora. Publicación 1756-RM003K-ES-P – Julio 2008 649 . Por ejemplo. La entrada del proceso necesita muestrearse 5 . el controlador establece DeltaT = 10 ms. sobremuestreo En el modo de sobremuestreo. Por ejemplo. DEDT DERV HPF INTG LDL2 LDLG LPF NTCH PI PIDE RLIM SCRV SOC TOT Hay tres modos de temporización diferentes: Modo de temporización periódico Descripción El modo periódico es el modo predeterminado y es adecuado para la mayoría de las aplicaciones de control.10 veces más rápido que el tiempo en que se ejecuta la tarea a fin de minimizar los errores de muestreo entre la entrada y la instrucción.10 veces más rápido que el tiempo en que se ejecuta la instrucción a fin de minimizar los errores de muestreo entre la entrada y la instrucción.5 ms.Atributos de bloque de funciones Apéndice B Modos de temporización Estas instrucciones de control de procesos y de variadores aceptan diferentes modos de temporización. Al cambiar el parámetro Order se selecciona un algoritmo de control diferente dentro de la instrucción. la instrucción establece el bit de estado RTSMissed para indicar que existe un problema con la lectura de actualizaciones de la entrada en el módulo. Si DeltaT no se encuentra dentro de un milisegundo del tiempo de configuración. La severidad de la discontinuidad depende de la instrucción y del rango de variación de DeltaT. • el usuario cambia el modo de base de tiempo mientras la tarea se está ejecutando. se produce una discontinuidad en la salida del proceso. Se produce una discontinuidad si: • la instrucción no se ejecuta durante un escán. • El parámetro Order se cambia en un bloque de filtro mientras la tarea se está ejecutando. Normalmente este nombre de tag es un parámetro en el módulo de entrada asociado con 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 coordinación precisa. Si DeltaT varía. 650 Publicación 1756-RM003K-ES-P – Julio 2008 . 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. el tiempo delta (DeltaT) usado por la instrucción es la diferencia entre dos valores de sello de hora que corresponden a las actualizaciones de la entrada del proceso. • la instrucción se ejecuta varias veces durante una tarea. • la tarea se está ejecutando y cambia la velocidad de escán de la tarea o el tiempo de muestreo de la entrada del proceso.Apéndice B Atributos de bloque de funciones Modo de temporización muestreo en tiempo real Descripción En el modo de muestreo en tiempo real. El valor del sello de hora se lee en el nombre de tag introducido para el parámetro RTSTimeStamp de la instrucción. La instrucción compara el valor RTSTime configurado (período de actualización previsto) con el DeltaT calculado para determinar si la instrucción está leyendo cada actualización de la entrada del proceso. Atributos de bloque de funciones Apéndice B Parámetros de instrucción comunes para modos de temporización Las instrucciones que aceptan modos de base de tiempo tienen estos parámetros de entrada y salida: Parámetros de entrada Parámetro de entrada TimingMode Tipo de datos DINT Descripción Selecciona el modo de ejecución de temporización. OversampleDT REAL Tiempo de ejecución para temporización de sobremuestreo. Si TimingMode = 1. la temporización periódica se establece y DeltaT se establece en la velocidad de escán de la tarea. la instrucción establece DeltaT = 0. Cuando TimingMode = 0 y la tarea es de evento o una tarea continua. Cuando TimingMode = 1. la temporización de sobremuestreo se habilita y DeltaT se establece en el valor del parámetro OversampleDT. Valor: 0 1 2 Descripción: modo periódico modo de sobremuestreo modo de muestreo en tiempo real válido = 0 a 2 valor predeterminado = 0 Cuando TimingMode = 0 y la tarea es periódica. Si no es válido. Si TimingMode es no válido. la temporización periódica se habilita y DeltaT se establece en un valor igual al tiempo transcurrido desde la última vez que se ejecutó la instrucción. El valor usado para DeltaT es en segundos. la instrucción establece el bit apropiado en Status. la temporización del muestreo en tiempo real se habilita y DeltaT es la diferencia entre los valores de sello de hora actual y previo que fueron leídos del módulo asociado con la entrada. Cuando TimingMode = 2.0 Publicación 1756-RM003K-ES-P – Julio 2008 651 . válido = 0 a 4194.0 inhabilita la ejecución del algoritmo de control. implica que OversampleDT = 0.0 y establece el bit apropiado en Status.303 segundos valor predeterminado = 0. 31) BOOL BOOL BOOL 652 Publicación 1756-RM003K-ES-P – Julio 2008 . Sobremuestreo DeltaT = OversampleDT Muestreo en tiempo real: DeltaT = (RTSTimeStampn . Periódica: DeltaT = velocidad de escán de la tarea si la tarea es una tarea periódica.767 ms valor predeterminado = 1 TTSTimeStamp DINT Valor de sello de hora para temporización de muestreo en tiempo real.001 segundo). Sólo se usa en el modo de muestreo en tiempo real. Es el tiempo transcurrido en segundos usado por el algoritmo de control para calcular la salida del proceso.29) RTSTimeStampInv (Status. El período de actualización normalmente es el valor usado para configurar el tiempo de actualización del módulo.RTSTime | > 1 (. Valor no válido de TimingMode. inhabilita la ejecución del algoritmo de control e inhabilita la verificación de RTSMissed. DeltaT = tiempo transcurrido desde la ejecución de la instrucción previa si la tarea es de evento o una tarea continua. Valor DeltaT no válido. Si no es válido.28) BOOL RTSTimeInv (Status. Si no es válido.27) DINT BOOL Estado del bloque de funciones. válido = 1 a 32. válido = 1 a 32.767 ms (regresa de 32767 a 0) 1 conteo = 1 milisegundo valor predeterminado = 0 Parámetros de salida Parámetro de salida Tipo de datos DeltaT REAL Descripción Tiempo transcurrido entre actualizaciones.30) DeltaTInv (Status. El período de actualización DeltaT previsto es en milisegundos. Valor no válido de RTSTime.RTSTimeStampn-1) Status TimingModeInv (Status.Apéndice B Atributos de bloque de funciones Parámetro de entrada RTSTime Tipo de datos DINT Descripción Período de actualización del módulo para temporización de muestreo en tiempo real. la instrucción establece el bit apropiado en Status e inhabilita la verificación de RTSMissed. El valor de sello de hora que corresponde a la última actualización de la señal de entrada. la instrucción establece el bit apropiado en Status. Valor no válido de RTSTimeStamp. Se establece cuando ABS | DeltaT . Este valor se usa para calcular DeltaT. RTSMissed (Status. DeltaT| > 1. la instrucción se ejecuta. la instrucción establece DeltaT = 0. la instrucción establece el bit RTSMissed en Status. la instrucción se ejecuta.Atributos de bloque de funciones Apéndice B Descripción general de los modos de temporización El siguiente diagrama muestra cómo una instrucción determina el modo de temporización adecuado. Tarea periódica Evento o tarea continua DeltaT = tiempo de escán de tarea Si DeltaT > 0. DeltaT = tiempo transcurrido desde la última ejecución Si DeltaT > 0. Determine el tipo de tarea Si DeltaT > 0.0 y establece el bit apropiado en Status. Determine el modo de base de tiempo TimingMode = 0 TimingMode = 1 TimingMode = 2 Temporización periódica Temporización de sobremuestreo Temporización en tiempo real DeltaT = OversampleDT Si DeltaT < 0 o DeltaT > 4194. Publicación 1756-RM003K-ES-P – Julio 2008 653 . la instrucción se ejecuta. la instrucción se ejecuta.RTSTimeStampn-1 Si DeltaT > 0. DeltaT = RTSTimeStampn . Si |RTSTIME .303 segundos. 654 Publicación 1756-RM003K-ES-P – Julio 2008 . la instrucción pasa a control de operador. Estas instrucciones incluyen: • • • • • • Selección mejorada (ESEL) Totalizador (TOT) PID mejorado (PIDE) Rampa y estabilización (RMPS) Dispositivo de 2 estados discretos (D2SD) Dispositivo de 3 estados discretos (D3SD) El control de programa/operador permite controlar estas instrucciones simultáneamente desde el programa de usuario y desde un dispositivo de interface de operador. Por ejemplo. Una petición del programa para ir a control de operador.Apéndice B Atributos de bloque de funciones Control de programa/ operador Hay varias instrucciones compatibles con el concepto de control de programa/operador. la instrucción es controlada por las entradas del programa a la instrucción. la instrucción está en control del operador. Una petición del operador para ir a control de operador.OperProgReq . Cuando está en control de programa. Si ProgOper está establecida. El control de operador tiene precedencia sobre el control de programa si ambos bits de petición de entrada están establecidos. examine la salida ProgOper.ProgProgReq . si ProgProgReq y ProgOperReq están establecidos. la instrucción está en control del programa.ProgOperReq . cuando está en control del operador. la instrucción es controlada por las entradas del operador a la instrucción. Para determinar si una instrucción está en control de programa o de operador.OperOperReq Descripción Una petición del programa para ir a control de programa. El control de programa u operador se determina mediante el uso de estas entradas: Entrada . Una petición del operador para ir a control de programa. si ProgOper se borra. Por ejemplo. Esto proporciona la capacidad de usar las entradas ProgProgReq y ProgOperReq para “bloquear” una instrucción en un control deseado. supongamos que una instrucción Totalizer siempre se usará en el control de operador y que el programa de usuario nunca controlará la ejecución o paro de la instrucción Totalizer En este caso. usted podría cablear un valor literal de 1 en ProgOperReq.Atributos de bloque de funciones Apéndice B Las entradas de petición de programa tienen precedencia sobre las entradas de petición de operador. presionar el botón “Program” en la plantilla (lo cual establece la entrada OperProgReg) no tiene ningún efecto. Con esto impediría que el operador pueda poner Totalizer en el control de programa estableciendo OperProgReq desde un dispositivo de interface de operador. Publicación 1756-RM003K-ES-P – Julio 2008 655 . Normalmente. Cablear un “1” en ProgOperReq significa que el programa de usuario desea que TOT siempre esté en control de operador. establecer OperProgReq pone TOT en control de programa. Puesto que la entrada ProgOperReq siempre está establecida. Esto permite que las interfaces de operador funcionen con estas instrucciones simplemente estableciendo el bit de petición del modo deseado. el establecer constantemente ProgProgReq puede “bloquear” la instrucción en control de programa. El valor StartupCV se usa como salida de lazo. Esto es útil para las secuencias de puesta en marcha automática cuando usted desea que el programa controle la acción de la instrucción sin tener que preocuparse de que un operador tome accidentalmente el control de la instrucción. 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. Por ejemplo. el operador podría establecer la entrada OperOperReq desde la plantilla para asumir el control de esa instrucción. Una vez que se borra la entrada ProgProgReq. si una interface de operador establece la entrada OperAutoReq a una instrucción PIDE. 656 Publicación 1756-RM003K-ES-P – Julio 2008 . ésta determina cuál debe ser la respuesta apropiada y borra OperAutoReq. El siguiente ejemplo muestra cómo bloquear una instrucción en control de programa. Cuando se establece StartupSequenceActive.Apéndice B Atributos de bloque de funciones De igual modo. cuando se ejecuta la instrucción PIDE. Por ejemplo. Las entradas de petición de operador a una instrucción siempre son borradas por la instrucción cuando ésta se ejecuta. la instrucción PIDE se coloca en control de programa y en modo manual. No es necesario programar la interface de operador para restablecer los bits de petición. la instrucción permanece en control de programa hasta que recibe una petición de cambiar. Publicación 1756-RM003K-ES-P – Julio 2008 657 .Atributos de bloque de funciones Apéndice B Las entradas de petición de programa normalmente no son borradas por la instrucción porque éstas normalmente están cableadas como entradas en la instrucción. Puesto que la instrucción PIDE automáticamente borra las peticiones del modo de programación. la entrada sería establecida nuevamente por la entrada cableada. usted no tiene que escribir ninguna lógica de escalera para borrar ProgAutoReq después de que se ejecute la rutina. se realiza un enclavamiento monoestrable de ProgAutoReq para la instrucción PIDE TIC101. Puede haber situaciones en las que usted desee usar otra lógica para establecer las peticiones de programa de manera tal que desee que las peticiones de programa sean borradas por la instrucción. TIC101 se ha configurado con la entrada ProgValueReset establecida. cuando se ejecuta la instrucción PIDE. y la instrucción PIDE recibirá sólo una petición para pasar a Auto cada vez que se presione el botón pulsador. Cuando se presiona el botón pulsador TIC101AutoReq. En este ejemplo se usa un renglón de lógica de escalera en otra rutina para realizar un enclavamiento monoestrable de ProgAutoReq a una instrucción PIDE cuando se presiona un botón pulsador. Si la instrucción borra estas entradas. por lo tanto. En este caso puede establecer la entrada ProgValueReset y la instrucción siempre borrará las entradas de petición del modo de programación cuando ésta se ejecute. ésta automáticamente borra ProgAutoReq. Apéndice B Atributos de bloque de funciones Notas: 658 Publicación 1756-RM003K-ES-P – Julio 2008 . 659Publicación 1756-RM003K-ES-P – Julio 2008 659 . Ejemplos tag := expression. Repase la información proporcionada en este apéndice para asegurarse de que entiende cómo se ejecutará la programación de texto estructurado. Termine la asignación con un punto y coma “. Dichos caracteres no tienen ningún efecto en la ejecución del texto estructurado. El texto estructurado no permite distinguir mayúsculas de minúsculas. Si desea información acerca de Sintaxis del texto estructurado Asignaciones Expresiones Instrucciones Construcciones Comentarios Vea la página 659 661 663 670 671 687 Sintaxis del texto estructurado El texto estructurado es un lenguaje de programación textual que usa declaraciones para definir lo que se va a ejecutar.Apéndice C Programación de texto estructurado Introducción Este apéndice describe aspectos que son únicos con la programación de texto estructurado.”. • El texto estructurado no permite distinguir mayúsculas de minúsculas. El operador := es el operador de asignación. El texto estructurado contiene estos componentes: Término asignación (ver página 661) Definición Use una declaración de asignación para asignar valores a los tags. • Use caracteres de tabulación y de retorno de carro (líneas separadas) para facilitar la lectura del texto estructurado. las funciones se diferencian de las instrucciones porque las funciones sólo pueden usarse en expresiones. una función produce un valor. Un valor constante. SINT.DINT. instruction(operand1. Use paréntesis para delimitar el operando de una función. 660 Publicación 1756-RM003K-ES-P – Julio 2008 . Aunque su sintaxis es similar. Un símbolo o mnemónico que especifica una operación dentro de una expresión. operand2.INT. Según la instrucción.operand3). Termine la instrucción con un punto y coma “. Una expresión evalúa según un número (expresión numérica) o según un estado de verdadero o falso (expresión BOOL). Una instrucción usa paréntesis para delimitar sus operandos. value1 inmediatos operadores 4 tag1 + tag2 tag1 >= value1 funciones function(tag1) Aunque su sintaxis es similar.Apéndice C Programación de texto estructurado Término expresión (ver página 663) Definición Una expresión es parte de una declaración de construcción o asignación completa. una instrucción produce uno o más valores que son parte de una estructura de datos. instruction(). Cuando se ejecuta. REAL. Ejemplos Una expresión contiene: tags Un área de la memoria con nombre asignado. instrucción (ver página 670) Una instrucción es una declaración autónoma. las instrucciones se diferencian de las funciones porque las instrucciones no pueden usarse en expresiones. Las instrucciones no pueden usarse en expresiones. Cuando se ejecuta. puede haber cero.”. donde se almacenan los datos (BOOL. cadena). instruction(operand). uno o varios operandos. Las funciones sólo pueden usarse en expresiones. . //comment • Use comentarios para facilitar la interpretación del texto estructurado.. end of comment*) Asignaciones Use una asignación para cambiar el valor almacenado dentro de un tag.. . finaliza la asignación expresión BOOL expresión numérica Publicación 1756-RM003K-ES-P – Julio 2008 661 . .THEN CASE FOR. INT. /*start of comment .UNTIL EXIT comentario (ver página 687) Texto que explica o aclara lo que hace una sección de texto estructurado... Termine la construcción con un punto y coma “. Una asignación tiene esta sintaxis: tag := expression . Ejemplos IF. DINT o REAL := expresión es el símbolo de asignación representa el nuevo valor que se va a asignar al tag Si el tag es de este tipo de Use este tipo de expresión: datos: BOOL SINT INT DINT REAL .Programación de texto estructurado Apéndice C Término construcción (ver página 671) Definición Una declaración condicional usada para activar código de texto estructurado (a saber. ..DO WHILE. • Los comentarios pueden aparecer en cualquier lugar del texto estructurado.. end of comment*/ (*start of comment ..”.DO REPEAT. donde: Componente tag Descripción representa el tag que está obteniendo el nuevo valor el tag debe ser BOOL. • Los comentarios no tienen ningún efecto en la ejecución del texto estructurado. SINT.. otras declaraciones). Apéndice C Programación de texto estructurado El tag retiene el valor asignado hasta que otra asignación cambia el valor. La expresión puede ser simple. como un valor inmediato u otro nombre de tag. SINT. donde: Componente tag Descripción representa el tag que obtiene el nuevo valor el tag debe ser BOOL. Especifique una asignación no retentiva La asignación no retentiva es diferente de la asignación regular antes descrita porque el tag en una asignación 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 automático (Esto sólo se aplica si usted incorpora la asignación en la acción del paso o usa la acción para llamar una rutina de texto estructurado mediante una instrucción JSR). DINT o REAL [:=] expresión es el símbolo de asignación 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 expresión: datos: BOOL SINT INT DINT REAL . Una asignación no retentiva tiene esta sintaxis: tag [:=] expresión . finaliza la asignación expresión BOOL expresión numérica 662 Publicación 1756-RM003K-ES-P – Julio 2008 . o la expresión puede ser compleja e incluir varios operadores y/o funciones Vea la siguiente sección “Expresiones” en la página 663 para obtener detalles. INT. ecuación o comparación. Publicación 1756-RM003K-ES-P – Julio 2008 663 . use paréntesis a fin de agrupar expresiones dentro de otras expresiones. Para añadir o insertar una cadena de caracteres en un tag de cadena. tales como: ABS. TRUNC • operadores. string1. And.Programación de texto estructurado Apéndice C Asigne un carácter ASCII a una cadena Use el operador de asignación para asignar un carácter ASCII a un elemento del miembro DATA de un tag de cadena. Esto hace que toda la expresión sea más fácil de leer y asegura que la expresión se ejecute en la secuencia deseada. and. string1 := string2. miembro DATA y elemento del carácter. cualquiera de estas tres variaciones de “AND” es aceptable: AND. use cualquiera de estas instrucciones de cadena ASCII: Para añadir caracteres al final de una cadena insertar caracteres dentro de una cadena Use esta instrucción CONCAT INSERT Expresiones Una expresión es un nombre de tag. • Para requisitos más complejos. Or Cuando escriba las expresiones. Por ejemplo. Para escribir una expresión.DATA[0] := A. use cualquiera de los siguientes: • nombre de tag que almacena el valor (variable) • número que usted introduce directamente en una expresión (valor inmediato) • funciones.DATA[0]:= 65. <. especifique el valor del carácter o especifique el nombre de tag. Para asignar un carácter. -.DATA[0]:= string2. Por ejemplo: Esto es correcto string1. string1. >. siga estas reglas generales: • Use cualquier combinación de letras mayúsculas y minúsculas. Consulte “Determine el orden de ejecución” en la página 669.DATA[0]. And. tales como: +. Esto no es correcto. “Use operadores relacionales”en la página 666. Por ejemplo. • Una expresión booleana usa tags booleanos.Apéndice C Programación de texto estructurado En texto estructurado usted usa dos tipos de expresiones: Expresión BOOL: Una expresión que produce ya sea el valor BOOL de 1 (verdadero) o 0 (falso). tag1+5. tag1>65. funciones aritméticas y operadores a nivel de bits. “Use operadores lógicos”en la página 668. Por ejemplo. Por ejemplo. • Normalmente usted usa expresiones para condicionar la ejecución de otra lógica. Use la siguiente tabla a fin de seleccionar operadores para sus expresiones: Si desea Calcular un valor aritmético Comparar dos valores o cadenas Verificar si determinadas condiciones son verdaderas o falsas Comparar los bits dentro de valores Entonces “Use funciones y operadores aritméticos”en la página 665. (tag1+5)>65. • Una expresión booleana simple puede ser un simple tag BOOL. • Una expresión numérica usa operadores aritméticos. 664 Publicación 1756-RM003K-ES-P – Julio 2008 . • A menudo usted anida una expresión numérica dentro de una expresión booleana. “Use operadores a nivel de bits”en la página 669. Expresión numérica: Una expresión que calcula un valor entero o de punto flotante (coma flotante). operadores relacionales y operadores lógicos para comparar valores o verificar si las condiciones son verdaderas o falsas. Para sumar restar/cambiar signo multiplicar exponente (x a la potencia y) dividir obtener el módulo de una división Use este operador + * ** / MOD Tipo de datos óptimo DINT. Para obtener valor absoluto arco coseno arco seno arco tangente coseno radianes a grados logaritmo natural logaritmo base 10 grados a radianes seno raíz cuadrada tangente truncar Use esta función 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 DINT. REAL Las funciones aritméticas realizan operaciones matemáticas. un tag no booleano o una expresión para la función. REAL DINT. REAL Publicación 1756-RM003K-ES-P – Julio 2008 665 . REAL REAL DINT. Los operadores aritméticos calculan nuevos valores. REAL REAL DINT. Especifique una constante.Programación de texto estructurado Apéndice C Use funciones y operadores aritméticos Usted puede combinar múltiples operadores y funciones en expresiones aritméticas. REAL REAL REAL DINT. REAL DINT. REAL REAL REAL REAL REAL DINT. REAL DINT. REAL DINT. cadena DINT.Apéndice C Programación de texto estructurado Por ejemplo: Use este formato Ejemplo Para esta situación value1 operator value2 Si gain_4 y gain_4_adj son tags DINT y su especificación dice: “Añadir 15 a gain_4 y almacenar el resultado en gain_4_adj. REAL. REAL. sensor1 y sensor2 son tags REAL. Use operadores relacionales Los operadores relacionales comparan dos valores o cadenas para proporcionar un resultado verdadero o falso. añadir el adjustment y guardar el resultado en position. REAL. cadena DINT.” Si overtravel y overtravel_POS son tags DINT y su especificación dice: “Calcular el valor absoluto de overtravel y almacenar el resultado en overtravel_POS. REAL. El resultado de una operación relacional es un valor BOOL: Si la comparación es verdadera falsa El resultado es 1 0 Use los siguientes operadores relacionales: Para esta comparación: igual menor que menor o igual que mayor que mayor o igual que diferente de Use este operador = < <= > >= <> Tipo de datos óptimo DINT. cadena DINT. y su especificación dice: “Encontrar el valor absoluto del promedio de sensor1 y sensor2. alarm:= -high_alarm. cadena DINT.” Usted escribiría gain_4_adj := gain_4+15. overtravel_POS := ABS(overtravel). REAL. cadena DINT. operator value1 function(numeric_expression) value1 operator (function((value2+value3)/2) position := adjustment + ABS((sensor1 + sensor2)/2). cadena 666 Publicación 1756-RM003K-ES-P – Julio 2008 . REAL.” Si alarm y high_alarm son valores DINT y su especificación dice: “Cambiar signo de high_alarm y almacenar el resultado en alarm.” Si adjustment y position son tags DINT. consulte la contraportada de este manual. done es un tag BOOL y su especificación dice “Si count es mayor o igual que length. La “A” mayúscula ($41) es diferente a la “a” minúscula ($61). • Cuando las dos cadenas se clasifican como en un directorio telefónico. Para introducir un carácter ASCII directamente en la expresión...Programación de texto estructurado Apéndice C Por ejemplo: Use este formato Ejemplo Para esta situación value1 operator value2 stringtag1 operator stringtag2 char1 operator char2 Usted escribiría Si temp es un tag DINT y su especificación dice: IF temp<100 THEN. el orden de las cadenas determina cuál es mayor. Caracteres ASCII 1ab m e n o r m a y o r Códigos 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. Cómo se evalúan las cadenas Los valores hexadecimales de los caracteres ASCII determinan si una cadena es mayor o menor que otra cadena.. bool_tag := bool_expressions Si count y length son tags DINT.. “Si temp es menor que 100° entonces…” Si bar_code y dest son tags de cadena y su especificación dice: “Si bar_code es igual a dest entonces…” Si bar_code es un tag de cadena y su especificación dice: “Si bar_code.DATA[0]=65 THEN. IF bar_code. introduzca el valor decimal del carácter. • Los caracteres permiten distinguir mayúsculas de minúsculas.” done := (count >= length)... Publicación 1756-RM003K-ES-P – Julio 2008 667 . usted ya terminó el conteo.DATA[0] es igual a ’A’ entonces…” IF bar_code=dest THEN. Para obtener el valor decimal y el código hexadecimal de un carácter. Si photoeye1 y photoeye2 son tags BOOL y su especificación 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. entonces…” Si photoeye es un tag BOOL y su especificación dice: “Si photoeye está desactivada entonces…” Si photoeye es un tag BOOL...... open es un tag BOOL y su especificación dice: “Si photoeye1 y photoeye2 están ambas activadas.. El resultado de una operación lógica es un valor BOOL. abrir := photoeye1 y photoeye2. temp es un tag DINT y su especificación dice: “Si photoeye está activada o temp es menor que 100° entonces…”. establezca open en verdadero”. expression1 OR expression2 IF photoeye O (temp<100) THEN. Si photoeye es un tag BOOL y su especificación dice: “Si photoeye está activada. Si la comparación es verdadera falsa El resultado es 1 0 Use los siguientes operadores lógicos: Para obtener Y lógico O lógico O exclusivo lógico complemento lógico Use este operador &.. AND OR XOR NOT Tipo de datos BOOL BOOL BOOL BOOL Por ejemplo: Use este formato Ejemplo Para esta situación BOOLtag NOT BOOLtag Usted escribiría IF photoeye THEN. expression1 XOR expression2 IF photoeye1 XOR photoeye2 THEN. 668 Publicación 1756-RM003K-ES-P – Julio 2008 . temp es un tag DINT y su especificación dice: “Si photoeye está activada y temp es menor que 100° entonces…”. BOOLtag := expression1 & expression2 Si photoeye1 y photoeye2 son tags BOOL..Apéndice C Programación de texto estructurado Use operadores lógicos Los operadores lógicos le permiten verificar si varias condiciones son verdaderas o falsas. IF NOT photoeye THEN.. Si photoeye es un tag BOOL.. AND XOR OR Publicación 1756-RM003K-ES-P – Julio 2008 669 . y result1 son tags DINT y su especificación dice: “Calcule el resultado a nivel de bits de input1 e input2. 5. 8. 6. agrupe las condiciones en paréntesis “( )”. 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 &.(restar) <.Programación de texto estructurado Apéndice C Use operadores a nivel de bits Los operadores a nivel de bits manipulan los bits dentro de un valor basado en dos valores. 12. no necesariamente de izquierda a derecha. AND OR XOR NOT Tipo de datos óptimo DINT DINT DINT DINT Por ejemplo: Use este formato Ejemplo Para esta situación value1 operator value2 Si input1. Operación () función (…) ** − (cambiar signo) NOT *. 2. input2. >= =. . >. • Si una expresión contiene varios operadores o funciones. 3. <> &. 7. Orden 1. 9. Esto asegura el orden correcto de ejecución y facilita la lectura de la expresión.” Usted escribiría result1 := input1 AND input2. Determine el orden de ejecución Las operaciones que usted escribe en una expresión se realizan en un orden prescrito. 4. 11. Guarde el resultado en result1. • Las operaciones de igual orden se realizan de izquierda a derecha. MOD +. 10. <=. /. En texto estructurado.serial_control). Esto también difiere de las instrucciones de lógica de escalera que usan condición de entrada de renglón para activar la ejecución. no sólo cuando tag_xic cambie de borrado a establecido. las declaraciones dentro de la construcción no se escanean. la instrucción ABL se ejecutará en cada escán que tag_xic esté establecido. No existe una condición de renglón o transición de estado que active la ejecución. Por ejemplo. las instrucciones se ejecutarán cada vez que sean escaneadas. la instrucción ABL es una instrucción transicional en lógica de escalera de relés. a menos que usted condicione previamente la ejecución de la instrucción de texto estructurado. La instrucción ABL no se ejecuta cuando tag_xic permanece establecido ni cuando tag_xic se borra. En texto estructurado. 670 Publicación 1756-RM003K-ES-P – Julio 2008 . Las instrucciones de texto estructurado se ejecutan como si EnableIn siempre estuviera establecido. Si las condiciones de la construcción son falsas. la instrucción ABL sólo se ejecuta en un escán cuando tag_xic cambia de borrado a establecido. Una instrucción de texto estructurado dentro de una construcción se ejecuta cada vez que las condiciones de la construcción son verdaderas. Éstas son instrucciones de lógica de escalera de relés transicionales. si usted escribe este ejemplo como: IF tag_xic THEN ABL(0. En este ejemplo. END_IF. Esto difiere de las instrucción de bloque de funciones que usan EnableIn para activar la ejecución.Apéndice C Programación de texto estructurado Instrucciones Las declaraciones de texto estructurado también pueden ser instrucciones. Consulte en la tabla de ubicación al comienzo de este manual la lista de las instrucciones disponibles en texto estructurado. Una instrucción de texto estructurado se ejecuta cada vez que se escanea. Algunas instrucciones de lógica de escalera de relés sólo se ejecutan cuando la condición de entrada de renglón cambia de falso a verdadero. IF (osri_1.serial_control)..... OSRI(osri_1).OutputBit) THEN ABL(0.UNTIL Disponible en estos lenguajes texto estructurado texto estructurado texto estructurado texto estructurado texto estructurado Vea la página 672 675 678 681 684 hacer algo un número específico de veces antes de hacer otra cosa continuar haciendo algo siempre que ciertas condiciones sean verdaderas seguir haciendo algo hasta que una condición sea verdadera Algunas palabras clave están reservadas para uso futuro Estas construcciones no están disponibles: • GOTO • REPEAT El software RSLogix 5000 no le permitirá usarlas como nombres de tags ni como construcciones. tiene que condicionar la instrucción de texto estructurado.OF FOR.. Publicación 1756-RM003K-ES-P – Julio 2008 671 .DO WHILE.THEN CASE.. Construcciones Si desea hacer algo si o cuando ocurre una condición específica seleccionar qué hacer según a un valor numérico Las construcciones pueden programarse individualmente o anidadas dentro de otras construcciones..DO REPEAT. osri_1..Programación de texto estructurado Apéndice C Si desea que la instrucción ABL se ejecute sólo cuando tag_xic cambie de borrado a establecido. END_IF.. Use esta construcción IF. Use un impulso para activar la ejecución.InputBit := tag_xic.. • Especifique todas las rutas ELSIF que necesite. . . Para hacer algo cuando todas las condiciones IF o ELSIF son falsas. siga estas pautas: declaraciones que deben ejecutarse cuando ambas expresiones son falsas 1.. . . 672 Publicación 1756-RM003K-ES-P – Julio 2008 . Texto estructurado IF bool_expression THEN <statement>. Para seleccionar entre varios posibles grupos de declaraciones. END_IF. Para usar ELSIF o ELSE. 2. . . • El controlador ejecuta la primera instrucción IF o ELSIF verdadera y se salta el resto de las instrucciones ELSIF y ELSE. opcional declaraciones que deben ejecutarse cuando bool_expression2 es verdadero ELSE <statement>.. • Cada instrucción ELSIF representa una ruta alternativa. . Operando bool_ expression Tipo BOOL Formato tag expresión Introduzca Expresión o tag BOOL que evalúa respecto a un valor BOOL (expresión BOOL) Descripción: La sintaxis es: IF bool_expression1 THEN <statement >. opcional declaraciones que deben ejecutarse cuando bool_expression1 es verdadero ELSIF bool_expression2 THEN <statement>.THEN Operandos: Use IF…THEN para hacer algo si o cuando ocurre una condición específica. . añada una declaración ELSE. añada una o más declaraciones ELSIF. . END_IF.Apéndice C Programación de texto estructurado IF. alarm := 1.Programación de texto estructurado Apéndice C La siguiente tabla resume las diferentes combinaciones de IF. (Esto sólo se aplica si usted incorpora la asignación en la acción del paso o usa la acción para llamar una rutina de texto estructurado mediante una instrucción JSR). THEN. Ejemplo 2: IF…THEN…ELSE Si usted desea esto Si el contacto de dirección del transportador = avance (1) entonces luz = apagada De lo contrario. 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 automático. Si desea Y Use esta construcción IF…THEN IF…THEN…ELSE IF…THEN…ELSIF IF…THEN…ELSIF…ELSE 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) según las condiciones de entrada no hacer nada si las condiciones son falsas asignar declaraciones predeterminadas si todas las condiciones son falsas Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna Ejemplo 1: IF…THEN Si usted desea esto Si rechazos > 3 entonces transportador = desactivado (0) alarma = activada (1) Introduzca este texto estructurado IF rejects > 3 THEN conveyor := 0. Publicación 1756-RM003K-ES-P – Julio 2008 673 . ELSIF y ELSE. luz = encendida Introduzca este texto estructurado IF conveyor_direction THEN light := 0. END_IF. END_IF. ELSE light [:=] 1. Ejemplo 4: IF…THEN…ELSIF…ELSE Si usted desea esto Si la temperatura del tanque > 100 entonces bomba = lenta Si la temperatura del tanque > 200 entonces bomba = rápida de lo contrario.temp > 200 THEN pump. bomba = desactivada ELSE pump.fast :=0.slow :=1.off :=1. END_IF.fast :=1.slow :=0. ELSIF NOT(Sugar.slow :=0.Apéndice C Programación de texto estructurado Ejemplo 3: IF…THEN…ELSIF Si usted desea esto Si el interruptor de final de carrera de azúcar baja = baja (activado) y el interruptor de final de carrera de azúcar alta = no alta (activado) entonces válvula de entrada = abierta (activada) Hasta que el interruptor de final de carrera de azúcar alta = alta (desactivado) Introduzca este texto estructurado IF Sugar.fast :=0. pump.Inlet cada vez que el controlador: • entre al modo de MARCHA • salga del paso de un SFC si usted configura el SFC para Restablecimiento automático. ELSIF tank. (Esto sólo se aplica si usted incorpora la asignación en la acción del paso o usa la acción para llamar una rutina de texto estructurado mediante una instrucción JSR).Inlet := 0. Introduzca este texto estructurado IF tank. pump.Low & Sugar.Inlet [:=] 1. pump. pump. END_IF.temp > 100 THEN pump. El [:=] le indica al controlador que borre Sugar. 674 Publicación 1756-RM003K-ES-P – Julio 2008 .High) THEN Sugar.off :=0. pump.High THEN Sugar.off :=0. pump. . declaraciones a ejecutar cuando numeric_expression = selector2 . ELSE statement.. . emplee un rango de valores para un selector. . END_CASE. ELSE <statement>. . Operando numeric_ expression Tipo SINT INT DINT REAL Formato tag expresión Introduzca tag o expresión que evalúa respecto a un número (expresión numérica) selector SINT INT DINT REAL inmediato el mismo tipo que numeric_expression IMPORTANTE Si usted usa valores REAL.OF Operandos: Use CASE para seleccionar qué hacer según un valor numérico. y no que coincida exactamente con un valor específico. ya que es más probable que un valor REAL se encuentre dentro de un rango de valores. <statement>. . opcional declaraciones a ejecutar cuando numeric_expression = selector3 . declaraciones a ejecutar cuando numeric_expression = selector1 especifique todos los valores de selector alternativos (rutas) que necesite selector2 : . selectorN: statement.Programación de texto estructurado Apéndice C CASE.. declaraciones a ejecutar cuando numeric_expression ≠ cualquier selector Publicación 1756-RM003K-ES-P – Julio 2008 675 . END_CASE. . selector3 : <statement>. . Descripción: La sintaxis es: CASE numeric_expression OF selector1 : <statement>. Texto estructurado CASE numeric_expression OF selector1: statement. . . valueN : <statement> Use dos puntos (. valueN : <statement> Use una coma (. valueb.valueN : <statement> La construcción CASE es similar a una declaración de interruptor en los lenguajes de programación C o C++.. value1. valores distintos más un rango de valores valuea. Sin embargo. La sintaxis para introducir los valores de selector es: Cuando el selector es un valor varios valores distintos Introduzca value: statement value1. La ejecución siempre se interrumpe después de las declaraciones de dicho selector y va a la declaración END_CASE. value2... Indicadores de estado aritmético: no afectados Condiciones de fallo: ninguna 676 Publicación 1756-RM003K-ES-P – Julio 2008 . un rango de valores value1.Apéndice C Programación de texto estructurado Vea la tabla en la siguiente página para obtener los valores de selector válidos.) para separar cada valor.) para identificar el rango. con la construcción CASE el controlador ejecuta sólo las declaraciones asociadas con la primera coincidencia con el valor de selector. Outlet_4 [:=]0.Outlet_2 :=1.7: Ingredient_A. Ingredient_A.Outlet_1 :=1.Outlet_4 :=1. Ingredient_B. 12 ó 13 entonces Ingrediente A salida 1 = abierto (1) Ingrediente B salida 4 = abierto (1) De lo contrario. 5.11. Ingredient_B.Outlet_1 [:=]0.Outlet_4 :=1. Publicación 1756-RM003K-ES-P – Julio 2008 677 . Ingredient_B.Outlet_1 :=1. Ingredient_B. El [:=] le indica al controlador que también 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 automático. 8. Ingredient_B. 4.13 Ingredient_A. Ingredient_B. (Esto sólo se aplica si usted incorpora la asignación en la acción del paso o usa la acción para llamar una rutina de texto estructurado mediante una instrucción JSR).Outlet_4 [:=]0.. END_CASE. 2.Outlet_4 :=1.Outlet_2 [:=]0.. Ingredient_A.Programación de texto estructurado Apéndice C Ejemplo Si usted desea esto Si el número de receta = 1 entonces Ingrediente A salida 1 = abierto (1) Ingrediente B salida 4 = abierto (1) Si el número de receta = 2 ó 3 entonces Ingrediente A salida 4 = abierto (1) Ingrediente B salida 2 = abierto (1) Si el número de receta = 4.3: Introduzca este texto estructurado CASE recipe_number OF 1: Ingredient_A.Outlet_2 :=1. todas las salidas = cerradas (0) ELSE Ingredient_A.Outlet_4 :=1. 11. 6 ó 7 entonces Ingrediente A salida 4 = abierto (1) Ingrediente B salida 2 = abierto (1) Si el número de receta = 8. el cual determina cuándo 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 controlador no ejecuta ninguna otra declaración en la rutina hasta que completa el lazo. por ejemplo IF. 678 Publicación 1756-RM003K-ES-P – Julio 2008 . el conteo se incrementa en 1. • Considere usar una construcción diferente. END_FOR.. se produce un fallo mayor.THEN.. • Si el tiempo que se requiere para completar el lazo es mayor que el temporizador de control (watchdog) de la tarea. Texto estructurado FOR count:= initial_value TO final_value BY increment DO <statement>. Operando count Tipo SINT INT DINT Formato tag Descripción tag para almacenar la posición de conteo a medida que FOR…DO se ejecuta initial_ value SINT INT DINT tag expresión inmediato tag expresión inmediato tag expresión inmediato se debe evaluar con respecto a un número especifica el valor inicial del conteo final_ value SINT INT DINT especifica el valor final del conteo. IMPORTANTE Asegúrese de no efectuar iteraciones dentro de un lazo demasiadas veces en un solo escán.Apéndice C Programación de texto estructurado FOR…DO Operandos: Use el lazo FOR…DO para hacer algo una cantidad determinada de veces antes de hacer otra cosa. Si existen condiciones cuando usted desea salir del lazo anticipadamente. el lazo se incrementa en 1.DO y cómo una declaración EXIT deja el lazo anticipadamente. Los siguientes diagramas muestran cómo se ejecuta un lazo FOR.Programación de texto estructurado Apéndice C Descripción: La sintaxis es: FOR count := initial_value TO final_value opcional { BY increment DO <statement>. IF bool_expression THEN EXIT. para condicionar una declaración EXIT. END_FOR.. use una declaración EXIT. Indicadores de estado aritmético: no afectados Condiciones de fallo: Ocurrirá un fallo mayor si la construcción tiene un lazo excesivamente largo Tipo de fallo 6 Código de fallo 1 Publicación 1756-RM003K-ES-P – Julio 2008 679 . opcional END_IF.THEN. ¿Efectuado x veces? no declaración 1 declaración 2 declaración 3 declaración 4 … resto de la rutina sí ¿Efectuado x veces? no declaración 1 declaración 2 declaración 3 declaración 4 … ¿Salir? no resto de la rutina sí sí El lazo FOR…DO se ejecuta un número específico de veces. tal como la construcción IF.. Si usted no especifica un incremento. Para detener el lazo antes de que el conteo llegue al último valor... use otras declaraciones. 2.Inventory_Items). 4. End_for. Parar. b. entonces: a. Esto produce la cantidad en inventario del ítem. Si el código de barras coincide con el ID de un ítem en la matriz. Añadir 1 a subscript. Añadir 1 a position. 5. Inicializar el tag position a 0. De lo contrario. Por ejemplo. Usted desea buscar la matriz para un producto específico (use su código de barras) y determine la cantidad que hay en inventario. 3. repetir 2 y 3. comparar Barcode con Inventory[5]. Establecer el tag Quantity = Inventory[position]. Si subscript es ≤ 31. parar. 2. For position:=0 to Inventory_Items .Qty. borrar array[5]. Borrar la matriz[ subscript ].Apéndice C Programación de texto estructurado Ejemplo 1: Si usted desea esto Borrar los bits 0 . Si position es ≤ (Inventory_Items -1). cuando position = 5. Inicializar el tag subscript a 0.1 do If Barcode = Inventory[position]. Obtener el tamaño (número de ítems) de la matriz Inventory y almacenar el resultado en Inventory_Items (tag DINT). Por ejemplo.ID. 4. De lo contrario. Introduzca este texto estructurado For subscript:=0 to 31 by 1 do array[subscript] := 0.0. Barcode es un tag de cadena que almacena el código de barras del ítem que usted está buscando.31 en una matriz de elementos BOOL: 1. Introduzca este texto estructurado SIZE(Inventory.ID then Quantity := Inventory[position]. Exit. 1. Puesto que los números de elemento comienzan en 0. End_if. el último elemento es 1 menos el número de elementos en la matriz. 680 Publicación 1756-RM003K-ES-P – Julio 2008 . Ejemplo 2: Si usted desea esto Un tipo de datos definido por el usuario (estructura) almacena la siguiente información acerca de un ítem en su inventario: • ID de código 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. parar. End_for. repetir 3 y 4. cuando subscript = 5. 3.Qty. Publicación 1756-RM003K-ES-P – Julio 2008 681 .THEN. tal como la construcción IF.THEN. END_WHILE. • Si el tiempo que se requiere para completar el lazo es mayor que el temporizador de control (watchdog) para la tarea. • Considere usar una construcción diferente. Descripción: La sintaxis es: WHILE bool_expression1 DO <statement>.. • El controlador no ejecuta ninguna otra declaración en la rutina hasta que completa el lazo. Si existen condiciones cuando usted desea salir del lazo anticipadamente.. opcional declaraciones que se ejecutan mientras bool_expression1 es verdadero END_IF. IF bool_expression2 THEN EXIT. Operando bool_ expression Tipo BOOL Formato tag expresión Introduzca Expresión o tag BOOL que evalúa respecto a un valor BOOL IMPORTANTE Asegúrese de no efectuar iteraciones dentro de un lazo demasiadas veces en un solo escán.Programación de texto estructurado Apéndice C WHILE…DO Operandos: Use el lazo WHILE…DO para continuar haciendo algo siempre y cuando ciertas condiciones sean verdaderas. Texto estructurado WHILE bool_expression DO <statement>. para condicionar una declaración EXIT. use otras declaraciones. se produce un fallo mayor. END_WHILE.. por ejemplo IF.. DATA[pos] := SINT_array[pos].. Si las condiciones son verdaderas.value <> targetvalue)) do pos := pos + 2..UNTIL ejecuta las declaraciones en la construcción y posteriormente determina si las condiciones son verdaderas antes de ejecutar las declaraciones nuevamente.Apéndice C Programación de texto estructurado Los siguientes diagramas muestran cómo se ejecuta un lazo WHILE. use una declaración EXIT... Las declaraciones en un lazo WHILE..DO es posible que nunca se ejecuten.UNTIL porque el lazo REPEAT. el controlador ejecuta sólo las declaraciones dentro del lazo WHILE…DO. Las declaraciones en un lazo REPEAT..DO evalúa sus condiciones primero. expresión BOOL verdadera declaración 1 declaración 2 declaración 3 declaración 4 … resto de la rutina falsa expresión BOOL verdadera declaración 1 declaración 2 declaración 3 declaración 4 … ¿Salir? no resto de la rutina falsa sí Mientras bool_expression es verdadero. Esto es diferente del lazo REPEAT.. Para detener el lazo antes de que las condiciones sean verdaderas. Introduzca este texto estructurado pos := 0..... 682 Publicación 1756-RM003K-ES-P – Julio 2008 . end_while. While ((pos <= 100) & structarray[pos]..UNTIL siempre se ejecutan por lo menos una vez.DO y cómo un comando EXIT deja el lazo anticipadamente. Indicadores de estado aritmético: no afectados Condiciones de fallo: Ocurrirá un fallo mayor si la construcción tiene un lazo excesivamente largo Tipo de fallo 6 Código de fallo 1 Ejemplo 1: Si usted desea esto El lazo WHILE. String_tag. el controlador ejecuta las declaraciones dentro del lazo. Contar el número de elementos en SINT_array (la matriz que contiene los caracteres ASCII) y almacenar el resultado en SINT_array_size (tag DINT). If element_number = SINT_array_size then exit.LEN := element_number. Establecer String_tag[element_number] = el carácter en SINT_array[element_number]. Ir a 3. Parar cuando llegue al retorno de carro. Esto permite al controlador verificar el siguiente carácter en SINT_array. parar.Programación de texto estructurado Apéndice C Ejemplo 2: Si usted desea esto Mover caracteres ASCII desde una matriz SINT a un tag de cadena. SINT_array_size). end_while. Introduzca este texto estructurado element_number := 0. Inicializar Element_number a 0. (Usted está al final de la matriz y ésta no contiene un retorno de carro). Si el carácter en SINT_array[element_number] = 13 (valor decimal del retorno de carro). Añadir 1 a element_number. 2. 8. end_if. Publicación 1756-RM003K-ES-P – Julio 2008 683 . 4. parar. 0. 1. 7.DATA[element_number] := SINT_array[element_number]. element_number := element_number + 1. Si element_number = SINT_array_size. While SINT_array[element_number] <> 13 do String_tag. 5. cada elemento retiene un carácter). String_tag. (Así registra el número de caracteres que hay hasta el momento en String_tag). (En una matriz SINT. 3. SIZE(SINT_array. Establecer el miembro Length de String_tag = element_number. 6. para condicionar una declaración EXIT. se produce un fallo mayor. UNTIL bool_expression END_REPEAT. UNTIL bool_expression1 END_REPEAT. Texto estructurado REPEAT <statement>. Operando bool_ expression Tipo BOOL Formato tag expresión Introduzca Expresión o tag BOOL que evalúa respecto a un valor BOOL (expresión BOOL) IMPORTANTE Asegúrese de no efectuar iteraciones dentro de un lazo demasiadas veces en un solo escán.. Si existen condiciones cuando usted desea salir del lazo anticipadamente.. use otras declaraciones. 684 Publicación 1756-RM003K-ES-P – Julio 2008 . tal como la construcción IF. • Si el tiempo que se requiere para completar el lazo es mayor que el temporizador de control (watchdog) para la tarea. Descripción: La sintaxis es: REPEAT <statement>. opcional declaraciones que se ejecutan mientras bool_expression1 es falso END_IF.THEN.THEN. • Considere usar una construcción diferente. • El controlador no ejecuta ninguna otra declaración en la rutina hasta que completa el lazo..Apéndice C Programación de texto estructurado REPEAT…UNTIL Operandos: Use el lazo REPEAT…UNTIL para continuar haciendo algo hasta que las condiciones sean verdaderas. IF bool_expression2 THEN EXIT.. por ejemplo IF. DO porque el lazo WHILE.. UNTIL ((pos = 101) OR (structarray[pos].. Las declaraciones en un lazo WHILE. el controlador ejecuta sólo las declaraciones dentro del lazo REPEAT…UNTIL. el controlador ejecuta las declaraciones dentro del lazo.DO es posible que nunca se ejecuten.DO evalúa su condición primero.Programación de texto estructurado Apéndice C Los siguientes diagramas muestran cómo se ejecuta un lazo REPEAT.. REPEAT pos := pos + 2. Introduzca este texto estructurado pos := -1..value = targetvalue)) end_repeat.. Publicación 1756-RM003K-ES-P – Julio 2008 685 ....UNTIL y cómo un comando EXIT deja el lazo anticipadamente.UNTIL ejecuta las declaraciones en la construcción y posteriormente determina si las condiciones son verdaderas antes de ejecutar las declaraciones nuevamente. use una declaración EXIT.. Indicadores de estado aritmético: no afectados Condiciones de fallo: Ocurrirá un fallo mayor si la construcción tiene un lazo excesivamente largo Tipo de fallo 6 Código de fallo 1 Ejemplo 1: Si usted desea esto El lazo REPEAT... Para detener el lazo antes de que las condiciones sean falsas. declaración 1 declaración 2 declaración 3 declaración 4 … expresión BOOL falsa resto de la rutina falsa resto de la rutina verdadera declaración 1 declaración 2 declaración 3 declaración 4 … ¿Salir? no expresión BOOL verdadera sí Mientras bool_expression es falso. Esto es diferente del lazo WHILE.. Si las condiciones son verdaderas. Las declaraciones en un lazo REPEAT.UNTIL siempre se ejecutan por lo menos una vez. Esto permite al controlador verificar el siguiente carácter en SINT_array. String_tag. parar.LEN := element_number. 4. De lo contrario. 2. parar. Establecer el miembro Length de String_tag = element_number. Si element_number = SINT_array_size. Contar el número de elementos en SINT_array (la matriz que contiene los caracteres ASCII) y almacenar el resultado en SINT_array_size (tag DINT). Si el carácter en SINT_array[element_number] = 13 (valor decimal del retorno de carro). 1. 7. Until SINT_array[element_number] = 13 end_repeat. 5. 686 Publicación 1756-RM003K-ES-P – Julio 2008 . 3. cada elemento retiene un carácter). element_number := element_number + 1. (Así registra el número de caracteres que hay hasta el momento en String_tag). 6. 0. Añadir 1 a element_number.DATA[element_number] := SINT_array[element_number]. (En una matriz SINT. If element_number = SINT_array_size then exit. SIZE(SINT_array. end_if.Apéndice C Programación de texto estructurado Ejemplo 2: Si usted desea esto Mover caracteres ASCII desde una matriz SINT a un tag de cadena. Establecer String_tag[element_number] = el carácter en SINT_array[element_number]. Repeat String_tag. ir a 3. Parar cuando llegue al retorno de carro. SINT_array_size). Inicializar Element_number a 0. Introduzca este texto estructurado element_number := 0. (Usted está al final de la matriz y ésta no contiene un retorno de carro). añádale comentarios. • Los comentarios le permiten usar un lenguaje simple para describir cómo funciona su texto estructurado. . • Los comentarios no tienen ningún efecto en la ejecución del texto estructurado. end of comment*/ Publicación 1756-RM003K-ES-P – Julio 2008 687 . . . end of comment*) /*start of comment . Para añadir comentarios a su texto estructurado: Para añadir un comentario en una sola línea al final de una línea de texto estructurado (*comment*) Use uno de estos formatos //comment /*comment*/ dentro de una línea de texto estructurado (*comment*) /*comment*/ que abarque más de una línea (*start of comment .Programación de texto estructurado Apéndice C Comentarios Para facilitar la interpretación del texto estructurado. . /*Obtiene el número de elementos en la matriz Inventory y almacena el valor en el tag Inventory_Items*/ SIZE(Inventory. 688 Publicación 1756-RM003K-ES-P – Julio 2008 ..Inlet:=0. /*comment*/ Sugar./*close the inlet*/ IF bar_code=65 /*A*/ THEN..Inlet[:=]1. se establece la luz de alarma light := 1...0. Al final de una línea ELSE //Si el transportador no se está moviendo.Low (*low level LS*)& Sugar.temp > 200 THEN. La velocidad depende de la temperatura en el tanque*).. IF tank.. (*comment*) Sugar.(*open the inlet*) IF Sugar...Apéndice C Programación de texto estructurado Por ejemplo: Formato //comment Ejemplo Al comienzo de una línea //Se verifica el sentido de desplazamiento del transportador IF conveyor_direction THEN. END_IF.High (*high level LS*)THEN. (*Controla la velocidad de la bomba de recirculación.Inventory_Items). Índice A activación 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 aritmética y lógica de archivo 335 ASCII asignación de texto estructurado 663 asignación carácter ASCII 663 no retentiva 662 retentiva 661 atributos conversión de tipos de datos 635 valores inmediatos 635 atributos comunes 635 conversión de tipos de datos 635 valores inmediatos 635 comentarios texto estructurado 687 comparación de bits de archivo 478 comparar 206 concatenación 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 conexión caché 173 configuración 159 instrucción MSG 159 instrucción PID 502 construcción texto estructurado 671 conteo progresivo 128 conteo progresivo/regresivo 136 conteo regresivo 132 control de programa/operador descripción general 654 conversión de tipos de datos 635 convertir a BCD 556 convertir en entero 559 copiar 356 copiar síncrono 356 coseno 523 B BAND 317 banda muerta 514 BNOT 326 BOR 320 borrar 298 Borrar ASCII búfer 575 buscar cadena 605 búsqueda y comparación de archivos 347 BXOR 323 D descarga FIFO 400 descripción texto estructurado 687 desenclavamiento de salida 86 desplazamiento de bits a la derecha 390 desplazamiento de bits a la izquierda 386 desviación estándar 376 detección de diagnóstico 486 determinación de igualdad con máscara 237 diagrama de bloques de funciones creación de un retardo de escán 647 resolución del flujo de datos entre dos bloques 647 resolver un lazo 645 selección de elementos 641 diferente de 242 DINT en cadena 619 distribuir campo de bits 292 distribuir campo de bits con receptor 295 división 261 documento texto estructurado 687 C caché conexión 173 cadena evaluación en texto estructurado 667 Cadena a DINT 614 Cadena central 609 Cadena en REAL 616 cálculo 248 cambiar signo 274 caracteres ASCII en el búfer 573 carga de secuenciador 428 carga FIFO 394 carga LIFO 406. 412 CASE 675 clasificar 371 códigos de error ASCII 568 instrucción MSG 152 códigos de productos 181 689Publicación 1756-RM003K-ES-P – Julio 2008 689 . 613 COMPARE 479. 573. 371. 600. 406. 124 FBD_TRUNCATE 561 instrucción RES 141 MESSAGE 144 PID 498 RESULT 479. 413. 367. 376. 367. 520. 527. 586. 613 estructura TIMER 104. 428 COUNTER 128. 532. 390. 487 Estructura SERIAL_PORT_ CONTROL 566. 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. 108. 420. 586. 216. 413. 487 CONTROL 336. 275. 559 Estructura FBD_COUNTER 136 estructura FBD_LIMIT 232 Estructura FBD_LOGICAL 305. 395. 547 Estructura FBD_MATH_ADVANCED 271. 99 estructura FBD_TIMER 116. 401. 535. 311.Índice E elementos instrucción SIZE 381 Eliminación 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. 590. 243 FBD_CONVERT 556. 529. 559 FBD_COUNTER 136 FBD_LIMIT 232 FBD_LOGICAL 305. 259. 112 estructuras cadena 568. 256. 535. 550. 573. 568. 487 estructura CONTROL 336. 308. 259. 250. 578. 550. 228. 120. 386. 544. 250. 424. 395. 520. 390. 631 examinar si está abierto 80 expiración configurar para tarea de evento 195 exponencial 546 expresión expresión BOOL texto estructurado 663 expresión numérica texto estructurado 663 orden de ejecución texto estructurado 669 texto estructurado descripción general 663 funciones 665 operadores a nivel de bits 669 operadores aritméticos 665 operadores lógicos 668 operadores relacionales 666 expresión BOOL texto estructurado 663 expresión numérica 663 expresiones formato 209. 278. 582. 345. 613 TIMER 104. 540. 108. 570. 568. 371. 595 STRING 568. 267. 311. 308. 275. 347. 487 SERIAL_PORT_CONTROL 566. 428 estructura COUNTER 128. 524. 386. 347. 424. 627. 354 Publicación 1756-RM003K-ES-P – Julio 2008 . 529. 527. 590. 220. 406. 532. 262. 376. 228. 256. 401. 407. 407. 99 FBD_TIMER 116. 547 FBD_MATH_ADVANCED 271. 243 estructura FBD_CONVERT 556. 553 FBD_ONESHOT 96. 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. 553 estructura FBD_MATH_ ADVANCED 278 estructura FBD_ONESHOT 96. 345. 570. 267. 582. 595 estructura STRING 568. 220. 262. 120. 353 operadores válidos 208. 544. 420. 540. 524. 224. 251. 600. 315 Estructura FBD_MASKED_ MOVE 288 Estructura FBD_MASK_EQUAL 238 estructura FBD_MATH 253. 578. 216. 346. 124 Estructura FBD_TRUNCATE 561 estructura MESSAGE 144 estructura PID 498 estructura RESULT 479. 224. 315 FBD_MASKED_MOVE 288 FBD_MASK_EQUAL 238 FBD_MATH 253. 112 etiqueta 434. 353 orden de operación 209. Índice F fin temporal 450 FOR…DO 678 funciones texto estructurado 665 G ganancia anticipativa 515 grados 550 H habilitación de interrupción de usuario 454 I ICON 641 IF... 631 instrucción LEQ 223 instrucción LES 227 instrucción LFL 406 instrucción LFU 412 instrucción LIM 231 instrucción LN 540 instrucción LOG 543 instrucción LOWER 625 instrucción MCR 452 instrucción MEQ 237 instrucción MID 609 instrucción MOD 266 instrucción MOV 283 instrucción MSG 159 códigos de error 152 conexión en caché 173 estructura 144 método de comunicación 172 operandos 144 pautas de programación 175 691 . 627.THEN 672 igual a 211 indicadores de estado aritmético overflow 648 inhabilitación de interrupción de usuario 454 Insertar cadena 607 instrucción ABL 570 instrucción ABS 277 instrucción ACB 573 instrucción ACL 575 instrucción ACS 532 instrucción activar tarea de evento 464 instrucción ADD 252 instrucción AFI 456 instrucción AHL 577 instrucción ALMA 42 instrucción ALMD. 631 instrucción JSR 436 instrucción JXR estructura de control 448 instrucción LBL 434. instrucciones de alarmas y eventos ALMD 30 instrucción AND 304 instrucción ARD 581 instrucción ARL 585 instrucción ASN 529 instrucción ATN 535 instrucción AVE 366 instrucción AWA 589 instrucción AWT 594 instrucción BRK 473 instrucción BSL 386 instrucción BSR 390 instrucción BTD 292 instrucción BTDT 295 instrucción CLR 298 instrucción CMP 206 instrucción CONCAT 601 instrucción COP 356 instrucción COS 523 instrucción CPS 356 instrucción CPT 248 instrucción CTD 132 Publicación 1756-RM003K-ES-P – Julio 2008 instrucción CTU 128 instrucción CTUD 136 instrucción DDT modo de búsqueda 488 operandos 486 instrucción de salida inmediata 201 instrucción DEG 550 instrucción DELETE 603 instrucción DIV 261 instrucción DTOS 619 instrucción DTR 494 instrucción EOT 458 instrucción EQU 211 instrucción EVENT 464 instrucción FAL modo de operación 330 operandos 335 instrucción FBC modo de búsqueda 480 operandos 478 instrucción FFL 394 instrucción FFU 400 instrucción fin de transición 458 instrucción FIND 605 instrucción FLL 362 instrucción FOR 470 instrucción FRD 559 instrucción FSC modo de operación 330 operandos 347 instrucción GEQ 215 instrucción GRT 219 instrucción GSV objetos 179 operandos 176 instrucción INSERT 607 instrucción IOT 201 instrucción JMP 434. 627. Índice instrucción MUL 258 instrucción MVM 285 instrucción MVMT 288 instrucción NEG 274 instrucción NEQ 242 instrucción NOP 457 instrucción NOT 314 instrucción ONS 88 instrucción OR 307 instrucción OSF 94 instrucción OSFI 99 instrucción OSRI 96 instrucción OTE 82 instrucción OTL 84 instrucción OTU 86 instrucción pausa SFC 460 instrucción PID ajuste 503 alarmas 504 banda muerta 514 configuración 502 escalado 505 ganancia anticipativa 515 operandos 497 polarización de salida 515 instrucción RAD 553 instrucción RES 141 instrucción restablecer SFC 462 instrucción RET 436. alarma analógica 42 almacenamiento de alarmas en el búfer 69 configuración 62 ejecución de alarma basada en el controlador 72 Publicación 1756-RM003K-ES-P – Julio 2008 692 . 474 instrucción RTO 112 instrucción RTOR 124 instrucción RTOS 621 instrucción SBR 436 instrucción SFP 460 instrucción SFR 462 instrucción siempre falso 456 instrucción SIN 520 instrucción SIZE 381 instrucción SQI 420 instrucción SQL 428 instrucción SQO 424 instrucción SQR 270 instrucción SRT 371 instrucción SSV objetos 179 operandos 176 instrucción STOD 614 instrucción STOR 616 instrucción SUB 255 instrucción SWPB 300 Instrucción TAN 526 instrucción TND 450 instrucción TOD 556 Instrucción TOF 108 instrucción TOFR 120 instrucción TON 104 instrucción TONR 116 instrucción TRN 561 instrucción UID 454 instrucción UIE 454 instrucción UPPER 623 instrucción XIO 80 instrucción XOR 310 instrucción XPY 546 instrucciones alarmas y eventos 29 bit 77 cálculo 247 comparar 205 contador 103 control de programa 433 conversión 549 conversión ASCII 611 conversión de cadenas 611 conversión matemática 549 depurar 627 desplazamiento 385 entrada/salida 143 especiales 477 for/break 469 lógicas 281 manipulación de cadenas 599 manipulación de cadenas ASCII 599 matemáticas avanzadas 539 matriz movimiento 281 puerto serie 565 puerto serie ASCII 565 secuenciador 419 temporizador 103 trigonométricas 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 programáticamente 70 ALMA. Índice estado de alarma 68 suprima o inhabilite alarmas 71 texto de mensaje 65 instrucciones de archivo. 353 GEQ 215 GRT 219 Introducción 205 LEQ 223 LES 227 LIM 231 MEQ 237 NEQ 242 operadores válidos 208. 345 Introducción 247 MOD 266 MUL 258 NEG 274 operadores válidos 250. 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 introducción 77 instrucciones de cálculo ABS 277 ADD 252 CPT 248 DIV 261 formato de expresión 250. 631 MCR 452 NOP 457 RET 436 SBR 436 TND 450 UID 454 UIE 454 instrucciones de conversión DEG 550 FRD 559 Introducción 549 RAD 553 TOD 556 TRN 561 instrucciones de conversión de cadena DTOS 619 LOWER 625 RTOS 621 STOR 616 SWPB 300 UPPER 623 instrucciones de conversión de cadenas introducción 611 STOD 614 instrucciones de conversión matemática DEG 550 FRD 559 Introducción 549 RAD 553 TOD 556 TRN 561 instrucciones de depuración 627 instrucciones de desplazamiento BSL 386 BSR 390 FFL 394 FFU 400 Introducción 385 LFL 406 LFU 412 instrucciones de entrada/salida GSV 176 introducción 143 IOT 201 MSG 144 SSV 176 instrucciones de manipulación de cadenas CONCAT 601 DELETE 603 FIND 605 INSERT 607 introducción 599 MID 609 693 . 631 JSR 436 Publicación 1756-RM003K-ES-P – Julio 2008 LBL 434. 353 orden de operación 209. 345 orden de operación 251. 354 instrucciones de contador CTD 132 CTU 128 CTUD 136 introducción 103 RES 141 instrucciones de control de programa AFI 456 EOT 458 EVENT 464 introducción 433 JMP 434. 627. 627. 346 SQR 270 SUB 255 instrucciones de comparación CMP 206 EQU 211 formato de expresión 209. Índice instrucciones de matriz archivo/misceláneas 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 operación 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 Introducción 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 introducción 419 SQI 420 SQL 428 SQO 424 instrucciones de temporizador introducción 103 RES 141 RTO 112 RTOR 124 TOF 108 TOFR 120 TON 104 TONR 116 instrucciones de traslado/lógicas BAND 317 BNOT 326 BOR 320 BXOR 323 instrucciones especiales DDT 486 DTR 494 FBC 478 introducción 477 PID 497 SFP 460 SFR 462 instrucciones for/break BRK 473 FOR 470 Introducción 469 RET 474 instrucciones lógicas AND 304 introducción 281 NOT 314 OR 307 XOR 310 instrucciones matemáticas avanzadas Introducción 539 LN 540 logaritmo 543 XPY 546 instrucciones OSR 91 instrucciones para puerto serie Introducción 565 instrucciones STD 376 instrucciones trigonométricas ACS 532 ASN 529 ATN 535 COS 523 Introducción 519 SIN 520 TAN 526 intercambiar byte 300 interrumpir 473 IREF 641 L lazo de retroalimentación diagrama de bloques de funciones 645 lazo no resuelto diagrama de bloques de funciones 645 lectura ASCII 581 límite 231 línea de lectura ASCII 585 líneas de handshake ASCII 577 llenar archivo 362 694 Publicación 1756-RM003K-ES-P – Julio 2008 . 346.Índice logaritmo base 10 543 natural 540 logaritmo base 10 543 logaritmo natural 540 M máscaras 495 mayor o igual que 215 mayor que 219 mayúsculas 623 menor o igual que 223 menor que 227 mensaje 144 conexiones en caché 173 pautas de programación 175 mezcla de tipos de datos 635 minúsculas 625 modo de búsqueda 480. 354 OREF 641 N NO a nivel de bits 314 NO booleano 326 P polarización de salida 515 post-escán texto estructurado 662 promedio 366 proporcional. integral y derivativo 497 prueba ASCII para línea de búfer 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 raíz cuadrada 270 REAL en cadena 621 referencia de entrada 641 referencia de salida 641 REPEAT…UNTIL 684 resta 255 restablecer 141 restablecimiento de control maestro 452 retardo de escán diagrama de bloques de funciones 647 retornar 474 retorno 436 Publicación 1756-RM003K-ES-P – Julio 2008 695 . 353 orden de ejecución texto estructurado 669 operadores a nivel de bits texto estructurado 669 operadores aritméticos texto estructurado 665 operadores lógicos texto estructurado 668 operadores matemáticos texto estructurado 665 operadores relacionales texto estructurado 666 orden de ejecución 644 expresión de texto estructurado 669 orden de operación 209. 250. 251. 488 modo de operación 330 modo incremental 333 modo numérico 331 modo todos 330 modos de temporización 649 módulo de división 266 mover 283 mover con máscara 285 movimiento enmascarado con receptor 288 multiplicación 258 FAULTLOG 187 instrucción 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. 345. 600. 627...Índice S Salida actualizar inmediatamente 201 habilitar o inhabilitar fin de procesamiento de tarea 195 saltar 434.THEN 672 operadores a nivel de bits 669 operadores aritméticos 665 operadores lógicos 668 operadores relacionales 666 REPEAT…UNTIL 684 WHILE…DO 681 tipo de datos de cadena 568. 631 saltar a subrutina 436 secuenciador de entrada 420 secuenciador de salida 424 seno 520 sin operación 457 subrutina 436 sumar 252 superposición verifica 195 suponer datos disponibles 645. 613 transición 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 tamaño en elementos 381 tangente 526 tarea activar mediante tag consumido 201 activar tarea de evento 464 configurar programáticamente 195 monitorear 195 tarea de evento activar mediante instrucción EVENT 464 activar mediante tag consumido 201 configurar 195 temporizador de retardo a la conexión 104 temporizador de retardo a la conexión con restablecimiento 116 temporizador de retardo a la desconexión 108 temporizador de retardo a la desconexión con restablecimiento 120 temporizador retentivo activado 112 temporizador retentivo activado con restablecimiento 124 texto estructurado asignación 661 asignación no retentiva 662 asigne carácter ASCII 663 CASE 675 comentarios 687 componentes 659 construcciones 671 evaluación de cadenas 667 expresión 663 expresión numérica 663 FOR…DO 678 funciones 665 696 V valor absoluto 277 valores inmediatos 635 W WHILE…DO 681 X X a la potencia de Y 546 Y Y a nivel de bits 304 Y booleano 317 Publicación 1756-RM003K-ES-P – Julio 2008 . 647 IF. < = > ? 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 Carácter @ 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 Carácter ‘ 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 . / 0 1 2 3 4 5 6 7 8 9 : .Códigos de caracteres ASCII Carácter [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 Carácter SPACE ! “ # $ % & ‘ ( ) * + . . . revise la información proporcionada en este manual.com. puede encontrar manuales técnicos.3223 Lunes a viernes. si el producto no funciona y es necesario devolverlo: En los Estados Unidos Póngase en contacto con el distribuidor. póngase en contacto con el representante o distribuidor local de Rockwell Automation. Inc. En http://support.440. ejemplos de código y vínculos a Service Packs de software.Servicio de asistencia técnica de Rockwell Automation Rockwell Automation ofrece información técnica en Internet para proporcionarle asistencia a la hora de utilizar sus productos. Con el fin de brindarle un nivel adicional de asistencia técnica para la instalación. Impreso en EE. No obstante. Póngase en contacto con el representante local de Rockwell Automation para obtener información sobre el procedimiento de devolución.646.rockwellautomation. Debe proporcionar al distribuidor un número de caso de asistencia técnica (llame al número de teléfono indicado anteriormente para obtenerlo) a fin de completar el proceso de devolución. configuración y resolución de problemas por teléfono. una base de conocimientos con respuestas a preguntas frecuentes. hora oficial del Este de EE. Devolución de productos nuevos Rockwell prueba todos sus productos para garantizar su correcto funcionamiento cuando salen de las instalaciones de fabricación. o visítenos en http://support. Si desea obtener más información. Póngase en contacto con el representante local de Rockwell Automation para cualquier consulta relacionada con asistencia técnica. . También puede llamar a un número especial de asistencia técnica al cliente a fin de recibir ayuda inicial para la puesta en marcha del módulo: En los Estados Unidos Fuera de Estados Unidos +1. Asistencia para la instalación Si se le presenta un problema con un módulo de hardware durante las 24 horas posteriores a la instalación. Fuera de Estados Unidos Publicación 1756-RM003K-ES-P – Julio 2008 699 Reemplaza la publicación 1756-RM003I-ES-P – Enero de 2007 Copyright © 2008 Rockwell Automation. así como un vínculo llamado MySupport que se puede personalizar para sacar el máximo provecho de estas herramientas. notas técnicas y de aplicación. de 8:00 am a 5:00 pm.UU. Todos los derechos reservados.UU.rockwellautomation. ofrecemos los programas de asistencia técnica TechConnect Support.com. Contraportada . Instrucciones generales de los controladores Logix5000™ Manual de referencia .
Copyright © 2024 DOKUMEN.SITE Inc.