1756 rm003 - Es P
1756 rm003 - Es P
1756 rm003 - Es P
Manual de referencia Nmeros de catlogo 1756-L1x, 1756-L5x, 1756-L6x, 1768-L4x, 1769L30, 1769-L31, 1769-L32C, 1769-L32E, 1769-L35CR, 1769-L35E, 1789-L60, 1794-L34, 20D
Identifica informacin sobre prcticas o circunstancias que pueden provocar una explosin en un ambiente peligroso, lo que podra causar lesiones personales o la muerte, daos materiales o prdidas econmicas.
IMPORTANTE ATENCIN
Identifica informacin importante para la correcta aplicacin y comprensin del producto. Identifica informacin sobre prcticas o circunstancias que pueden provocar lesiones personales o la muerte, daos materiales o prdidas econmicas. Los mensajes de Atencin le ayudan a identificar y evitar un peligro, y a reconocer las consecuencias.
PELIGRO DE CHOQUE
Puede haber etiquetas en el exterior o en el interior del equipo (por ejemplo, en un variador o un motor) para advertir sobre la posible presencia de un voltaje peligroso.
PELIGRO DE QUEMADURA
Puede haber etiquetas en el exterior o en el interior del equipo (por ejemplo, en un variador o un motor) para advertir sobre superficies que podran estar a temperaturas peligrosas.
Allen-Bradley, Rockwell Automation y TechConnect son marcas comerciales de Rockwell Automation, Inc. Las marcas comerciales no pertenecientes a Rockwell Automation son propiedad de sus respectivas empresas.
ndice
Prefacio Instrucciones generales de controladores Logix5000
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A quin est dirigido este manual . . . . . . . . . . . . . . . . . Propsito de este manual . . . . . . . . . . . . . . . . . . . . . . . Informacin comn para todas las instrucciones. . . . . . . Convenciones y trminos relacionados. . . . . . . . . . . . . . Establecer y borrar . . . . . . . . . . . . . . . . . . . . . . . . . . Condicin de rengln de lgica de escalera de rels . Estados del bloque de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 23 24 25 25 25 26 27
Captulo 1 Instrucciones basadas en Logix para alarmas y eventos FactoryTalk (ALMD, ALMA)
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Alarma digital (ALMD). . . . . . . . . . . . . . . . . . . . . . . . . . . Diagramas de estado cuando se requiere confirmacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diagramas de estado cuando no se requiere confirmacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Confirmacin de alarma ALMD requerida y enclavada . Confirmacin de alarma ALMD requerida y no enclavada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Confirmacin de alarma ALMD no requerida y enclavada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Confirmacin de alarma ALMD no requerida y no enclavada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Alarma Analgica (ALMA) . . . . . . . . . . . . . . . . . . . . . . . . Diagramas de estado cuando se requiere confirmacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diagramas de estado cuando no se requiere confirmacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Confirmacin de condicin de nivel ALMA requerida . Confirmacin de condicin de nivel ALMA no requerida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Confirmacin de velocidad de cambio ALMA requerida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Confirmacin de velocidad de cambio ALMA no requerida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configure una instruccin de alarma . . . . . . . . . . . . . . . . Introduzca el texto del mensaje de alarma . . . . . . . . . . . . Variables de la cadena de mensaje . . . . . . . . . . . . . . . Versiones de los mensajes de alarma en mltiples idiomas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Monitoreo del estado de alarma. . . . . . . . . . . . . . . . . . . . Almacenamiento de alarmas en el bfer. . . . . . . . . . . . . . Acceda programticamente a informacin de alarmas . . . . Suprima o inhabilite alarmas . . . . . . . . . . . . . . . . . . . . . . Ejecucin de alarma basada en el controlador . . . . . . . . . Uso de la memoria del controlador. . . . . . . . . . . . . . . Tiempo de escn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 . . 30 . . 36 . . 37 . . 38 . . 39 . . 39 . . 40 . . 42 . . 54 . . 55 . . 57 . . 58 . . 59 . . . . . . . . . . . . . . . . . . . . . . . . 60 62 65 66 67 68 69 70 71 72 73 75
ndice
Captulo 2 Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Examinar si est cerrado (XIC). . . . . . . . . . . . . . . . . . . Examinar si est abierto (XIO) . . . . . . . . . . . . . . . . . . . Activacin de salida (OTE) . . . . . . . . . . . . . . . . . . . . . Enclavamiento de salida (OTL) . . . . . . . . . . . . . . . . . . Desenclavamiento de salida (OTU) . . . . . . . . . . . . . . . Un impulso (ONS) . . . . . . . . . . . . . . . . . . . . . . . . . . . Un impulso en flanco ascendente (OSR) . . . . . . . . . . . Un impulso en flanco descendente (OSF) . . . . . . . . . . Un impulso en flanco ascendente con entrada (OSRI) . Un impulso en flanco descendente con entrada (OSFI). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 78 80 82 84 86 88 91 94 96 99
Captulo 3 Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Temporizador de retardo a la conexin (TON). . . . . . Temporizador de retardo a la desconexin (TOF) . . . Temporizador retentivo activado (RTO) . . . . . . . . . . . Temporizador de retardo a la conexin con restablecimiento (TONR) . . . . . . . . . . . . . . . . . . . . . . Temporizador de retardo a la desconexin con restablecimiento (TOFR) . . . . . . . . . . . . . . . . . . . . . . Temporizador retentivo activado con restablecimiento (RTOR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conteo progresivo (CTU) . . . . . . . . . . . . . . . . . . . . . Conteo regresivo (CTD) . . . . . . . . . . . . . . . . . . . . . . Conteo progresivo/regresivo (CTUD) . . . . . . . . . . . . . Restablecer (RES) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 104 108 112
ndice
Especifique una ruta . . . . . . . . . . . . . . . . . . . . . . . Para transferencia en bloques. . . . . . . . . . . . . . . . . Especifique un mtodo de comunicacin o una direccin de mdulo . . . . . . . . . . . . . . . . . . . . . . . Seleccione una opcin de cach. . . . . . . . . . . . . . . Pautas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Obtener valor del sistema (GSV) y establecer valor del sistema (SSV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Objetos GSV/SSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . Acceso al objeto CONTROLLER . . . . . . . . . . . . . . . Acceso al objeto CONTROLLERDEVICE . . . . . . . . . Acceso al objeto CST . . . . . . . . . . . . . . . . . . . . . . . Acceso al objeto DF1 . . . . . . . . . . . . . . . . . . . . . . . Acceso al objeto FAULTLOG . . . . . . . . . . . . . . . . . Acceso al objeto MESSAGE. . . . . . . . . . . . . . . . . . . Acceso al objeto MODULE . . . . . . . . . . . . . . . . . . . Acceso al objeto MOTIONGROUP . . . . . . . . . . . . . Acceso al objeto PROGRAM . . . . . . . . . . . . . . . . . . Acceso al objeto ROUTINE. . . . . . . . . . . . . . . . . . . Acceso al objeto SERIALPORT . . . . . . . . . . . . . . . . Acceso al objeto TASK . . . . . . . . . . . . . . . . . . . . . . Acceso al objeto WALLCLOCKTIME . . . . . . . . . . . . Ejemplo de programacin GSV/SSV . . . . . . . . . . . . . . . Obtenga informacin de fallo . . . . . . . . . . . . . . . . . Establezca los indicadores de habilitacin e inhabilitacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . Salida inmediata (IOT) . . . . . . . . . . . . . . . . . . . . . . . .
. . . 169 . . . 172 . . . 172 . . . 173 . . . 175 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 179 180 181 183 184 187 188 190 191 192 193 193 195 197 198 198
. . . 200 . . . 201
Captulo 5 Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Comparar (CMP) . . . . . . . . . . . . . . . . . . . . . . . . . . Expresiones CMP . . . . . . . . . . . . . . . . . . . . . . . Operadores vlidos . . . . . . . . . . . . . . . . . . . . . Expresiones de formato . . . . . . . . . . . . . . . . . . Determine el orden de operacin . . . . . . . . . . . Use cadenas en una expresin . . . . . . . . . . . . . Igual a (EQU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mayor o igual que (GEQ) . . . . . . . . . . . . . . . . . . . Mayor que (GRT) . . . . . . . . . . . . . . . . . . . . . . . . . Menor o igual que (LEQ). . . . . . . . . . . . . . . . . . . . Menor que (LES) . . . . . . . . . . . . . . . . . . . . . . . . . . Lmite (LIM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mscara igual que (MEQ) . . . . . . . . . . . . . . . . . . . Introduccin de un valor de mscara inmediato Diferente de (NEQ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 206 208 208 209 209 210 211 215 219 223 227 231 237 238 242
ndice
Captulo 6 Instrucciones de clculo/ matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Introduccin . . . . . . . . . . . . . . . . . . . Calcular (CPT) . . . . . . . . . . . . . . . . . Operadores vlidos . . . . . . . . . . . Expresiones de formato . . . . . . . . Determine el orden de operacin . Sumar (ADD) . . . . . . . . . . . . . . . . . . Restar (SUB) . . . . . . . . . . . . . . . . . . . Multiplicar (MUL) . . . . . . . . . . . . . . . Dividir (DIV) . . . . . . . . . . . . . . . . . . Mdulo (MOD) . . . . . . . . . . . . . . . . . Raz cuadrada (SQR) . . . . . . . . . . . . . Cambiar signo (NEG) . . . . . . . . . . . . Valor absoluto (ABS). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 248 250 250 251 252 255 258 261 266 270 274 277
Captulo 7 Instrucciones de movimiento/ lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . Mover (MOV) . . . . . . . . . . . . . . . . . . . . . . . . . . Mover con mscara (MVM) . . . . . . . . . . . . . . . . Introduzca un valor de mscara inmediato . . Movimiento enmascarado con receptor (MVMT). Distribuir campo de bits (BTD) . . . . . . . . . . . . . Distribuir campo de bits con receptor (BTDT) . . Borrar (CLR) . . . . . . . . . . . . . . . . . . . . . . . . . . . Intercambiar byte (SWPB) . . . . . . . . . . . . . . . . . Y a nivel de bits (AND) . . . . . . . . . . . . . . . . . . . O a nivel de bits (OR) . . . . . . . . . . . . . . . . . . . . O exclusivo a nivel de bits (XOR) . . . . . . . . . . . NO a nivel de bits (NOT) . . . . . . . . . . . . . . . . . Y booleano (BAND) . . . . . . . . . . . . . . . . . . . . . O booleano (BOR) . . . . . . . . . . . . . . . . . . . . . . O exclusivo booleano (BXOR). . . . . . . . . . . . . . NO booleano (BNOT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 281 283 285 286 288 292 295 298 300 304 307 310 314 317 320 323 326
Captulo 8 Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . Seleccin del modo de operacin . . . . . . . . Modo Todos . . . . . . . . . . . . . . . . . . . . . Modo numrico . . . . . . . . . . . . . . . . . . . Modo incremental . . . . . . . . . . . . . . . . . Aritmtica y lgica de archivo (FAL) . . . . . . Expresiones FAL . . . . . . . . . . . . . . . . . . Operadores vlidos . . . . . . . . . . . . . . . . Expresiones de formato . . . . . . . . . . . . . Determine el orden de operacin . . . . . . Bsqueda y comparacin de archivos (FSC) . Expresiones FSC . . . . . . . . . . . . . . . . . . Operadores vlidos . . . . . . . . . . . . . . . . Expresiones de formato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 330 330 331 333 335 344 345 345 346 347 352 353 353
ndice
Determine el orden de operacin . . . . . . . . . . . . Use cadenas en una expresin . . . . . . . . . . . . . . Copiar archivo (COP) Copiar archivo sncrono (CPS) Llenar archivo (FLL) . . . . . . . . . . . . . . . . . . . . . . . . Promedio de archivo (AVE) . . . . . . . . . . . . . . . . . . . Clasificacin de archivo (SRT) . . . . . . . . . . . . . . . . . Desviacin estndar de archivo (STD) . . . . . . . . . . . Tamao en elementos (SIZE). . . . . . . . . . . . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
Captulo 9 Instrucciones de matriz (archivo)/desplazamiento (BSL, BSR, FFL, FFU, LFL, LFU)
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . Desplazamiento de bits a la izquierda (BSL) . Desplazamiento de bits a la derecha (BSR). . Carga FIFO (FFL) . . . . . . . . . . . . . . . . . . . . Descarga FIFO (FFU) . . . . . . . . . . . . . . . . . Carga LIFO (LFL). . . . . . . . . . . . . . . . . . . . . Descarga LIFO (LFU). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 386 390 394 400 406 412
Captulo 11 Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Saltar a etiqueta (JMP) Etiqueta (LBL). . . . . . . . . . . . . . . . . . . . . . . . . . . . . Salto a subrutina (JSR) Subrutina (SBR) Retorno (RET) . . . . . . . . . . . . . . . . Salto a rutina externa (JXR) . . . . . . . . . . . . . . . . . . . Fin temporal (TND). . . . . . . . . . . . . . . . . . . . . . . . . Restablecimiento de control maestro (MCR) . . . . . . . Inhabilitacin de interrupcin de usuario (UID) Habilitacin de interrupcin de usuario (UIE) . . . . . Instruccin siempre falso (AFI) . . . . . . . . . . . . . . . . Sin operacin (NOP) . . . . . . . . . . . . . . . . . . . . . . . . Fin de transicin (EOT) . . . . . . . . . . . . . . . . . . . . . . Pausa SFC (SFP) . . . . . . . . . . . . . . . . . . . . . . . . . . . Restablecer SFC (SFR) . . . . . . . . . . . . . . . . . . . . . . . Activar tarea de evento (EVENT) . . . . . . . . . . . . . . . Determine programticamente si una instruccin EVENT activ una tarea . . . . . . . . . . . . . . . . . . . . . . . . 433 . . . . . 434 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 447 450 452 454 456 457 458 460 462 464
. . . . . 464
ndice
Captulo 14 Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Introduccin . . . . . . . Seno (SIN) . . . . . . . . Coseno (COS) . . . . . . Tangente (TAN) . . . . Arco seno (ASN) . . . . Arco coseno (ACS) . . Arco tangente (ATN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 520 523 526 529 532 535
ndice
Captulo 16 Instrucciones de conversin matemtica (DEG, RAD, TOD, FRD, TRN, TRUNC)
Introduccin . . . . . . . . . . Grados (DEG). . . . . . . . . Radianes (RAD) . . . . . . . Convertir a BCD (TOD). . Convertir a entero (FRD) . Truncar (TRN). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549 550 553 556 559 561
Captulo 17 Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Introduccin . . . . . . . . . . . . . . . . . . . . . Ejecucin de la instruccin. . . . . . . . Cdigos de error ASCII . . . . . . . . . . Tipos de datos de cadena. . . . . . . . . Prueba ASCII para lnea de bfer (ABL) . Caracteres ASCII en el bfer (ACB) . . . . Borrar ASCII bfer (ACL) . . . . . . . . . . . . Lneas de handshake ASCII (AHL) . . . . . Lectura ASCII (ARD) . . . . . . . . . . . . . . . Lectura ASCII de lnea (ARL) . . . . . . . . . Escritura ASCII con anexo (AWA) . . . . . Escritura ASCII (ASCII Write (AWT)) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565 566 568 569 570 573 575 577 581 585 589 594
Captulo 19 Instrucciones de conversin ASCII Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611 Tipos de datos de cadena. . . . . . . . . . . . . . . . . . . . . . . 613 (STOD, STOR, DTOS, RTOS, UPPER, Cadena en DINT (STOD). . . . . . . . . . . . . . . . . . . . . . . . . . 614 LOWER)
Cadena en REAL (STOR) . . . . . . . . DINT en cadena (DTOS) . . . . . . . . REAL en cadena (RTOS) . . . . . . . . Maysculas (UPPER) . . . . . . . . . . . Minsculas (Lower Case (LOWER)) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616 619 621 623 625
ndice
10
ndice
ndice
11
ndice
12
Resumen de cambios
Introduccin
Esta versin del documento contiene informacin nueva y actualizada. Para encontrar la informacin nueva y actualizada, busque barras de cambio como las mostradas al lado de este prrafo.
Informacin actualizada
180 627
13
Resumen de cambios
Notas:
14
Ubicacin de instrucciones
Si la tabla de ubicacin indica: un nmero de pgina control de movimiento PhaseManager control de procesos
La instruccin se encuentra en: este manual Logix5000 Controllers Motion Instruction Set Reference Manual, publicacin 1756-RM007 PhaseManager User Manual, publicacin LOGIX-UM001 Logix5000 Controllers Process Control and Drives Instruction Set Reference Manual, publicacin 1756-RM006
15
Ubicacin de instrucciones
Instruccin: ABL
Prueba ASCII para lnea de bfer
Ubicacin: 609
Lenguajes:
lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels bloque de funciones, texto estructurado lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels lgica de escalera de rels texto estructurado texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels
Instruccin: AWA
Escritura ASCII con anexo
Ubicacin: 589
Lenguajes:
lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado texto estructurado bloque de funciones texto estructurado bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado texto estructurado bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels texto estructurado lgica de escalera de rels lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado bloque de funciones
ABS
Valor absoluto
277
AWT
Escritura ASCII
594
BAND
Y booleano
ACB
Caracteres ASCII en el bfer
573
BNOT
NO booleano
ACL
Borrar ASCII bfer
575
BOR
O booleano
ACS
Arco coseno
532
ADD
Suma
252
BSL
Desplazamiento de bit a la izquierda
AFI
Instruccin siempre falso
456 577
BSR
Desplazamiento de bit a la derecha
390
AHL
Lneas de handshake ASCII
BTD
Distribuir campo de bits
295 295
ALM
Alarma
control de procesos 42
BTDT
Distribuir campo de bits con receptor
ALMA
Alarma analgica
BTR
Mensaje
144
ALMD
Alarma digital
30
BTW
Mensaje
144
AND
Y a nivel de bits
304
BXOR
O exclusivo booleano
CC
Control coordinado
ARD
Lectura ASCII
581
CLR
Borrar
ARL
Lectura ASCII de lnea
585
CMP
Comparar
206 601
ASN
Arco seno
529
CONCAT
Concatenar cadenas
ATN
Arco tangente
535
COP
Copiar archivo
356
COS
Coseno
523
AVE
Promedio de archivo
366
16
Ubicacin de instrucciones
Instruccin: CPS
Copiar archivo sncrono
Ubicacin: 356
Lenguajes:
lgica de escalera de rels texto estructurado lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels texto estructurado bloque de funciones texto estructurado bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado texto estructurado bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado lgica de escalera de rels lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels texto estructurado
Instruccin: FAL
Aritmtica y lgica de archivo
Ubicacin: 335
Lenguajes:
lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels bloque de funciones lgica de escalera de rels lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado texto estructurado bloque de funciones texto estructurado bloque de funciones bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels texto estructurado texto estructurado bloque de funciones lgica de escalera de rels texto estructurado
CPT
Calcular
248 132 128 136 control de procesos control de procesos 486 control de procesos 553
FBC
Comparacin de bits de archivo
478
CTD
Conteo regresivo
FFL
Carga FIFO
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
DDT
Deteccin de diagnstico
FOR
Instruccin FOR
DEDT
Tiempo muerto
FRD
Convertir en entero
DEG
Grados
FSC
Bsqueda y comparacin de archivos
347
DELETE
Eliminar cadena
603
GEQ
Mayor o igual que
215
DERV
Derivada
GRT
Mayor que
219
DFF
Circuito multivibrador D
DIV
Dividir
GSV
Obtener valor del sistema
176
HLL
Lmite superior/inferior
DTOS
DINT en cadena
619
HPF
Filtro pasaaltos
DTR
Transicin de datos
494 458
ICON
Conector de cable de entrada IMC Control de modelos interno
EOT
Fin de transicin
EQU
Igual a
206
INSERT
Insertar cadena
ESEL
Seleccin mejorada
INTG
Integrador
EVENT
Activar tarea de evento
IOT
Salida inmediata
17
Ubicacin de instrucciones
Instruccin: IREF
Referencia de entrada
Lenguajes:
bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels lgica de escalera de rels texto estructurado bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado texto estructurado bloque de funciones lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado
Instruccin: MAG
Engranaje de eje de movimiento
Ubicacin: control de movimiento control de movimiento control de movimiento control de movimiento control de movimiento control de movimiento control de movimiento control de movimiento control de movimiento control de movimiento control de
Lenguajes:
lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado texto estructurado bloque de funciones lgica de escalera de rels texto estructurado texto estructurado bloque de funciones lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado
JKFF
Circuito multivibrador JK
MAHD
Aplicar diagnsticos de conexin de movimiento
JMP
Saltar a etiqueta
JSR
Saltar a subrutina
MAH
Posicin inicial de eje de movimiento
MAJ
Impulso de eje de movimiento
JXR
Saltar a subrutina externa
LBL
Etiqueta
MAM
Mover eje de movimiento
LDL2
Avance-retardo de segundo orden
MAOC
Leva de salida de brazo de movimiento
LDLG
Avance-retardo
MAPC
Leva de posicin de eje de movimiento
LEQ
Menor o igual que
MAR
Registro de brazo de movimiento
LES
Menor que
227
MASD
Desactivacin de eje de movimiento
LFL
Carga LIFO
MAS
Paro de eje de movimiento
LFU
Descarga LIFO
MASR
LIM
Lmite
MATC
Leva de tiempo de eje de movimiento
LN
Logaritmo natural
540
control de movimiento control de procesos control de movimiento control de procesos control de movimiento control de movimiento control de movimiento
MAVE
Promedio mvil
LOG
Logaritmo base 10
(1)
MAW
Observar brazo de movimiento
LOWER
Minsculas
625
MAXC
Captura mxima
LPF
Filtro pasabajos
MCCD
Dinmica de cambio coordinado de movimiento
MAAT
Aplicar ajuste a eje de movimiento
MCCM
Movimiento circular coordinado de movimiento
MAFR
MCCP
Perfil de leva de clculo de movimiento
18
Ubicacin de instrucciones
Instruccin: MCD
Dinmica de cambio de movimiento
Lenguajes:
lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado
Instruccin: MGSR
Restablecimiento de desactivacin de grupo de movimiento
Lenguajes:
lgica de escalera de rels texto estructurado
MCLM
Movimiento lineal de coordenadas de movimiento
MID
Cadena central
609
lgica de escalera de rels texto estructurado texto estructurado bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones
MCR
Restablecimiento de control maestro
MINC
Captura mnima IMMC Control multivariable modular
MCSD
Desactivacin de coordenadas de movimiento
MCS
Paro de coordenadas de movimiento
MOD
Mdulo
MCSR
Restablecimiento de desactivacin de coordenadas de movimiento MCT Transformada de coordenadas de movimiento
MOV
Mover
283 control de
MRHD
control de
MRP
Posicin de redefinir movimiento
MDF
Variador directo de movimiento desactivado
MSF
Servo de movimiento desactivado
MDOC
MSG
Mensaje
MDO
Variador directo de movimiento activado
MSO
Servo de movimiento activado
MDR
Registro de desarme de movimiento
MSTD
Desviacin estndar de movimiento
MDW
Observar desarme de movimiento
MUL
Multiplicar
MEQ
Mscara igual que
MUX
Multiplexor
MGSD
Desactivacin de grupo de movimiento
MVM
Mover con mscara
MGS
MVMT
Mover con mscara con receptor
MGSP
control de
NEG
Cambiar signo
274
19
Ubicacin de instrucciones
Instruccin: NEQ
Diferente de
Ubicacin: 242
Lenguajes:
lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels lgica de escalera de rels texto estructurado bloque de funciones texto estructurado bloque de funciones bloque de funciones lgica de escalera de rels lgica de escalera de rels texto estructurado bloque de funciones bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado
Instruccin: PFL
Fallo de fase de equipo
Ubicacin: PhaseManager
Lenguajes:
lgica de escalera de rels texto estructurado texto estructurado bloque de funciones lgica de escalera de rels texto estructurado texto estructurado bloque de funciones texto estructurado bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels lgica de escalera de rels texto estructurado bloque de funciones texto estructurado bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones
NOP
Sin operacin
457 314
PIDE
PID mejorado
NOT
NO a nivel de bits
PID
Proporcional integral derivativo
PI
Proporcional + Integral
NTCH
Filtro de muesca
PMUL
Multiplicador de impulsos
OCON
Conector de cable de salida
POSP
Proporcional de posicin
ONS
Un impulso
POVR
Comando de anulacin de fase de equipo
OR
O a nivel de bits
PPD
Fase de equipo en pausa
PhaseManager
OREF
Referencia de salida
641 99
OSFI
Un impulso en flanco descendente con entrada
PRNP
Parmetros de nueva fase de equipo
PhaseManager
OSF
Un impulso en flanco descendente
94
PSC
Estado de fase completo
PhaseManager
PXRQ 91
Solicitud externa de fase de equipo
PhaseManager
OSRI
Un impulso en flanco ascendente con entrada
RAD 91
Radianes
553
OSR
Un impulso en flanco ascendente
OTE
Activacin de salida
82 84 86 PhaseManager
RESD RES
Restablecer
OTL
Enclavamiento de salida
OTU
Desenclavamiento de salida
RET
Retorno
PATT
Conectar a fase de equipo
RLIM
Limitador de rgimen
PCLF
Fallo de borrado de fase de equipo
PhaseManager
RMPS
Rampa y estabilizacin
PCMD
Comando de fase de equipo
PhaseManager
RTO
Temporizador retentivo activado
PDET
Desconectar de fase de equipo
PhaseManager
RTOR
Temporizador retentivo activado con restablecimiento
124
20
Ubicacin de instrucciones
Instruccin: RTOS
REAL en cadena
Ubicacin: 621
Lenguajes:
lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado bloque de funciones texto estructurado bloque de funciones texto estructurado bloque de funciones bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado texto estructurado bloque de funciones texto estructurado bloque de funciones lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels bloque de funciones texto estructurado lgica de escalera de rels texto estructurado texto estructurado bloque de funciones texto estructurado bloque de funciones
Instruccin: SSV
Establecer valor del sistema
Ubicacin: 176
Lenguajes:
lgica de escalera de rels texto estructurado lgica de escalera de rels lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels lgica de escalera de rels bloque de funciones texto estructurado bloque de funciones
SBR
Subrutina
436
STD
Desviacin estndar de archivo
376
SCL
Escalar
STOD
Cadena en DINT
614
SCRV
Curva en S
STOR
Cadena en REAL
616
SEL
Seleccionar
SUB
Restar
255
SETD
Establecer dominante
SFP
Pausa SFC
SWPB
Intercambiar byte
300
SFR
Restablecer SFC
462
TAN
Tangente
526
SIN
Seno
520
TND
Fin temporal
450 556
TOD
Convertir en BCD
SIZE
Tamao en elementos
381
TOFR
Temporizador de retardo a la desconexin con restablecimiento
120
SNEG
Cambiar signo seleccionado
SOC
Controlador de segundo orden
TOF
Temporizador de retardo a la desconexin
108
SQI
Secuenciador de entrada
TONR
Temporizador de retardo a la conexin con restablecimiento
116
SQL
Carga de secuenciador
SQO
Secuenciador de salida
TON
Temporizador de retardo a la conexin
104
lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels lgica de escalera de rels bloque de funciones texto estructurado lgica de escalera de rels texto estructurado
SQR
Raz cuadrada
TOT
Totalizador
SQRT
Raz cuadrada
270 371
SRT
Clasificacin de archivo
SRTP
Dividir rango de tiempo proporcional
TRUNC
Truncar
561 454
SSUM
Sumador seleccionado
UID
Inhabilitacin de interrupcin de usuario
21
Ubicacin de instrucciones
Instruccin: UIE
Habilitacin de interrupcin de usuario
Ubicacin: 454
Lenguajes:
lgica de escalera de rels texto estructurado texto estructurado bloque de funciones lgica de escalera de rels texto estructurado lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones
UPDN
Acumulador progresivo/ regresivo
UPPER
Maysculas
XIC
Examinar si est cerrado
78 80 310
XIO
Examinar si est abierto
XOR
O exclusivo a nivel de bits
XPY
X a la potencia de Y
(1)
546
22
Prefacio
Programar el controlador para aplicaciones de procesos o de variadores Programar el controlador para aplicaciones de control de movimiento Programar el controlador para usar fases de equipo Importar un archivo de texto o tags en un proyecto Exportar un proyecto o tags a un archivo de texto
Logix5000 Controllers Process Control and Drives Instructions Reference Manual, publicacin 1756-RM006 Logix5000 Controllers Motion Instruction Set Reference Manual, publicacin 1756-RM007 PhaseManager User Manual, publicacin LOGIX-UM001 Logix5000 Controllers Import/Export Reference Manual, publicacin 1756-RM084
Convertir una aplicacin de PLC-5 o SLC 500 Logix5550 Controller Converting PLC-5 or SLC 500 Logic to Logix5550 Logic Reference en una aplicacin Logix5000 Manual, publicacin 1756-6.8.5
Este documento proporciona al programador los detalles acerca de cada una de las instrucciones disponibles para un controlador basado en Logix. El usuario ya debe estar familiarizado con la manera en que el controlador basado en Logix almacena y procesa datos. Los programadores sin experiencia deben leer todos los detalles de una instruccin antes de usarla. Los programadores con experiencia pueden consultar la informacin sobre las instrucciones para verificar detalles.
23
Prefacio
Operandos
lista de todos los operandos de la instruccin si est disponible en lgica de escalera de rels, describe los operandos si est disponible en texto estructurado, describe los operandos si est disponible en bloque de funciones, describe los operandos Los pines mostrados en un bloque de funciones predeterminado son slo los pines predeterminados. La tabla de operandos indica todos los pines posibles para un bloque de funciones.
Estructura de la instruccin indica los bits y valores de estado de control de la instruccin, si los hay Descripcin describes el uso de la instruccin define cualquier diferencia cuando la instruccin est habilitada e inhabilitada, si corresponde Indicadores de estado aritmtico Condiciones de fallo define si la instruccin afecta o no los indicadores de estado aritmtico consulte el apndice Atributos comunes define si la instruccin genera o no genera fallos menores o mayores de ser as, define el tipo de fallo y el cdigo Ejecucin Ejemplo especifica cmo funciona la instruccin proporciona por lo menos un ejemplo de programacin en cada lenguaje de programacin disponible incluye una descripcin que explica cada ejemplo
texto estructurado
bloque de funciones
24
Prefacio
Establecer y borrar
Este manual usa las funciones de establecer y borrar para definir el estado de los bits (booleanos) y los valores (no booleanos):
Este trmino establecer Significa el bit se establece en 1 (ON) un valor se establece en cualquier nmero que no sea cero borrar el bit se pone en 0 (desactivado) todos los bits de un valor se ponen en 0
Si un operando o parmetro acepta ms de un tipo de datos, los tipos de datos en negrita indican tipos de datos ptimos. Las instrucciones se ejecutan ms rpidamente y requieren menos memoria si todos los operandos de instruccin usan el mismo tipo de datos ptimos, tpicamente DINT o REAL.
25
Prefacio
instruccin de entrada
instruccin de salida
Si la condicin de entrada de rengln de una instruccin de entrada es verdadera, el controlador evala la instruccin y establece la condicin de rengln de entrada segn los resultados de la instruccin. Si la instruccin se evala como verdadera, la condicin de salida del rengln es verdadera; si la instruccin se evala como falsa, la condicin de salida del rengln es falsa. El controlador tambin preescanea las instrucciones. El preescn es un escn especial de todas las rutinas en el controlador. El controlador escanea todas las rutinas principales y subrutinas durante el preescn, pero ignora saltos que podran omitir la ejecucin de las instrucciones. El controlador ejecuta todos los lazos FOR y llamadas de subrutina. Si una subrutina se llama ms de una vez, se ejecuta cada vez que se llama. El controlador usa el preescn de las instrucciones de lgica de escalera de rels para restablecer E/S no retentivas y valores internos. Durante el preescn, los valores de entrada no estn actualizados y no se escriben las salidas. Las siguientes condiciones generan un preescn: Conmutar del modo de programacin al modo de marcha Entrar automticamente al modo de marcha tras encender la unidad. Un preescn no se produce para un programa cuando: El programa se prioriza mientras el controlador est en ejecucin. El programa se desprioriza cuando el controlador entra al modo de marcha.
26
Prefacio
Cuando se programa un bloque de funciones, es necesario restringir el rango de unidades de ingeniera a +/-10+/-15 puesto que los clculos de punto flotante (coma flotante) internos se realizan usando un punto flotante (coma flotante) de precisin simple. Las unidades de ingeniera que no se estn dentro de este rango pueden provocar una prdida de exactitud si los resultados se acercan a las limitaciones de punto flotante (coma flotante) de precisin simple (+/-10+/-38). El controlador evala las instrucciones de bloques de funciones segn el estado de condiciones diferentes.
Descripcin El preescn para las rutinas de bloques de funciones es igual que para las rutinas de lgica de escalera de rels. La nica diferencia radica en que el parmetro EnableIn para cada instruccin de bloque de funciones se borra durante el preescn.
primer escn de instruccin El primer escn de instruccin se refiere a la primera vez que se ejecuta una instruccin despus del preescn. El controlador usa el primer escn de instruccin para leer las entradas actuales y determinar el estado apropiado en que estarn primera ejecucin de instruccin La primera ejecucin de instruccin se refiere a la primera vez que la instruccin se ejecuta con una nueva instancia de estructura de datos. El controlador usa la primera ejecucin de instruccin para generar coeficientes y otros almacenamientos de datos que no cambian para un bloque de funciones despus de una descarga inicial.
Cada instruccin de bloque de funciones incluye tambin los parmetros EnableIn y EnableOut: las instrucciones de bloques de funciones se ejecutan normalmente cuando se establece EnableIn. cuando EnableIn se borra, la instruccin de bloque de funciones ejecuta la lgica de preescn, la lgica de post-escn o simplemente omite la ejecucin del algoritmo normal. EnableOut es similar a EnableIn; sin embargo, si la ejecucin del bloque de funciones detecta una condicin de overflow, EnableOut tambin se borra. la ejecucin del bloque de funciones se reanuda desde donde se detuvo cuando EnableIn cambi de borrado a establecido. Sin embargo, hay algunas instrucciones de bloques de funciones que especifican una funcionalidad especial, tal como la funcin de reinicializacin, cuando EnableIn cambia de borrado a establecido. Para las instrucciones de bloques de funciones con parmetros basados en tiempo, cada vez que el modo de temporizacin es sobremuestreo, la instruccin siempre se reanuda donde se detuvo cuando EnableIn cambi de borrado a establecido. Si el parmetro EnableIn no est cableado, la instruccin siempre se ejecuta como normal y EnableIn permanece establecido. Si usted borra EnableIn, ste cambia para establecerse la prxima vez que se ejecute la instruccin.
Publicacin 1756-RM003K-ES-P Julio 2008 27
Prefacio
Notas:
28
Captulo
Introduccin
Estas instrucciones de alarma basadas en Logix estn disponibles en lgica de escalera de rels, texto estructurado y diagrama de bloques de funciones. Cuando se usan con las versiones 5.0 y posteriores del software FactoryTalk View SE, estas instrucciones crean un sistema de alarmas con su paquete de visualizacin. El controlador detecta condiciones de alarma y publica eventos para los servidores de alarmas y eventos de FactoryTalk View que propagan las alarmas a los clientes Factory Talk View SE suscritos para recibir notificaciones.
Disponible en estos lenguajes lgica de escalera de rels texto estructurado bloque de funciones
Vea la pgina 30
ALMA
42
29
Captulo 1
La instruccin ALMD detecta alarmas basadas en condiciones booleanas (verdadero/falso) Los parmetros de control de programa (Prog) y de operador (Oper) proporcionan una interface para los comandos de alarma.
Descripcin Estructura ALMD Texto estructurado solamente. El valor se copia a In cuando se ejecuta la instruccin. El valor de entrada de alarma es comparado para determinar si existe una alarma.
ProgAck
BOOL
El valor se copia a ConfProg (ProgAck) cuando se ejecuta la instruccin. En la transicin de borrado a establecido, confirma la alarma (si se requiere confirmacin). El valor se copia a RestabProg (ProgReset) cuando se ejecuta la instruccin. En la transicin de borrado a establecido, borra la alarma (si se requiere). El valor se copia a InhabProg (ProgDisable) cuando se ejecuta la instruccin. Cuando se establece, inhabilita la alarma (no anula los comandos de habilitacin). El valor se copia a HabilitProg (ProgEnable) cuando se ejecuta la instruccin. Cuando se establece, habilita la alarma (tiene precedencia sobre los comandos de inhabilitacin). Lgica de escalera de rels solamente. Especifica la duracin de la alarma antes de que sea reportada (milisegundos).
ProgReset
BOOL
ProgDisable
BOOL
ProgEnable
BOOL
MinDurationPRE
DINT
MinDurationACC
DINT
Inmediato
Lgica de escalera de rels solamente. Indica el nmero de milisegundos que han transcurrido desde que se cumpli la condicin de la alarma.
Texto estructurado
ALMD(ALMD, In, ProgAck, ProgReset, ProgDisable, ProgEnable);
Los operandos son iguales a los de la instruccin ALMD de lgica de escalera de rels, con algunas excepciones como se indic anteriormente.
30
Captulo 1
Bloque de funciones
Operando tag ALMD Tipo ALARM_DIGITAL Formato Estructura Descripcin Estructura ALMD
Estructura ALARM_DIGITAL
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Lgica de escalera de rels: Corresponde al estado del rengln. No afecta el procesamiento. Bloque de funciones: Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. Si se establece, la instruccin se ejecuta. La opcin predeterminada es establecido. Texto estructurado: Ningn efecto. La instruccin siempre se ejecuta. In BOOL La entrada de seal digital para la instruccin. La opcin predeterminada es borrado. Lgica de escalera de rels: Sigue la condicin del rengln. Se establece si la condicin del rengln es verdadera. Se borra si la condicin del rengln es falsa. Texto estructurado: Copiado del operando de instruccin. InFault BOOL Indicador de estado deficiente para la entrada. El usuario puede establecer InFault para indicar que la seal de entrada tiene un error. Cuando se establece, la instruccin establece InFaulted (Status.1). Cuando se borra, la instruccin borra InFaulted (Status.1). En cualquier caso, la instruccin contina evaluando In en lo que respecta a las condiciones de alarma. La opcin predeterminada es borrado (buen estado). Condition BOOL Especifica cmo se activa la alarma. Cuando se establece la condicin, se activa la condicin de alarma cuando In se establece. Cuando se borra la condicin, se activa la condicin de alarma cuando In se borra. La opcin predeterminada es establecido.
31
Captulo 1
Descripcin Especifica si se requiere confirmacin de alarma. Cuando se establece, requiere confirmacin. Cuando se borra, no se requiere confirmacin y siempre se establece Acked. La opcin predeterminada es establecido.
Latched
BOOL
Especifica si la alarma est enclavada. Las alarmas enclavadas permanecen InAlarm cuando la condicin de alarma se hace falsa, hasta que se reciba un comando de restablecimiento (Reset). Cuando se establece, se enclava la alarma. Cuando se borra, se desenclava la alarma. Una alarma enclavada slo puede restablecerse cuando la condicin de alarma es falsa. La opcin predeterminada es borrado.
ProgAck
BOOL
Se establece mediante el programa de usuario para confirmar la alarma. Requiere que una transicin cambie de borrado a establecido mientras la alarma no est confirmada. La opcin predeterminada es borrado. Lgica de escalera de rels: Copiado del operando de instruccin. Texto estructurado: Copiado del operando de instruccin.
OperAck
BOOL
Se establece mediante la interface del operador para confirmar la alarma. Requiere que una transicin cambie de borrado a establecido mientras la alarma no est confirmada. La instruccin borra este parmetro. La opcin predeterminada es borrado.
ProgReset
BOOL
Se establece mediante el programa de usuario para restablecer la alarma. Requiere que una transicin cambie de borrado a establecido mientras la alarma est InAlarm y la condicin In no est en alarma. La opcin predeterminada es borrado. Lgica de escalera de rels: Copiado del operando de instruccin. Texto estructurado: Copiado del operando de instruccin.
OperReset
BOOL
Se establece mediante la interface del operador para restablecer la alarma. Requiere que una transicin cambie de borrado a establecido mientras la alarma est InAlarm y la condicin In no est en alarma. La instruccin de alarma borra este parmetro. La opcin predeterminada es borrado.
ProgSuppress
BOOL
Se establece mediante el programa de usuario para suprimir la alarma. La opcin predeterminada es borrado.
OperSuppress
BOOL
Se establece mediante la interface del operador para suprimir la alarma. La instruccin de alarma borra este parmetro. La opcin predeterminada es borrado.
32
Captulo 1
Descripcin Se establece mediante el programa de usuario para cancelar la supresin de la alarma. Tiene precedencia sobre los comandos de supresin. La opcin predeterminada es borrado.
OperUnsuppress
BOOL
Se establece mediante la interface del operador para cancelar la supresin de la alarma. Tiene precedencia sobre los comandos de supresin. La instruccin de alarma borra este parmetro. La opcin predeterminada es borrado.
ProgDisable
BOOL
Se establece mediante el programa de usuario para inhabilitar la alarma. La opcin predeterminada es borrado. Lgica de escalera de rels: Copiado del operando de instruccin. Texto estructurado: Copiado del operando de instruccin.
OperDisable
BOOL
Se establece mediante la interface del operador para inhabilitar la alarma. La instruccin de alarma borra este parmetro. La opcin predeterminada es borrado.
ProgEnable
BOOL
Se establece mediante el programa de usuario para habilitar la alarma. Tiene precedencia sobre un comando de inhabilitacin. La opcin predeterminada es borrado. Lgica de escalera de rels: Copiado del operando de instruccin. Texto estructurado: Copiado del operando de instruccin.
OperEnable
BOOL
Se establece mediante la interface del operador para habilitar la alarma. Tiene precedencia sobre un comando de inhabilitacin. La instruccin de alarma borra este parmetro. La opcin predeterminada es borrado.
AlarmCountReset
BOOL
Se establece mediante el programa de usuario para restablecer el conteo de alarmas. Una transicin que cambia de borrado a establecido restablece el conteo de alarmas a cero. La opcin predeterminada es borrado.
UseProgTime
BOOL
Especifica si se usa el reloj del controlador o el valor ProgTime para aplicar sello de hora a eventos de cambio de estado. Cuando se establece, el valor de ProgTime proporciona el sello de hora. Cuando se borra, el reloj del controlador proporciona el sello de hora. La opcin predeterminada es borrado.
33
Captulo 1
Descripcin Si UseProgTime se establece, este valor se usa para proporcionar el valor de sello de hora para todos los eventos. Esto permite que la aplicacin aplique sellos de hora obtenidos del origen de la alarma, tal como un mdulo de entrada de secuencia de eventos. Severidad de la alarma. Esto no afecta el procesamiento de alarmas por parte del controlador, pero puede usarse para clasificar y filtrar funciones en el subscriptor de alarmas. Vlido = 1...1000 (1000 = ms severa; 1 = menos severa). Valor predeterminado = 500.
Severity
DINT
MnDurationPRE
DINT
Preajuste de duracin mnima (milisegundos) para que la condicin de alarma permanezca verdadera antes de que la alarma sea marcada como InAlarm y se enve notificacin de alarma a los clientes. El controlador recolecta los datos de alarma tan pronto como se detecta la condicin de alarma; por lo tanto, no se pierden datos durante la espera hasta cumplir con la duracin mnima. Vlido = 0...2,147,483,647. Valor predeterminado = 0.
Parmetro de salida Tipo de datos EnableOut InAlarm Acked BOOL BOOL BOOL
Descripcin Habilitacin de salida. Estado activo de alarma. Se establece cuando la alarma est activa. Se borra cuando la alarma no est activa (estado normal). Estado de alarma confirmada. Se establece cuando la alarma est confirmada. Se borra cuando la alarma no est confirmada. Acked siempre se establece cuando AckRequired se borra.
InAlarmUnack
BOOL
Combinacin de alarma activa y estado confirmado. Se establece cuando la alarma est activa (InAlarm est establecido) y no confirmada (Acked est borrado). Se borra cuando la alarma est normal (inactiva), confirmada, o ambas. Estado suprimido de la alarma. Se establece cuando la alarma est suprimida. Se borra cuando la alarma no est suprimida. Estado inhabilitado de la alarma. Se establece cuando la alarma est inhabilitada. Se borra cuando la alarma est habilitada. Tiempo transcurrido desde que se detect la alarma Cuando este valor llega a MnDuracinPRE, la alarma se activa (InAlarm est establecido) y se enva una notificacin a los clientes. Nmero de veces que se activ la alarma (InAlarm est establecido). Si se llega al valor mximo, el contador deja el valor en el mximo valor de conteo. Sello de hora de la deteccin de alarma. Sello de hora de confirmacin de alarma. Si la alarma no requiere confirmacin, este sello de hora es igual a la hora de la alarma. Sello de hora del retorno de la alarma al estado normal. Sello de hora que indica cundo se restableci la alarma. Error de entrega del mensaje de notificacin de alarma. Se establece cuando hay un error de entrega: es decir, ningn subscriptor de alarma estaba suscrito o por lo menos un suscriptor no recibi el ltimo mensaje de estado de cambio de alarma. Se borra cuando la entrega es exitosa o est en curso.
AlarmCountResetTime LINT
34
Captulo 1
Descripcin Entrega del mensaje de notificacin de alarma realizada. Se establece cuando la entrega es exitosa: por lo menos un suscriptor estaba suscrito y todos los suscriptores recibieron correctamente el ltimo mensaje de estado de cambio de alarma. Se borra cuando la entrega no se realiz correctamente o est en curso. Estado de entrega del mensaje de notificacin de alarma. Se establece cuando la entrega est en curso. Se borra cuando la entrega no est en curso. La alarma no tena suscriptores cuando se intent entregar el mensaje ms reciente. Se establece cuando no hay suscriptores. Se borra cuando hay por lo menos un suscriptor. Los subscriptores de la alarma no estaban conectados cuando se intent entregar el mensaje ms reciente. Se establece cuando todos los suscriptores estn desconectados. Se borra cuando por lo menos un suscriptor est conectado o cuando no hay suscriptores. Error de comunicacin al entregar un mensaje de alarma. Se establece cuando hay errores de comunicacin y se han usado todos los reintentos. Esto significa que un suscriptor estaba suscrito y tena una conexin, pero el controlador no recibi confirmacin de la entrega del mensaje. Se borra cuando todos los suscriptores conectados confirman recepcin del mensaje de alarma. Mensaje de alarma almacenado en el bfer debido a error de comunicacin (ComError est establecido) o prdida de conexin (NoConnection est establecido). Se establece cuando el mensaje de alarma se almacena en el bfer por lo menos para un suscriptor. Se borra cuando el mensaje de alarma no se almacena en el bfer. Nmero de suscriptores para esta alarma. Nmero de suscriptores notificados correctamente acerca del cambio de estado de alarma ms reciente. Indicadores de estado combinados: Status.0 = InstructFault. Status.1 = InFaulted. Status.2 = SeverityInv.
CommError
BOOL
AlarmBuffered
BOOL
Existen condiciones de error de instruccin. ste no es un error menor ni mayor del controlador. Verifique los bits de estado restantes para determinar lo que ocurri. El programa del usuario estableci InFault para indicar datos de entrada de mala calidad. La alarma contina evaluando In en lo que respecta a la condicin de alarma. La severidad de la alarma no es vlida. Si la severidad <1, la instruccin usa Severity = 1. Si la severidad >1000, la instruccin usa Severity = 1000.
35
Captulo 1
El software RSLinx Enterprise se encarga de las alarmas en el controlador. Use los parmetros de salida para monitorear la instruccin a fin de ver el estado de suscripcin de alarmas y para mostrar cambios de estado de alarmas. Si se pierde una conexin con el software RSLinx Enterprise, el controlador puede almacenar en el bfer datos de alarmas brevemente hasta que se restaure la conexin.
1 Ack1 Ack
1 Ack Ack1
InAlarm = Falso
n n II
InAlarm = Falso
1 Ack Ack1
La 1 alarma puede confirmarse de diferentes maneras: ProgAck, OperAck, clientes Alarm can be acked by several different ways: ProgAck, OperAck, clients (RSLogix 5000 (software RSLogix 5000, software RSView). software, RSView software). 2 La 2 alarma puede restablecerse de diferentes maneras: ProgReset, OperReset, clientes Alarm can be reset by several different ways: ProgReset, OperReset, clients (RSLogix 5000 (software RSLogix 5000, software RSView). software, RSView software).
36
Captulo 1
Verdadero
In = Condicin, MnDuracinACC >= MnDuracinPRE In = Condition, MinDurationACC >= MinDurationPRE
Alarm can be reset by several different ways: ProgReset, OperReset, clients (RSLogix 5000
37
Captulo 1
Condicin preescn
Accin de bloque de funciones Todas las peticiones del operador, sellos de hora e indicadores de entrega se borran. InAlarm se borra y Acked se establece.
Accin de texto estructurado Todas las peticiones del operador, sellos de hora e indicadores de entrega se borran. InAlarm se borra y Acked se establece. Ninguna. Ninguna. La instruccin se ejecuta. EnableOut siempre se establece. La instruccin se ejecuta. EnableOut siempre se establece. Ninguna.
primer escn de instruccin Ninguna. primera ejecucin de instruccin EnableIn se borra Ninguna. La instruccin no se ejecuta. EnableOut se borra. EnableIn se establece La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
38
Captulo 1
39
Captulo 1
40
Captulo 1
Texto estructurado
Motor101FaultConditions := Motor101Overtemp OR Motor101FailToStart; ALMD(Motor101Fault,Motor101FaultConditions,Motor101Ack, 0,0,0 );
Bloque de funciones
41
Captulo 1
La instruccin ALMA detecta alarmas basadas en el nivel o velocidad de cambio de un valor analgico. Los parmetros de control de programa (Prog) y de operador (Oper) proporcionan una interface para los comandos de alarma.
Descripcin Estructura ALMA El valor se copia a In cuando se ejecuta la instruccin. El valor de entrada de alarma, que se compara con los lmites de alarma para detectar las condiciones de la alarma. El valor se copia a ProgAckAll cuando se ejecuta la instruccin. En la transicin de borrado a establecido, confirma todas las condiciones de alarma que requieren confirmacin. El valor se copia a ProgDisable cuando se ejecuta la instruccin. Cuando se establece, inhabilita la alarma (no anula los comandos de habilitacin).
ProgAckAll
ProgDisable
BOOL
ProgEnable
BOOL
Tag Inmediato
El valor se copia a ProgEnable cuando se ejecuta la instruccin. Cuando se establece, habilita la alarma (tiene precedencia sobre los comandos de inhabilitacin).
HHlimit
REAL
Inmediato
HLimit
REAL
Inmediato
LLimit
REAL
Inmediato
LLLimit
REAL
Inmediato
42
Captulo 1
Texto estructurado
ALMA(ALMA, In, ProgAckAll, ProgDisable, ProgEnable);
Los operandos son iguales a los de la instruccin ALMD de lgica de escalera de rels, con algunas excepciones como se indic anteriormente.
Bloque de funciones
Operando tag ALMA Tipo ALARM_ANALOG Formato Estructura Descripcin Estructura ALMA
43
Captulo 1
Estructura ALARM_ANALOG
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Lgica de escalera de rels: Corresponde al estado del rengln. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. Texto estructurado: Ningn efecto. La instruccin siempre se ejecuta. Bloque de funciones: Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. In REAL El valor de entrada de alarma, el cual se compara con los lmites de alarma para detectar las condiciones de la alarma. Valor predeterminado = 0.0. Lgica de escalera de rels: Copiado del operando de instruccin. Texto estructurado: Copiado del operando de instruccin. InFault BOOL Indicador de estado deficiente para la entrada. El usuario puede establecer InFault para indicar que la seal de entrada tiene un error. Cuando se establece, la instruccin establece InFaulted (Status.1). Cuando se borra, la instruccin borra InFaulted (Status.1). En cualquier caso, la instruccin contina evaluando In en lo que respecta a las condiciones de alarma. La opcin predeterminada es borrado (buen estado). HHEnabled BOOL Deteccin de condicin de alarma alta alta. Se establece para habilitar la deteccin de la condicin de alarma alta alta. Se borra para inhabilitar la deteccin de la condicin de alarma alta alta. La opcin predeterminada es establecido. HabilitadaA BOOL Deteccin de condicin de alarma alta. Se establece para habilitar la deteccin de la condicin de alarma alta. Se borra para inhabilitar la deteccin de la condicin de alarma alta. La opcin predeterminada es establecido. LEnabled BOOL Deteccin de condicin de alarma baja. Se establece para habilitar la deteccin de la condicin de alarma baja. Se borra para inhabilitar la deteccin de la condicin de alarma baja. La opcin predeterminada es establecido. LLEnabled BOOL Deteccin de condicin de alarma baja baja. Se establece para habilitar la deteccin de la condicin de alarma baja baja. Se borra para inhabilitar la deteccin de la condicin de alarma baja baja. La opcin predeterminada es establecido.
44
Captulo 1
Descripcin Especifica si se requiere confirmacin de alarma. Cuando se establece, requiere confirmacin. Cuando se borra, la confirmacin no se requiere y HHAcked, HAcked, LAcked, LLAcked, ROCPosAcked y ROCNegAcked siempre se establecen. La opcin predeterminada es establecido.
ProgAckAll
BOOL
Se establece mediante el programa de usuario para confirmar todas las condiciones de esta la alarma. Requiere que una transicin cambie de borrado a establecido mientras las condiciones de alarma no estn confirmadas. La opcin predeterminada es borrado. Lgica de escalera de rels: Copiado del operando de instruccin. Texto estructurado: Copiado del operando de instruccin.
OperAckAll
BOOL
Se establece mediante la interface del operador para confirmar todas las condiciones de esta la alarma. Requiere que una transicin cambie de borrado a establecido mientras las condiciones de alarma no estn confirmadas. La instruccin de alarma borra este parmetro. La opcin predeterminada es borrado.
HHProgAck
BOOL
Confirmacin de programa alta alta. Se establece mediante el programa de usuario para confirmar una condicin alta alta. Requiere que una transicin cambie de borrado a establecido mientras la condicin de alarma no est confirmada. La opcin predeterminada es borrado.
HHOperAck
BOOL
Confirmacin de operador alta alta. Se establece mediante la interface de operador para confirmar una condicin alta alta. Requiere que una transicin cambie de borrado a establecido mientras la condicin de alarma no est confirmada. La instruccin de alarma borra este parmetro. La opcin predeterminada es borrado.
HProgAck
BOOL
Confirmacin de programa alta. Se establece mediante el programa de usuario para confirmar una condicin alta. Requiere que una transicin cambie de borrado a establecido mientras la condicin de alarma no est confirmada. La opcin predeterminada es borrado.
HOperAck
BOOL
Confirmacin de operador alta. Se establece mediante la interface de operador para confirmar una condicin alta. Requiere que una transicin cambie de borrado a establecido mientras la condicin de alarma no est confirmada. La instruccin de alarma borra este parmetro. La opcin predeterminada es borrado.
LProgAck
BOOL
Confirmacin de programa baja. Se establece mediante el programa de usuario para confirmar una condicin baja. Requiere que una transicin cambie de borrado a establecido mientras la condicin de alarma no est confirmada. La opcin predeterminada es borrado.
LOperAck
BOOL
Confirmacin de operador baja. Se establece mediante la interface de operador para confirmar una condicin baja. Requiere que una transicin cambie de borrado a establecido mientras la condicin de alarma no est confirmada. La instruccin de alarma borra este parmetro. La opcin predeterminada es borrado.
45
Captulo 1
Descripcin Confirmacin de programa baja baja. Se establece mediante el programa de usuario para confirmar una condicin baja baja. Requiere que una transicin cambie de borrado a establecido mientras la condicin de alarma no est confirmada. La opcin predeterminada es borrado.
LLOperAck
BOOL
Confirmacin de operador baja baja. Se establece mediante la interface de operador para confirmar una condicin baja baja. Requiere que una transicin cambie de borrado a establecido mientras la condicin de alarma no est confirmada. La instruccin de alarma borra este parmetro. La opcin predeterminada es borrado.
ROCPosProgAck
BOOL
Confirmacin de programa de velocidad de cambio positiva. Se establece mediante el programa de usuario para confirmar una condicin de velocidad de cambio positiva. Requiere que una transicin cambie de borrado a establecido mientras la condicin de alarma no est confirmada. La opcin predeterminada es borrado.
ROCPosOperAck
BOOL
Confirmacin de operador de velocidad de cambio positivo. Se establece mediante la interface de operador para confirmar una condicin de velocidad de cambio positiva. Requiere que una transicin cambie de borrado a establecido mientras la condicin de alarma no est confirmada. La instruccin de alarma borra este parmetro. La opcin predeterminada es borrado.
ROCNegProgAck
BOOL
Confirmacin de programa de velocidad de cambio negativa. Se establece mediante el programa de usuario para confirmar una condicin de velocidad de cambio negativa. Requiere que una transicin cambie de borrado a establecido mientras la condicin de alarma no est confirmada. La opcin predeterminada es borrado.
ROCNegOperAck
BOOL
Confirmacin de operador de velocidad de cambio negativa. Se establece mediante la interface de operador para confirmar una condicin de velocidad de cambio negativa. Requiere que una transicin cambie de borrado a establecido mientras la condicin de alarma no est confirmada. La instruccin de alarma borra este parmetro. La opcin predeterminada es borrado.
ProgSuppress
BOOL
Se establece mediante el programa de usuario para suprimir la alarma. La opcin predeterminada es borrado.
OperSuppress
BOOL
Se establece mediante la interface del operador para suprimir la alarma. La instruccin de alarma borra este parmetro. La opcin predeterminada es borrado.
ProgUnsuppress
BOOL
Se establece mediante el programa de usuario para cancelar la supresin de la alarma. Tiene precedencia sobre los comandos de supresin. La opcin predeterminada es borrado.
OperUnsuppress
BOOL
Se establece mediante la interface del operador para cancelar la supresin de la alarma. Tiene precedencia sobre los comandos de supresin. La instruccin de alarma borra este parmetro. La opcin predeterminada es borrado.
46
Captulo 1
Descripcin Se establece mediante el programa de usuario para inhabilitar la alarma. La opcin predeterminada es borrado. Lgica de escalera de rels: Copiado del operando de instruccin. Texto estructurado: Copiado del operando de instruccin.
OperDisable
BOOL
Se establece mediante la interface del operador para inhabilitar la alarma. La instruccin de alarma borra este parmetro. La opcin predeterminada es borrado.
ProgEnable
BOOL
Se establece mediante el programa de usuario para habilitar la alarma. Tiene precedencia sobre un comando de inhabilitacin. La opcin predeterminada es borrado. Lgica de escalera de rels: Copiado del operando de instruccin. Texto estructurado: Copiado del operando de instruccin.
OperEnable
BOOL
Se establece mediante la interface del operador para habilitar la alarma. Tiene precedencia sobre un comando de inhabilitacin. La instruccin de alarma borra este parmetro. La opcin predeterminada es borrado.
AlarmCountReset
BOOL
Se establece mediante el programa de usuario para reinicializar los conteos de alarmas para todas las condiciones. Una transicin que cambia de borrado a establecido pone en cero los conteos de alarmas. La opcin predeterminada es borrado.
HHlimit
REAL
Lmite de alarma alta alta. Vlido = HLimit < HHLimit < valor con punto flotante (coma flotante) positivo mximo. Valor predeterminado = 0.0.
HHSeverity
DINT
Severidad de la condicin de alarma alta alta. Esto no afecta el procesamiento de alarmas por parte del controlador, pero puede usarse para clasificar y filtrar funciones en el subscriptor de alarmas. Vlido = 1...1000 (1000 = la ms severa; 1 = la menos severa). Valor predeterminado = 500.
HLimit
REAL
Lmite de alarma alta. Vlido = LLimit < HLimit < HHLimit. Valor predeterminado = 0.0.
47
Captulo 1
Descripcin Severidad de la condicin de alarma alta. Esto no afecta el procesamiento de alarmas por parte del controlador, pero puede usarse para clasificar y filtrar funciones en el subscriptor de alarmas. Vlido = 1...1000 (1000 = la ms severa; 1 = la menos severa). Valor predeterminado = 500.
LLimit
REAL
Lmite de alarma baja. Vlido = LLLimit < LLimit < HLimit. Valor predeterminado = 0.0.
LSeverity
DINT
Severidad de la condicin de alarma baja. Esto no afecta el procesamiento de alarmas por parte del controlador, pero puede usarse para clasificar y filtrar funciones en el subscriptor de alarmas. Vlido = 1...1000 (1000 = la ms severa; 1 = la menos severa). Valor predeterminado = 500.
LLLimit
REAL
Lmite de alarma baja baja. Vlido = valor con punto flotante (coma flotante) negativo mximo < LLLimit < LLimit. Valor predeterminado = 0.0.
LLSeverity
DINT
Severidad de la condicin de alarma baja baja. Esto no afecta el procesamiento de alarmas por parte del controlador, pero puede usarse para clasificar y filtrar funciones en el subscriptor de alarmas. Vlido = 1...1000 (1000 = la ms severa; 1 = la menos severa). Valor predeterminado = 500.
MnDurationPRE
DINT
Preajuste de duracin mnima (milisegundos) para que una condicin de nivel de alarma permanezca verdadera antes de que la condicin sea marcada como InAlarm y se enve notificacin de la alarma a los clientes. El controlador recolecta datos de alarmas tan pronto como se detecta la condicin de alarma; por lo tanto, no se pierden datos durante la espera hasta cumplir con la duracin mnima. No se aplica a condiciones de velocidad de cambio. MinDurationPRE slo se aplica a la primera excursin de normal en cualquier direccin. Por ejemplo, una vez que la condicin alta sobrepasa el tiempo de espera, la condicin alta alta se activa inmediatamente, mientras que una condicin baja esperar el perodo de tiempo de espera. Vlido = 0...2,147,483,647. Valor predeterminado = 0.
48
Captulo 1
Descripcin Banda muerta para detectar que los niveles de alarma alta alta, alta, baja y baja baja han regresado a lo normal. Una banda muerta diferente de cero puede reducir la vibracin de la condicin de alarma si el valor In est cambiando continuamente pero permanece cerca del nivel de umbral de la condicin. El valor de la banda muerta no afecta la transicin al estado InAlarm (activo). Una vez que una condicin de nivel est activa, pero antes de que la condicin regrese al estado inactivo (normal), el valor In debe, o bien: caer por debajo del umbral menos la banda muerta (para condiciones alta y alta alta). o bien subir por encima del umbral ms la banda muerta (para condiciones baja y baja baja). La banda muerta no se usa para condicionar la medicin del tiempo de duracin mnima. Vlido = 0 Deadband < Span desde la primera alarma baja habilitada hasta la primera alarma alta habilitada. Valor predeterminado = 0.0.
ROCPosLimit
REAL
Lmite para una velocidad de cambio creciente, en unidades por segundo. La deteccin se habilita para cualquiera valor > 0.0 si ROCPeriod tambin es > 0.0. Vlido = 0.0...valor con punto flotante (coma flotante) mximo posible. Valor predeterminado = 0.0.
ROCPosSeverity
DINT
Severidad de la condicin de velocidad de cambio creciente. Esto no afecta el procesamiento de alarmas por parte del controlador, pero puede usarse para clasificar y filtrar funciones en el subscriptor de alarmas. Vlido = 1...1000 (1000 = ms severa; 1 = menos severa). Valor predeterminado = 500.
ROCNegLimit
REAL
Lmite para una velocidad de cambio decreciente, en unidades por segundo. La deteccin se habilita para cualquiera valor > 0.0 si ROCPeriod tambin es > 0.0. Vlido = 0.0...valor con punto flotante (coma flotante) mximo posible. Valor predeterminado = 0.0.
ROCNegSeverity
DINT
Severidad de la condicin de velocidad de cambio decreciente. Esto no afecta el procesamiento de alarmas por parte del controlador, pero puede usarse para clasificar y filtrar funciones en el subscriptor de alarmas. Vlido = 1...1000 (1000 = ms severa; 1 = menos severa). Valor predeterminado = 500.
ROCPeriod
REAL
Perodo de tiempo en segundos para calcular (intervalo de muestreo) el valor de la velocidad de cambio. Cada vez que expira el intervalo de muestreo, se almacena una nueva muestra de In, y se calcula ROC. La deteccin de velocidad de cambio se habilita para cualquiera valor > 0.0. Vlido = 0.0...valor con punto flotante (coma flotante) mximo posible. Valor predeterminado = 0.0.
49
Captulo 1
Descripcin Habilitacin de salida. Estado activo de alarma. Se establece cuando cualquier condicin de alarma est activa. Se borra cuando todas las condiciones de alarma no estn activas (estado normal). Alarma activa y estado confirmado combinados. Se establece cuando una condicin de alarma se ha detectado y no est confirmada. Se borra cuando todas las alarmas son normales (inactivas), confirmadas, o ambas. Estado de condicin de alarma alta alta. Se establece cuando existe una condicin de alarma alta alta. Se borra cuando no existe una condicin de alarma alta alta. Estado de condicin de alarma alta. Se establece cuando existe una condicin de alarma alta. Se borra cuando no existe una condicin de alarma alta. Estado de condicin de alarma baja. Se establece cuando existe una condicin de alarma baja. Se borra cuando no existe una condicin de alarma baja. Estado de condicin de alarma baja baja. Se establece cuando existe una condicin de alarma baja baja. Se borra cuando no existe una condicin de alarma baja baja. Estado de condicin de alarma de velocidad de cambio positiva. Se establece cuando existe una condicin de velocidad de cambio positiva. Se borra cuando no existe una condicin de velocidad de cambio positiva. Estado de condicin de alarma de velocidad de cambio negativa. Se establece cuando existe una condicin de velocidad de cambio negativa. Se borra cuando no existe una condicin de velocidad de cambio negativa. Velocidad de cambio calculada del valor In. Este valor se actualiza cuando la instruccin se escanea despus de cada ROCPeriod transcurrido. El valor ROC se usa para evaluar condiciones de ROCPosInAlarm y ROCNegInAlarm. ROC = (muestra actual de In muestra previa de In)/ROCPeriod
AnyInAlarmUnack
BOOL
ROCNegInAlarm
BOOL
ROC
REAL
HHAcked
BOOL
Estado confirmado de condicin alta alta. Se establece cuando se confirma una condicin alta alta. Siempre se establece cuando AckRequired se borra. Se borra cuando no se confirma una condicin alta alta. Estado confirmado de condicin alta. Se establece cuando se confirma una condicin alta. Siempre se establece cuando AckRequired se borra. Se borra cuando no se confirma una condicin alta. Estado de confirmacin de condicin baja. Se establece cuando se confirma una condicin baja. Siempre se establece cuando AckRequired se borra. Se borra cuando no se confirma una condicin baja. Estado de confirmacin de condicin baja baja. Se establece cuando se confirma una condicin baja baja. Siempre se establece cuando AckRequired se borra. Se borra cuando no se confirma una condicin baja baja. Estado de confirmacin de condicin de velocidad de cambio positiva. Se establece cuando se confirma una condicin de velocidad de cambio positiva. Siempre se establece cuando AckRequired se borra. Se borra cuando no se confirma una condicin de velocidad de cambio positiva. Estado de confirmacin de condicin de velocidad de cambio negativa. Se establece cuando se confirma una condicin de velocidad de cambio negativa. Siempre se establece cuando AckRequired se borra. Se borra cuando no se confirma una condicin de velocidad de cambio negativa. Estado no confirmado y condicin alta alta activa combinado. Se establece cuando la condicin alta alta est activa (HHInAlarm est establecido) y no confirmada. Se borra cuando la condicin alta alta es normal (inactiva), confirmada, o ambas.
HAcked
BOOL
LAcked
BOOL
LLAcked
BOOL
ROCPosAcked
BOOL
ROCNegAcked
BOOL
HHInAlarmUnack
BOOL
50
Captulo 1
Descripcin Estado no confirmado y condicin alta activa combinado. Se establece cuando la condicin alta est activa (HInAlarm est establecido) y no confirmada. Se borra cuando la condicin alta es normal (inactiva), confirmada, o ambas. Estado no confirmado y condicin baja activa combinado. Se establece cuando la condicin baja est activa (LInAlarm est establecido) y no confirmada. Se borra cuando la condicin baja es normal (inactiva), confirmada, o ambas. Estado no confirmado y condicin baja baja activa combinado. Se establece cuando la condicin baja baja est activa (LLInAlarm est establecido) y no confirmada. Se borra cuando la condicin baja baja es normal (inactiva), confirmada, o ambas. Estado no confirmado y condicin de velocidad de cambio positiva activa combinado. Se establece cuando la condicin de velocidad de cambio positiva est activa (ROCPosInAlarm est establecido) y no confirmada. Se borra cuando la condicin de velocidad de cambio positiva es normal (inactiva), confirmada, o ambas. Estado no confirmado y condicin de velocidad de cambio negativa activa combinado. Se establece cuando la condicin de velocidad de cambio negativa est activa (ROCNegInAlarm est establecido) y no confirmada. Se borra cuando la condicin de velocidad de cambio negativa es normal (inactiva), confirmada, o ambas. Estado suprimido de la alarma. Se establece cuando la alarma est suprimida. Se borra cuando la alarma no est suprimida. Estado inhabilitado de la alarma. Se establece cuando la alarma est inhabilitada. Se borra cuando la alarma est habilitada. Tiempo transcurrido desde que se detect una condicin de alarma. Cuando este valor llega a MinDurationPRE, todas las condiciones de nivel de alarma detectadas se activan (xInAlarm est establecido) y se enva una notificacin a los clientes. Sello de hora cuando la instruccin ALMA detect que el valor In excedi el lmite de condicin alta alta para la transicin ms reciente al estado activo. El nmero de veces que se activ la condicin alta alta. Si se llega al valor mximo, el contador deja el valor en el mximo valor de conteo. Sello de hora cuando la instruccin ALMA detect que el valor In excedi el lmite de condicin alta para la transicin ms reciente al estado activo. El nmero de veces que se activ la condicin alta. Si se llega al valor mximo, el contador deja el valor en el mximo valor de conteo. Sello de hora cuando la instruccin ALMA detect que el valor In excedi el lmite de condicin baja para la transicin ms reciente al estado activo. El nmero de veces que se activ la condicin baja. Si se llega al valor mximo, el contador deja el valor en el mximo valor de conteo. Sello de hora cuando la instruccin ALMA detect que el valor In excedi el lmite de condicin baja baja para la transicin ms reciente al estado activo. El nmero de veces que se activ la condicin baja baja. Si se llega al valor mximo, el contador deja el valor en el mximo valor de conteo. Sello de hora cuando la instruccin ALMA detect que el valor In excedi el lmite de condicin de velocidad de cambio positiva para la transicin ms reciente al estado activo. El nmero de veces que se activ la condicin de velocidad de cambio positiva. Si se llega al valor mximo, el contador deja el valor en el mximo valor de conteo. Sello de hora cuando la instruccin ALMA detect que el valor In excedi el lmite de condicin de velocidad de cambio negativa para la transicin ms reciente al estado activo. El nmero de veces que se activ la condicin de velocidad de cambio negativa. Si se llega al valor mximo, el contador deja el valor en el mximo valor de conteo.
LInAlarmUnack
BOOL
LLInAlarmUnack
BOOL
ROCPosInAlarmUnack
BOOL
ROCNegInAlarmUnack
BOOL
Suppressed
BOOL
Disabled
BOOL
MnDurationACC
DINT
HHInAlarmTime HHAlarmCount HInAlarmTime HAlarmCount LInAlarmTime LAlarmCount LLInAlarmTime LLAlarmCount ROCPosInAlarmTime ROCPosInAlarmCount ROCNegInAlarmTime ROCNegAlarmCount
LINT DINT LINT DINT LINT DINT LINT DINT LINT DINT LINT DINT
51
Captulo 1
Descripcin Sello de hora de la confirmacin de condicin ms reciente. Si la alarma no requiere confirmacin, este sello de hora es igual a la hora de la alarma de condicin ms reciente. Sello de hora del retorno de la alarma al estado normal. Sello de hora que indica cundo se restableci la alarma. Error de entrega del mensaje de notificacin de alarma. Se establece cuando hay un error de entrega: ningn subscriptor de alarma estaba suscrito, o por lo menos un suscriptor no recibi el ltimo mensaje de estado de cambio de alarma. Se borra cuando la entrega se realiza correctamente o est en curso. Entrega del mensaje de notificacin de alarma realizada. Se establece cuando la entrega se realiza correctamente: por lo menos un suscriptor estaba suscrito y todos los suscriptores recibieron correctamente el ltimo mensaje de estado de cambio de alarma. Se borra cuando la entrega no se realiza correctamente o est en curso. Estado de entrega del mensaje de notificacin de alarma. Se establece cuando la entrega est en curso. Se borra cuando la entrega no est en curso. La alarma no tena suscriptores cuando se intent entregar el mensaje ms reciente. Se establece cuando no hay suscriptores. Se borra cuando hay por lo menos un suscriptor. Los subscriptores de la alarma no estaban conectados cuando se intent entregar el mensaje ms reciente. Se establece cuando todos los suscriptores estn desconectados. Se borra cuando por lo menos un suscriptor est conectado o cuando no hay suscriptores. Error de comunicacin al entregar un mensaje de alarma. Se establece cuando hay errores de comunicacin y se han usado todos los reintentos. Esto significa que un suscriptor estaba suscrito y tena una conexin, pero el controlador no recibi confirmacin de la entrega del mensaje. Se borra cuando todos los suscriptores conectados confirman la recepcin del mensaje de alarma. Mensaje de alarma almacenado en el bfer debido a error de comunicacin (ComError est establecido) o prdida de conexin (NoConnection est establecido). Se establece cuando el mensaje de alarma se almacena en el bfer por lo menos para un suscriptor. Se borra cuando el mensaje de alarma no se almacena en el bfer. Nmero de suscriptores para esta alarma. Nmero de suscriptores notificados correctamente acerca del cambio de estado de alarma ms reciente. Indicadores de estado combinados: Status.0 = InstructFault. Status.1 = InFaulted. Status.2 = SeverityInv. Status.3 = AlarmLimitsInv. Status.4 = DeadbandInv. Status.5 = ROCPosLimitInv. Status.6 = ROCNegLimitInv. Status.7 = ROCPeriodInv.
DeliveryDN
BOOL
DeliveryEN
BOOL
NoSubscriber
BOOL
NoConnection
BOOL
CommError
BOOL
AlarmBuffered
BOOL
InstructFault (Status.0)
BOOL
Existen condiciones de error de instruccin. ste no es un error menor ni mayor del controlador. Verifique los bits de estado restantes para determinar lo que ocurri.
52
Captulo 1
Descripcin El programa del usuario estableci InFault para indicar datos de entrada de mala calidad. La alarma contina evaluando In en lo que respecta a las condiciones de alarma. La severidad de la alarma no es vlida. Si la severidad <1, la instruccin usa Severity = 1. Si a severidad >1000, la instruccin usa Severity = 1000.
BOOL
La configuracin de lmite de alarma no es vlida (por ejemplo, LLimit < LLLimit). Si no es vlido, la instruccin borra todos los bits activos de condiciones de nivel. No se podrn detectar nuevas condiciones de nivel hasta que se borre el fallo. La configuracin de la banda muerta no es vlida. Si no es vlida, la instruccin usa Deadband = 0.0. Vlido = 0 Deadband < Span desde la primera alarma baja habilitada hasta la primera alarma alta habilitada.
BOOL
Lmite de velocidad de cambio positiva no vlido. Si no es vlido, la instruccin usa ROCPosLimit = 0.0, lo cual inhabilita la deteccin de velocidad de cambio positiva. Lmite de velocidad de cambio negativa no vlido. Si no es vlido, la instruccin usa ROCNegLimit = 0.0, lo cual inhabilita la deteccin de velocidad de cambio negativa. Perodo de velocidad de cambio no vlido. Si no es vlido, la instruccin usa ROCPeriod = 0.0, lo cual inhabilita la deteccin de velocidad de cambio.
53
Captulo 1
InIn >= HHLimit, >=MinDurationPRE MinDurationPRE >= HHLimit,MinDurationACC MinDurationACC >= HinAlarm True HInAlarm = = True HAcked = False HAcked HHinAlarm = False False HHInAlarm = HHAcked = True True HHAcked =
)) dd nn a a b b d ad IIn ea n< De <(H -- D t (H i it H H m LL im Liim PRE im nE HL iit oR t -- D HH ((H tiP De ran utio n< ea In ra I ad D u db n i D ba an in nd MM d)) >= >= CC AC nC oA tin io t a r a r u u D D in in M M miitt,, Liim HL =H = > > n In
1 1 Ack Ack
it --De mit Lim RE PE R (Hli Pn < (H io iotn In ta In < ar Dru nu iniD M M == C>> C CC A A nn io io att u urra D n in Mi itit,, M
Ack1 Ack
1 Ack Ack
Ack1 Ack
ProgAckAll, OperAckAll, clientes (software RSLogix 5000, software RSView). clients (RSLogix 5000 software, RSView software).
H alarm condition can be acked by several different ways: HProgAck, HOperAck, ProgAckAll, OperAckAll,
ProgAckAll, OperAckAll, clientes (software RSLogix 5000, software RSView). clients (RSLogix 5000 software, RSView software).
HH alarm condition can be acked by several different ways: HHProgAck, HHOperAck, ProgAckAll, OperAckAll,
InIn >= LLimit, >=MinDurationPRE MinDurationPRE <= LLimit,MinDurationACC MinDurationACC >= LinAlarm = False False LInAlarm = LAcked = True True LAcked =
) d ) d ann ba db ad IIn n< Dea >( LL L it+- De Liim m it miitt + i L EE PR - De nR < ((LLlim oP tin In tio adba In > ra ra uu D D nd in in d)) M M = = > C> CC AC nA on attiio rra u u D D in n i M , it,itM Lim im LLL <= n= InI>
In >= LLLimit, >= MinDurationPRE MinDurationPRE In <= LLLimit,MinDurationACC MinDurationACC >= LLinAlarm = False False LLInAlarm = LAcked = LLAcked =True True
IIn n<
Ack1
Ack1
Ack1 Ack
1 Ack Ack
LLinAlarm = True LLInAlarm = True LAcked ==False LLAcked False d)) nd an b a d b a ead De -D >( t+ i (L LL it E m LL i i m R Limit L E P R LL LLim it + Pn -D io < ((L atn De tio IIn ar Ack1 ea n> ad Dru ba db Ack1 nu an nd iniD M d)) M = = > CC> C C A A nn io io att urra Du inD Min it,, M t i im m i LLinAlarm = True LL LL LLInAlarm = True ==LL In>< LAcked = In LLAcked =True True
ProgAckAll, OperAckAll, clientes (software RSLogix 5000, software RSView). clients (RSLogix 5000 software, RSView software).
L alarm condition can be acked by several different ways: LProgAck, LOperAck, ProgAckAll, OperAckAll,
La de alarma LLacked puede confirmarse de diferentes maneras: LLProgAck, LLOperAck, ProgAckAll, LLcondicin alarm condition can be by several different ways: LLProgAck, LLOperAck, ProgAckAll, OperAckAll, clients (RSLogix 5000(software software, RSView OperAckAll, clientes RSLogixsoftware). 5000, software RSView).
ROC == ROC
Donde se recolecta una nueva muestra en el Where a new sample is collected on the siguiente escn despus de que haya transcurrido next scan after the ROCPeriod has elapsed. ROCPeriod
ROC <= ROC >= RocPosLimit RocPosLimit RocPosInAlarm = False False RocPosInAlarm = RocPosAcked = = True RocPosAcked True
R R O O C
C< <
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
Ack11 Ack
1 1 Ack Ack
1 Ack Ack
La condicin de alarma ROCPos puede confirmarse de diferentes maneras: RocPosProgAck, RocPosOperAck, ROCPos alarm condition can be acked by several different ways: RocPosProgAck, RocPosOperAck, ProgAckAll, l, ProgAckAll, OperAckAll, clientes (software RSLogix 5000, software RSView). OperAckAll, clients (RSLogix 5000 software, RSView software).
La condicin de alarma ROCNeg puede confirmarse de diferentes maneras: RocNegProgAck, RocNegOperAck, 1 ROCNeg alarm condition can be acked by several different ways: RocNegProgAck, RocNegOperAck, ProgAckAll, , ProgAkkAll, OperAckAll, clientes (software 5000, software RSView). OperAckAll, clients (RSLogix 5000 software, RSLogix RSView software).
54
Captulo 1
HinAlarm = False
HInAlarm = True
HinAlarm = True
HAcked = True
HAcked = True
>= LLLimit, MinDurationACC >= >= MinDurationPRE In In <= LLimit, MinDurationACC MinDurationPRE
LInAlarm = False
LinAlarm = False
LInAlarm = True
LinAlarm = True
LAcked = True
LAcked = True
In >= HHLimit, MinDurationACC >= In >= HHLimit, MinDurationACC >=MinDurationPRE MinDurationPRE HHinAlarm = = False HHInAlarm False (HHLimit - Deadband) InIn << (HHLimit Deadband) HHinAlarm = HHInAlarm =True True HHAcked = HHAcked =True True
LLinAlarm = False
LLInAlarm = True
LLinAlarm = True
LLAcked = True
LLAcked = True
ROC == ROC
In(CurrentSample) - In(PreviousSample) In(Current Sample) In(PreviousSample) ROCPeriod ROCPeriod ROC >= ROCPosLimit ROCPosLimit ROC >=
Donde searecolecta una nueva muestra enthe el siguiente Where new sample is collected on escn despus de the queROCPeriod haya transcurrido ROCPeriod next scan after has elapsed.
RocPosInAlarm = RocPosInAlarm =False False ROC< > ROCPosLimit ROCPosLimit ROC ROC<= >=-ROCNegLimit -ROCNegLimit ROC RocNegInAlarm = RocNegInAlarm = False False ROC> > -ROCNegLimit -ROCNegLimit ROC
Indicadores de estado aritmtico: Los indicadores de estado aritmtico se establecen para la salida ROC. Condiciones de fallo:
Fallo menor Overflow ROC Tipo de fallo 4 Cdigo de fallo 4
Ejecucin:
Condicin preescn Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. Todos los parmetros xInAlarm se borran y se confirman todas las condiciones de alarma. Todas las peticiones del operador, sellos de hora e indicadores de entrega se borran. condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera post-escn La instruccin no se ejecuta. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. La condicin de salida de rengln se establece como falsa.
55
Captulo 1
Condicin preescn
Accin de bloque de funciones Todas las peticiones del operador, sellos de hora e indicadores de entrega se borran. Todos los parmetros xInAlarm se borran y se confirman todas las condiciones de alarma.
Accin de texto estructurado Todas las peticiones del operador, sellos de hora e indicadores de entrega se borran. Todos los parmetros xInAlarm se borran y se confirman todas las condiciones de alarma. Ninguna. Ninguna. La instruccin se ejecuta. EnableOut siempre se establece. La instruccin se ejecuta. EnableOut siempre se establece. Ninguna.
primer escn de instruccin Ninguna. primera ejecucin de instruccin EnableIn se borra Ninguna. La instruccin no se ejecuta. EnableOut se borra. EnableIn se establece La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
56
Captulo 1
57
Captulo 1
58
Captulo 1
59
Captulo 1
60
Captulo 1
Texto estructurado
ALMA(Tank32Level,Tank32LT,Tank32LevelAck,0, 0);
Bloque de funciones
61
Captulo 1
Despus de introducir una alarma ALMD o ALMA y especificar el nombre de tag de la alarma, use el dilogo Alarm Configuration para especificar los detalles del mensaje.
62
Captulo 1
Severity
63
Captulo 1
Descripcin Use la clase de alarma para agrupar alarmas relacionadas. Especifique exactamente la misma clase de alarma para cada alarma que usted desea mantener en la misma clase. La clase de alarma permite distinguir maysculas de minsculas. Por ejemplo, especifique Zona de tanques A para agrupar todas las alarmas de los tanques de un rea especfica. O especifique la clase Lazos de control para agrupar todas las alarmas de lazos PID. Despus de ello podr mostrar y filtrar alarmas en la interface operador-mquina (HMI) segn la clase. Por ejemplo, un operador puede mostrar todas las alarmas de tanques o todas las alarmas de lazo PID. La clase de alarma no limita las alarmas a las que se subscribe un objeto del resumen de alarmas. Use la clase de alarmas para filtrar las alarmas que se muestran a un operador una vez que stas han sido recibidas por el objeto del resumen de alarmas. El software FactoryTalk View puede filtrar la clase de alarma sustituyendo comodines por caracteres.
View command
Ejecute un comando en la estacin del operador cuando lo solicite el operador para una alarma especfica. Esto permite que un operador ejecute cualquier comando de FactoryTalk View estndar, tal como llamar a plantillas y pantallas especficas, ejecutar macros, acceder a archivos de ayuda e iniciar aplicaciones externas. Cuando se produce la condicin de alarma y se muestra al operador, un botn en las pantallas de resumen e indicador deja que el operador ejecute un comando de visualizacin asociado. Tenga cuidado a fin de ingresar la sintaxis de comando correcta y pruebe el comando en tiempo de ejecucin, ya que cuando se introduce el comando no se realiza una verificacin de errores.
Usted puede editar todos los aspectos de la configuracin de alarmas fuera de lnea y en lnea. Las ediciones en lnea de las alarmas nuevas y existentes se envan inmediatamente a los suscriptores de FactoryTalk (los terminales de HMI de versiones anteriores que estn encuestando [polling] los tags no se actualizan automticamente). Los suscriptores de FactoryTalk no tienen que volver a suscribirse para recibir informacin actualizada. Los cambios en lnea automticamente se propagan desde la estructura de alarmas del controlador al resto de la arquitectura.
64
Captulo 1
Introduzca el texto de mensaje apropiado que se mostrar cuando una condicin de alarma est activa (InAlarm). Para una instruccin ALMD, usted introduce la informacin del mensaje en la ficha Configuration. Para una instruccin ALMA, usted introduce la informacin de mensaje en la ficha Message.
65
Captulo 1
Descripcin Puede seleccionar hasta cuatro tags adicionales desde el proyecto del controlador para asociarlos con la alarma. Los valores de estos tags se envan con un mensaje de alarma al servidor de alarmas. Por ejemplo, una alarma digital para una vlvula de alivio de presin tambin podra incluir informacin tal como la velocidad de la bomba y la temperatura del tanque. Los tags asociados pueden ser de cualquier tipo de datos atmico (BOOL, DINT, INT, SINT o REAL) o un STRING. Pueden ser elementos en un UDT o una matriz. No se permiten referencias a matrices variables. Si la alarma est bajo el control del controlador, los tags asociados tambin deben estar bajo el control del controlador. Opcionalmente, incorpore los tags asociados en la cadena de texto de mensaje. Los valores de tag asociados siempre se envan con la alarma, visibles para el operador e introducidos en el registro del historial, independientemente de que los haya incorporado en la cadena de mensaje.
El nombre de la alarma, que consiste en el nombre del /*S:0 %AlarmName*/ controlador, nombre del programa y nombre de tag. Por ejemplo, [Zone1Controller]Program:Main.MyAlarmTagName. La condicin que activa la alarma: la alarma digital muestra el disparo; la alarma analgica muestra HiHi, Hi, Lo, LoLo, ROC_POS ROC_NEG.
/*S:0 %ConditionName*/
Condition name
Input value
El valor de entrada para la alarma: la alarma digital muestra 0 1; la alarma analgica muestra el valor de la variable de entrada que est monitoreando.
Limit value
El umbral de la alarma: la alarma digital muestra 0 1; la alarma analgica muestra la verificacin de rango configurada actual para la condicin de alarma analgica.
La severidad configurada de la condicin de alarma. El valor de un tag configurado para incluirse con el evento de alarma.
66
Captulo 1
El cdigo vara segn el tipo de tag que seleccione, cuntos dgitos o caracteres hay en un valor de tag y si desea rellenar los bits vacos con espacios o ceros a la izquierda. Por ejemplo:
Tag Valor BOOL Valor DINT, 9 dgitos, relleno con espacio a la izquierda Valor de entrada REAL, 9 dgitos (incluye decimal) 3 dgitos despus del decimal, relleno con ceros a la izquierda. Valor REAL, 8 dgitos (incluye decimal) 4 dgitos despus del decimal, relleno con ceros a la izquierda. Valor de cadena, sin ancho fijo Valor de cadena, 26 caracteres, ancho fijo Cdigo
/*N:1 %Tag1 NOFILL DP:0*/ /*N:9 %Tag2 SPACEFILL DP:0*/ /*N:9 %InputValue NOFILL DP:3*/
Toda esta informacin variable se incluye con los datos de alarma, visibles para el operador e introducidos en el registro de historial, independientemente de que usted haya incorporado la informacin en el texto del mensaje.
67
Captulo 1
Use la utilidad de importacin/exportacin para crear y traducir cadenas de mensajes en mltiples idiomas. El formato de importacin/exportacin .TXT admite caracteres de doble byte, por lo tanto usted puede usar este formato para todos los idiomas, inclusive chino, japons y coreano. El formato de importacin/exportacin .CVS no admite caracteres de doble byte. Los mensajes de importacin y exportacin siempre realizan una fusin. Al eliminar un mensaje en un archivo .CSV o .TXT no se elimina el mensaje del archivo .ACD. Para eliminar un mensaje, importe el archivo .CSV o .TXT con los campos tipo, nombre y especificador llenados pero con la descripcin en blanco.
En la ficha Status del dilogo de alarma, monitoree la condicin de una alarma, confirme una alarma, inhabilite una alarma, suprima una alarma o restablezca una alarma. Use las selecciones del dilogo para ver cmo se comporta una alarma sin necesidad de tener un HMI en operacin.
68
Captulo 1
Para recibir mensajes de alarma basados en el controlador, los clientes de alarmas (como el servidor RSLinx Enterprise) deben establecer una suscripcin a las alarmas en el controlador Logix. El controlador mantiene una conexin con cada suscriptor y monitorea el estado de dicha conexin. A medida que ocurren cambios de estado de alarma, las instrucciones de alarma almacenan en cach la informacin necesaria (como sellos de hora y valores de tag asociados) y solicitan la transmisin del mensaje de alarma a todos los suscriptores. El mecanismo de publicacin entrega los mensajes de alarma a cada suscriptor tan rpido como sea posible. Si algn suscriptor no confirma recibo del mensaje de alarma, o si la conexin a un suscriptor conocido no es buena, el mecanismo de publicacin almacena los mensajes de alarma no entregados en un bfer de 100 KB. Cada suscriptor tiene su propio bfer; por lo tanto, los problemas de comunicacin con un suscriptor no interfieren con la entrega de mensajes de alarmas a otros suscriptores. Cuando el bfer est lleno, se descartan los mensajes de alarma ms nuevos. El bfer se crea cuando el suscriptor establece su conexin inicial y se mantiene por un tiempo configurable (0...120 minutos, siendo el valor predeterminado 20 minutos) despus de que un suscriptor pierde su conexin. Cuando el suscriptor restablece una conexin dentro del intervalo de tiempo de espera del bfer, obtiene el estado actual de todas las alarmas, comienza a recibir mensajes de alarma actuales y tambin carga los mensajes que puedan haberse acumulado en el bfer. Aun si el bfer estuviera lleno y los mensajes fueras descartados, los suscriptores se sincronizan de manera exacta con el estado actual de las alarmas (inclusive los sellos de hora ms recientes de InAlarmTime, RetToNormalTime y AckTime. El almacenamiento en el bfer contina hasta llenarse. Una vez lleno, el bfer deja de aadir transiciones de alarmas hasta que el suscriptor deje un espacio disponible en el bfer.
69
Captulo 1
Cada instruccin de alarma tiene una estructura de alarma que almacena informacin de configuracin y ejecucin de alarma. La estructura de alarma incluye tanto elementos de control de programa y de operador, como elementos de operador. Las instrucciones de alarma no usan ajustes de modo para determinar si el acceso al programa o el acceso al operador estn activos; por lo tanto, estos elementos siempre estn activos. Existen tres maneras de realizar acciones en una instruccin de alarma.
Consideraciones Use la lgica del controlador para acceder programticamente a elementos del sistema de alarmas. Por ejemplo, el programa de control puede determinar si se inhabilitar una serie de alarmas relacionadas con una sola causa raz. Por ejemplo, el programa de control podra inhabilitar una instruccin de alarma, MyDigitalAlarm de tipo de datos ALARM_DIGITAL, mediante acceso al miembro de tag MyDigitalAlarm.ProgDisable. Cree una plantilla de HMI personalizada para acceder a elementos del sistema de alarmas. Por ejemplo, si el operador necesita retirar una herramienta, en lugar de inhabilitar manualmente o suprimir alarmas individualmente desde las pantallas de alarmas, el operador puede presionar una tecla de inhabilitacin que brinda acceso a un tag MyDigitalAlarm.OperDisable. Los parmetros del operador trabajan con cualquier interface de Rockwell Automation o de otros fabricantes para permitir el control de estados de alarma. Cuando se establece un parmetro del operador, la instruccin evala si puede responder a la peticin, y posteriormente restablece siempre el parmetro.
HMI personalizado
No accesible
La interaccin normal del operador se realiza a travs de objetos del resumen de alarmas, indicador de alarma y explorador de estado de alarmas en la aplicacin FactoryTalk View. Esta interaccin es similar a la opcin de HMI personalizada antes descrita, pero no hay interaccin ni visibilidad programtica.
Cuando usted crea una instruccin de alarma, debe crear y asignar un tag del tipo de datos correcto para dicha alarma. Por ejemplo, cree MyDigitalAlarm del tipo de datos ALARM_DIGITAL. En lgica de escalera de rels, estos parmetros de instruccin deben introducirse en la instruccin: ProgAck ProgReset ProgDisable ProgEnable En lgica de escalera de rels y en texto estructurado, el valor o tag que usted asigna a un parmetro de instruccin (como ProgAck) se escribe automticamente en el miembro del tag de alarma (por ej., MyAnalogAlarm.ProgAck) cada vez que se escanea la instruccin.
70
Captulo 1
En lgica de escalera de rels y en texto estructurado, si usted desea acceder programticamente a la estructura de alarmas, asigne el tag de estructura al parmetro en la instruccin. Por ejemplo, para usar MyAnalogAlarm.ProgAck en lgica, asigne el tag MyAnalogAlarm.ProgAck al parmetro ProgAck.
Suprima alarmas para retirar las alarmas cuya existencia usted conoce desde el HMI, pero mantenga las alarmas activas. Esto le permitir borrar el resumen de alarmas mientras que usted est resolviendo una alarma conocida sin continuar viendo informacin de alarmas. Una alarma suprimida no aparece en las pantallas de indicadores o resumen de operador, pero una alarma suprimida igualmente se enva a los suscriptores, se registra en la base de datos histricos, puede cambiar el estado de alarma, tener sello de hora y responder a otras interacciones programticas o del operador. Cuando una alarma se suprime, sta contina funcionando normalmente, monitorea el parmetro In en lo que respecta a las condiciones de alarma y responde a peticiones de confirmacin. Todos los suscriptores son notificados de este evento, y todo mensaje de alarma generado mientras la alarma se encuentra en estado suprimido incluye el estado suprimido. Los clientes de alarmas pueden responder de manera diferente a las alarmas suprimidas. Por ejemplo, las alarmas suprimidas pueden registrarse en la base de datos histricos pero no pueden anunciarse al operador. Cuando una alarma no est suprimida, todos los suscriptores son notificados y los mensajes de alarma a los suscriptores ya no incluyen el estado suprimido. Inhabilite una alarma para tratar la alarma como si sta no existiera en el programa de control. Una alarma inhabilitada no cambia el estado de alarma ni se registra en la base de datos histricos. Una alarma inhabilitada aun se rastrea y puede rehabilitarse en el explorador de estado de alarmas en el software FactoryTalk View SE. Cuando una alarma est inhabilitada, todas sus condiciones se establecen en el estado inicial (InAlarm se borra y Acked se establece). El parmetro In no es monitoreado en lo que respecta a las condiciones de alarma. Todos los suscriptores son notificados de este evento.
71
Captulo 1
Cuando una alarma se habilita, comienza a monitorear el parmetro In en lo que respecta a las condiciones de alarma. Todos los suscriptores son notificados de este evento.
Descripcin Los miembros de tag de alarma en su mayor parte se procesan cuando la aplicacin del usuario escanea la instruccin de alarma. Esto incluye lo siguiente: procesamiento de cambios a los parmetros de configuracin; evaluacin de la condicin de alarma; medicin del tiempo transcurrido para MinDuration; captura de los sellos de hora de InAlarmTime y RetToNormalTime; captura de valores de tag asociados; procesamiento de los comandos Prog y Oper; Adems, estos miembros de estado de tag de alarma se actualizan a medida que los mensajes de alarma se entregan a cada suscriptor, de manera asncrona con el escn del programa: DeliveryEN, DeliveryER, DeliveryDN NoSubscriber, NoConnection, CommError, AlarmBuffered, SubscNotified
Mensajes de clientes
Los mensajes de clientes son procesados a medida que se reciben, de manera asncrona con el escn del programa. Comandos restablecer, confirmar, inhabilitar/habilitar y suprimir/cancelar supresin desde un terminal RSLogix 5000. Comandos restablecer, confirmar, inhabilitar/habilitar y suprimir/cancelar supresin desde un suscriptor de alarmas FactoryTalk View SE.
Tenga cuidado al determinar dnde colocar las instrucciones de alarma en la aplicacin. La exactitud de los sellos de hora se ve afectada por la rapidez con que se escanea la instruccin despus de que la condicin de alarma cambia de estado. Los clculos de acumulacin de tiempo de MinDuration y la velocidad de cambio requieren escaneo repetido, dentro de los intervalos de tiempo determinados por la aplicacin de usuario. Las instrucciones de alarma deben continuar escanendose despus de que la condicin de alarma se hace falsa, de modo que pueda detectarse la transicin de ReturnToNormal. Por ejemplo, si usted desea una exactitud de 10 ms en los sellos de hora, podra colocar las instrucciones de alarma que necesitan dicha resolucin en una tarea peridica de 10 ms.
72
Captulo 1
73
Captulo 1
Las cadenas de mensaje ms largas, al igual que las cadenas de mensaje para mltiples idiomas, consumen memoria adicional de su controlador. El uso real de memoria depende de cmo se configura la alarma, de la longitud del mensaje y de los tags asociados pasados con la alarma.
74
Captulo 1
Tiempo de escn
Estos tiempos de ejecucin muestran cmo las instrucciones ALMD y ALMA afectan el tiempo de escn total.
Estado de rengln Tiempos de ejecucin Alarma digital (ALMD) Sin cambio de estado Rengln de alarma falso Rengln verdadero Cambio de estado de alarma Rengln falso Rengln verdadero 8 s 8 s 35 s 35 s Alarma analgica (ALMA) 17 s 60 s 17 s 126 s
Un cambio de estado de alarma es un evento que cambia la condicin de la alarma, tal como confirmar o suprimir la alarma. Minimice el potencial de que un gran nmero de alarmas cambie de estado simultneamente (rfagas de alarmas) creando dependencias en alarmas relacionadas. Las grandes rfagas de alarmas pueden tener un efecto considerable en el tiempo de escn del cdigo de aplicacin.
75
Captulo 1
Notas:
76
Captulo
Instrucciones de bits
(XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Introduccin
Si desea habilitar salidas cuando se establece un bit. habilitar salidas cuando se borra un bit. establecer un bit establecer un bit (retentivo) borrar un bit (retentivo) habilitar salidas por un escn cada vez que el rengln se hace verdadero establecer un bit por un escn cada vez que el rengln se hace verdadero establecer un bit por un escn cada vez que el rengln se hace falso establecer un bit por un escn cada vez que el bit de entrada se establece en el bloque de funciones establecer un bit por un escn cada vez que el bit de entrada se borra en el bloque de funciones
(1)
Use las instrucciones de bits (tipo rel) para monitorear y controlar el estado de los bits.
Use esta instruccin XIC XIO OTE OTL OTU ONS OSR OSF OSRI Disponible en estos lenguajes lgica de escalera de rels texto estructurado(1) lgica de escalera de rels texto estructurado
(1)
Vea la pgina 78 80 82 84 86 88 91 94 96
lgica de escalera de rels texto estructurado(1) lgica de escalera de rels texto estructurado texto estructurado texto estructurado
(1)
lgica de escalera de rels lgica de escalera de rels texto estructurado bloque de funciones texto estructurado bloque de funciones
OSFI
99
No hay una instruccin equivalente en texto estructurado. Use otra programacin en texto estructurado para lograr el mismo resultado. Vea la descripcin de la instruccin.
77
Captulo 2
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Texto estructurado
El texto estructurado no tiene una instruccin XIC, pero usted puede lograr los mismos resultados usando una construccin IF...THEN.
IF data_bit THEN <statement>; END_IF;
Consulte el Apndice 641B, Atributos de bloque de funciones para obtener informacin sobre la sintaxis de las construcciones en texto estructurado.
Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa.
bit de datos = 1
post-escn
78
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Captulo 2
Texto estructurado
IF limit_switch THEN <statement>; END_IF;
Texto estructurado
IF S:V THEN <statement>; END_IF;
79
Captulo 2
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Texto estructurado
El texto estructurado no tiene una instruccin XIO, pero usted puede lograr los mismos resultados usando una construccin IF...THEN.
IF NOT data_bit THEN <statement>; END_IF;
Consulte el Apndice 641B, Atributos de bloque de funciones para obtener informacin sobre la sintaxis de las construcciones en texto estructurado.
Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa.
bit de datos = 1
post-escn
80
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Captulo 2
Texto estructurado
IF NOT limit_switch_2 THEN <statement>; END_IF;
Texto estructurado
IF NOT S:V THEN <statement>; END_IF;
81
Captulo 2
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Texto estructurado
El texto estructurado no tiene una instruccin OTE, pero usted puede lograr los mismos resultados usando una asignacin no retentiva.
data_bit [:=] BOOL_expression;
Consulte el Apndice 641B, Atributos de bloque de funciones para obtener informacin sobre la sintaxis de asignaciones y expresiones en texto estructurado.
82
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Captulo 2
Texto estructurado
light_1 [:=] switch;
83
Captulo 2
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Texto estructurado
El texto estructurado no tiene una instruccin OTL, pero usted puede lograr los mismos resultados usando una construccin IF...THEN y una asignacin.
IF BOOL_expression THEN data_bit := 1; END_IF;
Consulte el Apndice 641B, Atributos de bloque de funciones para obtener informacin sobre la sintaxis de construcciones, expresiones y asignaciones en texto estructurado.
84
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Captulo 2
Texto estructurado
IF BOOL_expression THEN light_2 := 1; END_IF;
85
Captulo 2
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Texto estructurado
El texto estructurado no tiene una instruccin OTU, pero usted puede lograr los mismos resultados usando una construccin IF...THEN y una asignacin.
IF BOOL_expression THEN data_bit := 0; END_IF;
Consulte el Apndice 641B, Atributos de bloque de funciones para obtener informacin sobre la sintaxis de construcciones, expresiones y asignaciones en texto estructurado.
86
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Captulo 2
Ejemplo: Cuando se habilita, la instruccin OTU borra light_2. Lgica de escalera de rels
Texto estructurado
IF BOOL_expression THEN light_2 := 0; END_IF;
87
Captulo 2
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Un impulso (ONS)
Operandos:
La instruccin ONS habilita o inhabilita el resto del rengln, dependiendo del estado del bit de almacenamiento.
Texto estructurado
El texto estructurado no tiene una instruccin ONS, pero usted puede lograr los mismos resultados usando una construccin IF...THEN.
IF BOOL_expression AND NOT storage_bit THEN <statement>; END_IF; storage_bit := BOOL_expression;
Consulte el Apndice 641B, Atributos de bloque de funciones para obtener informacin sobre la sintaxis de construcciones y expresiones en texto estructurado.
88
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Captulo 2
Ejecucin:
Condicin preescn Accin de lgica de escalera de rels El bit de almacenamiento se establece para evitar una activacin no vlida durante el primer escn. La condicin de salida de rengln se establece como falsa. condicin de entrada de rengln es falsa El bit de almacenamiento se borra. La condicin de salida de rengln se establece como falsa. condicin de entrada de rengln es verdadera
bit de almacenamiento = 0
bit de almacenamiento = 1
el bit de almacenamiento permanece establecido la condicin de salida de rengln se establece como falsa
fin
post-escn
Ejemplo: Normalmente una instruccin ONS est precedida por una instruccin
de entrada, porque la instruccin ONS se escanea cuando sta se habilita y cuando se inhabilita para que funcione correctamente. Una vez que la instruccin ONS se habilita, la condicin de entrada de rengln debe borrarse, o el bit de almacenamiento debe borrarse para que la instruccin ONS se habilite nuevamente.
89
Captulo 2
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
En todo escn en que limit_switch_1 se borra o storage_1 se establece, este rengln no tiene efecto. En todo escn en que limit_switch_1 se establece y storage_1 se borra, la instruccin ONS establece storage_1 y la instruccin ADD incrementa sum en 1. Siempre que limit_switch_1 permanezca esta blecido, sum permanece con el mismo valor. limit_switch_1 debe cambiar de borrado a establecido nuevamente para que se incremente sum nuevamente.
Texto estructurado
IF limit_switch_1 AND NOT storage_1 THEN sum := sum + 1; END_IF; storage_1 := limit_switch_1;
90
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Captulo 2
La instruccin OSR establece o borra el bit de salida, dependiendo del estado del bit de almacenamiento. Esta instruccin est disponible en texto estructurado y en bloque de funciones como OSRI; vea la pgina 96.
bit de almacenamiento
bit de salida
la instruccin se ejecuta
91
Captulo 2
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Ejecucin:
Condicin preescn Accin de lgica de escalera de rels El bit de almacenamiento se establece para evitar una activacin no vlida durante el primer escn. El bit de salida se borra. La condicin de salida de rengln se establece como falsa. condicin de entrada de rengln es falsa El bit de almacenamiento se borra. El bit de salida no se modifica. La condicin de salida de rengln se establece como falsa. condicin de entrada de rengln es verdadera
bit de almacenamiento = 0
el bit de almacenamiento se establece el bit de salida se establece la condicin de salida de rengln se establece como verdadera
bit de almacenamiento = 1 el bit de almacenamiento permanece establecido el bit de salida se borra la condicin de salida de rengln se establece como verdadera
fin
post-escn
El bit de almacenamiento se borra. El bit de salida no se modifica. La condicin de salida de rengln se establece como falsa.
92
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Captulo 2
93
Captulo 2
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
La instruccin OSF establece o borra el bit de salida dependiendo del estado del bit de almacenamiento. Esta instruccin est disponible en texto estructurado y en bloque de funciones como OSFI; vea la pgina 99.
bit de almacenamiento
bit de salida
la instruccin se ejecuta
94
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Captulo 2
Ejecucin:
Condicin preescn Accin de lgica de escalera de rels El bit de almacenamiento se borra para evitar una activacin no vlida durante el primer escn. El bit de salida se borra. La condicin de salida de rengln se establece como falsa. condicin de entrada de rengln es falsa
bit de almacenamiento = 0 el bit de almacenamiento permanece borrado el bit de salida se borra la condicin de salida de rengln se establece como falsa
bit de almacenamiento = 1
el bit de almacenamiento se borra el bit de salida se establece la condicin de salida de rengln se establece como falsa
fin
El bit de almacenamiento se establece. El bit de salida se borra. La condicin de salida de rengln se establece como verdadera.
post-escn
95
Captulo 2
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
La instruccin OSRI establece el bit de salida por un ciclo de ejecucin cuando el bit de entrada cambia de borrado a establecido. Esta instruccin est disponible en lgica de escalera de rels como OSR; vea la pgina 91.
Texto estructurado
Operando tag OSRI Tipo FBD_ONESHOT Formato estructura Descripcin estructura OSRI
Bloque de funciones
Operando tag OSRI Tipo FBD_ONESHOT Formato estructura Descripcin estructura OSRI
Estructura FBD_ONESHOT
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Bloque de funciones: Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. Si se establece, la instruccin se ejecuta. La opcin predeterminada es establecido. Texto estructurado: Ningn efecto. La instruccin se ejecuta. InputBit BOOL Bit de entrada. Esto es equivalente a la condicin del rengln para la instruccin OSR de lgica de escalera de rels. La opcin predeterminada es borrado. Parmetro de salida Tipo de datos EnableOut OutputBit BOOL BOOL Descripcin La instruccin produjo un resultado vlido. Bit de salida
96
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Captulo 2
InputBit
InputBitn-1
OutputBit
la instruccin se ejecuta
40048
primer escn de instruccin InputBit n-1 se establece. primera ejecucin de instruccin EnableIn se borra EnableIn se establece InputBit n-1 se establece. EnableOut se borra, la instruccin no efecta ninguna operacin y las salidas no se actualizan. En una transicin de borrado a establecido de InputBit, la instruccin establece InputBit n-1. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
97
Captulo 2
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Texto estructurado
OSRI_01.InputBit := limit_switch1;
OSRI(OSRI_01);
State := OSRI_01.OutputBit;
Bloque de funciones
98
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Captulo 2
La instruccin OSFI establece OutputBit por un ciclo de ejecucin cuando InputBit cambia de establecido a borrado. Esta instruccin est disponible en lgica de escalera de rels como OSF; vea la pgina 94.
Texto estructurado
Operando tag OSFI Tipo FBD_ONESHOT Formato estructura Descripcin estructura OSFI
Bloque de funciones
Operando tag OSFI Tipo FBD_ONESHOT Formato estructura Descripcin estructura OSFI
Estructura FBD_ONESHOT
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Bloque de funciones: Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. Si se establece, la instruccin se ejecuta. La opcin predeterminada es establecido. Texto estructurado: Ningn efecto. La instruccin se ejecuta. InputBit BOOL Bit de entrada. Esto es equivalente a la condicin del rengln para la instruccin OSF de lgica de escalera de rels La opcin predeterminada es borrado. Parmetro de salida Tipo de datos EnableOut OutputBit BOOL BOOL Descripcin La instruccin produjo un resultado vlido. Bit de salida
99
Captulo 2
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
InputBit n-1
OutputBit
la instruccin se ejecuta
primer escn de instruccin InputBit n-1 se borra. primera ejecucin de instruccin EnableIn se borra EnableIn se establece InputBit n-1 se borra. EnableOut se borra, la instruccin no efecta ninguna operacin y las salidas no se actualizan. En una transicin de borrado a establecido de InputBit, la instruccin borra InputBit n-1. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
100
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Captulo 2
Texto estructurado
OSFI_01.InputBit := limit_switch1;
OSFI(OSFI_01);
Output_state := OSFI_01.OutputBit;
Bloque de funciones
101
Captulo 2
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Notas:
102
Captulo
Introduccin
Si desea establecer el tiempo durante el cual un temporizador est habilitado establecer el tiempo durante el cual un temporizador est inhabilitado acumular tiempo establecer el tiempo durante el cual un temporizador est habilitado con restablecimiento incorporado en el bloque de funciones establecer el tiempo durante el cual un temporizador est inhabilitado con restablecimiento incorporado en el bloque de funciones acumular tiempo con restablecimiento incorporado en el bloque de funciones conteo progresivo conteo regresivo conteo progresivo y regresivo en el bloque de funciones restablecer un temporizador o un contador
103
Captulo 3
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
La instruccin TON es un temporizador no retentivo que acumula el tiempo cuando la instruccin est habilitada (la condicin de entrada del rengln es verdadera). Esta instruccin est disponible en texto estructurado y en bloque de funciones como TONR; vea la pgina 116.
Estructura TIMER
Mnemnico .EN .TT .DN .PRE .ACC Tipo de datos BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin indica que la instruccin TON est habilitada. El bit de temporizacin indica que se est ejecutando una operacin de temporizacin. El bit de efectuado se establece cuando .ACC .PRE. El valor de preajuste especifica el valor (en unidades de 1 ms) al que debe llegar el valor acumulado para que la instruccin establezca el bit .DN. El valor acumulado especifica el nmero de milisegundos que han transcurrido desde que se habilit la instruccin TON.
104
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Captulo 3
condicin de entrada del rengln bit de habilitacin de temporizador (.EN) bit de temporizador temporizando (.TT) bit de temporizador expirado (.DN) preajuste valor acumulado de temporizador (.ACC) 0
el temporizador no lleg al valor .PRE
16649 Retardo a la conexin
Un temporizador se ejecuta restando la hora de su ltimo escn de la hora actual: ACC = ACC + (current_time - last_time_scanned) Despus de que se actualiza el ACC, el temporizador establece last_time_scanned = current_time. Esto deja el temporizador listo para el siguiente escn.
Asegrese de escanear el temporizador por lo menos cada 69 minutos mientras se ejecuta. De no hacerse, el valor ACC no ser correcto. El valor last_time_scanned tiene un rango de hasta 69 minutos. El clculo del temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso de 69 minutos. Si esto sucede, el valor ACC no ser correcto. Durante la ejecucin de un temporizador, escanelo dentro de un lapso no mayor de 69 minutos si lo coloca en una: subrutina seccin de cdigo comprendida entre las instrucciones JMP y LBL diagrama de funcin secuencial (SFC) evento o tarea peridica rutina de estado de una fase
IMPORTANTE
105
Captulo 3
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Ejecucin:
Condicin preescn Accin de lgica de escalera de rels Los bits .EN, .TT y .DN se borran. El valor .ACC se borra. La condicin de salida de rengln se establece como falsa. condicin de entrada de rengln es falsa Los bits .EN, .TT y .DN se borran. El valor .ACC se borra. La condicin de salida de rengln se establece como falsa. condicin de entrada de rengln es verdadera
Bit .DN = 1
Bit .DN = 0
Bit .EN = 0
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
post-escn
106
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Captulo 3
107
Captulo 3
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
La instruccin TOF es un temporizador no retentivo que acumula el tiempo cuando la instruccin est habilitada (la condicin de entrada del rengln es falsa). Esta instruccin est disponible en texto estructurado y en bloque de funciones como TOFR; vea la pgina 120.
Estructura TIMER
Mnemnico .EN .TT .DN .PRE .ACC Tipo de datos BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin indica que la instruccin TOF est habilitada. El bit de temporizacin indica que se est ejecutando una operacin de temporizacin. El bit de efectuado se borra cuando .ACC .PRE. El valor de preajuste especifica el valor (en unidades de 1 ms) al que debe llegar el valor acumulado para que la instruccin borre el bit .DN. El valor acumulado especifica el nmero de milisegundos que han transcurrido desde que se habilit la instruccin TOF.
108
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Captulo 3
Un temporizador se ejecuta restando la hora de su ltimo escn de la hora actual: ACC = ACC + (current_time - last_time_scanned) Despus de que se actualiza el ACC, el temporizador establece last_time_scanned = current_time. Esto deja el temporizador listo para el siguiente escn.
Asegrese de escanear el temporizador por lo menos cada 69 minutos mientras se ejecuta. De no hacerse, el valor ACC no ser correcto. El valor last_time_scanned tiene un rango de hasta 69 minutos. El clculo del temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso de 69 minutos. Si esto sucede, el valor ACC no ser correcto. Durante la ejecucin de un temporizador, escanelo dentro de un lapso no mayor de 69 minutos si lo coloca en una: subrutina seccin de cdigo comprendida entre las instrucciones JMP y LBL diagrama de funcin secuencial (SFC) evento o tarea peridica rutina de estado de una fase
IMPORTANTE
109
Captulo 3
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Ejecucin:
Condicin preescn Accin de lgica de escalera de rels Los bits .EN, .TT y .DN se borran. El valor .ACC se establece para coincidir con el valor .PRE. La condicin de salida de rengln se establece como falsa. condicin de entrada de rengln es falsa
Bit .DN = 0
Bit .DN = 1
Bit .EN = 1
examine .ACC
no
Los bits .EN, .TT y .DN se establecen. El valor .ACC se borra. La condicin de salida de rengln se establece como verdadera.
post-escn
110
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Captulo 3
111
Captulo 3
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
La instruccin RTO es un temporizador retentivo que acumula tiempo cuando la instruccin est habilitada. Esta instruccin est disponible en texto estructurado y en bloque de funciones como RTOR; vea la pgina 124.
Estructura TIMER
Mnemnico .EN .TT .DN .PRE .ACC Tipo de datos BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin indica que la instruccin RTO est habilitada. El bit de temporizacin indica que se est ejecutando una operacin de temporizacin. El bit de efectuado indica que .ACC .PRE. El valor de preajuste especifica el valor (en unidades de 1 ms) al que debe llegar el valor acumulado para que la instruccin establezca el bit .DN. El valor acumulado especifica el nmero de milisegundos que han transcurrido desde que se habilit la instruccin RTO.
112
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Captulo 3
La base de tiempo siempre es 1 ms. Por ejemplo, en un temporizador de 2 segundos, introduzca 2000 para el valor .PRE.
condicin de entrada del rengln bit de habilitacin de temporizador (.EN) condicin de rengln que controla la instruccin RES bit de temporizador temporizando (.TT)
preajuste
16651
Un temporizador se ejecuta restando la hora de su ltimo escn de la hora actual: ACC = ACC + (current_time - last_time_scanned) Despus de que se actualiza el ACC, el temporizador establece last_time_scanned = current_time. Esto deja el temporizador listo para el siguiente escn.
Asegrese de escanear el temporizador por lo menos cada 69 minutos mientras se ejecuta. De no hacerse, el valor ACC no ser correcto. El valor last_time_scanned tiene un rango de hasta 69 minutos. El clculo del temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso de 69 minutos. Si esto sucede, el valor ACC no ser correcto. Durante la ejecucin de un temporizador, escanelo dentro de un lapso no mayor de 69 minutos si lo coloca en una: subrutina seccin de cdigo comprendida entre las instrucciones JMP y LBL diagrama de funcin secuencial (SFC) evento o tarea peridica rutina de estado de una fase
IMPORTANTE
113
Captulo 3
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Ejecucin:
Condicin preescn Accin de lgica de escalera de rels Los bits .EN, .TT y .DN se borran. El valor .ACC no se modifica. La condicin de salida de rengln se establece como falsa. condicin de entrada de rengln es falsa Los bits .EN y .TT se borran. El bit .DN no se modifica. El valor .ACC no se modifica. La condicin de salida de rengln se establece como falsa. condicin de entrada de rengln es verdadera
Bit .DN = 1
Bit .DN = 0
Bit .EN = 0
examine .ACC
no
post-escn
114
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Captulo 3
115
Captulo 3
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
La instruccin TONR es un temporizador no retentivo que acumula tiempo cuando TimerEnable est establecido. Esta instruccin est disponible en lgica de escalera de rels como dos instrucciones separadas: TON (vea pgina 104) y RES (vea pgina 141).
Operandos:
TONR(TONR_tag);
Texto estructurado
Variable tag TONR Tipo FBD_TIMER Formato estructura Descripcin estructura TONR
Bloque de funciones
Operando tag TONR Tipo FBD_TIMER Formato estructura Descripcin estructura TONR
Estructura FBD_TIMER
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Bloque de funciones: Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. Si se establece, la instruccin se ejecuta. La opcin predeterminada es establecido. Texto estructurado: Ningn efecto. La instruccin se ejecuta. TimerEnable BOOL Si se establece, permite que el temporizador se ejecute y acumule tiempo. La opcin predeterminada es borrado. PRE DINT Valor prefijado en el temporizador. ste es un valor expresado en unidades de 1 ms al que ACC debe llegar antes de que concluya la temporizacin. Si no es vlido, la instruccin establece el bit apropiado en Status y el temporizador no se ejecuta. Vlido = 0 hasta el entero positivo mximo Reset BOOL Peticin para restablecer el temporizador. Cuando se establece, el temporizador se restablece. La opcin predeterminada es borrado. Parmetro de salida Tipo de datos EnableOut ACC EN TT BOOL BOOL BOOL BOOL Descripcin La instruccin produjo un resultado vlido. Tiempo acumulado en milisegundos. Salida de temporizador habilitado. Indica que la instruccin de temporizador est habilitada. Salida de temporizador temporizando. Cuando se establece, se est ejecutando una operacin de temporizacin.
116
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Captulo 3
Descripcin Salida de temporizacin efectuada. Indica cuando el tiempo acumulado es mayor o igual que el valor de preajuste. Estado del bloque de funciones. La instruccin detect uno de los siguientes errores de ejecucin. ste no es un error menor ni mayor del controlador. Verifique los bits de estado restantes para determinar lo que ocurri. El valor de preajuste no es vlido.
PresetInv (Status.1)
BOOL
Establezca el parmetro de entrada Reset para restablecer la instruccin. Si TimerEnable se establece cuando Reset se establece, la instruccin TONR comienza la temporizacin nuevamente cuando Reset se borra. Un temporizador se ejecuta restando la hora de su ltimo escn de la hora actual: ACC = ACC + (current_time - last_time_scanned)
117
Captulo 3
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Despus de que se actualiza el ACC, el temporizador establece last_time_scanned = current_time. Esto deja el temporizador listo para el siguiente escn.
Asegrese de escanear el temporizador por lo menos cada 69 minutos mientras se ejecuta. De no hacerse, el valor ACC no ser correcto. El valor last_time_scanned tiene un rango de hasta 69 minutos. El clculo del temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso de 69 minutos. Si esto sucede, el valor ACC no ser correcto. Durante la ejecucin de un temporizador, escanelo dentro de un lapso no mayor de 69 minutos si lo coloca en una: subrutina seccin de cdigo comprendida entre las instrucciones JMP y LBL diagrama de funcin secuencial (SFC) evento o tarea peridica rutina de estado de una fase
IMPORTANTE
primer escn de instruccin Los bits EN, TT y DN se borran. El valor ACC se establece en 0. primera ejecucin de instruccin EnableIn se borra EnableIn se establece Los bits EN, TT y DN se borran. El valor ACC se establece en 0. EnableOut se borra, la instruccin no efecta ninguna operacin y las salidas no se actualizan. Cuando EnableIn cambia de borrado a establecido, la instruccin se inicializa segn lo descrito para el primer escn de la instruccin. La instruccin se ejecuta. EnableOut se establece. restablecimiento
Cuando el parmetro de entrada Reset se establece, Cuando el parmetro de entrada Reset se establece, la instruccin borra EN, TT y DN y establece la instruccin borra EN, TT y DN y establece ACC = cero. ACC = cero. Ninguna. Ninguna.
post-escn
118
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Captulo 3
Texto estructurado
TONR_01.Preset := 500; TONR_01.Reset : = reset; TONR_O1.TimerEnable := limit_switch1;
TONR(TONR_01);
timer_state := TONR_01.DN;
119
Captulo 3
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
La instruccin TOFR es un temporizador no retentivo que acumula tiempo cuando TimerEnable est borrado. Esta instruccin est disponible en lgica de escalera de rels como dos instrucciones separadas: TOF (vea pgina 108) y RES (vea pgina 141).
Operandos:
TOFR(TOFR_tag);
Texto estructurado
Variable TOFR tag Tipo FBD_TIMER Formato estructura Descripcin estructura TOFR
Estructura FBD_TIMER
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Bloque de funciones: Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. Si se establece, la instruccin se ejecuta. La opcin predeterminada es establecido. Texto estructurado: Ningn efecto. La instruccin se ejecuta. TimerEnable BOOL Si se borra, permite que el temporizador se ejecute y acumule tiempo. La opcin predeterminada es borrado. PRE DINT Valor prefijado en el temporizador. ste es un valor en unidades de 1 ms al que ACC debe llegar antes de que concluya la temporizacin. Si no es vlido, las instrucciones establecen el bit apropiado en Status y el temporizador no se ejecuta. Vlido = 0 hasta el entero positivo mximo Reset BOOL Peticin para restablecer el temporizador. Cuando se establece, el temporizador se restablece. La opcin predeterminada es borrado. Parmetro de salida Tipo de datos EnableOut ACC EN TT BOOL BOOL BOOL BOOL Descripcin La instruccin produjo un resultado vlido. Tiempo acumulado en milisegundos. Salida de temporizador habilitado. Indica que la instruccin de temporizador est habilitada. Salida de temporizador temporizando. Cuando se establece, se est ejecutando una operacin de temporizacin.
Publicacin 1756-RM003K-ES-P Julio 2008
120
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Captulo 3
Descripcin Salida de temporizador expirado. Indica cuando el tiempo acumulado es mayor o igual que el valor de preajuste. Estado del bloque de funciones. La instruccin detect uno de los siguientes errores de ejecucin. ste no es un error menor ni mayor del controlador. Verifique los bits de estado restantes para determinar lo que ocurri. El valor de preajuste no es vlido.
PresetInv (Status.1)
BOOL
16650
Establezca el parmetro de entrada Reset para restablecer la instruccin. Si TimerEnable se borra cuando Reset se establece, la instruccin TOFR no comienza a temporizar nuevamente hasta que se Reset se borra. Un temporizador se ejecuta restando la hora de su ltimo escn de la hora actual: ACC = ACC + (current_time - last_time_scanned)
121
Captulo 3
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Despus de que se actualiza el ACC, el temporizador establece last_time_scanned = current_time. Esto deja el temporizador listo para el siguiente escn.
Asegrese de escanear el temporizador por lo menos cada 69 minutos mientras se ejecuta. De no hacerse, el valor ACC no ser correcto. El valor last_time_scanned tiene un rango de hasta 69 minutos. El clculo del temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso de 69 minutos. Si esto sucede, el valor ACC no ser correcto. Durante la ejecucin de un temporizador, escanelo dentro de un lapso no mayor de 69 minutos si lo coloca en una: subrutina seccin de cdigo comprendida entre las instrucciones JMP y LBL diagrama de funcin secuencial (SFC) evento o tarea peridica rutina de estado de una fase
IMPORTANTE
primer escn de instruccin Los bits EN, TT y DN se borran. El valor ACC se establece en PRE. primera ejecucin de instruccin EnableIn se borra EnableIn se establece Los bits EN, TT y DN se borran. El valor ACC se establece en PRE. EnableOut se borra, la instruccin no efecta ninguna operacin y las salidas no se actualizan.
Cuando EnableIn cambia de borrado a establecido, la EnableIn siempre se establece. instruccin se inicializa segn lo descrito para el primer escn de la instruccin. La instruccin se ejecuta. La instruccin se ejecuta. EnableOut se establece.
restablecimiento
Cuando el parmetro de entrada Reset se establece, la instruccin borra EN, TT y DN, y establece ACC = PRE. Tenga presente que esto es diferente a usar una instruccin RES en una instruccin TOF. Ninguna.
Cuando el parmetro de entrada Reset se establece, la instruccin borra EN, TT y DN, y establece ACC = PRE. Tenga presente que esto es diferente a usar una instruccin RES en una instruccin TOF. Ninguna.
post-escn
122
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Captulo 3
Texto estructurado
TOFR_01.Preset := 500 TOFR_01.Reset := reset; TOFR_O1.TimerEnable := limit_switch1;
TOFR(TOFR_01);
timer_state2 := TOFR_01.DN;
Bloque de funciones
123
Captulo 3
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
La instruccin RTOR es un temporizador retentivo que acumula tiempo cuando TimerEnable est establecido. Esta instruccin est disponible en lgica de escalera de rels como dos instrucciones separadas: RTO (vea pgina 112) y RES (vea pgina 141).
Operandos:
RTOR(RTOR_tag);
Texto estructurado
Variable RTOR tag Tipo FBD_TIMER Formato estructura Descripcin estructura RTOR
Estructura FBD_TIMER
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Bloque de funciones: Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. Si se establece, la instruccin se ejecuta. La opcin predeterminada es establecido. Texto estructurado: Ningn efecto. La instruccin se ejecuta. TimerEnable BOOL Si se establece, permite que el temporizador se ejecute y acumule tiempo. La opcin predeterminada es borrado. PRE DINT Valor prefijado en el temporizador. ste es un valor expresado en unidades de 1 ms al que ACC debe llegar antes de que concluya la temporizacin. Si no es vlido, la instruccin establece el bit apropiado en Status y el temporizador no se ejecuta. Vlido = 0 hasta el entero positivo mximo Reset BOOL Peticin para restablecer el temporizador. Cuando se establece, el temporizador se restablece. Descripcin La instruccin produjo un resultado vlido. Tiempo acumulado en milisegundos. Este valor queda retenido aun cuando la entrada TimerEnable se borra. sta es la diferencia entre el comportamiento de este bloque y el del bloque TONR. Salida de temporizador habilitado. Indica que la instruccin de temporizador est habilitada. Salida de temporizador temporizando. Cuando se establece, se est ejecutando una operacin de temporizacin.
Publicacin 1756-RM003K-ES-P Julio 2008
EN TT
BOOL BOOL
124
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Captulo 3
Descripcin Salida de temporizador expirado. Indica cuando el tiempo acumulado es mayor o igual que el valor de preajuste. Estado del bloque de funciones. La instruccin detect uno de los siguientes errores de ejecucin. ste no es un error menor ni mayor del controlador. Verifique los bits de estado restantes para determinar lo que ocurri. El valor de preajuste no es vlido.
PresetInv (Status.1)
BOOL
preajuste
16651
Establezca el parmetro de entrada Reset para restablecer la instruccin. Si TimerEnable se establece cuando Reset se establece, la instruccin RTOR comienza la temporizacin nuevamente cuando Reset se borra. Un temporizador se ejecuta restando la hora de su ltimo escn de la hora actual: ACC = ACC + (current_time - last_time_scanned)
125
Captulo 3
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Despus de que se actualiza el ACC, el temporizador establece last_time_scanned = current_time. Esto deja el temporizador listo para el siguiente escn.
Asegrese de escanear el temporizador por lo menos cada 69 minutos mientras se ejecuta. De no hacerse, el valor ACC no ser correcto. El valor last_time_scanned tiene un rango de hasta 69 minutos. El clculo del temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso de 69 minutos. Si esto sucede, el valor ACC no ser correcto. Durante la ejecucin de un temporizador, escanelo dentro de un lapso no mayor de 69 minutos si lo coloca en una: subrutina seccin de cdigo comprendida entre las instrucciones JMP y LBL diagrama de funcin secuencial (SFC) evento o tarea peridica rutina de estado de una fase
IMPORTANTE
primer escn de instruccin Los bits EN, TT y DN se borran. El valor .ACC no se modifica. primera ejecucin de instruccin EnableIn se borra EnableIn se establece Los bits EN, TT y DN se borran. El valor .ACC no se modifica. EnableOut se borra, la instruccin no efecta ninguna operacin y las salidas no se actualizan. Bloque de funciones: Cuando EnableIn cambia de borrado a establecido, la instruccin se inicializa segn lo descrito para el primer escn de la instruccin. La instruccin se ejecuta. EnableOut se establece. restablecimiento
Cuando el parmetro de entrada Reset se establece, Cuando el parmetro de entrada Reset se establece, la instruccin borra EN, TT y DN y establece la instruccin borra EN, TT y DN y establece ACC = cero. ACC = cero. Ninguna. Ninguna.
post-escn
126
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Captulo 3
Texto estructurado
RTOR_01.Preset := 500 RTOR_01.Reset := reset; RTOR_O1.TimerEnable := limit_switch1;
RTOR(RTOR_01);
timer_state3 := RTOR_01.DN;
Bloque de funciones
127
Captulo 3
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
La instruccin CTU cuenta progresivamente. Esta instruccin est disponible en texto estructurado y en bloque de funciones como CTUD; vea la pgina 136.
Estructura COUNTER
Mnemnico .CU .DN .OV .UN .PRE .ACC Tipo de datos BOOL BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin de conteo progresivo indica que la instruccin CTU est habilitada. El bit de efectuado indica que .ACC .PRE. El bit de overflow indica que el contador excedi el lmite superior de 2,147,483,647, por lo que el contador regresa a -2,147,483,648 y comienza nuevamente el conteo progresivo. El bit de underflow indica que el contador excedi el lmite inferior de -2,147,483,648, por lo que el contador regresa a 2,147,483,647 y comienza nuevamente el conteo regresivo. El valor de preajuste especifica el valor al que debe llegar el valor acumulado para que la instruccin establezca el bit .DN. El valor acumulado especifica el nmero de transiciones que cont la instruccin.
128
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Captulo 3
preajuste
El valor acumulado contina incrementndose, incluso despus de que se establece el bit .DN. Para borrar el valor acumulado, use una instruccin RES que referencie la estructura de contador o escriba 0 en el valor acumulado.
129
Captulo 3
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Ejecucin:
Condicin preescn Accin de lgica de escalera de rels El bit .CU se establece para evitar incrementos no vlidos durante el primer escn del programa. La condicin de salida de rengln se establece como falsa. condicin de entrada de rengln es falsa El bit .EN se borra. La condicin de salida de rengln se establece como falsa. condicin de entrada de rengln es verdadera
bit .CU = 0
bit .CU = 1
el bit .UN = 1
el bit .OV = 1
examine .ACC
.ACC .PRE
fin
post-escn
130
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Captulo 3
131
Captulo 3
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
La instruccin CTD cuenta regresivamente. Esta instruccin est disponible en texto estructurado y en bloque de funciones como CTUD; vea la pgina 136.
Estructura COUNTER
Mnemnico .CD .DN .OV .UN .PRE .ACC Tipo de datos BOOL BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin de conteo regresivo indica que la instruccin CTD est habilitada. El bit de efectuado indica que .ACC .PRE. El bit de overflow indica que el contador excedi el lmite superior de 2,147,483,647, por lo que el contador regresa a -2,147,483,648 y comienza nuevamente el conteo progresivo. El bit de underflow indica que el contador excedi el lmite inferior de -2,147,483,648, por lo que el contador regresa a 2,147,483,647 y comienza nuevamente el conteo regresivo. El valor de preajuste especifica el valor al que debe llegar el valor acumulado para que la instruccin establezca el bit .DN. El valor acumulado especifica el nmero de transiciones que cont la instruccin.
132
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Captulo 3
Descripcin: La instruccin CTD normalmente se usa con una instruccin CTU que
referencia la misma estructura de contador. Cuando se habilita y el bit .CD se borra, la instruccin CTD decrementa el contador en uno. Cuando se habilita y el bit .CD se establece, o cuando se inhabilita, la instruccin CTD retiene su valor .ACC.
condicin de entrada del rengln bit de habilitacin de conteo regresivo (.CD) bit de conteo regresivo efectuado (.DN)
El valor acumulado contina decrementndose, aun despus de que se establece el bit .DN. Para borrar el valor acumulado, use una instruccin RES que referencie la estructura de contador o escriba 0 en el valor acumulado.
133
Captulo 3
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Ejecucin:
Condicin preescn Accin de lgica de escalera de rels El bit .CD se establece para evitar decrementos no vlidos durante el primer escn del programa. La condicin de salida de rengln se establece como falsa. condicin de entrada de rengln es falsa El bit .CD se borra. La condicin de salida de rengln se establece como falsa. condicin de entrada de rengln es verdadera
el bit .CD = 0
el bit .CD = 1
el bit .OV = 0
el bit .UN = 1
el bit .OV = 1
examine .ACC
.ACC .PRE
fin
post-escn
134
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Captulo 3
135
Captulo 3
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
La instruccin CTUD incrementa en uno el conteo cuando CUEnable cambia de borrado a establecido. La instruccin decrementa en uno el conteo cuando CDEnable cambia de borrado a establecido. Esta instruccin est disponible en lgica de escalera de rels como tres instrucciones separadas: CTU (ver pgina 128), CTD (ver pgina 132), y RES (ver pgina 141).
Operandos:
CTUD(CTUD_tag);
Texto estructurado
Variable CTUD tag Tipo FBD_COUNTER Formato estructura Descripcin estructura CTUD
Bloque de funciones
Operando CTUD tag Tipo FBD_COUNTER Formato estructura Descripcin estructura CTUD
Estructura FBD_COUNTER
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Bloque de funciones: Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. Si se establece, la instruccin se ejecuta. La opcin predeterminada es establecido. Texto estructurado: Ningn efecto. La instruccin se ejecuta. CUEnable BOOL Habilita el conteo progresivo. Cuando la entrada cambia de borrado a establecido, el acumulador se incrementa en uno. La opcin predeterminada es borrado.
136
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Captulo 3
Descripcin Habilita el conteo regresivo. Cuando la entrada cambia de borrado a establecido, el acumulador se decrementa en uno. La opcin predeterminada es borrado.
PRE
DINT
Valor de preajuste del contador. ste es el valor al cual debe llegar el valor acumulado para que se establezca DN. Vlido = cualquier nmero entero El valor predeterminado es 0.
Reset
BOOL
Peticin para restablecer el temporizador. Cuando se establece, el contador se restablece. La opcin predeterminada es borrado.
Parmetro de salida Tipo de datos EnableOut ACC CU CD DN OV BOOL DINT BOOL BOOL BOOL BOOL
Descripcin La instruccin produjo un resultado vlido. Valor acumulado. Conteo progresivo habilitado. Conteo regresivo habilitado. Conteo efectuado. Se establece cuando el valor acumulado es mayor o igual que el valor de preajuste. Overflow del contador. Indica que el contador excedi el lmite superior de 2,147,483,647. Seguidamente el contador regresa a 2,147,483,648 y comienza nuevamente el conteo regresivo.
UN
BOOL
Underflow del contador. Indica que el contador excedi el lmite inferior de 2,147,483,648. Seguidamente el contador regresa a 2,147,483,647 y comienza nuevamente el conteo regresivo.
137
Captulo 3
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Conteo progresivo
CUEnable
preajuste
Conteo regresivo
CDEnable bit de habilitacin de conteo regresivo (CD) bit de conteo regresivo efectuado (.DN)
Cuando se inhabilita, la instruccin CTUD retiene su valor acumulado. Establezca el parmetro de entrada Reset de la estructura FBD_COUNTER para restablecer la instruccin.
138
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Captulo 3
Ejecucin:
Condicin preescn Accin de bloque de funciones No se requiere inicializacin. Accin de texto estructurado No se requiere inicializacin. CUEnablen-1 y CDEnablen-1 se establecen. CUEnablen-1 y CDEnablen-1 se establecen. n. a.
primer escn de instruccin CUEnablen-1 y CDEnablen-1 se establecen. primera ejecucin de instruccin EnableIn se borra EnableIn se establece CUEnablen-1 y CDEnablen-1 se establecen. EnableOut se borra, la instruccin no efecta ninguna operacin y las salidas no se actualizan.
La instruccin establece CUEnablen-1 y CDEnablen-1. La instruccin establece CUEnablen-1 y CDEnablen-1. En una transicin de borrado a establecido de EnableIn: La instruccin se ejecuta. EnableOut se establece. EnableIn siempre se establece. La instruccin se ejecuta.
restablecimiento
Cuando se establece, la instruccin borra CUEnablen-1, CDEnablen-1, CU, CD, DN, OV y UN y establece ACC = cero. Ninguna.
Cuando se establece, la instruccin borra CUEnablen-1, CDEnablen-1, CU, CD, DN, OV y UN y establece ACC = cero. Ninguna.
post-escn
Texto estructurado
CTUD_01.Preset := 500; CTUD_01.Reset := Restart; CTUD_O1.CUEnable := limit_switch1;
CTUD(CTUD_01);
counter_state := CTUD_01.DN;
139
Captulo 3
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Bloque de funciones
140
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Captulo 3
Restablecer (RES)
Operandos:
ATENCIN
Puesto que la instruccin RES borra el valor .ACC, el bit .DN y el bit .TT, no use la instruccin RES para restablecer un temporizador TOF.
141
Captulo 3
Instrucciones de temporizador y contador (TON, TOF, RTO, TONR, TOFR, RTOR, CTU, CTD, CTUD, RES)
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La instruccin RES restablece la estructura especificada. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
142
Captulo
Instrucciones de entrada/salida
(MSG, GSV, SSV, IOT)
Introduccin
Las instrucciones de entrada/salida leen o escriben datos desde o hacia el controlador, o un bloque de datos desde o hacia otro mdulo en otra red.
Use esta instruccin MSG Disponible en estos lenguajes lgica de escalera de rels texto estructurado Vea la pgina 144
GSV
176
establecer informacin de estado del controlador enviar valores de salida a un mdulo de E/S o controlador consumidor en un punto especfico de su lgica activar una tarea de evento en otro controlador
SSV
176
IOT
201
143
Captulo 4
Mensaje (MSG)
Operandos:
La instruccin MSG lee o escribe asncronamente un bloque de datos en otro mdulo de una red.
Texto estructurado
MSG(MessageControl);
Los operandos son iguales a los de la instruccin MSG de lgica de escalera de rels.
Estructura MESSAGE
Si usted revisa los bits de estado ms de una vez El controlador cambia los bits DN, ER, EW y ST de manera asncrona con el escn de la lgica. Use una copia de los bits si los verifica en ms de un lugar en la lgica. De lo contrario, los bits pueden cambiar durante el escn y la lgica no funcionar segn lo esperado. Una manera de hacer una copia es usar la palabra FLAGS. Copie la palabra FLAGS a otro tag y verifique los bits en la copia.
ATENCIN
IMPORTANTE
No cambie esos bits por s mismos ni como parte de la palabra FLAGS. Si lo hace, el controlador puede sufrir un fallo no recuperable. El controlador borra el proyecto de su memoria cuando sufre un fallo no recuperable.
144
Captulo 4
Mnemnico .FLAGS
Descripcin El miembro .FLAGS proporciona acceso a los miembros de estado (bits) en una palabra de 16 bits. Este bit: 2 4 5 6 7 8 9 Es este miembro: .EW .ER .DN .ST .EN .TO .EN_CC
Importante: No cambie los bits EW, ER, DN ni ST del miembro FLAGS. Por ejemplo, no borre toda la palabra FLAGS. El controlador ignora el cambio y usa los valores de los bits almacenados internamente. .ERR .EXERR .REQ_LEN .DN_LEN .EW INT INT INT INT BOOL Si el bit .ER est establecido, la palabra de cdigo de error identifica los cdigos de error de la instruccin MSG. La palabra de cdigo de error extendida especifica informacin adicional de algunos cdigos de error. La longitud solicitada especifica cuntas palabras la instruccin de mensaje intentar transferir. La longitud efectuada identifica cuntas palabras se transfirieron realmente. Se establece el bit de habilitacin/espera cuando el controlador detecta que una solicitud de mensaje ha entrado en la cola. El controlador restablece el bit .EW cuando se establece el bit .ST. Importante: No cambie el bit EW. El controlador ignora el cambio y usa el valor del bit almacenado internamente. .ER BOOL Se establece el bit de error cuando el controlador detecta el fallo de una transferencia. El bit .ER se restablece la prxima vez que la condicin de entrada de rengln cambia de falsa a verdadera. Importante: No cambie el bit ER. .DN BOOL Se establece el bit de efectuado cuando se transfiere correctamente el ltimo paquete del mensaje. El bit .DN se restablece la prxima vez que la condicin de entrada de rengln cambia de falsa a verdadera. Importante: No cambie el bit DN. .ST BOOL Se establece el bit de arranque cuando el controlador comienza a ejecutar la instruccin MSG. El bit .ST se restablece cuando se establece el bit .DN o .ER. Importante: No cambie el bit ST. El controlador ignora el cambio y usa el valor del bit almacenado internamente. .EN BOOL Se establece el bit de habilitacin cuando la condicin de entrada de rengln se hace verdadera y permanece establecida hasta que se establece el bit .DN o .ER y la condicin de entrada de rengln es falsa. Si la condicin de entrada de rengln se hace falsa, pero los bits .DN y .ER se borran, el bit .EN permanece establecido. Importante: No cambie el bit EN. .TO .EN_CC BOOL BOOL Si se establece manualmente el bit .TO, el controlador interrumpe el procesamiento del mensaje y establece el bit .ER. El bit de habilitacin de cach determina cmo administrar la conexin MSG. Consulte Seleccione una opcin de cach en la pgina 4-173. Las conexiones para instrucciones MSG a travs del puerto serie no se guardan en la memoria cach aunque se establezca el bit .EN_CC. Usado por el software RSLogix 5000 para mostrar la ruta de error en el cuadro de dilogo Message Configuration
.ERR_SRC
SINT
145
Captulo 4
Descripcin Para cambiar el vnculo de destino de un DH+ o CIP con mensaje de ID de origen, establezca este miembro en el valor requerido. Para cambiar el nodo de destino de un DH+ o CIP con mensaje de ID de origen, establezca este miembro en el valor requerido. Para cambiar el vnculo de origen de un DH+ o CIP con mensaje de ID de origen, establezca este miembro en el valor requerido. Para cambiar el parmetro Class de un mensaje genrico de CIP, establezca este miembro en el valor requerido. Para cambiar el parmetro Attribute de un mensaje genrico de CIP, establezca este miembro en el valor requerido. Para cambiar el parmetro Instance de un mensaje genrico de CIP, establezca este miembro en el valor requerido. Si usted usa un asterisco [*] para eliminar el nmero de elemento de la matriz local, el LocalIndex proporciona el nmero de elemento. Para cambiar el nmero de elemento, establezca este miembro en el valor requerido. Si el mensaje: lee datos escribe datos La matriz local es el: Elemento de destino Elemento de origen
Para enviar el mensaje a travs de un canal diferente del mdulo 1756-DHRIO, establezca este miembro en el valor requerido. Use el carcter ASCII A o B. Para cambiar el nmero de rack en un mensaje de transferencia en bloques, establezca este miembro en el nmero de rack requerido (octal). Para cambiar el nmero de grupo en un mensaje de transferencia en bloques, establezca este miembro en el nmero de grupo requerido (octal). Para cambiar el nmero de ranura en un mensaje de transferencia en bloques, establezca este miembro en el nmero de ranura requerido. Si el mensaje se enva a travs de esta red: E/S remotas universales ControlNet Especifique el nmero de ranura en:
.Path
STRING
Para enviar el mensaje a un controlador diferente, establezca este miembro en la nueva ruta. Introduzca la ruta en valores decimales. Omita las comas [,] Por ejemplo, para una ruta de 1, 0, 2, 42, 1, 3, introduzca $01$00$02$2A$01$03. Para llegar a un dispositivo y crear automticamente una porcin o toda la nueva cadena, haga clic con el botn derecho del mouse en un tag de cadena y seleccione Go to Message Path Editor.
.RemoteIndex
DINT
Si usted usa un asterisco [*] para designar el nmero de elemento de la matriz remota, el RemoteIndex proporciona el nmero de elemento. Para cambiar el nmero de elemento, establezca este miembro en el valor requerido. Si el mensaje: lee datos escribe datos La matriz remota es el: Elemento de origen Elemento de destino
146
Captulo 4
Mnemnico .RemoteElement
Descripcin Para especificar un tag o direccin diferente en el controlador al cual se enva el mensaje, establezca este miembro en el valor requerido. Introduzca el tag o direccin en caracteres ASCII. Si el mensaje: lee datos escribe datos La matriz remota es el: Elemento de origen Elemento de destino
.UnconnnectedTimeout DINT
Tiempo de espera para un mensaje no conectado o para hacer una conexin. El valor predeterminado es 30 segundos. Si el mensaje es no conectado conectado Entonces El bit ER se activa si el controlador no recibe una respuesta dentro del tiempo UnconnectedTimeout. El bit ER se activa si el controlador no recibe una respuesta para hacer la conexin dentro del tiempo UnconnectedTimeout.
.ConnectionRate .TimeoutMultiplier
DINT SINT
Tiempo de espera para un mensaje conectado una vez que tiene una conexin. Este tiempo de espera es para la respuesta proveniente del otro dispositivo acerca del envo de datos. Este tiempo de espera se aplica solamente despus de que se hace la conexin. El tiempo de espera = ConnectionRate x TimeoutMultiplier. El valor predeterminado de ConnectionRate es 7.5 segundos. El valor predeterminado de TimeoutMultiplier es 0 (que es un factor de multiplicacin de 4). El tiempo de espera predeterminado para los mensajes conectados es 30 segundos (7.5 segundos x 4 = 30 segundos). Para cambiar el tiempo de espera, cambie ConnectionRate y deje TimeoutMultiplier en el valor predeterminado.
147
Captulo 4
El tamao de cada elemento depende de los tipos de datos que usted especifica y del tipo de comando de mensaje que usa.
conexin con .EN_CC = 1
148
Captulo 4
Donde 1
Descripcin condicin de entrada de rengln es verdadera .EN se establece .EW se establece la conexin est abierta*
Donde 5
mensaje efectuado o con error condicin de entrada de rengln todava es verdadera .DN o .ER se establece .ST se borra La conexin est cerrada (si .EN_CC = 0)
la condicin de entrada de rengln se hace falsa y .DN o .ER se establece .EN se borra
.DN o .ER se establece .ST se borra La conexin est cerrada (si .EN_CC = 0) .EN se borra (la condicin de entrada de rengln es falsa) 4 condicin de entrada de rengln es verdadera .DN o .ER se estableci previamente .EN se establece .EW se establece la conexin est abierta* .DN o .ER se borra
Ejecucin:
Condicin preescn Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. Accin de texto estructurado Ninguna.
149
Captulo 4
Condicin
bit .EN = 0
bit .EW = 0
bit .ST = 0
bit .DN = 0
bit .ER = 0
no
bit .DN = 0
bit .ER = 1 examine el bit .ER el bit .EW se establece el bit .ER se establece
bit .ER = 0
fin
n. a.
150
Captulo 4
ejecucin de la instruccin
bit .EN = 0
bit .EW = 1
bit .EW = 0
bit .EW = 0
bit .ST = 1
bit .ST = 0
bit .ST = 0 los bits .EW, .ST, .TO, .DN y .ER se borran y el bit .EN se establece
bit .DN = 0
no
los bits .EW, .ST, .TO, .DN y .ER se borran el bit .EN se establece ejecute la peticin de mensaje el bit .EW se establece el bit .ER se establece
post-escn
Ninguna.
151
Captulo 4
Cdigos de error
El software RSLogix 5000 no siempre muestra la descripcin completa.
Cdigo de error Descripcin (hex) 0001 0002 0003 0004 0005 Fallo de conexin (vea los cdigos de error extendidos) Recurso insuficiente Valor no vlido Error de sintaxis IOI (vea los cdigos de error extendidos) Destino desconocido, clase no compatible, instancia no definida o elemento de estructura no definido (vea los cdigos de error extendidos) Espacio de paquete insuficiente Conexin perdida Servicio no compatible Error en segmento de datos o valor de atributo no vlido Error de lista de atributos El estado ya existe Conflicto de modelo de objeto El objeto ya existe Atributo no se puede establecer Permiso denegado Conflicto de estado de dispositivo La respuesta no cabe Fragmento primitivo Datos de comando insuficientes Atributo no compatible Demasiados datos Peticin de puente demasiado grande Respuesta de puente demasiado grande Lista de atributos insuficiente Lista de atributos no vlida Error de servicio incorporado Se muestra en el software idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin
0006 0007 0008 0009 000A 000B 000C 000D 000E 000F 0010 0011 0012 0013 0014 0015 001A 001B 001C 001D 001E
idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin
152
Captulo 4
Cdigo de error Descripcin (hex) 001F 0022 0025 0026 0027 0028 0029 00D1 00FB 00FC 00FD 00FE 00FF Fallo relacionado con la conexin (vea los cdigos de error extendidos) Respuesta no vlida recibida Error de segmento clave Error IOI no vlido Atributo inesperado en lista Error DeviceNet ID de miembro no vlido Error DeviceNet miembro no se puede establecer El mdulo no se encuentra en estado de marcha Puerto de mensajes no compatible Tipo de mensaje no compatible Mensaje no inicializado Expiracin de mensaje Error general (vea los cdigos de error extendidos)
Se muestra en el software idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin idntico a la descripcin error desconocido error desconocido error desconocido error desconocido error desconocido error desconocido
153
Captulo 4
Conexin en uso Transporte no compatible Conflicto de propiedad No se encontr la conexin Tipo de conexin no vlido Tamao de conexin no vlido Mdulo no configurado EPR no compatible Mdulo incorrecto Tipo incorrecto de dispositivo Revisin incorrecta Formato de configuracin no vlido Aplicacin sin conexiones
Expiracin de conexin Expiracin de mensaje no conectado Error de parmetro de envo no conectado Mensaje demasiado grande No hay memoria de bfer Ancho de banda no disponible No hay protectores disponibles Coincidencia de firma Porte no disponible Direccin de vnculo no disponible Tipo de segmento no vlido Conexin no programada
Estos son los cdigos de error extendidos para el cdigo de error 001F.
Cdigo de error extendido (hex.): 0203 Descripcin Expiracin de conexin
Estos son los cdigos de error extendidos para el cdigo de error 0004 y 0005.
Cdigo de error extendido (hex.): 0000 0001 Descripcin estado extendido fuera de memoria estado extendido fuera de instancias
154
Captulo 4
Estos son los cdigos de error extendidos para el cdigo de error 00FF.
Cdigo de error extendido (hex.): 2001 2002 2018 201B 201C 2100 2101 2102 2103 2104 2105 2106 Descripcin Cdigo de error extendido (hex.): 2107 2108 2109 210A 210B 210E 210F 2110 2111 2112 2113 2114 Descripcin
IOI excesivo Valor de parmetro incorrecto Rechazo de semforo Tamao demasiado pequeo Tamao no vlido Fallo de privilegio Posicin no vlida de interruptor de llave Contrasea no vlida No se emiti contrasea Direccin fuera de rango Direccin y cuntas fuera de rango Datos en uso
Tipo no vlido o no compatible Controlador en modo de carga o descarga Intento para cambiar el nmero de dimensiones de registro Nombre de smbolo no vlido El smbolo no existe La bsqueda entr en fallo La tarea no se puede iniciar No se puede escribir No se puede leer Rutina compartida no editable Controlador en modo con fallo Modo de marcha inhibido
155
Captulo 4
156
Captulo 4
Cdigos de error PLC y SLC (hex) (cont.) R9.x y anteriores .ERR 00F0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 .EXERR 000A 000B 000C 000D 000E 000F 0010 0011 0012 0013 0014 R10.x y posteriores .ERR F00A F00B F00C F00D F00E F00F F010 F011 F012 F013 F014 .EXERR El procesador receptor no puede poner en paquetes la informacin solicitada Error de privilegio; acceso denegado La funcin solicitada no est disponible La peticin es redundante El comando no puede ejecutarse Overflow; overflow de histograma Sin acceso El tipo de datos solicitado no coincide con los datos disponibles Parmetros de comando incorrectos Existe referencia de direccin a rea eliminada Fallo de ejecucin de comando por razn desconocida Overflow de histograma PLC-3 00F0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 00F0 0015 0016 0017 0018 0019 001A 001B 001C 001D F015 F016 F017 F018 F019 F01A F01B F01C F01D Error de conversin de datos El escner no est disponible para comunicarse con un adaptador de rack 1771 El adaptador no est disponible para comunicarse con el mdulo La respuesta del modulo 1771 no fue vlida Etiqueta duplicada Propietario de archivo activo el archivo est en uso Propietario de programa activo alguien est descargando o editando en lnea El archivo de disco tiene proteccin contra escritura o no es accesible (fuera de lnea solamente) El archivo de disco lo est usando otra aplicacin Actualizacin no realizada (fuera de lnea solamente) Descripcin
157
Captulo 4
El escner no estaba configurado para comunicarse con el rack que contendra este mdulo error desconocido de transferencia en bloques La ranura lgica especificada no est disponible para el tamao de rack dado Actualmente est en curso una peticin de transferencia en bloques y se requiere una respuesta antes de que pueda comenzar otra peticin. El tamao de la peticin de transferencia en bloques no es coherente con las peticiones de tamao de transferencia en bloques vlidas El tipo de la peticin de transferencia en bloques no es coherente con la BT_READ o BT_WRITE esperada El escner no pudo encontrar una ranura disponible en la tabla de transferencia en bloques para aceptar la peticin de transferencia en bloques El escner recibi una peticin para restablecer los canales de E/S remotas mientras que haba transferencias en bloques pendientes Las colas para las transferencias en bloques remotas estn llenas Los canales de comunicacin estn configurados para el rack o ranura solicitada Ningn canal de comunicacin est configurado para E/S remotas El tiempo de espera de la transferencia en bloques, establecido en la instruccin, expir antes de concluir Error en el protocolo de transferencia en bloques transferencia en bloques no solicitada Los datos de la transferencia en bloques se perdieron debido a un canal de comunicacin defectuoso El mdulo de transferencia en bloques solicit una longitud diferente a la instruccin de transferencia en bloques asociada La suma de comprobacin de la transferencia en bloque de lectura era incorrecta error desconocido error desconocido error desconocido error desconocido error desconocido error desconocido error desconocido error desconocido error desconocido error desconocido error desconocido error desconocido error desconocido error desconocido
Hubo una transferencia no vlida de datos de transferencia en bloques de escritura entre el error desconocido adaptador y el mdulo de transferencia en bloques El tamao de la transferencia en bloques ms el tamao del ndice en la tabla de datos de transferencias en bloques era mayor que el tamao del archivo de tablas de datos de transferencia en bloques error desconocido
158
Captulo 4
Despus de introducir la instruccin MSG y de especificar la estructura MESSAGE, use el cuadro de dilogo Message Configuration para especificar los detalles del mensaje.
Los detalles que usted configura dependen del tipo de mensaje que selecciona.
42976
Si el dispositivo receptor es un Controlador Logix5000 Mdulo de E/S que usted configura usando el software RSLogix 5000 Controlador PLC-5
Seleccione uno de estos tipos de mensaje Lectura de tabla de datos CIP Escritura de tabla de datos CIP Reconfiguracin de mdulo CIP genrico TypedRead PLC5 TypedWrite PLC5 Lectura de rango de palabras PLC5 Escritura de rango de palabras PLC5
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
167
159
Captulo 4
Elemento de destino
160
Captulo 4
Texto estructurado
IF reconfigure[5] AND NOT reconfigure[6]THEN Local:4:C.Ch0Config.HAlarmLimit := 60; IF NOT change_Halarm.EN THEN MSG(change_Halarm); END_IF; END_IF; reconfigure[6] := reconfigure[5];
161
Captulo 4
tag_name[4] Destino Restablecer los fusibles electrnicos en Tipo de mensaje un mdulo de salida digital Tipo de servicio Origen dejar en blanco CIP genrico Restablecer fusible electrnico tag_name de tipo DINT
Este tag representa una mscara de bit de los puntos en los cuales se restablecen los fusibles Destino Restablecer diagnsticos enclavados en Tipo de mensaje un mdulo de entrada digital Tipo de servicio Origen dejar en blanco CIP genrico Restablecer diagnsticos enclavados (I) tag_name de tipo DINT Este tag representa una mscara de bit de los puntos en los cuales se restablecen los diagnsticos. Restablecer diagnsticos enclavados en Tipo de mensaje un mdulo de salida digital Tipo de servicio Origen CIP genrico Restablecer diagnsticos enclavados (O) tag_name de tipo DINT Este tag representa una mscara de bit de los puntos en los cuales se restablecen los diagnsticos.
162
Captulo 4
Escriba o seleccione CIP genrico Seleccione la alarma que desea desenclavar: Desenclavar todas las alarmas (I) Desenclavar alarma alta analgica (I) Desenclavar alarma alta alta analgica (I) Desenclavar alarma baja analgica (I) Desenclavar alarma baja baja analgica (I) Desenclavar alarma de rgimen (I)
Instancia Desenclavar la alarma de un mdulo de salida analgico Tipo de mensaje Tipo de servicio
Canal de la alarma que desea desenclavar CIP genrico Seleccione la alarma que desea desenclavar: Desenclavar todas las alarmas (O) Desenclavar alarma alta (O) Desenclavar alarma baja (O) Desenclavar alarma de rampa (O)
Instancia
TypedWrite PLC5
163
Captulo 4
La siguiente tabla muestra los tipos de datos a usar con mensajes TypedRead de PLC5 y mensajes TypedWrite de PLC5.
Tipos de datos para mensajes TypedRead y TypedWrite de PLC5 Para este tipo de datos PLC-5 B F N Use este tipo de datos Logix5000 INT REAL INT DINT (solamente escriba valores DINT a un controlador PLC-5 si el valor es 32,768 y 32,767.) S ST INT STRING
Los comandos TypedRead y TypedWrite tambin funcionan con los procesadores SLC 5/03 (OS303 y posteriores), procesadores SLC 5/04 (OS402 y posteriores) y procesadores SLC 5/05. Los diagramas siguientes muestran la diferencia entre los comandos de tipo (TypedWrite/TypedRead) y de rango de palabras. El ejemplo usa comandos de lectura de un procesador PLC-5 a un controlador Logix5000.
Comando TypedRead palabras de 16 bits en procesador PLC-5 1 2 3 4 palabras de 32 bits en controlador Logix5000 1 2 3 4 Comando de lectura de rango de palabras palabras de 16 bits en procesador PLC-5 1 2 3 4 palabras de 32 bits en controlador Logix5000 2 4 1 3
Los comandos de rango de palabras llenan el tag de destino contiguamente. La estructura y valor de los datos se cambian segn el tipo de datos de destino.
164
Captulo 4
Para configurar un mensaje de transferencia en bloques, siga estas pautas: Los tags de origen (para BTW) y destino (para BTR) deben ser suficientemente grandes para aceptar los datos solicitados, excepto por las estructuras MESSAGE, AXIS y MODULE. Especifique la cantidad de nmeros enteros de 16 bits (INT) que desea enviar o recibir. Puede especificar de 0 a 64 nmeros enteros.
Si usted desea que el mdulo de transferencia en bloques determine cuntos enteros de 16 bits enviar (BTR). controlador enve 64 enteros (BTW). Especifique 0 para el nmero de elementos
165
Captulo 4
166
Captulo 4
Los diagramas siguientes muestran la diferencia entre los comandos TypedWrite/TypedRead y de rango de palabras. El ejemplo usa los comandos de lectura de un procesador PLC-3 a un controlador Logix5000.
Comando TypedRead palabras de 16 bits en el procesador PLC-3 1 2 3 4 palabras de 32 bits en el controlador Logix5000 1 2 3 4 Comando de lectura de rango de palabras palabras de 16 bits en el procesador PLC-3 1 2 3 4 palabras de 32 bits en el controlador Logix5000 2 4 1 3
Los comandos de rango de palabras llenan el tag de destino contiguamente. La estructura y el valor de los datos se cambian segn el tipo de datos de destino.
La transferencia de mensaje usa palabras de 16 bits; por lo tanto, asegrese de que el tag Logix5000 almacena apropiadamente los datos transferidos (generalmente como una matriz INT).
167
Captulo 4
Los ejemplos siguientes muestran tags de origen y destino, as como elementos para diferentes combinaciones de controladores. Para las instrucciones MSG que provienen de un controlador Logix5000 y escriben en otro procesador:
Puede usar un tag de alias para el tag de origen (en el controlador Logix5000 de origen). No puede usar un tag de alias para el tag de destino. El destino debe ser un tag de base. Logix5000 PLC-5 Logix5000 SLC tag de origen elemento de destino array_1[0] N7:10
Puede usar un tag de alias para el tag de origen (en el controlador Logix5000 de origen). Logix5000 PLC-2 tag de origen elemento de destino array_1[0] 010
Para las instrucciones MSG que provienen de un controlador Logix5000 y leen de otro controlador:
Ruta de mensaje Logix5000 Logix5000 Ejemplo de origen y destino tag de origen tag de destino array_1[0] array_2[0]
No puede usar un tag de alias para el tag de origen. El origen debe ser un tag de base. Puede usar un tag de alias para el tag de destino (en el controlador Logix5000 de origen). Logix5000 PLC-5 Logix5000 SLC elemento de origen tag de destino N7:10 array_1[0]
Puede usar un tag de alias para el tag de destino (en el controlador Logix5000 de origen). Logix5000 PLC-2 elemento de origen tag de destino 010 array_1[0]
168
Captulo 4
Para configurar una instruccin MSG, usted especifica estos detalles en la ficha Communication.
Especifique una ruta Especifique un mtodo de comunicacin o una direccin de mdulo Seleccione una opcin de cach
169
Captulo 4
Ejemplo La configuracin de E/S del controlador tiene el mdulo que obtiene el mensaje. Haga clic en el botn Browse y seleccione el mdulo.
La configuracin de E/S del controlador tiene slo el mdulo de comunicacin local. Vaya al mdulo de comunicacin local. Vaya al puerto EtherNet/IP. a la direccin de 10.10.10.10. Vaya a travs del backplane al mdulo en la ranura 0.
La configuracin de E/S del controlador no tiene ninguno de los mdulos que necesita para el mensaje. Vaya a travs del backplane al mdulo de comunicacin local en la ranura 1 Vaya al puerto ControlNet. al nodo 4 Vaya a travs del backplane al mdulo en la ranura 0.
Para escribir una ruta, use este formato: port, next_address, port, next_address,
170
Captulo 4
Donde
Es Para esta red Tipo 1 2 backplane DF1 (canal 0 serie, serie) ControlNet EtherNet/IP DH+ canal A DH+ canal B DF1 canal 1 (canal 1 serie) 3
port
next_address
nmero de ranura del mdulo direccin de estacin (0-254) nmero de nodo (1-99 decimal) 8# seguido del nmero de nodo (1-77 octal) Por ejemplo, para especificar la direccin de nodo octal de 37, escriba 8#37.
EtherNet/IP
Usted puede especificar un mdulo en una red EtherNet/IP usando cualquiera de estos formatos: Direccin IP (por ejemplo, 10.10.10.10) Direccin IP:Puerto (por ejemplo, 10.10.10.10:24) Nombre DNS (por ejemplo, tanques) Nombre DNS:Puerto (por ejemplo, tanques:24)
171
Captulo 4
Si slo hay un vnculo DH+ y usted no us el software RSLinx para configurar el mdulo DH/RIO para vnculos remotos, especifique 0 tanto para el vnculo de origen como para el vnculo de destino.
172
Captulo 4
Si el dispositivo de destino es un
Seleccione
Y especifique Vnculo de origen: Vnculo de destino: Nodo de destino: ID remoto del tema en el software RSLinx ID de vnculo virtual configurado en RSLinx (0-65535) ID de destino (0-77 octal) proporcionado por la aplicacin a RSLinx. Para el tema DDE en RSLinx, use 77.
CIP con ID de origen Aplicacin en una estacin de trabajo que recibe un mensaje no solicitado encaminado por una red Ethernet/IP o ControlNet a travs de RSLinx. (Esto permite que la aplicacin reciba datos de un controlador)
El nmero de ranura del controlador ControlLogix se usa como nodo de origen. Mdulo de transferencia en bloques mediante una red de E/S remotas universales RIO Canal: Rack Grupo Ranura Mdulo de transferencia en bloques mediante una red ControlNet ControlNet Ranura Canal A o B del mdulo 1756-DHRIO que est conectado a la red RIO Nmero de rack (octal) del mdulo Nmero de grupo del mdulo Nmero de ranura donde est el mdulo Nmero de ranura donde est el mdulo
su opcin (1)
Puede conectar mensajes genricos CIP. Pero para la mayora de las aplicaciones, recomendamos que deje no conectados los mensajes genricos CIP.
Si una instruccin MSG usa una conexin, usted tiene la opcin de dejar la conexin abierta (en cach) o cerrar la conexin cuando haya acabado de transmitir el mensaje.
Si usted Almacena en cach la conexin Entonces La conexin se mantiene abierta una vez finalizada la instruccin MSG. As se optimiza el tiempo de ejecucin. El abrir una conexin cada vez que se ejecuta el mensaje aumenta el tiempo de ejecucin. La conexin se cierra una vez finalizada la instruccin MSG. As se libera la conexin para otros usos.
173
Captulo 4
El controlador tiene los siguientes lmites en el nmero de conexiones que usted puede poner en cach:
Si tiene esta revisin de software y firmware 11.x o anterior Puede almacenar en cach mensajes de transferencia en bloques para hasta 16 conexiones otros tipos de mensajes para hasta 16 conexiones 12.x o posterior hasta 32 conexiones
Si varios mensajes van al mismo dispositivo, es posible que los mensajes puedan compartir una conexin.
Si las instrucciones MSG son para diferentes dispositivos el mismo dispositivo estn habilitadas simultneamente NO estn habilitadas simultneamente Y Entonces Cada instruccin MSG usa 1 conexin. Cada instruccin MSG usa 1 conexin. Las instrucciones MSG comparten la misma conexin. (es decir, juntas cuentan como 1 conexin).
EJEMPLO
Comparta una conexin Si el controlador alterna entre enviar un mensaje de lectura de transferencia en bloque y un mensaje de escritura de transferencia en bloques al mismo mdulo, ambos mensajes se cuentan como 1 conexin. Almacenar en cach ambos mensajes se cuenta como 1 en la lista de cach.
174
Captulo 4
Pautas
Cuando planifique y programe sus instrucciones MSG, siga estas pautas:
Pauta 1. Para cada instruccin MSG, cree un tag de control. Detalles Cada instruccin MSG requiere su propio tag de control. Tipo de datos = MESSAGE Alcance = controlador El tag no puede ser parte de una matriz ni de un tipo de datos definido por el usuario. 2. Mantenga los datos de origen y/o destino al Una instruccin MSG puede acceder slo a tags que estn en la carpeta de tags del alcance del controlador. controlador (alcance del controlador). Si su mensaje es a un dispositivo que usa enteros de 16 bits, tal como un controlador 3. Si su MSG es a un dispositivo que usa enteros de 16 bits, use un bfer de INT en el PLC-5 o SLC 500, y ste transfiere enteros (no valores REAL), use un bfer de INT en el mensaje y DINT en todo el proyecto. MSG y DINT en todo el proyecto. As se aumenta la eficiencia de su proyecto porque los controladores Logix se ejecutan ms eficientemente y usan menos memoria cuando trabajan con enteros de 32 bits (DINT). Para convertir entre INT y DINT, consulte Logix5000 Controllers Common Procedures, publicacin 1756-PM001. 4. Almacene en cach los MSG conectados que se ejecutan con mayor frecuencia. Almacene en cach la conexin para dichas instrucciones MSG que se ejecutan con ms frecuencia, hasta el nmero mximo permitido por la revisin del controlador. Esto optimiza el tiempo de ejecucin porque el controlador no tiene que abrir una conexin cada vez que se ejecuta el mensaje. 5. Si desea habilitar ms de 16 MSG simultneamente, use el mismo tipo de estrategia de administracin. Si usted habilita ms de 16 MSG a la vez, algunas instrucciones MSG pueden experimentar retardos al ingresar en la cola. Para garantizar la ejecucin de cada mensaje, use una de estas opciones. Habilite cada mensaje en secuencia. Habilite los mensajes en grupos. Programe un mensaje para comunicarse con varios dispositivos. Para obtener ms informacin, consulte Logix5000 Controllers Common Procedures, publicacin 1756-PM001. Programe la lgica para coordinar la ejecucin de mensajes. Para obtener ms informacin, consulte Logix5000 Controllers Common Procedures, publicacin 1756-PM001. 6. Mantenga el nmero de MSG no conectados y no almacenados en cach en un valor menor que el nmero de bferes no conectados. El controlador puede tener 10 - 40 bferes no conectados. El nmero predeterminado es 10. Si todos los bferes no conectados se usan cuando una instruccin deja la cola de mensajes, se produce un error en la instruccin y no transfiere los datos. Usted puede aumentar el nmero de bferes no conectados (40 mx.), pero contine siguiendo las pautas 5. Para aumentar el nmero de bferes no conectados, consulte Logix5000 Controllers Common Procedures, publicacin 1756-PM001.
175
Captulo 4
Obtener valor del sistema (GSV) y establecer valor del sistema (SSV)
Operandos:
Las instrucciones GSV/SSV reciben y envan datos de sistema del controlador que se almacenan en los objetos.
Tipo
Descripcin nombre del objeto nombre de objeto especfico cuando el objeto requiere un nombre atributo del objeto el tipo de datos depende del atributo que usted selecciona
Destination (GSV)
tag
Source (SSV)
tag
Texto estructurado
GSV(ClassName,InstanceName,AttributeName,Dest); SSV(ClassName,InstanceName,AttributeName,Source);
Los operandos son iguales que para las instrucciones GSV y SSV de lgica de escalera de rels.
176
Captulo 4
ATENCIN
Member_A es demasiado pequeo para el atributo. Por lo tanto, la instruccin GSV escribe el ltimo valor a Member_B. Ejemplo 2
My_Tag es demasiado pequeo para el atributo. Por lo tanto, la instruccin GSV se detiene y registra un fallo menor. La seccin de objetos GSV/SSV muestra los atributos de cada objeto y sus tipos de datos asociados. Por ejemplo, el atributo MajorFaultRecord del objeto Program necesita un tipo de datos DINT[11].
177
Captulo 4
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels Accin de texto estructurado La condicin de salida de rengln se establece como Ninguna falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. EnableIn se establece n. a. EnableIn siempre se establece. La instruccin se ejecuta. la instruccin se ejecuta post-escn Obtenga o establezca el valor especificado. Obtenga o establezca el valor especificado. La condicin de salida de rengln se establece como Ninguna. falsa. n. a. n. a.
178
Captulo 4
Objetos GSV/SSV
Cuando introduce una instruccin GSV/SSV, usted especifica el objeto y su atributo al cual desea tener acceso. En ciertos casos, existir ms de una instancia del mismo tipo de objeto, por lo que tambin puede ser necesario especificar el nombre del objeto. Por ejemplo, puede haber varias tareas en su aplicacin. Cada tarea tiene su propio objeto TASK al cual usted accede mediante el nombre de la tarea. Para la instruccin GSV, slo el tamao especificado de datos se copia al destino. Por ejemplo, si el atributo est especificado como un SINT y el destino es un DINT, slo los 8 bits inferiores del destino DINT se actualizan, dejando los 24 bits sin ningn cambio.
ATENCIN
CONTROLLER CONTROLLERDEVICE CST DF1 FAULTLOG MESSAGE MODULE MOTIONGROUP PROGRAM ROUTINE SERIALPORT TASK WALLCLOCKTIME
179
Captulo 4
180
Captulo 4
Identifica la revisin del producto actual. La visualizacin debe ser hexadecimal. El byte inferior contiene la revisin mayor; el byte superior contiene la revisin menor.
SerialNumber
DINT
GSV
Nmero de serie del dispositivo. El nmero de serie se asigna cuando se construye el dispositivo.
181
Captulo 4
Atributo Status
Instruccin GSV
Descripcin Bits que identifican el estado: Los bits 3-0 estn reservados Bits de estado de dispositivo Bits 7-4: 0000 0001 0010 0011 0100 0101 0110 0111 Significado: reservado actualizacin de la memoria flash en curso reservado reservado la memoria flash est defectuosa con fallo marcha programa
Bits de estado de fallo Bits 11-8: 0001 0010 0100 1000 Significado: fallo menor recuperable fallo menor no recuperable fallo mayor recuperable fallo mayor no recuperable
Bits de estado especficos para Logix5000 Bits 13-12: 01 10 11 Bits 15-14 01 10 Type INT GSV Significado: interruptor de llave en marcha interruptor de llave en programa interruptor de llave en modo remoto Significado el controlador est cambiando de modos modo de depuracin si el controlador est en el modo de marcha
Vendor
INT
GSV
182
Captulo 4
2 3
4 5 6
7 8-9
Valor actual del temporizador. DINT[0] contiene los 32 bits inferiores; DINT[1] contiene los 32 bits superiores. La fuente del temporizador se ajusta para coincidir con el valor suministrado en los servicios de actualizacin y de la sincronizacin de red de comunicacin local. El ajuste representa un aumento en rampa hasta el valor solicitado o un establecimiento inmediato en el valor solicitado, segn se reporte en el atributo CurrentStatus.
183
Captulo 4
DF1 punto a punto firma (0x0043) bits de mdem paquetes enviados paquetes recibidos paquetes no entregados no se usa NAK recibidos ENQ enviados paquetes deficientes con NAK sin memoria enviado NAK recibidos paquetes duplicados recibidos caracteres deficientes conteo de recuperaciones DCD conteo de mdem perdido no se usa no se usa no se usa no se usa ENQ enviados SINT GSV
Habilita la deteccin de mensajes duplicados. Valor: 0 no cero Significado: deteccin de mensajes duplicados inhabilitada deteccin de mensajes duplicados inhabilitada
EmbeddedResponseEnable
SINT
GSV
Habilita la funcionalidad de respuesta incorporada (punto a punto solamente). Valor: 0 1 Significado: se inicia solamente despus de que se recibe uno (opcin predeterminada) habilitado incondicionalmente
ENQTransmitLimit
SINT
GSV
El nmero de consultas (ENQ) que se envan despus del tiempo de espera de ACK (punto a punto solamente). Los valores vlidos son 0-127. El ajuste predeterminado es 3.
EOTSuppression
SINT
GSV
Habilita la supresin de transmisiones de EOT como respuesta a los paquetes de encuesta (esclavo solamente). Valor: 0 no cero Significado: supresin de EOT inhabilitada supresin de EOT habilitada
184
Captulo 4
Atributo ErrorDetection
Instruccin GSV
Descripcin Especifica el esquema de deteccin de errores. Valor: 0 1 Significado: BCC (predeterminado) CRC
MasterMessageTransmit
SINT
GSV
Valor actual de la transmisin de mensaje del maestro (maestro solamente). Valor: 0 1 Significado: entre encuestas de estacin en secuencia de encuesta (en lugar del nmero de estacin del maestro)
El valor predeterminado es 0. NAKReceiveLimit SINT GSV El nmero de NAK recibidos como respuesta a un mensaje antes de detener la transmisin (comunicacin punto a punto solamente). Los valores vlidos son 0-127. El valor predeterminado es 3. NormalPollGroupSize INT GSV El nmero de estaciones que se encuestan en la matriz de nodos de encuesta normal despus de encuestarse todas las estaciones en la matriz de nodos de encuesta prioritaria (maestro solamente). Los valores vlidos son 0-255. El valor predeterminado es 0. PollingMode SINT GSV Modo de encuesta actual (maestro solamente). Valor: 0 1 2 3 Significado: basado en mensajes; no permite a los esclavos iniciar mensajes basado en mensajes, pero permite a los esclavos iniciar mensajes (predeterminado) estndar, transferencia de un solo mensaje por escn de nodo estndar, transferencia de varios mensajes por escn de nodo
La configuracin predeterminada es 1. ReplyMessageWait DINT GSV El tiempo (actuando como maestro) que se debe esperar despus de recibirse un ACK antes de encuestarse el esclavo en busca de una respuesta (maestro solamente). Valores vlidos de 0-65,535. Retardo en conteos de perodos de 20 ms. La configuracin predeterminada es 5 perodos (100 ms). StationAddress INT GSV Direccin de estacin actual del puerto serie. Valores vlidos de 0-254. El valor predeterminado es 0. SlavePollTimeout DINT GSV La cantidad de tiempo en ms que espera el esclavo hasta que el maestro realiza una encuesta antes de que el esclavo indique que no puede transmitir debido a la inactividad del maestro (esclavo solamente). Valores vlidos de 0-32,767. Retardo en conteos de perodos de 20 ms. La configuracin predeterminada es 3000 perodos (1 minuto).
185
Captulo 4
Atributo TransmitRetries
Instruccin GSV
Descripcin El nmero de veces que se puede volver a enviar un mensaje sin obtenerse una confirmacin (maestro y esclavo solamente). Valores vlidos de 0-127. El valor predeterminado es 3.
PendingACKTimeout PendingDuplicateDetection PendingEmbeddedResponse Enable PendingENQTransmitLimit PendingEOTSuppression PendingErrorDetection PendingNormalPollGroupSize PendingMasterMessage Transmit PendingNAKReceiveLimit PendingPollingMode PendingReplyMessageWait PendingStationAddress PendingSlavePollTimeout PendingTransmitRetries
DINT SINT SINT SINT SINT SINT INT SINT SINT SINT DINT INT DINT SINT
SSV SSV SSV SSV SSV SSV SSV SSV SSV SSV SSV SSV SSV SSV
Valor pendiente para el atributo ACKTimeout. Valor pendiente para el atributo DuplicateDetection. Valor pendiente para el atributo EmbeddedResponse. Valor pendiente para el atributo ENQTransmitLimit. Valor pendiente para el atributo EOTSuppression. Valor pendiente para el atributo ErrorDetection. Valor pendiente para el atributo NormalPollGroupSize. Valor pendiente para el atributo MasterMessageTransmit. Valor pendiente para el atributo NAKReceiveLimit. Valor pendiente para el atributo PollingMode. Valor pendiente para el atributo ReplyMessageWait. Valor pendiente para el atributo StationAddress. Valor pendiente para el atributo SlavePollTimeout. Valor pendiente para el atributo TransmitRetries.
Para aplicar los valores en cualquiera de los atributos DF1 pendientes: 1. Use una instruccin SSV para establecer el valor del atributo pendiente. Usted puede establecer tantos atributos pendientes como desee, usando una instruccin SSV por cada atributo pendiente. 2. Use una instruccin MSG para aplicar el valor. La instruccin MSG aplica cada atributo pendiente establecido. Configure la instruccin MSG como:
Ficha MSG Configuration Configuracin Campo Message Type Service Code Tipo de objeto Object ID Object Attribute Source Number of Elements Destination Comunicacin Path Valor CIP genrico 0d hex a2 1 dejar en blanco dejar en blanco 0 dejar en blanco ruta de comunicacin consigo mismo (1,s donde s = nmero de ranura del controlador)
186
Captulo 4
MinorFaultBits
DINT
GSV SSV
Los bits individuales indican la razn del fallo menor actual. Bit: 4 6 9 10 Significado: ejecucin de instruccin (programa) temporizador de control (watchdog) puerto serie batera
187
Captulo 4
Indica el puerto por el que se debe enviar el mensaje. Valor: 1 2 Significado: backplane puerto serie
TimeoutMultiplier
SINT
GSV SSV
Determina cundo una conexin se debe considerar como que ha sobrepasado el tiempo de espera y se ha cerrado. Valor: 0 1 2 Significado: la conexin sobrepasar el tiempo de espera en un lapso igual a 4 veces el rgimen de actualizacin (predeterminado) la conexin sobrepasar el tiempo de espera en un lapso igual a 8 veces el rgimen de actualizacin la conexin sobrepasar el tiempo de espera en un lapso igual a 16 veces el rgimen de actualizacin
UnconnectedTimeout
DINT
GSV SSV
El tiempo de espera, en microsegundos, para todos los mensajes no conectados. La opcin predeterminada es 30,000,000 microsegundos (30 segundos).
Siga los pasos que aparecen a continuacin para cambiar un atributo MESSAGE: 1. Use una instruccin GSV para obtener el atributo MessageType y gurdelo en un tag. 2. Use una instruccin SSV para establecer MessageType en 0. 3. Use una instruccin SSV para establecer el atributo MESSAGE que desea cambiar. 4. Use una instruccin SSV para establecer el atributo MessageType nuevamente al valor original que usted obtuvo en el paso 1.
188
Captulo 4
GSV GSV Get System Value Get System Value Class name Message Class name MESSAGE Instance name msg_1 Instance name msg_1 Attribute Name MessageType Attribute Name MessageType Dest msg_1_type Dest msg_1_type 2 2 SSV SSV Set System Value Set System Value Class name Message Class name MESSAGE Instance name msg_1 Instance name msg_1 Attribute Name ConnectionPath Attribute Name ConnectionPath Source msg_1_path[0] Source msg_1path[0] 6 6
SSV SSV Set System Value Set System Value Class name Message Class name MESSAGE Instance name msg_1 Instance name msg_1 Attribute Name MessageType Attribute Name MessageType Source tag_a Source tag_a 0 0 SSV SSV Set System Value Set System Value Class name Message Class name MESSAGE Instance name msg_1 Instance name msg_1 Attribute Name MessageType Attribute Name MessageType Source msg_1_type Source msg_1_type 2 2
msg_1.EN msg_1.EN /
MSG MSG Tipo Escritura de tabla de Write datos CIP Type - CIP Data Table Message Control msg_1 ... Message Control msg_1
EN EN DN DN ER ER
Texto estructurado
IF msg_path THEN GSV(MESSAGE,msg_1,MessageType,msg_1_type); SSV(MESSAGE,msg_1,MessageType,tag_a); SSV(MESSAGE,msg_1,ConnectionPath,msg_1_path[0]); SSV(MESSAGE,msg_1,MessageType,msg_1_type); END_IF; IF NOT msg_1.EN THEN MSG(msg_1); END_IF;
189
Captulo 4
16#2000
16#3000 16#4000 16#5000 16#6000 16#7000 FaultCode FaultInfo ForceStatus INT DINT INT GSV GSV GSV
Un nmero que identifica un fallo del mdulo, si ocurre. Proporciona informacin especfica acerca del cdigo de fallo del objeto MODULE. Especifica el estado de los forzados. Bit: 0 1 2-15 Significado: forzados instalados (1=s, 0=no) forzados habilitados (1=s, 0=no) no se usa
190
Captulo 4
Descripcin Proporciona el nmero de instancia de este objeto MODULE. Especifica el estado actual del indicador LED de E/S en la parte frontal del controlador. Valor: 0 Significado: LED apagado: No hay objetos MODULE configurados para el controlador (no hay mdulos en la seccin I/O Configuration del organizador del controlador). Rojo parpadeante: Ninguno de los objetos MODULE est en ejecucin. Verde parpadeante: Por lo menos uno de los objetos MODULE no est en ejecucin. Verde fijo: Todos los objetos Module estn en ejecucin.
1 2 3
Nota: No introduzca un nombre de objeto con este atributo puesto que el atributo se aplica a toda la coleccin de mdulos. Mode INT GSV SSV Especifica el modo actual del objeto MODULE. Bit: 0 Significado: Si se establece, hace que se genere un fallo mayor si cualquiera de las conexiones del objeto MODULE entran en fallo mientras el controlador est en el modo de marcha. Si se establece, hace que el objeto MODULE entre en el estado inhibido despus de desactivar todas las conexiones al mdulo.
191
Captulo 4
Instance LastScanTime
DINT DINT
Proporciona el nmero de instancia de este objeto PROGRAM. El tiempo necesario para que se ejecutara este programa la ltima vez que se ejecut. El tiempo se representa en microsegundos. Registra los fallos mayores para este programa. Recomendamos que usted cree una estructura definida por el usuario para simplificar el acceso al atributo MajorFaultRecord: Descripcin: los 32 bits inferiores de un valor de sello de hora de fallo los 32 bits superiores de un valor de sello de hora de fallo tipo de fallo (programa, E/S, etc.) cdigo nico para el fallo (depende del tipo de fallo) informacin especfica del fallo (depende del cdigo y tipo de fallo) El tiempo de ejecucin mximo registrado para este programa. El tiempo se representa en microsegundos. Registra los fallos menores para este programa Recomendamos que usted cree una estructura definida por el usuario para simplificar el acceso al atributo MinorFaultRecord: Descripcin: los 32 bits inferiores de un valor de sello de hora de fallo los 32 bits superiores de un valor de sello de hora de fallo tipo de fallo (programa, E/S, etc.) cdigo nico para el fallo (depende del tipo de fallo) informacin especfica del fallo (depende del cdigo y tipo de fallo) no se usa reservado para uso futuro
MajorFaultRecord
DINT[11]
GSV SSV
MinorFaultRecord
DINT[11]
GSV SSV
192
Captulo 4
Especifica la paridad. Valor: 0 1 2 Significado: sin paridad (no predeterminado) paridad impar (ASCII solamente) paridad par
RTSOffDelay
INT
GSV
La cantidad de tiempo necesario para retardar la desconexin de la lnea RTS despus de la transmisin del ltimo carcter. El valor vlido es 0-32,767. Retardo en conteos de perodos de 20 ms. El valor predeterminado es 0 ms.
RTSSendDelay
INT
GSV
La cantidad de tiempo necesario para retardar la transmisin del primer carcter de un mensaje despus de activar la lnea RTS. El valor vlido es 0-32,767. Retardo en conteos de perodos de 20 ms. El valor predeterminado es 0 ms.
StopBits
SINT
GSV
Especifica el nmero de bits de fin. Valor: 1 2 Significado: 1 bit de fin (opcin predeterminada) 2 bits de fin (ASCII solamente)
Valor pendiente para el atributo BaudRate. Valor pendiente para el atributo DataBits. Valor pendiente para el atributo Parity.
193
Captulo 4
Descripcin Valor pendiente para el atributo RTSOffDelay. Valor pendiente para el atributo RTSSendDelay. Valor pendiente para el atributo StopBits.
Para aplicar los valores para cualquiera de los atributos SERIALPORT pendientes: 1. Use una instruccin SSV para establecer el valor para el atributo pendiente. Usted puede establecer tantos atributos pendientes como desee, usando una instruccin SSV para cada atributo pendiente. 2. Use una instruccin MSG para aplicar el valor. La instruccin MSG aplica cada atributo pendiente establecido. Configure las instrucciones MSG como:
Ficha MSG Configuration Configuration Campo Message Type Service Code Object Type Object ID Object Attribute Source Number of Elements Destination Communication Path Valor CIP genrico 0d hex 6f hex 1 dejar en blanco dejar en blanco 0 dejar en blanco ruta de comunicacin consigo mismo (1,s donde s = nmero de ranura del controlador)
194
Captulo 4
Habilita o inhabilita la funcin de tiempo de espera de una tarea de evento. Para: inhabilitar la funcin de tiempo de espera habilitar la funcin de tiempo de espera Establezca el atributo en: 0 1 (o cualquier valor excepto cero)
InhibitTask
DINT
GSV SSV
Evita que se ejecute la tarea. Si se inhibe una tarea, el controlador igualmente preescanea la tarea cuando el controlador cambia del modo de programacin al modo de marcha o al modo de prueba. Para: habitar la tarea inhibir (inhabilitar) la tarea Establezca el atributo en: 0 (predeterminado) 1 (o cualquier valor excepto cero)
Instance
DINT
GSV
Proporciona el nmero de instancia de este objeto TASK. Los valores vlidos son 0-31.
LastScanTime
DINT
GSV SSV
El tiempo necesario para ejecutar esta tarea desde la ltima vez que se ejecut. El tiempo se representa en microsegundos. El intervalo de tiempo mximo entre las ejecuciones sucesivas de la tarea. DINT[0] contiene los 32 bits inferiores del valor; DINT[1] contiene los 32 bits superiores del valor. Un valor de 0 indica 1 o menos ejecuciones de la tarea.
MaxInterval
DINT[2]
GSV SSV
MaxScanTime
DINT
GSV SSV
El tiempo de ejecucin mximo registrado para este programa. El tiempo se representa en microsegundos. El intervalo de tiempo mnimo entre las ejecuciones sucesivas de la tarea. DINT[0] contiene los 32 bits inferiores del valor; DINT[1] contiene los 32 bits superiores del valor. Un valor de 0 indica 1 o menos ejecuciones de la tarea.
MinInterval
DINT[2]
GSV SSV
OverlapCount
DINT
GSV SSV
El nmero de veces que se activ la tarea mientras se estaba ejecutando. Vlido para un evento o una tarea peridica. Para borrar el conteo, establezca el atributo en 0.
195
Captulo 4
Atributo Priority
Descripcin La prioridad relativa de esta tarea comparada con las otras tareas. Valores vlidos 1...15. Si el tipo de tarea es: peridica El atributo Rate especifica el: Perodo para la tarea. El tiempo se representa en microsegundos. El valor de tiempo de espera para la tarea. El tiempo se representa en microsegundos.
Rate
DINT
GSV SSV
evento
StartTime
DINT[2]
GSV SSV
El valor WALLCLOCKTIME cuando se inici la ltima ejecucin de la tarea. DINT[0] contiene los 32 bits inferiores del valor; DINT[1] contiene los 32 bits superiores del valor. Proporciona informacin de estado acerca de la tarea. Una vez que el controlador establece uno de estos bits, usted puede borrar el bit manualmente. Para determinar si: Una instruccin EVNT activ la tarea (tarea de evento solamente). Un tiempo de espera sobrepasado activ la tarea (tarea de evento solamente). Ocurri una superposicin para esta tarea. Examine este bit: 0
Status
DINT
GSV SSV
Watchdog
DINT
GSV SSV
El lmite de tiempo para la ejecucin de todos los programas asociados con esta tarea. El tiempo se representa en microsegundos. Si se introduce 0, se asignan estos valores: Tiempo: 0.5 s 5.0 s Tipo de tarea: peridica o de evento continua
196
Captulo 4
197
Captulo 4
Texto estructurado
GSV(MODULE,disc_in_2,FaultCode,disc_in_2_info.FaultCode); GSV(MODULE,disc_in_2,FaultInfo,disc_in_2_info.FaultInfo); GSV(MODULE,disc_in_2,Mode,disc_in_2info.Mode);
Texto estructurado
GSV(PROGRAM,DISCRETE,LASTSCANTIME, discrete_info.LastScanTime); GSV(PROGRAM,DISCRETE,MAXSCANTIME,discrete_info.MaxScanTime);
198
Captulo 4
Texto estructurado
GSV(TASK,IO_TEST,LASTSCANTIME,io_test_info.LastScanTime); GSV(TASK,IO_TEST,MAXSCANTIME,io_test_info.MaxScanTime); GSV(TASK,IO_TEST,WATCHDOG,io_test_info.WatchDog);
199
Captulo 4
Texto estructurado
IF SW.1 THEN discrete_prog_flag := enable_prog; ELSE discrete_prog_flag := disable_prog; END_IF; SSV(PROGRAM,DISCRETE,DISABLEFLAG,discrete_prog_flag);
200
Captulo 4
La instruccin IOT actualiza inmediatamente los datos de salida especificados (tag de salida o tag producido).
IOT(output_tag);
Texto estructurado
Los operandos son iguales a los de la instruccin IOT de lgica de escalera de rels.
Marque esta casilla. De esta manera se configura el tag para actualizar su activador de evento slo mediante una instruccin IOT.
201
Captulo 4
El tipo de red entre los controladores determina cundo el controlador consumidor recibe los nuevos datos y el activador de eventos mediante la instruccin IOT.
Con este controlador ControlLogix Mediante esta red backplane Red EtherNet/IP Red ControlNet SoftLogix5800 Usted puede producir y consumir tags slo por una red ControlNet. El dispositivo consumidor recibe los datos y el activador de evento inmediatamente inmediatamente dentro del intervalo entre paquetes actual (API) del tag consumido (conexin) dentro del intervalo entre paquetes actual (API) del tag consumido (conexin)
Los siguientes diagramas comparan la recepcin de datos mediante una instruccin IOT por las redes EtherNet/IP y ControlNet.
Red EtherNet/IP valores cargados al tag producido instruccin IOT en el controlador productor tarea de evento en el controlador consumidor Red ControlNet valores cargados al tag producido instruccin IOT en el controlador productor RPI del tag producido tarea de evento en el controlador consumidor
202
Captulo 4
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera EnableIn se establece ejecucin de la instruccin Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. n. a. La instruccin: actualiza la conexin del tag especificado. restablece el temporizador RPI de la conexin post-escn La condicin de salida de rengln se establece como falsa. Ninguna. EnableIn siempre se establece. La instruccin se ejecuta. Accin de texto estructurado Ninguna. n. a. n. a.
Texto estructurado
IOT (Local:5:O);
203
Captulo 4
Produced_Tag se configura para actualizar su activador de eventos mediante una instruccin IOT.
Texto estructurado
IF New_Data AND NOT Trigger_Consumer THEN CPS (Source_Tag,Produced_Tag,1); IOT (Produced_Tag); END_IF; Trigger_Consumer := New_Data;
204
Captulo
Instrucciones de comparacin
(CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Introduccin
Si desea comparar los valores segn una expresin probar si dos valores son iguales
Las instrucciones de comparacin le permiten comparar los valores usando una expresin o una instruccin de comparacin especfica.
Use esta instruccin CMP EQU Disponible en estos lenguajes lgica de escalera de rels texto estructurado(1) lgica de escalera de rels texto estructurado(2) bloque de funciones lgica de escalera de rels texto estructurado(1) bloque de funciones lgica de escalera de rels texto estructurado(1) bloque de funciones lgica de escalera de rels texto estructurado(1) bloque de funciones lgica de escalera de rels texto estructurado(1) bloque de funciones lgica de escalera de rels texto estructurado(1) bloque de funciones lgica de escalera de rels texto estructurado(1) bloque de funciones lgica de escalera de rels texto estructurado(1) bloque de funciones Vea la pgina 206 211
probar si un valor es mayor o igual que un segundo valor determinar si un valor es mayor que otro valor
GEQ
215
GRT
219
probar si un valor es menor o igual que un segundo valor determinar si un valor es menor que otro valor
LEQ
223
LES
227
determinar si un valor se encuentra entre otros dos valores pasar dos valores a travs de una mscara y determinar si son iguales determinar si un valor diferente a otro valor
LIM
231
MEQ
237
NEQ
242
(1)
No hay una instruccin equivalente en texto estructurado. Use otra programacin en texto estructurado para lograr el mismo resultado. Vea la descripcin de la instruccin. No hay una instruccin equivalente en texto estructurado. Use el operador en una expresin.
(2)
Usted puede comparar valores de diferentes tipos de datos como, por ejemplo, valores de punto flotante (coma flotante) y valores enteros. Para las instrucciones de lgica de escalera de rels, los tipos de datos que aparecen en negrita indican tipos de datos ptimos. Las instrucciones se ejecutan ms rpidamente y requieren menos memoria si todos los operandos de instruccin usan el mismo tipo de datos ptimos, tpicamente DINT o REAL.
205
Captulo 5
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Comparar (CMP)
Operandos:
La instruccin CMP realiza una comparacin de las operaciones aritmticas que se especifican en la expresin.
Texto estructurado
El texto estructurado no tiene una instruccin CMP, pero usted puede lograr los mismos resultados usando una construccin IF...THEN y una expresin.
IF BOOL_expression THEN <statement>; END_IF;
Consulte Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de construcciones y expresiones en texto estructurado.
Indicadores de estado La instruccin CMP afecta los indicadores de estado aritmtico si la aritmtico: expresin contiene un operador (por ejemplo, +, , *, /) que afecta los
indicadores de estado aritmtico.
206
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Captulo 5
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa.
evale la expresin
la expresin es verdadera
la expresin es falsa
post-escn
Si introduce una expresin sin un operador de comparacin, tal como value_1 + value_2 o value_1, la instruccin evala la expresin como:
Si la expresin es diferente de cero cero La condicin de salida de rengln se establece como verdadera falsa
207
Captulo 5
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Expresiones CMP
Usted programa las expresiones en las instrucciones CMP de la misma manera que las expresiones en las instrucciones FSC. Use las siguientes secciones para obtener informacin sobre operadores vlidos, formato y orden de operacin, que son comunes para ambas instrucciones.
Operadores vlidos
Operador: + * / = < <= > >= <> ** ABS ACS AND ASN ATN COS Descripcin sumar restar/cambiar signo multiplicar dividir igual que menor que menor o igual que mayor que mayor o igual que diferente de exponente (x a la y) valor absoluto arco coseno Y a nivel de bits arco seno arco tangente coseno ptimo DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL REAL DINT REAL REAL REAL OR RAD SIN SQR TAN TOD TRN XOR Operador: DEG FRD LN LOG MOD NOT Descripcin radianes a grados BCD a entero logaritmo natural logaritmo base 10 mdulo de divisin complemento a nivel de bits O a nivel de bits grados a radianes seno raz cuadrada tangente entero a BCD truncar O exclusivo a nivel de bits ptimo DINT, REAL DINT REAL REAL DINT, REAL DINT DINT DINT, REAL REAL DINT, REAL REAL DINT DINT, REAL DINT
208
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Captulo 5
Expresiones de formato
Por cada operador que use en una expresin, usted tiene que proporcionar uno o dos operandos (tags o valores inmediatos). Use la siguiente tabla para formatear operadores y operandos dentro de una expresin:
Para operadores que operan en un operando dos operandos Use este formato operador(operando) operando_a operador operando_b Ejemplos ABS(tag_a) tag_b + 5 tag_c AND tag_d (tag_e ** 2) MOD (tag_f / tag_g)
209
Captulo 5
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Las cadenas son iguales si sus caracteres coinciden. Los caracteres ASCII permiten distinguir maysculas de minsculas. La A mayscula ($41) es diferente a la a minscula ($61). Los valores hexadecimales de los caracteres determinan si una cadena es mayor o menor que otra cadena. Para obtener el cdigo hexadecimal de un carcter, remtase a la contraportada de este manual. Cuando las dos cadenas se clasifican como en un directorio telefnico, el orden de las cadenas determina cul es mayor.
Caracteres ASCII 1ab
m e n o r m a y o r
Cdigos hexadecimales $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B
1b A AB B a ab
210
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Captulo 5
Igual a (EQU)
Operandos:
Si usted introduce un tag SINT o INT, el valor se convierte en un valor DINT mediante extensin de signo. Los valores REAL pocas veces son absolutamente iguales. Si necesita determinar la igualdad de dos valores REAL, use la instruccin LIM. Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree Para probar los caracteres de una cadena, introduzca un tag de cadena tanto para Source A como para Source B.
Texto estructurado
IF sourceA = sourceB THEN <statements>;
Use el signo igual = como operador dentro de una expresin. Esta expresin evala si sourceA es igual que sourceB. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
211
Captulo 5
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Bloque de funciones
Operando EQU tag Tipo FBD_COMPARE Formato estructura Descripcin estructura EQU
Estructura FBD_COMPARE
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. SourceA REAL Valor que se compara con SourceB Vlido = cualquier valor con punto flotante (coma flotante) SourceB REAL Valor que se compara con SourceA Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut Dest BOOL BOOL Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin. Es equivalente a la condicin de salida de rengln de la instruccin EQU de lgica de escalera de rels.
Descripcin: Use la instruccin EQU para comparar dos nmeros o dos cadenas de
caracteres ASCII. Cuando usted compara las cadenas: Las cadenas son iguales si sus caracteres coinciden. Los caracteres ASCII permiten distinguir maysculas de minsculas. La A mayscula ($41) es diferente a la a minscula ($61).
212
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Captulo 5
Source A = Source B
no
post-escn
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
213
Captulo 5
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Texto estructurado
light_a := (value_1 = value_2);
Bloque de funciones
214
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Captulo 5
Si usted introduce un tag SINT o INT, el valor se convierte en un valor DINT mediante extensin de signo. Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree Para probar los caracteres de una cadena, introduzca un tag de cadena tanto para Source A como para Source B.
Texto estructurado
IF sourceA >= sourceB THEN <statements>;
Use los signos mayor que e igual >= adyacentes como operador dentro de una expresin. Esta expresin evala si sourceA es mayor o igual que sourceB. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
215
Captulo 5
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Bloque de funciones
Operando GEQ tag Tipo FBD_COMPARE Formato estructura Descripcin estructura GEQ
Estructura FBD_COMPARE
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. SourceA REAL Valor que se compara con SourceB Vlido = cualquier valor con punto flotante (coma flotante) SourceB REAL Valor que se compara con SourceA Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut Dest BOOL BOOL Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin. Es equivalente a la condicin de salida de rengln para la instruccin GEQ de lgica de escalera de rels.
Cdigos hexadecimales $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B
1b A AB B a ab
216
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Captulo 5
Indicadores de estado aritmtico: no afectados Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa.
Source A Source B
no
post-escn
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
217
Captulo 5
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Texto estructurado
light_b := (value_1 >= value_2);
Bloque de funciones
218
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Captulo 5
Si usted introduce un tag SINT o INT, el valor se convierte en un valor DINT mediante extensin de signo. Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree Para probar los caracteres de una cadena, introduzca un tag de cadena tanto para Source A como para Source B.
Texto estructurado
IF sourceA > sourceB THEN <statements>;
Use el signo mayor que > como un operador dentro de una expresin. Esta expresin evala si sourceA es mayor que sourceB. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando GRT tag Tipo FBD_COMPARE Formato estructura Descripcin estructura GRT
219
Captulo 5
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Estructura FBD_COMPARE
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. SourceA REAL Valor que se compara con SourceB Vlido = cualquier valor con punto flotante (coma flotante) SourceB REAL Valor que se compara con SourceA Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut Dest BOOL BOOL Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin. Es equivalente a la condicin de salida de rengln para la instruccin GRT de lgica de escalera de rels.
Cdigos hexadecimales $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B
1b A AB B a ab
220
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Captulo 5
no
post-escn
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
221
Captulo 5
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Texto estructurado
light_1 := (value_1 > value_2);
Bloque de funciones
222
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Captulo 5
Si usted introduce un tag SINT o INT, el valor se convierte en un valor DINT mediante extensin de signo. Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree Para probar los caracteres de una cadena, introduzca un tag de cadena tanto para Source A como para Source B.
Texto estructurado
IF sourceA <= sourceB THEN <statements>;
Use los signos menor que e igual <= adyacentes como operador dentro de una expresin. Esta expresin evala si sourceA es menor o igual que sourceB. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
223
Captulo 5
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Bloque de funciones
Operando LEQ tag Tipo FBD_COMPARE Formato estructura Descripcin estructura LEQ
Estructura FBD_COMPARE
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. SourceA REAL Valor que se compara con SourceB Vlido = cualquier valor con punto flotante (coma flotante) SourceB REAL Valor que se compara con SourceA Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut Dest BOOL BOOL Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin. Es equivalente a la condicin de salida de rengln para la instruccin LEQ de lgica de escalera de rels.
Cdigos hexadecimales $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B
1b A AB B a ab
224
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Captulo 5
Indicadores de estado aritmtico: no afectados Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa.
Source A Source B
no
post-escn
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
225
Captulo 5
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Texto estructurado
light_2 := (value_1 <= value_2);
Bloque de funciones
226
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Captulo 5
Si usted introduce un tag SINT o INT, el valor se convierte en un valor DINT por la extensin del signo. Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree Para probar los caracteres de una cadena, introduzca un tag de cadena tanto para Source A como para Source B.
Texto estructurado
IF sourceA < sourceB THEN <statements>;
Use el signo menor que < como un operador dentro de una expresin. Esta expresin evala si sourceA es menor que sourceB. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando LES tag Tipo FBD_COMPARE Formato estructura Descripcin estructura LES
227
Captulo 5
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Estructura FBD_COMPARE
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. SourceA REAL Valor que se compara con SourceB Vlido = cualquier valor con punto flotante (coma flotante) SourceB REAL Valor que se compara con SourceA Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut Dest BOOL BOOL Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin. Es equivalente a la condicin de salida de rengln para la instruccin LES de lgica de escalera de rels.
Cdigos hexadecimales $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B
1b A AB B a ab
228
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Captulo 5
no
post-escn
Bloque de funciones
Condicin: preescn primer escn de instruccin primera ejecucin de instruccin EnableIn es falsa EnableIn es verdadera Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
229
Captulo 5
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Texto estructurado
light_3 := (value_1 < value_2);
Bloque de funciones
230
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Captulo 5
Lmite (LIM)
Operandos:
La instruccin LIM determina si el valor de prueba se encuentra dentro del rango de los lmites inferior y superior.
Texto estructurado
El texto estructurado no cuenta con la instruccin LIM, pero se pueden lograr los mismos resultados usando texto estructurado.
IF (LowLimit <= HighLimit AND (Test >= LowLimit AND Test <= HighLimit)) OR (LowLimit >= HighLimit AND (Test <= LowLimit OR Test >= HighLimit)) THEN <statement>; END_IF;
231
Captulo 5
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Bloque de funciones
Operando LIM tag Tipo FBD_LIMIT Formato estructura Descripcin estructura LIM
Estructura FBD_LIMIT
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. Si se establece, la instruccin se ejecuta segn lo descrito en Ejecucin. La opcin predeterminada es establecido. LowLimit REAL Valor del lmite inferior Vlido = cualquier valor con punto flotante (coma flotante) Test REAL Valor que se compara con lmites Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut Dest HighLimit BOOL BOOL REAL Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin. Es equivalente a la condicin de salida de rengln para la instruccin LIM de lgica de escalera de rels. Valor del lmite superior Vlido = cualquier valor con punto flotante (coma flotante)
232
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Captulo 5
Los nmeros enteros con signo saltan (roll over) del nmero positivo mximo al nmero negativo mximo cuando se establece el bit ms significativo. Por ejemplo, en los nmeros enteros de 16 bits (tipo INT), el nmero entero positivo mximo es 32,767, el cual se representa en hexadecimal como 16#7FFF (todos los bits del 0 al 14 estn en uno). Si usted incrementa dicho nmero en uno, el resultado es 16#8000 (el bit 15 se pone en uno). Para enteros con signo, el hexadecimal 16#8000 es igual a -32,768 en decimal. Incrementar desde este punto hasta que los 16 bits se pongan en uno, termina en 16#FFFF, que es igual a -1 en decimal. Esto puede mostrarse como lnea circular de nmeros (vea los siguientes diagramas). La instruccin LIM comienza en el lmite inferior e se va incrementando en sentido horario hasta llegar al lmite superior. Cualquier valor de prueba que se encuentre en el rango en sentido horario desde el lmite inferior al lmite superior establece en verdadera la condicin de salida del rengln. Cualquier valor de prueba que se encuentre en el rango en sentido horario desde el lmite superior al lmite inferior establece en falsa la condicin de salida del rengln.
Lmite inferior Lmite superior
La instruccin es verdadera si el valor de prueba se encuentra entre los lmites inferior y superior, o coincide con uno de dichos lmites. 0 1 +1 lmite inferior 1
Lmite inferior
Lmite superior
La instruccin es verdadera si el valor de prueba se encuentra fuera de los lmites inferior y superior, o coincide con uno de dichos lmites. 0 +1 lmite superior
+n
n = valor mximo
233
Captulo 5
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
evaluar el lmite
la comparacin es verdadera
la comparacin es falsa
post-escn
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra, la instruccin no efecta ninguna operacin y las salidas no se actualizan. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
234
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Captulo 5
Cuando 0 value 100, establezca light_1. Si value < 0 or value > 100, borre light_1.
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
235
Captulo 5
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Cuando value 0 o value 100, establezca light_1. Si value < 0 o value >100, borre light_1.
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
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Captulo 5
La instruccin MEQ pasa los valores Source y Compare por una mscara y compara los resultados.
Texto estructurado
El texto estructurado no cuenta con la instruccin MEQ, pero se pueden lograr los mismos resultados usando texto estructurado.
IF (Source AND Mask) = (Compare AND Mask) THEN <statement>; END_IF;
Bloque de funciones
Operando MEQ tag Tipo FBD_MASK_EQUAL Formato estructura Descripcin estructura MEQ
237
Captulo 5
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Estructura FBD_MASK_EQUAL
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. Si se establece, la instruccin se ejecuta segn lo descrito en Ejecucin. La opcin predeterminada es establecido. Source DINT Valor que se compara con Compare. Vlido = cualquier nmero entero Mask DINT Define qu bits se deben bloquear (enmascarar). Vlido = cualquier nmero entero Compare DINT Valor de comparacin. Vlido = cualquier nmero entero Parmetro de salida Tipo de datos EnableOut Dest BOOL BOOL Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin. Es equivalente a la condicin de salida de rengln para la instruccin MEQ de lgica de escalera de rels.
238
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Captulo 5
Indicadores de estado aritmtico: no afectados Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa.
no
post-escn
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra, la instruccin no efecta ninguna operacin y las salidas no se actualizan. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
239
Captulo 5
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
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
Texto estructurado
light_1 := ((value_1 AND mask_1)=(value_2 AND mask_2));
Bloque de funciones
240
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Captulo 5
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
Texto estructurado
light_1 := ((value_1 AND mask_1)=(value_2 AND mask_2));
Bloque de funciones
241
Captulo 5
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Diferente de (NEQ)
Operandos:
Si usted introduce un tag SINT o INT, el valor se convierte en un valor DINT mediante extensin de signo. Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree Para probar los caracteres de una cadena, introduzca un tag de cadena tanto para Source A como para Source B.
Texto estructurado
IF sourceA <> sourceB THEN <statements>;
Use los signos menor que y mayor que <> juntos como operador dentro de una expresin. Esta expresin evala si sourceA es diferente de sourceB. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando NEQ tag Tipo FBD_COMPARE Formato estructura Descripcin estructura NEQ
242
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Captulo 5
Estructura FBD_COMPARE
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. SourceA REAL Valor que se compara con SourceB Vlido = cualquier valor con punto flotante (coma flotante) SourceB REAL Valor que se compara con SourceA Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut Dest BOOL BOOL Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin. Es equivalente a la condicin de salida de rengln para la instruccin NEQ de lgica de escalera de rels.
Cdigos hexadecimales $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B
1b A AB B a ab
243
Captulo 5
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Source A = Source B
no
post-escn
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
244
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Captulo 5
Texto estructurado
light_4 := (value_1 <> value_2);
Bloque de funciones
245
Captulo 5
Instrucciones de comparacin (CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Notas:
246
Captulo
Instrucciones de clculo/matemticas
(CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Introduccin
Si desea evaluar una expresin sumar dos valores
Las instrucciones de clculo/matemticas evalan las operaciones aritmticas usando una expresin o una instruccin aritmtica especfica.
Use esta instruccin CPT ADD Disponible en estos lenguajes lgica de escalera de rels texto estructurado(1) lgica de escalera de rels texto estructurado(2) bloque de funciones lgica de escalera de rels texto estructurado(2) bloque de funciones lgica de escalera de rels texto estructurado(2) bloque de funciones lgica de escalera de rels texto estructurado(2) bloque de funciones lgica de escalera de rels texto estructurado(2) bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado(2) bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones Vea la pgina 248 252
SUB
255
MUL
258
DIV
261
determinar el residuo despus de dividir un valor entre otro calcular la raz cuadrada de un valor
MOD
266
SQR SQRT(3)
270
NEG
274
ABS
277
(1)
No hay una instruccin equivalente en texto estructurado. Use otra programacin en texto estructurado para lograr el mismo resultado. Vea la descripcin de la instruccin. No hay una instruccin equivalente en texto estructurado. Use el operador en una expresin. Texto estructurado solamente.
(2) (3)
Usted puede mezclar diferentes tipos de datos, pero puede producirse prdida de exactitud y error de redondeo, y la instruccin requerir ms tiempo para ejecutarse. Verifique el bit S:V para determinar si se trunc el resultado. Para las instrucciones de lgica de escalera de rels, los tipos de datos que aparecen en negrita indican tipos de datos ptimos. Las instrucciones se ejecutan ms rpidamente y requieren menos
247
Captulo 6
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
memoria si todos los operandos de instruccin usan el mismo tipo de datos ptimos, tpicamente DINT o REAL.
Calcular (CPT)
Operandos:
La instruccin CPT realiza las operaciones aritmticas que usted define en la expresin.
Expression
inmediato tag
una expresin que consiste en tags y/o valores inmediatos separados por operadores
Texto estructurado
El texto estructurado no tiene una instruccin CPT, pero usted puede lograr los mismos resultados usando una asignacin y una expresin.
destino := numeric_expresion;
Consulte Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de asignaciones y expresiones en texto estructurado.
Descripcin: La instruccin CPT realiza las operaciones aritmticas que usted define
en la expresin. Cuando se habilita, la instruccin CPT evala la expresin y coloca el resultado en Destination. La ejecucin de una instruccin CPT es un poco ms lenta y usa ms memoria que la ejecucin de las otras instrucciones de clculo/ matemticas. La ventaja de la instruccin CPT es que le permite introducir expresiones complejas en una sola instruccin. SUGERENCIA No hay lmite en la longitud de una expresin.
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna
248
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Captulo 6
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La instruccin evala la expresin y coloca el resultado en Destination. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
249
Captulo 6
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Operadores vlidos
Operador + * / ** ABS ACS AND ASN ATN COS DEG FRD LN Descripcin sumar restar/cambiar signo multiplicar dividir exponente (x a la y) valor absoluto arco coseno Y a nivel de bits arco seno arco tangente coseno radianes a grados BCD a entero logaritmo natural ptimo DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL REAL DINT REAL REAL REAL DINT, REAL DINT REAL OR RAD SIN SQR TAN TOD TRN XOR Operador LOG MOD NOT Descripcin logaritmo base 10 mdulo de divisin complemento a nivel de bits O a nivel de bits grados a radianes seno raz cuadrada tangente entero a BCD truncar O exclusivo a nivel de bits ptimo REAL DINT, REAL DINT DINT DINT, REAL REAL DINT, REAL REAL DINT DINT, REAL DINT
Expresiones de formato
Por cada operador que use en una expresin, usted tiene que proporcionar uno o dos operandos (tags o valores inmediatos). Use la siguiente tabla para formatear operadores y operandos dentro de una expresin:
Para operadores que operan en: un operando dos operandos Use este formato: operador(operando) operando_a operador operando_b Ejemplos: ABS(tag_a) tag_b + 5 tag_c AND tag_d (tag_e ** 2) MOD (tag_f / tag_g)
250
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Captulo 6
251
Captulo 6
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Sumar (ADD)
Operandos:
Texto estructurado
dest := sourceA + sourceB;
Use el signo ms + como operador dentro de una expresin. Esta expresin suma sourceA a sourceB y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando: ADD tag Tipo: FBD_MATH Formato: estructura Descripcin: estructura ADD
252
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Captulo 6
Estructura FBD_MATH
Parmetro de entrada: EnableIn Tipo de datos: BOOL Descripcin: Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. SourceA REAL valor que se suma a SourceB Vlido = cualquier valor con punto flotante (coma flotante) SourceB REAL valor que se suma a SourceA Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida: EnableOut Dest Tipo de datos: BOOL REAL Descripcin: La instruccin produjo un resultado vlido. Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico para esta salida.
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin: preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin: La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. Destination = Source A + Source B La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
253
Captulo 6
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Bloque de funciones
Condicin: preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin: Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
Texto estructurado
add_result := float_value_1 + float_value_2;
Bloque de funciones
254
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Captulo 6
Restar (SUB)
Operandos:
Texto estructurado
dest := sourceA - sourceB;
Use el signo menos como operador en una expresin. Esta expresin resta sourceB de sourceA y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando: SUB tag Tipo: FBD_MATH Formato: estructura Descripcin: estructura SUB
255
Captulo 6
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Estructura FBD_MATH
Parmetro de entrada: EnableIn Tipo de datos: BOOL Descripcin: Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. SourceA REAL Valor del cual restar SourceB Vlido = cualquier valor con punto flotante (coma flotante) SourceB REAL Valor que se resta de SourceA Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida: EnableOut Dest Tipo de datos: BOOL REAL Descripcin: La instruccin produjo un resultado vlido. Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico para esta salida.
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin: preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin: La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. Destination = Source B Source A La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
256
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Captulo 6
Bloque de funciones
Condicin: preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin: Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
Texto estructurado
subtract_result := float_value_1 - float_value_2;
Bloque de funciones
257
Captulo 6
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Multiplicar (MUL)
Operandos:
Texto estructurado
dest := sourceA * sourceB;
Use el signo de multiplicacin como operador en una expresin. Esta expresin multiplica sourceA por sourceB y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando MUL tag Tipo FBD_MATH Formato estructura Descripcin estructura MUL
258
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Captulo 6
Estructura FBD_MATH
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. Source A REAL Valor del multiplicando Vlido = cualquier valor con punto flotante (coma flotante) Source B REAL Valor del multiplicador Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico para esta salida.
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. Destination = Source B x Source A La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
259
Captulo 6
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
Texto estructurado
multiply_result := float_value_1 float_value_2;
Bloque de funciones
260
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Captulo 6
Dividir (DIV)
Operandos:
Texto estructurado
dest := sourceA / sourceB;
Use el signo de dividir / como operador en una expresin. Esta expresin divide sourceA entre sourceB y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
261
Captulo 6
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Bloque de funciones
Operando DIV tag Tipo FBD_MATH Formato estructura Descripcin estructura DIV
Estructura FBD_MATH
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. Source A REAL Valor del dividendo. Vlido = cualquier valor con punto flotante (coma flotante) Source B REAL Valor del divisor. Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico para esta salida.
5 3 1 5.0 3 2
o Source B es REAL
se redondea
262
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Captulo 6
Si Source B (el divisor) es cero: se produce un fallo menor Tipo 4: fallo del programa Cdigo 4: overflow aritmtico el destino se establece de la siguiente manera:
Si Source B es cero y: todos los operandos son nmeros enteros (SINT, INT o DINT) por lo menos un operando es REAL SINT, INT o DINT REAL positivo negativo positivo negativo Y el destino es un: Y el resultado es: Entonces el destino se establece en: Source A -1 0 1.$ (infinito positivo) -1.$ (infinito negativo)
Para detectar una posible divisin entre cero, examine el fallo menor (S:MINOR). Consulte el documento Logix5000 Controllers Common Procedures, publicacin 1756-PM001.
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo:
Se produce un fallo menor si el divisor es cero Tipo de fallo 4 Cdigo de fallo 4
263
Captulo 6
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
Texto estructurado
divide_result := float_value_1 / float_value_2;
Bloque de funciones
264
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Captulo 6
Ejemplo 2: Las instrucciones DIV y MOV funcionan juntas para dividir dos
enteros, redondear el resultado y colocarlo en un tag de nmero entero: La instruccin DIV divide dint_a entre dint_b. Para redondear el resultado, Destination es un tag REAL. (Si el destino fuera un tag entero (SINT, INT o DINT), la instruccin truncara el resultado). La instruccin MOV traslada el resultado redondeado (real_temp) de la DIV a divide_result_rounded. Puesto que divide_result_rounded es un tag DINT, el valor de real_temp se redondea y se coloca en el destino DINT.
43009
265
Captulo 6
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Mdulo (MOD)
Operandos:
Texto estructurado
dest := sourceA MOD sourceB;
Use MOD como operador en una expresin. Esta expresin divide sourceA entre sourceB y almacena el residuo en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando MOD tag Tipo FBD_MATH Formato estructura Descripcin estructura MOD
266
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Captulo 6
Estructura FBD_MATH
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. Source A REAL Valor del dividendo. Vlido = cualquier valor con punto flotante (coma flotante) Source B REAL Valor del divisor. Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico para esta salida.
Para detectar una posible divisin entre cero, examine el fallo menor (S:MINOR). Consulte el documento Logix5000 Controllers Common Procedures, publicacin 1756-PM001.
267
Captulo 6
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo:
Se produce un fallo menor si el divisor es cero Tipo de fallo 4 Cdigo de fallo 4
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra post-escn Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. Ninguna.
268
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Captulo 6
Texto estructurado
residuo := dividendo MOD divisor;
Bloque de funciones
269
Captulo 6
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Texto estructurado
dest := SQRT(source);
Use SQRT como funcin. Esta expresin calcula la raz cuadrada de source y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
270
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Captulo 6
Bloque de funciones
Operando SQR tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin estructura SQR
Estructura FBD_MATH_ADVANCED
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. Source REAL Halla la raz cuadrada de este valor. Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico para esta salida.
no es REAL es REAL
3 1 3.0 2
Si Source es negativo, la instruccin toma el valor absoluto de Source antes de calcular la raz cuadrada.
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna
271
Captulo 6
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Destination =
Source
La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
272
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Captulo 6
Texto estructurado
sqr_result := SQRT(value_1);
Bloque de funciones
273
Captulo 6
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Texto estructurado
dest := -source;
Use el signo menos como operador en una expresin. La expresin cambia el signo de source y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando NEG tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin estructura NEG
274
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Captulo 6
Estructura FBD_MATH
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. la opcin predeterminada es establecido Source REAL Valor cuyo signo se cambia. Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico para esta salida.
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. Destination = 0 Source La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
275
Captulo 6
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Ejemplo: Cambie el signo de value_1 y coloque el resultado en negate_result. Lgica de escalera de rels
Texto estructurado
negate_result := -value_1;
Bloque de funciones
276
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Captulo 6
Texto estructurado
dest := ABS(source);
Use ABS como funcin. Esta expresin calcula el valor absoluto de source y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando ABS tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin estructura ABS
277
Captulo 6
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Estructura FBD_MATH_ADVANCED
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. Source REAL Valor del cual hallar el valor absoluto. Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico para esta salida.
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. Destination = | Source | La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
278
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Captulo 6
Texto estructurado
value_1_absolute := ABS(value_1);
Bloque de funciones
279
Captulo 6
Instrucciones de clculo/matemticas (CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Notas:
280
Captulo
Instrucciones de movimiento/lgicas
(MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Introduccin
Usted puede mezclar diferentes tipos de datos, pero puede producirse prdida de exactitud y error de redondeo, y la instruccin requiere ms tiempo para ejecutarse. Verifique el bit S:V para determinar si se trunc el resultado. Para las instrucciones de lgica de escalera de rels, los tipos de datos que aparecen en negrita indican tipos de datos ptimos. Las instrucciones se ejecutan ms rpidamente y requieren menos memoria si todos los operandos de instruccin usan el mismo tipo de datos ptimos, tpicamente DINT o REAL. Las instrucciones de movimiento modifican y mueven bits.
copiar una parte especfica de un nmero entero copiar una parte especfica de un nmero entero en el bloque de funciones mover bits dentro de un nmero entero o entre nmeros enteros mover bits dentro de un nmero entero o entre nmeros enteros en el bloque de funciones borrar un valor
MVM MVMT
285 288
BTD BTDT
292 295
CLR
298
SWPB
300
No hay una instruccin equivalente en texto estructurado. Use otra programacin en texto estructurado para lograr el mismo resultado. Vea la descripcin de la instruccin.
281
Captulo 7
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
307
310
314
317
320
323
326
Texto estructurado solamente. En texto estructurado, las operaciones AND, OR, XOR y NOT pueden ser lgicas o a nivel de bits.
282
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Captulo 7
Mover (MOV)
Operandos:
Texto estructurado
dest := source;
Use una asignacin := con una expresin. Esta asignacin mueve el valor de source a dest. Consulte Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de expresiones y asignaciones en texto estructurado.
Descripcin: La instruccin MOV copia Source en Destination. Source no cambia. Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna
283
Captulo 7
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La instruccin copia Source en Destination. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
Texto estructurado
value_2 := value _1;
284
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Captulo 7
La instruccin MVM copia Source a un Destination y permite enmascarar porciones de los datos. Esta instruccin est disponible en texto estructurado y en bloque de funciones como MVMT; vea la pgina 288.
Texto estructurado
dest := (Dest AND NOT (Mask)) OR (Source AND Mask);
Esta instruccin est disponible en texto estructurado como MVMT. O puede combinar lgica a nivel de bits dentro de una expresin y asignar el resultado al destino. Esta expresin realiza un movimiento con mscara en Source. Consulte Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de expresiones y asignaciones en texto estructurado.
Descripcin: La instruccin MVM usa una mscara para pasar o bloquear bits de
datos de Source. Un nmero 1 en la mscara significa que se pasa el bit de datos. Un nmero 0 en la mscara significa que se bloquea el bit de datos. Si mezcla diferentes tipos de datos enteros, la instruccin llena con ceros los bits superiores de los tipos de datos enteros menores para que tengan el mismo tamao que el tipo de datos mayor.
285
Captulo 7
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. condiciones de fallo ninguna Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La instruccin pasa Source a travs de la mscara y copia el resultado en Destination. Los bits sin mscara en Destination permanecen sin ningn cambio. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
286
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Captulo 7
Ejemplo: Copie datos de value_a a value_b, mientras permite que los datos
sean enmascarados (un 0 enmascara los datos en value_a).
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0
0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1
Texto estructurado
value_b := (value_b AND NOT (mask_2)) OR (value_a AND mask_2);
287
Captulo 7
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
La instruccin MVMT primero copia Target en Destination. Seguidamente la instruccin compara Source enmascarado con Destination y hace los cambios requeridos en Destination. Target y Source permanecen sin ningn cambio. Esta instruccin est disponible en lgica de escalera de rels como MVM; vea la pgina 285.
Operandos:
MVMT(MVMT_tag);
Texto estructurado
Variable MVMT tag Tipo FBD_MASKED_MOVE Formato estructura Descripcin: estructura MVMT
Bloque de funciones
Operando MVMT tag Tipo FBD_MASKED_MOVE Formato estructura Descripcin estructura MVMT
Estructura FBD_MASKED_MOVE
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Bloque de funciones Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. Si se establece, la instruccin se ejecuta. La opcin predeterminada es establecido. Texto estructurado Ningn efecto. La instruccin se ejecuta. Source DINT Valor de entrada para mover el destino con base en el valor de la mscara. Vlido = cualquier nmero entero Mask DINT Mscara de bits para mover de Source a Dest. Todos los bits establecidos en uno hacen que los bits correspondientes se muevan de Source a Dest. Todos los bits que se establecen en cero hacen que los bits correspondientes no se muevan de Source a Dest. Vlido = cualquier nmero entero Target DINT Valor de entrada para mover a Dest antes de mover los bits de Source a travs de la mscara. Vlido = cualquier nmero entero
288
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Captulo 7
Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin de movimiento enmascarado. Se establecen indicadores de estado aritmtico para esta salida.
Descripcin: Cuando se habilita, la instruccin MVMT usa una mscara para pasar o
bloquear bits de datos de Source. Un nmero 1 en la mscara significa que se pasa el bit de datos. Un nmero 0 en la mscara significa que se bloquea el bit de datos. Si mezcla diferentes tipos de datos enteros, la instruccin llena con ceros los bits superiores de los tipos de datos enteros menores para que tengan el mismo tamao que el tipo de datos mayor.
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna
289
Captulo 7
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Ejecucin:
Condicin preescn primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin de bloque de funciones Ninguna. Ninguna. EnableOut se borra, la instruccin no efecta ninguna operacin y las salidas no se actualizan. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna. Accin de texto estructurado Ninguna. Ninguna. Ninguna. n. a. EnableIn siempre se establece. La instruccin se ejecuta. Ninguna.
Ejemplo:
Receptor 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Dest 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2. Enmascare Source y comprelo con Dest. Cualquier cambio requerido se hace en Dest. Source y Target permanecen sin ningn cambio. Un nmero 0 en la mscara impide que la instruccin compare ese bit (representado por x en el ejemplo).
Source 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Mask1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0
Dest 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1
Texto estructurado
MVMT_01.Source := value _1; MVMT_01.Mask := mask1; MVMT_01.Target := target;
MVMT(MVMT_01);
value_masked := MVMT_01.Dest;
290
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Captulo 7
Bloque de funciones
291
Captulo 7
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
La instruccin BTD copia los bits especificados de Source, desplaza los bits a la posicin apropiada y escribe los bits en Destination. Esta instruccin est disponible en texto estructurado y en bloque de funciones como BTDT; vea la pgina 295.
292
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Captulo 7
Ejemplo 1: Una vez habilitada, la instruccin BTD transfiere los bits dentro de
value_1.
bit de destino
bit de origen
293
Captulo 7
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
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
294
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Captulo 7
La instruccin BTDT primero copia Target en Destination. Seguidamente, la instruccin BTD copia los bits especificados desde Source, desplaza los bits a la posicin apropiada y escribe los bits en Destination. Target y Source no cambian. Esta instruccin est disponible en lgica de escalera de rels como BTD; vea la pgina 292.
Operandos:
BTDT(BTDT_tag);
Texto estructurado
Variable BTDT tag Tipo FBD_BIT_FIELD_DISTRIBUTE Formato estructura Descripcin estructura BTDT
Bloque de funciones
Operando BTDT tag Tipo FBD_BIT_FIELD_DISTRIBUTE Formato estructura Descripcin estructura BTDT
Estructura FBD_BIT_FIELD_DISTRIBUTE
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin: Bloque de funciones: Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. Si se establece, la instruccin se ejecuta. La opcin predeterminada es establecido. Texto estructurado: Ningn efecto. La instruccin se ejecuta. Source DINT El valor de entrada que contiene los bits que se transfieren a Destination. Vlido = cualquier nmero entero SourceBit DINT La posicin de bit en Source (el nmero de bit ms bajo desde el cual se inicia la transferencia). Vlido = 0-31 Length DINT Nmero de bits que se van a mover Vlido = 1-32 DestBit DINT La posicin de bit en Dest (el nmero de bit ms bajo al cual se comienza a copiar bits). Vlido = 0-31
295
Captulo 7
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Descripcin: Valor de entrada que se transfiere a Dest antes de transferir los bits de Source. Vlido = cualquier nmero entero
Descripcin: La instruccin produjo un resultado vlido. Resultado de la operacin del traslado de bits. Se establecen indicadores de estado aritmtico para esta salida.
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados Condiciones de fallo: ninguna Ejecucin:
Condicin preescn primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin de bloque de funciones Ninguna. Ninguna. EnableOut se borra, la instruccin no efecta ninguna operacin y las salidas no se actualizan. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna. Accin de texto estructurado Ninguna. Ninguna. Ninguna. n. a. EnableIn siempre se establece. La instruccin se ejecuta. Ninguna.
296
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Captulo 7
Ejemplo:
Target 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
Dest 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
2. SourceBit y Length especifican qu bits en Source se copian en Destination a partir de DestBit. Source y Target no cambian.
DestBit SourceBit
Source 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
Dest 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Texto estructurado
BTDT_01.Source := source; BTDT_01.SourceBit := source_bit; BTDT_01.Length := length; BTDT_01.DestBit := dest_bit; BTDT_01.Target := target;
BTDT(BTDT_01);
distributed_value := BTDT_01.Dest;
Bloque de funciones
297
Captulo 7
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Borrar (CLR)
Operandos:
dest := 0;
Texto estructurado
El texto estructurado no cuenta con la instruccin CLR. En lugar de ello, asigne 0 al tag que desea borrar. Esta declaracin de asignacin borra dest. Consulte Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones y declaraciones de asignacin en texto estructurado.
Descripcin: La instruccin CLR borra todos los bits de Destination. Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La instruccin borra Destination. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
298
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Captulo 7
Ejemplo: Ponga en cero todos los bits de value. Lgica de escalera de rels
Texto estructurado
value := 0;
299
Captulo 7
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Operando Source
Formato tag
Modo de orden
Y usted desea cambiar los bytes a este patrn (cada letra representa un byte diferente) n. a. ABCD DCBA ABCD CDAB ABCD BADC
Entonces seleccione cualquiera de las opciones REVERSE (o introduzca 0) WORD (o introduzca 1) HIGH/LOW (o introduzca 2)
Destination
tag
tag para almacenar los bytes en el nuevo orden Si Source es un INT DINT REAL Entonces el destino debe ser un INT DINT DINT REAL
Texto estructurado
SWPB(Source,OrderMode,Dest);
Los operandos son los mismos que los de la instruccin SWPB de lgica de escalera de rels. Si selecciona el modo de orden HIGH/LOW, introdzcalo como HIGHLOW o HIGH_LOW (sin la barra diagonal).
300
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Captulo 7
BA
42969
Valor AB
Estilo ASCII
Tipo INT
42968
AB
301
Captulo 7
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Ejemplo 1: Las tres instrucciones SWPB reacomodan los bytes de DINT_1 segn
un modo de orden diferente. El estilo de visualizacin es ASCII, y cada carcter representa un byte. Cada instruccin coloca los bytes, en el nuevo orden, en un diferente Destination.
Texto estructurado
SWPB(DINT_1,REVERSE,DINT_1_reverse); SWPB(DINT_1,WORD,DINT_1_swap_word); SWPB(DINT_1,HIGHLOW,DINT_1_swap_high_low);
302
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Captulo 7
Texto estructurado
index := 0; SIZE (array[0],0,array_length); REPEAT SWPB(array[index],REVERSE,array_bytes_reverse[index]); index := index + 1; UNTIL(index >= array_length)END_REPEAT;
303
Captulo 7
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
La instruccin AND realiza una operacin Y a nivel de bits usando los bits en Source A y Source B, y coloca el resultado en Destination. Para realizar una operacin lgica Y, vea la pgina 317.
Texto estructurado
dest := sourceA AND sourceB
Use AND o el signo & como operador dentro de una expresin. Esta expresin evala sourceA AND sourceB. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando AND tag Tipo FBD_LOGICAL Formato estructura Descripcin estructura AND
304
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Captulo 7
Estructura FBD_LOGICAL
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. SourceA DINT Valor con que se realiza la operacin AND con SourceB Vlido = cualquier nmero entero SourceB DINT Valor con que se realiza la operacin AND con SourceA Vlido = cualquier nmero entero Parmetro de salida Tipo de datos EnableOut Dest BOOL DINT Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin. Se establecen indicadores de estado aritmtico para esta salida.
Si mezcla diferentes tipos de datos enteros, la instruccin llena con ceros los bits superiores de los tipos de datos enteros menores para que tengan el mismo tamao que el tipo de datos mayor.
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La instruccin realiza una operacin Y a nivel de bits. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
305
Captulo 7
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
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
Texto estructurado
value_result_and := value_1 AND value_2;
Bloque de funciones
306
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Captulo 7
La instruccin OR realiza una operacin O a nivel de bits usando los bits en Source A y Source B, y coloca el resultado en Destination. Para realizar una operacin lgica O, vea la pgina 320.
Texto estructurado
dest := sourceA OR sourceB
Use OR como operador dentro de una expresin. Esta expresin evala sourceA OR sourceB. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando OR tag Tipo FBD_LOGICAL Formato estructura Descripcin estructura OR
307
Captulo 7
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Estructura FBD_LOGICAL
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. SourceA DINT Valor con que se realiza la operacin O con SourceB Vlido = cualquier nmero entero SourceB DINT Valor con que se realiza la operacin O con SourceA Vlido = cualquier nmero entero Parmetro de salida Tipo de datos EnableOut Dest BOOL DINT Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin. Se establecen indicadores de estado aritmtico para esta salida.
Si mezcla diferentes tipos de datos enteros, la instruccin llena con ceros los bits superiores de los tipos de datos enteros menores para que tengan el mismo tamao que el tipo de datos mayor.
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La instruccin realiza una operacin O a nivel de bits. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
308
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Captulo 7
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
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
Texto estructurado
value_result_or := value_1 OR value_2;
Bloque de funciones
309
Captulo 7
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
La instruccin XOR realiza una operacin O exclusivo a nivel de bits usando los bits en Source A y Source B, y coloca el resultado en Destination. Para realizar una operacin lgica XO, vea la pgina 323.
Texto estructurado
dest := sourceA XOR sourceB
Use XOR como operador dentro de una expresin. Esta expresin evala sourceA XOR sourceB. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando XOR tag Tipo FBD_LOGICAL Formato estructura Descripcin estructura XOR
310
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Captulo 7
Estructura FBD_LOGICAL
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. SourceA DINT Valor con que se realiza la operacin XOR con SourceB Vlido = cualquier nmero entero SourceB DINT Valor con que se realiza la operacin XOR con SourceA Vlido = cualquier nmero entero Parmetro de salida Tipo de datos EnableOut Dest BOOL DINT Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin. Se establecen indicadores de estado aritmtico para esta salida.
Si mezcla diferentes tipos de datos enteros, la instruccin llena con ceros los bits superiores de los tipos de datos enteros menores para que tengan el mismo tamao que el tipo de datos mayor.
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La instruccin realiza una operacin O a nivel de bits. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
311
Captulo 7
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
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
Texto estructurado
value_result_xor := value_1 XOR value_2;
312
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Captulo 7
Bloque de funciones
313
Captulo 7
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
La instruccin NOT realiza un NO a nivel de bits usando los bits en Source y coloca el resultado en Destination. Para realizar una operacin lgica NO, vea la pgina 326.
Texto estructurado
dest := NOT source
Use NOT como operador dentro de una expresin. Esta expresin evala source con la operacin NOT. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando NOT tag Tipo FBD_LOGICAL Formato estructura Descripcin estructura NOT
314
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Captulo 7
Estructura FBD_LOGICAL
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. la opcin predeterminada es establecido Source DINT Valor sobre el cual se aplicar la operacin NO Vlido = cualquier nmero entero Parmetro de salida Tipo de datos EnableOut Dest BOOL DINT Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin. Se establecen indicadores de estado aritmtico para esta salida.
Si mezcla diferentes tipos de datos enteros, la instruccin llena con ceros los bits superiores de los tipos de datos enteros menores para que tengan el mismo tamao que el tipo de datos mayor.
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La instruccin realiza una operacin NO a nivel de bits. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
315
Captulo 7
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
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
Texto estructurado
value_result_not := NOT value_1;
Bloque de funciones
316
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Captulo 7
Y booleano (BAND)
La instruccin BAND aplica la operacin lgica Y a 8 entradas booleanas como mximo. Para realizar una operacin Y a nivel de bits, vea la pgina 304.
Use AND o el signo & como operador dentro de una expresin. Los operandos deben ser valores BOOL o expresiones que resultan en valores BOOL. Esta expresin evala si tanto operandA como operandB estn establecidos (verdaderos). Consulte el Apndice C, para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando BAND tag Tipo FBD_BOOLEAN_AND Formato estructura Descripcin estructura BAND
Estructura FBD_BOOLEAN_AND
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. In1 BOOL Primera entrada booleana. La opcin predeterminada es establecido. In2 BOOL Segunda entrada booleana. La opcin predeterminada es establecido. In3 BOOL Tercera entrada booleana. La opcin predeterminada es establecido. In4 BOOL Cuarta entrada booleana. La opcin predeterminada es establecido. In5 BOOL Quinta entrada booleana. La opcin predeterminada es establecido. In6 BOOL Sexta entrada booleana. La opcin predeterminada es establecido. In7 BOOL Sptima entrada booleana. La opcin predeterminada es establecido.
317
Captulo 7
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Texto estructurado
value_result_and := bool_in1 AND bool_in2;
318
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Captulo 7
Bloque de funciones
Texto estructurado
IF bool_in1 AND bool_in2 THEN light1 := 1; ELSE light1 := 0; END_IF;
319
Captulo 7
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
O booleano (BOR)
La instruccin BOR aplica la operacin lgica O a 8 entradas booleanas como mximo. Para realizar un O a nivel de bits, vea la pgina 307.
Use OR como operador dentro de una expresin. Los operandos deben ser valores BOOLEANOS o expresiones que resultan en valores BOOLEANOS. Esta expresin evala si operandA u operandB, o ambos estn establecidos (verdaderos). Consulte el Apndice C, para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando BOR tag Tipo FBD_BOOLEAN_OR Formato estructura Descripcin estructura BOR
Estructura FBD_BOOLEAN_OR
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. In1 BOOL Primera entrada booleana. La opcin predeterminada es borrado. In2 BOOL Segunda entrada booleana. La opcin predeterminada es borrado. In3 BOOL Tercera entrada booleana. La opcin predeterminada es borrado. In4 BOOL Cuarta entrada booleana. La opcin predeterminada es borrado. In5 BOOL Quinta entrada booleana. La opcin predeterminada es borrado. In6 BOOL Sexta entrada booleana. La opcin predeterminada es borrado. In7 BOOL Sptima entrada booleana. La opcin predeterminada es borrado.
320
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Captulo 7
Texto estructurado
value_result_or := bool_in1 OR bool_in2;
321
Captulo 7
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Bloque de funciones
Texto estructurado
IF bool_in1 OR bool_in2 THEN light1 := 1; ELSE light1 := 0; END_IF;
322
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Captulo 7
La instruccin BXOR realiza una operacin O exclusivo de dos entradas booleanas. Para realizar un XOR a nivel de bits, vea la pgina 310.
Texto estructurado
IF operandA XOR operandB THEN <statement>; END_IF;
Use XOR como operador dentro de una expresin. Los operandos deben ser valores BOOLEANOS o expresiones que resultan en valores BOOLEANOS. Esta expresin evala si slo operandA o slo operandB, est establecido (verdadero). Consulte el Apndice C, para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando BXOR tag Tipo FBD_BOOLEAN_XOR Formato estructura Descripcin estructura BXOR
Estructura FBD_BOOLEAN_XOR
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. In1 BOOL Primera entrada booleana. La opcin predeterminada es borrado. In2 BOOL Segunda entrada booleana. La opcin predeterminada es borrado. Parmetro de salida Tipo de datos EnableOut Out BOOL BOOL Descripcin Habilitacin de salida. La salida de la instruccin.
323
Captulo 7
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Ejecucin:
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin de bloque de funciones Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
Texto estructurado
value_result_xor := bool_in1 XOR bool_in2;
Bloque de funciones
324
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Captulo 7
Texto estructurado
IF bool_in1 XOR bool_in2 THEN light1 := 1; ELSE light1 := 0; END_IF;
325
Captulo 7
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
NO booleano (BNOT)
Operandos:
La instruccin BNOT complementa una entrada booleana. Para realizar una operacin NO a nivel de bits, vea la pgina 314.
Texto estructurado
IF NOT operand THEN <statement>; END_IF;
Use NOT como operador dentro de una expresin. El operando debe ser un valor BOOL o expresiones que resultan en valores BOOL. Esta expresin evala si el operando est borrado (falso). Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando BNOT tag Tipo FBD_BOOLEAN_NOT Formato estructura Descripcin estructura BNOT
Estructura FBD_BOOLEAN_NOT
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. In BOOL Entrada a la instruccin La opcin predeterminada es establecido. Parmetro de salida Tipo de datos EnableOut Out BOOL BOOL Descripcin: Habilitacin de salida. La salida de la instruccin.
326
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Captulo 7
Ejecucin:
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin de bloque de funciones Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
Texto estructurado
value_result_not := NOT bool_in1;
Bloque de funciones
Texto estructurado
IF NOT bool_in1 THEN light1 := 0; ELSE light1 := 1; END_IF;
327
Captulo 7
Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)
Notas:
328
Captulo
Introduccin
Si desea realizar operaciones aritmticas, lgicas, de desplazamiento y de funciones en valores en matrices buscar y comparar valores en matrices
copiar el contenido de una matriz en otra matriz sin interrupcin llenar una matriz con datos especficos
CPS
356
FLL
362
AVE
366
organizar una dimensin de datos de matriz en orden ascendente calcular la desviacin estndar de una matriz de valores encontrar el tamao de una dimensin de una matriz
(1)
SRT
371
STD
376
SIZE
381
No hay una instruccin equivalente en texto estructurado. Use otra programacin en texto estructurado para lograr el mismo resultado. Vea la descripcin de la instruccin.
Usted puede mezclar diferentes tipos de datos, pero puede producirse prdida de exactitud y error de redondeo, y la instruccin requiere ms tiempo para ejecutarse. Verifique el bit S:V para determinar si se trunc el resultado. Para las instrucciones de lgica de escalera de rels, los tipos de datos que aparecen en negrita indican tipos de datos ptimos. Las instrucciones se ejecutan ms rpidamente y requieren menos memoria si todos los operandos de instruccin usan el mismo tipo de datos ptimos, tpicamente DINT o REAL.
329Publicacin 1756-RM003K-ES-P Julio 2008 329
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Para las instrucciones FAL y FSC, el modo indica al controlador cmo distribuir la operacin de la matriz.
Si desea realizar una operacin en todos los elementos especificados de una matriz antes de continuar con la prxima instruccin distribuir operaciones de matriz entre un nmero de escanes introduzca el nmero de elementos sobre los que se debe operar por escn (1-2147483647) manipular un elemento de la matriz cada vez que la condicin de entrada de rengln cambia de falsa a verdadera Incremental Seleccione este modo Todos
Numrico
Modo Todos
En el modo Todos, se opera sobre todos los elementos de la matriz antes de continuar con la prxima instruccin La operacin comienza cuando la condicin de entrada del rengln cambia de falso a verdadero. El valor de posicin (.POS) en la estructura de control apunta al elemento de la matriz que la instruccin est usando actualmente. La operacin se detiene cuando el valor .POS es igual al valor .LEN.
Matriz de datos un escn
16639
330
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
El siguiente diagrama temporal muestra la relacin entre los bits de estado y la operacin de la instruccin. Cuando concluye la ejecucin de la instruccin, se establece el bit .DN. El bit .DN, el bit .EN y el valor .POS se borran cuando la condicin de entrada del rengln es falsa. Slo entonces podr activarse otra ejecucin de la instruccin por una transicin de falso a verdadero de la condicin de entrada del rengln.
un escn
bit .EN
bit .DN borra los bits de estado y borra el valor .POS escn de la instruccin
operacin concluida
no se realiza la ejecucin
40010
Modo numrico
El modo numrico distribuye la operacin de la matriz entre un nmero de escanes. Este modo es til cuando se trabaja con datos no crticos en cuando a tiempo o con grandes cantidades de datos. Usted introduce el nmero de elementos sobre los que se va a operar por cada escn, lo que mantiene ms corto el tiempo de escn.
331
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
La ejecucin se activa cuando la condicin de entrada del rengln cambia de falso a verdadero. Una vez activada, la instruccin se ejecuta cada vez que se escanea por el nmero de escanes necesarios para completar la operacin en toda la matriz. Una vez activada, la condicin de entrada del rengln puede cambiar repetidamente sin interrumpir la ejecucin de la instruccin.
un escn
segundo escn
siguiente escn
16641
IMPORTANTE
Evite usar los resultados de una instruccin de archivo que funciona en modo numrico hasta que est establecido el bit .DN.
El siguiente diagrama muestra la relacin entre los bits de estado y la operacin de la instruccin. Cuando concluye la ejecucin de la instruccin, se establece el bit .DN.
el rengln es verdadero al concluir mltiples escanes el rengln es falso al concluir mltiples escanes
condicin de entrada de rengln bit .EN bit .DN escn de la instruccin operacin concluida operacin concluida
40013
332
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
Si la condicin de entrada de rengln es verdadera al concluir, los bits .EN y .DN se establecen hasta que la condicin de entrada de rengln se hace falsa. Cuando la condicin de entrada de rengln cambia a falso, estos bits se borran y el valor .POS se borra. Si la condicin de entrada de rengln es falsa al concluir, el bit .EN se borra inmediatamente. Un escn despus de que se borra el bit .EN, el bit .DN y el valor .POS se borran.
Modo incremental
El modo incremental manipula un elemento de la matriz cada vez que la condicin de entrada de rengln de la instruccin cambia de falso a verdadero.
16643
333
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
El siguiente diagrama muestra la relacin entre los bits de estado y la operacin de la instruccin. La ejecucin se realiza slo en un escn en el cual la condicin de entrada del rengln cambia de falso a verdadero. Cada vez que esto ocurre, slo se manipula un elemento de la matriz. Si la condicin de entrada de rengln permanece verdadera por ms de un escn, la instruccin slo se ejecuta durante el primer escn.
un escn
bit .EN
bit .DN
40014
El bit .EN se establece cuando la condicin de entrada del rengln es verdadera. El bit .DN se establece cuando el ltimo elemento de la matriz ha sido manipulado. Cuando el ltimo elemento ha sido manipulado y la condicin de entrada de rengln cambia a falso, se borran el bit .EN, el bit .DN y el valor .POS. La diferencia entre el modo incremental y el modo numrico a un rgimen de un elemento por escn es: El modo numrico con cualquier nmero de elementos por escn requiere slo una transicin de falso a verdadero de la condicin de entrada de rengln para comenzar la ejecucin. La instruccin contina ejecutando el nmero especificado de elementos en cada escn hasta concluir, independientemente del estado de la condicin de entrada de rengln. El modo incremental requiere que la condicin de entrada de rengln cambie de falso a verdadero para manipular un elemento de la matriz.
334
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
La instruccin FAL realiza operaciones de copia, aritmticas, lgicas y funciones en los datos almacenados en una matriz.
Texto estructurado
El texto estructurado no cuenta con la instruccin FAL, pero usted puede lograr los mismos resultados usando una instruccin SIZE y una construccin FOR...DO u otra construccin de lazo.
SIZE(destination,0,length-1); FOR position = 0 TO length DO destination[position] := numeric_expression; END_FOR;
Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las construcciones en texto estructurado.
335
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Estructura CONTROL
Mnemnico .EN .DN .ER Tipo de datos BOOL BOOL BOOL Descripcin El bit de habilitacin indica que la instruccin FAL est habilitada. El bit de efectuado se establece cuando la instruccin ha efectuado la operacin en el ltimo elemento (.POS = .LEN). El bit de error se establece si la expresin genera un overflow (se establece S:V). La instruccin detiene la ejecucin hasta que el programa borra el bit .ER. El valor .POS contiene la posicin del elemento que caus el overflow. La longitud especifica el nmero de elementos de la matriz sobre el que opera la instruccin FAL. La posicin contiene la posicin del elemento actual al cual la instruccin obtiene acceso.
.LEN .POS
DINT DINT
Descripcin: La instruccin FAL realiza las mismas operaciones en las matrices que
la instruccin CPT realiza en los elementos. Los ejemplos que aparecen a partir de la pgina 342 describen cmo usar el valor .POS para procesar una matriz. Si un subndice de la expresin de Destination se encuentra fuera de rango, la instruccin FAL genera un fallo mayor (tipo 4, cdigo 20).
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo:
Ocurrir un fallo mayor si el subndice est fuera de rango .POS < 0 o .LEN < 0 Tipo de fallo 4 4 Cdigo de fallo 20 21
336
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa.
Bit .DN = 0
no
bit .DN = 1 el bit .EN se borra el bit .ER se borra el bit .DN se borra el valor .POS se borra
modo ALL s
no
fallo mayor
.POS = .POS + 1
.LEN = 0 no
s no
.LEN > modo el bit .DN se establece el bit .EN se establece s el bit .DN se establece el bit .EN se borra modo numrico
no
modo = .LEN
pgina 341
fin
337
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
.LEN < 0 o .POS < 0 examinar el bit .ER Bit .ER = 0 no bit .DN = 0 examinar el bit .DN bit .DN = 1 .LEN = 0 s
pgina 341
fallo mayor modo numrico no
bit .ER = 1
no
modo INC s
no modo ALL s
modo INC
modo ALL
comn
pgina 339
pgina 340
loop_count = loop_count - 1
loop_count < 0 s
no
.POS = .POS + 1
evaluar la expresin
no
.POS = .LEN s
no
.POS = .POS + 1
fin
338
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
Condicin
modo INC
el bit .DN se establece el bit .EN se establece la condicin de salida de rengln se establece como verdadera
comn
pgina 338
fin
339
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Condicin
modo ALL
bit .EN = 0
bit = 1
.POS = .POS + 1
.POS .LEN no
pgina 338
fin
340
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
Condicin
modo numrico
bit .EN = 1
.POS .LEN no
modo = .LEN
no
.LEN modo s el bit .EN se establece loop_count = .LEN - .POS .POS = .POS - 1 el bit .DN se establece el bit .EN se establece la condicin de salida de rengln se establece como verdadera
fin
comn
pgina 338
post-escn
341
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Expresin: array_2[control_2.pos]
Destino: array_1[control_2.pos]
Expresin: value_1
Destino: array_2[0,control_2.pos]
Ejemplo 3: Cada vez que la instruccin FAL se habilita, copia el valor actual de
array_1 a value_1. La instruccin FAL usa el modo incremental; por lo tanto, slo se copia un valor de matriz cada vez que se habilita la instruccin. La prxima vez que se habilita la instruccin, sta sobrescribe value_1 con el siguiente valor en array_1.
copia de matriz a elemento
Expresin: array_1[control_1.pos]
Destino: value_1
Destino: array_1[control_1.pos]
342
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
Destino: array_1[control_2.pos]
Destino: array_3[control_1.pos]
Ejemplo 7: Cada vez que la instruccin FAL se habilita, suma value_1 al valor
actual de array_1 y almacena el resultado en value_2. La instruccin FAL usa el modo incremental; por lo tanto, slo se suma un valor de matriz a value_1 cada vez que se habilita la instruccin. La siguiente vez que se habilita la instruccin, sta sobrescribe value_2.
operacin aritmtica: (elemento + matriz) a elemento
Destino: value_2
343
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Destino: value_1
Expresiones FAL
Usted programa las expresiones en las instrucciones FAL de la misma manera que las expresiones en las instrucciones CPT. Use las siguientes secciones para obtener informacin sobre operadores, formato y orden de operacin vlidos que son comunes para ambas instrucciones.
344
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
Operadores vlidos
Operador + * / ** ABS ACS AND ASN ATN COS DEG FRD LN Descripcin sumar restar/cambiar signo multiplicar dividir exponente (x a la y) valor absoluto arco coseno Y a nivel de bits arco seno arco tangente coseno radianes a grados BCD a entero logaritmo natural ptimo DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL REAL DINT REAL REAL REAL DINT, REAL DINT REAL OR RAD SIN SQR TAN TOD TRN XOR Operador LOG MOD NOT Descripcin logaritmo base 10 mdulo de divisin complemento a nivel de bits O a nivel de bits grados a radianes seno raz cuadrada tangente entero a BCD truncar O exclusivo a nivel de bits ptimo REAL DINT, REAL DINT DINT DINT, REAL REAL DINT, REAL REAL DINT DINT, REAL DINT
Expresiones de formato
Por cada operador que use en una expresin, usted tiene que proporcionar uno o dos operandos (tags o valores inmediatos). Use la siguiente tabla para formatear operadores y operandos dentro de una expresin:
Para operadores que operan en un operando dos operandos Use este formato operador(operando) operando_a operador operando_b Ejemplos ABS(tag_a) tag_b + 5 tag_c AND tag_d (tag_e ** 2) MOD (tag_f / tag_g)
345
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
346
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
La instruccin FSC compara los valores en una matriz, elemento por elemento.
Estructura CONTROL
Mnemnico .EN .DN .ER .IN .FD .LEN .POS Tipo de datos BOOL BOOL BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin indica que la instruccin FSC est habilitada. El bit de efectuado se establece cuando la instruccin ha efectuado la operacin en el ltimo elemento (.POS = .LEN). El bit de error no se modifica. El bit de inhibicin indica que la instruccin FSC ha detectado una comparacin verdadera. Usted debe borrar este bit para poder continuar la operacin de buscar. El bit de encontrado indica que la instruccin FSC ha detectado una comparacin verdadera. La longitud especifica el nmero de elementos en la matriz sobre el que opera la instruccin. La posicin contiene la posicin del elemento actual al cual la instruccin obtiene acceso.
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo:
Ocurrir un fallo mayor si .POS < 0 o .LEN < 0 Tipo de fallo 4 Cdigo de fallo 21
347
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa.
bit .DN = 0
no
bit .DN = 1 el bit .EN se borra el bit .ER se borra el bit .DN se borra el valor .POS se borra
modo ALL s
no
fallo mayor
.POS = .POS + 1
.LEN = 0 no
s no
.LEN > modo el bit .DN se establece el bit .EN se establece s el bit .DN se establece el bit .EN se borra modo numrico la condicin de salida de rengln se establece como falsa
no
modo = .LEN
pgina 341
fin
348
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
.LEN < 0 o .POS < 0 examinar el bit .ER bit .ER = 1 examinar el bit .IN bit .IN = 0 bit .ER = 0 no bit .DN = 0 .LEN = 0 s
pgina 341
fallo mayor modo numrico no
no
modo INC s
no modo ALL s
bit .DN = 1
el bit .DN se establece el bit .EN se establece bit .DN = 1 examinar el bit .DN comn bit .DN = 0
modo INC
modo ALL
pgina 339
pgina 340
loop_count = loop_count - 1
loop_count < 0 s
no
.POS = .POS + 1
evale la comparacin
no
no
.POS = .POS + 1
fin
post-escn
349
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Ejemplo 1: Buscar una coincidencia entre dos matrices. Una vez habilitada, la
instruccin FSC compara cada uno de los 10 primeros elementos en array_1 con los elementos correspondientes en array_2.
array_1 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000001111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111
array_2 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 11111111111111110000000000000000 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111 11111111111111111111111111111111
control_3.pos 0 1 2 3 4 5 6 7 8 9 La instruccin FSC determina que estos elementos son diferentes. La instruccin establece los bits .FD e .IN. El valor .POS (4) indica la posicin de los elementos que son diferentes. Para continuar comparando el resto de la matriz, borre el bit .IN.
350
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
MySearchKey
control_3.pos 0 1 2 3 4 5 6 7 8 9 La instruccin FSC determina que este elemento de matriz es igual a MySearchKey. La instruccin establece los bits .FD e .IN. El valor .POS (4) indica la posicin de los elementos que son iguales. Para continuar comparando el resto de la matriz, borre el bit .IN.
11111111111111110000000000000000
351
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
code
code_table_search.POS 0 1 2 3 4 5 6 7 8 9 La instruccin FSC determina que este elemento de la matriz es igual a code. La instruccin establece los bits .FD e .IN. El valor .POS (4) indica la posicin de los elementos que son iguales. Para continuar comparando el resto de la matriz, borre el bit .IN.
SAM
Expresiones FSC
Usted programa las expresiones en las instrucciones FSC de la misma manera que las expresiones en las instrucciones CMP. Use las siguientes secciones para obtener informacin sobre operadores, formato y orden de operacin vlidos que son comunes para ambas instrucciones.
352
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
Operadores vlidos
Operador + * / = < <= > >= <> ** ABS ACS AND ASN ATN COS Descripcin sumar restar/cambiar signo multiplicar dividir igual que menor que menor o igual que mayor que mayor o igual que diferente de exponente (x a la y) valor absoluto arco coseno Y a nivel de bits arco seno arco tangente coseno ptimo DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL DINT, REAL REAL DINT REAL REAL REAL OR RAD SIN SQR TAN TOD TRN XOR Operador DEG FRD LN LOG MOD NOT Descripcin radianes a grados BCD a entero logaritmo natural logaritmo base 10 mdulo de divisin complemento a nivel de bits O a nivel de bits grados a radianes seno raz cuadrada tangente entero a BCD truncar O exclusivo a nivel de bits ptimo DINT, REAL DINT REAL REAL DINT, REAL DINT DINT DINT, REAL REAL DINT, REAL REAL DINT DINT, REAL DINT
Expresiones de formato
Por cada operador que use en una expresin, usted tiene que proporcionar uno o dos operandos (tags o valores inmediatos). Use la siguiente tabla para formatear operadores y operandos dentro de una expresin:
Para operadores que operan en un operando dos operandos Use este formato operador(operando) operando_a operador operando_b Ejemplos ABS(tag_a) tag_b + 5 tag_c AND tag_d (tag_e ** 2) MOD (tag_f / tag_g)
353
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
354
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
Las cadenas son iguales si sus caracteres coinciden. Los caracteres ASCII permiten distinguir maysculas de minsculas. La A mayscula ($41) es diferente a la a minscula ($61). Los valores hexadecimales de los caracteres determinan si una cadena es mayor o menor que otra cadena. Para obtener el cdigo hexadecimal de un carcter, remtase a la contraportada de este manual. Cuando las dos cadenas se clasifican como en un directorio telefnico, el orden de las cadenas determina cul es mayor.
Caracteres ASCII 1ab
m e n o r m a y o r
Cdigos hexadecimales $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B
1b A AB B a ab
355
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Las instrucciones COP y CPS copian el o los valores de Source en Destination. Source no cambia.
Texto estructurado
COP(Source,Dest,Length); CPS(Source,Dest,Length);
Los operandos son iguales que los de las instrucciones COP y CPS de lgica de escalera de rels.
356
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
El nmero de bytes copiados es: Conteo de bytes = Length (nmero de bytes en el tipo de datos de Destination)
ATENCIN
Si el conteo de bytes es mayor que la longitud de Source, se copian datos inesperados para el resto de los elementos.
IMPORTANTE
Usted debe probar y confirmar que la instruccin no cambie datos que usted no desea que cambien. Las instrucciones COP y CPS operan en memoria contigua. Realizan una copia de memoria directa byte a byte. En algunos casos, escriben ms all de la matriz en otros miembros del tag. Esto sucede si la longitud es excesiva y el tag es de un tipo de datos definido por el usuario.
Si el tag es Entonces
tipo de datos definido por Si Length es demasiado grande, la instruccin escribe ms el usuario all del final de la matriz a otros miembros del tag. Se detiene al final del tag. No se genera un fallo mayor. NO es un tipo de datos definido por el usuario Si Length es demasiado grande, la instruccin se detiene al final de la matriz. No se genera un fallo mayor.
Length es demasiado grande si es mayor que el nmero total de elementos en la matriz Destination.
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels Accin de texto estructurado
La condicin de salida de rengln se establece como Ninguna. falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. n. a. n. a.
EnableIn se establece
n. a.
ejecucin de la instruccin
source_address = Source
destination_address = end_address
no
copiar datos en source_address a destination_address la condicin de salida de rengln se establece como verdadera source_address = source_address + 1 fin
destination_address = destination_address + 1
post-escn
Ninguna.
358
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
Ejemplo 1: Tanto array_4 como array_5 son del mismo tipo de datos. Cuando se
habilita, la instruccin COP copia los primeros 10 elementos de array_4 en los primeros 10 elementos de array_5.
Texto estructurado
COP(array_4[0],array_5[0],10);
Texto estructurado
COP(timer_1,array_timer[5],1);
359
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Texto estructurado
CPS(project_data[0],produced_array[0],100);
Texto estructurado
CPS(Local:0:I.Data[0],input_buffer[0],20);
360
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
array_timer[1]
array_timer[2]
array_timer[3]
array_timer[10]
Texto estructurado
IF S:FS THEN array_timer[0].pre := 500; array_timer[0].acc := 0; COP(array_timer[0],array_timer[1],10); END_IF;
361
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
La instruccin FLL llena los elementos de una matriz con el valor de Source. Source no cambia.
Texto estructurado
El texto estructurado no cuenta con la instruccin FLL, pero usted puede lograr los mismos resultados usando una instruccin SIZE y una construccin FOR...DO u otra construccin de lazo.
SIZE(destination,0,length); FOR position = 0 TO length-1 DO destination[position] := source; END_FOR;
Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las construcciones en texto estructurado.
362
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
IMPORTANTE
tipo de datos definido por Si la longitud es demasiado grande, la instruccin escribe ms el usuario all del final de la matriz a otros miembros del tag. Se detiene al final del tag. No se genera un fallo mayor. NO es un tipo de datos definido por el usuario Si Length es demasiado grande, la instruccin se detiene al final de la matriz. No se genera un fallo mayor.
Length es demasiado grande si es mayor que el nmero total de elementos en la matriz Destination. Para obtener los mejores resultados, Source y Destination deben ser del mismo tipo. Si usted desea llenar una estructura, use la instruccin COP (vea el ejemplo 3 en la pgina 359). Si mezcla diferentes tipos de datos para Source y Destination, los elementos de Destination se llenan con los valores de Source convertidos.
Si Source es SINT, INT, DINT o REAL SINT, INT, DINT o REAL SINT, INT, DINT o REAL SINT, INT, DINT o REAL SINT INT DINT REAL Y Destination es SINT INT DINT REAL estructura estructura estructura estructura Source se convierte en SINT INT DINT REAL SINT (no se convierte) INT (no se convierte) DINT (no se convierte) REAL (no se convierte)
363
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera
end_address = start_address + (Length nmero de bytes en un elemento de destino)
Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa.
source_address = Source
destination_address = end_address
no
destination_address = destination_address + 1
fin
post-escn
364
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
Ejemplo: La instruccin FLL copia el valor de value_1 en dest_1 Lgica de escalera de rels
Valor de Destination (dest_1) despus de FLL 16#FFFF FF80 (-128) 16#78 1.0 16#0002 16#0101 0101 16#0101 0101 16#0101 0101
INT
16#0001
TIMER
DINT
16#0000 0001
TIMER
Texto estructurado
dest_1 := value _1;
365
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Texto estructurado
El texto estructurado no cuenta con la instruccin AVE, pero usted puede lograr los mismos resultados usando una instruccin SIZE y una construccin FOR...DO u otra construccin de lazo.
SIZE(array,0,length); sum := 0; FOR position = 0 TO length-1 DO sum := sum + array[position]; END_FOR; destino := sum / length;
366
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las construcciones en texto estructurado.
Estructura CONTROL
Mnemnico .EN .DN .ER Tipo de datos BOOL BOOL BOOL Descripcin El bit de habilitacin indica que la instruccin AVE est habilitada. El bit de efectuado se establece cuando la instruccin ha realizado una operacin en el ltimo elemento de la matriz (.POS = .LEN). Se establece el bit de error si la instruccin genera un overflow. La instruccin detiene la ejecucin hasta que el programa borra el bit .ER. La posicin del elemento que caus el overflow se almacena en el valor .POS. La longitud especifica el nmero de elementos en la matriz sobre el que opera la instruccin. La posicin contiene la posicin del elemento actual al cual la instruccin obtiene acceso.
.LEN .POS
DINT DINT
Asegrese de que la longitud no haga que la instruccin exceda la Dimension to vary especificada. Si ocurre esto, el destino ser incorrecto.
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo:
Ocurrir un fallo mayor si .POS < 0 o .LEN < 0 Dimension to vary no existe en la matriz especificada Tipo de fallo 4 4 Cdigo de fallo 21 20
367
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Ejecucin:
Condicin preescn Accin de lgica de escalera de rels El bit .EN se borra. El bit .DN se borra. El bit .ER se borra. La condicin de salida de rengln se establece como falsa. condicin de entrada de rengln es falsa
bit .DN = 0
bit .DN = 1
el bit .EN se borra el bit .ER se borra el bit .DN se borra el valor .POS se borra
fin
La instruccin AVE calcula el promedio sumando todos los elementos especificados en la matriz y dividiendo el resultado entre el nmero de elementos. Internamente, la instruccin usa una instruccin FAL para calcular el promedio: Expresin = clculo de promedio Modo = ALL Para obtener detalles sobre cmo se ejecuta la instruccin FAL, vea la pgina 337.
post-escn
368
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
su d bn
0 dimensin 0 1 2 3
Texto estructurado
SIZE(array_dint,0,length); sum := 0; FOR position = 0 TO (length-1) DO sum := sum + array_dint[position]; END_FOR; dint_ave := sum / length;
369
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
b su nd
0 dimensin 0 1 2 3
Texto estructurado
SIZE(array_dint,1,length); sum := 0; FOR position = 0 TO (length-1) DO sum := sum + array_dint[position]; END_FOR; dint_ave := sum / length;
370
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
La instruccin SRT clasifica un conjunto de valores en una dimensin (Dim to vary) de la matriz en orden ascendente.
Texto estructurado
SRT(Array,Dimtovary, Control);
Los operandos son los mismos que para la instruccin SRT de lgica de escalera de rels. Sin embargo, usted especifica los valores de Length y Position al acceder a los miembros .LEN y .POS de la estructura CONTROL, en lugar de incluir los valores en la lista de operandos.
Estructura CONTROL
Mnemnico .EN .DN .ER .LEN .POS Tipo de datos BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin indica que la instruccin SRT est habilitada. Se establece el bit de efectuado cuando los elementos especificados se han clasificado. Se establece el bit de error cuando .LEN < 0 o .POS < 0. Cualquiera de estas condiciones tambin genera un fallo mayor. La longitud especifica el nmero de elementos en la matriz en que la instruccin realiza una operacin. La posicin contiene la posicin del elemento actual al cual la instruccin obtiene acceso.
371
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Usted debe probar y confirmar que la instruccin no cambie datos que usted no desea que cambien. La instruccin SRT realiza la operacin en la memoria de datos contiguos. En algunos casos, la instruccin cambia datos en otros miembros del tag. Esto sucede si la longitud es excesiva y el tag es de un tipo de datos definido por el usuario.
IMPORTANTE
Asegrese de que la longitud no haga que la instruccin exceda la Dimension to vary especificada. Si ocurre esto, ocurrirn resultados inesperados. sta es una instruccin transicional: En lgica de escalera de rels, cambie la condicin de entrada del rengln de borrado a establecido cada vez que deba ejecutarse la instruccin. En texto estructurado, condicione la instruccin de manera que slo se ejecute cuando ocurra una transicin. Consulte el Apndice C, Programacin de texto estructurado.
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo:
Ocurrir un fallo mayor si .POS < 0 o .LEN < 0 La dimensin que se va a variar no existe para la matriz especificada Tipo de fallo 4 4 Cdigo de fallo 21 20 20
La instruccin intenta obtener acceso a los 4 datos fuera de los lmites de la matriz.
372
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
Ejecucin:
Condicin preescn Accin de lgica de escalera de rels El bit .EN se borra. El bit .DN se borra. El bit .ER se borra. La condicin de salida de rengln se establece como falsa. condicin de entrada de rengln es falsa
examinar el bit .DN bit .DN = 0
Accin de texto estructurado El bit .EN se borra. El bit .DN se borra. El bit .ER se borra.
n. a.
bit .DN = 1
el bit .EN se borra el bit .ER se borra el bit .DN se borra el valor .POS se borra
fin
n. a.
EnableIn se establece
n. a.
La instruccin clasifica los elementos especificados en la matriz en orden ascendente. La condicin de salida de rengln se establece como falsa.
373
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Despus
dimensin 1 0 20 15 10 5 1 19 14 9 4 3 8 13 18 2 3 17 12 7 2 4 16 11 6 1
bn su es dic
0 dimensin 0 1 2 3
0 1 2 3
Texto estructurado
control_1.LEN := 4; control_1.POS := 0; SRT(int_array[0,2],0,control_1);
374
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
Despus
dimensin 1 0 20 15 6 5 1 19 14 7 4 2 18 13 8 3 3 17 12 9 2 4 16 11 10 1
e dic s su bn
0 dimensin 0 1 2 3
0 1 2 3
Texto estructurado
control_1.LEN := 5; control_1.POS := 0; SRT(int_array[2,0],1,control_1);
375
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
La instruccin STD calcula la desviacin estndar de un conjunto de valores en una dimensin de la matriz y almacena el resultado en Destination.
Estructura CONTROL
Mnemnico .EN .DN .ER Tipo de datos BOOL BOOL BOOL Descripcin El bit de habilitacin indica que la instruccin STD est habilitada. Se establece el bit de efectuado cuando se completa el clculo. Se establece el bit de error cuando la instruccin genera un overflow. La instruccin detiene la ejecucin hasta que el programa borra el bit .ER. La posicin del elemento que caus el overflow se almacena en el valor .POS. La longitud especifica el nmero de elementos de la matriz sobre el que opera la instruccin. La posicin contiene la posicin del elemento actual al cual la instruccin obtiene acceso.
.LEN .POS
DINT DINT
376
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
Texto estructurado
El texto estructurado no cuenta con la instruccin STD, pero usted puede lograr los mismos resultados usando una instruccin SIZE y una construccin FOR...DO u otra construccin de lazo.
SIZE(array,0,length); sum := 0; FOR position = 0 TO length-1 DO sum := sum + array[position]; END_FOR; average := sum / length; sum := 0; FOR position = 0 TO length-1 DO sum := sum + ((array[position] - average)**2); END_FOR; destino := SQRT(sum /(length-1));
Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las construcciones en texto estructurado.
Descripcin: La desviacin estndar se calcula segn la frmula siguiente: N 2 [ X AVE ] ( start + i ) i = 1 ------------------------------------------------------------------(N 1)
Desviacin estndar =
Donde: inicio = subndice de la dimensin para variar del operando de la matriz xi = elemento variable en la matriz N = nmero de elementos especificados en la matriz AVE =
x ( start + i ) i = 1 ---------------------------------------N
IMPORTANTE
Asegrese de que Length no haga que la instruccin exceda la Dimension to vary especificada. Si ocurre esto, el destino ser incorrecto.
377
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo:
Ocurrir un fallo mayor si .POS < 0 o .LEN < 0 La dimensin que se va a variar no existe en la matriz especificada Tipo de fallo 4 4 Cdigo de fallo 21 20
Ejecucin:
Condicin preescn Accin de lgica de escalera de rels El bit .EN se borra. El bit .DN se borra. El bit .ER se borra. La condicin de salida de rengln se establece como falsa. condicin de entrada de rengln es falsa
bit .DN = 0
bit .DN = 1
el bit .EN se borra el bit .ER se borra el bit .DN se borra el valor .POS se borra
fin
condicin de entrada de rengln es verdadera La instruccin STD calcula la desviacin estndar de los elementos especificados. Internamente, la instruccin usa una instruccin FAL para calcular el promedio: Expresin = clculo de la desviacin estndar Modo = ALL Para obtener detalles acerca de cmo se ejecuta la instruccin FAL, vea la pgina 337. post-escn La condicin de salida de rengln se establece como falsa.
378
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
0 20 15 10 5
1 19 14 9 4
2 18 13 8 3
3 17 12 7 2
4 16 11 6 1
0 dimensin 0 1 2 3
STD =
real_std = 6.454972
Texto estructurado
SIZE(dint_array,0,length); sum := 0; FOR position = 0 TO (length-1) DO sum := sum + dint_array[position]; END_FOR; average := sum / length; sum := 0; FOR position = 0 TO (length-1) DO sum := sum + ((dint_array[position] - average)**2); END_FOR; real_std := SQRT(sum / (length-1));
379
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
0 20 15 10 5
1 19 14 9 4
2 18 13 8 3
3 17 12 7 2
4 16 11 6 1
0 dimensin 0 1 2 3
STD =
20 18 + 19 18 + 18 18 + 17 18 + 16 18 - = 1.581139 ---------------------------------------------------------------------------------------------------------------------------------------------------------- 5 1
real_std = 1.581139
Texto estructurado
SIZE(dint_array,1,length); sum := 0; FOR position = 0 TO (length-1) DO sum := sum + dint_array[position]; END_FOR; average := sum / length; sum := 0; FOR position = 0 TO (length-1) DO sum := sum + ((dint_array[position] - average)**2); END_FOR; real_std := SQRT(sum / (length-1));
380
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
Texto estructurado
SIZE(Source,Dimtovary,Size);
Los operandos son iguales a los de la instruccin SIZE de lgica de escalera de rels.
381
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
La condicin de salida de rengln se establece como Ninguna. falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. n. a. n. a.
EnableIn se establece
n .a.
La instruccin encuentra el tamao de una dimensin. La condicin de salida de rengln se establece como falsa.
Texto estructurado
SIZE(array_a,0,array_a_size);
382
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Captulo 8
Texto estructurado
SIZE(string_1.DATA[0],0,string_1_size);
Texto estructurado
SIZE(strings_a[0].DATA[0],0,data_size_a);
383
Captulo 8
Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
Notas:
384
Captulo
Introduccin
Si desea Cargar bits, desplazar bits y descargar bits de una matriz de bits, bit por bit.
Use las instrucciones de matriz (archivo)/desplazamiento para modificar la ubicacin de datos dentro de matrices.
Use esta instruccin BSL BSR FFL FFU LFL LFU Disponible en estos lenguajes lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels Vea la pgina 386 390 394 400 406 412
Cargar y descargar valores en el mismo orden. Cargar y descargar valores en el orden invertido.
Usted puede mezclar diferentes tipos de datos, pero esto puede causar prdida de exactitud y errores de redondeo. Para las instrucciones de lgica de escalera de rels, los tipos de datos que aparecen en negrita indican tipos de datos ptimos. Las instrucciones se ejecutan ms rpidamente y requieren menos memoria si todos los operandos de instruccin usan el mismo tipo de datos ptimos, tpicamente DINT o REAL.
385
Captulo 9
La instruccin BSL desplaza los bits especificados dentro de la matriz una posicin hacia la izquierda.
Estructura CONTROL
Mnemnico .EN .DN .UL .ER .LEN Tipo de datos BOOL BOOL BOOL BOOL DINT Descripcin El bit de habilitacin indica que la instruccin BSL est habilitada. Se establece el bit de efectuado para indicar que los bits se han desplazado una posicin hacia la izquierda. El bit de descarga es la salida de la instruccin. El bit .UL almacena el estado del bit que se desplaz fuera del rango de los bits. Se establece el bit de error cuando .LEN < 0. La longitud especifica el nmero de bits de matriz que se desplazan.
IMPORTANTE
386
Captulo 9
Ejecucin:
Condicin: preescn Accin de lgica de escalera de rels El bit .EN se borra. El bit .DN se borra. El bit .ER se borra. El valor .POS se borra. La condicin de salida de rengln se establece como falsa. condicin de entrada de rengln es falsa El bit .EN se borra. El bit .DN se borra. El bit .ER se borra. El valor .POS se borra. La condicin de salida de rengln se establece como falsa.
387
Captulo 9
Condicin:
bit .EN = 1
.LEN = 0
no examinar el bit de origen el bit .ER se establece .source bit = 0 no el bit .UL se establece. desplazar matriz izquierda una posicin a la izquierda bit .UL matriz bit de origen .source bit = 1 el bit .UL permanece establecido.
.LEN < 0
fin
post-escn
388
Captulo 9
9 8 7 6 5 4 3 2 1 0 array_dint[0] 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 antes del desplazamiento 0 bit .UL estos bits se desplazan a la izquierda 9 8 7 6 5 4 3 2 1 0 array_dint[0] despus del desplazamiento 0 1 1 1 1 0 0 0 0 1
1 input_1
31
31 array_dint[1]
0 bit .UL
389
Captulo 9
La instruccin BSR desplaza los bits especificados dentro de la matriz una posicin hacia la derecha.
Estructura CONTROL
Mnemnico .EN .DN .UL .ER .LEN Tipo de datos BOOL BOOL BOOL BOOL DINT Descripcin El bit de habilitacin indica que la instruccin BSR est habilitada. Se establece el bit de efectuado para indicar que los bits se han desplazado una posicin hacia la derecha. El bit de descarga es la salida de la instruccin. El bit .UL almacena el estado del bit que se desplaz fuera del rango de los bits. Se establece el bit de error cuando .LEN < 0. La longitud especifica el nmero de bits de la matriz que se desplazan.
IMPORTANTE
390
Captulo 9
Ejecucin:
Condicin preescn Accin de lgica de escalera de rels El bit .EN se borra. El bit .DN se borra. El bit .ER se borra. El valor .POS se borra. La condicin de salida de rengln se establece como falsa. condicin de entrada de rengln es falsa El bit .EN se borra. El bit .DN se borra. El bit .ER se borra. El valor .POS se borra. La condicin de salida de rengln se establece como falsa.
391
Captulo 9
Condicin
bit .EN = 1
.LEN = 0
no examinar el bit de origen el bit .ER se establece .source bit = 0 no el bit .UL se establece desplazar matriz izquierda una posicin hacia la izquierda bit de origen matriz bit .UL .source bit = 1 el bit .UL permanece establecido.
.LEN < 0
fin
post-escn
392
Captulo 9
9 8 7 6 5 4 3 2 1 0 array_dint[0] 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 antes del desplazamiento 1 input_1 estos bits se desplazan a la derecha 9 8 7 6 5 4 3 2 1 0 array_dint[0] despus del desplazamiento 1 0 0 1 1 1 1 0 0 0
0 bit .UL
31
1 input_1
393
Captulo 9
Si usted usa una estructura definida por el usuario como el tipo de datos para el operando de Source o FIFO, use la misma estructura para los dos operandos.
394
Captulo 9
Estructura CONTROL
Mnemnico .EN .DN .EM .LEN .POS Tipo de datos BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin indica que la instruccin FFL est habilitada. Se establece el bit de efectuado para indicar que la FIFO est llena (.POS = .LEN). El bit .DN inhibe la carga de la FIFO hasta que .POS < .LEN. El bit de vaco indica que la FIFO est vaca. Si .LEN 0 o .POS < 0, los bits .EM y .DN se establecen. La longitud especifica el nmero mximo de elementos que la FIFO puede contener a la vez. La posicin identifica la ubicacin en la FIFO donde la instruccin cargar el siguiente valor.
IMPORTANTE
395
Captulo 9
Ejecucin:
Condicin preescn
se establece el bit .EN para evitar una carga falsa cuando se inicia el escn
.LEN < 0
no
.POS < 0
no
.POS = 0
no
.POS .LEN
no
fin
396
Captulo 9
.LEN < 0
no
.POS < 0
no
.POS = 0
no
.POS .LEN
no
fin
397
Captulo 9
.EN = 0
.LEN < 0 no
.LEN < 0 no
.POS < 0 no el bit .EM se borra el bit .DN se borra .POS = .POS + 1
el bit .EM est establecido el bit .DN est establecido .POS .LEN no s el bit .DN se establece
.POS = 0 no
el bit .EM est establecido .POS o s .LEN > tamao de la matriz no fallo mayor
.POS .LEN no
.POS = .POS - 1
FIFO[.POS - 1] = origen
fin
post-escn
398
Captulo 9
antes de la carga FIFO array_dint[0] 00000 11111 22222 33333 44444 array_dint[5] 00000 00000 00000 00000 00000 control_1.pos = 5 value_1 = 55555
despus de la carga FIFO 00000 11111 22222 33333 44444 55555 00000 00000 00000 00000 control_1.pos = 6
399
Captulo 9
La instruccin FFU descarga el valor desde la posicin 0 (primera posicin) de la FIFO y almacena dicho valor en Destination. El resto de los datos en la FIFO se desplazan hacia abajo una posicin.
Si usted usa una estructura definida por el usuario como el tipo de datos para el operando FIFO o Destination, use la misma estructura para los dos operandos.
400
Captulo 9
Estructura CONTROL
Mnemnico .EU .DN .EM .LEN .POS Tipo de datos BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin de descarga indica que la instruccin FFU est habilitada. El bit .EU se establece para impedir una descarga falsa cuando se inicia el escn del programa. Se establece el bit de efectuado para indicar que la FIFO est llena (.POS = .LEN). El bit de vaco indica que la FIFO est vaca. Si .LEN 0 o .POS < 0, los bits .EM y .DN se establecen. La longitud especifica el nmero mximo de elementos en la FIFO. La posicin identifica el final de los datos cargados en la FIFO.
Descripcin: Use la instruccin FFU con una instruccin FFL para almacenar y
recuperar datos en el siguiente orden: primero en entrar, primero en salir. Una vez habilitada, la instruccin FFU descarga los datos desde el primer elemento de la FIFO y coloca dicho valor en Destination. La instruccin descarga un valor cada vez que la instruccin se habilita hasta que la FIFO est vaca. Si la FIFO est vaca, FFU retorna la cifra 0 a Destination. Usted debe probar y confirmar que la instruccin no cambie datos que usted no desea que cambien. La instruccin FFU realiza la operacin en la memoria de datos contiguos. En algunos casos, la instruccin descarga datos desde otros miembros del tag. Esto sucede si la longitud es excesiva y el tag es de un tipo de datos definido por el usuario.
IMPORTANTE
401
Captulo 9
Ejecucin:
Condicin preescn Accin de lgica de escalera de rels
se establece el bit .EU para evitar una descarga falsa cuando se inicia el escn
.LEN < 0
no
.POS < 0
no
.POS = 0
no
.POS .LEN
no
fin
402
Captulo 9
.LEN < 0
no
.POS < 0
no
.POS = 0
no
.POS .LEN
no
fin
403
Captulo 9
.LEN < 0 no
.LEN < 0 no
fallo mayor
.POS = 0 no
.POS 1 no
.POS .LEN no
.POS < 1 el bit .DN se establece no .POS = .POS -1 Destination = FIFO[0] i=1
Destination = 0
FIFO[i - 1] = FIFO[i] i = i +1
post-escn
404
Captulo 9
antes de la descarga FIFO array_dint[0] 00000 11111 22222 33333 44444 array_dint[5] 55555 00000 00000 00000 00000 control_1.pos = 6
despus de la descarga FIFO 11111 22222 33333 44444 55555 00000 00000 00000 00000 00000 control_1.pos = 5 value_2 = 00000
405
Captulo 9
Si usted usa una estructura definida por el usuario como el tipo de datos para el operando Source o LIFO, use la misma estructura para los dos operandos.
406
Captulo 9
Estructura CONTROL
Mnemnico .EN .DN .EM .LEN .POS Tipo de datos BOOL BOOL BOOL DINT DINT Descripcin: El bit de habilitacin indica que la instruccin LFL est habilitada. Se establece el bit de efectuado para indicar que la LIFO est llena (.POS = .LEN). El bit .DN inhibe la carga de la LIFO hasta que .POS < .LEN. El bit de vaco indica que la LIFO est vaca. Si .LEN 0 o .POS < 0, los bits .EM y .DN se establecen. La longitud especifica el nmero mximo de elementos que la LIFO puede contener a la vez. La posicin identifica la ubicacin en la LIFO donde la instruccin cargar el siguiente valor.
IMPORTANTE
407
Captulo 9
Ejecucin:
Condicin: preescn Accin de lgica de escalera de rels
se establece el bit .EN para evitar una carga falsa cuando se inicia el escn
.LEN < 0
no
.POS < 0
no
.POS = 0
no
.POS .LEN
no
fin
408
Captulo 9
.LEN < 0
no
.POS < 0
no
.POS = 0
no
.POS .LEN
no
fin
409
Captulo 9
.EN = 0
.LEN < 0 no
.LEN < 0 no
.POS < 0 no el bit .EM se borra el bit .DN se borra .POS = .POS + 1
el bit .EM est establecido el bit .DN est establecido .POS .LEN no s el bit .DN se establece
.POS = 0 no
el bit .EM est establecido .POS o s .LEN > tamao de la matriz no fallo mayor
.POS .LEN no
.POS = .POS - 1
LIFO[.POS - 1] = origen
fin
post-escn
410
Captulo 9
antes de la carga LIFO array_dint[0] 00000 11111 22222 33333 44444 array_dint[5] 00000 00000 00000 00000 00000 control_1.pos = 5 value_1 = 55555
despus de la carga LIFO 00000 11111 22222 33333 44444 55555 00000 00000 00000 00000 control_1.pos = 6
411
Captulo 9
Si usted usa una estructura definida por el usuario como el tipo de datos para el operando LIFO o Destination, use la misma estructura para los dos operandos.
412
Captulo 9
Estructura CONTROL
Mnemnico .EU .DN .EM .LEN .POS Tipo de datos: BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin de descarga indica que la instruccin LFU est habilitada. El bit .EU se establece para impedir una descarga falsa cuando se inicia el escn del programa. Se establece el bit de efectuado para indicar que la LIFO est llena (.POS = .LEN). El bit de vaco indica que la LIFO est vaca. Si .LEN 0 o .POS < 0, los bits .EM y .DN se establecen. La longitud especifica el nmero mximo de elementos que la LIFO puede contener a la vez. La posicin identifica el final de los datos cargados en la LIFO.
IMPORTANTE
413
Captulo 9
Ejecucin:
Condicin preescn Accin de lgica de escalera de rels:
se establece el bit .EU para evitar una descarga falsa cuando se inicia el escn.
.LEN < 0
no
.POS < 0
no
.POS = 0
no
.POS .LEN
no
fin
414
Captulo 9
.LEN < 0
no
.POS < 0
no
.POS = 0
no
.POS .LEN
no
fin
415
Captulo 9
.LEN < 0 no
.LEN < 0 no
.POS 1 no
.POS = 0 no
.POS < 1 no
Destination = 0
.POS .LEN no
.POS = .LEN
fallo mayor
fin
post-escn
416
Captulo 9
antes de la descarga LIFO array_dint[0] 00000 11111 22222 33333 44444 array_dint[5] 55555 00000 00000 00000 00000 control_1.pos = 6
despus de la descarga LIFO 00000 11111 22222 33333 44444 00000 00000 00000 00000 00000 control_1.pos = 5 value_2 = 55555
417
Captulo 9
Notas:
418
Captulo
10
Instrucciones de secuenciador
(SQI, SQO, SQL)
Introduccin
Si desea Detectar cundo ha concluido un paso Establecer condiciones de salida para el siguiente paso Cargar condiciones de referencia en matrices de secuenciador
No se toma ninguna accin. Las instrucciones de secuenciador monitorean operaciones uniformes y repetibles.
Use esta instruccin SQI SQO SQL Disponible en estos lenguajes lgica de escalera de rels lgica de escalera de rels lgica de escalera de rels Vea la pgina 420 424 428
Para las instrucciones de lgica de escalera de rels, los tipos de datos que aparecen en letras negritas indican tipos de datos ptimos. Las instrucciones se ejecutan ms rpidamente y requieren menos memoria si todos los operandos de instruccin usan el mismo tipo de datos ptimos, tpicamente DINT o REAL.
419
Captulo 10
La instruccin SQI detecta cundo ha concluido un paso en una pareja de instrucciones de secuencia SQO/SQI.
Estructura CONTROL
Mnemnico .ER .LEN .POS Tipo de datos BOOL DINT DINT Descripcin El bit de error se establece cuando .LEN 0, .POS < 0, o .POS > .LEN. La longitud especifica el nmero de pasos en la matriz de secuenciador. La posicin identifica el elemento que la instruccin est comparando actualmente.
420
Captulo 10
421
Captulo 10
Ejecucin:
Condicin: preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa.
no
no
fin
post-escn
422
Captulo 10
Ejemplo de valores (usando DINT mostrados en binario): xxxxxxxx xxxxxxxx xxxx0101 xxxx1010 00000000 00000000 00001111 00001111 xxxxxxxx xxxxxxxx xxxx0101 xxxx1010
Un nmero 0 en la mscara significa que el bit no se compara (designado por xxxx en este ejemplo).
423
Captulo 10
La instruccin SQO establece condiciones de salida para el siguiente paso de una pareja de instrucciones SQO/SQI de secuencia.
tag de matriz matriz de secuenciador especifica el primer elemento de la matriz de secuenciador no use CONTROL.POS en el subndice
Mask
tag inmediato
Un tag SINT o INT se convierte en un valor DINT mediante la extensin con signo. Destination Control DINT CONTROL tag tag datos de salida provenientes de la matriz de secuenciador estructura de control para la operacin normalmente, se usa el mismo CONTROL que para las instrucciones SQI y SQL Length DINT inmediato nmero de elementos en la matriz (tabla de secuenciador) que se va a establecer como salida posicin actual en la matriz el valor inicial es tpicamente 0
Position
DINT
inmediato
Estructura CONTROL
Mnemnico .EN .DN .ER .LEN .POS Tipo de datos BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin indica que la instruccin SQO est habilitada. El bit de efectuado se establece cuando todos los elementos especificados se han transferido a Destination. El bit de error se establece cuando .LEN 0, .POS < 0, o .POS > .LEN. La longitud especifica el nmero de pasos en la matriz de secuenciador. La posicin identifica el elemento que el controlador est manipulando actualmente.
424
Captulo 10
425
Captulo 10
no
.EN = 0
.POS = .LEN
no
.POS .LEN
.POS = 1
no .POS = .POS + 1
ir a error
.POS = .LEN
no
no
error
fin
post-escn
426
Captulo 10
Ejemplo de valores (usando INT mostrados en binario): xxxxxxxx xxxxxxxx xxxx0101 xxxx1010 00000000 00000000 00001111 00001111 xxxxxxxx xxxxxxxx xxxx0101 xxxx1010
Un nmero 0 en la mscara significa que el bit no se compara (designado por xxxx en este ejemplo).
427
Captulo 10
tag de matriz matriz de secuenciador especifica el primer elemento de la matriz de secuenciador no use CONTROL.POS en el subndice
Source
tag inmediato
Un tag SINT o INT se convierte en un valor DINT mediante la extensin con signo. Control CONTROL tag estructura de control para la operacin normalmente, se usa el mismo CONTROL que para las instrucciones SQI y SQO Length Position DINT DINT inmediato inmediato nmero de elementos en la matriz (tabla de secuenciador) que se va a cargar posicin actual en la matriz el valor inicial es tpicamente 0
Estructura CONTROL
Mnemnico .EN .DN .ER .LEN .POS Tipo de datos BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin indica que la instruccin SQL est habilitada. El bit de efectuado se establece cuando todos los elementos especificados se han cargado en la matriz. El bit de error se establece cuando .LEN 0, .POS < 0, o .POS > .LEN. La longitud especifica el nmero de pasos en la matriz de secuenciador. La posicin identifica el elemento que el controlador est manipulando actualmente.
428
Captulo 10
IMPORTANTE
Ejecucin:
Condicin preescn Accin de lgica de escalera de rels El bit .EN se establece para impedir una carga falsa cuando se inicia el escn del programa. La condicin de salida de rengln se establece como falsa. condicin de entrada de rengln es falsa El bit .EN se borra. La condicin de salida de rengln se establece como falsa.
429
Captulo 10
no
.EN = 0
.POS = .LEN
no
.POS .LEN
.POS = 1
no .POS = .POS + 1
ir a error
.POS = .LEN
no
no
error
fallo mayor
Array[control.POS] = Source
fin
post-escn
430
Captulo 10
antes de la carga array_dint[0] 00000 11111 22222 33333 44444 array_dint[5] 00000 00000 00000 00000 00000 control_1.pos = 5 value_3 = 55555
despus de la carga 00000 11111 22222 33333 44444 55555 00000 00000 00000 00000 control_1.pos = 6
431
Captulo 10
Notas:
432
Captulo
11
Introduccin
Si desea
Saltarse una seccin de lgica que no siempre necesita ejecutarse. Saltar a una rutina separada, pasar datos a la rutina, ejecutar la rutina y retornar resultados.
Saltar a una rutina externa (controlador SoftLogix5800 solamente) Marcar un fin temporal que detiene la ejecucin de la rutina. Inhabilitar todos los renglones en una seccin de lgica. Inhabilitar tareas de usuario. Habilitar tareas de usuario. Inhabilitar un rengln. Insertar un indicador de posicin en la lgica. Finalizar una transicin para un diagrama de funcin secuencial Poner en pausa un diagrama de funcin secuencial Restablecer un diagrama de funcin secuencial Activar la ejecucin de una tarea de evento
433
Captulo 11
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
instruccin JMP
ATENCIN
La instruccin LBL es el objetivo de la instruccin JMP que tiene el mismo nombre de etiqueta. Asegrese de que la instruccin LBL sea la primera instruccin en su rengln. Un nombre de etiqueta debe ser nico dentro de una rutina. El nombre puede: tener hasta 40 caracteres contener letras, nmeros y caracteres de subrayado (_)
434
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Captulo 11
Ejecucin:
Condicin: preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como verdadera. La ejecucin salta al rengln que contiene la instruccin LBL con el nombre de etiqueta referenciado. post-escn La condicin de salida de rengln se establece como falsa.
435
Captulo 11
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
La instruccin JSR salta la ejecucin a una rutina diferente. Las instrucciones SBR y RET son instrucciones opcionales que intercambian datos con la instruccin JSR.
436
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Captulo 11
Parmetro de entrada
datos de esta rutina que desea copiar a un tag en la subrutina Los parmetros de entrada son opcionales. Introduzca mltiples parmetros de entrada, si es necesario.
Parmetro de retorno
el tag en esta rutina al cual desea copiar un resultado de la subrutina Los parmetros de retorno son opcionales. Introduzca mltiples parmetros de retorno, si es necesario.
Bloque de funciones
Parmetros de entrada Parmetros de retorno
Los operandos son iguales a los de la instruccin JSR de lgica de escalera de rels.
437
Captulo 11
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
ATENCIN
Para cada parmetro en una instruccin SBR o RET, use el mismo tipo de datos (inclusive las dimensiones de la matriz) que el parmetro correspondiente en la instruccin JSR. El uso de tipos de datos diferentes puede producir resultados inesperados.
Operandos de SBR: La instruccin SBR debe ser la primera instruccin en una lgica de
escalera de rels o rutina de texto estructurado.
Descripcin el tag en esta rutina al cual desea copiar el parmetro de entrada correspondiente proveniente de la instruccin JSR.
Texto estructurado
Los operandos son iguales a los de la instruccin SBR de lgica de escalera de rels.
Bloque de funciones
Parmetros
Los operandos son iguales a los de la instruccin SBR de lgica de escalera de rels.
438
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Captulo 11
Descripcin datos de esta rutina que usted desea copiar al parmetro de retorno correspondiente en la instruccin JSR.
Texto estructurado
Los operandos son iguales a los de la instruccin RET de lgica de escalera de rels.
Bloque de funciones
Parmetros
Los operandos son iguales a los de la instruccin RET de lgica de escalera de rels.
439
Captulo 11
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
No use una instruccin JSR para llamar (ejecutar) la rutina principal. Usted puede colocar una instruccin JSR en la rutina principal o cualquier otra rutina. Si usted usa una instruccin JSR para llamar a la rutina principal y posteriormente coloca una instruccin RET en la rutina principal, se produce un fallo mayor (tipo 4, cdigo 31).
SBR JSR 1. Si desea copiar datos a un tag en la subrutina, introduzca un parmetro de entrada. 2. Si desea copiar un resultado de la subrutina a un tag en esta rutina, introduzca un parmetro de retorno. 3. Introduzca la cantidad necesaria de parmetros de entrada y retorno. RET JSR RET
RET
1. Si la instruccin JSR tiene un parmetro de retorno, introduzca una instruccin RET. 2. Coloque la instruccin RET como la ltima instruccin en la rutina. 3. Para cada parmetro de retorno en la instruccin JSR, introduzca un parmetro de retorno para enviar la instruccin JSR. 4. En una rutina de lgica de escalera, coloque instrucciones RET adicionales para salir de la subrutina con base en diferentes condiciones de entrada, si es necesario. (Las rutinas de bloque de funciones slo permiten una instruccin RET).
440
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Captulo 11
No hay restricciones, excepto la memoria del controlador, para el nmero de rutinas anidadas que pueden existir ni para el nmero de parmetros que se pasan o retornan.
nivel 1 subrutina action_1 rutina principal action_1 JSR SBR action_2 JSR SBR action_3 JSR SBR nivel 2 subrutina action_2 nivel 3 subrutina action_3
RET
RET
RET
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo:
Ocurrir un fallo mayor si la instruccin JSR tiene menos parmetros de entrada que la instruccin SBR la instruccin JSR salta a una rutina de fallo la instruccin RET tiene menos parmetros de retorno que la instruccin JSR la rutina principal contiene una instruccin RET Tipo de fallo 4 Cdigo de fallo 31
El controlador ejecuta todas las subrutinas independientemente de la condicin del rengln. Para asegurar que todos los renglones en la subrutina estn previamente escaneados, el controlador ignora las instrucciones RET. (es decir, las instrucciones RET no salen de la subrutina). En las versiones 6.x y anteriores, se pasan los parmetros de entrada y retorno. En las versiones 7.x y posteriores, no se pasan los parmetros de entrada y retorno. Si existen llamadas recursivas a la misma subrutina, la subrutina es preescaneada slo la primera vez. Si existen mltiples llamadas (no recursivas) a la misma subrutina, la subrutina es preescaneada cada vez. La condicin de salida de rengln se establece en falso (lgica de escalera de rels solamente).
La subrutina no se ejecuta. Las salidas en la subrutina permanecen en su ltimo estado. La condicin de salida de rengln se establece como falsa.
n. a.
441
Captulo 11
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Accin de lgica de escalera de rels La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera.
EnableIn se establece
n. a.
ejecucin de la instruccin
parmetros de entrada no s JSR copia los parmetros de entrada en los tags SBR apropiados
no
no
s fin de la subrutina
no la condicin de salida de rengln se establece como falsa continuar ejecutando la subrutina fin la condicin de salida de rengln se establece como verdadera la ejecucin de la lgica regresa a JSR
post-escn
442
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Captulo 11
Bloque de funciones
Condicin: preescn primer escn de instruccin ejecucin normal Accin Ninguna. Ninguna. 1. Si la rutina contiene una instruccin SBR, el controlador primero ejecuta la instruccin SBR. 2. El controlador enclava todos los valores de datos en las IREF. 3. El controlador ejecuta los otros bloques de funcin en el orden determinado por su cableado. Esto incluye otras instrucciones JSR. 4. El controlador escribe salidas en las OREF. 5. Si la rutina contiene una instruccin RET, el controlador ejecuta la instruccin RET por ltimo. post-escn Se llama la subrutina. Si la rutina es una rutina SFC, la rutina se inicializa de la misma manera que durante el preescn.
443
Captulo 11
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Subrutina
Texto estructurado
Rutina Rutina principal Subrutina Programa JSR(routine_1,2,value_1,value_2,float_value_1); SBR(value_a,value_b); <statements>; RET(float_a);
444
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Captulo 11
Subroutine_1 Cuando def est activado, la instruccin RET retorna value_1 al parmetro cookies_1 de JSR y el resto de la subrutina no se escanea.
Cuando def est desactivado (rengln previo) y ghi est activado, la instruccin RET retorna value_2 al parmetro cookies_1 de JSR y el resto de la subrutina no se escanea.
Cuando def y ghi estn desactivados (renglones previos), la instruccin RET retorna value_3 al parmetro cookies_1 de JSR.
445
Captulo 11
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
42972
1. Los valores en Add_Input_1, Add_Input_2 y Add_Input_3 se copian en Input_A, Input_B y Input_C, respectivamente.
42973
2. Las instrucciones ADD suman Input_A, Input_B y Input_C, y colocan el resultado en Sum_A_B_C.
446
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Captulo 11
La instruccin JXR ejecuta una rutina externa. Esta instruccin slo es compatible con los controladores SoftLogix5800.
.
Operando Nombre de rutina externa Tipo ROUTINE Formato nombre tag inmediato tag tag de matriz Descripcin rutina externa que se va a ejecutar estructura de control (ver la siguiente pgina) datos de esta rutina que desea copiar a una variable en la rutina externa Los parmetros son opcionales. Introduzca mltiples parmetros, si es necesario. Puede tener hasta 10 parmetros.
Control de rutina EXT_ROUTINE_ externa CONTROL Parmetro BOOL SINT INT DINT REAL estructura Parmetro de retorno BOOL SINT INT DINT REAL
tag
el tag en esta rutina al cual desea copiar un resultado de la rutina externa El parmetro de retorno es opcional Slo puede tener un parmetro de retorno
447
Captulo 11
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Estructura EXT_ROUTINE_CONTROL
Mnemnico ErrorCode Tipo de datos SINT Descripcin Si ocurre un error, este valor identifica el error. Los valores vlidos son 0-255. Este valor indica el nmero de parmetros asociados con esta instruccin. Esta matriz contiene definiciones de los parmetros que se van a pasar a la rutina externa. La instruccin puede pasar hasta 10 parmetros. Este valor contiene definiciones del parmetro de retorno de la rutina externa. Slo hay un parmetro de retorno. Cuando se establece, el bit de habilitacin indica que la instruccin JXR est habilitada. Si se establece, este bit indica que se introdujo un parmetro de retorno para la instruccin. Si se borra, este bit indica que no se introdujo un parmetro de retorno para la instruccin. El bit de efectuado se establece cuando la rutina externa se ha ejecutado una vez hasta el final. Implementacin No hay cdigos de error predefinidos. El encargado del desarrollo de la rutina externa debe proporcionar los cdigos de error. Visualizacin solamente esta informacin proviene de la entrada de la instruccin. Visualizacin solamente esta informacin proviene de la entrada de la instruccin.
NumParams ParameterDefs
ReturnParamDef
Visualizacin solamente esta informacin proviene de la entrada de la instruccin. La rutina externa establece este bit. Visualizacin solamente esta informacin proviene de la entrada de la instruccin.
EN ReturnsValue
DN
BOOL
ER
BOOL
La rutina externa establece este bit. El bit de error se establece si ocurre un error. La instruccin detiene la ejecucin hasta que el programa borra el bit de error. Este bit identifica si ste es el primer escn despus de que el controlador pas al modo de marcha. Use FirstScan para inicializar la rutina externa, si es necesario. Habilitacin de salida. Entrada de habilitacin. El controlador establece este bit para reflejar el estado de escn.
FirstScan
BOOL
EnableOut EnableIn
BOOL BOOL
La rutina externa establece este bit. El controlador establece este bit para reflejar la condicin de entrada del rengln. La instruccin se ejecuta independientemente de la condicin del rengln. El encargado del desarrollo de la rutina externa debe monitorear este estado y actuar como corresponde. La rutina externa o el programa de usuario pueden establecer estos bits. El controlador establece estos bits para reflejar el estado de escn.
Estos bits estn disponibles para el usuario. El controlador no inicializa estos bits. Estos bits identifican el tipo de escn actual: Valores de bit: Tipo de escn: 00 01 10 Normal Preescn Post-escn (no aplicable a programas de lgica de escalera de rels)
448
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Captulo 11
Indicadores de estado aritmtico: Los indicadores de estado aritmtico no son afectados. Condiciones de fallo:
Ocurrir un fallo mayor si ocurre una excepcin en la rutina externa DLL el DLL no pudo cargarse el punto de entrada no se encontr en el DLL Tipo de fallo 4 Cdigo de fallo: 88
449
Captulo 11
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Texto estructurado
ninguno Se tienen que introducir los parntesis () despus del mnemnico de la instruccin, aunque no haya operandos.
La condicin de salida de rengln se establece como Ninguna. falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. n. a. n. a.
EnableIn se establece
n. a.
450
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Captulo 11
Texto estructurado
TND();
451
Captulo 11
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
La instruccin MCR, usada en parejas, crea una zona de programa que puede inhabilitar todos los renglones dentro de las instrucciones MCR.
Descripcin: Cuando la zona MCR se habilita, los renglones en la zona MCR son
escaneados para determinar la presencia de condiciones normales verdaderas o falsas. Cuando se inhabilita, el controlador todava escanea renglones dentro de una zona MCR, pero el tiempo de escn se reduce debido a que las salidas no retentivas en la zona estn inhabilitadas. La condicin de entrada de rengln es falsa para todas las instrucciones dentro de la zona MCR inhabilitada. Cuando programe una zona MCR, tenga presente que: Debe terminar la zona con una instruccin MCR incondicional. No puede anidar una zona MCR dentro de otra. No salte a una zona MCR. Si la zona es falsa, saltar a la zona activa la zona desde el punto en el que usted salt al final de la zona. Si una zona MCR contina al final de la rutina, usted no tiene que programar una instruccin MCR al final de la zona. La instruccin MCR no sustituye a un rel de control maestro con cableado permanente que proporciona capacidad de paro de emergencia. Usted debe instalar un rel de control maestro con cableado permanente para proporcionar desactivacin de emergencia de la alimentacin elctrica de E/S. No superponga ni anide zonas MCR. Cada zona MCR debe estar separada y completa. Si se superponen o se anidan, podra ocurrir una operacin inesperada de la mquina con posible dao al equipo o lesiones personales. Coloque las operaciones crticas fuera de la zona MCR. Si inicia instrucciones tales como temporizadores en una zona MCR, se detiene la ejecucin de la instruccin cuando la zona se inhabilita y el temporizador se borra.
ATENCIN
452
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Captulo 11
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. Las instrucciones en la zona son escaneadas, pero la condicin de entrada de rengln es falsa y las salidas no retentivas en la zona se inhabilitan. condicin de entrada de rengln es verdadera La condicin de salida de rengln se establece como verdadera. Las instrucciones en la zona se escanean normalmente. post-escn La condicin de salida de rengln se establece como falsa.
453
Captulo 11
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
La instruccin UID y la instruccin UIE funcionan juntas para evitar que otras tareas interrumpan una cantidad pequea de renglones crticos.
Texto estructurado
ninguno Se tienen que introducir los parntesis () despus del mnemnico de instruccin, aunque no haya operandos.
454
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Captulo 11
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. EnableIn se establece n. a. EnableIn siempre se establece. La instruccin se ejecuta. ejecucin de la instruccin La instruccin UID evita la interrupcin por parte de tareas de mayor prioridad. La instruccin UIE habilita la interrupcin por parte de tareas de mayor prioridad. post-escn La condicin de salida de rengln se establece como falsa. Ninguna. Accin de texto estructurado Ninguna. n. a. n. a.
error_bit error_bit
FSC FSC FileSearch/Compare Search/Compare File error_check Control error_check Control Length 10 Length Position 8 Position ALL Mode ALL Mode error_code=error_list[error_check.POS] Expression Expression error_code=error_list[error_check.POS]
EN EN DN ER ER
error_check.FD error_check.FD
alarm alarm
UIE
Texto estructurado
UID(); <statements> UIE();
455
Captulo 11
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
456
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Captulo 11
457
Captulo 11
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
EOT(data_bit);
Texto estructurado
Los operandos son iguales a los de la instruccin EOT de lgica de escalera de rels.
La condicin de salida de rengln se establece como Ninguna. falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. n. a. n. a.
EnableIn se establece
n. a.
La instruccin retorna el valor del bit de datos a la rutina que origin la llamada. La condicin de salida de rengln se establece como Ninguna. falsa.
458
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Captulo 11
Texto estructurado
state := limit_switch1 AND interlock_1;
459
Captulo 11
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Texto estructurado
SFP(SFCRoutineName, TargetState);
Los operandos son iguales a los de la instruccin SFP de lgica de escalera de rels.
460
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Captulo 11
Ejecucin:
Condicin: preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. EnableIn se establece n. a. EnableIn siempre se establece. La instruccin se ejecuta. ejecucin de la instruccin post-escn La instruccin pone en pausa o reanuda la ejecucin de la rutina SFC especificada. La condicin de salida de rengln se establece como falsa. Ninguna. Accin de texto estructurado Ninguna. n. a. n. a.
Ejemplo:
Si sfc_en_p se establece, se pone en pausa la rutina SFC llamada normal. Reinicie el SFC cuando se establezca sfc_en_e.
Texto estructurado
Se pone en pausa la rutina SFC. IF (sfp_en_p) THEN
461
Captulo 11
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Texto estructurado
SFR(SFCRoutineName,StepName);
Los operandos son iguales a los de la instruccin SFR de lgica de escalera de rels.
462
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Captulo 11
Condiciones de fallo:
Ocurrir un fallo mayor si: el tipo de rutina no es una rutina SFC el paso objetivo especificado no existe en la rutina SFC Tipo de fallo 4 4 Cdigo de fallo 85 89
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. EnableIn se establece n. a. EnableIn siempre se establece. La instruccin se ejecuta. ejecucin de la instruccin post-escn La instruccin restablece la rutina SFC especificada. La instruccin restablece la rutina SFC especificada. La condicin de salida de rengln se establece como falsa. Ninguna. Accin de texto estructurado Ninguna. n. a. n. a.
Texto estructurado
IF shutdown THEN SFR(mySFC,initialize); END_IF;
463
Captulo 11
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
EVENT(task_name);
Texto estructurado
Los operandos son iguales a los de la instruccin EVENT de lgica de escalera de rels.
464
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Captulo 11
El controlador no borra los bits del atributo Status una vez que stos estn establecidos. Para usar un bit para nueva informacin de estado, debe borrar manualmente el bit. Use una instruccin de establecer valor del sistema (Set System Value (SSV)) para establecer el atributo en un valor diferente.
465
Captulo 11
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Programa B
Programa B
IF Shut_Down_Line AND NOT Shut_Down_Line_One_Shot THEN EVENT (Shut_Down); END_IF; Shut_Down_Line_One_Shot := Shut_Down_Line;
466
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Captulo 11
Ejemplo 2: El siguiente ejemplo usa una instruccin EVENT para inicializar una
tarea de evento. (Otro tipo de evento normalmente activa la tarea de evento).
Tarea continua Si Initialize_Task_1 = 1 entonces La instruccin ONS limita la ejecucin de la instruccin EVENT a un escn. La instruccin EVENT activa una ejecucin de Task_1 (tarea de evento).
Task_1 (tarea de evento) La instruccin GSV establece Task_Status (tag DINT) = atributo Status para la tarea de evento. En el atributo Instance Name, THIS significa el objeto TASK para la tarea en la cual est la instruccin (o sea Task_1).
Si Task_Status.0 = 1, significa que una instruccin EVENT activ la tarea de evento (es decir, cuando la tarea continua ejecuta su instruccin EVENT para inicializar la tarea de evento). La instruccin RES pone en cero un contador que usa la tarea de evento.
El controlador no borra los bits del atributo Status una vez que stos estn establecidos. Para usar un bit para nueva informacin de estado, debe borrar el bit manualmente. Si Task_Status.0 = 1, borre ese bit. La instruccin OTU establece Task_Status.0 = 0. La instruccin SSV establece el atributo Status de la tarea THIS (Task_1) = Task_Status. Esto incluye el bit borrado.
467
Captulo 11
Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)
Notas:
468
Captulo
12
Instrucciones For/Break
(FOR, FOR...DO, BRK, EXIT, RET)
Introduccin
Si desea Ejecutar repetidamente una rutina.
Use la instruccin FOR para llamar repetidamente una subrutina. Use la instruccin BRK para interrumpir la ejecucin de una subrutina.
Use esta instruccin Para obtener FOR...DO(1) Disponible en estos lenguajes lgica de escalera de rels texto estructurado lgica de escalera de rels texto estructurado lgica de escalera de rels 474 473 Vea la pgina 470
BRK EXIT(1)
RET
469
Captulo 12
For (FOR)
Operandos:
nombre de la rutina que se ejecuta rutina tag inmediato tag cuenta cuntas veces la rutina se ha ejecutado valor en que se comienza el ndice
Texto estructurado
FOR count:= initial_value TO final_value BY increment DO <statement>; END_FOR;
Use la construccin FOR...DO. Consulte Apndice C, Programacin de texto estructurado para obtener informacin sobre construcciones de texto estructurado.
Descripcin:
No use una instruccin FOR para llamar (ejecutar) la rutina principal. Usted puede colocar una instruccin FOR en la rutina principal o en cualquier otra rutina. Si usted usa una instruccin FOR para llamar a la rutina principal y posteriormente colocar una instruccin RET en la rutina principal, se produce un fallo mayor (tipo 4, cdigo 31).
IMPORTANTE
470
Captulo 12
Cuando se habilita, la instruccin FOR ejecuta repetidamente la rutina hasta que el valor Index excede el valor Terminal. Esta instruccin no pasa parmetros a la rutina. Cada vez que la instruccin FOR ejecuta la rutina, aade el Step size al Index. Tenga cuidado de no hacer lazos demasiadas veces en un solo escn. Un nmero excesivo de repeticiones puede hacer que el temporizador de control (watchdog) exceda el tiempo de espera, lo cual causa un fallo mayor.
Ejecucin:
Condicin preescn Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. El controlador ejecuta la subrutina una vez. Si existen instrucciones FOR recursivas a la misma subrutina, la subrutina es preescaneada slo la primera vez. Si existen mltiples instrucciones FOR (no recursivas) a la misma subrutina, la subrutina es preescaneada cada vez. condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
471
Captulo 12
index = initial_value
no
no
ir a fin
fin
ejecutar rutina ndice = (index + step_size) la condicin de salida de rengln se establece como verdadera
fin
post-escn
472
Captulo 12
Interrumpir (BRK)
Operandos:
La instruccin BRK interrumpe la ejecucin de una rutina que fue llamada por una instruccin FOR.
Texto estructurado
Use la declaracin EXIT en una construccin de lazo. Consulte el Apndice B para obtener informacin sobre construcciones de texto estructurado.
Ejemplo: Una vez habilitada, la instruccin BRK hace que se deje de ejecutar la
rutina actual y retorna a la instruccin que sigue a la instruccin FOR que origin la llamada.
473
Captulo 12
Retornar (RET)
Operandos:
Descripcin:
IMPORTANTE
No coloque una instruccin RET en la rutina principal. Si usted coloca una instruccin RET en la rutina principal, ocurre un fallo mayor (tipo 4, cdigo 31).
Cuando se habilita, la instruccin RET retorna a la instruccin FOR. La instruccin FOR incrementa el valor de Index por una cantidad equivalente al Step Size y ejecuta la subrutina nuevamente. Si el valor de Index excede el valor Terminal, se completa la instruccin FOR y la ejecucin pasa a la instruccin que sigue a la instruccin FOR. La instruccin FOR no usa parmetros. La instruccin FOR ignora cualquier parmetro que usted introduzca en una instruccin RET. Tambin puede usar una instruccin TND para terminar la ejecucin de una subrutina.
Ejecucin:
Condicin: preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. Retorna los parmetros especificados a la rutina que origin la llamada. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
474
Captulo 12
value_2 en un valor de 1 cada vez. Cuando value_2 es > 10 o una instruccin BRK est habilitada, la instruccin FOR ya no ejecuta routine_2. La instruccin RET retorna a la instruccin FOR que origin la llamada. La instruccin FOR ejecuta la subrutina nuevamente e incrementa el valor de Index en una cantidad equivalente a Step Size o, si el valor de Index excede el valor de Terminal, la instruccin FOR se completa y la ejecucin pasa a la instruccin que sigue a la instruccin FOR.
subrutina
475
Captulo 12
Notas:
476
Captulo
13
Instrucciones especiales
(FBC, DDT, DTR, PID)
Introduccin
Si desea Comparar datos con una buena referencia conocida y registrar las incongruencias. Comparar datos con una buena referencia conocida, registrar las incongruencias y actualizar la referencia para que sea igual al origen. Pasar los datos de origen a travs de una mscara y comparar los resultados con los datos de referencia. Seguidamente escribir el origen en la referencia para la siguiente comparacin. Controlar un lazo PID.
DTR
494
PID
497
477
Captulo 13
La instruccin FBC compara los bits en una matriz de origen con los bits en una matriz de referencia.
tag de matriz matriz que se va a comparar con la referencia. no use CONTROL.POS en el subndice
Reference
DINT
tag de matriz matriz que se va a comparar con el origen. no use CONTROL.POS en el subndice
Result
DINT
tag de matriz matriz para almacenar el resultado no use CONTROL.POS en los subndices
estructura de control para la comparacin nmero de bits que se van a comparar posicin actual en el origen el valor inicial es tpicamente 0
estructura de control para los resultados nmero de ubicaciones de almacenamiento en el resultado posicin actual en el resultado el valor inicial es tpicamente 0
ATENCIN
Use tags diferentes para la estructura de control de comparacin y para la estructura de control de resultado. El usar el mismo tag para ambos podra resultar en una operacin inesperada y causar dao al equipo y/o lesiones personales.
478
Captulo 13
Estructura COMPARE
Mnemnico: .EN .DN .FD Tipo de datos BOOL BOOL BOOL Descripcin: El bit de habilitacin indica que la instruccin FBC est habilitada. El bit de efectuado se establece cuando la instruccin FBC compara el ltimo bit en las matrices de origen y referencia. El bit de encontrado se establece cada vez que la instruccin FBC registra una incongruencia (operacin una a la vez) o despus de registrar todas las incongruencias (operacin todas por escn). El bit de inhibicin indica el modo de bsqueda de FBC. 0 = modo de todas 1 = modo de una incongruencia a la vez .ER BOOL El bit de error se establece si la comparacin .POS < 0, la comparacin .LEN < 0, el resultado .POS < 0 o el resultado .LEN < 0. La instruccin detiene la ejecucin hasta que el programa borra el bit .ER. El valor de longitud identifica el nmero de bits que se van a comparar. El valor de posicin identifica el bit actual.
.IN
BOOL
.LEN .POS
DINT DINT
Estructura RESULT
Mnemnico .DN .LEN .POS Tipo de datos BOOL DINT DINT Descripcin El bit de efectuado se establece cuando la matriz resultado est llena. El valor de longitud identifica el nmero de ubicaciones de almacenamiento en la matriz resultado. El valor de posicin identifica la posicin actual en la matriz resultado.
IMPORTANTE
479
Captulo 13
480
Captulo 13
Ejecucin:
Condicin preescn
el bit compare.EN se borra el bit compare.FD se borra
compare.DN = 0
compare.DN = 1 el bit compare.DN se borra el valor compare.POS se borra el bit result.DN se borra el valor result.POS se borra
fin
481
Captulo 13
compare.DN = 0
compare.DN = 1 el bit compare.DN se borra el valor compare.POS se borra el bit result.DN se borra el valor result.POS se borra
fin
482
Captulo 13
Condicin
condicin de entrada de rengln es verdadera
compare.EN = 1
ir a la salida
compare.LEN 0
exit
compare.POS < 0
ir a la salida
pgina 484
483
Captulo 13
Condicin
comparar
compare.POS compare.LEN
ir a la salida
pgina 483
no result.DN = 1 source[compare.POS] = reference[compare.POS] no el bit compare.FD se establece examine el bit result.DN bit el bit result.DN se borra el valor result.POS se borra
s compare.POS = compare.POS + 1
result.DN = 0
s result.POS < 0
no
result.LEN 0
no
s fallo mayor
ir a la salida
pgina 483
no
post-escn
484
Captulo 13
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
485
Captulo 13
La instruccin DDT compara los bits en una matriz de origen con los bits en una matriz de referencia para determinar cambios de estado.
ATENCIN
Use tags diferentes para la estructura de control de comparacin y para la estructura de control de resultado. El usar el mismo tag para ambos podra resultar en un comportamiento inesperado y causar dao al equipo y/o lesiones personales.
486
Captulo 13
Estructura COMPARE
Mnemnico .EN .DN .FD Tipo de datos BOOL BOOL BOOL Descripcin El bit de habilitacin indica que la instruccin DDT est habilitada. El bit de efectuado se establece cuando la instruccin DDT compara el ltimo bit en las matrices de origen y referencia. El bit de encontrado se establece cada vez que la instruccin DDT registra una incongruencia (operacin una a la vez) o despus de registrar todas las incongruencias (operacin todas por escn). El bit de inhibicin indica el modo de bsqueda de DDT. 0 = modo de todas 1 = modo de una incongruencia a la vez .ER BOOL El bit de error se establece si la comparacin .POS < 0, la comparacin .LEN < 0, el resultado .POS < 0 o el resultado .LEN < 0. La instruccin detiene la ejecucin hasta que el programa borra el bit .ER. El valor de longitud identifica el nmero de bits que se van a comparar. El valor de posicin identifica el bit actual.
.IN
BOOL
.LEN .POS
DINT DINT
Estructura RESULT
Mnemnico .DN .LEN .POS Tipo de datos BOOL DINT DINT Descripcin El bit de efectuado se establece cuando la matriz resultado est llena. El valor de longitud identifica el nmero de ubicaciones de almacenamiento en la matriz resultado. El valor de posicin identifica la posicin actual en la matriz resultado.
IMPORTANTE
487
Captulo 13
488
Captulo 13
Ejecucin:
Condicin: preescn
el bit compare.EN se borra el bit compare.FD se borra
compare.DN = 0
compare.DN = 1 el bit compare.DN se borra el valor compare.POS se borra el bit result.DN se borra el valor result.POS se borra
fin
489
Captulo 13
compare.DN = 0
compare.DN = 1 el bit compare.DN se borra el valor compare.POS se borra el bit result.DN se borra el valor result.POS se borra
fin
490
Captulo 13
compare.EN = 1
ir a la salida
compare.EN = 0 El bit compare.EN se establece examine el bit compare.DN bit compare.DN = 1 ir a la salida
compare.LEN 0
no
salida
compare.POS < 0
ir a la salida
pgina 492
491
Captulo 13
Condicin:
comparar
compare.POS compare.LEN
ir a la salida
pgina 491
no result.DN = 1 source[compare.POS] = reference[compare.POS] no compare.FD bit se establece reference[compare.POS] = source[compare.POS] examine el bit result.DN bit el bit result.DN se borra el valor result.POS se borra
s compare.POS = compare.POS + 1
result.DN = 0
s result.POS < 0
no
s result.LEN 0
no
s fallo mayor
ir a la salida
pgina 483
no
result.POS result.LEN
post-escn
492
Captulo 13
origen 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 array_dint1 referencia (antes de comparacin) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 array_dint2 resultado array_dint3 referencia (despus de comparacin) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 array_dint2 5 3
493
Captulo 13
La instruccin DTR pasa el valor de origen a travs de una mscara y compara el resultado con el valor de referencia.
ATENCIN
494
Captulo 13
no
la referencia se establece igual que el origen enmascarado la condicin de salida de rengln se establece como verdadera
post-escn
495
Captulo 13
ejemplo 2
0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
referencia escn actual escn previo 0 0 1 1 8 8 3 3 value_2 0 0 1 1 8 8 7 3 escn actual escn previo
496
Captulo 13
La instruccin PID controla una variable del proceso, tal como flujo, presin, temperatura o nivel.
Tieback
inmediato tag
(opcional) salida de una estacin manual/automtica que est pasando por alto la salida del controlador Introduzca 0 si no desea usar este parmetro.
Control variable
tag
valor que va al dispositivo de control final (vlvula, regulador, etc.) Si usted est usando la banda muerta, la variable Control debe ser REAL o se forzar a 0 cuando el error est dentro de la banda muerta.
PID
estructura
(opcional) tag PID para el PID maestro Si est realizando control en cascada y este PID es un lazo esclavo, introduzca el nombre del PID maestro. Introduzca 0 si no desea usar este parmetro.
Inhold bit
BOOL
tag
(opcional) estado actual del bit mantenido desde un canal de salida analgica 1756 para permitir un reinicio sin problemas Introduzca 0 si no desea usar este parmetro.
Inhold value
SINT INT
tag
(opcional) valor de repeticin de lectura de datos desde un canal de salida analgica 1756 para permitir un reinicio sin problemas Introduzca 0 si no desea usar este parmetro.
DINT REAL
497
Captulo 13
Tipo
Formato
Descripcin muestra el valor actual del punto de ajuste muestra el valor actual de la variable del proceso escalada muestra el valor de porcentaje de la salida actual
Texto estructurado
PID(PID,ProcessVariable, Tieback,ControlVariable, PIDMasterLoop,InholdBit, InHoldValue);
Los operandos son iguales que los de la instruccin PID de lgica de escalera de rels. Sin embargo, usted especifica Setpoint, Process Variable y Output % accediendo a los miembros .SP, .PV. y .OUT de la estructura PID, en lugar de incluir valores en la lista de operandos.
Estructura PID
Mnemnico: .CTL Tipo de datos DINT Descripcin El miembro .CTL proporciona acceso a los miembros de estado (bits) en una palabra de 32 bits. La instruccin PID establece los bits 07 - 15. Este bit 31 30 29 28 27 26 25 24 23 22 21 20 Este bit: 15 14 13 12 11 10 09 08 07 .SP .KP REAL REAL punto de ajuste independiente dependiente ganancia proporcional (sin unidades) ganancia de controlador (sin unidades) Es este miembro .EN .CT .CL .PVT .DOE .SWM .CA .MO .PE .NDF .NOBC .NOZC Es este miembro, que la instruccin PID establece .INI .SPOR .OLL .OLH .EWD .DVNA .DVPA .PVLA .PVHA
498
Captulo 13
Mnemnico: .KI .KD .BIAS .MAXS .MINS .DB .SO .MAXO .MINO .UPD .PV .ERR .OUT .PVH .PVL .DVP .DVN .PVDB .DVDB .MAXI .MINI .TIE .MAXCV .MINCV .MINTIE .MAXTIE
Tipo de datos REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL REAL
Descripcin independiente dependiente independiente dependiente ganancia integral (1/segundo) tiempo de accin integral (minutos por repeticin) ganancia derivativa (segundos) tiempo de accin derivada (minutos)
% de ganancia anticipativa o polarizacin valor mximo de escalado de unidades de ingeniera valor mnimo de escalado de unidades de ingeniera unidades de ingeniera de banda muerta % salida establecida lmite mximo de salida (% de salida) lmite mnimo de salida (% de salida) tiempo de actualizacin del lazo (segundos) valor PV escalado valor de error escalado % de salida lmite de alarma alta de variable del proceso lmite de alarma baja de variable del proceso lmite de alarma de desviacin positiva lmite de alarma de desviacin negativa banda muerta de alarma de variable del proceso banda muerta de alarma de desviacin valor PV mximo (entrada no escalada) valor PV mnimo (entrada no escalada) valor retenido para control manual valor CV mximo (correspondiente a 100%) valor CV mnimo (correspondiente a 0%) valor retenido mnimo (correspondiente a 100%) valor retenido mximo (correspondiente a 0%)
499
Captulo 13
Mnemnico: .DATA
Descripcin El miembro .DATA almacena: Elemento: .DATA[0] .DATA[1] .DATA[2] .DATA[3] .DATA[4] .DATA[5] .DATA[6] .DATA[7] .DATA[8] .DATA[9] .DATA[10] .DATA[11] .DATA[12] .DATA[13] .DATA[14] .DATA[15] .DATA[16] Descripcin acumulacin integral valor temporal de suavizado derivativo valor .PV previo valor .ERR previo valor .SP previo vlido constante de escalado porcentual constante de escalado .PV constante de escalado derivativo valor .KP previo valor .KI previo valor .KD previo .KP de ganancia dependiente .KI de ganancia dependiente .KD de ganancia dependiente valor .CV previo constante de desactivacin de escalado .CV constante de desactivacin de escalado de valor retenido
.EN .CT .CL .PVT .DOE .SWM .CA .MO .PE .NDF .NOBC
BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL
habilitado tipo cascada (0=esclavo; 1=maestro) lazo en cascada (0=no; 1=s) seguimiento de variable de proceso (0=no; 1=s) derivada de (0=PV; 1=error) modo manual de software (0=no-auto; 1=s- sw manual) accin de control (0 significa E=SP-PV; 1 significa E=PV-SP) modo de estacin (0=automtico; 1=manual) Ecuacin PID (0=independiente; 1=dependiente) sin suavizado derivativo (0=filtro de suavizado derivativo habilitado; 1=filtro de suavizado derivativo inhabilitado) sin clculo en base a datos originales de polarizacin (0=clculo en base a datos originales de polarizacin habilitado; 1=clculo en base a datos originales de polarizacin inhabilitado) sin banda muerta de cruce por cero (0=banda muerta de cruce por cero; 1=banda muerta sin cruce por cero) PID inicializado (0=no; 1=s) punto de ajuste fuera de rango (0=no; 1=s) VC est por debajo del lmite de salida mnimo (0=no; 1=s) VC est por arriba del lmite de salida mximo (0=no; 1=s) el error est dentro de la banda muerta (0=no; 1=s) la desviacin tiene alarma baja (0=no; 1=s)
500
Captulo 13
Descripcin la desviacin tiene alarma alta (0=no; 1=s) PV tiene alarma baja (0=no; 1=s) PV tiene alarma alta (0=no; 1=s)
Tipo de fallo 4 4
Cdigo de fallo 35 36
501
Captulo 13
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin Accin La condicin de salida de rengln se establece como Ninguna. falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. EnableIn se establece n. a. EnableIn siempre se establece. La instruccin se ejecuta. ejecucin de la instruccin post-escn La instruccin ejecuta el lazo PID. La instruccin ejecuta el lazo PID. La condicin de salida de rengln se establece como Ninguna. falsa. n. a. n. a.
Despus de introducir la instruccin PID y especificar la estructura de PID, se usan las fichas de configuracin para especificar cmo debe funcionar la instruccin PID.
502
Captulo 13
Especifique el ajuste
Seleccione la ficha Tuning. Los cambios surten efecto al hacer clic en otro campo, en OK, en Apply o al presionar Enter.
En este campo Setpoint (SP) % salida establecida Especifique: Introduzca un valor de punto de ajuste (.SP). Introduzca un porcentaje de salida establecido (.SO). En el modo manual de software, este valor se usa para la salida. En el modo auto, este valor muestra el % de salida. Output bias Proportional gain (Kp) Introduzca un porcentaje de polarizacin de salida (.BIAS). Introduzca la ganancia proporcional (.KP). Para ganancias independientes, sta es la ganancia proporcional (sin unidades). Para ganancias dependientes, sta es la ganancia del controlador (sin unidades). Integral gain (Ki) Introduzca la ganancia integral (.KI). Para ganancias independientes, sta es la ganancia integral (1/segundo). Para ganancias dependientes, ste es el tiempo de accin integral (minutos por repeticin). Derivative time (Kd) Introduzca la ganancia derivativa (.KD). Para ganancias independientes, sta es la ganancia derivativa (segundos). Para ganancias dependientes, ste es el valor en minutos del tiempo de accin derivada). Manual Mode Seleccione ya sea manual (.MO) o manual de software (.SWM). El modo manual tiene precedencia sobre el modo manual de software, si ambos estn seleccionados.
503
Captulo 13
Especifique la configuracin
Seleccione la ficha Configuration. Debe hacer clic en OK o Apply para que los cambios surtan efecto.
En este campo PID equation Especifique Seleccione ganancias independientes o dependientes (.PE). Use independientes cuando desee que las tres ganancias (P, I y D) operen de manera independiente. Use dependientes cuando desee una ganancia total del controlador que afecte a los tres trminos (P, I y D). Control action Derivative of Seleccione ya sea E=PV-SP o E=SP-PV para la accin de control (.CA). Seleccione VP o error (.DOE). Use la derivada de VP para eliminar los picos de salida causados por cambios del punto de ajuste. Use la derivada de error para respuestas rpidas a cambios del punto de ajuste cuando el algoritmo puede tolerar sobreimpulsos. Loop update time CV high limit CV low limit Deadband value No derivative smoothing No bias calculation No zero crossing in deadband PV tracking Cascade loop Cascade type Introduzca el tiempo de actualizacin (.UPD) para la instruccin. Introduzca un lmite alto para la variable de control (.MAXO). Introduzca un lmite bajo para la variable de control (.MINO). Introduzca un valor de banda muerta (.DB). Habilite o inhabilite esta seleccin (.NDF). Habilite o inhabilite esta seleccin (.NOBC). Habilite o inhabilite esta seleccin (.NOZC). Habilite o inhabilite esta seleccin (.PVT). Habilite o inhabilite esta seleccin (.CL). Si el lazo en cascada est habilitado, seleccione esclavo o maestro (.CT).
Especificacin de alarmas
Seleccione la ficha Alarms. Debe hacer clic en OK o Apply para que los cambios surtan efecto.
En este campo PV alta PV low PV deadband positive deviation negative deviation deviation deadband Especifique Introduzca un valor de alarma alta VP (.PVH). Introduzca un valor de alarma baja VP (.PVL). Introduzca un valor de banda muerta de alarma VP (.PVDB). Introduzca un valor de desviacin positiva (.DVP). Introduzca un valor de desviacin negativa (.DVN). Introduzca un valor de banda muerta de alarma de desviacin (.DVDB).
504
Captulo 13
Especificacin de escalado
Seleccione la ficha Scaling. Debe hacer clic en OK o Apply para que los cambios surtan efecto.
En este campo PV unscaled maximum PV unscaled minimum PV engineering units maximum PV engineering units minimum CV maximum CV minimum Tieback maximum Tieback minimum PID Initialized Especifique Introduzca un valor PV mximo (.MAXI) que sea igual al valor mximo sin escalado recibido desde el canal de entrada analgico para el valor PV. Introduzca un valor VP mnimo (.MINI) que sea igual al valor mnimo sin escalado recibido desde el canal de entrada analgico para el valor PV. Introduzca el valor mximo de unidades de ingeniera correspondiente a .MAXI (.MAXS) Introduzca el valor mnimo de unidades de ingeniera correspondiente a .MINI (.MINS) Introduzca un valor de CV mximo correspondiente al 100% (.MAXCV). Introduzca un valor de CV mnimo correspondiente al 0% (.MINCV). Introduzca un valor retenido mximo (.MAXTIE) que sea igual al valor mximo sin escalado recibido desde el canal de entrada analgico para el valor retenido. Introduzca un valor retenido mnimo (.MINTIE) que sea igual al valor mnimo sin escalado recibido desde el canal de entrada analgico para el valor retenido. Si usted cambia las constantes de escalado durante el modo de marcha, desactvelo para reinicializar valores internos de desactivacin de escalado (.INI).
El control de lazo cerrado PID retiene una variable del proceso en un punto de ajuste deseado. La siguiente figura muestra un ejemplo de rgimen de flujo/nivel de fluido.
punto de ajuste
detector de nivel
14271
En el ejemplo anterior, el nivel del tanque se compara con el punto de ajuste. Si el nivel es ms alto que el punto de ajuste, la ecuacin PID aumenta la variable de control y causa que se abra la vlvula de salida del tanque, reduciendo as el nivel del tanque.
505
Captulo 13
La ecuacin PID usada en la instruccin PID es una ecuacin de forma posicional con la opcin de usar ganancias independientes o dependientes. Al usar ganancias independientes, las ganancias proporcional, integral y derivativa slo afectan sus respectivos trminos proporcional, integral o derivativo especficos. Al usar ganancias dependientes, la ganancia proporcional es reemplazada con una ganancia de controlador que afecta los tres trminos. Usted puede usar cualquier forma de ecuacin para realizar el mismo tipo de control. Los dos tipos de ecuacin se proporcionan simplemente para permitirle usar el tipo de ecuacin con el que usted est ms familiarizado.
Opcin de ganancia Ganancias dependientes (estndar ISA) Derivada de error (E)
t
Ecuacin
E = SP - PV
t
CV = K C
E = PV - SP
t
Ganancias independientes
error (E)
t
E = SP - PV
t
E = PV - SP
t
506
Captulo 13
Donde:
Variable KP Descripcin ganancia proporcional (sin unidades) Kp = Kc sin unidades Ki ganancia integral (segundos -1) Para convertir entre Ki (ganancia integral) y Ti (tiempo de accin integral), use:
KC K i = ---------60 T i
Kd
ganancia derivativa (segundos) Para convertir entre Kd (ganancia derivativa) y Td (tiempo de accin derivada), use: Kd = Kc (Td) 60
KC Ti Td SP PV E BIAS VC dt
ganancia de controlador (sin unidades) tiempo de accin integral (minutos/repeticin) tiempo de accin derivada (minutos) punto de ajuste variable de proceso error [(SP-PV) o (PV-SP)] ganancia anticipativa o polarizacin variable de control tiempo de actualizacin del lazo
Si no desea usar un trmino particular de la ecuacin PID, simplemente establezca su ganancia en cero. Por ejemplo, si no desea accin derivativa, establezca Kd o Td igual a cero.
507
Captulo 13
La instruccin PID tambin proporciona automticamente transferencias sin perturbaciones desde el modo manual de software o desde el modo manual a automtico. La instruccin PID vuelve a calcular en base a datos originales el valor del trmino de acumulacin integral requerido para hacer que la salida CV rastree ya sea el valor de la salida establecida (.SO) en el modo manual de software o la entrada retenida en el modo manual. De esta manera, cuando el lazo cambia al modo automtico, la salida CV comienza desde el valor retenido o salida establecida, y no ocurre ninguna perturbacin en el valor de salida. La instruccin PID tambin puede proporcionar automticamente una transferencia sin perturbaciones de manual a automtico incluso si no se usa el control integral (es decir, Ki = 0). En este caso, la instruccin modifica el trmino .BIAS para hacer que la salida CV rastree la salida establecida o los valores retenidos. Al reanudarse el control automtico, el trmino .BIAS mantendr su valor ms reciente. Usted puede inhabilitar el clculo en base a datos originales del trmino .BIAS con slo establecer el bit .NOBC en la estructura de datos PID. Tenga en cuenta que si establece .NOBC como verdadero, la instruccin PID ya no proporciona una transferencia sin perturbaciones de manual a automtico cuando no se usa control integral.
508
Captulo 13
mayor, generalmente es suficiente para obtener un buen control. Para lazos algo ms rpidos, tales como lazos de presin o flujo, se puede requerir perodos de actualizacin como de 250 milisegundos. Slo en raras ocasiones, como en el caso de control de tensin mecnica o carrete desbobinador, se requieren perodos de actualizacin de lazo de 10 milisegundos o menores. Puesto que la instruccin PID usa una base de tiempo para su clculo, usted necesita sincronizar la ejecucin de esta instruccin con el muestreo de la variable del proceso (PV). La manera ms fcil de ejecutar la instruccin PID es poner la instruccin PID en una tarea peridica. Establezca el tiempo de actualizacin de lazo (.UPD) igual al rgimen de la tarea peridica para asegurarse de que la instruccin PID se ejecute en cada escn de la tarea peridica.
Texto estructurado
PID(TIC101,Local:0:I.Ch0Data,Local:0:I.Ch1Data, Local:1:O.Ch4Data,0,Local:1:I.Ch4InHold, Local:1:I.Ch4Data);
Cuando use una tarea peridica, asegrese de que la entrada analgica empleada para la variable del proceso se actualice con el procesador a un rgimen considerablemente ms rpido que el rgimen de la tarea peridica. Idealmente, la variable del proceso debe enviarse al procesador a un rgimen por lo menos de cinco a diez veces mayor que el rgimen de la tarea peridica. Esto minimiza la diferencia de tiempo entre las muestras de la variable del proceso y la ejecucin del lazo PID. Por ejemplo, si el lazo PID es una tarea peridica de 250 milisegundos, use un tiempo de actualizacin de lazo de 250 milisegundos (.UPD = .25) y configure el mdulo de entrada analgica para producir datos por lo menos cada 25 50 milisegundos.
509
Captulo 13
Otro mtodo algo menos exacto de ejecutar una instruccin PID consiste en colocar la instruccin en una tarea continua y usar un bit de temporizador expirado para activar la ejecucin de la instruccin PID.
Texto estructurado
PID_timer.pre := 1000 TONR(PID_timer); IF PID_timer.DN THEN PID(TIC101,Local:0:I.Ch0Data,Local:0:I.Ch1Data, Local:1:O.Ch0Data,0,Local:1:I.Ch0InHold, Local:1:I.Ch0Data); END_IF;
Con este mtodo, el tiempo de actualizacin de lazo de la instruccin PID debe establecerse igual que el valor prefijado en el temporizador. Igual que cuando se usa una tarea peridica, usted debe establecer el mdulo de entrada analgica para producir la variable del proceso a un rgimen considerablemente mayor que el rgimen de actualizacin de lazo. Usted slo debe usar el mtodo de temporizacin de ejecucin PID para lazos cuyos tiempos de actualizacin de lazo sean por lo menos varias veces mayores que el tiempo de ejecucin ms largo posible de la tarea continua. La manera ms exacta de ejecutar una instruccin PID es usar la funcin de muestreo en tiempo real (RTS) de los mdulos de entradas analgicas 1756. El mdulo de entradas analgicas muestrea sus entradas segn el rgimen de muestreo en tiempo real que usted haya establecido al momento de configurar el mdulo. Cuando el perodo
510
Captulo 13
de muestreo en tiempo real del mdulo expira, ste actualiza sus entradas y actualiza un sello de hora continuo (representado por el miembro RolllingTimestamp de la estructura de entradas analgicas) producido por el mdulo. El rango del sello de hora oscila entre 0 - 32767 milisegundos. Monitoree el sello de hora. Cuando cambia, significa que se recibi una nueva muestra de la variable del proceso. Cada vez que cambia un sello de hora, se ejecuta una vez la instruccin PID. Puesto que el muestreo de la variable del proceso es activado por el mdulo de entradas analgicas, el tiempo de muestreo de entrada es muy exacto, y el tiempo de actualizacin de lazo usado por la instruccin PID debe establecerse igual al tiempo RTS del mdulo de entradas analgicas. Para asegurarse de no omitir muestreos de la variable del proceso, ejecute la lgica a un rgimen ms rpido que el tiempo RTS. Por ejemplo, si el tiempo RTS es 250 ms, puede colocar la lgica PID en una tarea peridica que se ejecute cada 100 ms para asegurarse de no omitir nunca un muestreo. Incluso podra colocar la lgica PID en una tarea continua, siempre y cuando se asegure de que la lgica se actualizara ms frecuentemente que una vez cada 250 milisegundos. A continuacin se muestra un ejemplo del mtodo de ejecucin RTS. La ejecucin de la instruccin PID depende de la recepcin de datos de entradas analgicas. Si el mdulo de entradas analgicas falla o se desmonta, el controlador deja de recibir sellos de hora continuos y el lazo PID deja de ejecutarse. Usted debe monitorear el bit de estado de la entrada analgica PV y, si muestra un estado incorrecto, fuerce el lazo al modo manual de software y ejecute el lazo en cada escn. As el operador podr cambiar manualmente la salida del lazo PID.
511
Captulo 13
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;
512
Captulo 13
Esto indicar al mdulo de salidas analgicas que cuando el controlador regrese al modo de marcha o vuelva a establecer comunicacin con el mdulo, el mdulo debe retener la salida analgica en su valor actual hasta que el valor enviado desde el controlador coincida (dentro de un intervalo de 0.1%) con el valor actual usado por el canal de salida. La salida del controlador cambiar gradualmente al valor de salida retenido actualmente mediante el uso del trmino .BIAS. Este cambio en forma de rampa es similar al de la transferencia sin perturbaciones. Introduzca el tag de bit Inhold y el tag Inhold Value en la instruccin PID El mdulo de salidas analgicas 1756 retorna dos valores por cada canal en su estructura de datos de entrada. El bit de estado en retencin (.Ch2InHold, por ejemplo) cuando es verdadero, indica que el canal de salida analgica est reteniendo su valor. El valor de relectura de datos (.Ch2Data, por ejemplo) muestra el valor de salida actual en unidades de ingeniera.
Introduzca el tag del bit de estado en retencin como parmetro InHold de la instruccin PID. Introduzca el tag del valor de relectura de datos como el parmetro Inhold Value.
Cuando el bit Inhold se hace verdadero, la instruccin PID mueve el Inhold Value a la salida de variable de control y se reinicializa para permitir un reinicio sin perturbaciones en dicho valor. Cuando el mdulo de salidas analgicas recibe su valor de vuelta desde el controlador, ste desactiva el bit de estado InHold, lo cual permite que la instruccin PID comience normalmente a realizar el control.
Suavizado derivativo
El clculo de la derivada se mejora mediante el uso de un filtro de suavizado derivativo. Este filtro digital pasabajos de primer orden ayuda a minimizar picos grandes del trmino derivativo causados por ruido en la PV. Este suavizado se hace ms agresivo mientras mayores son los valores de ganancia derivativa. Usted puede inhabilitar el suavizado derivativo si su proceso requiere valores muy grandes de ganancia derivativa (Kd > 10, por ejemplo). Para inhabilitar el suavizado derivativo, seleccione la opcin sin suavizado derivativo (No derivative smoothing) en la ficha Configuration o establezca el bit .NDF en la estructura PID.
513
Captulo 13
+ banda muerta punto de ajuste - banda muerta error dentro del rango de banda muerta
tiempo
41026
El cruce por cero es un control de banda muerta que permite que la instruccin use el error para fines de clculo desde que la variable del proceso penetra en la banda muerta hasta que la variable del proceso cruza el punto de ajuste. Una vez que la variable del proceso cruza el punto de ajuste (el error cruza por cero y cambia de signo), y siempre que la variable del proceso permanezca en la banda muerta, la salida no cambiar. La banda muerta se extiende, por arriba y por debajo del punto de ajuste, el valor que usted especifica. Introduzca cero para inhibir la banda muerta. La banda muerta tiene las mismas unidades escaladas que el punto de ajuste. Se puede usar la banda muerta sin la funcin de cruce por cero; para ello seleccione la opcin sin cruce por cero (no zero crossing for deadband) en la ficha Configuration, o establezca el bit .NOZC en la estructura PID. Si usted est usando la banda muerta, la variable Control debe ser REAL o se forzar a 0 cuando el error est dentro de la banda muerta.
514
Captulo 13
Lazos en cascada
El PID conecta en cascada dos lazos asignando la salida en porcentaje del lazo maestro al punto de ajuste del lazo esclavo. El lazo esclavo convierte automticamente la salida del lazo maestro en las unidades de ingeniera correctas para el punto de ajuste del lazo esclavo, con base en los valores del lazo esclavo para .MAXS y .MINS.
Texto estructurado
PID(master,pv_master,0,cv_master,0,0,0); PID (slave,pv_slave,0,cv_slave,master,0,0);
515
Captulo 13
Control de relacin
Usted puede mantener la relacin entre dos valores usando estos parmetros: valor no controlado valor controlado (el punto de ajuste resultante que se usar para la instruccin PID) relacin entre estos dos valores
Texto estructurado
pid_2.sp := uncontrolled_flow * ratio PID(pid_2,pv_2,tieback_2,cv_2,0,0,0);
516
Captulo 13
Teora de PID
Las siguientes figuras muestran el flujo del proceso para una instruccin PID.
Proceso PID
SP Mostrado como EU Software A/M o bien Modo de estacin A/M Auto
+ -
% de polarizacin de salida
SP
Manual PVT No
PV-SP
CV
PV Mostrado como EU
PV
% de polarizacin de salida
Manual PVT No
PV-SP
% salida establecida
(Master.Out)
Modo A/M de software Auto Manual Manual Los tems referidos en este cuadro son parmetros, unidades y modos que pertenecen al lazo esclavo designado.
% de polarizacin de salida Convierte unidades de ingeniera a %
Lazo esclavo
PV Accin de control
Convierte % a unidades (SP) de ingeniera
(Master.Out)
SP-PV
+ -1
Clculo PID
% salida establecida
PV-SP
Error X 100 maxs-mins % salida establecida Convierte unidades de valor retenido a % tieback-mintie maxtie-mintie x 100
PV
517
Captulo 13
Notas:
518
Captulo
14
Instrucciones trigonomtricas
(SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Introduccin
Si desea Hallar el seno de un valor.
Las instrucciones trigonomtricas evalan las operaciones aritmticas mediante operaciones trigonomtricas.
Use esta instruccin SIN Disponible en estos lenguajes lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones lgica de escalera de rels texto estructurado bloque de funciones Vea la pgina 520
COS
523
TAN
526
ASN ASIN(1)
529
ACS ACOS(1)
532
ATN ATAN(1)
535
(1)
Usted puede mezclar diferentes tipos de datos, pero puede producirse prdida de exactitud y error de redondeo, y la instruccin requiere ms tiempo para ejecutarse. Verifique el bit de estado de overflow (S:V) para determinar si se trunc el resultado. Para las instrucciones de lgica de escalera de rels, los tipos de datos que aparecen en letras negritas indican tipos de datos ptimos. Las instrucciones se ejecutan ms rpidamente y requieren menos memoria si todos los operandos de instruccin usan el mismo tipo de datos ptimos, tpicamente DINT o REAL.
519
Captulo 14
Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Seno (SIN)
Operandos:
La instruccin SIN halla el seno del valor de origen (en radianes) y almacena el resultado en Destination.
Texto estructurado
dest := SIN(source);
Use SIN como una funcin. Esta funcin calcula el seno de source y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando SIN tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin estructura SIN
Estructura FBD_MATH_ADVANCED
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. Source REAL Entrada a la instruccin matemtica. Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico para esta salida.
520
Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Captulo 14
Descripcin: Source debe ser mayor o igual que -205887.4 (-2x215) y menor o
igual que 205887.4 (2x215). El valor resultante en Destination siempre es mayor o igual que -1 y menor o igual que 1.
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin: preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin: La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. El controlador calcula el seno de Source y coloca el resultado en Destination. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
521
Captulo 14
Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Ejemplo: Calcule el seno de value y coloque el resultado en result. Lgica de escalera de rels
Texto estructurado
result := SIN(value);
Bloque de funciones
522
Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Captulo 14
Coseno (COS)
Operandos:
La instruccin COS halla el coseno del valor de origen (en radianes) y almacena el resultado en Destination.
Texto estructurado
dest := COS(source);
Use COS como funcin. Esta funcin calcula el coseno de source y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando COS tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin estructura COS
523
Captulo 14
Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Estructura FBD_MATH_ADVANCED
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. Source REAL Entrada a la instruccin matemtica. Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico para esta salida.
Descripcin: Source debe ser mayor o igual que -205887.4 (-2x215) y menor o
igual que 205887.4 (2x215). El valor resultante en Destination siempre es mayor o igual que -1 y menor o igual que 1.
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. El controlador calcula el coseno de Source y coloca el resultado en Destination. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
524
Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Captulo 14
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
Ejemplo: Calcule coseno de value y coloque el resultado en result. Lgica de escalera de rels
Texto estructurado
result := COS(value);
Bloque de funciones
525
Captulo 14
Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Tangente (TAN)
Operandos:
La instruccin TAN halla la tangente del valor de origen (en radianes) y almacena el resultado en Destination.
Texto estructurado
dest := TAN(source);
Use TAN como funcin. Esta funcin calcula la tangente de source y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando TAN tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin Estructura TAN
526
Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Captulo 14
Estructura FBD_MATH_ADVANCED
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. Source REAL Entrada a la instruccin matemtica. Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico para esta salida.
Descripcin: Source debe ser mayor o igual que -102943.7 (-2x214) y menor o
igual que 102943.7 (2x214).
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. El controlador calcula la tangente de Source y coloca el resultado en Destination. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
527
Captulo 14
Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Ejemplo: Calcule la tangente de value y coloque el resultado en result. Lgica de escalera de rels
Texto estructurado
result := TAN(value);
Bloque de funciones
528
Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Captulo 14
La instruccin ASN halla el arco seno del valor de Source y almacena el resultado en Destination (en radianes).
Texto estructurado
dest := ASIN(source);
Use ASIN como funcin. Esta funcin calcula el arco seno de source y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando ASN tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin estructura ASN
Estructura FBD_MATH_ADVANCED
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. Source REAL Entrada a la instruccin matemtica. Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico para esta salida.
529
Captulo 14
Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Descripcin: Source debe ser mayor o igual que -1 y menor o igual que 1. El valor
resultante en Destination siempre es mayor o igual que -/2 y menor o igual que /2 (donde = 3.141593).
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. El controlador calcula el arco seno de Source y coloca el resultado en Destination. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
530
Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Captulo 14
Ejemplo: Calcule el arco seno de value y coloque el resultado en result. Lgica de escalera de rels
Texto estructurado
result := ASIN(value);
Bloque de funciones
531
Captulo 14
Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
La instruccin ACS halla el arco coseno del valor de Source y almacena el resultado en Destination (en radianes).
Texto estructurado
dest := ACOS(source);
Use ACOS como funcin. Esta funcin calcula el arco coseno de source y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando ACS tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin estructura ACS
Estructura FBD_MATH_ADVANCED
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. Source REAL Entrada a la instruccin matemtica. Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico para esta salida.
532
Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Captulo 14
Descripcin: Source debe ser mayor o igual que -1 y menor o igual que 1. El valor
resultante en Destination siempre es mayor o igual que 0 y menor o igual que (donde = 3.141593).
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. El controlador calcula el arco coseno de Source y coloca el resultado en Destination. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
533
Captulo 14
Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Ejemplo: Calcule el arco coseno de value y coloque el resultado en result. Lgica de escalera de rels
Texto estructurado
result := ACOS(value);
Bloque de funciones
534
Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Captulo 14
La instruccin ATN halla el arco tangente del valor de Source y almacena el resultado en Destination (en radianes).
Texto estructurado
dest := ATAN(source);
Use ATAN como funcin. Esta funcin calcula el arco tangente de source y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando ATN tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin estructura ATN
Estructura FBD_MATH_ADVANCED
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. Source REAL Entrada a la instruccin matemtica. Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico para esta salida.
535
Captulo 14
Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. El controlador calcula el arco tangente de Source y coloca el resultado en Destination. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
536
Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Captulo 14
Ejemplo: Calcule el arco tangente de value y coloque el resultado en result. Lgica de escalera de rels
Texto estructurado
result := ATAN(value);
Bloque de funciones
537
Captulo 14
Instrucciones trigonomtricas (SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Notas:
538
Captulo
15
Introduccin
Si desea Hallar el logaritmo natural de un valor.
LOG
543
XPY
546
(1)
No hay una instruccin equivalente en texto estructurado. Use el operador en una expresin.
Usted puede mezclar diferentes tipos de datos, pero puede producirse prdida de exactitud y error de redondeo, y la instruccin requiere ms tiempo para ejecutarse. Verifique el bit S:V para determinar si se trunc el resultado. Para las instrucciones de lgica de escalera de rels, los tipos de datos que aparecen en negrita indican tipos de datos ptimos. Las instrucciones se ejecutan ms rpidamente y requieren menos memoria si todos los operandos de instruccin usan el mismo tipo de datos ptimos, tpicamente DINT o REAL.
539
Captulo 15
Texto estructurado
dest := LN(source);
Use LN como funcin. Esta funcin calcula el logaritmo natural de source y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando LN tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin estructura LN
Estructura FBD_MATH_ADVANCED
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. Source REAL Entrada a la instruccin matemtica. Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut BOOL Descripcin La instruccin produjo un resultado vlido.
540
Captulo 15
Descripcin: Source debe ser mayor o igual que cero; de lo contrario, se establece
el bit de estado de overflow (S:V). El valor Destination resultante es mayor o igual que -87.33655 y menor o igual que 88.72284.
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. El controlador calcula el logaritmo natural de Source y coloca el resultado en Destination. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
541
Captulo 15
Ejemplo: Calcule el logaritmo natural de value y coloque el resultado en result. Ejemplo de la lgica de escalera de rels
Texto estructurado
result := LN(value);
Bloque de funciones
542
Captulo 15
Texto estructurado
dest := LOG(source);
Use LOG como funcin. Esta funcin calcula el logaritmo de source y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando LOG tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin Estructura LOG
543
Captulo 15
Estructura FBD_MATH_ADVANCED
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. Source REAL Entrada a la instruccin matemtica. Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico para esta salida.
Descripcin: Source debe ser mayor o igual que cero; de lo contrario, se establece
un bit de estado de overflow (S:V). El valor Destination resultante es mayor o igual que -37.92978 y menor o igual que 38.53184.
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. El controlador calcula el logaritmo de Source y coloca el resultado en Destination. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
544
Captulo 15
Ejemplo: Calcule el logaritmo de value y coloque el resultado en result. Lgica de escalera de rels
Texto estructurado
result := LOG(value);
Bloque de funciones
545
Captulo 15
X a la potencia de Y (XPY)
Operandos:
La instruccin XPY eleva Source A (X) a la potencia de Source B (Y) y almacena el resultado en Destination.
Texto estructurado
dest := sourceX ** sourceY;
Use dos signos de multiplicacin adyacentes como operador dentro de una expresin. Esta expresin eleva sourceX a la potencia de sourceY y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando XPY tag Tipo FBD_MATH Formato estructura Descripcin estructura XPY
546
Captulo 15
Estructura FBD_MATH
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. Source X REAL Valor base. Vlido = cualquier valor con punto flotante (coma flotante) Source Y REAL exponente Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico para esta salida.
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo:
Ocurrir un fallo menor si Source X es negativo y Source Y no es un valor entero Tipo de fallo 4 Cdigo de fallo 4
547
Captulo 15
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
Texto estructurado
result := (value_1 value_2);
Bloque de funciones
548
Captulo
16
Introduccin
Si desea Convertir radianes en grados.
RAD
553
TOD
556
FRD
559
TRN TRUNC(1)
561
(1)
Usted puede mezclar diferentes tipos de datos, pero puede producirse prdida de exactitud y error de redondeo, y la instruccin requiere ms tiempo para ejecutarse. Verifique el bit S:V para determinar si se trunc el resultado. Para las instrucciones de lgica de escalera de rels, los tipos de datos que aparecen en negrita indican tipos de datos ptimos. Las instrucciones se ejecutan ms rpidamente y requieren menos memoria si todos los operandos de instruccin usan el mismo tipo de datos ptimos, tpicamente DINT o REAL.
549
Captulo 16
Grados (DEG)
Operandos:
Texto estructurado
dest := DEG(source);
Use DEG como funcin. Esta funcin convierte source en grados y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando DEG tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin Estructura DEG
Estructura FBD_MATH_ADVANCED
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. Source REAL Entrada a la instruccin de conversin. Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin de conversin. Se establecen indicadores de estado aritmtico para esta salida.
550
Captulo 16
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. El controlador convierte Source en grados y coloca el resultado en Destination. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
551
Captulo 16
Ejemplo: Convierta value en grados y coloque el resultado en result. Lgica de escalera de rels
Texto estructurado
result := DEG(value);
Bloque de funciones
552
Captulo 16
Radianes (RAD)
Operandos:
Texto estructurado
dest := RAD(source);
Use RAD como funcin. Esta funcin convierte source a radianes y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando RAD tag Tipo FBD_MATH_ADVANCED Formato estructura Descripcin estructura RAD
Estructura FBD_MATH_ADVANCED
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. Source REAL Entrada a la instruccin de conversin. Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut Dest BOOL REAL Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin de conversin. Se establecen indicadores de estado aritmtico para esta salida.
553
Captulo 16
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. El controlador convierte Source en radianes y coloca el resultado en Destination. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
554
Captulo 16
Ejemplo Convierta value en radianes y coloque el resultado en result. Lgica de escalera de rels
Texto estructurado
result := RAD(value);
Bloque de funciones
555
Captulo 16
La instruccin TOD convierte un valor decimal (0 Source 99,999,999) en un valor BCD y almacena el resultado en Destination.
Bloque de funciones
Operando TOD tag Tipo FBD_CONVERT Formato estructura Descripcin estructura TOD
Estructura FBD_CONVERT
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. Source DINT Entrada a la instruccin de conversin. Vlido = cualquier nmero entero Parmetro de salida Tipo de datos EnableOut Dest BOOL DINT Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin de conversin. Se establecen indicadores de estado aritmtico para esta salida.
Captulo 16
Condiciones de fallo:
Ocurrir un fallo menor si Source < 0 Tipo de fallo 4 Cdigo de fallo 4
no origen < 0
no
S:V se establece a 1
fin
El controlador convierte Source en BCD y coloca el resultado en Destination. La condicin de salida de rengln se establece como verdadera.
post-escn
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
557
Captulo 16
Bloque de funciones
558
Captulo 16
La instruccin FRD convierte un valor BCD (Source) en un valor decimal y almacena el resultado en Destination.
Bloque de funciones
Operando FRD tag Tipo FBD_CONVERT Formato: estructura Descripcin estructura FRD
Estructura FBD_CONVERT
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. Source DINT Entrada a la instruccin de conversin. Vlido = cualquier nmero entero Parmetro de salida Tipo de datos EnableOut Dest BOOL DINT Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin de conversin. Se establecen indicadores de estado aritmtico para esta salida.
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna
559
Captulo 16
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
Bloque de funciones
560
Captulo 16
Truncar (TRN)
Operandos:
La instruccin TRN retira (trunca) la parte fraccionaria de Source y almacena el resultado en Destination.
Texto estructurado
dest := TRUNC(source);
Use TRUNC como funcin. Esta funcin trunca source y almacena el resultado en dest. Consulte el Apndice C, Programacin de texto estructurado para obtener informacin sobre la sintaxis de las expresiones en texto estructurado.
Bloque de funciones
Operando TRN tag Tipo FBD_TRUNCATE Formato estructura Descripcin estructura TRM
Estructura FBD_TRUNCATE
Parmetro de entrada EnableIn Tipo de datos BOOL Descripcin Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se actualizan. La opcin predeterminada es establecido. Source REAL Entrada a la instruccin de conversin. Vlido = cualquier valor con punto flotante (coma flotante) Parmetro de salida Tipo de datos EnableOut Dest BOOL DINT Descripcin La instruccin produjo un resultado vlido. Resultado de la instruccin de conversin. Se establecen indicadores de estado aritmtico para esta salida.
561
Captulo 16
Indicadores de estado aritmtico: Los indicadores de estado aritmtico son afectados. Condiciones de fallo: ninguna Ejecucin: Lgica de escalera de rels
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. El controlador retira la parte fraccionaria de Source y coloca el resultado en Destination. La condicin de salida de rengln se establece como verdadera. post-escn La condicin de salida de rengln se establece como falsa.
Bloque de funciones
Condicin preescn primer escn de instruccin primera ejecucin de instruccin EnableIn se borra EnableIn se establece Accin Ninguna. Ninguna. Ninguna. EnableOut se borra. La instruccin se ejecuta. EnableOut se establece. post-escn Ninguna.
562
Captulo 16
Texto estructurado
float_value_1_truncated := TRUNC(float_value_1);
Bloque de funciones
563
Captulo 16
Notas:
564
Captulo
17
Introduccin
Use las instrucciones para puerto serie ASCII a fin de leer y escribir caracteres ASCII.
IMPORTANTE
Para usar las instrucciones del puerto serie ASCII, usted debe configurar el puerto serie del controlador. Consulte el documento Logix5000 Controllers Common Procedures, publicacin 1756-PM001.
Use esta instruccin ABL Disponible en estos lenguajes lgica de escalera de rels texto estructurado Vea la pgina 570
ACB
573
borrar el bfer borrar las instrucciones del puerto serie ASCII que actualmente se estn ejecutando o estn en la cola. obtener el estado de las lneas de control del puerto serie activar y desactivar la seal DTR activar y desactivar la seal RTS leer un nmero fijo de caracteres
borrar datos antiguos del bfer al momento de la puesta en marcha sincronizar el bfer con un dispositivo hacer que el mdem cuelgue
ACL
575
AHL
577
leer datos desde un dispositivo que enva el mismo nmero de caracteres durante cada transmisin leer datos desde un dispositivo que enva un nmero variable de caracteres en cada transmisin enviar mensajes que siempre usan los mismos caracteres de terminacin
ARD
581
leer un nmero variable de caracteres, inclusive el primer conjunto de caracteres de terminacin enviar caracteres y aadir automticamente uno o dos caracteres adicionales para marcar el final de los datos enviar caracteres
ARL
585
AWA
589
AWT
594
565
Captulo 17
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Ejecucin de la instruccin
Las instrucciones de puerto serie ASCII se ejecutan de manera asncrona con el escn de la lgica:
Lgica La condicin de entrada de rengln de instruccin cambia de falsa a verdadera Cola ASCII Instruccin 1 Instruccin 2 Instruccin 3 Instruccin 4 La instruccin entra en la cola ASCII. Los datos fluyen entre el bfer y el puerto serie. Puerto serie Bfer Los datos fluyen entre la tarea y el bfer. Tarea ASCII La instruccin en la parte superior de la cola se ejecuta.
Cada instruccin de puerto serie ASCII (excepto ACL) usa una estructura SERIAL_PORT_CONTROL para realizar las siguientes funciones: controlar la ejecucin de la instruccin proporcionar informacin de estado acerca de la instruccin
566
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Captulo 17
El siguiente diagrama de temporizacin muestra los cambios en los bits de estado mientras la instruccin ABL prueba el bfer en busca de caracteres de terminacin.
escn escn escn escn
falsa
verdadera
falsa
verdadera
falsa
.EN
desactivado
activado
desactivado
activado
desactivado
.EU
desactivado
activado
.RN
desactivado
activado
desactivado
activado
desactivado
.DN o .ER
desactivado
activado
desactivado
activado
.FD
desactivado
activado
desactivado
activado
.EM
desactivado
activado
desactivado
activado
restablece los bits de estado cuando se escanean y el bit .DN o .ER est establecido, se establece el bit .EM
567
Captulo 17
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
La cola ASCII retiene hasta 16 instrucciones. Cuando la cola est llena, una instruccin intenta entrar en la cola durante cada escn subsiguiente de la instruccin, segn se muestra a continuacin:
escn escn escn escn
falsa
verdadera
falsa
.EN
desactivado
activado
.EU
desactivado
activado
568
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Captulo 17
569
Captulo 17
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
La instruccin ABL cuenta los caracteres en el bfer, inclusive el primer carcter de terminacin.
Operando Channel
Tipo DINT
Descripcin 0
? ? ?
tag
inmediato
Durante la ejecucin, muestra el nmero de caracteres en el bfer, incluso el primer conjunto de caracteres de terminacin.
Texto estructurado
ABL(Channel SerialPortControl);
Los operandos son iguales a los de la instruccin ABL de lgica de escalera de rels. Usted accede al valor de conteo de caracteres mediante el miembro .POS de la estructura SERIAL_PORT_CONTROL.
Estructura SERIAL_PORT_CONTROL
Mnemnico .EN .EU .DN .RN .EM .ER .FD .POS Tipo de datos BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT Descripcin El bit de habilitacin indica que la instruccin est habilitada. El bit de cola indica que la instruccin entr en la cola ASCII. El bit de efectuado indica que ha finalizado la instruccin, pero es asncrono respecto al escn de la lgica. El bit de ejecucin indica que la instruccin se est ejecutando. El bit de vaco indica que finaliz la instruccin, pero es sncrono respecto al escn de la lgica. El bit de error indica que la instruccin fall (errores). El bit de encontrado indica que la instruccin encontr el carcter o los caracteres de terminacin. La posicin determina el nmero de caracteres en el bfer, inclusive el primer conjunto de caracteres de terminacin. La instruccin slo retorna este nmero despus de que encuentra el carcter o los caracteres de terminacin. El error contiene un valor hexadecimal que identifica la causa del error.
.ERROR
DINT
570
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Captulo 17
571
Captulo 17
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Accin de lgica de escalera de rels La instruccin cuenta los caracteres en el bfer. El bit .EN se establece. Los bits de estado restantes, excepto .UL, se borran. La instruccin trata de entrar en la cola ASCII.
post-escn
MV_line.EN MV_line.EN /
ABL ABL
ASCII Test For Buffer Line ASCII Test For Buffer Line Channel 0 Channel MV_line.E SerialPort Control SerialPort Control MV_line Character Count Character Count 0
EN EN DN DN ER ER
Texto estructurado
ABL(0,MV_line);
572
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Captulo 17
Operando
? ? ?
Tipo DINT
Introduzca 0
EN EN DN DN ER ER
Channel
tag
inmediato
Texto estructurado
ACB(Channel SerialPortControl);
Los operandos son los mismos que para la instruccin ACB de lgica de escalera de rels. Sin embargo, usted especifica el valor de conteo de caracteres al acceder al miembro .POS de la estructura SERIAL_PORT_CONTROL, en lugar de incluir el valor en la lista de operandos.
Estructura SERIAL_PORT_CONTROL
Mnemnico .EN .EU .DN .RN .EM .ER .FD .POS .ERROR Tipo de datos BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin indica que la instruccin est habilitada. El bit de cola indica que la instruccin entr en la cola ASCII. El bit de efectuado indica que ha finalizado la instruccin, pero es asncrono respecto al escn de la lgica. El bit de ejecucin indica que la instruccin se est ejecutando. El bit de vaco indica que finaliz la instruccin, pero es sncrono respecto al escn de la lgica. El bit de error indica que la instruccin fall (errores). El bit de encontrado indica que la instruccin encontr un carcter. La posicin determina el nmero de caracteres en el bfer, inclusive el primer conjunto de caracteres de terminacin. El error contiene un valor hexadecimal que identifica la causa del error.
573
Captulo 17
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
post-escn
ASCII Chars in Buffer ASCII Chars in Buffer Channel 0 Channel bar_code_count.EN SerialPort Control bar_code_count SerialPort Control Character Count Character Count 0
EN EN DN DN ER ER
Texto estructurado
ACB(0,bar_code_count);
574
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Captulo 17
Operando
? ? ?
Tipo DINT
Introduzca 0
Channel
BOOL
inmediato tag
Para borrar el bfer y eliminar las instrucciones ARD y ARL de la cola, introduzca Yes. Para eliminar las instrucciones AWA y AWT de la cola, introduzca Yes.
BOOL
inmediato tag
Texto estructurado
ACL(Channel, ClearSerialPortRead, ClearSerialPortWrite);
Los operandos son iguales a los de la instruccin ACL de lgica de escalera de rels.
2. Para determinar si una instruccin se retir de la cola o se cancel, examine los siguientes componentes de la instruccin apropiada: El bit .ER se establece El miembro .ERROR es 16#E
575
Captulo 17
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels Accin de texto estructurado
La condicin de salida de rengln se establece como Ninguna. falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. n. a. n. a.
EnableIn se establece
n. a.
La instruccin borra las instrucciones especificadas y los bferes. La condicin de salida de rengln se establece como Ninguna. falsa.
S:FS
ACL ACL ASCII Buffer Borrar Clear ASCII bfer Channel Canal BorrarSerial lectura Port de puerto serie Clear Read BorrarSerial escritura de puerto serie Clear Port Write
0 1 1
Texto estructurado
osri_1.InputBit := S:FS; OSRI(osri_1);
576
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Captulo 17
La instruccin AHl obtiene el estado de las lneas de control, y activa o desactiva las seales DTR y RTS.
EN EN
? ? ?? ? ?? ? ? DN DN ER ER
Operando Channel
Tipo DINT
Introduzca 0
ANDMask
DINT
inmediato tag
Remtase a la descripcin.
ORMask
DINT
inmediato tag
SERIAL_PORT_CONTROL DINT
tag inmediato
Durante la ejecucin, muestra el estado de las lneas de control. Para el estado de esta lnea de control CTS RTS DSR DCD DTR Recibi el carcter XOFF Examine este bit: 0 1 2 3 4 5
Texto estructurado
AHL(Channel,ANDMask,ORMask, SerialPortControl);
Los operandos son iguales que los de la instruccin AHL de lgica de escalera de rels. Sin embargo, se especifica el valor de estado del canal accediendo al miembro .POS de la estructura SERIAL_PORT_CONTROL, y no incluyendo el valor en la lista de operandos.
577
Captulo 17
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Estructura SERIAL_PORT_CONTROL
Mnemnico .EN .EU .DN .RN .EM .ER .FD .POS .ERROR Tipo de datos BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT Descripcin El bit de habilitacin indica que la instruccin est habilitada. El bit de cola indica que la instruccin entr en la cola ASCII. El bit de efectuado indica que ha finalizado la instruccin, pero es asncrono respecto al escn de la lgica. El bit de ejecucin indica que la instruccin se est ejecutando. El bit de vaco indica que finaliz la instruccin, pero es sncrono respecto al escn de la lgica. El bit de error indica que la instruccin fall (errores). El bit de encontrado no se aplica a esta instruccin. La posicin almacena el estado de las lneas de control. El error contiene un valor hexadecimal que identifica la causa del error.
2. Use la tabla siguiente para seleccionar los valores correctos para los operandos ANDMask y ORMask:
Para poner DTR en el estado siguiente desactivado Y poner RTS en el estado siguiente: desactivado activado sin cambio activado desactivado activado sin cambio sin cambio desactivado activado sin cambio Introduzca este valor ANDMask E introduzca este valor ORMask
3 1 1 2 0 0 2 0 0
0 2 0 1 3 1 0 2 0
578
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Captulo 17
3. sta es una instruccin transicional: En la lgica de escalera de rels, cambie la condicin de entrada del rengln de borrado a establecido cada vez que deba ejecutarse la instruccin. En texto estructurado, condicione la instruccin de manera que slo se ejecute cuando ocurra una transicin.
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta cuando la condicin de entrada del rengln cambia de borrado a establecido. La condicin de salida de rengln se establece como verdadera. EnableIn se establece n. a. EnableIn siempre se establece. La instruccin se ejecuta. ejecucin de la instruccin La instruccin obtiene el estado de la lnea de control y activa o desactiva las seales DTR y RTS. El bit .EN se establece. Los bits de estado restantes, excepto .UL, se borran. La instruccin trata de entrar en la cola ASCII. post-escn La condicin de salida de rengln se establece como falsa. Ninguna. Accin de texto estructurado Ninguna. n. a. n. a.
579
Captulo 17
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
EN EN
0 0 0
serial_port serial_port 29
DN DN ER ER
OR Mask OR Mask
SerialPort Control SerialPort Control Channel Status(Decimal) Channel Status(Decimal)
Texto estructurado
osri_1.InputBit := get_control_line_status; OSRI(osri_1);
580
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Captulo 17
EN EN
DN DN ER ER
SerialPort SerialPortControl Control SerialPort SerialPortControl Control Length Length Characters Characters Read Read
Operando Channel
Tipo DINT
Introduzca 0
Notas
Destination
tag
el tag al cual se transfieren los caracteres (lectura): Para un tipo de datos de cadena, introduzca el nombre del tag. Para una matriz SINT, INT o DINT, introduzca el primer elemento de la matriz.
Si desea comparar, convertir o manipular los caracteres, use un tipo de datos de cadena. Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree
tag
tag que controla la operacin nmero de caracteres a transferir al destino (lectura) Serial Port Control Length debe ser menor o igual que el tamao de Destination. Si desea establecer Serial Port Control Length igual que el tamao de Destination, introduzca 0. Durante la ejecucin, muestra el nmero de caracteres ledos.
inmediato
Characters Read
DINT
inmediato
Texto estructurado
ARD(Channel,Destination, SerialPortControl);
Los operandos son los mismos que para la instruccin ARD de lgica de escalera de rels. Sin embargo, usted especifica los valores de Serial Port Control Length y Characters Read accediendo a los miembros .LEN y .POS de la estructura SERIAL_PORT_CONTROL, en lugar de incluir los valores en la lista de operandos.
581
Captulo 17
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Estructura SERIAL_PORT_CONTROL
Mnemnico .EN .EU .DN .RN .EM .ER .FD .LEN .POS .ERROR Tipo de datos BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT DINT Descripcin El bit de habilitacin indica que la instruccin est habilitada. El bit de cola indica que la instruccin entr en la cola ASCII. El bit de efectuado indica que ha finalizado la instruccin, pero es asncrono respecto al escn de la lgica. El bit de ejecucin indica que la instruccin se est ejecutando. El bit de vaco indica que finaliz la instruccin, pero es sncrono respecto al escn de la lgica. El bit de error indica que la instruccin fall (errores). El bit de encontrado no se aplica a esta instruccin. La longitud indica el nmero de caracteres a transferir al destino (lectura). La posicin muestra el nmero de caracteres que se leyeron. El error contiene un valor hexadecimal que identifica la causa del error.
582
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Captulo 17
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta cuando la condicin de entrada del rengln cambia de borrado a establecido. La condicin de salida de rengln se establece como verdadera. EnableIn se establece n. a. EnableIn siempre se establece. La instruccin se ejecuta. ejecucin de la instruccin La instruccin retira caracteres del bfer y los almacena en el destino. El bit .EN se establece. Los bits de estado restantes, excepto .UL, se borran. La instruccin trata de entrar en la cola ASCII. post-escn La condicin de salida de rengln se establece como falsa. Ninguna. Accin de texto estructurado Ninguna. n. a. n. a.
ASCII Chars in Buffer ASCII Chars in Buffer Channel 0 Channel bar_code_count.EN SerialPort Control SerialPort Control bar_code_count Character Count Character Count 0
EN EN DN DN ER ER
GEQ GEQ Grtr Than or Eql (A>=B) Grtr Than o Eql (A>=B) Source A A bar_code_count.pos bar_code_count.pos Source Source B B Source
ARD ARD
0 24
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
583
Captulo 17
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Texto estructurado
ACB(0,bar_code_count); IF bar_code_count.POS >= 24 THEN bar_code_read.LEN := 24; ARD(0,bag_bar_code,bar_code_read); END_IF;
584
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Captulo 17
La instruccin ARL retira los caracteres especificados del bfer y los almacena en Destination.
EN EN
DN DN ER ER
SerialPortControl Control SerialPort SerialPortControl ControlLength Length SerialPort CharactersRead Read Characters
Operando Channel
Tipo DINT
Introduzca 0
Notas
Destination
tag
el tag al cual se transfieren los caracteres (lectura): Para un tipo de datos de cadena, introduzca el nombre del tag. Para una matriz SINT, INT o DINT, introduzca el primer elemento de la matriz.
Si desea comparar, convertir o manipular los caracteres, use un tipo de datos de cadena. Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree
tag
tag que controla la operacin nmero mximo de caracteres a leer si no se encuentran caracteres de terminacin Introduzca el nmero mximo de caracteres que contendr cualquier mensaje (es decir, cundo se debe interrumpir la lectura si no se encuentran caracteres de terminacin). Por ejemplo, si el mensaje tiene de 3 a 6 caracteres de longitud, introduzca 6. Serial Port Control Length debe ser menor o igual que el tamao de Destination. Si desea establecer la longitud de control del puerto serie igual que el tamao de Destination, introduzca 0.
inmediato
Characters Read
DINT
inmediato
Texto estructurado
ARL(Channel,Destination, SerialPortControl);
Los operandos son los mismos que para la instruccin ARL de lgica de escalera de rels. Sin embargo, usted especifica los valores de Serial Port Control Length y Characters Read accediendo a los miembros .LEN y .POS de la estructura SERIAL_PORT_CONTROL, en lugar de incluir los valores en la lista de operandos.
585
Captulo 17
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Estructura SERIAL_PORT_CONTROL
Mnemnico .EN .EU .DN .RN .EM .ER .FD .LEN .POS .ERROR Tipo de datos BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT DINT Descripcin El bit de habilitacin indica que la instruccin est habilitada. El bit de cola indica que la instruccin entr en la cola ASCII. El bit de efectuado indica que ha finalizado la instruccin, pero es asncrono respecto al escn de la lgica. El bit de ejecucin indica que la instruccin se est ejecutando. El bit de vaco indica que finaliz la instruccin, pero es sncrono respecto al escn de la lgica. El bit de error indica que la instruccin fall (errores). El bit de encontrado no se aplica a esta instruccin. La longitud indica el nmero mximo de caracteres a transferir al destino (es decir, cundo se debe interrumpir la lectura si no se encuentran caracteres de terminacin). La posicin muestra el nmero de caracteres que se leyeron. El error contiene un valor hexadecimal que identifica la causa del error.
Descripcin: La instruccin ARL retira los caracteres del bfer y los almacena en
Destination de la siguiente manera: La instruccin ARL contina ejecutndose hasta eliminar: el primer conjunto de caracteres de terminacin el nmero especificado de caracteres (Serial Port Control Length) Mientras que la instruccin ARL se est ejecutando, ninguna otra instruccin de puerto serie ASCII se ejecuta. Para programar la instruccin ARL, siga estas pautas: 1. Configure el puerto serie del controlador: a. Seleccione el modo de usuario. b. Defina los caracteres que sirven como caracteres de terminacin. 2. Use los resultados de una instruccin ABL para activar la instruccin ARL. Esto evita que la instruccin ARL retenga la cola ASCII mientras espera el nmero de caracteres de terminacin. 3. sta es una instruccin transicional: En la lgica de escalera de rels, cambie la condicin de entrada del rengln de borrado a establecido cada vez que deba ejecutarse la instruccin. En texto estructurado, condicione la instruccin de manera que slo se ejecute cuando ocurra una transicin. 4. Para activar una accin subsiguiente cuando se ha efectuado la instruccin, examine el bit EM.
586
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Captulo 17
587
Captulo 17
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
MV_line.FD MV_line.FD
ARL ARL
ASCII Read Line ASCII Read Line Channel Channel Destination Destination
SerialPort Control SerialPort Control SerialPort Control Length SerialPort Control Length Characters Read Characters Read
EN EN
DN DN
ER ER
Texto estructurado
ABL(0,MV_line);
588
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Captulo 17
La instruccin AWA enva un nmero especificado de caracteres del tag Source a un dispositivo serie, y aade uno o dos caracteres predefinidos.
ER ER
Operando Channel
Tipo DINT
Introduzca 0
Notas
Source
tag
tag que contiene los caracteres a enviar: Para un tipo de datos de cadena, introduzca el nombre del tag. Para una matriz SINT, INT o DINT, introduzca el primer elemento de la matriz.
Si desea comparar, convertir o manipular los caracteres, use un tipo de datos de cadena. Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree
tag
tag que controla la operacin nmero de caracteres a enviar Serial Port Control Length debe ser menor o igual que el tamao de Source. Si desea establecer Serial Port Control Length igual que el nmero de caracteres en Source, introduzca 0.
inmediato
Characters Sent
DINT
inmediato
Texto estructurado
AWA(Channel,Source, SerialPortControl);
Los operandos son los mismos que para la instruccin AWA de lgica de escalera de rels. Sin embargo, usted especifica los valores de Serial Port Control Length y Characters Sent accediendo a los miembros .LEN y .POS de la estructura SERIAL_PORT_CONTROL, en lugar de incluir los valores en la lista de operandos.
589
Captulo 17
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Estructura SERIAL_PORT_CONTROL
Mnemnico .EN .EU .DN .RN .EM .ER .FD .LEN .POS .ERROR Tipo de datos BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT DINT Descripcin El bit de habilitacin indica que la instruccin est habilitada. El bit de cola indica que la instruccin entr en la cola ASCII. El bit de efectuado indica que ha finalizado la instruccin, pero es asncrono respecto al escn de la lgica. El bit de ejecucin indica que la instruccin se est ejecutando. El bit de vaco indica que finaliz la instruccin, pero es sncrono respecto al escn de la lgica. El bit de error indica que la instruccin fall (errores). El bit de encontrado no se aplica a esta instruccin. La longitud indica el nmero de caracteres a enviar. La posicin muestra el nmero de caracteres que se enviaron. El error contiene un valor hexadecimal que identifica la causa del error.
b. Defina los caracteres que se agregarn a los datos. 2. sta es una instruccin transicional: En la lgica de escalera de rels, cambie la condicin de entrada del rengln de borrado a establecido cada vez que deba ejecutarse la instruccin. En texto estructurado, condicione la instruccin de manera que slo se ejecute cuando ocurra una transicin.
590
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Captulo 17
3. Enva usted siempre el mismo nmero de caracteres cada vez que se ejecuta la instruccin?
Si la respuesta es afirmativa la respuesta es negativa Entonces En Serial Port Control Length, introduzca el nmero de caracteres a enviar. Antes de que se ejecute la instruccin, establezca el miembro LEN del tag Source al miembro LEN del tag Serial Port Control.
591
Captulo 17
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
EN EN DN DN
0 string[1] string[1] '$1425\1' temp_high_write SerialPort Control temp_high_write SerialPort Control SerialPort Control Length SerialPort Control Length 5 Characters Sent Characters Sent 6
ER ER
Texto estructurado
IF temp_high THEN temp_high_write.LEN := 5; AWA(0,string[1],temp_high_write); temp_high := 0; END_IF;
592
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Captulo 17
EN EN
5 alarm_write.LEN alarm_write.LEN 5
DN DN ER ER
Texto estructurado
osri_1.InputBit := alarm; OSRI(osri_1);
593
Captulo 17
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
La instruccin AWT enva un nmero especificado de caracteres del tag de origen a un dispositivo serie.
DN DN ER ER
SerialPort Control SerialPort Control SerialPort ControlLength Length SerialPort Control Characters Sent Characters Sent
Operando Channel
Tipo DINT
Introduzca 0
Notas
Source
tag
tag que contiene los caracteres a enviar: Para un tipo de datos de cadena, introduzca el nombre del tag. Para una matriz SINT, INT o DINT, introduzca el primer elemento de la matriz.
Si desea comparar, convertir o manipular los caracteres, use un tipo de datos de cadena. Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree
tag
tag que controla la operacin el nmero de caracteres a enviar Serial Port Control Length debe ser menor o igual que el tamao de Source. Si desea establecer Serial Port Control Length igual que el nmero de caracteres en Source, introduzca 0.
inmediato
Characters Sent
DINT
inmediato
Texto estructurado
AWT(Channel,Source, SerialPortControl);
Los operandos son los mismos que para la instruccin AWT de lgica de escalera de rels. Sin embargo, usted especifica los valores de Serial Port Control Length y Characters Sent accediendo a los miembros .LEN y .POS de la estructura SERIAL_PORT_CONTROL, en lugar de incluir los valores en la lista de operandos.
594
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Captulo 17
Estructura SERIAL_PORT_CONTROL
Mnemnico .EN .EU .DN .RN .EM .ER .FD .LEN .POS .ERROR Tipo de datos BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT DINT DINT Descripcin El bit de habilitacin indica que la instruccin est habilitada. El bit de cola indica que la instruccin entr en la cola ASCII. El bit de efectuado indica que ha finalizado la instruccin, pero es asncrono respecto al escn de la lgica. El bit de ejecucin indica que la instruccin se est ejecutando. El bit de vaco indica que finaliz la instruccin, pero es sncrono respecto al escn de la lgica. El bit de error indica que la instruccin fall (errores). El bit de encontrado no se aplica a esta instruccin. La longitud indica el nmero de caracteres a enviar. La posicin muestra el nmero de caracteres que se enviaron. El error contiene un valor hexadecimal que identifica la causa del error.
2. sta es una instruccin transicional: En la lgica de escalera de rels, cambie la condicin de entrada del rengln de borrado a establecido cada vez que deba ejecutarse la instruccin. En texto estructurado, condicione la instruccin de manera que slo se ejecute cuando ocurra una transicin. 3. Enva usted siempre el mismo nmero de caracteres cada vez que se ejecuta la instruccin?
Si la respuesta es afirmativa la respuesta es negativa Entonces En Serial Port Control Length, introduzca el nmero de caracteres a enviar. Antes de que se ejecute la instruccin, mueva el miembro LEN del tag Source al miembro LEN del tag Serial Port Control.
595
Captulo 17
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
La condicin de salida de rengln se establece como Ninguna. falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta cuando la condicin de entrada del rengln cambia de borrado a establecido. La condicin de salida de rengln se establece como verdadera. n. a. n. a.
EnableIn se establece
n. a.
ejecucin de la instruccin
La instruccin enva un nmero especificado de caracteres. El bit .EN se establece. Los bits de estado restantes, excepto .UL, se borran. La instruccin trata de entrar en la cola ASCII.
post-escn
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
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Captulo 17
Texto estructurado
osri_1.InputBit := temp_low; OSRI(osri_1); IF (osri_1.OutputBit) THEN temp_low_write.LEN := 9; AWT(0,string[2],temp_low_write); END_IF;
10 MV_write.LEN MV_write.LEN 10
0 MV_msg MV_msg '$161365\8\1$r' SerialPort Control MV_write SerialPort Control MV_write SerialPort Control Length SerialPort Control Length 10 Characters Sent Characters Sent 10
Texto estructurado
osri_1.InputBit := MV_update; OSRI(osri_1);
597
Captulo 17
Instrucciones para puerto serie ASCII (ABL, ACB, ACL, AHL, ARD, ARL, AWA, AWT)
Notas:
598
Captulo
18
Introduccin
Si desea aadir caracteres al final de una cadena
Use las instrucciones de cadena ASCII para modificar y crear cadenas de caracteres ASCII.
Por ejemplo aadir caracteres de terminacin o delimitadores a una cadena Use esta instruccin CONCAT Disponible en estos lenguajes lgica de escalera de rels texto estructurado Vea la pgina 601
DELETE
603
FIND
605
INSERT
607
MID
609
Tambin es posible usar las siguientes instrucciones para comparar o convertir caracteres ASCII:
Si desea comparar una cadena con otra cadena determinar si los caracteres son iguales a caracteres especficos determinar si los caracteres son diferentes a caracteres especficos determinar si los caracteres son mayores o iguales que caracteres especficos determinar si los caracteres son mayores que caracteres especficos determinar si los caracteres son menores o iguales que caracteres especficos determinar si los caracteres son menores que caracteres especficos reacomodar los bytes de un tag INT, DINT o REAL encontrar una cadena en una matriz de cadenas convertir caracteres en un valor SINT, INT, DINT o REAL Use esta instruccin CMP EQU NEQ GEQ GRT LEQ LES SWPB FSC STOD Vea la pgina 206 211 242 211 219 223 227 300 347 614
599
Captulo 18
Si desea convertir caracteres en un valor REAL convertir un valor SINT, INT, DINT o REAL en una cadena de caracteres ASCII convertir un valor REAL en una cadena de caracteres ASCII
El LEN muestra la longitud de la cadena actual. El miembro DATA puede contener caracteres adicionales antiguos, los cuales no se incluyen en el conteo LEN. DATA Matriz SINT caracteres ASCII de la cadena Para obtener acceso a los caracteres de la cadena, utilice el nombre del tag. Por ejemplo, para acceder a los caracteres del tag string_1, introduzca string_1. Cada elemento de la matriz DATA contiene un carcter. Usted puede crear nuevos tipos de datos de cadena que almacenen menos o ms caracteres.
600
Captulo 18
Introduzca tag que contiene los caracteres iniciales tag que contiene los caracteres finales tag para almacenar el resultado
Notas Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree
Texto estructurado
CONCAT(SourceA,SourceB, Dest);
Los operandos son iguales a los de la instruccin CONCAT de lgica de escalera de rels.
601
Captulo 18
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels Accin de texto estructurado
La condicin de salida de rengln se establece como Ninguna. falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. n. a. n. a.
EnableIn se establece
n. a.
La instruccin concatena las cadenas. La condicin de salida de rengln se establece como falsa. Ninguna.
Texto estructurado
IF add_node THEN CONCAT(string_1,node_num_ascii,msg); add_node := 0; END_IF;
602
Captulo 18
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
inmediato tag
Start as como Quantity deben ser menores o iguales al tamao de DATA de Source.
Start
inmediato tag
Destination
cadena
tag
Texto estructurado
DELETE(Source,Qty,Start, Dest);
Los operandos son iguales a los de la instruccin DELETE de lgica de escalera de rels.
603
Captulo 18
56
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. EnableIn se establece n. a. EnableIn siempre se establece. La instruccin se ejecuta. ejecucin de la instruccin post-escn La instruccin elimina los caracteres especificados. La condicin de salida de rengln se establece como falsa. Ninguna. Accin de texto estructurado Ninguna. n. a. n. a.
11
term_text term_text 55 '55'
Texto estructurado
IF term_read.EM THEN DELETE(term_input,1,1,term_text); term_read.EM := 0; END_IF;
604
Captulo 18
La instruccin FIND localiza la posicin de una cadena especificada dentro de otra cadena.
Introduzca cadena en que se debe buscar la cadena que se debe buscar la posicin en Source en la cual se debe iniciar la bsqueda
Notas Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree Introduzca un nmero entre 1 y el tamao de DATA de Source.
Start
inmediato tag
Result
tag
Texto estructurado
FIND(Source,Search,Start, Result);
Los operandos son iguales a los de la instruccin FIND de lgica de escalera de rels antes descritos.
605
Captulo 18
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels Accin de texto estructurado La condicin de salida de rengln se establece como Ninguna. falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. EnableIn se establece n. a. EnableIn siempre se establece. La instruccin se ejecuta. ejecucin de la instruccin post-escn La instruccin busca los caracteres especificados. La condicin de salida de rengln se establece como Ninguna. falsa. n. a. n. a.
Texto estructurado
IF MV_read.EM THEN FIND(MV_msg,find,1,find_pos); MV_read.EM := 0; END_IF;
606
Captulo 18
La instruccin INSERT aade caracteres ASCII a un lugar especificado dentro de una cadena.
Introduzca
Notas
la cadena a la cual se Los tipos de datos de cadena son: deben aadir los caracteres tipo de datos STRING predeterminado la cadena que contiene los cualquier tipo de datos nuevo que usted caracteres que se deben cree aadir la posicin en Source A a la Introduzca un nmero entre 1 y el tamao de DATA de Source. cual se deben aadir los caracteres
Start
inmediato tag
Result
cadena
tag
Texto estructurado
INSERT(SourceA,SourceB, Start,Dest);
Los operandos son iguales a los de la instruccin INSERT de lgica de escalera de rels.
607
Captulo 18
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels Accin de texto estructurado
La condicin de salida de rengln se establece como Ninguna. falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. n. a. n. a.
EnableIn se establece
n. a.
La instruccin inserta los caracteres especificados. La condicin de salida de rengln se establece como falsa. Ninguna.
Texto estructurado
IF temp_high THEN INSERT(string_1,string_2,2,string_3); temp_high := 0; END_IF;
608
Captulo 18
La instruccin MID copia un nmero especificado de caracteres ASCII de una cadena y los almacena en otra cadena.
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
inmediato tag
Start as como Quantity deben ser menores o iguales al tamao de DATA de Source.
Start
inmediato tag
la posicin del primer Introduzca un nmero entre 1 y el tamao de carcter que se debe copiar DATA de Source.
Destination
cadena
tag
Texto estructurado
MID(Source,Qty,Start, Dest);
Los operandos son iguales a los de la instruccin MID de lgica de escalera de rels.
609
Captulo 18
Condiciones de fallo:
Tipo 4 Cdigo 51 Causa El valor LEN del tag de cadena es mayor que el tamao de DATA del tag de cadena. El valor de Start o Quantity no es vlido. Mtodo de recuperacin 1. Verifique que ninguna instruccin est escribiendo en el miembro LEN del tag de cadena. 2. En el valor LEN, introduzca el nmero de caracteres que contiene la cadena. 1. Verifique que el valor de inicio est entre 1 y el tamao de DATA de Source. 2. Verifique que el valor de Start ms el valor de Quantity sea menor o igual que el tamao de DATA de Source.
56
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. EnableIn se establece n. a. EnableIn siempre se establece. La instruccin se ejecuta. ejecucin de la instruccin post-escn La instruccin MID copia los caracteres especificados de una cadena y los almacena en otra cadena. La condicin de salida de rengln se establece como falsa. Ninguna. Accin de texto estructurado Ninguna. n. a. n. a.
Dest Dest
Texto estructurado
IF bag_read.EM THEN MID(bar_barcode,9,9,bag_flt_and_dest); bag_read.EM := 0; END_IF;
610
Captulo
19
Introduccin
Si desea convertir la representacin ASCII de un valor entero en un valor SINT, INT, DINT o REAL convertir la representacin ASCII de un valor de punto flotante (coma flotante) en un valor REAL convertir un valor SINT, INT, DINT o REAL en una cadena de caracteres ASCII convertir un valor REAL en una cadena de caracteres ASCII
Use las instrucciones de conversin ASCII para alterar el formato de los datos.
Por ejemplo convertir un valor proveniente de una bscula u otro dispositivo ASCII en un nmero entero para usarlo en la lgica convertir un valor proveniente de una bscula u otro dispositivo ASCII en un valor REAL para usarlo en la lgica convertir una variable en una cadena ASCII para enviarla a un terminal MessageView convertir una variable en una cadena ASCII para enviarla a un terminal MessageView convertir en maysculas una entrada hecha por un operador para poder buscarla en una matriz convertir en minsculas una entrada hecha por un operador para poder buscarla en una matriz Use esta instruccin STOD Disponible en estos lenguajes lgica de escalera de rels texto estructurado STOR lgica de escalera de rels texto estructurado DTOS lgica de escalera de rels texto estructurado RTOS lgica de escalera de rels texto estructurado 621 619 616 Vea la pgina 614
UPPER
623
LOWER
625
611
Captulo 19
Tambin es posible usar las siguientes instrucciones para comparar o manipular caracteres ASCII:
Si desea aadir caracteres al final de una cadena eliminar caracteres de una cadena identificar el carcter inicial de una subcadena insertar caracteres dentro de una cadena extraer caracteres de una cadena reacomodar los bytes de un tag INT, DINT o REAL comparar una cadena con otra cadena determinar si los caracteres son iguales a caracteres especficos determinar si los caracteres son diferentes a caracteres especficos determinar si los caracteres son mayores o iguales que caracteres especficos determinar si los caracteres son mayores que caracteres especficos determinar si los caracteres son menores o iguales que caracteres especficos determinar si los caracteres son menores que caracteres especficos encontrar una cadena en una matriz de cadenas Use esta instruccin CONCAT DELETE FIND INSERT MID SWPB CMP EQU NEQ GEQ GRT LEQ LES FSC Vea la pgina 601 603 605 607 609 300 206 211 242 215 219 223 227 347
612
Captulo 19
El LEN muestra la longitud de la cadena actual. El miembro DATA puede contener caracteres adicionales antiguos, los cuales no se incluyen en el conteo LEN. DATA Matriz SINT caracteres ASCII de la cadena Para obtener acceso a los caracteres de la cadena, utilice el nombre del tag. Por ejemplo, para acceder a los caracteres del tag string_1, introduzca string_1. Cada elemento de la matriz DATA contiene un carcter. Usted puede crear nuevos tipos de datos de cadena que almacenen menos o ms caracteres.
613
Captulo 19
La instruccin STOD convierte la representacin ASCII de un nmero entero en un valor entero o REAL.
Operando Source
Tipo cadena
Formato tag
Notas Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree
Destination
tag
Si el valor Source es un nmero de punto flotante (coma flotante), la instruccin convierte solamente la parte no fraccionaria del nmero (independientemente del tipo de datos de destino).
STOD(Source,Dest);
Texto estructurado
Los operandos son iguales a los de la instruccin STOD de lgica de escalera de rels.
614
Captulo 19
Condiciones de fallo
Tipo 4 Cdigo 51 Causa El valor LEN del tag de cadena es mayor que el tamao de DATA del tag de cadena. Mtodo de recuperacin 1. Verifique que ninguna instruccin est escribiendo en el miembro LEN del tag de cadena. 2. En el valor LEN, introduzca el nmero de caracteres que contiene la cadena. 4 53 El nmero de salida sobrepasa los lmites del tipo de datos de destino. Realice uno de los siguientes: Reduzca el tamao del valor ASCII. Use un tipo de datos mayor para el destino.
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. EnableIn se establece n. a. EnableIn siempre se establece. La instruccin se ejecuta. ejecucin de la instruccin SC se establece Destination se borra. La instruccin convierte Source. Si el resultado es cero, S:Z se establece. post-escn La condicin de salida de rengln se establece como falsa. Ninguna. Accin de texto estructurado Ninguna. n. a. n. a.
324
615
Captulo 19
Texto estructurado
IF MV_read.EM THEN STOD(MV_msg,MV_msg_nmbr); MV_read.EM := 0; END_IF;
La instruccin STOR convierte en un valor REAL la representacin ASCII de un valor de punto flotante (coma flotante).
Operando Source
Tipo cadena
Formato tag
Notas Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree
Destination
REAL
tag
STOR(Source,Dest);
Texto estructurado
Los operandos son iguales a los de la instruccin STOR de lgica de escalera de rels.
616
Captulo 19
Condiciones de fallo:
Tipo 4 Cdigo 51 Causa El valor LEN del tag de cadena es mayor que el tamao de DATA del tag de cadena. Mtodo de recuperacin 1. Verifique que ninguna instruccin est escribiendo en el miembro LEN del tag de cadena. 2. En el valor LEN, introduzca el nmero de caracteres que contiene la cadena. 4 53 El nmero de salida sobrepasa los lmites del tipo de datos de destino. Realice uno de los siguientes: Reduzca el tamao del valor ASCII. Use un tipo de datos mayor para el destino.
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels La condicin de salida de rengln se establece como falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. EnableIn se establece n. a. EnableIn siempre se establece. La instruccin se ejecuta. ejecucin de la instruccin S:C se establece. Destination se borra. La instruccin convierte Source. Si el resultado es cero, S:Z se establece. post-escn La condicin de salida de rengln se establece como falsa. Ninguna. Accin de texto estructurado Ninguna. n. a. n. a.
428.259
617
Captulo 19
Texto estructurado
IF weight_read.EM THEN STOR(weight_ascii,weight); weight_read.EM := 0; END_IF;
618
Captulo 19
Operando Source
Formato tag
Introduzca
Notas
el tag que contiene el valor Si Source es un nmero REAL, la instruccin lo convierte en un valor DINT. Consulte REAL en un nmero entero en la pgina 640.
Destination
cadena
tag
Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree
DTOS(Source,Dest);
Texto estructurado
Los operandos son iguales a los de la instruccin DTOS de lgica de escalera de rels.
619
Captulo 19
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels Accin de texto estructurado
La condicin de salida de rengln se establece como Ninguna. falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. n. a. n. a.
EnableIn se establece
n. a.
La instruccin convierte Source. La condicin de salida de rengln se establece como Ninguna. falsa.
'23'
Texto estructurado
IF temp_high THEN DTOS(msg_num,msg_num_ascii); temp_high := 0; END_IF;
620
Captulo 19
Introduzca el tag que contiene el valor REAL el tag en que se almacena el valor ASCII
Notas
Los tipos de datos de cadena son: tipo de datos STRING predeterminado cualquier tipo de datos nuevo que usted cree
RTOS(Source,Dest);
Texto estructurado
Los operandos son iguales a los de la instruccin RTOS de lgica de escalera de rels.
621
Captulo 19
Ejecucin:
Condicin preescn condicin de entrada de rengln es falsa condicin de entrada de rengln es verdadera Accin de lgica de escalera de rels Accin de texto estructurado
La condicin de salida de rengln se establece como Ninguna. falsa. La condicin de salida de rengln se establece como falsa. La instruccin se ejecuta. La condicin de salida de rengln se establece como verdadera. n. a. n. a.
EnableIn se establece
n. a.
La instruccin convierte Source. La condicin de salida de rengln se establece como Ninguna. falsa.
'15.3001003'
Texto estructurado
IF send_data THEN RTOS(data_1,data_1_ascii); send_data := 0; END_IF;
622
Captulo 19
Maysculas (UPPER)
Operandos:
UPPER(Source,Dest);
Texto estructurado
Los operandos son iguales a los de la instruccin UPPER de lgica de escalera de rels.
623
Captulo 19
La instruccin convierte Source en maysculas. La condicin de salida de rengln se establece como falsa. Ninguna.
Texto estructurado
IF terminal_read.EM THEN UPPER(catalog_number,catalog_number_upper_case); terminal_read.EM := 0; END_IF;
624
Captulo 19
LOWER(Source,Dest);
Texto estructurado
Los operandos son iguales a los de la instruccin LOWER de lgica de escalera de rels.
625
Captulo 19
La instruccin convierte Source en minsculas. La condicin de salida de rengln se establece como falsa. Ninguna.
Texto estructurado
IF terminal_read.EM THEN LOWER(item_number,item_number_lower_case); terminal_read.EM := 0; END_IF;
626
Captulo
20
Instrucciones de depuracin
(BPT, TPT)
Introduccin
Use las instrucciones de depuracin para monitorear el estado de la lgica cuando est en condiciones determinadas por usted. Estas instrucciones slo son compatibles con el software RSLogix Emulate 5000, con el cual usted puede emular un controlador Logix 5000 en su computadora personal.
Use esta instruccin BPT TPT Disponible en estos lenguajes lgica de escalera de rels lgica de escalera de rels Vea la pgina 627 631
Si desea detener la emulacin del programa cuando un rengln es verdadero registrar datos que usted selecciona cuando un rengln es verdadero
Los puntos de interrupcin detienen la emulacin del programa cuando un rengln es verdadero.
Rastrear esto
tag
Descripcin:
Los puntos de interrupcin se programan con la instruccin de salida de punto de interrupcin (BPT). Cuando las entradas en un rengln que contiene una instruccin BPT son verdaderas, la instruccin BPT detiene la ejecucin del programa. El software muestra una ventana que indica que se activ el punto de interrupcin y los valores que lo activaron.
627
Captulo 20
Cuando se activa un punto de interrupcin, el emulador muestra una ventana para informar que se produjo un punto de interrupcin. La barra de ttulo de la ventana muestra la ranura que contiene el emulador que encontr el punto de interrupcin. Cuando usted hace clic en OK, el emulador reanuda la ejecucin del programa. Si las condiciones que activaron el punto de interrupcin persisten, el punto de interrupcin volver a ocurrir. Adems el emulador abre una ventana de rastreo del punto de interrupcin. La ventana de rastreo muestra informacin acerca del punto de interrupcin y los valores.
Cuando se activa un punto de interrupcin, usted no podr editar su proyecto hasta que permita que contine la ejecucin. Puede entrar en lnea con el emulador para observar el estado de su proyecto, pero no podr editarlo. Si intenta aceptar una edicin de rengln mientras que est activado un punto de interrupcin, aparece un cuadro de dilogo que indica que el controlador no est en el modo correcto.
ATENCIN
Formato de cadena
Con la cadena de formato en las instrucciones de punto de rastreo y punto de interrupcin, puede controlar cmo aparecen los tags rastreados en las ventanas de punto de interrupcin o en los rastreos. El formato de la cadena se muestra aqu: encabezado:(texto)%(tipo) donde encabezado es una cadena de texto que identifica el punto de rastreo o el punto de interrupcin, texto es una cadena que describe el tag (o cualquier otro texto que usted seleccione) y %(tipo) indica el formato del tag. Usted necesita un indicador de tipo para cada tag que est rastreando con la instruccin de punto de rastreo o punto de interrupcin. Por ejemplo, podra formatear una cadena de punto de rastreo como se muestra aqu: Mi punto de rastreo:Tag 1 = %e y Tag 2 = %d El %e formatea el primer tag rastreado como valor con punto flotante (coma flotante) de doble precisin con un exponente, y %d formatea el segundo tag rastreado como valor entero decimal con signo. En este caso, usted tendra una instruccin de punto de rastreo con dos operandos de rastreo (Trace This) (uno para un valor REAL y uno para un valor INT, aunque el valor de cualquier tag puede formatearse con cualquier indicador).
628
Captulo 20
La ventana de punto de rastreo resultante que aparecera cuando se activa el punto de rastreo sera similar a esta.
El encabezado (el texto que precede el signo de dos puntos en la cadena de formato) aparece aqu.
El nmero de ranura indica la ranura que contiene el mdulo emulador que tiene el punto de rastreo o el punto de interrupcin rastreado en la ventana de rastreo.
El texto para el valor REAL (representado en la cadena de formato mediante %e) aparece aqu.
El texto para el valor INT (representado en la cadena de formato mediante %d) aparece aqu.
Ejemplo: Usted puede mostrar muchos valores de tag con la instruccin BPT.
Sin embargo, la cadena de formateo puede contener slo 82 caracteres. Puesto que la cadena de formateo requiere dos caracteres para cada tag que usted desea en el punto de interrupcin, no podr rastrear ms de 41 tags con una sola instruccin BPT. Sin embargo, para separar datos de tag en sus rastreos necesitar incluir espacios y otro formateo, reduciendo as el nmero de valores de tag que puede mostrar eficazmente una instruccin BPT a mucho menos de 41.
629
Captulo 20
Este rengln muestra un punto de interrupcin que detiene la ejecucin del programa cuando un valor analgico es mayor que 3.02 o menor que 2.01.
Usted desea mostrar la informacin del punto de interrupcin en la cadena Formato (myformat). En este caso, la cadena de formato contiene el siguiente texto:
Punto de interrupcin:El valor de entrada es %f
Cuando el punto de interrupcin se activa, la ventana de rastreo de punto de interrupcin muestra los caracteres antes del signo de dos puntos (Breakpoint) en la barra de ttulo de la ventana de rastreo. Los dems caracteres conforman los rastreos. En este ejemplo, %f representa el primer tag (y, en este caso, el nico) que se va a rastrear (analogvalue). Los rastreos resultantes se muestran aqu.
630
Captulo 20
Datos de registro de puntos de rastreo que usted selecciona cuando un rengln es verdadero.
Trace This
tag
Descripcin:
Los puntos de rastreo se programan con la instruccin de salida punto de rastreo (BPT). Cuando las entradas en un rengln que contiene una instruccin TPT son verdaderas, la instruccin TPT escribe una entrada de rastreo a una pantalla de rastreo o archivo de registros. Usted puede rastrear muchos tags con la instruccin TPT. Sin embargo, la cadena de formateo puede contener slo 82 caracteres. Puesto que la cadena de formateo requiere dos caracteres para cada tag que usted desea rastrear, no podr rastrear ms de 41 tags con una sola instruccin TPT. Sin embargo, para separar datos de tags en sus rastreos, necesitar incluir espacios y otro formateo, lo cual reduce el nmero de tags que puede rastrear eficazmente una instruccin TPT a mucho menos de 41.
Formato de cadena
Con la cadena de formato en las instrucciones de punto de rastreo y punto de interrupcin, puede controlar cmo aparecen los tags rastreados en las ventanas de rastreo o punto de interrupcin. El formato de la cadena se muestra aqu: encabezado:(texto)%(tipo) donde encabezado es una cadena de texto que identifica el punto de rastreo o el punto de interrupcin, texto es una cadena que describe el tag (o cualquier otro texto que usted seleccione) y %(tipo) indica el formato del tag. Usted necesita un indicador de tipo para cada tag que est rastreando con la instruccin de punto de rastreo o punto de interrupcin.
631
Captulo 20
Por ejemplo, podra formatear una cadena de punto de rastreo como se muestra aqu: Mi punto de rastreo:Tag 1 = %e y Tag 2 = %d El %e formatea el primer tag rastreado como valor con punto flotante (coma flotante) de doble precisin con un exponente, y %d formatea el segundo tag rastreado como valor entero decimal con signo. En este caso, usted tendra una instruccin de punto de rastreo con dos operandos de rastreo (Trace This) (uno para un valor REAL y uno para un valor INT, aunque el valor de cualquier tag puede formatearse con cualquier indicador). La ventana de punto de rastreo resultante que aparecera cuando se activa el punto de rastreo sera similar a esta.
El encabezado (el texto que precede el signo de dos puntos en la cadena de formato) aparece aqu.
El nmero de ranura indica la ranura que contiene el mdulo emulador que tiene el punto de rastreo o el punto de interrupcin rastreado en la ventana de rastreo.
El texto para el valor REAL (representado en la cadena de formato mediante %e) aparece aqu.
El texto para el valor INT (representado en la cadena de formato mediante %d) aparece aqu.
. Indicadores de estado
632
Captulo 20
Usted desea mostrar la informacin del punto de rastreo en la cadena Formato (myformat). En este caso, la cadena de formato contiene este texto:
Rastreo de entradas analgicas:Entradas analgicas = %f, %f y %f
Cuando el punto de rastreo se activa, los caracteres antes del signo de dos puntos (Rastreo de entradas analgicas) aparecen en la barra de ttulo de la ventana de rastreo. Los dems caracteres conforman los rastreos. En este ejemplo, %f representa los tags que se van a rastrear (analogvalue1, analogvalue2 y analogvalue3). Los rastreos resultantes se muestran aqu.
Cuando este rastreo se registra en el disco, los caracteres antes del signo de dos puntos aparecen en los rastreos.
633
Captulo 20
Esto indica cul punto de rastreo caus cul entrada de rastreo. ste es un ejemplo de una entrada de rastreo. Rastreo de entradas analgicas: es el texto de encabezado de la cadena de formato del punto de rastreo.
Rastreo de entradas analgicas:Entradas analgicas = 31.00201, 30.282000 y 30.110001
634
Apndice
Atributos comunes
Introduccin
Valores inmediatos
Cada vez que usted introduce un valor inmediato (constante) en formato decimal (por ejemplo, -2, 3), el controlador almacena el valor usando 32 bits. Si introduce un valor en una base diferente a la decimal como, por ejemplo, binario o hexadecimal, y no especifica todos y cada uno de los 32 bits, el controlador coloca un cero en los bits que usted no especifica (los rellena con ceros). EJEMPLO
Si introduce -1 16#ffff (-1) 8#1234 (668) 2#1010 (10)
Conversiones de datos
Las conversiones de datos ocurren cuando usted mezcla diferentes tipos de datos en la programacin:
Cuando se programa en Pueden ocurrir conversiones cuando usted
Lgica de escalera de rels Mezcla diferentes tipos de datos en los parmetros dentro de una instruccin Bloque de funciones Cablea dos parmetros que tienen diferentes tipos de datos
635
Apndice A
Atributos comunes
Las instrucciones se ejecutan ms rpidamente y requieren menos memoria si todos los operandos de la instruccin usan: el mismo tipo de datos un tipo de datos ptimo: En la seccin Operandos de cada instruccin en este manual, un tipo de datos en negrita indica un tipo de datos ptimo. Los tipos de datos DINT y REAL son generalmente los tipos de datos ptimos. La mayora de las instrucciones de bloque de funciones slo aceptan un tipo de datos (el tipo de datos ptimo) para sus operandos. Si usted mezcla diferentes tipos de datos y usa tags que no son del tipo de datos ptimo, el controlador convierte los datos segn estas reglas. Es alguno de los operandos un valor REAL?
Si La respuesta es afirmativa La respuesta es negativa Los operandos de entrada (por ejemplo, origen, tag en una expresin, lmite) se convierten en: REAL DINT
Despus de la ejecucin de la instruccin, el resultado (un valor DINT o REAL) se convierte en el tipo de datos del destino, si es necesario. Usted no puede especificar un tag BOOL en una instruccin que opera con tipos de datos enteros o REAL. Puesto que la conversin de datos requiere tiempo y memoria adicional, usted puede aumentar la eficiencia de su programa si: usa el mismo tipo de datos en toda la instruccin minimiza el uso de los tipos de datos SINT o INT En otras palabras, use todos los tags DINT o tags REAL, junto con valores inmediatos, en sus instrucciones. En las siguientes secciones se explica cmo se convierten los datos cuando usted usa tags SINT o INT o cuando mezcla diferentes tipos de datos.
636
Atributos comunes
Apndice A
Los siguientes ejemplos muestran los resultados de convertir un valor mediante extensin de signo y relleno con ceros.
Este valor 2#1111_1111_1111_1111 (-1) (-1)
2#1111_1111_1111_1111_1111_1111_1111_1111 Se convierte en este valor mediante extensin de signo 2#0000_0000_0000_0000_1111_1111_1111_1111 Se convierte en este valor mediante relleno con ceros
(65535)
Puesto que los valores inmediatos siempre se rellenan con ceros, la conversin de un valor SINT o INT puede producir resultados inesperados. En el siguiente ejemplo, la comparacin es falsa porque Source A, un INT, se convierte mediante extensin de signo; mientras que Source B, un valor inmediato, se rellena con ceros.
42093
637
Apndice A
Atributos comunes
Si utiliza un tag SINT o INT y un valor inmediato en una instruccin que convierte datos mediante extensin de signo, use uno de estos mtodos para manejar los valores inmediatos: Especifique cualquier valor inmediato en la base decimal Si va a introducir el valor en una base diferente a la decimal, especifique los 32 bits del valor inmediato. Para ello, introduzca el valor del bit del extremo izquierdo en cada posicin de bit a la izquierda hasta que haya 32 bits. Cree un tag para cada operando y use el mismo tipo de datos en toda la instruccin. Para asignar un valor constante, realice uno de los siguientes procedimientos: Introdzcalo en uno de los tags Aada una instruccin MOV que mueva el valor a uno de los tags. Use una instruccin MEQ para verificar slo los bits requeridos Los siguientes ejemplos muestran dos maneras de mezclar un valor inmediato con un tag INT. En ambos ejemplos se verifican los bits de un mdulo de E/S 1771 para determinar si todos los bits estn activados. Puesto que la palabra de datos de entrada de un mdulo de E/S 1771 es un tag INT, lo ms fcil es usar un valor constante de 16 bits. EJEMPLO Mezcla de un tag INT con un valor inmediato Puesto que remote_rack_1:I.Data[0] es un tag INT, el valor con el cual se va a verificar tambin se introduce como un tag INT.
EQU Equal Source A remote_rack_1:I.Data[0] 2#1111_1111_1111_1111 Source B int_0 2#1111_1111_1111_1111
42093
EJEMPLO
Mezcla de un tag INT con un valor inmediato Puesto que remote_rack_1:I.Data[0] es un tag INT, el valor con el cual se va a verificar primero se mueve a int_0, tambin un tag INT. Posteriormente la instruccin EQU compara ambos tags.
EQU Equal Source A remote_rack_1:I.Data[0] 2#1111_1111_1111_1111 Source B int_0 2#1111_1111_1111_1111
2#1111_1111_1111_1111
42093
638
Atributos comunes
Apndice A
Entero en REAL
El controlador almacena valores REAL en formato de valor con punto flotante (coma flotante) de precisin simple IEEE. ste utiliza un bit para el signo del valor, 23 bits para el valor base y ocho bits para el exponente (32 bits en total). Si usted mezcla un tag de nmero entero (SINT, INT o DINT) y un tag REAL como entradas en la misma instruccin, el controlador convierte en un valor REAL el valor entero, antes de que se ejecute la instruccin. Un valor SINT o INT siempre se convierte en el mismo valor REAL. Un valor DINT puede no convertirse al mismo valor REAL: Un valor REAL usa hasta 24 bits para el valor base (23 bits almacenados ms un bit oculto). Un valor DINT usa hasta 32 bits para el valor (uno para el signo y 31 para el valor). Si el valor DINT requiere ms de 24 bits significativos, puede no convertirse en el mismo valor REAL. De ser as, el controlador se redondear al valor REAL ms cercano usando 24 bits significativos.
639
Apndice A
Atributos comunes
IMPORTANTE
Los indicadores de estado aritmtico se establecen segn el valor que se est almacenando. Las instrucciones que normalmente no afectan palabras clave de estado aritmticas pueden parecer que lo hacen si ocurre una conversin de tipo debido a una mezcla de tipos de datos en los parmetros de instruccin. El proceso de conversin de tipo establece palabras clave de estado aritmtico.
640
Apndice
Introduccin
Este apndice describe aspectos que son nicos con las instrucciones de bloque de funciones. Repase la informacin proporcionada en este apndice para asegurarse de que entiende cmo funcionarn las rutinas de bloque de funciones. Cuando se programa un bloque de funciones, es necesario restringir el rango de unidades de ingeniera a +/-10+/-15 puesto que los clculos de punto flotante (coma flotante) internos se realizan usando punto flotante (coma flotante) de precisin simple. Las unidades de ingeniera que no se encuentran dentro de este rango pueden provocar una prdida de exactitud si los resultados se acercan a las limitaciones del punto flotante (coma flotante) de precisin simple (+/-10+/-38).
IMPORTANTE
bloque de funciones
641
Apndice B
Si usted desea realizar una operacin con un valor o valores de entrada, y producir un valor o valores de salida transferir datos entre bloques de funciones cuando stos estn: bastante separados en la misma hoja en hojas diferentes dentro de la misma rutina dispersar datos a varios puntos en la rutina
Use una bloque de funciones conector de cable de salida (OCON) y un conector de cable de entrada (ICON)
conector de cable de una salida (OCON) y varios conectores de cable de entrada (ICON)
Enclavamiento de datos
Si usted usa una IREF para especificar datos de entrada en una instruccin de bloques de funciones, los datos en la IREF se enclavan para el escn de la rutina de bloque de funciones. La IREF enclava datos desde los tags bajo el control del programa y tags bajo el control del controlador. El controlador actualiza todos los datos IREF al comienzo de cada escn.
IREF
En este ejemplo, el valor de tagA se almacena al comienzo de la ejecucin de la rutina. El valor almacenado se usa cuando se ejecuta Block_01. El mismo valor almacenado tambin se usa cuando se ejecuta Block_02. Si el valor de tagA cambia durante la ejecucin de la rutina, el valor almacenado de tagA en IREF no cambia hasta la siguiente ejecucin de la rutina.
Block_01
tagA
Block_02
642
Apndice B
Este ejemplo es igual al anterior. El valor de tagA se almacena slo una vez al comienzo de la ejecucin de la rutina. La rutina usa este valor almacenado en toda la rutina.
Block_01
tagA
Block_02
tagA
Comenzando con el software RSLogix 5000, versin 11, se puede usar el mismo tag en mltiples IREF y un OREF en la misma rutina. Puesto que los valores de tags en las IREF se enclavan en cada escn en toda la rutina, todas las IREF usarn el mismo valor, aunque una OREF obtenga un valor de tag diferente durante la ejecucin de la rutina. En este ejemplo, si tagA tiene un valor de 25.4 cuando la rutina comienza a ejecutar este escn, y Block_01 cambia el valor de tagA a 50.9, la segunda IREF cableada en Block_02 seguir usando un valor de 25.4 cuando Block_02 ejecute este escn. El nuevo valor de tagA de 50.9 no ser usado por ninguna IREF en esta rutina hasta el comienzo del siguiente escn.
643
Apndice B
Orden de ejecucin
El software de programacin RSLogix 5000 determina automticamente el orden de ejecucin de los bloques de funciones en una rutina cuando usted: verifica una rutina de bloque de funciones verifica un proyecto que contiene una rutina de bloque de funciones descarga un proyecto que contiene una rutina de bloque de funciones El orden de ejecucin se define cableando bloques de funciones unos con otros, e indicando el flujo de datos de los cables de retroalimentacin, si es necesario. Si los bloques de funciones no estn cableados unos con otros, no importa cul bloque se ejecuta primero. No existe un flujo de datos entre los bloques.
Si usted cablea los bloques de manera secuencial, el orden de ejecucin va de entrada a salida. Las entradas de un bloque requieren que los datos estn disponibles para que el controlador pueda ejecutar dicho bloque. Por ejemplo, el bloque 2 tiene que ejecutarse antes que el bloque 3 porque las salidas del bloque 2 alimentan las entradas del bloque 3.
1 2 3
El orden de ejecucin se relaciona slo a los bloques que estn cableados unos con otros. El siguiente es un buen ejemplo porque los dos grupos de bloques no estn cableados unos con otros. Los bloques dentro de un grupo especfico se ejecutan en el orden apropiado en relacin con los bloques de dicho grupo.
1 3 5
644
Apndice B
Resolucin de un lazo
Para crear un lazo de retroalimentacin alrededor de un bloque, cablee un pin de salida de un bloque a un pin de entrada del mismo bloque. El siguiente es un buen ejemplo. El lazo contiene un solo bloque, por lo que el orden de ejecucin no es importante.
Este pin de entrada usa una salida que el bloque produjo en el escn anterior.
Si hay un grupo de bloques en un lazo, el controlador no puede determinar cul bloque debe ejecutarse primero. En otras palabras, no puede resolver el lazo.
? ? ?
Para identificar cul bloque debe ejecutarse primero, marque el cable de entrada que crea el lazo (el cable de retroalimentacin) con el indicador Suponer datos disponibles. En el siguiente ejemplo, el bloque 1 usa la salida del bloque 3 que se produjo en la ejecucin previa de la rutina.
1 2 3
Este pin de entrada usa la salida que el bloque 3 produjo en el escn anterior. Indicador Suponer datos disponibles
El indicador Suponer datos disponibles define el flujo de datos dentro del lazo. La flecha indica que los datos sirven como entrada para el primer bloque en el lazo.
645
Apndice B
No marque todos los cables de un lazo con el indicador Suponer datos disponibles.
Esto es correcto 1 2 ? Esto no es correcto ?
El controlador no puede resolver el lazo porque los cables usan el indicador Suponer datos disponibles.
El indicador Suponer datos disponibles define el flujo de datos dentro del lazo.
646
Apndice B
647
Apndice B
Resumen
En resumen, una rutina de bloque de funciones se ejecuta en este orden: 1. El controlador enclava todos los valores de datos en las IREF. 2. El controlador ejecuta los otros bloques de funciones en el orden determinado segn su cableado. 3. El controlador escribe salidas en las OREF.
En general, las instrucciones de bloque de funciones que mantienen el historial no actualizan el historial con valores NAN o INF cuando se produce un overflow. Cada instruccin tiene una de estas respuestas frente a una condicin de overflow:
Respuesta 2: Los bloques con lmite de salida ejecutan su algoritmo y verifican el resultado para NAN o INF. Los lmites de salida son definidos por los parmetros de entrada HighLimit y LowLimit. Si INF, el bloque establece la salida un resultado limitado. Si NAN, los lmites de salida no se usan y el bloque establece la salida NAN. HLL INTG PI PIDE SCL SOC Respuesta 3: La condicin de overflow no se aplica. Estas instrucciones generalmente tienen una salida booleana.
ALMNTCH DEDTPMUL DERVPOSP ESELRLIM FGENRMPS HPFSCRV LDL2SEL LDLGSNEG LPFSRTP MAVESSUM MAXCTOT MINCUPDN MSTD MUX
BANDOSRI BNOTRESD BORRTOR BXORSETD CUTDTOFR D2SDTONR D3SD DFF JKFF OSFI
648
Apndice B
Modos de temporizacin
Estas instrucciones de control de procesos y de variadores aceptan diferentes modos de temporizacin. DEDT DERV HPF INTG LDL2 LDLG LPF NTCH PI PIDE RLIM SCRV SOC TOT
Aada lgica al programa para controlar cundo se ejecuta la instruccin. Por ejemplo, puede usar un temporizador para establecer el valor de OversampleDeltaT y as controlar la ejecucin usando la entrada EnableIn de la instruccin.
La entrada del proceso necesita muestrearse 5 - 10 veces ms rpido que el tiempo en que se ejecuta la instruccin a fin de minimizar los errores de muestreo entre la entrada y la instruccin.
649
Apndice B
Descripcin En el modo de muestreo en tiempo real, el tiempo delta (DeltaT) usado por la instruccin es la diferencia entre dos valores de sello de hora que corresponden a las actualizaciones de la entrada del proceso. Use este modo cuando la entrada del proceso tiene un sello de hora asociado con sus actualizaciones y usted necesita una coordinacin precisa.
El valor del sello de hora se lee en el nombre de tag introducido para el parmetro RTSTimeStamp de la instruccin. Normalmente este nombre de tag es un parmetro en el mdulo de entrada asociado con la entrada del proceso.
La instruccin compara el valor RTSTime configurado (perodo de actualizacin previsto) con el DeltaT calculado para determinar si la instruccin est leyendo cada actualizacin de la entrada del proceso. Si DeltaT no se encuentra dentro de un milisegundo del tiempo de configuracin, la instruccin establece el bit de estado RTSMissed para indicar que existe un problema con la lectura de actualizaciones de la entrada en el mdulo.
Las instrucciones basadas en tiempo requieren un valor constante para DeltaT a fin de que el algoritmo de control calcule correctamente la salida del proceso. Si DeltaT vara, se produce una discontinuidad en la salida del proceso. La severidad de la discontinuidad depende de la instruccin y del rango de variacin de DeltaT. Se produce una discontinuidad si: la instruccin no se ejecuta durante un escn; la instruccin se ejecuta varias veces durante una tarea; la tarea se est ejecutando y cambia la velocidad de escn de la tarea o el tiempo de muestreo de la entrada del proceso; el usuario cambia el modo de base de tiempo mientras la tarea se est ejecutando. El parmetro Order se cambia en un bloque de filtro mientras la tarea se est ejecutando. Al cambiar el parmetro Order se selecciona un algoritmo de control diferente dentro de la instruccin.
650
Apndice B
Parmetros de entrada
Parmetro de entrada TimingMode Tipo de datos DINT Descripcin Selecciona el modo de ejecucin de temporizacin. Valor: 0 1 2 Descripcin: modo peridico modo de sobremuestreo modo de muestreo en tiempo real
Cuando TimingMode = 0 y la tarea es peridica, la temporizacin peridica se establece y DeltaT se establece en la velocidad de escn de la tarea. Cuando TimingMode = 0 y la tarea es de evento o una tarea continua, la temporizacin peridica se habilita y DeltaT se establece en un valor igual al tiempo transcurrido desde la ltima vez que se ejecut la instruccin.
Cuando TimingMode = 1, la temporizacin de sobremuestreo se habilita y DeltaT se establece en el valor del parmetro OversampleDT.
Cuando TimingMode = 2, la temporizacin del muestreo en tiempo real se habilita y DeltaT es la diferencia entre los valores de sello de hora actual y previo que fueron ledos del mdulo asociado con la entrada.
Si TimingMode es no vlido, la instruccin establece el bit apropiado en Status. OversampleDT REAL Tiempo de ejecucin para temporizacin de sobremuestreo. El valor usado para DeltaT es en segundos. Si TimingMode = 1, implica que OversampleDT = 0.0 inhabilita la ejecucin del algoritmo de control. Si no es vlido, la instruccin establece DeltaT = 0.0 y establece el bit apropiado en Status. vlido = 0 a 4194.303 segundos valor predeterminado = 0.0
651
Apndice B
Descripcin Perodo de actualizacin del mdulo para temporizacin de muestreo en tiempo real. El perodo de actualizacin DeltaT previsto es en milisegundos. El perodo de actualizacin normalmente es el valor usado para configurar el tiempo de actualizacin del mdulo. Si no es vlido, la instruccin establece el bit apropiado en Status e inhabilita la verificacin de RTSMissed. vlido = 1 a 32,767 ms valor predeterminado = 1
TTSTimeStamp
DINT
Valor de sello de hora para temporizacin de muestreo en tiempo real. El valor de sello de hora que corresponde a la ltima actualizacin de la seal de entrada. Este valor se usa para calcular DeltaT. Si no es vlido, la instruccin establece el bit apropiado en Status, inhabilita la ejecucin del algoritmo de control e inhabilita la verificacin de RTSMissed. vlido = 1 a 32,767 ms (regresa de 32767 a 0) 1 conteo = 1 milisegundo valor predeterminado = 0
Parmetros de salida
Parmetro de salida Tipo de datos DeltaT REAL Descripcin Tiempo transcurrido entre actualizaciones. Es el tiempo transcurrido en segundos usado por el algoritmo de control para calcular la salida del proceso.
Peridica: DeltaT = velocidad de escn de la tarea si la tarea es una tarea peridica. DeltaT = tiempo transcurrido desde la ejecucin de la instruccin previa si la tarea es de evento o una tarea continua.
Muestreo en tiempo real: DeltaT = (RTSTimeStampn - RTSTimeStampn-1) Status TimingModeInv (Status.27) DINT BOOL Estado del bloque de funciones. Valor no vlido de TimingMode. Slo se usa en el modo de muestreo en tiempo real. Se establece cuando ABS | DeltaT - RTSTime | > 1 (.001 segundo). Valor no vlido de RTSTime. Valor no vlido de RTSTimeStamp. Valor DeltaT no vlido.
RTSMissed (Status.28) BOOL RTSTimeInv (Status.29) RTSTimeStampInv (Status.30) DeltaTInv (Status.31) BOOL BOOL BOOL
652
Apndice B
Temporizacin peridica
Temporizacin de sobremuestreo
DeltaT = OversampleDT Si DeltaT < 0 o DeltaT > 4194.303 segundos, la instruccin establece DeltaT = 0.0 y establece el bit apropiado en Status. Determine el tipo de tarea Si DeltaT > 0, la instruccin se ejecuta.
DeltaT = RTSTimeStampn - RTSTimeStampn-1 Si DeltaT > 0, la instruccin se ejecuta. Si |RTSTIME - DeltaT| > 1, la instruccin establece el bit RTSMissed en Status.
Tarea peridica
DeltaT = tiempo transcurrido desde la ltima ejecucin Si DeltaT > 0, la instruccin se ejecuta.
653
Apndice B
Hay varias instrucciones compatibles con el concepto de control de programa/operador. Estas instrucciones incluyen: Seleccin mejorada (ESEL) Totalizador (TOT) PID mejorado (PIDE) Rampa y estabilizacin (RMPS) Dispositivo de 2 estados discretos (D2SD) Dispositivo de 3 estados discretos (D3SD)
El control de programa/operador permite controlar estas instrucciones simultneamente desde el programa de usuario y desde un dispositivo de interface de operador. Cuando est en control de programa, la instruccin es controlada por las entradas del programa a la instruccin; cuando est en control del operador, la instruccin es controlada por las entradas del operador a la instruccin. El control de programa u operador se determina mediante el uso de estas entradas:
Entrada .ProgProgReq .ProgOperReq .OperProgReq .OperOperReq Descripcin Una peticin del programa para ir a control de programa. Una peticin del programa para ir a control de operador. Una peticin del operador para ir a control de programa. Una peticin del operador para ir a control de operador.
Para determinar si una instruccin est en control de programa o de operador, examine la salida ProgOper. Si ProgOper est establecida, la instruccin est en control del programa; si ProgOper se borra, la instruccin est en control del operador. El control de operador tiene precedencia sobre el control de programa si ambos bits de peticin de entrada estn establecidos. Por ejemplo, si ProgProgReq y ProgOperReq estn establecidos, la instruccin pasa a control de operador.
654
Apndice B
Las entradas de peticin de programa tienen precedencia sobre las entradas de peticin de operador. Esto proporciona la capacidad de usar las entradas ProgProgReq y ProgOperReq para bloquear una instruccin en un control deseado. Por ejemplo, supongamos que una instruccin Totalizer siempre se usar en el control de operador y que el programa de usuario nunca controlar la ejecucin o paro de la instruccin Totalizer En este caso, usted podra cablear un valor literal de 1 en ProgOperReq. Con esto impedira que el operador pueda poner Totalizer en el control de programa estableciendo OperProgReq desde un dispositivo de interface de operador.
Puesto que la entrada ProgOperReq siempre est establecida, presionar el botn Program en la plantilla (lo cual establece la entrada OperProgReg) no tiene ningn efecto. Normalmente, establecer OperProgReq pone TOT en control de programa.
Cablear un 1 en ProgOperReq significa que el programa de usuario desea que TOT siempre est en control de operador.
655
Apndice B
De igual modo, el establecer constantemente ProgProgReq puede bloquear la instruccin en control de programa. Esto es til para las secuencias de puesta en marcha automtica cuando usted desea que el programa controle la accin de la instruccin sin tener que preocuparse de que un operador tome accidentalmente el control de la instruccin. En este ejemplo el programa establece la entrada ProgProgReq durante la puesta en marcha y posteriormente borra la entrada ProgProgReq una vez que concluye la puesta en marcha. Una vez que se borra la entrada ProgProgReq, la instruccin permanece en control de programa hasta que recibe una peticin de cambiar. Por ejemplo, el operador podra establecer la entrada OperOperReq desde la plantilla para asumir el control de esa instruccin. El siguiente ejemplo muestra cmo bloquear una instruccin en control de programa.
Cuando se establece StartupSequenceActive, la instruccin PIDE se coloca en control de programa y en modo manual. El valor StartupCV se usa como salida de lazo.
Las entradas de peticin de operador a una instruccin siempre son borradas por la instruccin cuando sta se ejecuta. Esto permite que las interfaces de operador funcionen con estas instrucciones simplemente estableciendo el bit de peticin del modo deseado. No es necesario programar la interface de operador para restablecer los bits de peticin. Por ejemplo, si una interface de operador establece la entrada OperAutoReq a una instruccin PIDE, cuando se ejecuta la instruccin PIDE, sta determina cul debe ser la respuesta apropiada y borra OperAutoReq.
656
Apndice B
Las entradas de peticin de programa normalmente no son borradas por la instruccin porque stas normalmente estn cableadas como entradas en la instruccin. Si la instruccin borra estas entradas, la entrada sera establecida nuevamente por la entrada cableada. Puede haber situaciones en las que usted desee usar otra lgica para establecer las peticiones de programa de manera tal que desee que las peticiones de programa sean borradas por la instruccin. En este caso puede establecer la entrada ProgValueReset y la instruccin siempre borrar las entradas de peticin del modo de programacin cuando sta se ejecute. En este ejemplo se usa un rengln de lgica de escalera en otra rutina para realizar un enclavamiento monoestrable de ProgAutoReq a una instruccin PIDE cuando se presiona un botn pulsador. Puesto que la instruccin PIDE automticamente borra las peticiones del modo de programacin, usted no tiene que escribir ninguna lgica de escalera para borrar ProgAutoReq despus de que se ejecute la rutina, y la instruccin PIDE recibir slo una peticin para pasar a Auto cada vez que se presione el botn pulsador.
Cuando se presiona el botn pulsador TIC101AutoReq, se realiza un enclavamiento monoestrable de ProgAutoReq para la instruccin PIDE TIC101. TIC101 se ha configurado con la entrada ProgValueReset establecida; por lo tanto, cuando se ejecuta la instruccin PIDE, sta automticamente borra ProgAutoReq.
657
Apndice B
Notas:
658
Apndice
Introduccin
Este apndice describe aspectos que son nicos con la programacin de texto estructurado. Repase la informacin proporcionada en este apndice para asegurarse de que entiende cmo se ejecutar la programacin de texto estructurado.
Si desea informacin acerca de Sintaxis del texto estructurado Asignaciones Expresiones Instrucciones Construcciones Comentarios Vea la pgina 659 661 663 670 671 687
El texto estructurado es un lenguaje de programacin textual que usa declaraciones para definir lo que se va a ejecutar. El texto estructurado no permite distinguir maysculas de minsculas. Use caracteres de tabulacin y de retorno de carro (lneas separadas) para facilitar la lectura del texto estructurado. Dichos caracteres no tienen ningn efecto en la ejecucin del texto estructurado. El texto estructurado no permite distinguir maysculas de minsculas. El texto estructurado contiene estos componentes:
Definicin Use una declaracin de asignacin para asignar valores a los tags. El operador := es el operador de asignacin. Termine la asignacin con un punto y coma ;.
659
Apndice C
Definicin Una expresin es parte de una declaracin de construccin o asignacin completa. Una expresin evala segn un nmero (expresin numrica) o segn un estado de verdadero o falso (expresin BOOL).
Ejemplos
Una expresin contiene: tags Un rea de la memoria con nombre asignado, donde se almacenan los datos (BOOL, SINT,INT,DINT, REAL, cadena). Un valor constante. Un smbolo o mnemnico que especifica una operacin dentro de una expresin. Cuando se ejecuta, una funcin produce un valor. Use parntesis para delimitar el operando de una funcin. Aunque su sintaxis es similar, las funciones se diferencian de las instrucciones porque las funciones slo pueden usarse en expresiones. Las instrucciones no pueden usarse en expresiones. instruccin (ver pgina 670) Una instruccin es una declaracin autnoma. Una instruccin usa parntesis para delimitar sus operandos. Segn la instruccin, puede haber cero, uno o varios operandos. Cuando se ejecuta, una instruccin produce uno o ms valores que son parte de una estructura de datos. Termine la instruccin con un punto y coma ;. instruction(operand1, operand2,operand3); instruction(operand); instruction(); value1
inmediatos operadores
funciones
function(tag1)
Aunque su sintaxis es similar, las instrucciones se diferencian de las funciones porque las instrucciones no pueden usarse en expresiones. Las funciones slo pueden usarse en expresiones.
660
Apndice C
Definicin Una declaracin condicional usada para activar cdigo de texto estructurado (a saber, otras declaraciones). Termine la construccin con un punto y coma ;.
Texto que explica o aclara lo que hace una seccin de texto estructurado. //comment Use comentarios para facilitar la interpretacin del texto estructurado. Los comentarios no tienen ningn efecto en la ejecucin del texto estructurado. Los comentarios pueden aparecer en cualquier lugar del texto estructurado. /*start of comment . . . end of comment*/ (*start of comment . . . end of comment*)
Asignaciones
Use una asignacin para cambiar el valor almacenado dentro de un tag. Una asignacin tiene esta sintaxis: tag := expression ; donde:
Componente tag Descripcin representa el tag que est obteniendo el nuevo valor el tag debe ser BOOL, SINT, INT, DINT o REAL := expresin es el smbolo de asignacin representa el nuevo valor que se va a asignar al tag Si el tag es de este tipo de Use este tipo de expresin: datos: BOOL SINT INT DINT REAL ; finaliza la asignacin expresin BOOL expresin numrica
661
Apndice C
El tag retiene el valor asignado hasta que otra asignacin cambia el valor. La expresin puede ser simple, como un valor inmediato u otro nombre de tag, o la expresin puede ser compleja e incluir varios operadores y/o funciones Vea la siguiente seccin Expresiones en la pgina 663 para obtener detalles.
662
Apndice C
Para aadir o insertar una cadena de caracteres en un tag de cadena, use cualquiera de estas instrucciones de cadena ASCII:
Para aadir caracteres al final de una cadena insertar caracteres dentro de una cadena Use esta instruccin CONCAT INSERT
Expresiones
Una expresin es un nombre de tag, ecuacin o comparacin. Para escribir una expresin, use cualquiera de los siguientes: nombre de tag que almacena el valor (variable) nmero que usted introduce directamente en una expresin (valor inmediato) funciones, tales como: ABS, TRUNC operadores, tales como: +, -, <, >, And, Or Cuando escriba las expresiones, siga estas reglas generales: Use cualquier combinacin de letras maysculas y minsculas. Por ejemplo, cualquiera de estas tres variaciones de AND es aceptable: AND, And, and. Para requisitos ms complejos, use parntesis a fin de agrupar expresiones dentro de otras expresiones. Esto hace que toda la expresin sea ms fcil de leer y asegura que la expresin se ejecute en la secuencia deseada. Consulte Determine el orden de ejecucin en la pgina 669.
663
Apndice C
En texto estructurado usted usa dos tipos de expresiones: Expresin BOOL: Una expresin que produce ya sea el valor BOOL de 1 (verdadero) o 0 (falso). Una expresin booleana usa tags booleanos, operadores relacionales y operadores lgicos para comparar valores o verificar si las condiciones son verdaderas o falsas. Por ejemplo, tag1>65. Una expresin booleana simple puede ser un simple tag BOOL. Normalmente usted usa expresiones para condicionar la ejecucin de otra lgica. Expresin numrica: Una expresin que calcula un valor entero o de punto flotante (coma flotante). Una expresin numrica usa operadores aritmticos, funciones aritmticas y operadores a nivel de bits. Por ejemplo, tag1+5. A menudo usted anida una expresin numrica dentro de una expresin booleana. Por ejemplo, (tag1+5)>65. Use la siguiente tabla a fin de seleccionar operadores para sus expresiones:
Si desea Calcular un valor aritmtico Comparar dos valores o cadenas Verificar si determinadas condiciones son verdaderas o falsas Comparar los bits dentro de valores Entonces Use funciones y operadores aritmticosen la pgina 665. Use operadores relacionalesen la pgina 666. Use operadores lgicosen la pgina 668. Use operadores a nivel de bitsen la pgina 669.
664
Apndice C
Las funciones aritmticas realizan operaciones matemticas. Especifique una constante, un tag no booleano o una expresin para la funcin.
Para obtener valor absoluto arco coseno arco seno arco tangente coseno radianes a grados logaritmo natural logaritmo base 10 grados a radianes seno raz cuadrada tangente truncar Use esta funcin ABS (numeric_expression) ACOS (numeric_expression) ASIN (numeric_expression) ATAN (numeric_expression) COS (numeric_expression) DEG (numeric_expression) LN (numeric_expression) LOG (numeric_expression) RAD (numeric_expression) SIN (numeric_expression) SQRT (numeric_expression) TAN (numeric_expression) TRUNC (numeric_expression) Tipo de datos ptimo DINT, REAL REAL REAL REAL REAL DINT, REAL REAL REAL DINT, REAL REAL DINT, REAL REAL DINT, REAL
665
Apndice C
Por ejemplo:
Use este formato Ejemplo Para esta situacin value1 operator value2 Si gain_4 y gain_4_adj son tags DINT y su especificacin dice: Aadir 15 a gain_4 y almacenar el resultado en gain_4_adj. Si alarm y high_alarm son valores DINT y su especificacin dice: Cambiar signo de high_alarm y almacenar el resultado en alarm. Si overtravel y overtravel_POS son tags DINT y su especificacin dice: Calcular el valor absoluto de overtravel y almacenar el resultado en overtravel_POS. Si adjustment y position son tags DINT, sensor1 y sensor2 son tags REAL, y su especificacin dice: Encontrar el valor absoluto del promedio de sensor1 y sensor2, aadir el adjustment y guardar el resultado en position. Usted escribira gain_4_adj := gain_4+15; alarm:= -high_alarm; overtravel_POS := ABS(overtravel);
operator value1
function(numeric_expression)
666
Apndice C
Por ejemplo:
Use este formato Ejemplo Para esta situacin value1 operator value2 stringtag1 operator stringtag2 char1 operator char2 Usted escribira Si temp es un tag DINT y su especificacin dice: IF temp<100 THEN... Si temp es menor que 100 entonces Si bar_code y dest son tags de cadena y su especificacin dice: Si bar_code es igual a dest entonces Si bar_code es un tag de cadena y su especificacin dice: Si bar_code.DATA[0] es igual a A entonces IF bar_code=dest THEN...
IF bar_code.DATA[0]=65 THEN...
Para introducir un carcter ASCII directamente en la expresin, introduzca el valor decimal del carcter. bool_tag := bool_expressions Si count y length son tags DINT, done es un tag BOOL y su especificacin dice Si count es mayor o igual que length, usted ya termin el conteo. done := (count >= length);
Cdigos hexadecimales $31$61$62 $31$62 $41 $41$42 $42 $61 $61$62 a>B AB < B
1b A AB B a ab
Las cadenas son iguales si sus caracteres coinciden. Los caracteres permiten distinguir maysculas de minsculas. La A mayscula ($41) es diferente a la a minscula ($61). Para obtener el valor decimal y el cdigo hexadecimal de un carcter, consulte la contraportada de este manual.
667
Apndice C
Por ejemplo:
Use este formato Ejemplo Para esta situacin
BOOLtag NOT BOOLtag
Si photoeye es un tag BOOL y su especificacin dice: Si photoeye est activada, entonces Si photoeye es un tag BOOL y su especificacin dice: Si photoeye est desactivada entonces Si photoeye es un tag BOOL, temp es un tag DINT y su especificacin dice: Si photoeye est activada y temp es menor que 100 entonces. Si photoeye es un tag BOOL, temp es un tag DINT y su especificacin dice: Si photoeye est activada o temp es menor que 100 entonces. Si photoeye1 y photoeye2 son tags BOOL y su especificacin dice: Si: photoeye1 est activada mientras que photoeye2 est desactivada o photoeye1 est desactivada mientras que photoeye2 est activada entonces
expression1 OR expression2
Si photoeye1 y photoeye2 son tags BOOL, open es un tag BOOL y su especificacin dice: Si photoeye1 y photoeye2 estn ambas activadas, establezca open en verdadero.
668
Apndice C
Por ejemplo:
Use este formato Ejemplo Para esta situacin value1 operator value2 Si input1, input2, y result1 son tags DINT y su especificacin dice: Calcule el resultado a nivel de bits de input1 e input2. Guarde el resultado en result1. Usted escribira result1 := input1 AND input2;
669
Apndice C
Instrucciones
Las declaraciones de texto estructurado tambin pueden ser instrucciones. Consulte en la tabla de ubicacin al comienzo de este manual la lista de las instrucciones disponibles en texto estructurado. Una instruccin de texto estructurado se ejecuta cada vez que se escanea. Una instruccin de texto estructurado dentro de una construccin se ejecuta cada vez que las condiciones de la construccin son verdaderas. Si las condiciones de la construccin son falsas, las declaraciones dentro de la construccin no se escanean. No existe una condicin de rengln o transicin de estado que active la ejecucin. Esto difiere de las instruccin de bloque de funciones que usan EnableIn para activar la ejecucin. Las instrucciones de texto estructurado se ejecutan como si EnableIn siempre estuviera establecido. Esto tambin difiere de las instrucciones de lgica de escalera que usan condicin de entrada de rengln para activar la ejecucin. Algunas instrucciones de lgica de escalera de rels slo se ejecutan cuando la condicin de entrada de rengln cambia de falso a verdadero. stas son instrucciones de lgica de escalera de rels transicionales. En texto estructurado, las instrucciones se ejecutarn cada vez que sean escaneadas, a menos que usted condicione previamente la ejecucin de la instruccin de texto estructurado. Por ejemplo, la instruccin ABL es una instruccin transicional en lgica de escalera de rels. En este ejemplo, la instruccin ABL slo se ejecuta en un escn cuando tag_xic cambia de borrado a establecido. La instruccin ABL no se ejecuta cuando tag_xic permanece establecido ni cuando tag_xic se borra.
En texto estructurado, si usted escribe este ejemplo como: IF tag_xic THEN ABL(0,serial_control); END_IF; la instruccin ABL se ejecutar en cada escn que tag_xic est establecido, no slo cuando tag_xic cambie de borrado a establecido.
670
Apndice C
Si desea que la instruccin ABL se ejecute slo cuando tag_xic cambie de borrado a establecido, tiene que condicionar la instruccin de texto estructurado. Use un impulso para activar la ejecucin.
osri_1.InputBit := tag_xic; OSRI(osri_1);
Construcciones
Si desea hacer algo si o cuando ocurre una condicin especfica seleccionar qu hacer segn a un valor numrico
hacer algo un nmero especfico de veces antes de hacer otra cosa continuar haciendo algo siempre que ciertas condiciones sean verdaderas seguir haciendo algo hasta que una condicin sea verdadera
671
Apndice C
IF...THEN
Operandos:
Use IFTHEN para hacer algo si o cuando ocurre una condicin especfica.
Texto estructurado
IF bool_expression THEN <statement>; END_IF;
Tipo BOOL
Introduzca Expresin o tag BOOL que evala respecto a un valor BOOL (expresin BOOL)
. . .
opcional
. . .
opcional
ELSE <statement>;
. . .
END_IF; Para usar ELSIF o ELSE, siga estas pautas:
1. Para seleccionar entre varios posibles grupos de declaraciones, aada una o ms declaraciones ELSIF. Cada instruccin ELSIF representa una ruta alternativa. Especifique todas las rutas ELSIF que necesite. El controlador ejecuta la primera instruccin IF o ELSIF verdadera y se salta el resto de las instrucciones ELSIF y ELSE. 2. Para hacer algo cuando todas las condiciones IF o ELSIF son falsas, aada una declaracin ELSE.
672
Apndice C
La siguiente tabla resume las diferentes combinaciones de IF, THEN, ELSIF y ELSE.
Si desea Y Use esta construccin IFTHEN IFTHENELSE IFTHENELSIF IFTHENELSIFELSE
hacer algo si o cuando las condiciones no hacer nada si las condiciones son son verdaderas falsas hacer algo diferente si las condiciones son falsas seleccionar entre declaraciones alternativas (o grupos de declaraciones) segn las condiciones de entrada no hacer nada si las condiciones son falsas asignar declaraciones predeterminadas si todas las condiciones son falsas
Ejemplo 2: IFTHENELSE
Si usted desea esto Si el contacto de direccin del transportador = avance (1) entonces luz = apagada De lo contrario, luz = encendida Introduzca este texto estructurado IF conveyor_direction THEN light := 0; ELSE light [:=] 1; END_IF;
El [:=] le indica al controlador que borre light cada vez que el controlador: entre al modo de MARCHA salga del paso de un SFC si usted configura el SFC para Restablecimiento automtico. (Esto slo se aplica si usted incorpora la asignacin en la accin del paso o usa la accin para llamar una rutina de texto estructurado mediante una instruccin JSR).
673
Apndice C
Ejemplo 3: IFTHENELSIF
Si usted desea esto Si el interruptor de final de carrera de azcar baja = baja (activado) y el interruptor de final de carrera de azcar alta = no alta (activado) entonces vlvula de entrada = abierta (activada) Hasta que el interruptor de final de carrera de azcar alta = alta (desactivado) Introduzca este texto estructurado IF Sugar.Low & Sugar.High THEN
El [:=] le indica al controlador que borre Sugar.Inlet cada vez que el controlador: entre al modo de MARCHA salga del paso de un SFC si usted configura el SFC para Restablecimiento automtico. (Esto slo se aplica si usted incorpora la asignacin en la accin del paso o usa la accin para llamar una rutina de texto estructurado mediante una instruccin JSR).
Ejemplo 4: IFTHENELSIFELSE
Si usted desea esto Si la temperatura del tanque > 100 entonces bomba = lenta Si la temperatura del tanque > 200 entonces bomba = rpida de lo contrario, bomba = desactivada ELSE pump.fast :=0; pump.slow :=0; pump.off :=1; END_IF; Introduzca este texto estructurado IF tank.temp > 200 THEN pump.fast :=1; pump.slow :=0; pump.off :=0; ELSIF tank.temp > 100 THEN pump.fast :=0; pump.slow :=1; pump.off :=0;
674
Apndice C
CASE...OF
Operandos:
Texto estructurado
CASE numeric_expression OF selector1: statement; selectorN: statement; ELSE statement; END_CASE;
Operando
numeric_ expression
selector
inmediato
IMPORTANTE
Si usted usa valores REAL, emplee un rango de valores para un selector, ya que es ms probable que un valor REAL se encuentre dentro de un rango de valores, y no que coincida exactamente con un valor especfico.
selector2 :
. . .
selector3 : <statement>;
. . .
ELSE <statement>;
opcional
. . .
END_CASE;
675
Apndice C
Vea la tabla en la siguiente pgina para obtener los valores de selector vlidos. La sintaxis para introducir los valores de selector es:
Cuando el selector es un valor varios valores distintos Introduzca value: statement value1, value2, valueN : <statement>
Use una coma (,) para separar cada valor. un rango de valores value1..valueN : <statement>
Use dos puntos (..) para identificar el rango. valores distintos ms un rango de valores valuea, valueb, value1..valueN : <statement>
La construccin CASE es similar a una declaracin de interruptor en los lenguajes de programacin C o C++. Sin embargo, con la construccin CASE el controlador ejecuta slo las declaraciones asociadas con la primera coincidencia con el valor de selector. La ejecucin siempre se interrumpe despus de las declaraciones de dicho selector y va a la declaracin END_CASE.
676
Apndice C
Ejemplo
Si usted desea esto Si el nmero de receta = 1 entonces Ingrediente A salida 1 = abierto (1) Ingrediente B salida 4 = abierto (1) Si el nmero de receta = 2 3 entonces Ingrediente A salida 4 = abierto (1) Ingrediente B salida 2 = abierto (1) Si el nmero de receta = 4, 5, 6 7 entonces Ingrediente A salida 4 = abierto (1) Ingrediente B salida 2 = abierto (1) Si el nmero de receta = 8, 11, 12 13 entonces Ingrediente A salida 1 = abierto (1) Ingrediente B salida 4 = abierto (1) De lo contrario, todas las salidas = cerradas (0)
ELSE Ingredient_A.Outlet_1 [:=]0; Ingredient_A.Outlet_4 [:=]0; Ingredient_B.Outlet_2 [:=]0; Ingredient_B.Outlet_4 [:=]0; END_CASE; 8,11..13 Ingredient_A.Outlet_1 :=1; Ingredient_B.Outlet_4 :=1; 4..7: Ingredient_A.Outlet_4 :=1; Ingredient_B.Outlet_2 :=1; 2,3:
El [:=] le indica al controlador que tambin borre los tags de salida cada vez que el controlador: entre al modo de MARCHA salga del paso de un SFC si usted configura el SFC para Restablecimiento automtico. (Esto slo se aplica si usted incorpora la asignacin en la accin del paso o usa la accin para llamar una rutina de texto estructurado mediante una instruccin JSR).
677
Apndice C
FORDO
Operandos:
Use el lazo FORDO para hacer algo una cantidad determinada de veces antes de hacer otra cosa.
Texto estructurado
FOR count:= initial_value TO final_value BY increment DO <statement>; END_FOR;
Operando count
Formato tag
Descripcin tag para almacenar la posicin de conteo a medida que FORDO se ejecuta
initial_ value
se debe evaluar con respecto a un nmero especifica el valor inicial del conteo
final_ value
especifica el valor final del conteo, el cual determina cundo salir del lazo
increment
(opcional) cantidad a incrementar el conteo cada vez que se pasa por el lazo
IMPORTANTE
Asegrese de no efectuar iteraciones dentro de un lazo demasiadas veces en un solo escn. El controlador no ejecuta ninguna otra declaracin en la rutina hasta que completa el lazo. Si el tiempo que se requiere para completar el lazo es mayor que el temporizador de control (watchdog) de la tarea, se produce un fallo mayor. Considere usar una construccin diferente, por ejemplo IF...THEN.
678
Apndice C
opcional
END_IF;
Si existen condiciones cuando usted desea salir del lazo anticipadamente, use otras declaraciones, tal como la construccin IF...THEN, para condicionar una declaracin EXIT.
END_FOR; Los siguientes diagramas muestran cmo se ejecuta un lazo FOR...DO y cmo una declaracin EXIT deja el lazo anticipadamente.
Efectuado x veces? no declaracin 1 declaracin 2 declaracin 3 declaracin 4 resto de la rutina s Efectuado x veces? no declaracin 1 declaracin 2 declaracin 3 declaracin 4 Salir? no resto de la rutina s
Para detener el lazo antes de que el conteo llegue al ltimo valor, use una declaracin EXIT.
679
Apndice C
Ejemplo 1:
Si usted desea esto Borrar los bits 0 - 31 en una matriz de elementos BOOL: 1. Inicializar el tag subscript a 0. 2. Borrar la matriz[ subscript ]. Por ejemplo, cuando subscript = 5, borrar array[5]. 3. Aadir 1 a subscript. 4. Si subscript es 31, repetir 2 y 3. De lo contrario, parar. Introduzca este texto estructurado For subscript:=0 to 31 by 1 do array[subscript] := 0; End_for;
Ejemplo 2:
Si usted desea esto Un tipo de datos definido por el usuario (estructura) almacena la siguiente informacin acerca de un tem en su inventario: ID de cdigo de barras del tem (tipo de datos de cadena) Cantidad en inventario del tem (tipo de datos DINT) Una matriz de la estructura anterior contiene un elemento para cada tem diferente en su inventario. Usted desea buscar la matriz para un producto especfico (use su cdigo de barras) y determine la cantidad que hay en inventario. 1. Obtener el tamao (nmero de tems) de la matriz Inventory y almacenar el resultado en Inventory_Items (tag DINT). 2. Inicializar el tag position a 0. 3. Si el cdigo de barras coincide con el ID de un tem en la matriz, entonces: a. Establecer el tag Quantity = Inventory[position].Qty. Esto produce la cantidad en inventario del tem. b. Parar. Barcode es un tag de cadena que almacena el cdigo de barras del tem que usted est buscando. Por ejemplo, cuando position = 5, comparar Barcode con Inventory[5].ID. 4. Aadir 1 a position. 5. Si position es (Inventory_Items -1), repetir 3 y 4. Puesto que los nmeros de elemento comienzan en 0, el ltimo elemento es 1 menos el nmero de elementos en la matriz. De lo contrario, parar. Introduzca este texto estructurado SIZE(Inventory,0,Inventory_Items); For position:=0 to Inventory_Items - 1 do If Barcode = Inventory[position].ID then Quantity := Inventory[position].Qty; Exit; End_if; End_for;
680
Apndice C
WHILEDO
Operandos:
Use el lazo WHILEDO para continuar haciendo algo siempre y cuando ciertas condiciones sean verdaderas.
Texto estructurado
WHILE bool_expression DO <statement>; END_WHILE;
Tipo BOOL
IMPORTANTE
Asegrese de no efectuar iteraciones dentro de un lazo demasiadas veces en un solo escn. El controlador no ejecuta ninguna otra declaracin en la rutina hasta que completa el lazo. Si el tiempo que se requiere para completar el lazo es mayor que el temporizador de control (watchdog) para la tarea, se produce un fallo mayor. Considere usar una construccin diferente, por ejemplo IF...THEN.
END_IF;
Si existen condiciones cuando usted desea salir del lazo anticipadamente, use otras declaraciones, tal como la construccin IF...THEN, para condicionar una declaracin EXIT.
END_WHILE;
681
Apndice C
Los siguientes diagramas muestran cmo se ejecuta un lazo WHILE...DO y cmo un comando EXIT deja el lazo anticipadamente.
expresin BOOL verdadera declaracin 1 declaracin 2 declaracin 3 declaracin 4 resto de la rutina falsa expresin BOOL verdadera declaracin 1 declaracin 2 declaracin 3 declaracin 4 Salir? no resto de la rutina falsa
Mientras bool_expression es verdadero, el controlador ejecuta slo las declaraciones dentro del lazo WHILEDO.
Para detener el lazo antes de que las condiciones sean verdaderas, use una declaracin EXIT.
Ejemplo 1:
Si usted desea esto El lazo WHILE...DO evala sus condiciones primero. Si las condiciones son verdaderas, el controlador ejecuta las declaraciones dentro del lazo. Esto es diferente del lazo REPEAT...UNTIL porque el lazo REPEAT...UNTIL ejecuta las declaraciones en la construccin y posteriormente determina si las condiciones son verdaderas antes de ejecutar las declaraciones nuevamente. Las declaraciones en un lazo REPEAT...UNTIL siempre se ejecutan por lo menos una vez. Las declaraciones en un lazo WHILE...DO es posible que nunca se ejecuten. Introduzca este texto estructurado pos := 0; While ((pos <= 100) & structarray[pos].value <> targetvalue)) do pos := pos + 2; String_tag.DATA[pos] := SINT_array[pos]; end_while;
682
Apndice C
Ejemplo 2:
Si usted desea esto Mover caracteres ASCII desde una matriz SINT a un tag de cadena. (En una matriz SINT, cada elemento retiene un carcter). Parar cuando llegue al retorno de carro. 1. Inicializar Element_number a 0. 2. Contar el nmero de elementos en SINT_array (la matriz que contiene los caracteres ASCII) y almacenar el resultado en SINT_array_size (tag DINT). 3. Si el carcter en SINT_array[element_number] = 13 (valor decimal del retorno de carro), parar. 4. Establecer String_tag[element_number] = el carcter en SINT_array[element_number]. 5. Aadir 1 a element_number. Esto permite al controlador verificar el siguiente carcter en SINT_array. 6. Establecer el miembro Length de String_tag = element_number. (As registra el nmero de caracteres que hay hasta el momento en String_tag). 7. Si element_number = SINT_array_size, parar. (Usted est al final de la matriz y sta no contiene un retorno de carro). 8. Ir a 3. Introduzca este texto estructurado element_number := 0; SIZE(SINT_array, 0, SINT_array_size); While SINT_array[element_number] <> 13 do String_tag.DATA[element_number] := SINT_array[element_number]; element_number := element_number + 1; String_tag.LEN := element_number; If element_number = SINT_array_size then exit; end_if; end_while;
683
Apndice C
REPEATUNTIL
Operandos:
Use el lazo REPEATUNTIL para continuar haciendo algo hasta que las condiciones sean verdaderas.
Texto estructurado
REPEAT <statement>; UNTIL bool_expression END_REPEAT;
Tipo BOOL
Introduzca Expresin o tag BOOL que evala respecto a un valor BOOL (expresin BOOL)
IMPORTANTE
Asegrese de no efectuar iteraciones dentro de un lazo demasiadas veces en un solo escn. El controlador no ejecuta ninguna otra declaracin en la rutina hasta que completa el lazo. Si el tiempo que se requiere para completar el lazo es mayor que el temporizador de control (watchdog) para la tarea, se produce un fallo mayor. Considere usar una construccin diferente, por ejemplo IF...THEN.
END_IF;
Si existen condiciones cuando usted desea salir del lazo anticipadamente, use otras declaraciones, tal como la construccin IF...THEN, para condicionar una declaracin EXIT.
684
Apndice C
Los siguientes diagramas muestran cmo se ejecuta un lazo REPEAT...UNTIL y cmo un comando EXIT deja el lazo anticipadamente.
declaracin 1 declaracin 2 declaracin 3 declaracin 4 expresin BOOL falsa resto de la rutina falsa resto de la rutina verdadera declaracin 1 declaracin 2 declaracin 3 declaracin 4 Salir? no expresin BOOL verdadera
Mientras bool_expression es falso, el controlador ejecuta slo las declaraciones dentro del lazo REPEATUNTIL.
Para detener el lazo antes de que las condiciones sean falsas, use una declaracin EXIT.
Ejemplo 1:
Si usted desea esto El lazo REPEAT...UNTIL ejecuta las declaraciones en la construccin y posteriormente determina si las condiciones son verdaderas antes de ejecutar las declaraciones nuevamente. Esto es diferente del lazo WHILE...DO porque el lazo WHILE...DO evala su condicin primero. Si las condiciones son verdaderas, el controlador ejecuta las declaraciones dentro del lazo. Las declaraciones en un lazo REPEAT...UNTIL siempre se ejecutan por lo menos una vez. Las declaraciones en un lazo WHILE...DO es posible que nunca se ejecuten. Introduzca este texto estructurado pos := -1; REPEAT pos := pos + 2; UNTIL ((pos = 101) OR (structarray[pos].value = targetvalue)) end_repeat;
685
Apndice C
Ejemplo 2:
Si usted desea esto Mover caracteres ASCII desde una matriz SINT a un tag de cadena. (En una matriz SINT, cada elemento retiene un carcter). Parar cuando llegue al retorno de carro. 1. Inicializar Element_number a 0. 2. Contar el nmero de elementos en SINT_array (la matriz que contiene los caracteres ASCII) y almacenar el resultado en SINT_array_size (tag DINT). 3. Establecer String_tag[element_number] = el carcter en SINT_array[element_number]. 4. Aadir 1 a element_number. Esto permite al controlador verificar el siguiente carcter en SINT_array. 5. Establecer el miembro Length de String_tag = element_number. (As registra el nmero de caracteres que hay hasta el momento en String_tag). 6. Si element_number = SINT_array_size, parar. (Usted est al final de la matriz y sta no contiene un retorno de carro). 7. Si el carcter en SINT_array[element_number] = 13 (valor decimal del retorno de carro), parar. De lo contrario, ir a 3. Introduzca este texto estructurado element_number := 0; SIZE(SINT_array, 0, SINT_array_size); Repeat String_tag.DATA[element_number] := SINT_array[element_number]; element_number := element_number + 1; String_tag.LEN := element_number; If element_number = SINT_array_size then exit; end_if; Until SINT_array[element_number] = 13 end_repeat;
686
Apndice C
Comentarios
Para facilitar la interpretacin del texto estructurado, adale comentarios. Los comentarios le permiten usar un lenguaje simple para describir cmo funciona su texto estructurado. Los comentarios no tienen ningn efecto en la ejecucin del texto estructurado. Para aadir comentarios a su texto estructurado:
Para aadir un comentario en una sola lnea al final de una lnea de texto estructurado (*comment*) Use uno de estos formatos //comment
687
Apndice C
Por ejemplo:
Formato //comment Ejemplo Al comienzo de una lnea //Se verifica el sentido de desplazamiento del transportador IF conveyor_direction THEN...
Al final de una lnea ELSE //Si el transportador no se est moviendo, se establece la luz de alarma light := 1; END_IF; (*comment*) Sugar.Inlet[:=]1;(*open the inlet*)
(*Controla la velocidad de la bomba de recirculacin. La velocidad depende de la temperatura en el tanque*). IF tank.temp > 200 THEN... /*comment*/ Sugar.Inlet:=0;/*close the inlet*/
/*Obtiene el nmero de elementos en la matriz Inventory y almacena el valor en el tag Inventory_Items*/ SIZE(Inventory,0,Inventory_Items);
688
ndice
A
activacin de salida 82 activar tarea de evento 464 actualizar salida 201 ajuste 503 alarma digital 30 alarmas 504 arco coseno 532 arco seno 529 arco tangente 535 aritmtica y lgica de archivo 335 ASCII asignacin de texto estructurado 663 asignacin carcter ASCII 663 no retentiva 662 retentiva 661 atributos conversin de tipos de datos 635 valores inmediatos 635 atributos comunes 635 conversin de tipos de datos 635 valores inmediatos 635 comentarios texto estructurado 687 comparacin de bits de archivo 478 comparar 206 concatenacin de cadenas 601 condiciones de overflow 648 conector diagrama de bloques de funciones 641 conector de cable de entrada 641 conector de cable de salida 641 conexin cach 173 configuracin 159 instruccin MSG 159 instruccin PID 502 construccin texto estructurado 671 conteo progresivo 128 conteo progresivo/regresivo 136 conteo regresivo 132 control de programa/operador descripcin general 654 conversin de tipos de datos 635 convertir a BCD 556 convertir en entero 559 copiar 356 copiar sncrono 356 coseno 523
B
BAND 317 banda muerta 514 BNOT 326 BOR 320 borrar 298 Borrar ASCII bfer 575 buscar cadena 605 bsqueda y comparacin de archivos 347 BXOR 323
D
descarga FIFO 400 descripcin texto estructurado 687 desenclavamiento de salida 86 desplazamiento de bits a la derecha 390 desplazamiento de bits a la izquierda 386 desviacin estndar 376 deteccin de diagnstico 486 determinacin de igualdad con mscara 237 diagrama de bloques de funciones creacin de un retardo de escn 647 resolucin del flujo de datos entre dos bloques 647 resolver un lazo 645 seleccin de elementos 641 diferente de 242 DINT en cadena 619 distribuir campo de bits 292 distribuir campo de bits con receptor 295 divisin 261 documento texto estructurado 687
C
cach conexin 173 cadena evaluacin en texto estructurado 667 Cadena a DINT 614 Cadena central 609 Cadena en REAL 616 clculo 248 cambiar signo 274 caracteres ASCII en el bfer 573 carga de secuenciador 428 carga FIFO 394 carga LIFO 406, 412 CASE 675 clasificar 371 cdigos de error ASCII 568 instruccin MSG 152 cdigos de productos 181
689
ndice
E
elementos instruccin SIZE 381 Eliminacin de cadena 603 enclavamiento de datos 642 enclavamiento de salida 84 Encontrar cadena 605 escalado 505 escritura ASCII 594 escritura ASCII con anexo 589 establecer valor del sistema 176 estado tarea 195 estructura COMPARE 479, 487 estructura CONTROL 336, 347, 367, 371, 376, 386, 390, 395, 401, 406, 407, 413, 420, 424, 428 estructura COUNTER 128, 132 estructura de control 448 Estructura FBD_BIT_FIELD_ DISTRIBUTE 295 Estructura FBD_BOOLEAN_ AND 317 Estructura FBD_BOOLEAN_ NOT 326 Estructura FBD_BOOLEAN_OR 320 Estructura FBD_BOOLEAN_XOR 323 estructura FBD_COMPARE 212, 216, 220, 224, 228, 243 estructura FBD_CONVERT 556, 559 Estructura FBD_COUNTER 136 estructura FBD_LIMIT 232 Estructura FBD_LOGICAL 305, 308, 311, 315 Estructura FBD_MASKED_ MOVE 288 Estructura FBD_MASK_EQUAL 238 estructura FBD_MATH 253, 256, 259, 262, 267, 275, 547 Estructura FBD_MATH_ADVANCED 271, 520, 524, 527, 529, 532, 535, 540, 544, 550, 553 estructura FBD_MATH_ ADVANCED 278 estructura FBD_ONESHOT 96, 99 estructura FBD_TIMER 116, 120, 124 Estructura FBD_TRUNCATE 561 estructura MESSAGE 144 estructura PID 498 estructura RESULT 479, 487 Estructura SERIAL_PORT_ CONTROL 566, 568, 570, 573, 578, 582, 586, 590, 595 estructura STRING 568, 600, 613 estructura TIMER 104, 108, 112 estructuras cadena 568, 613 COMPARE 479, 487 CONTROL 336, 347, 367, 371, 376, 386, 390, 395, 401, 406, 407, 413, 420, 424, 428 COUNTER 128, 132
690
FBD_BIT_FIELD_DISTRIBUTE 295 FBD_BOOLEAN_AND 317 FBD_BOOLEAN_NOT 326 FBD_BOOLEAN_OR 320 FBD_BOOLEAN_XOR 323 FBD_COMPARE 212, 216, 220, 224, 228, 243 FBD_CONVERT 556, 559 FBD_COUNTER 136 FBD_LIMIT 232 FBD_LOGICAL 305, 308, 311, 315 FBD_MASKED_MOVE 288 FBD_MASK_EQUAL 238 FBD_MATH 253, 256, 259, 262, 267, 275, 547 FBD_MATH_ADVANCED 271, 278, 520, 524, 527, 529, 532, 535, 540, 544, 550, 553 FBD_ONESHOT 96, 99 FBD_TIMER 116, 120, 124 FBD_TRUNCATE 561 instruccin RES 141 MESSAGE 144 PID 498 RESULT 479, 487 SERIAL_PORT_CONTROL 566, 568, 570, 573, 578, 582, 586, 590, 595 STRING 568, 600, 613 TIMER 104, 108, 112 etiqueta 434, 627, 631 examinar si est abierto 80 expiracin configurar para tarea de evento 195 exponencial 546 expresin expresin BOOL texto estructurado 663 expresin numrica texto estructurado 663 orden de ejecucin texto estructurado 669 texto estructurado descripcin general 663 funciones 665 operadores a nivel de bits 669 operadores aritmticos 665 operadores lgicos 668 operadores relacionales 666 expresin BOOL texto estructurado 663 expresin numrica 663 expresiones formato 209, 250, 345, 353 operadores vlidos 208, 250, 345, 353 orden de operacin 209, 251, 346, 354
ndice
F
fin temporal 450 FORDO 678 funciones texto estructurado 665
G
ganancia anticipativa 515 grados 550
H
habilitacin de interrupcin de usuario 454
I
ICON 641 IF...THEN 672 igual a 211 indicadores de estado aritmtico overflow 648 inhabilitacin de interrupcin de usuario 454 Insertar cadena 607 instruccin ABL 570 instruccin ABS 277 instruccin ACB 573 instruccin ACL 575 instruccin ACS 532 instruccin activar tarea de evento 464 instruccin ADD 252 instruccin AFI 456 instruccin AHL 577 instruccin ALMA 42 instruccin ALMD, instrucciones de alarmas y eventos ALMD 30 instruccin AND 304 instruccin ARD 581 instruccin ARL 585 instruccin ASN 529 instruccin ATN 535 instruccin AVE 366 instruccin AWA 589 instruccin AWT 594 instruccin BRK 473 instruccin BSL 386 instruccin BSR 390 instruccin BTD 292 instruccin BTDT 295 instruccin CLR 298 instruccin CMP 206 instruccin CONCAT 601 instruccin COP 356 instruccin COS 523 instruccin CPS 356 instruccin CPT 248 instruccin CTD 132
Publicacin 1756-RM003K-ES-P Julio 2008
instruccin CTU 128 instruccin CTUD 136 instruccin DDT modo de bsqueda 488 operandos 486 instruccin de salida inmediata 201 instruccin DEG 550 instruccin DELETE 603 instruccin DIV 261 instruccin DTOS 619 instruccin DTR 494 instruccin EOT 458 instruccin EQU 211 instruccin EVENT 464 instruccin FAL modo de operacin 330 operandos 335 instruccin FBC modo de bsqueda 480 operandos 478 instruccin FFL 394 instruccin FFU 400 instruccin fin de transicin 458 instruccin FIND 605 instruccin FLL 362 instruccin FOR 470 instruccin FRD 559 instruccin FSC modo de operacin 330 operandos 347 instruccin GEQ 215 instruccin GRT 219 instruccin GSV objetos 179 operandos 176 instruccin INSERT 607 instruccin IOT 201 instruccin JMP 434, 627, 631 instruccin JSR 436 instruccin JXR estructura de control 448 instruccin LBL 434, 627, 631 instruccin LEQ 223 instruccin LES 227 instruccin LFL 406 instruccin LFU 412 instruccin LIM 231 instruccin LN 540 instruccin LOG 543 instruccin LOWER 625 instruccin MCR 452 instruccin MEQ 237 instruccin MID 609 instruccin MOD 266 instruccin MOV 283 instruccin MSG 159 cdigos de error 152 conexin en cach 173 estructura 144 mtodo de comunicacin 172 operandos 144 pautas de programacin 175
691
ndice
instruccin MUL 258 instruccin MVM 285 instruccin MVMT 288 instruccin NEG 274 instruccin NEQ 242 instruccin NOP 457 instruccin NOT 314 instruccin ONS 88 instruccin OR 307 instruccin OSF 94 instruccin OSFI 99 instruccin OSRI 96 instruccin OTE 82 instruccin OTL 84 instruccin OTU 86 instruccin pausa SFC 460 instruccin PID ajuste 503 alarmas 504 banda muerta 514 configuracin 502 escalado 505 ganancia anticipativa 515 operandos 497 polarizacin de salida 515 instruccin RAD 553 instruccin RES 141 instruccin restablecer SFC 462 instruccin RET 436, 474 instruccin RTO 112 instruccin RTOR 124 instruccin RTOS 621 instruccin SBR 436 instruccin SFP 460 instruccin SFR 462 instruccin siempre falso 456 instruccin SIN 520 instruccin SIZE 381 instruccin SQI 420 instruccin SQL 428 instruccin SQO 424 instruccin SQR 270 instruccin SRT 371 instruccin SSV objetos 179 operandos 176 instruccin STOD 614 instruccin STOR 616 instruccin SUB 255 instruccin SWPB 300 Instruccin TAN 526 instruccin TND 450 instruccin TOD 556 Instruccin TOF 108 instruccin TOFR 120 instruccin TON 104 instruccin TONR 116 instruccin TRN 561 instruccin UID 454 instruccin UIE 454 instruccin UPPER 623 instruccin XIO 80
instruccin XOR 310 instruccin XPY 546 instrucciones alarmas y eventos 29 bit 77 clculo 247 comparar 205 contador 103 control de programa 433 conversin 549 conversin ASCII 611 conversin de cadenas 611 conversin matemtica 549 depurar 627 desplazamiento 385 entrada/salida 143 especiales 477 for/break 469 lgicas 281 manipulacin de cadenas 599 manipulacin de cadenas ASCII 599 matemticas avanzadas 539 matriz movimiento 281 puerto serie 565 puerto serie ASCII 565 secuenciador 419 temporizador 103 trigonomtricas 519 instrucciones ASCII ABL 570 ACB 573 ACL 575 AHL 577 ARD 581 ARL 585 AWA 589 AWT 594 CONCAT 601 DELETE 603 DTOS 619 FIND 605 INSERT 607 LOWER 625 MID 609 RTOS 621 STOD 614 STOR 616 SWPB 300 UPPER 623 instrucciones de alarmas y eventos acceder programticamente 70 ALMA, alarma analgica 42 almacenamiento de alarmas en el bfer 69 configuracin 62 ejecucin de alarma basada en el controlador 72
Publicacin 1756-RM003K-ES-P Julio 2008
692
ndice
estado de alarma 68 suprima o inhabilite alarmas 71 texto de mensaje 65 instrucciones de archivo. Vea instrucciones de matriz instrucciones de bit ONS 88 OSF 94 OSFI 99 OSR 91 OSRI 96 OTE 82 OTL 84 OTU 86 XIO 80 instrucciones de bits introduccin 77 instrucciones de clculo ABS 277 ADD 252 CPT 248 DIV 261 formato de expresin 250, 345 Introduccin 247 MOD 266 MUL 258 NEG 274 operadores vlidos 250, 345 orden de operacin 251, 346 SQR 270 SUB 255 instrucciones de comparacin CMP 206 EQU 211 formato de expresin 209, 353 GEQ 215 GRT 219 Introduccin 205 LEQ 223 LES 227 LIM 231 MEQ 237 NEQ 242 operadores vlidos 208, 353 orden de operacin 209, 354 instrucciones de contador CTD 132 CTU 128 CTUD 136 introduccin 103 RES 141 instrucciones de control de programa AFI 456 EOT 458 EVENT 464 introduccin 433 JMP 434, 627, 631 JSR 436
Publicacin 1756-RM003K-ES-P Julio 2008
LBL 434, 627, 631 MCR 452 NOP 457 RET 436 SBR 436 TND 450 UID 454 UIE 454 instrucciones de conversin DEG 550 FRD 559 Introduccin 549 RAD 553 TOD 556 TRN 561 instrucciones de conversin de cadena DTOS 619 LOWER 625 RTOS 621 STOR 616 SWPB 300 UPPER 623 instrucciones de conversin de cadenas introduccin 611 STOD 614 instrucciones de conversin matemtica DEG 550 FRD 559 Introduccin 549 RAD 553 TOD 556 TRN 561 instrucciones de depuracin 627 instrucciones de desplazamiento BSL 386 BSR 390 FFL 394 FFU 400 Introduccin 385 LFL 406 LFU 412 instrucciones de entrada/salida GSV 176 introduccin 143 IOT 201 MSG 144 SSV 176 instrucciones de manipulacin de cadenas CONCAT 601 DELETE 603 FIND 605 INSERT 607 introduccin 599 MID 609
693
ndice
instrucciones de matriz archivo/miscelneas 329 AVE 366 BSL 386 BSR 390 COP 356 CPS 356 DDT 486 desplazamiento 385 FAL 335 FBC 478 FFL 394 FFU 400 FLL 362 FSC 347 LFL 406 LFU 412 modo de operacin 330 RES 141 secuenciador 419 SIZE 381 SQI 420 SQL 428 SQO 424 SRT 371 STD 376 instrucciones de movimiento BTD 292 BTDT 295 CLR 298 Introduccin 281 MOV 283 MVM 285 MVMT 288 instrucciones de puerto serie ABL 570 ACB 573 ACL 575 AHL 577 ARD 581 ARL 585 AWA 589 AWT 594 instrucciones de secuenciador introduccin 419 SQI 420 SQL 428 SQO 424 instrucciones de temporizador introduccin 103 RES 141 RTO 112 RTOR 124 TOF 108 TOFR 120 TON 104 TONR 116
instrucciones de traslado/lgicas BAND 317 BNOT 326 BOR 320 BXOR 323 instrucciones especiales DDT 486 DTR 494 FBC 478 introduccin 477 PID 497 SFP 460 SFR 462 instrucciones for/break BRK 473 FOR 470 Introduccin 469 RET 474 instrucciones lgicas AND 304 introduccin 281 NOT 314 OR 307 XOR 310 instrucciones matemticas avanzadas Introduccin 539 LN 540 logaritmo 543 XPY 546 instrucciones OSR 91 instrucciones para puerto serie Introduccin 565 instrucciones STD 376 instrucciones trigonomtricas ACS 532 ASN 529 ATN 535 COS 523 Introduccin 519 SIN 520 TAN 526 intercambiar byte 300 interrumpir 473 IREF 641
L
lazo de retroalimentacin diagrama de bloques de funciones 645 lazo no resuelto diagrama de bloques de funciones 645 lectura ASCII 581 lmite 231 lnea de lectura ASCII 585 lneas de handshake ASCII 577 llenar archivo 362
694
ndice
logaritmo base 10 543 natural 540 logaritmo base 10 543 logaritmo natural 540
M
mscaras 495 mayor o igual que 215 mayor que 219 maysculas 623 menor o igual que 223 menor que 227 mensaje 144 conexiones en cach 173 pautas de programacin 175 mezcla de tipos de datos 635 minsculas 625 modo de bsqueda 480, 488 modo de operacin 330 modo incremental 333 modo numrico 331 modo todos 330 modos de temporizacin 649 mdulo de divisin 266 mover 283 mover con mscara 285 movimiento enmascarado con receptor 288 multiplicacin 258
FAULTLOG 187 instruccin GSV/SSV 179 MESSAGE 188 MODULE 190 MOTIONGROUP 191 PROGRAM 192 ROUTINE 193 SERIALPORT 193 TASK 195 WALLCLOCKTIME 197 obtener valor del sistema 176 OCON 641 operadores 208, 250, 345, 353 orden de ejecucin texto estructurado 669 operadores a nivel de bits texto estructurado 669 operadores aritmticos texto estructurado 665 operadores lgicos texto estructurado 668 operadores matemticos texto estructurado 665 operadores relacionales texto estructurado 666 orden de ejecucin 644 expresin de texto estructurado 669 orden de operacin 209, 251, 346, 354 OREF 641
N
NO a nivel de bits 314 NO booleano 326
P
polarizacin de salida 515 post-escn texto estructurado 662 promedio 366 proporcional, integral y derivativo 497 prueba ASCII para lnea de bfer 570
O
O a nivel de bits 307 O booleano 320 O exclusivo a nivel de bits 310 O exclusivo booleano 323 objeto CONTROLLER 180 objeto CONTROLLERDEVICE 181 objeto CST 183 objeto DF1 184 objeto FAULTLOG 187 objeto MESSAGE 188 objeto MODULE 190 objeto MOTIONGROUP 191 objeto PROGRAM 192 objeto ROUTINE 193 objeto SERIALPORT 193 objeto TASK 195 objeto WALLCLOCKTIME 197 objetos CONTROLLER 180 CONTROLLERDEVICE 181 CST 183 DF1 184
R
radianes 553 raz cuadrada 270 REAL en cadena 621 referencia de entrada 641 referencia de salida 641 REPEATUNTIL 684 resta 255 restablecer 141 restablecimiento de control maestro 452 retardo de escn diagrama de bloques de funciones 647 retornar 474 retorno 436
695
ndice
S
Salida actualizar inmediatamente 201 habilitar o inhabilitar fin de procesamiento de tarea 195 saltar 434, 627, 631 saltar a subrutina 436 secuenciador de entrada 420 secuenciador de salida 424 seno 520 sin operacin 457 subrutina 436 sumar 252 superposicin verifica 195 suponer datos disponibles 645, 647
IF...THEN 672 operadores a nivel de bits 669 operadores aritmticos 665 operadores lgicos 668 operadores relacionales 666 REPEATUNTIL 684 WHILEDO 681 tipo de datos de cadena 568, 600, 613 transicin de datos 494 truncar 561
U
un impulso 88 un impulso en flanco ascendente 91 un impulso en flanco ascendente con entrada 96 un impulso en flanco descendente 94 un impulso en flanco descendente con entrada 99
T
tamao en elementos 381 tangente 526 tarea activar mediante tag consumido 201 activar tarea de evento 464 configurar programticamente 195 monitorear 195 tarea de evento activar mediante instruccin EVENT 464 activar mediante tag consumido 201 configurar 195 temporizador de retardo a la conexin 104 temporizador de retardo a la conexin con restablecimiento 116 temporizador de retardo a la desconexin 108 temporizador de retardo a la desconexin con restablecimiento 120 temporizador retentivo activado 112 temporizador retentivo activado con restablecimiento 124 texto estructurado asignacin 661 asignacin no retentiva 662 asigne carcter ASCII 663 CASE 675 comentarios 687 componentes 659 construcciones 671 evaluacin de cadenas 667 expresin 663 expresin numrica 663 FORDO 678 funciones 665
696
V
valor absoluto 277 valores inmediatos 635
W
WHILEDO 681
X
X a la potencia de Y 546
Y
Y a nivel de bits 304 Y booleano 317
[ctrl-@] NUL 0
Rockwell Automation ofrece informacin tcnica en Internet para proporcionarle asistencia a la hora de utilizar sus productos. En http://support.rockwellautomation.com, puede encontrar manuales tcnicos, una base de conocimientos con respuestas a preguntas frecuentes, notas tcnicas y de aplicacin, ejemplos de cdigo y vnculos a Service Packs de software, as como un vnculo llamado MySupport que se puede personalizar para sacar el mximo provecho de estas herramientas. Con el fin de brindarle un nivel adicional de asistencia tcnica para la instalacin, configuracin y resolucin de problemas por telfono, ofrecemos los programas de asistencia tcnica TechConnect Support. Si desea obtener ms informacin, pngase en contacto con el representante o distribuidor local de Rockwell Automation, o vistenos en http://support.rockwellautomation.com.
Contraportada
Manual de referencia