Documentos de Académico
Documentos de Profesional
Documentos de Cultura
controladores Logix5000
Manual de referencia
Nmeros de catlogo 1756-L1x,
1756-L5x, 1756-L6x, 1768-L4x, 1769-
L30, 1769-L31, 1769-L32C, 1769-L32E,
1769-L35CR, 1769-L35E, 1789-L60,
1794-L34, 20D
Informacin importante para el usuario
Los equipos de estado slido tienen caractersticas de funcionamiento distintas de las de los equipos electromecnicos.
El documento Safety Guidelines for the Application, Installation and Maintenance of Solid State Controls
(publicacin SGI-1.1 disponible en la oficina de ventas local del Rockwell Automation o en lnea en
http://literature.rockwellautomation.com) describe algunas diferencias importantes entre los equipos de estado slido y
los dispositivos electromecnicos de lgica cableada. Debido a esta diferencia y tambin a la gran variedad de usos de los
equipos de estado slido, toda persona encargada de la aplicacin de estos equipos debe asegurarse de la idoneidad de
cada una de las aplicaciones concebidas con estos equipos.
En ningn caso Rockwell Automation, Inc. ser responsable ni asumir ninguna obligacin por daos indirectos o
consecuentes que resulten del uso o de la aplicacin de estos equipos.
Los ejemplos y diagramas presentados en este manual se incluyen nicamente con fines ilustrativos. Debido a las
numerosas variables y requisitos asociados con cualquier instalacin en particular, Rockwell Automation, Inc. no puede
asumir responsabilidad u obligacin alguna por el uso de estos equipos basado en ejemplos y diagramas.
Rockwell Automation, Inc. no asume ninguna obligacin de patente con respecto al uso de la informacin, los circuitos,
los equipos o el software descritos en este manual.
Se prohbe la reproduccin total o parcial del contenido de este manual sin la autorizacin escrita de
Rockwell Automation, Inc.
Este manual contiene notas de seguridad en cada circunstancia en que se estimen necesarias.
Identifica informacin sobre prcticas o circunstancias que pueden provocar una explosin en un
ADVERTENCIA
ambiente peligroso, lo que podra causar lesiones personales o la muerte, daos materiales o
prdidas econmicas.
IMPORTANTE Identifica informacin importante para la correcta aplicacin y comprensin del producto.
Identifica informacin sobre prcticas o circunstancias que pueden provocar lesiones personales
ATENCIN
o la muerte, daos materiales o prdidas econmicas. Los mensajes de Atencin le ayudan a
identificar y evitar un peligro, y a reconocer las consecuencias.
PELIGRO DE CHOQUE Puede haber etiquetas en el exterior o en el interior del equipo (por ejemplo, en un variador o un
motor) para advertir sobre la posible presencia de un voltaje peligroso.
PELIGRO DE QUEMADURA Puede haber etiquetas en el exterior o en el interior del equipo (por ejemplo, en un variador o un
motor) para advertir sobre superficies que podran estar a temperaturas peligrosas.
Allen-Bradley, Rockwell Automation y TechConnect son marcas comerciales de Rockwell Automation, Inc.
Las marcas comerciales no pertenecientes a Rockwell Automation son propiedad de sus respectivas empresas.
ndice
Prefacio
Captulo 1
Instrucciones basadas en Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Logix para alarmas y eventos Alarma digital (ALMD). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
FactoryTalk Diagramas de estado cuando se requiere
(ALMD, ALMA) confirmacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Diagramas de estado cuando no se requiere
confirmacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Confirmacin de alarma ALMD requerida y enclavada . . . 38
Confirmacin de alarma ALMD requerida y no
enclavada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Confirmacin de alarma ALMD no requerida y
enclavada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Confirmacin de alarma ALMD no requerida y no
enclavada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Alarma Analgica (ALMA) . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Diagramas de estado cuando se requiere
confirmacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Diagramas de estado cuando no se requiere
confirmacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Confirmacin de condicin de nivel ALMA requerida . . . 57
Confirmacin de condicin de nivel ALMA no
requerida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Confirmacin de velocidad de cambio ALMA
requerida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Confirmacin de velocidad de cambio ALMA
no requerida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Configure una instruccin de alarma . . . . . . . . . . . . . . . . . . 62
Introduzca el texto del mensaje de alarma . . . . . . . . . . . . . . 65
Variables de la cadena de mensaje . . . . . . . . . . . . . . . . . 66
Versiones de los mensajes de alarma en mltiples
idiomas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Monitoreo del estado de alarma. . . . . . . . . . . . . . . . . . . . . . 68
Almacenamiento de alarmas en el bfer. . . . . . . . . . . . . . . . 69
Acceda programticamente a informacin de alarmas . . . . . . 70
Suprima o inhabilite alarmas . . . . . . . . . . . . . . . . . . . . . . . . 71
Ejecucin de alarma basada en el controlador . . . . . . . . . . . 72
Uso de la memoria del controlador. . . . . . . . . . . . . . . . . 73
Tiempo de escn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Captulo 2
Instrucciones de bits Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
(XIC, XIO, OTE, OTL, OTU, ONS, Examinar si est cerrado (XIC). . . . . . . . . . . . . . . . . . . . . . . 78
OSR, OSF, OSRI, OSFI) Examinar si est abierto (XIO) . . . . . . . . . . . . . . . . . . . . . . . 80
Activacin de salida (OTE) . . . . . . . . . . . . . . . . . . . . . . . . . 82
Enclavamiento de salida (OTL) . . . . . . . . . . . . . . . . . . . . . . 84
Desenclavamiento de salida (OTU) . . . . . . . . . . . . . . . . . . . 86
Un impulso (ONS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Un impulso en flanco ascendente (OSR) . . . . . . . . . . . . . . . 91
Un impulso en flanco descendente (OSF) . . . . . . . . . . . . . . 94
Un impulso en flanco ascendente con entrada (OSRI) . . . . . 96
Un impulso en flanco descendente con entrada (OSFI). . . . . 99
Captulo 3
Instrucciones de temporizador y Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
contador Temporizador de retardo a la conexin (TON). . . . . . . . . . 104
(TON, TOF, RTO, TONR, TOFR, Temporizador de retardo a la desconexin (TOF) . . . . . . . 108
RTOR, CTU, CTD, CTUD, RES) Temporizador retentivo activado (RTO) . . . . . . . . . . . . . . . 112
Temporizador de retardo a la conexin con
restablecimiento (TONR) . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Temporizador de retardo a la desconexin con
restablecimiento (TOFR) . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Temporizador retentivo activado con restablecimiento
(RTOR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Conteo progresivo (CTU) . . . . . . . . . . . . . . . . . . . . . . . . . 128
Conteo regresivo (CTD) . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Conteo progresivo/regresivo (CTUD) . . . . . . . . . . . . . . . . . 136
Restablecer (RES) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Captulo 4
Instrucciones de entrada/salida Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
(MSG, GSV, SSV, IOT) Mensaje (MSG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Cdigos de error MSG . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Cdigos de error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Cdigos de error extendidos . . . . . . . . . . . . . . . . . . . . 154
Cdigos de error PLC y SLC (.ERR) . . . . . . . . . . . . . . . . 156
Cdigos de error de transferencia en bloques . . . . . . . . 158
Especifique los detalles de configuracin . . . . . . . . . . . . . . 159
Especifique mensajes de lectura y escritura de la tabla
de datos CIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Reconfigure un mdulo de E/S. . . . . . . . . . . . . . . . . . . 161
Especifique mensajes genricos CIP . . . . . . . . . . . . . . . 162
Especifique mensajes PLC-5 . . . . . . . . . . . . . . . . . . . . . 163
Especifique mensajes SLC. . . . . . . . . . . . . . . . . . . . . . . 165
Especifique mensajes de transferencia en bloques . . . . . 165
Especifique mensajes PLC-3 . . . . . . . . . . . . . . . . . . . . . 166
Especifique mensajes PLC-2 . . . . . . . . . . . . . . . . . . . . . 167
Ejemplos de configuracin MSG . . . . . . . . . . . . . . . . . . . . 168
Especifique los detalles de comunicacin. . . . . . . . . . . . . . 169
Captulo 5
Instrucciones de comparacin Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
(CMP, EQU, GEQ, GRT, LEQ, LES, Comparar (CMP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
LIM, MEQ, NEQ) Expresiones CMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Operadores vlidos . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
Expresiones de formato . . . . . . . . . . . . . . . . . . . . . . . . 209
Determine el orden de operacin . . . . . . . . . . . . . . . . . 209
Use cadenas en una expresin . . . . . . . . . . . . . . . . . . . 210
Igual a (EQU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Mayor o igual que (GEQ) . . . . . . . . . . . . . . . . . . . . . . . . . 215
Mayor que (GRT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Menor o igual que (LEQ). . . . . . . . . . . . . . . . . . . . . . . . . . 223
Menor que (LES) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Lmite (LIM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Mscara igual que (MEQ) . . . . . . . . . . . . . . . . . . . . . . . . . 237
Introduccin de un valor de mscara inmediato . . . . . . 238
Diferente de (NEQ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Captulo 6
Instrucciones de clculo/ Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
matemticas Calcular (CPT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
(CPT, ADD, SUB, MUL, DIV, MOD, Operadores vlidos . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
SQR, SQRT, NEG, ABS) Expresiones de formato . . . . . . . . . . . . . . . . . . . . . . . . 250
Determine el orden de operacin . . . . . . . . . . . . . . . . . 251
Sumar (ADD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Restar (SUB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Multiplicar (MUL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Dividir (DIV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Mdulo (MOD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Raz cuadrada (SQR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Cambiar signo (NEG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Valor absoluto (ABS). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Captulo 7
Instrucciones de movimiento/ Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 281
lgicas Mover (MOV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 283
(MOV, MVM, BTD, MVMT, BTDT, Mover con mscara (MVM) . . . . . . . . . . . . . . . . . . . . . . .. 285
CLR, SWPB, AND, OR, XOR, NOT, Introduzca un valor de mscara inmediato . . . . . . . . .. 286
Movimiento enmascarado con receptor (MVMT). . . . . . . .. 288
BAND, BOR, BXOR, BNOT) Distribuir campo de bits (BTD) . . . . . . . . . . . . . . . . . . . .. 292
Distribuir campo de bits con receptor (BTDT) . . . . . . . . .. 295
Borrar (CLR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 298
Intercambiar byte (SWPB) . . . . . . . . . . . . . . . . . . . . . . . .. 300
Y a nivel de bits (AND) . . . . . . . . . . . . . . . . . . . . . . . . . .. 304
O a nivel de bits (OR) . . . . . . . . . . . . . . . . . . . . . . . . . . .. 307
O exclusivo a nivel de bits (XOR) . . . . . . . . . . . . . . . . . .. 310
NO a nivel de bits (NOT) . . . . . . . . . . . . . . . . . . . . . . . .. 314
Y booleano (BAND) . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 317
O booleano (BOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 320
O exclusivo booleano (BXOR). . . . . . . . . . . . . . . . . . . . .. 323
NO booleano (BNOT) . . . . . . . . . . . . . . . . . . . . . . . . . . .. 326
Captulo 8
Instrucciones de matriz Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
(archivo)/miscelneas Seleccin del modo de operacin . . . . . . . . . . . . . . . . . . . 330
(FAL, FSC, COP, CPS, FLL, AVE, Modo Todos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
SRT, STD, SIZE) Modo numrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
Modo incremental . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Aritmtica y lgica de archivo (FAL) . . . . . . . . . . . . . . . . . 335
Expresiones FAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
Operadores vlidos . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Expresiones de formato . . . . . . . . . . . . . . . . . . . . . . . . 345
Determine el orden de operacin . . . . . . . . . . . . . . . . . 346
Bsqueda y comparacin de archivos (FSC) . . . . . . . . . . . . 347
Expresiones FSC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
Operadores vlidos . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
Expresiones de formato . . . . . . . . . . . . . . . . . . . . . . . . 353
Captulo 9
Instrucciones de matriz Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
(archivo)/desplazamiento Desplazamiento de bits a la izquierda (BSL) . . . . . . . . . . . . 386
(BSL, BSR, FFL, FFU, LFL, LFU) Desplazamiento de bits a la derecha (BSR). . . . . . . . . . . . . 390
Carga FIFO (FFL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
Descarga FIFO (FFU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
Carga LIFO (LFL). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
Descarga LIFO (LFU). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
Captulo 10
Instrucciones de secuenciador Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
(SQI, SQO, SQL) Secuenciador de entrada (SQI) . . . . . . . . . . . . . . . . . . . . . 420
Introduzca un valor de mscara inmediato . . . . . . . . . . 421
Use SQI sin SQO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
Secuenciador de salida (SQO) . . . . . . . . . . . . . . . . . . . . . . 424
Introduzca un valor de mscara inmediato . . . . . . . . . . 425
Uso de SQI con SQO . . . . . . . . . . . . . . . . . . . . . . . . . . 427
Restablecimiento de la posicin de SQO. . . . . . . . . . . . 427
Carga de secuenciador (SQL). . . . . . . . . . . . . . . . . . . . . . . 428
Captulo 11
Instrucciones de control de Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
programa Saltar a etiqueta (JMP)
(JMP, LBL, JSR, RET, SBR, JXR, Etiqueta (LBL). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
TND, MCR, UID, UIE, AFI, Salto a subrutina (JSR)
Subrutina (SBR) Retorno (RET) . . . . . . . . . . . . . . . . . . . . . 436
NOP, EOT, SFP, SFR, EVENT) Salto a rutina externa (JXR) . . . . . . . . . . . . . . . . . . . . . . . . 447
Fin temporal (TND). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
Restablecimiento de control maestro (MCR) . . . . . . . . . . . . 452
Inhabilitacin de interrupcin de usuario (UID)
Habilitacin de interrupcin de usuario (UIE) . . . . . . . . . . 454
Instruccin siempre falso (AFI) . . . . . . . . . . . . . . . . . . . . . 456
Sin operacin (NOP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Fin de transicin (EOT) . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
Pausa SFC (SFP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
Restablecer SFC (SFR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
Activar tarea de evento (EVENT) . . . . . . . . . . . . . . . . . . . . 464
Determine programticamente si una instruccin
EVENT activ una tarea . . . . . . . . . . . . . . . . . . . . . . . . 464
Captulo 12
Instrucciones For/Break Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
(FOR, FOR...DO, BRK, EXIT, RET) For (FOR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
Interrumpir (BRK) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
Retornar (RET) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
Captulo 13
Instrucciones especiales Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
(FBC, DDT, DTR, PID) Comparacin de bits de archivo (FBC). . . . . . . . . . . . . . . . 478
Seleccin del modo de bsqueda . . . . . . . . . . . . . . . . . 480
Deteccin de diagnstico (DDT) . . . . . . . . . . . . . . . . . . . . 486
Seleccin del modo de bsqueda . . . . . . . . . . . . . . . . . 488
Transicin de datos (DTR). . . . . . . . . . . . . . . . . . . . . . . . . 494
Introduzca un valor de mscara inmediato . . . . . . . . . . 495
Proporcional integral derivativo (PID) . . . . . . . . . . . . . . . . 497
Configure una instruccin PID. . . . . . . . . . . . . . . . . . . . . . 502
Especifique el ajuste. . . . . . . . . . . . . . . . . . . . . . . . . . . 503
Especifique la configuracin. . . . . . . . . . . . . . . . . . . . . 504
Especificacin de alarmas. . . . . . . . . . . . . . . . . . . . . . . 504
Especificacin de escalado . . . . . . . . . . . . . . . . . . . . . . 505
Uso de instrucciones PID . . . . . . . . . . . . . . . . . . . . . . . . . 505
Bloqueo de accin integral y transferencia sin
perturbaciones de manual a automtico . . . . . . . . . . . . 507
Temporizacin de la instruccin PID . . . . . . . . . . . . . . 508
Reinicio sin problemas . . . . . . . . . . . . . . . . . . . . . . . . . 512
Suavizado derivativo . . . . . . . . . . . . . . . . . . . . . . . . . . 513
Establezca la banda muerta . . . . . . . . . . . . . . . . . . . . . 514
Use lmite de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
Ganancia anticipativa o polarizacin de salida . . . . . . . 515
Lazos en cascada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
Control de relacin . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
Teora de PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
Proceso PID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
Proceso PID con lazos maestro/esclavo . . . . . . . . . . . . 517
Captulo 14
Instrucciones trigonomtricas Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
(SIN, COS, TAN, ASN, ASIN, ACS, Seno (SIN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
ACOS, ATN, ATAN) Coseno (COS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
Tangente (TAN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526
Arco seno (ASN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
Arco coseno (ACS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532
Arco tangente (ATN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
Captulo 15
Instrucciones matemticas Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
avanzadas Logaritmo natural (LN) . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
(LN, LOG, XPY) Logaritmo base 10 (LOG) . . . . . . . . . . . . . . . . . . . . . . . . . 543
X a la potencia de Y (XPY) . . . . . . . . . . . . . . . . . . . . . . . . 546
Captulo 16
Instrucciones de conversin Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549
matemtica Grados (DEG). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
(DEG, RAD, TOD, FRD, TRN, Radianes (RAD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
TRUNC) Convertir a BCD (TOD). . . . . . . . . . . . . . . . . . . . . . . . . . . 556
Convertir a entero (FRD) . . . . . . . . . . . . . . . . . . . . . . . . . . 559
Truncar (TRN). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
Captulo 17
Instrucciones para puerto serie Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
ASCII Ejecucin de la instruccin. . . . . . . . . . . . . . . . . . . . . . 566
(ABL, ACB, ACL, AHL, ARD, ARL, Cdigos de error ASCII . . . . . . . . . . . . . . . . . . . . . . . . 568
AWA, AWT) Tipos de datos de cadena. . . . . . . . . . . . . . . . . . . . . . . 569
Prueba ASCII para lnea de bfer (ABL) . . . . . . . . . . . . . . . 570
Caracteres ASCII en el bfer (ACB) . . . . . . . . . . . . . . . . . . 573
Borrar ASCII bfer (ACL) . . . . . . . . . . . . . . . . . . . . . . . . . . 575
Lneas de handshake ASCII (AHL) . . . . . . . . . . . . . . . . . . . 577
Lectura ASCII (ARD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
Lectura ASCII de lnea (ARL) . . . . . . . . . . . . . . . . . . . . . . . 585
Escritura ASCII con anexo (AWA) . . . . . . . . . . . . . . . . . . . 589
Escritura ASCII (ASCII Write (AWT)) . . . . . . . . . . . . . . . . . 594
Captulo 18
Instrucciones de cadena ASCII Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
(CONCAT, DELETE, FIND, INSERT, Tipos de datos de cadena. . . . . . . . . . . . . . . . . . . . . . . 600
MID) Concatenacin de cadenas (CONCAT) . . . . . . . . . . . . . . . . 601
Eliminacin de cadena (DELETE). . . . . . . . . . . . . . . . . . . . 603
Encontrar cadena (FIND). . . . . . . . . . . . . . . . . . . . . . . . . . 605
Insertar cadena (INSERT). . . . . . . . . . . . . . . . . . . . . . . . . . 607
Cadena central (MID) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609
Captulo 19
Instrucciones de conversin ASCII Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611
(STOD, STOR, DTOS, RTOS, UPPER, Tipos de datos de cadena. . . . . . . . . . . . . . . . . . . . . . . 613
LOWER) Cadena en DINT (STOD). . . . . . . . . . . . . . . . . . . . . . . . . . 614
Cadena en REAL (STOR) . . . . . . . . . . . . . . . . . . . . . . . . . . 616
DINT en cadena (DTOS) . . . . . . . . . . . . . . . . . . . . . . . . . . 619
REAL en cadena (RTOS) . . . . . . . . . . . . . . . . . . . . . . . . . . 621
Maysculas (UPPER) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623
Minsculas (Lower Case (LOWER)) . . . . . . . . . . . . . . . . . . 625
Captulo 20
Instrucciones de depuracin Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627
(BPT, TPT) Puntos de interrupcin (BPT) . . . . . . . . . . . . . . . . . . . . . . 627
Formato de cadena . . . . . . . . . . . . . . . . . . . . . . . . . . . 628
Puntos de rastreo (TPT). . . . . . . . . . . . . . . . . . . . . . . . . . . 631
Formato de cadena . . . . . . . . . . . . . . . . . . . . . . . . . . . 631
Apndice A
Atributos comunes Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
Valores inmediatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
Conversiones de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . 635
SINT o INT en DINT . . . . . . . . . . . . . . . . . . . . . . . . . . 637
Entero en REAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639
DINT en SINT o INT . . . . . . . . . . . . . . . . . . . . . . . . . . 639
REAL en un nmero entero . . . . . . . . . . . . . . . . . . . . . 640
Apndice B
Atributos de bloque de funciones Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
Seleccin de elementos de bloques de funciones . . . . . . . . 641
Enclavamiento de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . 642
Orden de ejecucin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644
Resolucin de un lazo . . . . . . . . . . . . . . . . . . . . . . . . . 645
Resolucin del flujo de datos entre dos bloques . . . . . . 647
Creacin de un retardo de escn . . . . . . . . . . . . . . . . . 647
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648
Respuestas de bloque de funciones a condiciones de
overflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648
Modos de temporizacin . . . . . . . . . . . . . . . . . . . . . . . . . 649
Parmetros de instruccin comunes para modos de
temporizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651
Descripcin general de los modos de temporizacin . . . 653
Control de programa/operador . . . . . . . . . . . . . . . . . . . . . 654
Apndice C
Programacin de texto Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659
estructurado Sintaxis del texto estructurado . . . . . . . . . . . . . . . . . . . . . . 659
Asignaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661
Especifique una asignacin no retentiva . . . . . . . . . . . . 662
Asigne un carcter ASCII a una cadena . . . . . . . . . . . . . 663
Expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
Use funciones y operadores aritmticos . . . . . . . . . . . . 665
Use operadores relacionales . . . . . . . . . . . . . . . . . . . . . 666
Use operadores lgicos . . . . . . . . . . . . . . . . . . . . . . . . 668
Use operadores a nivel de bits . . . . . . . . . . . . . . . . . . . 669
Determine el orden de ejecucin . . . . . . . . . . . . . . . . . 669
Instrucciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 670
Construcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671
Algunas palabras clave estn reservadas para uso
futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671
IF...THEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672
CASE...OF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
FORDO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678
WHILEDO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681
REPEATUNTIL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 684
Comentarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687
ndice Cdigos de caracteres ASCII . . . . . . . . . . . . . . . . . . . . . 697
Cambio Pgina
Captulo 1 Se combinaron las instrucciones de alarma digital (ALMD) 29
y de alarma analgica (ALMA) en un captulo. Se aadi informacin
sobre configuracin, cadenas de mensajes y estados.
Captulo 4 Se aadieron nuevos atributos de objeto de controlador 180
GSV/SSV.
Captulo 20 Se aadieron instrucciones de depuracin (PPT, TPT). 627
Notas:
Tarea/meta Documentos
Programar el controlador para aplicaciones Manual de referencia de instrucciones generales de controladores Logix5000,
secuenciales publicacin 1756-RM003
Usted se encuentra aqu
Programar el controlador para aplicaciones Logix5000 Controllers Process Control and Drives Instructions Reference Manual,
de procesos o de variadores publicacin 1756-RM006
Programar el controlador para aplicaciones Logix5000 Controllers Motion Instruction Set Reference Manual, publicacin
de control de movimiento 1756-RM007
Programar el controlador para usar fases de PhaseManager User Manual, publicacin LOGIX-UM001
equipo
Importar un archivo de texto o tags en un Logix5000 Controllers Import/Export Reference Manual, publicacin 1756-RM084
proyecto
Exportar un proyecto o tags a un archivo de
texto
Convertir una aplicacin de PLC-5 o SLC 500 Logix5550 Controller Converting PLC-5 or SLC 500 Logic to Logix5550 Logic Reference
en una aplicacin Logix5000 Manual, publicacin 1756-6.8.5
A quin est dirigido este Este documento proporciona al programador los detalles acerca de
cada una de las instrucciones disponibles para un controlador basado
manual en Logix. El usuario ya debe estar familiarizado con la manera en que
el controlador basado en Logix almacena y procesa datos.
Propsito de este manual Este manual proporciona una descripcin de cada instruccin en este
formato:
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
texto estructurado
bloque de funciones
condicin condicin
de entrada de salida
de rengln de rengln
Notas:
bloque de funciones
detectar alarmas en base al nivel o velocidad ALMA lgica de escalera de rels 42
de cambio de un valor
texto estructurado
bloque de funciones
Operandos:
Texto estructurado
ALMD(ALMD, In, ProgAck,
ProgReset, ProgDisable, Los operandos son iguales a los de la instruccin ALMD de lgica
ProgEnable); de escalera de rels, con algunas excepciones como se indic
anteriormente.
Bloque de funciones
Estructura ALARM_DIGITAL
Bloque de funciones:
Texto estructurado:
Texto estructurado:
Una alarma enclavada slo puede restablecerse cuando la condicin de alarma es falsa.
Texto estructurado:
Texto estructurado:
Texto estructurado:
Texto estructurado:
Vlido = 0...2,147,483,647.
Valor predeterminado = 0.
Status.0 = InstructFault.
Status.1 = InFaulted.
Status.2 = SeverityInv.
InstructFault (Status.0) BOOL Existen condiciones de error de instruccin. ste no es un error menor ni mayor del
controlador. Verifique los bits de estado restantes para determinar lo que ocurri.
InFaulted (Status.1) BOOL El programa del usuario estableci InFault para indicar datos de entrada de mala calidad.
La alarma contina evaluando In en lo que respecta a la condicin de alarma.
SeverityInv (Status.2) BOOL La severidad de la alarma no es vlida.
En== Condition,
In Condicin,MinDurationACC
MinDurationACC >=
>= Min DurationPRE
MinDurationPRE
InAlarm = Falso InAlarm = Verdadero
InAlarm = False InAlarm = True
Acked = Verdadero Acked = Falso
Acked = True n n Acked = False
dici itio
!= C=onCond
In In ! EE
nPPRR
u ratio
Ack11 D 1
Ack Min Ack
Ack1
AC
C C >=
C
nA
ttioion In
uurraa I!n= !C
M
MininDD =oCnod
iionn,, nitdioicn
nd itc in
InAlarm = Falso Co
== C
InAlarm = Verdadero
InAlarm = False IInn InAlarm = True
Acked = Verdadero
Acked==False
Acked Falso Acked = True
Enclavado
Latched = Verdadero
= True
In== Condition,
In Condicin, MinDurationACC
MinDurationACC >=
>= MinDurationPRE
MinDurationPRE
InAlarm = Falso InAlarm = Verdadero
InAlarm = False InAlarm = True
Acked = Verdadero
Acked = True Acked == Falso
Acked False
2
In != In != Condicin,
Condition, ResetReset
2
InIn! 1
=!=CC Ack
Ack1
onodnd
itiioci
n,nR,
eRsees 2 2
tet
InAlarm = Verdadero
InAlarm = True
Acked = Verdadero
Acked = True
1
La
1 alarma puede confirmarse de diferentes maneras: ProgAck, OperAck, clientes
Alarm can be acked by several different ways: ProgAck, OperAck, clients (RSLogix 5000
(software RSLogix
software, RSView5000, software RSView).
software).
2
La
2 alarma puede restablecerse de diferentes maneras: ProgReset, OperReset, clientes
Alarm can be reset by several different ways: ProgReset, OperReset, clients (RSLogix 5000
(software RSLogix
software, RSView5000, software RSView).
software).
Enclavado
Latched = True= Verdadero
In = Condicin, MnDuracinACC >=
MnDuracinPRE
In = Condition, MinDurationACC >= MinDurationPRE
InAlarm
InAlarm == False
Falso InAlarm = Verdadero
InAlarm = True Acked= =True
Acked
Verdadero
1
In In
!=!=Condicin, Resset
Condition, Reset1
Indicadores de estado
aritmtico: ninguno
Ejecucin:
Condicin Accin de lgica de escalera de rels
preescn La condicin de salida de rengln se establece como falsa.
Texto estructurado
Motor101FaultConditions := Motor101Overtemp OR
Motor101FailToStart;
ALMD(Motor101Fault,Motor101FaultConditions,Motor101Ack,
0,0,0 );
Bloque de funciones
Alarma Analgica (ALMA) La instruccin ALMA detecta alarmas basadas en el nivel o velocidad
de cambio de un valor analgico. Los parmetros de control de
programa (Prog) y de operador (Oper) proporcionan una interface
para los comandos de alarma.
Operandos:
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
Estructura ALARM_ANALOG
Texto estructurado:
Bloque de funciones:
Texto estructurado:
Texto estructurado:
Texto estructurado:
Texto estructurado:
Vlido = HLimit < HHLimit < valor con punto flotante (coma flotante) positivo mximo.
Vlido = valor con punto flotante (coma flotante) negativo mximo < LLLimit < LLimit.
Vlido = 0...2,147,483,647.
Valor predeterminado = 0.
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.
AnyInAlarmUnack BOOL Alarma activa y estado confirmado combinados. Se establece cuando una condicin de
alarma se ha detectado y no est confirmada. Se borra cuando todas las alarmas son
normales (inactivas), confirmadas, o ambas.
HHInAlarm BOOL Estado de condicin de alarma alta alta. Se establece cuando existe una condicin de
alarma alta alta. Se borra cuando no existe una condicin de alarma alta alta.
HInAlarm BOOL Estado de condicin de alarma alta. Se establece cuando existe una condicin de alarma
alta. Se borra cuando no existe una condicin de alarma alta.
LInAlarm BOOL Estado de condicin de alarma baja. Se establece cuando existe una condicin de alarma
baja. Se borra cuando no existe una condicin de alarma baja.
LLInAlarm BOOL Estado de condicin de alarma baja baja. Se establece cuando existe una condicin de
alarma baja baja. Se borra cuando no existe una condicin de alarma baja baja.
ROCPosInAlarm BOOL Estado de condicin de alarma de velocidad de cambio positiva. Se establece cuando existe
una condicin de velocidad de cambio positiva. Se borra cuando no existe una condicin de
velocidad de cambio positiva.
ROCNegInAlarm BOOL Estado de condicin de alarma de velocidad de cambio negativa. Se establece cuando
existe una condicin de velocidad de cambio negativa. Se borra cuando no existe una
condicin de velocidad de cambio negativa.
ROC REAL Velocidad de cambio calculada del valor In. Este valor se actualiza cuando la instruccin se
escanea despus de cada ROCPeriod transcurrido. El valor ROC se usa para evaluar
condiciones de ROCPosInAlarm y ROCNegInAlarm.
Disabled BOOL Estado inhabilitado de la alarma. Se establece cuando la alarma est inhabilitada. Se borra
cuando la alarma est habilitada.
MnDurationACC DINT Tiempo transcurrido desde que se detect una condicin de alarma. Cuando este valor llega
a MinDurationPRE, todas las condiciones de nivel de alarma detectadas se activan
(xInAlarm est establecido) y se enva una notificacin a los clientes.
HHInAlarmTime LINT Sello de hora cuando la instruccin ALMA detect que el valor In excedi el lmite de
condicin alta alta para la transicin ms reciente al estado activo.
HHAlarmCount DINT El nmero de veces que se activ la condicin alta alta. Si se llega al valor mximo,
el contador deja el valor en el mximo valor de conteo.
HInAlarmTime LINT Sello de hora cuando la instruccin ALMA detect que el valor In excedi el lmite de
condicin alta para la transicin ms reciente al estado activo.
HAlarmCount DINT El nmero de veces que se activ la condicin alta. Si se llega al valor mximo, el contador
deja el valor en el mximo valor de conteo.
LInAlarmTime LINT Sello de hora cuando la instruccin ALMA detect que el valor In excedi el lmite de
condicin baja para la transicin ms reciente al estado activo.
LAlarmCount DINT El nmero de veces que se activ la condicin baja. Si se llega al valor mximo, el contador
deja el valor en el mximo valor de conteo.
LLInAlarmTime LINT Sello de hora cuando la instruccin ALMA detect que el valor In excedi el lmite de
condicin baja baja para la transicin ms reciente al estado activo.
LLAlarmCount DINT El nmero de veces que se activ la condicin baja baja. Si se llega al valor mximo,
el contador deja el valor en el mximo valor de conteo.
ROCPosInAlarmTime LINT Sello de hora cuando la instruccin ALMA detect que el valor In excedi el lmite de
condicin de velocidad de cambio positiva para la transicin ms reciente al estado activo.
ROCPosInAlarmCount DINT El nmero de veces que se activ la condicin de velocidad de cambio positiva. Si se llega
al valor mximo, el contador deja el valor en el mximo valor de conteo.
ROCNegInAlarmTime LINT Sello de hora cuando la instruccin ALMA detect que el valor In excedi el lmite de
condicin de velocidad de cambio negativa para la transicin ms reciente al estado activo.
ROCNegAlarmCount DINT El nmero de veces que se activ la condicin de velocidad de cambio negativa. Si se llega
al valor mximo, el contador deja el valor en el mximo valor de conteo.
NoSubscriber BOOL La alarma no tena suscriptores cuando se intent entregar el mensaje ms reciente. Se
establece cuando no hay suscriptores. Se borra cuando hay por lo menos un suscriptor.
NoConnection BOOL Los subscriptores de la alarma no estaban conectados cuando se intent entregar el
mensaje ms reciente. Se establece cuando todos los suscriptores estn desconectados.
Se borra cuando por lo menos un suscriptor est conectado o cuando no hay suscriptores.
CommError BOOL Error de comunicacin al entregar un mensaje de alarma. Se establece cuando hay errores
de comunicacin y se han usado todos los reintentos. Esto significa que un suscriptor
estaba suscrito y tena una conexin, pero el controlador no recibi confirmacin de la
entrega del mensaje. Se borra cuando todos los suscriptores conectados confirman la
recepcin del mensaje de alarma.
AlarmBuffered BOOL Mensaje de alarma almacenado en el bfer debido a error de comunicacin (ComError est
establecido) o prdida de conexin (NoConnection est establecido). Se establece cuando
el mensaje de alarma se almacena en el bfer por lo menos para un suscriptor. Se borra
cuando el mensaje de alarma no se almacena en el bfer.
Subscribers DINT Nmero de suscriptores para esta alarma.
SubscNotified DINT Nmero de suscriptores notificados correctamente acerca del cambio de estado de alarma
ms reciente.
Status DINT Indicadores de estado combinados:
Status.0 = InstructFault.
Status.1 = InFaulted.
Status.2 = SeverityInv.
Status.3 = AlarmLimitsInv.
Status.4 = DeadbandInv.
Status.5 = ROCPosLimitInv.
Status.6 = ROCNegLimitInv.
Status.7 = ROCPeriodInv.
InstructFault (Status.0) BOOL Existen condiciones de error de instruccin. ste no es un error menor ni mayor del
controlador. Verifique los bits de estado restantes para determinar lo que ocurri.
Vlido = 0 Deadband < Span desde la primera alarma baja habilitada hasta la primera
alarma alta habilitada.
ROCPosLimitInv BOOL Lmite de velocidad de cambio positiva no vlido. Si no es vlido, la instruccin usa
(Status.5) ROCPosLimit = 0.0, lo cual inhabilita la deteccin de velocidad de cambio positiva.
ROCNegLimitInv BOOL Lmite de velocidad de cambio negativa no vlido. Si no es vlido, la instruccin usa
(Status.6) ROCNegLimit = 0.0, lo cual inhabilita la deteccin de velocidad de cambio negativa.
ROCPeriodInv (Status.7) BOOL Perodo de velocidad de cambio no vlido. Si no es vlido, la instruccin usa
ROCPeriod = 0.0, lo cual inhabilita la deteccin de velocidad de cambio.
1 La condicin de alarma H puede confirmarse de diferentes maneras: HProgAck, HOperAck, 1 La condicin de alarma HH puede confirmarse de diferentes maneras: HHProgAck, HHOperAck,
1 1
H alarm condition can be acked by several different ways: HProgAck, HOperAck, ProgAckAll, OperAckAll, HH alarm condition can be acked by several different ways: HHProgAck, HHOperAck, ProgAckAll, OperAckAll,
ProgAckAll, OperAckAll,
clients (RSLogix clientes
5000 software, (software
RSView RSLogix 5000, software RSView).
software). ProgAckAll, OperAckAll,
clients (RSLogix clientes
5000 software, (software
RSView RSLogix 5000, software RSView).
software).
InIn>=<=LLimit,
LLimit,MinDurationACC >=MinDurationPRE
MinDurationACC >= MinDurationPRE InIn>=<=LLLimit,
LLLimit,MinDurationACC >= MinDurationPRE
MinDurationACC >= MinDurationPRE
LinAlarm LinAlarm = True LLinAlarm = False
False LLinAlarm = True
LInAlarm == False
False LInAlarm = True LLInAlarm = LLInAlarm = True
LAcked = True
True LAcked = False
False LAcked ==True ) LAcked ==False
nd))
LAcked = LAcked = LLAcked True LLAcked False
dbaand d b anndd)
a
IInn <> Deaadb IInn < a
Deead
b
(LLLLiim
miitt + im it+- De > ((LL
LLLLim im it +- D
it RE
PREE (LLLLLLim
it
- De (LLLlim PnR
imiitt - oPnRPE
Ack1 adba InIn <> ( atiotino 1 1 +D Deead IInn >< ( uDrua
rtioatni Ack1
uurar Ack1 Ack1 adbba Ack1
Ack1 ndd)
) M ininDD Ack Ack anndd) MM iniDn
>> =
= M ) >==
CCC>
ACCCC
A ionnAAC
tiioonn urraattio
ninDD
uurraat inDDu
Mi Min
it,, M
LinAlarm = False it,itM
Lim
Lim
,
LinAlarm = True LLinAlarm = False LLLimimit
LLinAlarm = True
LInAlarm = False =<=LL LInAlarm = True LLInAlarm = False ==LLL LLInAlarm = True
LAcked
LAcked = False
= False InI>n LAcked
LAcked = True
= True LAcked
LLAcked==False
False InIn>< LAcked ==True
LLAcked True
ROC <=
ROC >= RocPosLimit
RocPosLimit ROC
ROC <=
<= -RocNegLimit
-RocNegLimit
RocPosInAlarm = False
RocPosInAlarm = False RocPosInAlarm
RocPosInAlarm == True
True RocNegInAlarm
RocNegInAlarm == False
False RocNegInAlarm = True
RocNegInAlarm = True
RocPosAcked
RocPosAcked = True
= True RocPosAcked = False
RocPosAcked = False RocNegAcked
RocNegAcked == True
True RocNegAcked
RocNegAcked = False
it
Limit imitit
Lim
RROOC cP PoossLim RROOC occN NeeggL
C<<
RRooc < RRooc C<>-
R < --RRo
ROOCC
< -Rooc
cPPoo cNNeg RO C>
OC
Ack11 ssLLim R
Ack11 Ack1 1 egLLi R Ack1 1
Ack imiitt Ack Ack miitt
im Ack
it
miitt Limit
ssLLiim NegeLg
im
cPPoo RooccN
Rooc -
<>== R <==-R
RocPosInAlarm = False
RocPosInAlarm = False RO C
C RocPosInAlarm
RocPosInAlarm == True
True RocNegInAlarm
RocNegInAlarm == False
False
RRO
OCC< RocNegInAlarm
RocNegInAlarm == True
True
RocPosAcked
RocPosAcked = False RocPosAcked = True
True RocNegAcked
RocNegAcked == False
False RocNegAcked
RocNegAcked == True
True
1 1
1 La condicin de alarma ROCPos puede confirmarse de diferentes maneras: RocPosProgAck, RocPosOperAck, La
1
condicin de alarma ROCNeg puede confirmarse de diferentes maneras: RocNegProgAck, RocNegOperAck,
ROCPos alarm condition can be acked by several different ways: RocPosProgAck, RocPosOperAck, ProgAckAll, ROCNeg alarm condition can be acked by several different ways: RocNegProgAck, RocNegOperAck, ProgAckAll,
l, ProgAkkAll, ,
ProgAckAll, OperAckAll,
OperAckAll, clients clientes
(RSLogix (softwareRSView
5000 software, RSLogixsoftware).
5000, software RSView). OperAckAll,OperAckAll, clientes
clients (RSLogix 5000(software
software, RSLogix 5000, software RSView).
RSView software).
In In
<=>=LLimit,
LLLimit,MinDurationACC
MinDurationACC >=
>= MinDurationPRE
MinDurationPRE
LinAlarm = False LinAlarm = True LAcked = True
LInAlarm = False LInAlarm = True LAcked = True
InIn> <(LLimit
(LLimit +- Deadband)
Deadband)
In >=
In >= HHLimit,MinDurationACC
HHLimit, MinDurationACC >=
>=MinDurationPRE
MinDurationPRE
HHinAlarm == False
HHInAlarm False HHinAlarm ==True
HHInAlarm True HHAcked ==True
HHAcked True
InIn< <(HHLimit
(HHLimit -- Deadband)
Deadband)
In >=
In <= LLLimit,MinDurationACC
LLLimit, MinDurationACC >=
>=MinDurationPRE
MinDurationPRE
LLinAlarm = False LLinAlarm = True LLAcked = True
LLInAlarm = False LLInAlarm = True LLAcked = True
In(CurrentSample) Donde
Wheresearecolecta una nueva muestraonenthe
el siguiente
In(Current Sample) -- In(PreviousSample)
In(PreviousSample) new sample is collected
ROC= =
ROC escn despus
next scan de the
after queROCPeriod
haya transcurrido ROCPeriod
has elapsed.
ROCPeriod
ROCPeriod
ROC>=>= ROCPosLimit
ROC ROCPosLimit
RocPosInAlarm ==False
RocPosInAlarm False RocPosInAlarm ==True
RocPosInAlarm True RocPosAcked
RocPosAcked= True
= True
ROC<> ROCPosLimit
ROC ROCPosLimit
ROC<=
ROC >=-ROCNegLimit
-ROCNegLimit
RocNegInAlarm == False
RocNegInAlarm False RocNegInAlarm ==True
RocNegInAlarm True RocNegAcked
RocNegAcked= True
= True
ROC>> -ROCNegLimit
ROC -ROCNegLimit
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico se establecen para la salida ROC.
Condiciones de fallo:
Fallo menor Tipo de fallo Cdigo de fallo
Overflow ROC 4 4
Ejecucin:
Condicin Accin de lgica de escalera de rels
preescn La condicin de salida de rengln se establece como falsa.
Todos los parmetros xInAlarm se borran y se Todos los parmetros xInAlarm se borran y se
confirman todas las condiciones de alarma. confirman todas las condiciones de alarma.
primer escn de instruccin Ninguna. Ninguna.
primera ejecucin de Ninguna. Ninguna.
instruccin
EnableIn se borra La instruccin no se ejecuta. La instruccin se ejecuta.
Texto estructurado
ALMA(Tank32Level,Tank32LT,Tank32LevelAck,0, 0);
Bloque de funciones
Configure una instruccin Despus de introducir una alarma ALMD o ALMA y especificar el
nombre de tag de la alarma, use el dilogo Alarm Configuration para
de alarma especificar los detalles del mensaje.
Seleccione Input=1 para una alarma activa cuando In=1. Seleccione Input=0 para una
alarma activa cuando In=0.
Input Level Instruccin ALMA Nivel de entrada (High High, High, Low o Low Low) o velocidad de cambio de entrada
(positiva o negativa) para activar una alarma.
Input Rate of Change Instruccin ALMA Seleccione las condiciones de la alarma e introduzca los lmites para dichas condiciones.
Inhabilite las condiciones de velocidad de cambio introduciendo un 0 para el perodo o
lmite.
Severity Seleccione un rango de severidades entre 1...1000 para clasificar la importancia de una
condicin de alarma. Una severidad de 1 es para alarmas de baja prioridad, mientras que
una severidad de 1000 es para una condicin de emergencia.
De manera predeterminada, en el sistema FactoryTalk Alarms and Events los rangos de
severidad se asignan a prioridades de la siguiente manera:
El valor de banda muerta no afecta el lmite de alarma para la transicin al estado activo y,
adems, no se usa durante el intervalo de duracin mnima.
Una vez que una condicin de nivel de activa (InAlarm), permanecer activa hasta que el
valor In regrese dentro del lmite mediante la banda muerta especificada. Por ejemplo, si el
lmite alto es 80, el lmite bajo es 20 y la banda muerta es 5, la condicin alta se activar
cuando el valor sea 80 y regresar a lo normal cuando el valor sea 75; la condicin baja
se activar cuando el valor sea 20 y regresar a lo normal cuando el valor sea 25.
Las alarmas que no requieren confirmacin siempre tienen establecido el estado Acked.
Opcin Descripcin
Alarm class Use la clase de alarma para agrupar alarmas relacionadas. Especifique exactamente la
misma clase de alarma para cada alarma que usted desea mantener en la misma clase.
La clase de alarma permite distinguir maysculas de minsculas.
Por ejemplo, especifique Zona de tanques A para agrupar todas las alarmas de los tanques
de un rea especfica. O especifique la clase Lazos de control para agrupar todas las
alarmas de lazos PID.
Despus de ello podr mostrar y filtrar alarmas en la interface operador-mquina (HMI)
segn la clase. Por ejemplo, un operador puede mostrar todas las alarmas de tanques o
todas las alarmas de lazo PID.
La clase de alarma no limita las alarmas a las que se subscribe un objeto del resumen de
alarmas. Use la clase de alarmas para filtrar las alarmas que se muestran a un operador una
vez que stas han sido recibidas por el objeto del resumen de alarmas. El software
FactoryTalk View puede filtrar la clase de alarma sustituyendo comodines por caracteres.
View command Ejecute un comando en la estacin del operador cuando lo solicite el operador para una
alarma especfica. Esto permite que un operador ejecute cualquier comando de FactoryTalk
View estndar, tal como llamar a plantillas y pantallas especficas, ejecutar macros,
acceder a archivos de ayuda e iniciar aplicaciones externas. Cuando se produce la condicin
de alarma y se muestra al operador, un botn en las pantallas de resumen e indicador deja
que el operador ejecute un comando de visualizacin asociado.
Introduzca el texto del Introduzca el texto de mensaje apropiado que se mostrar cuando
una condicin de alarma est activa (InAlarm). Para una instruccin
mensaje de alarma ALMD, usted introduce la informacin del mensaje en la ficha
Configuration. Para una instruccin ALMA, usted introduce la
informacin de mensaje en la ficha Message.
Opcin Descripcin
Message String La cadena de mensaje contiene la informacin que se mostrar al operador respecto a la
alarma. Adems de introducir texto, tambin puede incorporar informacin variable. En el
editor de mensaje de alarma, seleccione la variable que desee y adala en cualquier lugar
de la cadena de mensaje.
La cadena de mensaje puede tener un mximo de 255 caracteres, incluidos los caracteres
que especifican las variables incorporadas (no el nmero de caracteres en los valores reales
de las variables incorporadas). Por ejemplo, /*S:0 %Tag1*/ especifica un tag de cadena y
aade 13 caracteres a la longitud total de la cadena, pero el valor real del tag de cadena
podra tener 82 caracteres.
Opcin Descripcin
Associated tags Puede seleccionar hasta cuatro tags adicionales desde el proyecto del controlador para
asociarlos con la alarma. Los valores de estos tags se envan con un mensaje de alarma al
servidor de alarmas. Por ejemplo, una alarma digital para una vlvula de alivio de presin
tambin podra incluir informacin tal como la velocidad de la bomba y la temperatura del
tanque.
Los tags asociados pueden ser de cualquier tipo de datos atmico (BOOL, DINT, INT, SINT o
REAL) o un STRING. Pueden ser elementos en un UDT o una matriz. No se permiten
referencias a matrices variables. Si la alarma est bajo el control del controlador, los tags
asociados tambin deben estar bajo el control del controlador.
Tag Cdigo
Valor BOOL /*N:1 %Tag1 NOFILL DP:0*/
Valor DINT, 9 dgitos, relleno con espacio a la izquierda /*N:9 %Tag2 SPACEFILL DP:0*/
Valor de entrada REAL, 9 dgitos (incluye decimal) /*N:9 %InputValue NOFILL DP:3*/
3 dgitos despus del decimal, relleno con ceros a la
izquierda.
Valor REAL, 8 dgitos (incluye decimal) 4 dgitos despus /*N:8 %Tag3 ZEROFILL DP:4*/
del decimal, relleno con ceros a la izquierda.
Valor de cadena, sin ancho fijo /*S:0 %Tag4*/
Valor de cadena, 26 caracteres, ancho fijo /*S:26 %Tag4*/
Monitoreo del estado de En la ficha Status del dilogo de alarma, monitoree la condicin de
una alarma, confirme una alarma, inhabilite una alarma, suprima una
alarma alarma o restablezca una alarma. Use las selecciones del dilogo para
ver cmo se comporta una alarma sin necesidad de tener un HMI en
operacin.
Acceda programticamente Cada instruccin de alarma tiene una estructura de alarma que
almacena informacin de configuracin y ejecucin de alarma. La
a informacin de alarmas estructura de alarma incluye tanto elementos de control de programa
y de operador, como elementos de operador. Las instrucciones de
alarma no usan ajustes de modo para determinar si el acceso al
programa o el acceso al operador estn activos; por lo tanto, estos
elementos siempre estn activos.
Suprima o inhabilite Suprima alarmas para retirar las alarmas cuya existencia usted conoce
desde el HMI, pero mantenga las alarmas activas. Esto le permitir
alarmas borrar el resumen de alarmas mientras que usted est resolviendo una
alarma conocida sin continuar viendo informacin de alarmas. Una
alarma suprimida no aparece en las pantallas de indicadores o
resumen de operador, pero una alarma suprimida igualmente se enva
a los suscriptores, se registra en la base de datos histricos, puede
cambiar el estado de alarma, tener sello de hora y responder a otras
interacciones programticas o del operador.
Cuando una alarma se suprime, sta contina funcionando
normalmente, monitorea el parmetro In en lo que respecta a
las condiciones de alarma y responde a peticiones de
confirmacin. Todos los suscriptores son notificados de este
evento, y todo mensaje de alarma generado mientras la alarma
se encuentra en estado suprimido incluye el estado suprimido.
Los clientes de alarmas pueden responder de manera diferente a
las alarmas suprimidas. Por ejemplo, las alarmas suprimidas
pueden registrarse en la base de datos histricos pero no
pueden anunciarse al operador.
Cuando una alarma no est suprimida, todos los suscriptores
son notificados y los mensajes de alarma a los suscriptores ya no
incluyen el estado suprimido.
Inhabilite una alarma para tratar la alarma como si sta no existiera en
el programa de control. Una alarma inhabilitada no cambia el estado
de alarma ni se registra en la base de datos histricos. Una alarma
inhabilitada aun se rastrea y puede rehabilitarse en el explorador de
estado de alarmas en el software FactoryTalk View SE.
Cuando una alarma est inhabilitada, todas sus condiciones se
establecen en el estado inicial (InAlarm se borra y Acked se
establece). El parmetro In no es monitoreado en lo que
respecta a las condiciones de alarma. Todos los suscriptores son
notificados de este evento.
Tiempo de escn
Notas:
Instrucciones de bits
(XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF, OSRI, OSFI)
Introduccin Use las instrucciones de bits (tipo rel) para monitorear y controlar el
estado de los bits.
Examinar si est cerrado La instruccin XIC examina el bit de datos para determinar si est
establecido.
(XIC)
Operandos:
Texto estructurado
Indicadores de estado
aritmtico: no afectados
Ejecucin:
Condicin Accin de lgica de escalera de rels
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de
rengln es verdadera
bit de datos = 1
la condicin de salida de
rengln se establece como
verdadera
fin
Texto estructurado
IF limit_switch THEN
<statement>;
END_IF;
Texto estructurado
IF S:V THEN
<statement>;
END_IF;
Examinar si est abierto La instruccin XIO examina el bit de datos para determinar si est
borrado.
(XIO)
Operandos:
Texto estructurado
Indicadores de estado
aritmtico: no afectados
Ejecucin:
Condicin Accin de lgica de escalera de rels
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de
rengln es verdadera
bit de datos = 1
la condicin de salida de
rengln se establece como
falsa
fin
Texto estructurado
Texto estructurado
Operandos:
Texto estructurado
Indicadores de estado
aritmtico: no afectados
Ejecucin:
Texto estructurado
Texto estructurado
IF BOOL_expression THEN
data_bit := 1;
END_IF;
Indicadores de estado
aritmtico: no afectados
Ejecucin:
Texto estructurado
IF BOOL_expression THEN
light_2 := 1;
END_IF;
Texto estructurado
IF BOOL_expression THEN
data_bit := 0;
END_IF;
Indicadores de estado
aritmtico: no afectados
Ejecucin:
Texto estructurado
IF BOOL_expression THEN
light_2 := 0;
END_IF;
Operandos:
Texto estructurado
Indicadores de estado
aritmtico: no afectados
Ejecucin:
bit de
almacenamiento = 0 el bit de almacenamiento
examinar bit de se establece
almacenamiento
la condicin de salida de
rengln se establece como
verdadera
bit de
almacenamiento = 1
el bit de almacenamiento
permanece establecido
la condicin de salida de
rengln se establece como
falsa fin
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.
Texto estructurado
Un impulso en flanco La instruccin OSR establece o borra el bit de salida, dependiendo del
estado del bit de almacenamiento.
ascendente (OSR)
Esta instruccin est disponible en texto estructurado y en bloque de
funciones como OSRI; vea la pgina 96.
Operandos:
condicin de entrada
del rengln
bit de almacenamiento
bit de salida
Indicadores de estado
aritmtico: no afectados
Ejecucin:
el bit de almacenamiento
permanece establecido
Un impulso en flanco La instruccin OSF establece o borra el bit de salida dependiendo del
estado del bit de almacenamiento.
descendente (OSF)
Esta instruccin est disponible en texto estructurado y en bloque de
funciones como OSFI; vea la pgina 99.
Operandos:
condicin de
entrada del rengln
bit de
almacenamiento
bit de salida
Indicadores de estado
aritmtico: no afectados
Ejecucin:
el bit de almacenamiento
se borra
Operandos:
Bloque de funciones
Estructura FBD_ONESHOT
Texto estructurado:
InputBit
InputBitn-1
OutputBit
Indicadores de estado
aritmtico: no afectados
Ejecucin:
Texto estructurado
OSRI_01.InputBit := limit_switch1;
OSRI(OSRI_01);
State := OSRI_01.OutputBit;
Bloque de funciones
Operandos:
Bloque de funciones
Estructura FBD_ONESHOT
Texto estructurado:
InputBit
InputBit n-1
OutputBit
Indicadores de estado
aritmtico: no afectados
Ejecucin:
Texto estructurado
OSFI_01.InputBit := limit_switch1;
OSFI(OSFI_01);
Output_state := OSFI_01.OutputBit;
Bloque de funciones
Notas:
Operandos:
Estructura TIMER
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ocurrir un fallo mayor si Tipo de fallo Cdigo de fallo
.PRE < 0 4 34
.ACC < 0 4 34
Ejecucin:
Condicin Accin de lgica de escalera de rels
preescn Los bits .EN, .TT y .DN se borran.
Bit .DN = 1
examine el bit .DN
Bit .DN = 0
Bit .EN = 1
s la condicin de salida de
rengln se establece como
verdadera
.ACC = 2,147,483,647
fin
Operandos:
Estructura TIMER
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ocurrir un fallo mayor si Tipo de fallo Cdigo de fallo
.PRE < 0 4 34
.ACC < 0 4 34
Ejecucin:
condicin de entrada de
rengln es falsa
Bit .DN = 0
examine el bit .DN
Bit .DN = 1
Bit .EN = 0
el valor .ACC no
retorna al
valor inicial
s la condicin de salida de
rengln se establece como
falsa
.ACC = 2,147,483,647
fin
condicin de entrada de rengln es verdadera Los bits .EN, .TT y .DN se establecen.
Operandos:
Estructura TIMER
preajuste
16651
valor acumulado de temporizador (.ACC)
0 el temporizador no lleg al valor .PRE
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ocurrir un fallo mayor si Tipo de fallo Cdigo de fallo
.PRE < 0 4 34
.ACC < 0 4 34
Ejecucin:
Bit .DN = 1
examine el bit .DN
Bit .DN = 0
Bit .EN = 1
el valor .ACC no
retorna al
valor inicial
la condicin de salida de
s rengln se establece como
verdadera
.ACC = 2,147,483,647
fin
Operandos:
Bloque de funciones
Estructura FBD_TIMER
Texto estructurado:
TimerEnable
Indicadores de estado
aritmtico: no afectados
Ejecucin:
Condicin Accin de bloque de funciones Accin de texto estructurado
preescn Ninguna. Ninguna.
primer escn de instruccin Los bits EN, TT y DN se borran. Los bits EN, TT y DN se borran.
La instruccin se ejecuta.
EnableOut se establece.
restablecimiento Cuando el parmetro de entrada Reset se establece, Cuando el parmetro de entrada Reset se establece,
la instruccin borra EN, TT y DN y establece la instruccin borra EN, TT y DN y establece
ACC = cero. ACC = cero.
post-escn Ninguna. Ninguna.
Texto estructurado
TONR_01.Preset := 500;
TONR_01.Reset : = reset;
TONR_O1.TimerEnable := limit_switch1;
TONR(TONR_01);
timer_state := TONR_01.DN;
Operandos:
Estructura FBD_TIMER
Texto estructurado:
Indicadores de estado
aritmtico: no afectados
Ejecucin:
Condicin Accin de bloque de funciones Accin de texto estructurado
preescn Ninguna. Ninguna.
primer escn de instruccin Los bits EN, TT y DN se borran. Los bits EN, TT y DN se borran.
La instruccin se ejecuta.
EnableOut se establece.
restablecimiento Cuando el parmetro de entrada Reset se establece, Cuando el parmetro de entrada Reset se establece,
la instruccin borra EN, TT y DN, y establece la instruccin borra EN, TT y DN, y establece
ACC = PRE. Tenga presente que esto es diferente a ACC = PRE. Tenga presente que esto es diferente a
usar una instruccin RES en una instruccin TOF. usar una instruccin RES en una instruccin TOF.
post-escn Ninguna. Ninguna.
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
Operandos:
Estructura FBD_TIMER
Texto estructurado:
TimerEnable
Reset
preajuste
16651
valor acumulado de temporizador (.ACC)
0
el temporizador no lleg al valor PRE
Indicadores de estado
aritmtico: no afectados
Ejecucin:
La instruccin se ejecuta.
EnableOut se establece.
restablecimiento Cuando el parmetro de entrada Reset se establece, Cuando el parmetro de entrada Reset se establece,
la instruccin borra EN, TT y DN y establece la instruccin borra EN, TT y DN y establece
ACC = cero. ACC = cero.
post-escn Ninguna. Ninguna.
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
Operandos:
Estructura COUNTER
preajuste
Indicadores de estado
aritmtico: no afectados
Ejecucin:
bit .CU = 1 no
el bit .UN = 0
el bit .OV se
el bit .UN = 1 el bit .OV = 1 establece
.ACC .PRE
examine .ACC
la condicin de salida de
rengln se establece como
verdadera
fin
Operandos:
Estructura COUNTER
Descripcin: La instruccin CTD normalmente se usa con una instruccin CTU que
referencia la misma estructura de contador.
preajuste
16637
Indicadores de estado
aritmtico: no afectados
Ejecucin:
el bit .CD = 1 no
el bit .OV = 0
el bit .UN se
el bit .UN = 1 el bit .OV = 1 establece
.ACC .PRE
examine .ACC
la condicin de salida de
rengln se establece como
verdadera
fin
Operandos:
Bloque de funciones
Estructura FBD_COUNTER
Texto estructurado:
El valor predeterminado es 0.
Reset BOOL Peticin para restablecer el temporizador. Cuando se establece, el contador se restablece.
Conteo progresivo
CUEnable
preajuste
Conteo regresivo
CDEnable
preajuste
16637
Indicadores de estado
aritmtico: no afectados
Ejecucin:
Texto estructurado
CTUD_01.Preset := 500;
CTUD_01.Reset := Restart;
CTUD_O1.CUEnable := limit_switch1;
CTUD(CTUD_01);
counter_state := CTUD_01.DN;
Bloque de funciones
Operandos:
CONTROL
COUNTER
ATENCIN Puesto que la instruccin RES borra el valor .ACC, el bit .DN y
el bit .TT, no use la instruccin RES para restablecer un
temporizador TOF.
Indicadores de estado
aritmtico: no afectados
Ejecucin:
Instrucciones de entrada/salida
(MSG, GSV, SSV, IOT)
texto estructurado
obtener informacin de estado del controlador GSV lgica de escalera de rels 176
texto estructurado
establecer informacin de estado del SSV lgica de escalera de rels 176
controlador
texto estructurado
enviar valores de salida a un mdulo de E/S IOT lgica de escalera de rels 201
o controlador consumidor en un punto
especfico de su lgica texto estructurado
activar una tarea de evento en otro
controlador
Operandos:
Texto estructurado
MSG(MessageControl);
Los operandos son iguales a los de la instruccin MSG de lgica de
escalera de rels.
Estructura MESSAGE
Para llegar a un dispositivo y crear automticamente una porcin o toda la nueva cadena, haga clic
con el botn derecho del mouse en un tag de cadena y seleccione Go to Message Path Editor.
.RemoteIndex DINT Si usted usa un asterisco [*] para designar el nmero de elemento de la matriz remota, el
RemoteIndex proporciona el nmero de elemento. Para cambiar el nmero de elemento, establezca
este miembro en el valor requerido.
Si el mensaje: La matriz remota es el:
lee datos Elemento de origen
escribe datos Elemento de destino
bit .EN
bit .EW
bit .ST
41382
1 2 3 4 5 6 7
.ST se borra
.ST se borra
.EN se establece
.EW se establece
Ejecucin:
Condicin Accin de lgica de escalera de rels Accin de texto estructurado
preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
bit .EW = 1
examine el bit .EW
bit .EW = 0
bit .ST = 1
examine el bit .ST
bit .ST = 0
bit .DN = 1
examine el bit .DN
bit .DN = 0
no s
bit .DN = 1
examine el bit .DN s conexin de no
mdulo en
ejecucin
bit .DN = 0 el bit .EN se borra ejecute la peticin de
mensaje
bit .ER = 1
examine el bit .ER el bit .EW se establece el bit .ER se
establece
bit .ER = 0
fin
La instruccin se ejecuta.
ejecucin de la instruccin
bit .EN = 1 bit .EN = 0
examine el bit .EN
no s
s conexin de no
mdulo en
ejecucin
los bits .EW, .ST, .TO, .DN y .ER se borran
el bit .EN se establece
ejecute la peticin de mensaje
el bit .EW se establece el bit .ER se
establece
la condicin de salida de
rengln se establece
como falsa
fin
Indicadores de estado
aritmtico: no afectados
Cdigos de error MSG Los cdigos de error dependen del tipo de instruccin MSG.
Cdigos de error
Memoria no disponible
Los detalles que usted configura dependen del tipo de mensaje que
selecciona.
42976
Si selecciona un tipo de mensaje de escritura, el tag de origen es el primer elemento del tag que usted
desea enviar al dispositivo receptor.
Nmero de elementos El nmero de elementos que usted lee/escribe depende del tipo de datos que usa. Un elemento se refiere a un
segmento de datos asociados. Por ejemplo, el tag timer1 es un elemento que consiste en una estructura de
control del temporizador.
Elemento de destino Si selecciona un tipo de mensaje de lectura, el elemento de destino es el primer elemento del tag en el
controlador Logix5000 donde desea almacenar los datos que lee desde el dispositivo receptor.
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];
Este tag representa una mscara de bit de los puntos en los cuales se
restablecen los fusibles
Destino dejar en blanco
Restablecer diagnsticos enclavados en Tipo de mensaje CIP genrico
un mdulo de entrada digital
Tipo de servicio Restablecer diagnsticos enclavados (I)
Origen tag_name de tipo DINT
Este tag representa una mscara de bit de los puntos en los cuales se
restablecen los diagnsticos.
Restablecer diagnsticos enclavados en Tipo de mensaje CIP genrico
un mdulo de salida digital
Tipo de servicio Restablecer diagnsticos enclavados (O)
Origen tag_name de tipo DINT
Este tag representa una mscara de bit de los puntos en los cuales se
restablecen los diagnsticos.
Los datos del tag de origen se almacenan a partir de la direccin especificada como el
elemento de destino en el procesador PLC-5.
1 1 1 2 1
2 2 2 4 3
3 3 3
4 4 4
Los comandos TypedWrite/TypedRead mantienen la Los comandos de rango de palabras llenan el tag de destino
estructura y el valor de los datos. contiguamente. La estructura y valor de los datos se cambian
segn el tipo de datos de destino.
Use los tipos de mensajes SLC para comunicarse con los controladores
SLC y MicroLogix. La siguiente tabla muestra los tipos de datos que la
instruccin le permite acceder. La tabla tambin muestra el tipo de
datos Logix5000 correspondiente.
Para este tipo de datos SLC o Use este tipo de datos Logix5000
MicroLogix
F REAL
L (controladores MicroLogix 1200 y 1500) DINT
N INT
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.
Los tipos de mensaje PLC-3 han sido diseados para los procesadores
PLC-3.
Para enteros, este comando lee enteros de 16 bits del procesador PLC-3 y los almacena
en matrices de datos SINT, INT o DINT en el controlador Logix5000, y mantiene la
integridad de los datos.
Este comando tambin lee datos de punto flotante (coma flotante) del PLC-3 y los
almacena en un tag de tipo de datos REAL en el controlador Logix5000.
TypedWrite PLC3 escribir nmeros enteros o datos tipo REAL.
Este comando escribe datos SINT o INT en el archivo de nmeros enteros PLC-3, y
mantiene la integridad de los datos. Usted puede escribir datos DINT siempre y cuando
estn comprendidos dentro de un tipo de datos INT (32,768 32,767).
Este comando tambin escribe datos de tipo REAL del controlador Logix5000 en un
archivo de valores con punto flotante (coma flotante) PLC-3.
Lectura de rango de palabras leer un rango continuo de palabras de 16 bits en la memoria PLC-3 independientemente
PLC3 del tipo de datos.
Los datos del tag de origen se almacenan a partir de la direccin especificada como el
elemento de destino en el procesador PLC-3.
1 1 1 2 1
2 2 2 4 3
3 3 3
4 4 4
Los comandos TypedWrite/TypedRead mantienen la Los comandos de rango de palabras llenan el tag de destino
estructura y el valor de los datos. contiguamente. La estructura y el valor de los datos se
cambian segn el tipo de datos de destino.
Los tipos de mensaje PLC-2 han sido diseados para los procesadores
PLC-2.
Ejemplos de configuracin Los ejemplos siguientes muestran tags de origen y destino, as como
elementos para diferentes combinaciones de controladores.
MSG
Para las instrucciones MSG que provienen de un controlador
Logix5000 y escriben en otro procesador:
No puede usar un tag de alias para el tag de destino. El destino debe ser un tag de
base.
Logix5000 PLC-5 tag de origen array_1[0]
elemento de destino N7:10
Logix5000 SLC
Puede usar un tag de alias para el tag de origen (en el controlador Logix5000 de
origen).
Logix5000 PLC-2 tag de origen array_1[0]
elemento de destino 010
Puede usar un tag de alias para el tag de destino (en el controlador Logix5000 de
origen).
Logix5000 PLC-5 elemento de origen N7:10
tag de destino array_1[0]
Logix5000 SLC
Puede usar un tag de alias para el tag de destino (en el controlador Logix5000 de
origen).
Logix5000 PLC-2 elemento de origen 010
tag de destino array_1[0]
Especifique los detalles Para configurar una instruccin MSG, usted especifica estos detalles
en la ficha Communication.
de comunicacin
Si Entonces
La configuracin de E/S del controlador Use el botn Browse para seleccionar el mdulo.
tiene el mdulo que obtiene el mensaje.
La configuracin de E/S del controlador 1. Use el botn Browse para seleccionar el mdulo de comunicacin local.
tiene slo el mdulo de comunicacin local. 2. Escriba el resto de la ruta.
La configuracin de E/S del controlador no Escriba la ruta.
tiene ninguno de los mdulos que necesita
para el mensaje.
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.
Donde Es
Para esta red Tipo
port backplane 1
DF1 (canal 0 serie, serie) 2
ControlNet
EtherNet/IP
DH+ canal A
DH+ canal B 3
DF1 canal 1
(canal 1 serie)
next_address backplane nmero de ranura del mdulo
DF1 (serie) direccin de estacin (0-254)
ControlNet nmero de nodo (1-99 decimal)
DH+ 8# seguido del nmero de nodo (1-77 octal)
Por ejemplo, para especificar la direccin de nodo octal de 37, escriba 8#37.
EtherNet/IP Usted puede especificar un mdulo en una red EtherNet/IP usando cualquiera de
estos formatos:
Si usted Entonces
Almacena en cach la La conexin se mantiene abierta una vez finalizada la
conexin instruccin MSG. As se optimiza el tiempo de ejecucin.
El abrir una conexin cada vez que se ejecuta el mensaje
aumenta el tiempo de ejecucin.
No almacena en cach La conexin se cierra una vez finalizada la instruccin MSG.
la conexin As se libera la conexin para otros usos.
Pautas
Pauta Detalles
1. Para cada instruccin MSG, cree un tag de Cada instruccin MSG requiere su propio tag de control.
control.
Tipo de datos = MESSAGE
Alcance = controlador
El tag no puede ser parte de una matriz ni de un tipo de datos definido por el usuario.
2. Mantenga los datos de origen y/o destino al Una instruccin MSG puede acceder slo a tags que estn en la carpeta de tags del
alcance del controlador. controlador (alcance del controlador).
3. Si su MSG es a un dispositivo que usa Si su mensaje es a un dispositivo que usa enteros de 16 bits, tal como un controlador
enteros de 16 bits, use un bfer de INT en el PLC-5 o SLC 500, y ste transfiere enteros (no valores REAL), use un bfer de INT en
MSG y DINT en todo el proyecto. el mensaje y DINT en todo el proyecto.
As se aumenta la eficiencia de su proyecto porque los controladores Logix se ejecutan
ms eficientemente y usan menos memoria cuando trabajan con enteros de 32 bits
(DINT).
Para convertir entre INT y DINT, consulte Logix5000 Controllers Common Procedures,
publicacin 1756-PM001.
4. Almacene en cach los MSG conectados Almacene en cach la conexin para dichas instrucciones MSG que se ejecutan con
que se ejecutan con mayor frecuencia. ms frecuencia, hasta el nmero mximo permitido por la revisin del controlador.
Esto optimiza el tiempo de ejecucin porque el controlador no tiene que abrir una
conexin cada vez que se ejecuta el mensaje.
5. Si desea habilitar ms de 16 MSG Si usted habilita ms de 16 MSG a la vez, algunas instrucciones MSG pueden
simultneamente, use el mismo tipo de experimentar retardos al ingresar en la cola. Para garantizar la ejecucin de cada
estrategia de administracin. mensaje, use una de estas opciones.
Habilite cada mensaje en secuencia.
Habilite los mensajes en grupos.
Programe un mensaje para comunicarse con varios dispositivos. Para obtener ms
informacin, consulte Logix5000 Controllers Common Procedures, publicacin
1756-PM001.
Programe la lgica para coordinar la ejecucin de mensajes. Para obtener ms
informacin, consulte Logix5000 Controllers Common Procedures, publicacin
1756-PM001.
6. Mantenga el nmero de MSG no El controlador puede tener 10 - 40 bferes no conectados. El nmero predeterminado
conectados y no almacenados en cach en es 10.
un valor menor que el nmero de bferes no
Si todos los bferes no conectados se usan cuando una instruccin deja la cola de
conectados.
mensajes, se produce un error en la instruccin y no transfiere los datos.
Usted puede aumentar el nmero de bferes no conectados (40 mx.), pero contine
siguiendo las pautas 5.
Para aumentar el nmero de bferes no conectados, consulte Logix5000 Controllers
Common Procedures, publicacin 1756-PM001.
Obtener valor del sistema Las instrucciones GSV/SSV reciben y envan datos de sistema del
controlador que se almacenan en los objetos.
(GSV) y establecer valor del
sistema (SSV)
Operandos:
INT
DINT
REAL
estructura
Source (SSV) SINT tag el tag que contiene los datos que desea copiar al atributo
INT
DINT
REAL
estructura
Texto estructurado
GSV(ClassName,InstanceName,AttributeName,Dest);
SSV(ClassName,InstanceName,AttributeName,Source);
Los operandos son iguales que para las instrucciones GSV y SSV de
lgica de escalera de rels.
ATENCIN
Utilice las instrucciones GSV y SSV con precaucin. Los cambios en los objetos
pueden provocar una operacin inesperada del controlador o lesiones al personal.
Usted debe probar y confirmar que las instrucciones no cambien datos que usted no
desea que cambien.
Las instrucciones GSV y SSV escriben o leen ms all de un miembro hacia otros
miembros de un tag. Si el tag es demasiado pequeo, las instrucciones no escriben
ni leen los datos. En lugar de ello, registran un fallo menor.
Ejemplo 1
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ejecucin:
Condicin Accin de lgica de escalera de rels Accin de texto estructurado
preescn La condicin de salida de rengln se establece como Ninguna
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.
La instruccin se ejecuta.
la instruccin se ejecuta Obtenga o establezca el valor especificado. Obtenga o establezca el valor especificado.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.
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.
ProductRev INT GSV Identifica la revisin del producto actual. La visualizacin debe
ser hexadecimal.
0010 reservado
0011 reservado
0110 marcha
0111 programa
Controlador = 14
Vendor INT GSV Identifica el suministrador del dispositivo.
Allen-Bradley = 0001
Valor: Significado:
0 deteccin de mensajes duplicados inhabilitada
no cero deteccin de mensajes duplicados inhabilitada
EmbeddedResponseEnable SINT GSV Habilita la funcionalidad de respuesta incorporada (punto a punto
solamente).
Valor: Significado:
0 se inicia solamente despus de que se recibe uno
(opcin predeterminada)
1 habilitado incondicionalmente
ENQTransmitLimit SINT GSV El nmero de consultas (ENQ) que se envan despus del tiempo
de espera de ACK (punto a punto solamente).
Valor: Significado:
0 supresin de EOT inhabilitada
no cero supresin de EOT habilitada
Valor: Significado:
0 BCC (predeterminado)
1 CRC
MasterMessageTransmit SINT GSV Valor actual de la transmisin de mensaje del maestro (maestro
solamente).
Valor: Significado:
0 entre encuestas de estacin
1 en secuencia de encuesta (en lugar del nmero de
estacin del maestro)
El valor predeterminado es 0.
NAKReceiveLimit SINT GSV El nmero de NAK recibidos como respuesta a un mensaje antes
de detener la transmisin (comunicacin punto a punto
solamente).
Valor: Significado:
0 basado en mensajes; no permite a los esclavos
iniciar mensajes
1 basado en mensajes, pero permite a los esclavos
iniciar mensajes (predeterminado)
2 estndar, transferencia de un solo mensaje por
escn de nodo
3 estndar, transferencia de varios mensajes por
escn de nodo
La configuracin predeterminada es 1.
ReplyMessageWait DINT GSV El tiempo (actuando como maestro) que se debe esperar despus
de recibirse un ACK antes de encuestarse el esclavo en busca de
una respuesta (maestro solamente).
SSV
MessageType SINT GSV Especifica el tipo de mensaje.
Donde Es
msg_1 mensaje cuyo atributo usted desea cambiar
msg_1_type tag que almacena el valor del atributo MessageType
tag_a tag que almacena un 0.
msg_1_path tag de matriz que almacena la nueva ruta de conexin para el
mensaje
msg_path
msg_path GSV
GSV SSV
SSV
0 Get
GetSystem
SystemValue
Value Set
SetSystem
SystemValue
Value
Class
Classname
name Message
MESSAGE Class
Classname
name Message
MESSAGE
Instance
Instance name
name msg_1
msg_1 Instance
Instance name
name msg_1
msg_1
AttributeName
Attribute Name MessageType
MessageType Attribute
Attribute Name MessageType
Name MessageType
Dest
Dest msg_1_type
msg_1_type Source
Source tag_a
tag_a
22 00
SSV
SSV SSV
SSV
Set System
Set Value
System Value Set
SetSystem
SystemValue
Value
Class
Classname
name Message
MESSAGE Class
Classname
name Message
MESSAGE
Instance
Instancename
name msg_1
msg_1 Instance
Instance name
name msg_1
msg_1
Attribute Name
Attribute ConnectionPath
Name ConnectionPath Attribute
AttributeName MessageType
Name MessageType
Source
Source msg_1path[0]
msg_1_path[0] Source
Source msg_1_type
msg_1_type
66 22
msg_1.EN
msg_1.EN MSG
MSG
1 / Tipo
Type Escritura
- CIP Datade tabla
Tablede Write
datos CIP EN
EN
Message
Message Control
Control msg_1 ...
msg_1 DN
DN
ER
ER
Texto estructurado
IF msg_path THEN
GSV(MESSAGE,msg_1,MessageType,msg_1_type);
SSV(MESSAGE,msg_1,MessageType,tag_a);
SSV(MESSAGE,msg_1,ConnectionPath,msg_1_path[0]);
SSV(MESSAGE,msg_1,MessageType,msg_1_type);
END_IF;
MSG(msg_1);
END_IF;
Valor: Significado:
16#0000 Reserva: el controlador se est encendiendo.
Bit: Significado:
0 forzados instalados (1=s, 0=no)
1 forzados habilitados (1=s, 0=no)
2-15 no se usa
Valor: Significado:
0 LED apagado: No hay objetos MODULE configurados para
el controlador (no hay mdulos en la seccin I/O
Configuration del organizador del controlador).
TimeLow DINT Decimal los 32 bits inferiores de un valor de sello de hora de fallo
TimeHigh DINT Decimal los 32 bits superiores de un valor de sello de hora de fallo
Code INT Decimal cdigo nico para el fallo (depende del tipo de fallo)
Info DINT[8] Hexadecimal informacin especfica del fallo (depende del cdigo y tipo de
fallo)
MaxScanTime DINT GSV El tiempo de ejecucin mximo registrado para este programa.
El tiempo se representa en microsegundos.
SSV
MinorFaultRecord DINT[11] GSV Registra los fallos menores para este programa
TimeLow DINT Decimal los 32 bits inferiores de un valor de sello de hora de fallo
TimeHigh DINT Decimal los 32 bits superiores de un valor de sello de hora de fallo
Code INT Decimal cdigo nico para el fallo (depende del tipo de fallo)
Info DINT[8] Hexadecimal informacin especfica del fallo (depende del cdigo y tipo de
fallo)
SFCRestart INT GSV no se usa reservado para uso futuro
SSV
Los valores vlidos son 110, 300, 600, 1200, 2400, 4800, 9600 y
19200 (predeterminado).
DataBits SINT GSV Especifica el nmero de bits de datos por carcter.
Valor: Significado:
7 7 bits de datos (ASCII solamente)
8 8 bits de datos (opcin predeterminada)
Parity SINT GSV Especifica la paridad.
Valor: Significado:
0 sin paridad (no predeterminado)
1 paridad impar (ASCII solamente)
2 paridad par
RTSOffDelay INT GSV La cantidad de tiempo necesario para retardar la desconexin de
la lnea RTS despus de la transmisin del ltimo carcter.
Valor: Significado:
1 1 bit de fin (opcin predeterminada)
2 2 bits de fin (ASCII solamente)
PendingBaudRate DINT SSV Valor pendiente para el atributo BaudRate.
PendingDataBits SINT SSV Valor pendiente para el atributo DataBits.
PendingParity SINT SSV Valor pendiente para el atributo Parity.
SSV DINT[0] ao
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);
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);
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);
Salida inmediata (IOT) La instruccin IOT actualiza inmediatamente los datos de salida
especificados (tag de salida o tag producido).
Operandos:
Para usar una instruccin IOT y un tag producido para activar una
tarea de evento en un controlador consumidor, configure el tag
producido de la siguiente manera:
Con este controlador Mediante esta red El dispositivo consumidor recibe los
datos y el activador de evento
ControlLogix backplane inmediatamente
Red EtherNet/IP inmediatamente
Red ControlNet dentro del intervalo entre paquetes actual
(API) del tag consumido (conexin)
SoftLogix5800 Usted puede producir y consumir tags slo dentro del intervalo entre paquetes actual
por una red ControlNet. (API) del tag consumido (conexin)
Indicadores de estado
aritmtico: no afectados
Ejecucin:
Texto estructurado
IOT (Local:5:O);
Texto estructurado
Instrucciones de comparacin
(CMP, EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Operandos:
DINT
REAL
cadena
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Texto estructurado
IF BOOL_expression THEN
<statement>;
END_IF;
Ejecucin:
la expresin es
verdadera la condicin de salida de
evale la expresin
rengln se establece como
verdadera
la expresin es falsa
la condicin de salida de
rengln se establece
como falsa
fin
Expresiones CMP
Operadores vlidos
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:
Orden Operacin
1. ()
2. ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG,
RAD, SIN, SQR, TAN, TOD, TRN
3. **
4. (cambiar signo), NOT
5. *, /, MOD
6. <, <=, >, >=, =
7. (restar), +
8. AND
9. XOR
10. OR
Operador Descripcin
= igual que
< menor que
<= menor o igual que
> mayor que
>= mayor o igual que
<> diferente de
Operandos:
DINT
REAL
cadena
Source B SINT inmediato valor que se compara con
Source A
INT tag
DINT
REAL
cadena
Texto estructurado
IF sourceA = sourceB THEN Use el signo igual = como operador dentro de una expresin. Esta
<statements>; expresin evala si sourceA es igual que sourceB.
Bloque de funciones
Estructura FBD_COMPARE
Descripcin: Use la instruccin EQU para comparar dos nmeros o dos cadenas de
caracteres ASCII. Cuando usted compara las cadenas:
Indicadores de estado
aritmtico: no afectados
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de
rengln es verdadera
s la condicin de salida de
Source A = Source B
rengln se establece
como verdadera
no
la condicin de salida de
rengln se establece
como falsa
fin
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
Bloque de funciones
Mayor o igual que (GEQ) La instruccin GEQ determina si Source A es mayor o igual que
Source B.
Operandos:
INT tag
DINT
REAL
cadena
Source B SINT inmediato valor que se compara con Source A
INT tag
DINT
REAL
cadena
Texto estructurado
IF sourceA >= sourceB THEN Use los signos mayor que e igual >= adyacentes como operador
<statements>; dentro de una expresin. Esta expresin evala si sourceA es mayor o
igual que sourceB.
Bloque de funciones
Estructura FBD_COMPARE
Indicadores de estado
aritmtico: no afectados
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de
rengln es verdadera
s la condicin de salida de
Source A Source B
rengln se establece
como verdadera
no
la condicin de salida de
rengln se establece
como falsa
fin
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
Bloque de funciones
Mayor que (GRT) La instruccin GRT determina si Source A es mayor que Source B.
Operandos:
INT tag
DINT
REAL
cadena
Source B SINT inmediato valor que se compara con Source A
INT tag
DINT
REAL
cadena
Texto estructurado
IF sourceA > sourceB THEN Use el signo mayor que > como un operador dentro de una
<statements>; expresin. Esta expresin evala si sourceA es mayor que sourceB.
Bloque de funciones
Estructura FBD_COMPARE
Indicadores de estado
aritmtico: no afectados
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de
rengln es verdadera
s la condicin de salida de
Source A > Source B
rengln se establece
como verdadera
no
la condicin de salida de
rengln se establece
como falsa
fin
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
Bloque de funciones
Menor o igual que (LEQ) La instruccin LEQ determina si Source A es menor o igual que
Source B.
Operandos:
INT tag
DINT
REAL
cadena
Source B SINT inmediato valor que se compara con Source A
INT tag
DINT
REAL
cadena
Texto estructurado
IF sourceA <= sourceB THEN Use los signos menor que e igual <= adyacentes como operador
<statements>; dentro de una expresin. Esta expresin evala si sourceA es menor o
igual que sourceB.
Bloque de funciones
Estructura FBD_COMPARE
Indicadores de estado
aritmtico: no afectados
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de
rengln es verdadera
s la condicin de salida de
Source A Source B
rengln se establece
como verdadera
no
la condicin de salida de
rengln se establece
como falsa
fin
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
Bloque de funciones
Menor que (LES) La instruccin LES determina si Source A es menor que Source B.
Operandos:
INT tag
DINT
REAL
cadena
Source B SINT inmediato valor que se compara con Source A
INT tag
DINT
REAL
cadena
Texto estructurado
IF sourceA < sourceB THEN Use el signo menor que < como un operador dentro de una
<statements>; expresin. Esta expresin evala si sourceA es menor que sourceB.
Bloque de funciones
Estructura FBD_COMPARE
Indicadores de estado
aritmtico: no afectados
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de
rengln es verdadera
s la condicin de salida de
Source A < Source B
rengln se establece
como verdadera
no
la condicin de salida de
rengln se establece
como falsa
fin
Bloque de funciones
Condicin: Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn es falsa EnableOut se borra.
EnableIn es verdadera La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
Bloque de funciones
Operandos:
INT tag
DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Test SINT inmediato valor que se prueba
INT tag
DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
High limit SINT inmediato valor del lmite superior
INT tag
DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Texto estructurado
<statement>;
END_IF;
Bloque de funciones
Estructura FBD_LIMIT
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.
La instruccin es verdadera si el valor de prueba se encuentra entre los lmites inferior y La instruccin es verdadera si el valor de prueba se encuentra fuera de los
superior, o coincide con uno de dichos lmites. lmites inferior y superior, o coincide con uno de dichos lmites.
0
0
1 +1
1 +1
lmite inferior
lmite superior
lmite superior
lmite inferior
(n+1) +n
(n+1) +n
n = valor mximo n = valor mximo
Indicadores de estado
aritmtico: no afectados
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de
rengln es verdadera
la comparacin es
verdadera la condicin de salida de
evaluar el lmite
rengln se establece
como verdadera
la comparacin es falsa
la condicin de salida de
rengln se establece
como falsa
fin
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra, la instruccin no efecta ninguna operacin y las salidas no se
actualizan.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
light_1 := 1;
ELSE
light_1 := 0;
END_IF;
Bloque de funciones
Texto estructurado
light_1 := 1;
ELSE
light_1 := 0;
END_IF;
Bloque de funciones
Mscara igual que (MEQ) La instruccin MEQ pasa los valores Source y Compare por una
mscara y compara los resultados.
Operandos:
INT tag
DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Mask SINT inmediato define qu bits se deben bloquear o pasar
INT tag
DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Compare SINT inmediato valor que se compara con Source
INT tag
DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Texto estructurado
<statement>;
END_IF;
Bloque de funciones
Estructura FBD_MASK_EQUAL
Si mezcla tipos de datos enteros, la instruccin llena con ceros los bits
superiores de los tipos de datos enteros menores para que tengan el
mismo tamao que el tipo de datos mayores.
Prefijo Descripcin
16# hexadecimal
Indicadores de estado
aritmtico: no afectados
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de
rengln es verdadera
origen
enmascarado = s la condicin de salida de
comparacin rengln se establece
enmascarada como verdadera
no
la condicin de salida de
rengln se establece
como falsa
fin
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra, la instruccin no efecta ninguna operacin y las salidas no se
actualizan.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
value_1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 value_2 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0
mask_1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 mask_1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0
value_1 0 1 0 1 0 1 0 1 1 1 1 1 X X X X value_2 0 1 0 1 0 1 0 1 1 1 1 1 X X X X
enmascarado enmascarado
Texto estructurado
Bloque de funciones
value_1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 value_2 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0
mask_1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 mask_1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
value_1 X X X X X X X X X X X X 1 1 1 1 value_2 X X X X X X X X X X X X 0 0 0 0
enmascarado enmascarado
Texto estructurado
Bloque de funciones
Operandos:
INT tag
DINT
REAL
cadena
Source B SINT inmediato valor que se compara con Source A
INT tag
DINT
REAL
cadena
Texto estructurado
IF sourceA <> sourceB THEN Use los signos menor que y mayor que <> juntos como operador
<statements>; dentro de una expresin. Esta expresin evala si sourceA es
diferente de sourceB.
Bloque de funciones
Estructura FBD_COMPARE
Indicadores de estado
aritmtico: no afectados
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de
rengln es verdadera
s la condicin de salida de
Source A = Source B
rengln se establece
como verdadera
no
la condicin de salida de
rengln se establece
como falsa
fin
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
Bloque de funciones
Notas:
Instrucciones de clculo/matemticas
(CPT, ADD, SUB, MUL, DIV, MOD, SQR, SQRT, NEG, ABS)
Calcular (CPT) La instruccin CPT realiza las operaciones aritmticas que usted define
en la expresin.
Operandos:
Texto estructurado
destino := numeric_expresion;
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.
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Ejecucin:
Operadores vlidos
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:
Orden: Operacin:
1. ()
2. ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG,
RAD, SIN, SQR, TAN, TOD, TRN
3. **
4. (cambiar signo), NOT
5. *, /, MOD
6. (restar), +
7. AND
8. XOR
9. OR
Sumar (ADD) La instruccin ADD suma Source A con Source B y coloca el resultado
en Destination.
Operandos:
INT tag
DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Source B SINT inmediato valor que se suma a Source A
INT tag
DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Destination SINT tag tag para almacenar el resultado
INT
DINT
REAL
Texto estructurado
dest := sourceA + sourceB; Use el signo ms + como operador dentro de una expresin. Esta
expresin suma sourceA a sourceB y almacena el resultado en dest.
Bloque de funciones
Estructura FBD_MATH
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Ejecucin:
Condicin: Accin:
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera Destination = Source A + Source B
Bloque de funciones
Condicin: Accin:
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
Bloque de funciones
Operandos:
INT tag
DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Source B SINT inmediato valor que se resta de Source A
INT tag
DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Destination SINT tag tag para almacenar el resultado
INT
DINT
REAL
Texto estructurado
dest := sourceA - sourceB; Use el signo menos como operador en una expresin. Esta
expresin resta sourceB de sourceA y almacena el resultado en dest.
Bloque de funciones
Estructura FBD_MATH
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Ejecucin:
Condicin: Accin:
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera Destination = Source B Source A
Bloque de funciones
Condicin: Accin:
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
Bloque de funciones
Operandos:
INT tag
DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Source B SINT inmediato valor del multiplicador
INT tag
DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Destination SINT tag tag para almacenar el resultado
INT
DINT
REAL
Texto estructurado
dest := sourceA * sourceB; Use el signo de multiplicacin como operador en una expresin.
Esta expresin multiplica sourceA por sourceB y almacena el resultado
en dest.
Bloque de funciones
Estructura FBD_MATH
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera Destination = Source B x Source A
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
Bloque de funciones
Operandos:
INT tag
DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Source B SINT inmediato valor del divisor
INT tag
DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Destination SINT tag tag para almacenar el resultado
INT
DINT
REAL
Texto estructurado
dest := sourceA / sourceB; Use el signo de dividir / como operador en una expresin. Esta
expresin divide sourceA entre sourceB y almacena el resultado en
dest.
Bloque de funciones
Estructura FBD_MATH
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:
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera Destination = Source A/Source B
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
Bloque de funciones
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
Operandos:
INT tag
DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Source B SINT inmediato valor del divisor
INT tag
DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Destination SINT tag tag para almacenar el resultado
INT
DINT
REAL
Texto estructurado
dest := sourceA MOD sourceB; Use MOD como operador en una expresin. Esta expresin divide
sourceA entre sourceB y almacena el residuo en dest.
Bloque de funciones
Estructura FBD_MATH
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:
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera Destination = Source A ( TRN ( Source A/Source B ) * Source B )
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
post-escn Ninguna.
Texto estructurado
Bloque de funciones
Raz cuadrada (SQR) La instruccin SQR calcula la raz cuadrada de Source y coloca el
resultado en Destination.
Operandos:
INT tag
DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Destination SINT tag tag para almacenar el resultado
INT
DINT
REAL
Texto estructurado
dest := SQRT(source); Use SQRT como funcin. Esta expresin calcula la raz cuadrada de
source y almacena el resultado en dest.
Bloque de funciones
Estructura FBD_MATH_ADVANCED
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera
Destination = Source
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
sqr_result := SQRT(value_1);
Bloque de funciones
Cambiar signo (NEG) La instruccin NEG cambia el signo de Source y coloca el resultado en
Destination.
Operandos:
INT tag
DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Destination SINT tag tag para almacenar el resultado
INT
DINT
REAL
Texto estructurado
Bloque de funciones
Estructura FBD_MATH
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera Destination = 0 Source
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
negate_result := -value_1;
Bloque de funciones
Valor absoluto (ABS) La instruccin ABS toma el valor absoluto de Source y coloca el
resultado en Destination.
Operandos:
INT tag
DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Destination SINT tag tag para almacenar el resultado
INT
DINT
REAL
Texto estructurado
dest := ABS(source); Use ABS como funcin. Esta expresin calcula el valor absoluto de
source y almacena el resultado en dest.
Bloque de funciones
Estructura FBD_MATH_ADVANCED
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera Destination = | Source |
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
value_1_absolute := ABS(value_1);
Bloque de funciones
Notas:
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.
texto estructurado(1)
copiar una parte especfica de un nmero MVM lgica de escalera de rels 285
entero
copiar una parte especfica de un nmero MVMT texto estructurado 288
entero en el bloque de funciones
bloque de funciones
mover bits dentro de un nmero entero o entre BTD lgica de escalera de rels 292
nmeros enteros
mover bits dentro de un nmero entero o entre BTDT texto estructurado 295
nmeros enteros en el bloque de funciones
bloque de funciones
borrar un valor CLR texto estructurado(1) 298
bloque de funciones
operacin O a nivel de bits Bitwise OR lgica de escalera de rels 307
texto estructurado(2)
bloque de funciones
operacin O exclusivo a nivel de bits Bitwise XOR lgica de escalera de rels 310
texto estructurado(2)
bloque de funciones
operacin NOT a nivel de bits Bitwise NOT lgica de escalera de rels 314
texto estructurado(2)
bloque de funciones
Y lgico hasta ocho entradas booleanas. Boolean AND (BAND) texto estructurado(2) 317
bloque de funciones
O lgico hasta ocho entradas booleanas. Boolean OR (BOR) texto estructurado(2) 320
bloque de funciones
realizar un O exclusivo en dos entradas Boolean Exclusive OR texto estructurado(2) 323
booleanas. (BXOR)
bloque de funciones
complementar una entrada booleana. Boolean NOT (BNOT) texto estructurado(2) 326
bloque de funciones
(1)
Texto estructurado solamente.
(2)
En texto estructurado, las operaciones AND, OR, XOR y NOT pueden ser lgicas o a nivel de bits.
Operandos:
INT tag
DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Destination SINT tag tag para almacenar el resultado
INT
DINT
REAL
Texto estructurado
dest := source; Use una asignacin := con una expresin. Esta asignacin mueve el
valor de source a dest.
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Ejecucin:
Texto estructurado
Mover con mscara (MVM) La instruccin MVM copia Source a un Destination y permite
enmascarar porciones de los datos.
Operandos:
INT tag
DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Mask SINT inmediato qu bits se bloquean o se pasan
INT tag
DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Destination SINT tag tag para almacenar el resultado
INT
DINT
Texto estructurado
dest := (Dest AND NOT (Mask)) Esta instruccin est disponible en texto estructurado como MVMT.
OR (Source AND Mask); O puede combinar lgica a nivel de bits dentro de una expresin y
asignar el resultado al destino. Esta expresin realiza un movimiento
con mscara en Source.
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.
Prefijo: Descripcin
16# hexadecimal
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Ejecucin:
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
Operandos:
Bloque de funciones
Estructura FBD_MASKED_MOVE
Texto estructurado
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.
Prefijo Descripcin
16# hexadecimal
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Ejecucin:
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
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(MVMT_01);
value_masked := MVMT_01.Dest;
Bloque de funciones
Distribuir campo de bits La instruccin BTD copia los bits especificados de Source, desplaza
los bits a la posicin apropiada y escribe los bits en Destination.
(BTD)
Esta instruccin est disponible en texto estructurado y en bloque de
funciones como BTDT; vea la pgina 295.
Operandos:
INT tag
DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Source bit DINT inmediato nmero del bit (nmero del bit ms bajo)
desde donde empezar el movimiento
(0-31 DINT)
(0-15 INT) debe estar dentro del rango vlido para el
(0-7 SINT) tipo de datos de Source
Destination SINT tag tag a donde mover los bits
INT
DINT
Destination DINT inmediato nmero del bit (nmero del bit ms bajo)
bit desde donde empezar a copiar bits desde
Source
(0-31 DINT)
(0-15 INT) debe estar dentro del rango vlido para el
(0-7 SINT) tipo de datos del destino
Length DINT inmediato nmero de bits que se van a mover
(1-32)
Indicadores de estado
aritmtico: no afectados
Ejecucin:
Ejemplo 1: Una vez habilitada, la instruccin BTD transfiere los bits dentro de
value_1.
value_1 antes de la 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
instruccin BTD
value_1 despus de la 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
instruccin BTD
bit de origen
value_1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
bit de destino
value_2 antes de la 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
instruccin BTD
value_2 despus de la 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0
instruccin BTD
Operandos:
Bloque de funciones
Estructura FBD_BIT_FIELD_DISTRIBUTE
Texto estructurado:
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
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados
Ejecucin:
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
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
Borrar (CLR) La instruccin CLR borra (pone en cero) todos los bits de Destination.
Operandos:
INT
DINT
REAL
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Ejecucin:
Condicin Accin de lgica de escalera de rels
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera La instruccin borra Destination.
Texto estructurado
value := 0;
Operandos:
DINT
REAL
Modo de orden Si Source Y usted desea cambiar los bytes a este Entonces
es un patrn (cada letra representa un byte seleccione
diferente)
INT n. a. cualquiera de las
opciones
DINT ABCD DCBA REVERSE
(o introduzca 0)
REAL
ABCD CDAB WORD (o introduzca 1)
ABCD BADC HIGH/LOW
(o introduzca 2)
Destination INT tag tag para almacenar los bytes en el nuevo orden
Si Source Entonces el destino debe ser un
DINT
es un
REAL INT INT
DINT
DINT DINT
REAL REAL
Texto estructurado
SWPB(Source,OrderMode,Dest);
Los operandos son los mismos que los de la instruccin SWPB de
lgica de escalera de rels. Si selecciona el modo de orden
HIGH/LOW, introdzcalo como HIGHLOW o HIGH_LOW (sin la
barra diagonal).
42968
AB
Indicadores de estado
aritmtico: no afectados
Ejecucin:
La instruccin se ejecuta.
ejecucin de la instruccin La instruccin reacomoda los bytes especificados. La instruccin reacomoda los bytes especificados.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.
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);
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;
Y a nivel de bits (AND) La instruccin AND realiza una operacin Y a nivel de bits usando los
bits en Source A y Source B, y coloca el resultado en Destination.
Operandos:
DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Source B SINT inmediato valor con que se a realiza la operacin AND
con Source A
INT tag
DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Destination SINT tag almacena el resultado
INT
DINT
Texto estructurado
dest := sourceA AND sourceB
Use AND o el signo & como operador dentro de una expresin. Esta
expresin evala sourceA AND sourceB.
Bloque de funciones
Estructura FBD_LOGICAL
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera La instruccin realiza una operacin Y a nivel de bits.
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
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
Bloque de funciones
O a nivel de bits (OR) La instruccin OR realiza una operacin O a nivel de bits usando los
bits en Source A y Source B, y coloca el resultado en Destination.
Operandos:
DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Source B SINT inmediato valor con que se realiza la
operacin O con Source A
INT tag
DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Destination SINT tag almacena el resultado
INT
DINT
Texto estructurado
dest := sourceA OR sourceB
Use OR como operador dentro de una expresin. Esta expresin
evala sourceA OR sourceB.
Bloque de funciones
Estructura FBD_LOGICAL
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera La instruccin realiza una operacin O a nivel de bits.
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
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
Bloque de funciones
O exclusivo a nivel de bits La instruccin XOR realiza una operacin O exclusivo a nivel de bits
usando los bits en Source A y Source B, y coloca el resultado en
(XOR) Destination.
Operandos:
DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Source B SINT inmediato valor con que se realiza la operacin
XOR con Source A
INT tag
DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Destination SINT tag almacena el resultado
INT
DINT
Texto estructurado
dest := sourceA XOR sourceB
Use XOR como operador dentro de una expresin. Esta expresin
evala sourceA XOR sourceB.
Bloque de funciones
Estructura FBD_LOGICAL
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera La instruccin realiza una operacin O a nivel de bits.
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
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
Bloque de funciones
NO a nivel de bits (NOT) La instruccin NOT realiza un NO a nivel de bits usando los bits en
Source y coloca el resultado en Destination.
Operandos:
DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Destination SINT tag almacena el resultado
INT
DINT
Texto estructurado
dest := NOT source
Use NOT como operador dentro de una expresin. Esta expresin
evala source con la operacin NOT.
Bloque de funciones
Estructura FBD_LOGICAL
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera La instruccin realiza una operacin NO a nivel de bits.
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
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
Bloque de funciones
Operandos:
Texto estructurado
IF operandA AND operandB THEN
Use AND o el signo & como operador dentro de una expresin.
<statement>;
Los operandos deben ser valores BOOL o expresiones que resultan
END_IF; en valores BOOL. Esta expresin evala si tanto operandA como
operandB estn establecidos (verdaderos).
Bloque de funciones
Estructura FBD_BOOLEAN_AND
Out = In1 AND In2 AND In3 AND In4 AND In5 AND In6 AND In7 AND In8
Indicadores de estado
aritmtico: no afectados
Ejecucin:
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
Bloque de funciones
Texto estructurado
Operandos:
Texto estructurado
IF operandA OR operandB THEN
Use OR como operador dentro de una expresin. Los operandos
<statement>;
deben ser valores BOOLEANOS o expresiones que resultan en valores
END_IF; BOOLEANOS. Esta expresin evala si operandA u operandB, o
ambos estn establecidos (verdaderos).
Bloque de funciones
Estructura FBD_BOOLEAN_OR
Indicadores de estado
aritmtico: no afectados
Ejecucin:
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
Bloque de funciones
Texto estructurado
Operandos:
Texto estructurado
IF operandA XOR operandB THEN
Use XOR como operador dentro de una expresin. Los operandos
<statement>;
deben ser valores BOOLEANOS o expresiones que resultan en valores
END_IF; BOOLEANOS. Esta expresin evala si slo operandA o slo
operandB, est establecido (verdadero).
Bloque de funciones
Estructura FBD_BOOLEAN_XOR
Indicadores de estado
aritmtico: no afectados
Ejecucin:
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
Bloque de funciones
Texto estructurado
Operandos:
Texto estructurado
IF NOT operand THEN
Use NOT como operador dentro de una expresin. El operando debe
<statement>;
ser un valor BOOL o expresiones que resultan en valores BOOL. Esta
END_IF; expresin evala si el operando est borrado (falso).
Bloque de funciones
Estructura FBD_BOOLEAN_NOT
Out = NOT In
Indicadores de estado
aritmtico: no afectados
Ejecucin:
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
Bloque de funciones
Texto estructurado
Notas:
Instrucciones de matriz
(archivo)/miscelneas
(FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)
texto estructurado
copiar el contenido de una matriz en otra matriz CPS lgica de escalera de rels 356
sin interrupcin
texto estructurado
llenar una matriz con datos especficos FLL lgica de escalera de rels 362
texto estructurado(1)
calcular el promedio de una matriz de valores AVE lgica de escalera de rels 366
texto estructurado(1)
organizar una dimensin de datos de matriz en SRT lgica de escalera de rels 371
orden ascendente
texto estructurado
calcular la desviacin estndar de una matriz STD lgica de escalera de rels 376
de valores
texto estructurado(1)
encontrar el tamao de una dimensin de una SIZE lgica de escalera de rels 381
matriz
texto estructurado
(1)
No hay una instruccin equivalente en texto estructurado. Use otra programacin en texto estructurado para lograr el mismo resultado. Vea la descripcin de la
instruccin.
Seleccin del modo de Para las instrucciones FAL y FSC, el modo indica al controlador cmo
distribuir la operacin de la matriz.
operacin
Si desea Seleccione este
modo
realizar una operacin en todos los elementos Todos
especificados de una matriz antes de continuar con la
prxima instruccin
distribuir operaciones de matriz entre un nmero de Numrico
escanes
Modo Todos
16639
un escn
bit .EN
bit .DN
borra los bits de estado y
borra el valor .POS
escn de la instruccin
Modo numrico
un escn
segundo escn
siguiente escn
16641
bit .EN
bit .DN
escn de la instruccin
Modo incremental
Habilitacin de 1 instruccin
Habilitacin de 2 instruccin
Habilitacin de 3 instruccin
16643
un escn
bit .EN
bit .DN
40014
escn de la instruccin
INT
DINT
REAL
Expression SINT inmediato una expresin que consiste en tags
y/o valores inmediatos separados por
INT tag operadores
DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Texto estructurado
SIZE(destination,0,length-1);
FOR position = 0 TO length DO
destination[position] := numeric_expression;
END_FOR;
Estructura CONTROL
Descripcin: La instruccin FAL realiza las mismas operaciones en las matrices que
la instruccin CPT realiza en los elementos.
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo:
Ejecucin:
Bit .DN = 0 no
examine el modo INC se borra el bit interno
bit .DN
bit .DN = 1 s
no .LEN < 0 o s
el bit .EN se borra el bit .EN se borra modo ALL fallo mayor
.POS < 0
el bit .ER se borra
el bit .DN se borra
el valor .POS se borra s no
.POS = .POS + 1
s
.LEN = 0
no
s
.POS = 0
no
no .POS < .LEN
.POS = .POS - 1 s
no
.LEN > modo
el bit .DN se establece
el bit .EN se establece
s
modo = .LEN
el bit .DN se
establece
el bit .EN se borra
modo
numrico
pgina 341
la condicin de salida de
rengln se establece como
falsa
fin
no no
examinar el .LEN = 0 modo INC modo ALL
bit .DN
bit .DN = 1 s s s
loop_count =
loop_count - 1
no
loop_count < 0 .POS = .POS + 1
s
evaluar la expresin
no
examinar S:V
no
.POS = .LEN
la condicin de salida de
rengln se establece como
verdadera
fin
modo
INC
bit .EN = 1
examinar el
bit .EN
bit .EN = 0
bit = 1
examinar el .POS = .POS + 1
bit interno
bit = 0
s s
.POS .LEN .POS = 0
no no
la condicin de salida de
comn rengln se establece como
verdadera
pgina 338
fin
modo
ALL
s s
.POS .LEN .POS = 0
no no
pgina 338
fin
modo
numrico
bit .EN = 1
examinar el
bit .EN
bit .EN = 0
.POS = .POS + 1
bit = 1
examinar el
bit interno
bit = 0
s s
.POS .LEN .POS = 0
no no
.POS = .POS - 1
no
modo = .LEN .LEN modo
s
el bit .DN se establece la condicin de salida de
el bit .EN se establece el bit .EN se establece rengln se establece como
loop_count = .LEN - .POS verdadera
.POS = .POS - 1
fin
modo s
loop_count comn
pgina 338
no
Expresin: Destino:
array_2[control_2.pos] array_1[control_2.pos]
Expresin: Destino:
value_1 array_2[0,control_2.pos]
Ejemplo 3: Cada vez que la instruccin FAL se habilita, copia el valor actual de
array_1 a value_1. La instruccin FAL usa el modo incremental; por
lo tanto, slo se copia un valor de matriz cada vez que se habilita la
instruccin. La prxima vez que se habilita la instruccin, sta
sobrescribe value_1 con el siguiente valor en array_1.
copia de matriz a elemento
Expresin: Destino:
array_1[control_1.pos] value_1
Expresin: Destino:
value_1 + value_2 array_1[control_1.pos]
Expresin: Destino:
array_2[control_2.pos] / array_3[control_2.pos] array_1[control_2.pos]
Expresin: Destino:
array_1[control_1.pos] + value_1 array_3[control_1.pos]
Ejemplo 7: Cada vez que la instruccin FAL se habilita, suma value_1 al valor
actual de array_1 y almacena el resultado en value_2. La instruccin
FAL usa el modo incremental; por lo tanto, slo se suma un valor de
matriz a value_1 cada vez que se habilita la instruccin. La siguiente
vez que se habilita la instruccin, sta sobrescribe value_2.
operacin aritmtica: (elemento + matriz) a elemento
Expresin: Destino:
value_1 + array_1[control_1.pos] value_2
Expresin: Destino:
array_1[control_1.pos] * array_3[control_1.pos] value_1
Expresiones FAL
Operadores vlidos
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:
Orden Operacin
1. ()
2. ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG,
RAD, SIN, SQR, TAN, TOD, TRN
3. **
4. (cambiar signo), NOT
5. *, /, MOD
6. (restar), +
7. AND
8. XOR
9. OR
Bsqueda y comparacin La instruccin FSC compara los valores en una matriz, elemento por
elemento.
de archivos (FSC)
Operandos:
Estructura CONTROL
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo:
Ejecucin:
bit .DN = 0 no
examinar el modo INC se borra el bit interno
bit .DN
bit .DN = 1 s
no .LEN < 0 o s
el bit .EN se borra el bit .EN se borra modo ALL fallo mayor
el bit .ER se borra .POS < 0
el bit .DN se borra
el valor .POS se borra s no
.POS = .POS + 1
s
.LEN = 0
no
s
.POS = 0
no
no .POS < .LEN
.POS = .POS - 1 s
no
.LEN > modo
el bit .DN se establece
el bit .EN se establece
s
modo = .LEN
el bit .DN se
establece
el bit .EN se borra
modo
numrico
pgina 341
la condicin de salida de
rengln se establece como
falsa
fin
no no
examinar el .LEN = 0 modo INC modo ALL
bit .IN
bit .DN = 1
bit .IN = 0 s s s
bit .DN = 0
loop_count =
loop_count - 1
no
loop_count < 0 .POS = .POS + 1
s
evale la comparacin
no
coincidencia
no
.POS = .LEN
fin
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.
00000000000000000000000000000000 00000000000000000000000000000000 0
00000000000000000000000000000000 00000000000000000000000000000000 1
00000000000000000000000000000000 00000000000000000000000000000000 2
00000000000000000000000000000000 00000000000000000000000000000000 3 La instruccin FSC determina que estos
elementos son diferentes. La instruccin
00000000000000001111111111111111 11111111111111110000000000000000 4 establece los bits .FD e .IN. El valor .POS (4)
11111111111111111111111111111111 11111111111111111111111111111111 5 indica la posicin de los elementos que son
diferentes. Para continuar comparando el
11111111111111111111111111111111 11111111111111111111111111111111 6
resto de la matriz, borre el bit .IN.
11111111111111111111111111111111 11111111111111111111111111111111 7
11111111111111111111111111111111 11111111111111111111111111111111 8
11111111111111111111111111111111 11111111111111111111111111111111 9
00000000000000000000000000000000 0
00000000000000000000000000000000 1
00000000000000000000000000000000 2
00000000000000000000000000000000 3
La instruccin FSC determina que este
11111111111111110000000000000000 11111111111111110000000000000000 4 elemento de matriz es igual a
11111111111111111111111111111111 5 MySearchKey. La instruccin establece los
bits .FD e .IN. El valor .POS (4) indica la
11111111111111111111111111111111 6 posicin de los elementos que son iguales.
11111111111111111111111111111111 7 Para continuar comparando el resto de la
matriz, borre el bit .IN.
11111111111111111111111111111111 8
11111111111111111111111111111111 9
AFG 0
BEH 1
HUO 2
SAK 3
La instruccin FSC determina que este
SAM SAM 4 elemento de la matriz es igual a code.
La instruccin establece los bits .FD e .IN.
FQG 5
El valor .POS (4) indica la posicin de los
CLE 6 elementos que son iguales. Para continuar
CAK 7 comparando el resto de la matriz, borre el
bit .IN.
DET 8
BWG 9
Expresiones FSC
Operadores vlidos
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:
Orden Operacin
1. ()
2. ABS, ACS, ASN, ATN, COS, DEG, FRD, LN, LOG,
RAD, SIN, SQR, TAN, TOD, TRN
3. **
4. (cambiar signo), NOT
5. *, /, MOD
6. <, <=, >, >=, =
7. (restar), +
8. AND
9. XOR
10. OR
Operador Descripcin
= igual que
< menor que
<= menor o igual que
> mayor que
>= mayor o igual que
<> diferente de
Copiar archivo (COP) Las instrucciones COP y CPS copian el o los valores de Source en
Destination. Source no cambia.
Copiar archivo sncrono
(CPS)
Operandos:
cadena
estructura
Destination SINT tag el elemento inicial que va a ser sobrescrito
por Source
INT
Importante: Los operandos Source y
DINT Destination deben ser del mismo tipo; de lo
contrario, pueden ocurrir resultados
REAL inesperados.
cadena
estructura
Length DINT inmediato nmero de elementos de destino que se
copian
tag
Texto estructurado
COP(Source,Dest,Length);
Los operandos son iguales que los de las instrucciones COP y CPS de
CPS(Source,Dest,Length);
lgica de escalera de rels.
IMPORTANTE Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
Las instrucciones COP y CPS operan en memoria contigua. Realizan una copia de
memoria directa byte a byte. En algunos casos, escriben ms all de la matriz en
otros miembros del tag. Esto sucede si la longitud es excesiva y el tag es de un tipo
de datos definido por el usuario.
Si el tag es Entonces
tipo de datos definido por Si Length es demasiado grande, la instruccin escribe ms
el usuario all del final de la matriz a otros miembros del tag. Se detiene
al final del tag. No se genera un fallo mayor.
NO es un tipo de datos Si Length es demasiado grande, la instruccin se detiene al
definido por el usuario final de la matriz. No se genera un fallo mayor.
Indicadores de estado
aritmtico: no afectados
Ejecucin:
La instruccin se ejecuta.
no
source_address = Source
destination_address = s
end_address
no
fin
destination_address =
destination_address + 1
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);
Texto estructurado
CPS(project_data[0],produced_array[0],100);
Texto estructurado
CPS(Local:0:I.Data[0],input_buffer[0],20);
array_timer[4]
array_timer[9] Finalmente, la instruccin copia los
valores de timer[9] a timer[10]
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;
Llenar archivo (FLL) La instruccin FLL llena los elementos de una matriz con el valor de
Source. Source no cambia.
Operandos:
Texto estructurado
SIZE(destination,0,length);
FOR position = 0 TO length-1 DO
destination[position] := source;
END_FOR;
IMPORTANTE Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
La instruccin FLL realiza la operacin en la memoria de datos contiguos. En algunos
casos, la instruccin escribe ms all de la matriz en otros miembros del tag. Esto
sucede si la longitud es excesiva y el tag es de un tipo de datos definido por el
usuario.
Si el tag es Entonces
tipo de datos definido por Si la longitud es demasiado grande, la instruccin escribe ms
el usuario all del final de la matriz a otros miembros del tag. Se detiene
al final del tag. No se genera un fallo mayor.
NO es un tipo de datos Si Length es demasiado grande, la instruccin se detiene al
definido por el usuario final de la matriz. No se genera un fallo mayor.
Indicadores de estado
aritmtico: no afectados
Ejecucin:
condicin de entrada de
rengln es verdadera
no
source_address = Source
s
destination_address =
end_address
no
la condicin de salida de
rengln se establece como
destination_address = verdadera
destination_address + 1
fin
16#0101 0101
16#0101 0101
INT 16#0001 TIMER 16#0001 0001
16#0001 0001
16#0001 0001
DINT 16#0000 0001 TIMER 16#0000 0001
16#0000 0001
16#0000 0001
Texto estructurado
Operandos:
array[dim_0,dim_1,dim_2]
array[dim_0,dim_1]
array[dim_0]
Destination SINT tag resultado de la operacin
INT
DINT
REAL
Control CONTROL tag estructura de control para la operacin
Length DINT inmediato nmero de elementos de la matriz que se va
a promediar
Position DINT inmediato elemento actual en la matriz
Texto estructurado
SIZE(array,0,length);
sum := 0;
FOR position = 0 TO length-1 DO
sum := sum + array[position];
END_FOR;
destino := sum / length;
Estructura CONTROL
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo:
Ejecucin:
bit .DN = 0
examinar el bit .DN
bit .DN = 1
la condicin de salida de
rengln se establece como
falsa
fin
condicin de entrada de rengln es verdadera La instruccin AVE calcula el promedio sumando todos los elementos especificados en
la matriz y dividiendo el resultado entre el nmero de elementos.
Modo = ALL
Para obtener detalles sobre cmo se ejecuta la instruccin FAL, vea la pgina 337.
post-escn La condicin de salida de rengln se establece como falsa.
su
bn dimensin 1
d
0 1 2 3 4
ice
s
AVE = 19
0 20 19 18 17 16 + 14 + 9 + 4- = 46
------------------------------------ ------ = 11.5
4 4
1 15 14 13 12 11
dimensin 0
dint_ave = 12
2 10 9 8 7 6
3 5 4 3 2 1
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;
su
b
nd dimensin 1
0 1 2 3 4
ice
s
AVE = 5---------------------------------------
0 20 19 18 17 16 + 4 + 3 + 2 + 1- = 15 ------ = 3
5 5
1 15 14 13 12 11
dimensin 0 dint_ave = 3
2 10 9 8 7 6
3 5 4 3 2 1
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;
array[dim_0,dim_1,dim_2]
array[dim_0,dim_1]
array[dim_0]
Control CONTROL tag estructura de control para la operacin
Length DINT inmediato nmero de elementos en la matriz que se
clasifica
Position DINT inmediato elemento actual en la matriz
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
IMPORTANTE Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
La instruccin SRT realiza la operacin en la memoria de datos contiguos. En
algunos casos, la instruccin cambia datos en otros miembros del tag. Esto sucede
si la longitud es excesiva y el tag es de un tipo de datos definido por el usuario.
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo:
Ejecucin:
bit .DN = 1
la condicin de salida de
rengln se establece como
falsa
fin
La instruccin se ejecuta.
ejecucin de la instruccin La instruccin clasifica los elementos especificados La instruccin clasifica los elementos especificados
en la matriz en orden ascendente. en la matriz en orden ascendente.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.
Antes Despus
dimensin 1 dimensin 1
su
su
bn
bn
0 1 2 3 4
dic
d
0 1 2 3 4
ic e
es
s
0 20 19 18 17 16 0 20 19 3 17 16
1 15 14 13 12 11 1 15 14 8 12 11
dimensin 0 dimensin 0
2 10 9 8 7 6 2 10 9 13 7 6
3 5 4 3 2 1 3 5 4 18 2 1
Texto estructurado
control_1.LEN := 4;
control_1.POS := 0;
SRT(int_array[0,2],0,control_1);
Antes Despus
dimensin 1 dimensin 1
su
su
bn
b
nd
0 1 2 3 4
dic
0 1 2 3 4
ice
se
s
0 20 19 18 17 16 0 20 19 18 17 16
1 15 14 13 12 11 1 15 14 13 12 11
dimensin 0 dimensin 0
2 10 9 8 7 6 2 6 7 8 9 10
3 5 4 3 2 1 3 5 4 3 2 1
Texto estructurado
control_1.LEN := 5;
control_1.POS := 0;
SRT(int_array[2,0],1,control_1);
Operandos:
array[dim_0,dim_1,dim_2]
array[dim_0,dim_1]
array[dim_0]
Destination REAL tag resultado de la operacin
Control CONTROL tag estructura de control para la operacin
Length DINT inmediato el nmero de elementos de la matriz que se
usa para calcular el desviacin estndar
Position DINT inmediato elemento actual en la matriz
Estructura CONTROL
Texto estructurado
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));
N
2
[ X AVE ]
( start + i )
Desviacin estndar = i = 1
--------------------------------------------------------------------
(N 1)
Donde:
inicio = subndice de la dimensin para variar del operando de
la matriz
xi = elemento variable en la matriz
N = nmero de elementos especificados en la matriz
AVE = N
x ( start + i )
i = 1
-----------------------------------------
N
IMPORTANTE Asegrese de que Length no haga que la instruccin exceda la Dimension to vary
especificada. Si ocurre esto, el destino ser incorrecto.
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo:
Ejecucin:
condicin de entrada de
rengln es falsa
bit .DN = 0
examinar el bit .DN
bit .DN = 1
la condicin de salida de
rengln se establece como
falsa
fin
condicin de entrada de rengln es verdadera La instruccin STD calcula la desviacin estndar de los elementos especificados.
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.
su
bn
0 1 2 3 4
di c
es
0 20 19 18 17 16
1 15 14 13 12 11
dimensin 0
AVE = 16 + 11 + 6 + 1- = 34 10 9 8 7 6
------------------------------------ ------ = 8.5 2
4 4
3 5 4 3 2 1
2 2 2 2
16 8.5 + 11 8.5 + 6 8.5 + 1 8.5 - = 6.454972
STD = --------------------------------------------------------------------------------------------------------------------------
4 1
real_std = 6.454972
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));
su
bn
0 1 2 3 4
dic
es
0 20 19 18 17 16
1 15 14 13 12 11
dimensin 0
2 10 9 8 7 6
AVE = 20 + 19 + 18 + 17 + 16- = 90
------------------------------------------------------ ------ = 18
5 5 3 5 4 3 2 1
2 2 2 2 2
20 18 + 19 18 + 18 18 + 17 18 + 16 18 - = 1.581139
STD = -----------------------------------------------------------------------------------------------------------------------------------------------------------
5 1
real_std = 1.581139
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));
DINT
REAL
estructura
cadena
Dimension DINT inmediato dimensin que se va a usar:
to Vary (0, 1, 2)
Para el tamao de Introduzca
primera dimensin 0
segunda dimensin 1
tercera dimensin 2
DINT
REAL
Texto estructurado
SIZE(Source,Dimtovary,Size);
Los operandos son iguales a los de la instruccin SIZE de lgica de
escalera de rels.
Indicadores de estado
aritmtico: no afectados
Ejecucin:
La instruccin se ejecuta.
ejecucin de la instruccin La instruccin encuentra el tamao de una La instruccin encuentra el tamao de una
dimensin. dimensin.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.
Texto estructurado
SIZE(array_a,0,array_a_size);
Texto estructurado
SIZE(string_1.DATA[0],0,string_1_size);
Texto estructurado
SIZE(strings_a[0].DATA[0],0,data_size_a);
Notas:
Instrucciones de matriz
(archivo)/desplazamiento
(BSL, BSR, FFL, FFU, LFL, LFU)
Desplazamiento de bits a la La instruccin BSL desplaza los bits especificados dentro de la matriz
una posicin hacia la izquierda.
izquierda (BSL)
Operandos:
Estructura CONTROL
IMPORTANTE Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
La instruccin BSL realiza la operacin en la memoria de datos contiguos. En
algunos casos, la instruccin desplaza bits ms all de la matriz en otros miembros
del tag. Esto sucede si la longitud es excesiva y el tag es de un tipo de datos
definido por el usuario.
Indicadores de estado
aritmtico: no afectados
Ejecucin:
bit .EN = 1
examinar el bit .EN
bit .EN = 0
s
.LEN = 0 el bit .DN se establece
no
.source bit = 1
examinar el bit de el bit .UL permanece
origen establecido.
s
.LEN < 0 el bit .ER se establece
.source bit = 0
no
el bit .UL se establece.
desplazar matriz izquierda una posicin a la
izquierda
bit de
bit .UL matriz origen
la condicin de salida de
rengln se establece como
el bit .DN se establece verdadera
.POS = .LEN
fin
9 8 7 6 5 4 3 2 1 0
array_dint[0] 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0
antes del
desplazamiento 1
0 estos bits se desplazan
input_1
a la izquierda
bit .UL
9 8 7 6 5 4 3 2 1 0
array_dint[0] 0 1 1 1 1 0 0 0 0 1
despus del
desplazamiento
31 0
array_dint[0] 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0
1
estos bits se desplazan a la izquierda
input_1
31 0
array_dint[1] 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0
bit .UL
Desplazamiento de bits a la La instruccin BSR desplaza los bits especificados dentro de la matriz
una posicin hacia la derecha.
derecha (BSR)
Operandos:
Estructura CONTROL
IMPORTANTE Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
La instruccin BSR realiza la operacin en la memoria de datos contiguos. En
algunos casos, la instruccin cambia los bits en otros miembros del tag. Esto sucede
si la longitud es excesiva y el tag es de un tipo de datos definido por el usuario.
Indicadores de estado
aritmtico: no afectados
Ejecucin:
bit .EN = 1
examinar el bit .EN
bit .EN = 0
s
.LEN = 0 el bit .DN se establece
no
.source bit = 1
examinar el bit de el bit .UL permanece
origen establecido.
s
.LEN < 0 el bit .ER se establece
.source bit = 0
no
el bit .UL se establece
desplazar matriz izquierda una posicin hacia
la izquierda
bit de matriz bit .UL
origen
la condicin de salida de
rengln se establece como
el bit .DN se establece verdadera
.POS = .LEN
fin
9 8 7 6 5 4 3 2 1 0
array_dint[0] 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0
antes del
desplazamiento
0
1 estos bits se desplazan
a la derecha bit .UL
input_1
9 8 7 6 5 4 3 2 1 0
array_dint[0] 1 0 0 1 1 1 1 0 0 0
despus del
desplazamiento
31 0
array_dint[0] 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0
0
estos bits se desplazan a la derecha
bit .UL
31 0
array_dint[1] 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0
input_1
Operandos:
INT tag
DINT
REAL
cadena
estructura
Source se convierte en el tipo de datos del tag de matriz. Un nmero entero
menor se convierte en un nmero entero mayor mediante extensin de
signo.
FIFO SINT tag de FIFO que se modifica
matriz
INT especificar el primer elemento de la FIFO
REAL
cadena
estructura
Control CONTROL tag estructura de control para la operacin
Estructura CONTROL
IMPORTANTE Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
La instruccin FFL realiza la operacin en la memoria de datos contiguos. En algunos
casos, la instruccin carga datos ms all de la matriz en otros miembros del tag.
Esto sucede si la longitud es excesiva y el tag es de un tipo de datos definido por el
usuario.
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ejecucin:
s
.LEN < 0
no
s
.POS < 0
no
s
.POS = 0 el bit .EM est establecido
no
s
.POS .LEN el bit .DN est establecido
no
la condicin de salida de
rengln se establece como
falsa
fin
s
.LEN < 0
no
s
.POS < 0
no
s
.POS = 0 el bit .EM est establecido
no
s
.POS .LEN el bit .DN est establecido
no
la condicin de salida de
rengln se establece como
falsa
fin
.EN = 0 s
examinar el el bit .EN se establece .LEN < 0
bit .EN
.EN = 1 no
s s
.LEN < 0 .POS < 0
no no
no
s
.POS = 0 el bit .EM est establecido
.POS o s
no .LEN > tamao de fallo mayor
la matriz
no
s
.POS .LEN el bit .DN se establece
s
no .POS > .LEN .POS = .POS - 1
no
FIFO[.POS - 1] = origen
la condicin de salida de
rengln se establece como
verdadera
fin
Descarga FIFO (FFU) La instruccin FFU descarga el valor desde la posicin 0 (primera
posicin) de la FIFO y almacena dicho valor en Destination. El resto
de los datos en la FIFO se desplazan hacia abajo una posicin.
Operandos:
REAL
cadena
estructura
Destination SINT tag valor que sale de la FIFO
INT
DINT
REAL
cadena
estructura
El valor de destino se convierte en el tipo de datos del tag de Destination.
Un nmero entero menor se convierte en un nmero entero mayor
mediante extensin de signo.
Control CONTROL tag estructura de control para la operacin
Estructura CONTROL
Descripcin: Use la instruccin FFU con una instruccin FFL para almacenar y
recuperar datos en el siguiente orden: primero en entrar, primero en
salir.
IMPORTANTE Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
La instruccin FFU realiza la operacin en la memoria de datos contiguos. En
algunos casos, la instruccin descarga datos desde otros miembros del tag. Esto
sucede si la longitud es excesiva y el tag es de un tipo de datos definido por el
usuario.
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ejecucin:
preescn
s
.LEN < 0
no
s
.POS < 0
no
s
.POS = 0 el bit .EM est establecido
no
s
.POS .LEN el bit .DN est establecido
no
la condicin de salida de
rengln se establece como
falsa
fin
s
.LEN < 0
no
s
.POS < 0
no
s
.POS = 0 el bit .EM est establecido
no
s
.POS .LEN el bit .DN est establecido
no
la condicin de salida de
rengln se establece como
falsa
fin
.EU = 0 s
examinar el el bit .EU est .LEN < 0
bit .EU establecido
.EU = 1 no
s s
.LEN < 0 .POS < 0
no no
s
.POS = 0 el bit .EM est establecido s
.POS 1 el bit .EM est establecido
no
no
s
s .POS < 1 Destination = 0
.POS .LEN el bit .DN se establece
no
no
.POS = .POS -1
Destination = FIFO[0]
i=1
FIFO[i - 1] = FIFO[i]
i = i +1
s
i < .LEN
no
la condicin de salida de
rengln se establece como
verdadera
fin
Operandos:
INT tag
DINT
REAL
cadena
estructura
Source se convierte en el tipo de datos del tag de matriz. Un nmero entero
menor se convierte en un nmero entero mayor mediante extensin de
signo.
LIFO SINT tag de LIFO que se modifica
matriz
INT especificar el primer elemento de la LIFO
REAL
cadena
estructura
Control CONTROL tag estructura de control para la operacin
Estructura CONTROL
IMPORTANTE Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
La instruccin LFL realiza la operacin en la memoria de datos contiguos. En algunos
casos, la instruccin carga datos ms all de la matriz en otros miembros del tag.
Esto sucede si la longitud es excesiva y el tag es de un tipo de datos definido por el
usuario.
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ejecucin:
preescn
s
.LEN < 0
no
s
.POS < 0
no
s
.POS = 0 el bit .EM est establecido
no
s
.POS .LEN el bit .DN est establecido
no
la condicin de salida de
rengln se establece como
falsa
fin
s
.LEN < 0
no
s
.POS < 0
no
s
.POS = 0 el bit .EM est establecido
no
s
.POS .LEN el bit .DN est establecido
no
la condicin de salida de
rengln se establece como
falsa
fin
.EN = 0 s
examinar el el bit .EN se .LEN < 0
bit .EN establece
.EN = 1 no
s s
.LEN < 0 .POS < 0
no no
no
s
.POS = 0 el bit .EM est establecido
.POS o s
no .LEN > tamao de fallo mayor
la matriz
no
s
.POS .LEN el bit .DN se establece
s
no .POS > .LEN .POS = .POS - 1
no
LIFO[.POS - 1] = origen
la condicin de salida de
rengln se establece como
verdadera
fin
Descarga LIFO (LFU) La instruccin LFU descarga el valor en .POS de la LIFO y almacena 0
en ese lugar.
Operandos:
REAL
cadena
estructura
Destination SINT tag valor que sale de la LIFO
INT
DINT
REAL
cadena
estructura
El valor de destino se convierte en el tipo de datos del tag de Destination.
Un nmero entero menor se convierte en un nmero entero mayor
mediante extensin de signo.
Control CONTROL tag estructura de control para la operacin
Estructura CONTROL
IMPORTANTE Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
La instruccin LFU realiza la operacin en la memoria de datos contiguos. En
algunos casos, la instruccin descarga datos desde otros miembros del tag. Esto
sucede si la longitud es excesiva y el tag es de un tipo de datos definido por el
usuario.
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ejecucin:
preescn
s
.LEN < 0
no
s
.POS < 0
no
s
.POS = 0 el bit .EM est establecido
no
s
.POS .LEN el bit .DN est establecido
no
la condicin de salida de
rengln se establece como
falsa
fin
s
.LEN < 0
no
s
.POS < 0
no
s
.POS = 0 el bit .EM est establecido
no
s
.POS .LEN el bit .DN est establecido
no
la condicin de salida de
rengln se establece como
falsa
fin
.EU = 0 s
examinar el el bit .EU est .LEN < 0
bit .EU establecido
.EU = 1 no
s s
.LEN < 0 .POS < 0
no no
s s
.POS = 0 el bit .EM est establecido .POS < 1 Destination = 0
no no
s
.POS > .LEN .POS = .LEN
s
.POS .LEN el bit .DN se establece
no
no
.POS = .POS -1
.LEN > s
tamao de la fallo mayor
matriz
no
Destination = LIFO[control.POS]
LIFO[control.POS) = 0
la condicin de salida de
rengln se establece como
verdadera
fin
Notas:
Instrucciones de secuenciador
(SQI, SQO, SQL)
INT inmediato
DINT
Un tag SINT o INT se convierte en un valor DINT mediante la extensin con
signo.
Source SINT tag datos de entrada en la matriz de secuenciador
INT
DINT
Un tag SINT o INT se convierte en un valor DINT mediante la extensin con
signo.
Control CONTROL tag estructura de control para la operacin
Estructura CONTROL
Prefijo: Descripcin
16# hexadecimal
Indicadores de estado
aritmtico: no afectados
Ejecucin:
.LEN 0
.POS < 0 no
o el bit .ER se borra
.POS > .LEN
Source
no enmascarada =
Array[.POS]
enmascarada
fin
INT inmediato
DINT
Un tag SINT o INT se convierte en un valor DINT mediante la extensin con
signo.
Destination DINT tag datos de salida provenientes de la matriz de
secuenciador
Control CONTROL tag estructura de control para la operacin
Estructura CONTROL
Prefijo Descripcin
16# hexadecimal
Indicadores de estado
aritmtico: no afectados
Ejecucin:
no s
.POS = .LEN .POS .LEN .POS = 1
s no
el valor s ir a
.POS retorna al
valor inicial error
no
s
.POS = .LEN el bit .DN se establece
no
no
.POS > .LEN
error
fin
DINT
Un tag SINT o INT se convierte en un valor DINT mediante la extensin con
signo.
Control CONTROL tag estructura de control para la operacin
Estructura CONTROL
IMPORTANTE Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
La instruccin SQL realiza la operacin en memoria contigua. En algunos casos, la
instruccin carga datos ms all de la matriz en otros miembros del tag. Esto sucede
si la longitud es excesiva y el tag es de un tipo de datos definido por el usuario.
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ejecucin:
no s
.POS = .LEN .POS .LEN .POS = 1
s no
el valor s ir a
.POS retorna al error
valor inicial
no
s
.POS = .LEN el bit .DN se establece
no
no
.POS > .LEN
s
.LEN > s
tamao de la
error matriz
no
fallo mayor
la condicin de salida de
rengln se establece como
verdadera
fin
Notas:
Saltar a etiqueta (JMP) Las instrucciones JMP y LBL saltan porciones de la lgica de escalera.
Etiqueta (LBL)
Operandos:
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ejecucin:
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.
Salto a subrutina (JSR) La instruccin JSR salta la ejecucin a una rutina diferente. Las
instrucciones SBR y RET son instrucciones opcionales que
Subrutina (SBR) Retorno intercambian datos con la instruccin JSR.
(RET)
Operandos de JSR:
estructura
Parmetro BOOL tag el tag en esta rutina al cual desea copiar un
de retorno resultado de la subrutina
SINT tag de
matriz Los parmetros de retorno son
INT opcionales.
Introduzca mltiples parmetros de
DINT retorno, si es necesario.
REAL
estructura
Texto estructurado
JSR(RoutineName,InputCount, Operando Tipo Formato Descripcin
InputPar,ReturnPar);
Nombre de ROUTINE nombre rutina a ejecutar (es decir, subrutina)
la rutina
Conteo de SINT inmediato nmero de parmetros de entrada
entradas
INT
DINT
REAL
Parmetro BOOL inmediato datos de esta rutina que desea copiar a un
de entrada tag en la subrutina
SINT tag
Los parmetros de entrada son
INT tag de opcionales.
matriz Introduzca mltiples parmetros de
DINT entrada, si es necesario.
REAL
estructura
Parmetro BOOL tag el tag en esta rutina al cual desea copiar un
de retorno resultado de la subrutina
SINT tag de
matriz Los parmetros de retorno son
INT opcionales.
Introduzca mltiples parmetros de
DINT retorno, si es necesario.
REAL
estructura
Bloque de funciones
Parmetros de Parmetros de
entrada retorno
Operandos de SBR: La instruccin SBR debe ser la primera instruccin en una lgica de
escalera de rels o rutina de texto estructurado.
DINT
REAL
estructura
Bloque de funciones
Parmetros
Operandos de RET:
INT tag de
matriz
DINT
REAL
estructura
Bloque de funciones
Parmetros
SBR
Rutina que origina la llamada Subrutina
1. Si la instruccin JSR tiene un
parmetro de entrada, introduzca una
SBR
instruccin SBR.
JSR JSR
2. Coloque la instruccin SBR como la
1. Si desea copiar datos a un tag en la primera instruccin en la rutina.
RET
subrutina, introduzca un parmetro de
entrada. 3. Para cada parmetro de entrada en la
instruccin JSR, introduzca el tag en
2. Si desea copiar un resultado de la RET el cual desea copiar los datos.
subrutina a un tag en esta rutina,
introduzca un parmetro de retorno. 42974
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo:
Ejecucin:
Lgica de escalera de rels y texto estructurado
La instruccin se ejecuta.
ejecucin de la instruccin
no
no no
s
fin de la subrutina
no
la condicin de salida de rengln se
establece como verdadera
la condicin de salida de rengln
se establece como falsa la ejecucin de la lgica regresa a JSR
continuar ejecutando la subrutina
fin
post-escn La misma accin que el preescn antes descrito. La misma accin que el preescn antes descrito.
Bloque de funciones
Condicin: Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
ejecucin normal 1. Si la rutina contiene una instruccin SBR, el controlador primero ejecuta la instruccin SBR.
3. El controlador ejecuta los otros bloques de funcin en el orden determinado por su cableado.
Esto incluye otras instrucciones JSR.
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.
Rutina: Programa
Rutina principal
Subrutina
Texto estructurado
Rutina Programa
Rutina principal JSR(routine_1,2,value_1,value_2,float_value_1);
Subrutina SBR(value_a,value_b);
<statements>;
RET(float_a);
Ejemplo 2:
MainRoutine
Cuando abc est activado, subroutine_1 se ejecuta, calcula el nmero de cookies y coloca un valor en cookies_1.
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.
Ejemplo 3:
Bloque de funciones
42972
42973
2. Las instrucciones ADD suman Input_A, Input_B y Input_C, y colocan el resultado en Sum_A_B_C.
Salto a rutina externa (JXR) La instruccin JXR ejecuta una rutina externa. Esta instruccin slo es
compatible con los controladores SoftLogix5800.
Operandos:
REAL
estructura
Parmetro de BOOL tag el tag en esta rutina al cual desea copiar un resultado de la rutina externa
retorno
SINT El parmetro de retorno es opcional
Slo puede tener un parmetro de retorno
INT
DINT
REAL
Estructura EXT_ROUTINE_CONTROL
00 Normal
01 Preescn
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico no son afectados.
Condiciones de fallo:
Operandos:
ninguno
ninguno
Indicadores de estado
aritmtico: no afectados
Ejecucin:
La instruccin se ejecuta.
ejecucin de la instruccin Se termina la rutina actual. Se termina la rutina actual.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.
Texto estructurado
TND();
Restablecimiento de La instruccin MCR, usada en parejas, crea una zona de programa que
puede inhabilitar todos los renglones dentro de las instrucciones MCR.
control maestro (MCR)
Operandos:
ninguna
Descripcin: Cuando la zona MCR se habilita, los renglones en la zona MCR son
escaneados para determinar la presencia de condiciones normales
verdaderas o falsas. Cuando se inhabilita, el controlador todava
escanea renglones dentro de una zona MCR, pero el tiempo de escn
se reduce debido a que las salidas no retentivas en la zona estn
inhabilitadas. La condicin de entrada de rengln es falsa para todas
las instrucciones dentro de la zona MCR inhabilitada.
ATENCIN No superponga ni anide zonas MCR. Cada zona MCR debe estar
separada y completa. Si se superponen o se anidan, podra
ocurrir una operacin inesperada de la mquina con posible
dao al equipo o lesiones personales.
Coloque las operaciones crticas fuera de la zona MCR. Si inicia
instrucciones tales como temporizadores en una zona MCR, se
detiene la ejecucin de la instruccin cuando la zona se
inhabilita y el temporizador se borra.
Indicadores de estado
aritmtico: no afectados
Ejecucin:
ninguno
Indicadores de estado
aritmtico: no afectados
Ejecucin:
La instruccin se ejecuta.
ejecucin de la instruccin La instruccin UID evita la interrupcin por parte de tareas de mayor prioridad.
UID
error_bit
error_bit FSC
FSC
FileSearch/Compare
File Search/Compare EN
EN
Control
Control error_check
error_check DN
Length
Length 10 ER
ER
Position
Position 8
Mode
Mode ALL
ALL
Expression
Expression error_code=error_list[error_check.POS]
error_code=error_list[error_check.POS]
error_check.FD
error_check.FD alarm
alarm
UIE
Texto estructurado
UID();
<statements>
UIE();
Instruccin siempre falso La instruccin AFI establece su condicin de salida de rengln como
falsa.
(AFI)
Operandos:
ninguno
Indicadores de estado
aritmtico: no afectados
Ejecucin:
Operandos:
ninguno
Indicadores de estado
aritmtico: no afectados
Ejecucin:
Fin de transicin (EOT) La instruccin EOT retorna un estado booleano a una transicin SFC.
Operandos:
Indicadores de estado
aritmtico: no afectados
Ejecucin:
La instruccin se ejecuta.
ejecucin de la instruccin La instruccin retorna el valor del bit de datos a la rutina que origin la llamada.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.
Texto estructurado
IF timer_1.DN THEN
EOT(state);
END_IF;
Pausa SFC (SFP) La instruccin SFP pone en pausa una rutina SFC.
Operandos:
Texto estructurado
SFP(SFCRoutineName,
TargetState); Los operandos son iguales a los de la instruccin SFP de lgica de
escalera de rels.
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ejecucin:
La instruccin se ejecuta.
ejecucin de la instruccin La instruccin pone en pausa o reanuda la ejecucin de la rutina SFC especificada.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.
Texto estructurado
SFP(normal,paused);
sfp_en_p := 0;
END_IF;
SFP(normal,executing);
sfp_en_e := 0;
END_IF;
Restablecer SFC (SFR) La instruccin SFR restablece la ejecucin de una rutina SFC en un
paso especificado.
Operandos:
Texto estructurado
SFR(SFCRoutineName,StepName);
Los operandos son iguales a los de la instruccin SFR de lgica de
escalera de rels.
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ejecucin:
La instruccin se ejecuta.
ejecucin de la instruccin La instruccin restablece la rutina SFC especificada. La instruccin restablece la rutina SFC especificada.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.
Texto estructurado
IF shutdown THEN
SFR(mySFC,initialize);
END_IF;
Activar tarea de evento La instruccin EVENT activa una ejecucin de una tarea de evento.
(EVENT)
Operandos:
El controlador no borra los bits del atributo Status una vez que stos
estn establecidos.
Indicadores de estado
aritmtico: no afectados
Ejecucin:
Programa A
Programa B
Texto estructurado
Programa A
Programa B
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).
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.
Notas:
Instrucciones For/Break
(FOR, FOR...DO, BRK, EXIT, RET)
Introduccin Use la instruccin FOR para llamar repetidamente una subrutina. Use
la instruccin BRK para interrumpir la ejecucin de una subrutina.
Operandos:
INT tag
DINT
Terminal SINT inmediato valor en que se detiene la ejecucin de la
value rutina
INT tag
DINT
Step size SINT inmediato cantidad que se aade al ndice cada vez
que la instruccin FOR ejecuta la rutina
INT tag
DINT
Texto estructurado
FOR count:= initial_value TO
final_value BY increment DO Use la construccin FOR...DO. Consulte Apndice C, Programacin de
<statement>;
texto estructurado para obtener informacin sobre construcciones de
texto estructurado.
END_FOR;
Descripcin:
IMPORTANTE No use una instruccin FOR para llamar (ejecutar) la rutina principal.
Usted puede colocar una instruccin FOR en la rutina principal o
en cualquier otra rutina.
Si usted usa una instruccin FOR para llamar a la rutina principal y
posteriormente colocar una instruccin RET en la rutina principal,
se produce un fallo mayor (tipo 4, cdigo 31).
Cada vez que la instruccin FOR ejecuta la rutina, aade el Step size al
Index.
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ejecucin:
Condicin Accin de lgica de escalera de rels
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de
rengln es verdadera
index = initial_value
no
tamao de paso < 0
no
ir a ndice valor terminal
fin
s s no
ir a
ndice valor terminal fin
fin
ejecutar rutina
ndice = (index + step_size)
la condicin de salida de rengln
se establece como verdadera
fin
Interrumpir (BRK) La instruccin BRK interrumpe la ejecucin de una rutina que fue
llamada por una instruccin FOR.
Operandos:
ninguna
Texto estructurado
EXIT;
Indicadores de estado
aritmtico: no afectados
Ejecucin:
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.
Operandos:
ninguna
Descripcin:
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ejecucin:
Notas:
Instrucciones especiales
(FBC, DDT, DTR, PID)
texto estructurado
Comparacin de bits de La instruccin FBC compara los bits en una matriz de origen con los
bits en una matriz de referencia.
archivo (FBC)
Operandos:
Estructura COMPARE
0 = modo de todas
Estructura RESULT
IMPORTANTE Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
La instruccin FBC realiza la operacin en la memoria de datos contiguos. En
algunos casos, la instruccin busca o escribe ms all de la matriz en otros
miembros del tag. Esto sucede si una longitud es excesiva y el tag es de un tipo de
datos definido por el usuario.
La diferencia entre las instrucciones DDT y FBC es que cada vez que
la instruccin DDT encuentra una incongruencia, la instruccin
cambia el bit de referencia para que coincida con el bit de origen.
La instruccin FBC no cambia el bit de referencia.
Cada vez que la condicin de entrada del rengln cambia de falso a verdadero, la
instruccin FBC busca la siguiente incongruencia entre las matrices de origen y
referencia. Al encontrar una incongruencia, la instruccin establece el bit .FD, registra
la posicin de la incongruencia y detiene la ejecucin.
Todas las incongruencias Borre el bit .IN en la estructura CONTROL de comparacin.
Cada vez que la condicin de entrada del rengln cambia de falso a verdadero, la
instruccin FSC busca todas las incongruencias entre las matrices de origen y
referencia.
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ejecucin:
preescn
compare.DN = 1
la condicin de salida de
rengln se establece como
falsa
fin
condicin de entrada de
rengln es falsa
el bit compare.EN se borra
el bit compare.FD se borra
compare.DN = 1
la condicin de salida de
rengln se establece como
falsa
fin
compare.EN = 0
compare.DN = 0
no
s
compare.POS < 0
exit
el bit compare.ER se
no establece
la condicin de salida de
rengln se establece como
verdadera
comparar ir a la
salida
fin
pgina 484
comparar
result.DN = 1
no el bit result.DN se borra
source[compare.POS] = el bit compare.FD se examine el bit el valor result.POS se
reference[compare.POS] establece result.DN bit borra
s result.DN = 0
compare.POS =
compare.POS + 1
s
result.POS < 0
no
s
result.LEN 0
no el bit compare.ER se
establece
s result.POS >
tamao de ir a la
fallo mayor salida
matriz
resultado
pgina 483
no
result[result.POS] = compare.POS
result.POS = result.POS + 1
no result.POS >
result.LEN
origen 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
array_dint1
referencia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0
array_dint2
resultado 5 3
array_dint3
Deteccin de diagnstico La instruccin DDT compara los bits en una matriz de origen con los
bits en una matriz de referencia para determinar cambios de estado.
(DDT)
Operandos:
Estructura COMPARE
0 = modo de todas
Estructura RESULT
IMPORTANTE Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
La instruccin DDT realiza la operacin en la memoria de datos contiguos. En
algunos casos, la instruccin busca o escribe ms all de la matriz en otros
miembros del tag. Esto sucede si una longitud es excesiva y el tag es de un tipo de
datos definido por el usuario.
Cada vez que la condicin de entrada del rengln cambia de falso a verdadero, la
instruccin DDT busca la siguiente incongruencia entre las matrices de origen y
referencia. Al encontrar una incongruencia, la instruccin establece el bit .FD, registra
la posicin de la incongruencia y detiene la ejecucin.
Todas las incongruencias Borre el bit .IN en la estructura CONTROL de comparacin.
Cada vez que la condicin de entrada del rengln cambia de falso a verdadero,
la instruccin DDT busca todas las incongruencias entre las matrices de origen y
referencia.
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ejecucin:
preescn
compare.DN = 1
la condicin de salida de
rengln se establece como
falsa
fin
condicin de entrada de
rengln es falsa
el bit compare.EN se borra
el bit compare.FD se borra
compare.DN = 1
la condicin de salida de
rengln se establece como
falsa
fin
compare.EN = 0
bit compare.DN = 0
no
s
compare.POS < 0
salida
el bit compare.ER se
no establece
la condicin de salida de
rengln se establece como
verdadera
comparar ir a la
salida
fin
pgina 492
comparar
result.DN = 1
compare.FD bit se
no establece el bit result.DN se borra
source[compare.POS] = examine el bit el valor result.POS se
reference[compare.POS] reference[compare.POS] result.DN bit
= source[compare.POS] borra
s result.DN = 0
compare.POS =
compare.POS + 1
s
result.POS < 0
no
s
result.LEN 0
no el bit compare.ER se
establece
s result.POS > ir a la
fallo mayor tamao de matriz salida
resultado
pgina 483
no
result[result.POS] = compare.POS
result.POS = result.POS + 1
no result.POS
result.LEN
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
array_dint2
resultado 5 3
array_dint3
referencia (despus de comparacin) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
array_dint2
Transicin de datos (DTR) La instruccin DTR pasa el valor de origen a travs de una mscara y
compara el resultado con el valor de referencia.
Operandos:
tag
Reference DINT tag matriz que se va a comparar con el origen.
Prefijo Descripcin:
16# hexadecimal
Indicadores de estado
aritmtico: no afectados
Ejecucin:
origen no
enmascarado = la referencia se establece igual que el origen
referencia enmascarado
la condicin de salida de rengln se establece como
verdadera
s
la condicin de salida de
rengln se establece
como falsa
fin
ejemplo 1 ejemplo 2
origen
7 1 8 3 9 1 8 7
value_1
mscara = 0FFF
0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
referencia
Proporcional integral La instruccin PID controla una variable del proceso, tal como flujo,
presin, temperatura o nivel.
derivativo (PID)
Operandos:
Lgica de escalera de rels
DINT
REAL
Tieback SINT inmediato (opcional) salida de una estacin manual/automtica que est pasando por alto la salida del
controlador
INT tag
Introduzca 0 si no desea usar este parmetro.
DINT
REAL
Control SINT tag valor que va al dispositivo de control final (vlvula, regulador, etc.)
variable
INT Si usted est usando la banda muerta, la variable Control debe ser REAL o se forzar a 0
cuando el error est dentro de la banda muerta.
DINT
REAL
PID master PID estructura (opcional) tag PID para el PID maestro
loop
Si est realizando control en cascada y este PID es un lazo esclavo, introduzca el nombre del
PID maestro. Introduzca 0 si no desea usar este parmetro.
Inhold bit BOOL tag (opcional) estado actual del bit mantenido desde un canal de salida analgica 1756 para
permitir un reinicio sin problemas
REAL
Texto estructurado
PID(PID,ProcessVariable, Los operandos son iguales que los de la instruccin PID de lgica de
Tieback,ControlVariable, escalera de rels. Sin embargo, usted especifica Setpoint, Process
PIDMasterLoop,InholdBit, Variable y Output % accediendo a los miembros .SP, .PV. y .OUT de la
InHoldValue); estructura PID, en lugar de incluir valores en la lista de operandos.
Estructura PID
bit .EN
estado de rengln
ejecucin de la instruccin PID
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ejecucin:
Condicin Accin Accin
preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.
La instruccin se ejecuta.
ejecucin de la instruccin La instruccin ejecuta el lazo PID. La instruccin ejecuta el lazo PID.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.
Especifique el ajuste
El modo manual tiene precedencia sobre el modo manual de software, si ambos estn
seleccionados.
Especifique la configuracin
Use independientes cuando desee que las tres ganancias (P, I y D) operen de manera
independiente. Use dependientes cuando desee una ganancia total del controlador que
afecte a los tres trminos (P, I y D).
Control action Seleccione ya sea E=PV-SP o E=SP-PV para la accin de control (.CA).
Derivative of Seleccione VP o error (.DOE).
Use la derivada de VP para eliminar los picos de salida causados por cambios del punto
de ajuste. Use la derivada de error para respuestas rpidas a cambios del punto de
ajuste cuando el algoritmo puede tolerar sobreimpulsos.
Loop update time Introduzca el tiempo de actualizacin (.UPD) para la instruccin.
CV high limit Introduzca un lmite alto para la variable de control (.MAXO).
CV low limit Introduzca un lmite bajo para la variable de control (.MINO).
Deadband value Introduzca un valor de banda muerta (.DB).
No derivative smoothing Habilite o inhabilite esta seleccin (.NDF).
No bias calculation Habilite o inhabilite esta seleccin (.NOBC).
No zero crossing in Habilite o inhabilite esta seleccin (.NOZC).
deadband
PV tracking Habilite o inhabilite esta seleccin (.PVT).
Cascade loop Habilite o inhabilite esta seleccin (.CL).
Cascade type Si el lazo en cascada est habilitado, seleccione esclavo o maestro (.CT).
Especificacin de alarmas
Especificacin de escalado
Uso de instrucciones PID El control de lazo cerrado PID retiene una variable del proceso en un
punto de ajuste deseado. La siguiente figura muestra un ejemplo de
rgimen de flujo/nivel de fluido.
detector de nivel
14271
E = PV - SP
t
1 dPV
CV = K C E + ---- Edt + T d ----------- + BIAS
Ti dt
0
E = PV - SP
t
dPV
CV = K P E + K i Edt + K d ----------- + BIAS
dt
0
Donde:
Variable Descripcin
KP ganancia proporcional (sin unidades)
Kp = Kc sin unidades
Ki ganancia integral (segundos -1)
KC
K i = ----------
-
60T i
Kd = Kc (Td) 60
KC ganancia de controlador (sin unidades)
Ti tiempo de accin integral (minutos/repeticin)
Td tiempo de accin derivada (minutos)
SP punto de ajuste
PV variable de proceso
E error [(SP-PV) o (PV-SP)]
BIAS ganancia anticipativa o polarizacin
VC variable de control
dt tiempo de actualizacin del lazo
El valor de salida establecida (.SO) se usa como la salida del lazo. El valor de salida
establecida normalmente proviene de una entrada de operador de un dispositivo de
interface de operador.
manual (.MO) toma el valor retenido, como una entrada, y ajusta sus variables internas para generar
el mismo valor en la salida.
La entrada retenida relacionada con la instruccin PID se escala al 0 - 100% segn los
valores de .MINTIE y .MAXTIE y se utiliza como la salida del lazo. La entrada retenida
generalmente viene desde la salida de una estacin manual/automtica de hardware
que est pasando por alto la salida proveniente del controlador.
Nota: El modo manual tiene precedencia sobre el modo manual de software si ambos
bits de modo estn establecidos.
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).
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);
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;
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;
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
+ banda muerta
tiempo 41026
Lazos en cascada
Texto estructurado
PID(master,pv_master,0,cv_master,0,0,0);
PID (slave,pv_slave,0,cv_slave,master,0,0);
Control de relacin
Texto estructurado
PID(pid_2,pv_2,tieback_2,cv_2,0,0,0);
Teora de PID Las siguientes figuras muestran el flujo del proceso para una
instruccin PID.
Proceso PID
SP Error
Mostrado mostrado
como EU como EU
Software A/M
o bien % de
Modo de Accin de polarizacin
estacin A/M de salida
control
Modo A/M de % salida
Auto SP-PV software establecida
Convierte unidades Modo de
(Error) de ingeniera a % (Out%) Auto estacin A/M
+ Clculo PID +
- Error X 100 Auto Convierte % a unidades CV
SP Manual -1
PV-SP maxs-mins Lmite de CV
PVT Manual salida CV%(maxcv-mincv)
+ mincv
No % salida Manual 100
establecida
PV
Mostrado Salida (CV)
S como EU mostrada como
% de escalado
Convierte de binario a EU
Convierte unidades de
unidades de ingeniera valor retenido a %
(PV-mini)(maxs-mins) + mins tieback-mintie
maxi-mini x 100
maxtie-mintie
PV
Modo A/M de
S software
Auto
Convierte de binario a Convierte
SP unidades de
unidades de ingeniera ingeniera a % Manual
(PV-mini)(maxs-mins) Error X 100 Manual
+ mins PV
maxi-mini maxs-mins Los tems referidos en este cuadro
son parmetros, unidades y modos
que pertenecen al lazo esclavo
designado.
PV
Lazo % de
esclavo Accin de polarizacin
control de salida
% salida
Modo A/M de establecida
Convierte % a unidades (SP) SP-PV Convierte software Modo de
(Master.Out) de ingeniera unidades de
+ ingeniera a % Clculo PID Auto estacin A/M
X (maxs-mins) - +
+ mins -1 Error X 100 Auto Convierte % a unidades CV
100 PV-SP maxs-mins Lmite de
Manual salida CV%(maxcv-mincv)
% salida + mincv
Convierte de binario a Manual 100
unidades de ingeniera establecida
(PV-mini)(maxs-mins)
+ mins Convierte unidades de
maxi-mini
valor retenido a %
tieback-mintie x 100
maxtie-mintie
PV
Notas:
Instrucciones trigonomtricas
(SIN, COS, TAN, ASN, ASIN, ACS, ACOS, ATN, ATAN)
Seno (SIN) La instruccin SIN halla el seno del valor de origen (en radianes) y
almacena el resultado en Destination.
Operandos:
INT tag
DINT
REAL
Destination SINT tag tag para almacenar el resultado
INT
DINT
REAL
Texto estructurado
dest := SIN(source); Use SIN como una funcin. Esta funcin calcula el seno de source y
almacena el resultado en dest.
Bloque de funciones
Estructura FBD_MATH_ADVANCED
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.
Ejecucin:
Condicin: Accin:
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador calcula el seno de Source y coloca el resultado en Destination.
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
result := SIN(value);
Bloque de funciones
Coseno (COS) La instruccin COS halla el coseno del valor de origen (en radianes) y
almacena el resultado en Destination.
Operandos:
INT tag
DINT
REAL
Destination SINT tag tag para almacenar el resultado
INT
DINT
REAL
Texto estructurado
dest := COS(source); Use COS como funcin. Esta funcin calcula el coseno de source y
almacena el resultado en dest.
Bloque de funciones
Estructura FBD_MATH_ADVANCED
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.
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador calcula el coseno de Source y coloca el resultado en Destination.
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
result := COS(value);
Bloque de funciones
Tangente (TAN) La instruccin TAN halla la tangente del valor de origen (en radianes)
y almacena el resultado en Destination.
Operandos:
INT tag
DINT
REAL
Destination SINT tag tag para almacenar el resultado
INT
DINT
REAL
Texto estructurado
dest := TAN(source); Use TAN como funcin. Esta funcin calcula la tangente de source y
almacena el resultado en dest.
Bloque de funciones
Estructura FBD_MATH_ADVANCED
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.
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador calcula la tangente de Source y coloca el resultado en Destination.
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
result := TAN(value);
Bloque de funciones
Arco seno (ASN) La instruccin ASN halla el arco seno del valor de Source y almacena
el resultado en Destination (en radianes).
Operandos:
INT tag
DINT
REAL
Destination SINT tag tag para almacenar el resultado
INT
DINT
REAL
Texto estructurado
dest := ASIN(source); Use ASIN como funcin. Esta funcin calcula el arco seno de source y
almacena el resultado en dest.
Bloque de funciones
Estructura FBD_MATH_ADVANCED
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.
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador calcula el arco seno de Source y coloca el resultado en Destination.
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
result := ASIN(value);
Bloque de funciones
Arco coseno (ACS) La instruccin ACS halla el arco coseno del valor de Source y
almacena el resultado en Destination (en radianes).
Operandos:
INT tag
DINT
REAL
Destination SINT tag tag para almacenar el resultado
INT
DINT
REAL
Texto estructurado
dest := ACOS(source); Use ACOS como funcin. Esta funcin calcula el arco coseno de
source y almacena el resultado en dest.
Bloque de funciones
Estructura FBD_MATH_ADVANCED
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.
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador calcula el arco coseno de Source y coloca el resultado en Destination.
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
result := ACOS(value);
Bloque de funciones
Arco tangente (ATN) La instruccin ATN halla el arco tangente del valor de Source y
almacena el resultado en Destination (en radianes).
Operandos:
INT tag
DINT
REAL
Destination SINT tag tag para almacenar el resultado
INT
DINT
REAL
Texto estructurado
dest := ATAN(source); Use ATAN como funcin. Esta funcin calcula el arco tangente de
source y almacena el resultado en dest.
Bloque de funciones
Estructura FBD_MATH_ADVANCED
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador calcula el arco tangente de Source y coloca el resultado en Destination.
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
result := ATAN(value);
Bloque de funciones
Notas:
texto estructurado
bloque de funciones
Hallar el logaritmo base 10 de un valor. LOG lgica de escalera de rels 543
texto estructurado
bloque de funciones
Elevar un valor a la potencia de otro valor. XPY lgica de escalera de rels 546
texto estructurado(1)
bloque de funciones
(1)
No hay una instruccin equivalente en texto estructurado. Use el operador en una expresin.
Operandos:
INT tag
DINT
REAL
Destination SINT tag tag para almacenar el resultado
INT
DINT
REAL
Texto estructurado
dest := LN(source); Use LN como funcin. Esta funcin calcula el logaritmo natural de
source y almacena el resultado en dest.
Bloque de funciones
Estructura FBD_MATH_ADVANCED
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.
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador calcula el logaritmo natural de Source y coloca el resultado en
Destination.
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
result := LN(value);
Bloque de funciones
Logaritmo base 10 (LOG) La instruccin LOG halla el logaritmo base 10 de Source y almacena el
resultado en Destination.
Operandos:
INT tag
DINT
REAL
Destination SINT tag tag para almacenar el resultado
INT
DINT
REAL
Texto estructurado
dest := LOG(source); Use LOG como funcin. Esta funcin calcula el logaritmo de source y
almacena el resultado en dest.
Bloque de funciones
Estructura FBD_MATH_ADVANCED
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.
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador calcula el logaritmo de Source y coloca el resultado en Destination.
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
result := LOG(value);
Bloque de funciones
X a la potencia de Y (XPY) La instruccin XPY eleva Source A (X) a la potencia de Source B (Y) y
almacena el resultado en Destination.
Operandos:
INT tag
DINT
REAL
Source Y SINT inmediato exponente
INT tag
DINT
REAL
Destination SINT tag tag para almacenar el resultado
INT
DINT
REAL
Texto estructurado
dest := sourceX ** sourceY; Use dos signos de multiplicacin adyacentes como operador
dentro de una expresin. Esta expresin eleva sourceX a la potencia
de sourceY y almacena el resultado en dest.
Bloque de funciones
Estructura FBD_MATH
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo:
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador eleva Source X a la potencia de Source Y y coloca el resultado en
Destination.
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
Bloque de funciones
texto estructurado
bloque de funciones
Convertir grados en radianes. RAD lgica de escalera de rels 553
texto estructurado
bloque de funciones
Convertir un valor entero en un valor BCD. TOD lgica de escalera de rels 556
bloque de funciones
Convertir un valor BCD en un valor entero. FRD lgica de escalera de rels 559
bloque de funciones
Retirar la parte fraccionaria de un valor. TRN lgica de escalera de rels 561
bloque de funciones
(1)
Texto estructurado solamente.
Operandos:
INT tag
DINT
REAL
Destination SINT tag tag para almacenar el resultado
INT
DINT
REAL
Texto estructurado
dest := DEG(source); Use DEG como funcin. Esta funcin convierte source en grados y
almacena el resultado en dest.
Bloque de funciones
Estructura FBD_MATH_ADVANCED
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador convierte Source en grados y coloca el resultado en Destination.
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
result := DEG(value);
Bloque de funciones
Operandos:
INT tag
DINT
REAL
Destination SINT tag tag para almacenar el resultado
INT
DINT
REAL
Texto estructurado
dest := RAD(source); Use RAD como funcin. Esta funcin convierte source a radianes y
almacena el resultado en dest.
Bloque de funciones
Estructura FBD_MATH_ADVANCED
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador convierte Source en radianes y coloca el resultado en Destination.
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
result := RAD(value);
Bloque de funciones
Operandos:
INT tag
DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Destination SINT tag almacena el resultado
INT
DINT
Bloque de funciones
Estructura FBD_CONVERT
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo:
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera
no no
origen < 0 origen > 99,999,999 convertir origen en BCD
s s
S:V se establece a 1
la condicin de salida de
rengln se establece como
verdadera
fin
condicin de entrada de rengln es verdadera El controlador convierte Source en BCD y coloca el resultado en Destination.
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Bloque de funciones
Convertir a entero (FRD) La instruccin FRD convierte un valor BCD (Source) en un valor
decimal y almacena el resultado en Destination.
Operandos:
INT tag
DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Destination SINT tag almacena el resultado
INT
DINT
Bloque de funciones
Estructura FBD_CONVERT
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador convierte Source en un valor decimal y coloca el resultado en Destination.
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Bloque de funciones
Operandos:
tag
Destination SINT tag tag para almacenar el resultado
INT
DINT
REAL
Texto estructurado
dest := TRUNC(source); Use TRUNC como funcin. Esta funcin trunca source y almacena el
resultado en dest.
Bloque de funciones
Estructura FBD_TRUNCATE
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Ejecucin:
Condicin Accin
preescn La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es falsa La condicin de salida de rengln se establece como falsa.
condicin de entrada de rengln es verdadera El controlador retira la parte fraccionaria de Source y coloca el resultado en Destination.
Bloque de funciones
Condicin Accin
preescn Ninguna.
primer escn de instruccin Ninguna.
primera ejecucin de instruccin Ninguna.
EnableIn se borra EnableOut se borra.
EnableIn se establece La instruccin se ejecuta.
EnableOut se establece.
post-escn Ninguna.
Texto estructurado
float_value_1_truncated := TRUNC(float_value_1);
Bloque de funciones
Notas:
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.
texto estructurado
contar los caracteres en el bfer verificar el nmero requerido de ACB lgica de escalera de 573
caracteres antes de leer el bfer rels
texto estructurado
borrar el bfer borrar datos antiguos del bfer al ACL lgica de escalera de 575
momento de la puesta en marcha rels
borrar las instrucciones del puerto
serie ASCII que actualmente se estn sincronizar el bfer con un
dispositivo texto estructurado
ejecutando o estn en la cola.
obtener el estado de las lneas de hacer que el mdem cuelgue AHL lgica de escalera de 577
control del puerto serie rels
activar y desactivar la seal DTR
texto estructurado
activar y desactivar la seal RTS
leer un nmero fijo de caracteres leer datos desde un dispositivo que ARD lgica de escalera de 581
enva el mismo nmero de caracteres rels
durante cada transmisin
texto estructurado
leer un nmero variable de leer datos desde un dispositivo que ARL lgica de escalera de 585
caracteres, inclusive el primer enva un nmero variable de rels
conjunto de caracteres de caracteres en cada transmisin
terminacin texto estructurado
enviar caracteres y aadir enviar mensajes que siempre usan AWA lgica de escalera de 589
automticamente uno o dos los mismos caracteres de terminacin rels
caracteres adicionales para marcar
el final de los datos texto estructurado
enviar caracteres enviar mensajes que usan una AWT lgica de escalera de 594
variedad de caracteres de rels
terminacin
texto estructurado
Ejecucin de la instruccin
Instruccin 4
Los datos fluyen
La instruccin entra en entre la tarea y el
la cola ASCII. bfer.
entra en la cola
Prueba ASCII para lnea de La instruccin ABL cuenta los caracteres en el bfer, inclusive el
primer carcter de terminacin.
bfer (ABL)
Operandos:
ABL
ABL Operando Tipo Formato Descripcin
ASCII
ASCIITest
TestFor
ForBuffer Line
Buffer Line EN
Channel
Channel ? DN Channel DINT inmediato 0
SerialPort
SerialPortControl
Control ? ER
ER
Character
CharacterCount
Count ?
tag
Serial Port SERIAL_PORT_ tag tag que controla la operacin
Control CONTROL
Character DINT inmediato 0
Count
Texto estructurado
ABL(Channel
Los operandos son iguales a los de la instruccin ABL de lgica de
SerialPortControl);
escalera de rels. Usted accede al valor de conteo de caracteres
mediante el miembro .POS de la estructura SERIAL_PORT_CONTROL.
Estructura SERIAL_PORT_CONTROL
Indicadores de estado
aritmtico: no afectados
Ejecucin:
La instruccin se ejecuta.
MV_line.EN
MV_line.EN ABL
ABL
/ ASCII
ASCII TestTest For Buffer
For Buffer Line Line EN
EN
Channel
Channel 0 DN
DN
SerialPort
SerialPortControl
Control MV_line.E
MV_line ER
ER
Character
Character Count
Count 0
Texto estructurado
ABL(0,MV_line);
Control CONTROL
Character DINT inmediato 0
Count
Texto estructurado
ACB(Channel Los operandos son los mismos que para la instruccin ACB de lgica
SerialPortControl); de escalera de rels. Sin embargo, usted especifica el valor de conteo
de caracteres al acceder al miembro .POS de la estructura
SERIAL_PORT_CONTROL, en lugar de incluir el valor en la lista de
operandos.
Estructura SERIAL_PORT_CONTROL
Mnemnico Tipo de datos Descripcin
.EN BOOL El bit de habilitacin indica que la instruccin est habilitada.
.EU BOOL El bit de cola indica que la instruccin entr en la cola ASCII.
.DN BOOL El bit de efectuado indica que ha finalizado la instruccin, pero es asncrono respecto al
escn de la lgica.
.RN BOOL El bit de ejecucin indica que la instruccin se est ejecutando.
.EM BOOL El bit de vaco indica que finaliz la instruccin, pero es sncrono respecto al escn de la
lgica.
.ER BOOL El bit de error indica que la instruccin fall (errores).
.FD BOOL El bit de encontrado indica que la instruccin encontr un carcter.
.POS DINT La posicin determina el nmero de caracteres en el bfer, inclusive el primer conjunto de
caracteres de terminacin.
.ERROR DINT El error contiene un valor hexadecimal que identifica la causa del error.
Indicadores de estado
aritmtico: no afectados
Ejecucin:
bar_code_count.EN
bar_code_count.EN ACB
ACB
/ ASCII
ASCII Chars
Chars in Buffer
in Buffer EN
EN
Channel
Channel 0 DN
DN
SerialPort
SerialPort Control
Control bar_code_count.EN
bar_code_count ER
ER
Character
Character Count
Count 0
Texto estructurado
ACB(0,bar_code_count);
Borrar ASCII bfer (ACL) La instruccin ACL borra inmediatamente el bfer y la cola ASCII.
Operandos:
ACL
ACL Operando Tipo Formato Introduzca
Borrar ASCII
ASCII Clear bfer
Buffer
Canal
Channel ?
Borrar Serial
Clear lecturaPort
de puerto
Read serie ?
Channel DINT inmediato 0
Borrar Serial
Clear escritura deWrite
Port puerto serie ?
tag
Clear Serial BOOL inmediato Para borrar el bfer y eliminar las
Port Read instrucciones ARD y ARL de la cola,
tag introduzca Yes.
Clear Serial BOOL inmediato Para eliminar las instrucciones AWA y AWT
Port Write de la cola, introduzca Yes.
tag
Texto estructurado
ACL(Channel,
Los operandos son iguales a los de la instruccin ACL de lgica de
ClearSerialPortRead,
ClearSerialPortWrite); escalera de rels.
Indicadores de estado
aritmtico: no afectados
Ejecucin:
La instruccin se ejecuta.
ejecucin de la instruccin La instruccin borra las instrucciones especificadas y los bferes.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.
S:FS ACL
ACL
ASCII
Borrar Clear Buffer
ASCII bfer
Channel
Canal 0
Clear
BorrarSerial
lectura Port Read
de puerto serie 1
BorrarSerial
Clear escrituraPort
de puerto
Writeserie 1
Texto estructurado
osri_1.InputBit := S:FS;
OSRI(osri_1);
IF (osri_1.OutputBit) THEN
ACL(0,0,1);
END_IF;
Lneas de handshake ASCII La instruccin AHl obtiene el estado de las lneas de control, y activa
o desactiva las seales DTR y RTS.
(AHL)
Operandos:
AHL
AHL
ASCII Handshake
ASCII HandshakeLines
Lines EN
EN
Channel
Channel ?
AND Mask ? DN
DN
??
OR Mask
OR Mask ? ER
ER
??
SerialPort Control
SerialPort Control ?
Channel Status(Decimal)
Channel Status(Decimal) ?
tag
ANDMask DINT inmediato Remtase a la descripcin.
tag
ORMask DINT inmediato
tag
Serial Port Control SERIAL_PORT_CONTROL tag tag que controla la operacin
Channel Status (Decimal) DINT inmediato 0
Texto estructurado
AHL(Channel,ANDMask,ORMask,
Los operandos son iguales que los de la instruccin AHL de lgica de
SerialPortControl);
escalera de rels. Sin embargo, se especifica el valor de estado del
canal accediendo al miembro .POS de la estructura
SERIAL_PORT_CONTROL, y no incluyendo el valor en la lista de
operandos.
Estructura SERIAL_PORT_CONTROL
Si su aplicacin Entonces
usa instrucciones ARD o ARL Seleccione el modo de usuario
no usa instrucciones ARD o ARL Seleccione ya sea el modo de sistema o de
usuario
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ejecucin:
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.
get_control_line_status
get_control_line_status AHL
AHL
ASCII Handshake Lines EN
EN
ASCII Handshake Lines
Channel 0
Channel
AND Mask 0 DN
DN
AND Mask
OR Mask
OR Mask 0 ER
ER
SerialPort Control
SerialPort Control serial_port
serial_port
Channel Status(Decimal)
Channel Status(Decimal) 29
Texto estructurado
osri_1.InputBit := get_control_line_status;
OSRI(osri_1);
IF (osri_1.OutputBit) THEN
AHL(0,0,0,serial_port);
END_IF;
Lectura ASCII (ARD) La instruccin retira caracteres del bfer y los almacena en
Destination.
Operandos:
tag
Destination cadena tag el tag al cual se transfieren Si desea comparar, convertir o manipular los
los caracteres (lectura): caracteres, use un tipo de datos de cadena.
SINT Los tipos de datos de cadena son:
Para un tipo de datos de
INT cadena, introduzca el tipo de datos STRING predeterminado
nombre del tag.
DINT cualquier tipo de datos nuevo que usted
Para una matriz SINT, cree
INT o DINT, introduzca
el primer elemento de la
matriz.
Serial Port SERIAL_PORT_ tag tag que controla la
operacin
Control CONTROL
Serial Port DINT inmediato nmero de caracteres a Serial Port Control Length debe ser menor o
transferir al destino igual que el tamao de Destination.
Control Length (lectura) Si desea establecer Serial Port Control
Length igual que el tamao de Destination,
introduzca 0.
Characters Read DINT inmediato 0 Durante la ejecucin, muestra el nmero de
caracteres ledos.
Texto estructurado
ARD(Channel,Destination,
Los operandos son los mismos que para la instruccin ARD de lgica
SerialPortControl);
de escalera de rels. Sin embargo, usted especifica los valores de
Serial Port Control Length y Characters Read accediendo a los
miembros .LEN y .POS de la estructura SERIAL_PORT_CONTROL, en
lugar de incluir los valores en la lista de operandos.
Estructura SERIAL_PORT_CONTROL
Indicadores de estado
aritmtico: no afectados
Ejecucin:
Condicin Accin de lgica de escalera de rels Accin de texto estructurado
preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta cuando la condicin de n. a.
rengln es verdadera entrada del rengln cambia de borrado a
establecido.
La instruccin se ejecuta.
ejecucin de la instruccin La instruccin retira caracteres del bfer y los almacena en el destino.
GEQ
GEQ ARD
ARD
GrtrThan
Grtr Thano Eqlor(A>=B)
Eql (A>=B) ASCII Read
ASCII Read EN
EN
Source A A bar_code_count.pos
Source bar_code_count.pos Channel
Channel 0
0 Destination
Destination bag_bar_code
bag_bar_code DN
DN
Source B B
Source 24 ''
SerialPort Control
SerialPort Control bar_code_read
bar_code_read ER
ER
SerialPort Control
SerialPort Length
Control Length 24
Characters Read
Characters Read 0
Texto estructurado
ACB(0,bar_code_count);
bar_code_read.LEN := 24;
ARD(0,bag_bar_code,bar_code_read);
END_IF;
Lectura ASCII de lnea La instruccin ARL retira los caracteres especificados del bfer y los
almacena en Destination.
(ARL)
Operandos:
Lgica de escalera de rels
ARL
ARL
ASCII
ASCIIRead
ReadLine
Line EN
EN
Channel
Channel ?
Destination
Destination ? DN
DN
??
SerialPort
SerialPortControl
Control ? ER
ER
SerialPort
SerialPortControl
ControlLength
Length ?
CharactersRead
Characters Read ?
tag
Destination cadena tag el tag al cual se transfieren Si desea comparar, convertir o manipular los
los caracteres (lectura): caracteres, use un tipo de datos de cadena.
SINT Los tipos de datos de cadena son:
Para un tipo de datos de
INT cadena, introduzca el tipo de datos STRING predeterminado
nombre del tag.
DINT cualquier tipo de datos nuevo que usted
Para una matriz SINT, cree
INT o DINT, introduzca
el primer elemento de la
matriz.
Serial Port SERIAL_PORT_ tag tag que controla la
operacin
Control CONTROL
Serial Port DINT inmediato nmero mximo de Introduzca el nmero mximo de caracteres
Control Length caracteres a leer si no se que contendr cualquier mensaje (es decir,
encuentran caracteres de cundo se debe interrumpir la lectura si no
terminacin se encuentran caracteres de terminacin).
Por ejemplo, si el mensaje tiene de 3 a
6 caracteres de longitud, introduzca 6.
Texto estructurado
ARL(Channel,Destination,
Los operandos son los mismos que para la instruccin ARL de lgica
SerialPortControl);
de escalera de rels. Sin embargo, usted especifica los valores de
Serial Port Control Length y Characters Read accediendo a los
miembros .LEN y .POS de la estructura SERIAL_PORT_CONTROL,
en lugar de incluir los valores en la lista de operandos.
Estructura SERIAL_PORT_CONTROL
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.
Indicadores de estado
aritmtico: no afectados
Ejecucin:
La instruccin se ejecuta.
ejecucin de la instruccin La instruccin retira los caracteres especificados del bfer y los almacena en el destino.
MV_line.EN
MV_line.EN ABL
ABL
/ ASCII
ASCII TestTest For Buffer
For Buffer Line Line EN
EN
Channel
Channel 0 DN
DN
SerialPort
SerialPort Control
Control MV_line
MV_line ER
ER
Characters
Character Count
Count 0
MV_line.FD
MV_line.FD ARL
ARL
ASCII Read
ASCII Read LineLine EN
EN
Channel
Channel 0
Destination
Destination MV_line.EN
MV_msg DN
DN
''
SerialPort Control
SerialPort Control MV_line.EN
MV_read ER
ER
SerialPort Control
SerialPort Length
Control Length 12
Characters Read
Characters Read 0
Texto estructurado
ABL(0,MV_line);
osri_1.InputBit := MVLine.FD;
OSRI(osri_1);
IF (osri_1.OutputBit) THEN
mv_read.LEN := 12;
ARL(0,MV_msg,MV_read);
END_IF;
Escritura ASCII con anexo La instruccin AWA enva un nmero especificado de caracteres del
tag Source a un dispositivo serie, y aade uno o dos caracteres
(AWA) predefinidos.
Operandos:
tag
Source cadena tag tag que contiene los Si desea comparar, convertir o manipular los
caracteres a enviar: caracteres, use un tipo de datos de cadena.
SINT Los tipos de datos de cadena son:
Para un tipo de datos de
INT cadena, introduzca el tipo de datos STRING predeterminado
nombre del tag.
DINT cualquier tipo de datos nuevo que usted
Para una matriz SINT, cree
INT o DINT, introduzca
el primer elemento de la
matriz.
Serial Port SERIAL_PORT_ tag tag que controla la
operacin
Control CONTROL
Serial Port DINT inmediato nmero de caracteres a Serial Port Control Length debe ser menor o
Control Length enviar igual que el tamao de Source.
Si desea establecer Serial Port Control
Length igual que el nmero de caracteres en
Source, introduzca 0.
Characters Sent DINT inmediato 0 Durante la ejecucin, muestra el nmero de
caracteres enviados.
Texto estructurado
AWA(Channel,Source,
Los operandos son los mismos que para la instruccin AWA de lgica
SerialPortControl);
de escalera de rels. Sin embargo, usted especifica los valores de
Serial Port Control Length y Characters Sent accediendo a los
miembros .LEN y .POS de la estructura SERIAL_PORT_CONTROL,
en lugar de incluir los valores en la lista de operandos.
Estructura SERIAL_PORT_CONTROL
Si Entonces
la respuesta es afirmativa seleccione el modo de usuario
la respuesta es negativa seleccione ya sea el modo de sistema o el
modo de usuario
Si Entonces
la respuesta En Serial Port Control Length, introduzca el nmero de caracteres
es afirmativa a enviar.
la respuesta Antes de que se ejecute la instruccin, establezca el miembro LEN
es negativa del tag Source al miembro LEN del tag Serial Port Control.
Indicadores de estado
aritmtico: no afectados
Ejecucin:
La instruccin se ejecuta.
ejecucin de la instruccin La instruccin enva un nmero especificado de caracteres y aade uno o dos caracteres predefinidos.
temp_high
temp_high AWA
AWA
ASCII Write
ASCII Write Append
Append EN
EN
Channel
Channel 0
Source
Source string[1]
string[1] DN
DN
'$1425\1'
SerialPort Control
SerialPort Control temp_high_write
temp_high_write ER
ER
SerialPort Control
SerialPort Control Length
Length 5
Characters Sent
Characters Sent 6
Texto estructurado
IF temp_high THEN
temp_high_write.LEN := 5;
AWA(0,string[1],temp_high_write);
temp_high := 0;
END_IF;
alarm
alarm MOV
MOV AWA
AWA
Move
Move ASCII Write
ASCII Write Append
Append EN
EN
Source alarm_msg.LEN
Source alarm_msg.LEN Channel
Channel 0
5 Source
Source alarm_msg
alarm_msg DN
DN
Dest.
Dest alarm_write.LEN
alarm_write.LEN '$1425\1'
5 SerialPort Control
SerialPort Control alarm_write
alarm_write ER
ER
SerialPort Control
SerialPort Length
Control Length 5
Characters Sent
Characters Sent 6
Texto estructurado
osri_1.InputBit := alarm;
OSRI(osri_1);
IF (osri_1.OutputBit) THEN
alarm_write.LEN := alarm_msg.LEN;
AWA(0,alarm_msg,alarm_write);
END_IF;
tag
Source cadena tag tag que contiene los Si desea comparar, convertir o manipular los
caracteres a enviar: caracteres, use un tipo de datos de cadena.
SINT Los tipos de datos de cadena son:
Para un tipo de datos de
INT cadena, introduzca el tipo de datos STRING predeterminado
nombre del tag.
DINT cualquier tipo de datos nuevo que usted
Para una matriz SINT, cree
INT o DINT, introduzca
el primer elemento de la
matriz.
Serial Port SERIAL_PORT_ tag tag que controla la
operacin
Control CONTROL
Serial Port DINT inmediato el nmero de caracteres a Serial Port Control Length debe ser menor o
Control Length enviar igual que el tamao de Source.
Si desea establecer Serial Port Control
Length igual que el nmero de caracteres en
Source, introduzca 0.
Characters Sent DINT inmediato 0 Durante la ejecucin, muestra el nmero de
caracteres enviados.
Texto estructurado
AWT(Channel,Source,
Los operandos son los mismos que para la instruccin AWT de lgica
SerialPortControl);
de escalera de rels. Sin embargo, usted especifica los valores de
Serial Port Control Length y Characters Sent accediendo a los
miembros .LEN y .POS de la estructura SERIAL_PORT_CONTROL,
en lugar de incluir los valores en la lista de operandos.
Estructura SERIAL_PORT_CONTROL
Si la aplicacin Entonces
usa instrucciones ARD o ARL Seleccione el modo de usuario
no usa instrucciones ARD o ARL Seleccione ya sea el modo de sistema o el
modo de usuario
Si Entonces
la respuesta En Serial Port Control Length, introduzca el nmero de caracteres
es afirmativa a enviar.
la respuesta Antes de que se ejecute la instruccin, mueva el miembro LEN del
es negativa tag Source al miembro LEN del tag Serial Port Control.
Indicadores de estado
aritmtico: no afectados
Ejecucin:
La instruccin se ejecuta.
ejecucin de la instruccin La instruccin enva un nmero especificado de caracteres.
temp_low
temp_low AWT
AWT
ASCII
ASCII Write
Write EN
EN
Channel
Channel 0
Source
Source string[2]
string[2] DN
DN
'$142224\01$r'
SerialPort Control
SerialPort Control temp_low_write
temp_low_write ER
ER
SerialPort Control
SerialPort LengthLength
Control 9
Characters SentSent
Characters 9
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;
MV_update
MV_update MOV
MOV AWT
AWT
Move
Move ASCII Write
ASCII Write EN
EN
Source MV_msg.LEN
Source MV_msg.LEN Channel
Channel 0
10 Source
Source MV_msg
MV_msg DN
DN
Dest.
Dest MV_write.LEN
MV_write.LEN '$161365\8\1$r'
10 SerialPort Control
SerialPort Control MV_write
MV_write ER
ER
SerialPort Control
SerialPort Length
Control Length 10
Characters SentSent
Characters 10
Texto estructurado
osri_1.InputBit := MV_update;
OSRI(osri_1);
IF (osri_1.OutputBit) THEN
MV_write.LEN := Mv_msg.LEN;
AWT(0,MV_msg,MV_write);
END_IF;
Notas:
Introduccin Use las instrucciones de cadena ASCII para modificar y crear cadenas
de caracteres ASCII.
texto estructurado
eliminar caracteres de una cadena eliminar caracteres de encabezado o DELETE lgica de escalera de 603
control de una cadena rels
texto estructurado
determinar el carcter inicial de una hallar un grupo de caracteres dentro FIND lgica de escalera de 605
subcadena de una cadena rels
texto estructurado
insertar caracteres dentro de una crear una cadena que usa variables INSERT lgica de escalera de 607
cadena rels
texto estructurado
extraer caracteres de una cadena extraer informacin de un cdigo de MID lgica de escalera de 609
barra rels
texto estructurado
Concatenacin de cadenas La instruccin CONCAT aade caracteres ASCII al final de una cadena.
(CONCAT)
Operandos:
Texto estructurado
CONCAT(SourceA,SourceB,
Los operandos son iguales a los de la instruccin CONCAT de lgica
Dest);
de escalera de rels.
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ejecucin:
La instruccin se ejecuta.
ejecucin de la instruccin La instruccin concatena las cadenas.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.
add_node CONCAT
CONCAT
Sting
StringConcatenate
Concatenate
Source
Source A A string_1
string_1
$1423\
'$1423\'
Source
SourceB B node_num_ascii
node_num_ascii
'1'1
Dest
Dest msgmsg
'$1423\1'
$1423\1
Texto estructurado
IF add_node THEN
CONCAT(string_1,node_num_ascii,msg);
add_node := 0;
END_IF;
Eliminacin de cadena La instruccin DELETE retira los caracteres ASCII de una cadena.
(DELETE)
Operandos:
DELETE
Lgica de escalera de rels
DELETE
Sting Delete
String Delete
Source
Source ??
????
Qty
Qty ??
????
Start
Start ??
????
Dest
Dest ??
????
DINT
Start SINT inmediato la posicin del primer Introduzca un nmero entre 1 y el tamao de
carcter que se debe DATA de Source.
INT tag eliminar
DINT
Destination cadena tag tag para almacenar el
resultado
Texto estructurado
DELETE(Source,Qty,Start,
Los operandos son iguales a los de la instruccin DELETE de lgica de
Dest);
escalera de rels.
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Tipo Cdigo Causa Mtodo de recuperacin
4 51 El valor LEN del tag de 1. Verifique que ninguna instruccin est escribiendo en el miembro LEN del tag
cadena es mayor que el de cadena.
tamao de DATA del tag
de cadena. 2. En el valor LEN, introduzca el nmero de caracteres que contiene la cadena.
4 56 El valor de Start o Quantity 1. Verifique que el valor de Start est entre 1 y el tamao de DATA de Source.
no es vlido.
2. Verifique que el valor de Start ms el valor Quantity sea menor o igual que el
tamao de DATA de Source.
Ejecucin:
Condicin Accin de lgica de escalera de rels Accin de texto estructurado
preescn La condicin de salida de rengln se establece como falsa. Ninguna.
condicin de entrada de La condicin de salida de rengln se establece como falsa. n. a.
rengln es falsa
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.
La instruccin se ejecuta.
ejecucin de la instruccin La instruccin elimina los caracteres especificados.
post-escn La condicin de salida de rengln se establece como falsa. Ninguna.
Dest
Dest term_text
term_text
55
'55'
Texto estructurado
IF term_read.EM THEN
DELETE(term_input,1,1,term_text);
term_read.EM := 0;
END_IF;
Encontrar cadena (FIND) La instruccin FIND localiza la posicin de una cadena especificada
dentro de otra cadena.
Operandos:
FIND
Lgica de escalera de rels
FIND
Find
FindString
String
Source
Source ??
????
Search
Search ??
????
Start
Start ??
????
Result
Result ??
????
DINT
Result SINT tag el tag que almacena la
posicin inicial de la
INT cadena que se debe buscar
DINT
Texto estructurado
FIND(Source,Search,Start,
Los operandos son iguales a los de la instruccin FIND de lgica de
Result);
escalera de rels antes descritos.
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Tipo Cdigo Causa Mtodo de recuperacin
4 51 El valor LEN del tag de cadena es 1. Verifique que ninguna instruccin est escribiendo en el miembro LEN
mayor que el tamao de DATA del del tag de cadena.
tag de cadena.
2. En el valor LEN, introduzca el nmero de caracteres que contiene la
cadena.
4 56 El valor de Start no es vlido. Verifique que el valor de Start est entre 1 y el tamao de DATA de Source.
Ejecucin:
Condicin Accin de lgica de escalera de rels Accin de texto estructurado
preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.
La instruccin se ejecuta.
ejecucin de la instruccin La instruccin busca los caracteres especificados.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.
Result
Result find_pos
find_pos
55
Texto estructurado
IF MV_read.EM THEN
FIND(MV_msg,find,1,find_pos);
MV_read.EM := 0;
END_IF;
Insertar cadena (INSERT) La instruccin INSERT aade caracteres ASCII a un lugar especificado
dentro de una cadena.
Operandos:
INSERT
Lgica de escalera de rels
INSERT
Insert
InsertString
String
Source
Source A A ??
????
Source
SourceB B ??
????
Start
Start ??
????
Dest
Dest ??
????
DINT
Result cadena tag cadena para almacenar el
resultado
Texto estructurado
INSERT(SourceA,SourceB,
Los operandos son iguales a los de la instruccin INSERT de lgica de
Start,Dest);
escalera de rels.
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ejecucin:
La instruccin se ejecuta.
ejecucin de la instruccin La instruccin inserta los caracteres especificados.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.
temp_high INSERT
INSERT
Insert String
Insert String
Source
SourceA A string_1
string_1
AD
'AD'
Source
SourceB B string_2
string_2
'BC'BC
Start
Start 22
Dest
Dest string_3
string_3
'ABCD'
ABCD
Texto estructurado
IF temp_high THEN
INSERT(string_1,string_2,2,string_3);
temp_high := 0;
END_IF;
Cadena central (MID) La instruccin MID copia un nmero especificado de caracteres ASCII
de una cadena y los almacena en otra cadena.
Operandos:
DINT
Start SINT inmediato la posicin del primer Introduzca un nmero entre 1 y el tamao de
carcter que se debe copiar DATA de Source.
INT tag
DINT
Destination cadena tag la cadena a la cual se
deben copiar los caracteres
Texto estructurado
MID(Source,Qty,Start,
Los operandos son iguales a los de la instruccin MID de lgica de
Dest);
escalera de rels.
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Tipo Cdigo Causa Mtodo de recuperacin
4 51 El valor LEN del tag de 1. Verifique que ninguna instruccin est escribiendo en el miembro LEN del tag
cadena es mayor que el de cadena.
tamao de DATA del tag
de cadena. 2. En el valor LEN, introduzca el nmero de caracteres que contiene la cadena.
4 56 El valor de Start o Quantity 1. Verifique que el valor de inicio est entre 1 y el tamao de DATA de Source.
no es vlido.
2. Verifique que el valor de Start ms el valor de Quantity sea menor o igual que el
tamao de DATA de Source.
Ejecucin:
Condicin Accin de lgica de escalera de rels Accin de texto estructurado
preescn La condicin de salida de rengln se establece como falsa. Ninguna.
condicin de entrada de La condicin de salida de rengln se establece como falsa. n. a.
rengln es falsa
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.
La instruccin se ejecuta.
ejecucin de la instruccin La instruccin MID copia los caracteres especificados de una cadena y los almacena en otra cadena.
post-escn La condicin de salida de rengln se establece como falsa. Ninguna.
Start
Start 99
Dest
Dest bag_flt_and_dest
bag_flt_and_dest
'5058 AMS
5058 '
AMS
Texto estructurado
IF bag_read.EM THEN
MID(bar_barcode,9,9,bag_flt_and_dest);
bag_read.EM := 0;
END_IF;
Operandos:
REAL
STOD(Source,Dest);
Texto estructurado
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo
Tipo Cdigo Causa Mtodo de recuperacin
4 51 El valor LEN del tag de cadena es mayor que el tamao 1. Verifique que ninguna instruccin est escribiendo
de DATA del tag de cadena. en el miembro LEN del tag de cadena.
Ejecucin:
Condicin Accin de lgica de escalera de rels Accin de texto estructurado
preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.
La instruccin se ejecuta.
ejecucin de la instruccin SC se establece
Destination se borra.
MV_read.EM STOD
STOD
String
StringTo DINT
To DINT
Source
Source MV_msg
MV_msg
$06324\12\1\$r
'$06324\12\1\$r'
Dest MV_msg_nmbr
Dest MV_msg_nmbr 324
324
Texto estructurado
IF MV_read.EM THEN
STOD(MV_msg,MV_msg_nmbr);
MV_read.EM := 0;
END_IF;
Operandos:
STOR
Operadores de escalera de rel
STOR
String
Stringtoto
Real
Real
Source
Source ??
????
Dest
Dest ??
????
STOR(Source,Dest);
Texto estructurado
Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo:
Tipo Cdigo Causa Mtodo de recuperacin
4 51 El valor LEN del tag de cadena es mayor que el tamao 1. Verifique que ninguna instruccin est escribiendo
de DATA del tag de cadena. en el miembro LEN del tag de cadena.
Ejecucin:
Condicin Accin de lgica de escalera de rels Accin de texto estructurado
preescn La condicin de salida de rengln se establece como Ninguna.
falsa.
condicin de entrada de La condicin de salida de rengln se establece como n. a.
rengln es falsa falsa.
condicin de entrada de La instruccin se ejecuta. n. a.
rengln es verdadera
La condicin de salida de rengln se establece como
verdadera.
EnableIn se establece n. a. EnableIn siempre se establece.
La instruccin se ejecuta.
ejecucin de la instruccin S:C se establece.
Destination se borra.
weight_read.EM STOR
STOR
String
Stringto Real
to Real
Source weight_axcii
Source weight_ascii
428.259
'428.259'
Dest weight
Dest weight
428.259
428.259
Texto estructurado
IF weight_read.EM THEN
STOR(weight_ascii,weight);
weight_read.EM := 0;
END_IF;
Operandos:
DINT
REAL
Destination cadena tag el tag en que se almacena Los tipos de datos de cadena son:
el valor ASCII
tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted
cree
DTOS(Source,Dest);
Texto estructurado
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ejecucin:
La instruccin se ejecuta.
ejecucin de la instruccin La instruccin convierte Source.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.
temp_high DTOS
DTOS
DINT
DINTto String
to String
Source msg_num
Source msg_num
23
Dest 23
msg_num_ascii
Dest msg_num_ascii 23
'23'
Texto estructurado
IF temp_high THEN
DTOS(msg_num,msg_num_ascii);
temp_high := 0;
END_IF;
Operandos:
RTOS(Source,Dest);
Texto estructurado
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ejecucin:
La instruccin se ejecuta.
ejecucin de la instruccin La instruccin convierte Source.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.
send_data RTOS
RTOS
Real
Realto String
to String
Source data_1
Source data_1
15.3001
Dest
15.3001
data_1_ascii
Dest data_1_ascii
15.301003
'15.3001003'
Texto estructurado
IF send_data THEN
RTOS(data_1,data_1_ascii);
send_data := 0;
END_IF;
Operandos:
UPPER(Source,Dest);
Texto estructurado
Indicadores de estado
aritmtico: no afectados
Ejecucin:
La instruccin se ejecuta.
ejecucin de la instruccin La instruccin convierte Source en maysculas.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.
Texto estructurado
IF terminal_read.EM THEN
UPPER(catalog_number,catalog_number_upper_case);
terminal_read.EM := 0;
END_IF;
LOWER(Source,Dest);
Texto estructurado
Indicadores de estado
aritmtico: no afectados
Ejecucin:
La instruccin se ejecuta.
ejecucin de la instruccin La instruccin convierte Source en minsculas.
post-escn La condicin de salida de rengln se establece como Ninguna.
falsa.
Texto estructurado
IF terminal_read.EM THEN
LOWER(item_number,item_number_lower_case);
terminal_read.EM := 0;
END_IF;
Instrucciones de depuracin
(BPT, TPT)
Descripcin:
Formato de cadena
encabezado:(texto)%(tipo)
Indicadores de estado
aritmtico: no afectados
Ejecucin:
La ejecucin salta al rengln que contiene la instruccin LBL con el nombre de etiqueta
referenciado.
post-escn La condicin de salida de rengln se establece como falsa.
Ejemplo: Usted puede mostrar muchos valores de tag con la instruccin BPT.
Sin embargo, la cadena de formateo puede contener slo
82 caracteres. Puesto que la cadena de formateo requiere dos
caracteres para cada tag que usted desea en el punto de interrupcin,
no podr rastrear ms de 41 tags con una sola instruccin BPT.
Sin embargo, para separar datos de tag en sus rastreos necesitar
incluir espacios y otro formateo, reduciendo as el nmero de valores
de tag que puede mostrar eficazmente una instruccin BPT a mucho
menos de 41.
Puntos de rastreo (TPT) Datos de registro de puntos de rastreo que usted selecciona cuando
un rengln es verdadero.
Operandos:
Descripcin:
Formato de cadena
encabezado:(texto)%(tipo)
. Indicadores de estado
aritmtico: no afectados
Ejecucin:
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.
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.
Atributos comunes
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).
Conversiones de datos Las conversiones de datos ocurren cuando usted mezcla diferentes
tipos de datos en la programacin:
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.
En otras palabras, use todos los tags DINT o tags REAL, junto con
valores inmediatos, en sus instrucciones.
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
MOV EQU
Move Equal
Source 2#1111_1111_1111_1111 Source A remote_rack_1:I.Data[0]
2#1111_1111_1111_1111
Dest int_0 Source B int_0
2#1111_1111_1111_1111 2#1111_1111_1111_1111
42093
Entero en 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.
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.
conector de
cable de
salida (OCON)
conector 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
tagA
Block_02
tagA
Block_02
tagA
1 2 3
1 3 5
2 4 6
Resolucin de un lazo
? ? ?
1 2 3
1 2 ? ?
Si usted usa dos o ms cables para conectar dos bloques, use los
mismos indicadores de flujo de datos para todos los cables entre los
dos bloques.
Ningn cable usa el indicador Suponer datos disponibles. Un cable usa el indicador Suponer datos disponibles y el otro
cable no.
2 1
Resumen
Los bloques ejecutan su algoritmo y Los bloques con lmite de salida ejecutan La condicin de overflow no se aplica. Estas
verifican el resultado para NAN o INF. su algoritmo y verifican el resultado para instrucciones generalmente tienen una
Si NAN o INF, el bloque establece la NAN o INF. Los lmites de salida son salida booleana.
salida NAN o INF. definidos por los parmetros de entrada
HighLimit y LowLimit. Si INF, el bloque
establece la salida un resultado limitado.
Si NAN, los lmites de salida no se usan y
el bloque establece la salida NAN.
ALMNTCH HLL BANDOSRI
DERVPOSP PI BORRTOR
LDL2SEL D3SD
LDLGSNEG DFF
LPFSRTP JKFF
MAVESSUM OSFI
MAXCTOT
MINCUPDN
MSTD
MUX
Modo de Descripcin
temporizacin
peridico El modo peridico es el modo predeterminado y es adecuado para la mayora de las aplicaciones de control.
Recomendamos que coloque las instrucciones que utilizan este modo en una rutina que se ejecute en una
tarea peridica. El tiempo delta (DeltaT) para la instruccin se determina de la siguiente manera:
Si la instruccin se DeltaT es igual a
ejecuta en
una tarea peridica el perodo de la tarea
un evento o una tarea el tiempo transcurrido desde la ejecucin previa
continua
El controlador trunca el tiempo transcurrido a milisegundos (ms) enteros. Por ejemplo,
si el tiempo transcurrido = 10.5 ms, el controlador establece DeltaT = 10 ms.
La actualizacin de la entrada del proceso necesita sincronizarse con la ejecucin de la tarea o muestrearse
5 - 10 veces ms rpido que el tiempo en que se ejecuta la tarea a fin de minimizar los errores de muestreo
entre la entrada y la instruccin.
sobremuestreo En el modo de sobremuestreo, el tiempo delta (DeltaT) usado por la instruccin es el valor escrito en el
parmetro OversampleDT de la instruccin. Si la entrada del proceso tiene un valor de sello de hora, use en
lugar de ello el modo de muestreo en tiempo real.
Aada lgica al programa para controlar cundo se ejecuta la instruccin. Por ejemplo, puede usar un
temporizador para establecer el valor de OversampleDeltaT y as controlar la ejecucin usando la entrada
EnableIn de la instruccin.
La entrada del proceso necesita muestrearse 5 - 10 veces ms rpido que el tiempo en que se ejecuta la
instruccin a fin de minimizar los errores de muestreo entre la entrada y la instruccin.
Modo de Descripcin
temporizacin
muestreo en tiempo real En el modo de muestreo en tiempo real, el tiempo delta (DeltaT) usado por la instruccin es la diferencia entre
dos valores de sello de hora que corresponden a las actualizaciones de la entrada del proceso. Use este modo
cuando la entrada del proceso tiene un sello de hora asociado con sus actualizaciones y usted necesita una
coordinacin precisa.
El valor del sello de hora se lee en el nombre de tag introducido para el parmetro RTSTimeStamp de la
instruccin. Normalmente este nombre de tag es un parmetro en el mdulo de entrada asociado con la
entrada del proceso.
La instruccin compara el valor RTSTime configurado (perodo de actualizacin previsto) con el DeltaT
calculado para determinar si la instruccin est leyendo cada actualizacin de la entrada del proceso. Si
DeltaT no se encuentra dentro de un milisegundo del tiempo de configuracin, la instruccin establece el bit
de estado RTSMissed para indicar que existe un problema con la lectura de actualizaciones de la entrada en
el mdulo.
Parmetros de entrada
Valor: Descripcin:
0 modo peridico
1 modo de sobremuestreo
vlido = 0 a 2
valor predeterminado = 0
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.
1 conteo = 1 milisegundo
valor predeterminado = 0
Parmetros de salida
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.
Entrada Descripcin
.ProgProgReq Una peticin del programa para ir a control
de programa.
.ProgOperReq Una peticin del programa para ir a control
de operador.
.OperProgReq Una peticin del operador para ir a control de
programa.
.OperOperReq Una peticin del operador para ir a control de
operador.
Cablear un 1 en ProgOperReq
significa que el programa de usuario
desea que TOT siempre est en control
de operador.
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.
Notas:
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.
Sintaxis del texto El texto estructurado es un lenguaje de programacin textual que usa
declaraciones para definir lo que se va a ejecutar.
estructurado
El texto estructurado no permite distinguir maysculas de
minsculas.
Use caracteres de tabulacin y de retorno de carro (lneas
separadas) para facilitar la lectura del texto estructurado. Dichos
caracteres no tienen ningn efecto en la ejecucin del texto
estructurado.
(ver pgina 670) Una instruccin usa parntesis para delimitar sus operandos.
WHILE...DO
REPEAT...UNTIL
EXIT
comentario Texto que explica o aclara lo que hace una seccin de texto estructurado. //comment
(ver pgina 687) Use comentarios para facilitar la interpretacin del texto
estructurado.
Los comentarios no tienen ningn efecto en la ejecucin del texto (*start of comment . . .
estructurado. end of comment*)
Los comentarios pueden aparecer en cualquier lugar del texto
estructurado.
/*start of comment . . .
end of comment*/
tag := expression ;
donde:
Componente Descripcin
tag representa el tag que est obteniendo el nuevo valor
INT
DINT
REAL
; finaliza la asignacin
donde:
Componente Descripcin
tag representa el tag que obtiene el nuevo valor
INT
DINT
REAL
; finaliza la asignacin
Si desea Entonces
Calcular un valor aritmtico Use funciones y operadores aritmticosen la pgina 665.
Comparar dos valores o cadenas Use operadores relacionalesen la pgina 666.
Verificar si determinadas condiciones son Use operadores lgicosen la pgina 668.
verdaderas o falsas
Comparar los bits dentro de valores Use operadores a nivel de bitsen la pgina 669.
Por ejemplo:
Si la comparacin es El resultado es
verdadera 1
falsa 0
Por ejemplo:
Si la comparacin es El resultado es
verdadera 1
falsa 0
Por ejemplo:
Por ejemplo:
Orden Operacin
1. ()
2. funcin ()
3. **
4. (cambiar signo)
5. NOT
6. *, /, MOD
7. +, - (restar)
8. <, <=, >, >=
9. =, <>
10. &, AND
11. XOR
12. OR
END_IF;
osri_1.InputBit := tag_xic;
OSRI(osri_1);
IF (osri_1.OutputBit) THEN
ABL(0,serial_control);
END_IF;
GOTO
REPEAT
IF...THEN Use IFTHEN para hacer algo si o cuando ocurre una condicin
especfica.
Operandos:
Texto estructurado
IF bool_expression THEN
Operando Tipo Formato Introduzca
<statement>;
END_IF; bool_ BOOL tag Expresin o tag BOOL que evala respecto
expression a un valor BOOL (expresin BOOL)
expresin
IF bool_expression1 THEN
<statement >; declaraciones que deben
ejecutarse cuando
. bool_expression1 es verdadero
.
.
ELSIF bool_expression2 THEN
opcional
<statement>; declaraciones que deben
ejecutarse cuando
. bool_expression2 es verdadero
.
.
ELSE
opcional
<statement>; declaraciones que deben
ejecutarse cuando ambas
. expresiones son falsas
.
.
END_IF;
Indicadores de estado
aritmtico: no afectados
Ejemplo 1: IFTHEN
Ejemplo 2: IFTHENELSE
Ejemplo 3: IFTHENELSIF
Ejemplo 4: IFTHENELSIFELSE
Operandos:
Texto estructurado
CASE numeric_expression OF
Operando Tipo Formato Introduzca
selector1: statement;
selectorN: statement; numeric_ SINT tag tag o expresin que evala respecto a un
nmero (expresin numrica)
ELSE expression INT expresin
statement;
END_CASE; DINT
REAL
selector SINT inmediato el mismo tipo que
numeric_expression
INT
DINT
REAL
CASE numeric_expression OF
selector1 : <statement>; declaraciones a ejecutar cuando
. numeric_expression = selector1
.
.
selector2 : <statement>; declaraciones a ejecutar cuando
especifique todos los numeric_expression = selector2
valores de selector .
alternativos (rutas) que .
necesite .
selector3 : <statement>; declaraciones a ejecutar cuando
. numeric_expression = selector3
.
.
ELSE
<statement>; declaraciones a ejecutar cuando
opcional . numeric_expression cualquier
selector
.
.
END_CASE;
Indicadores de estado
aritmtico: no afectados
Ejemplo
FORDO Use el lazo FORDO para hacer algo una cantidad determinada de
veces antes de hacer otra cosa.
Operandos:
Texto estructurado
FOR count:= initial_value TO
final_value BY increment DO Operando Tipo Formato Descripcin
<statement>; count SINT tag tag para almacenar la posicin de conteo
END_FOR; a medida que FORDO se ejecuta
INT
DINT
initial_ SINT tag se debe evaluar con respecto a un nmero
value
INT expresin especifica el valor inicial del conteo
DINT inmediato
final_ SINT tag especifica el valor final del conteo, el cual
value determina cundo salir del lazo
INT expresin
DINT inmediato
increment SINT tag (opcional) cantidad a incrementar el
conteo cada vez que se pasa por el lazo
INT expresin
DINT inmediato
Si usted no especifica un incremento, el
conteo se incrementa en 1.
Efectuado x s Efectuado x s
veces? veces?
no no
declaracin 1 declaracin 1
declaracin 2 declaracin 2
declaracin 3 declaracin 3
declaracin 4 declaracin 4
Salir? s
resto de la rutina
no
resto de la rutina
El lazo FORDO se ejecuta un nmero Para detener el lazo antes de que el conteo llegue al
especfico de veces. ltimo valor, use una declaracin EXIT.
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ejemplo 1:
3. Aadir 1 a subscript.
De lo contrario, parar.
Ejemplo 2:
b. Parar.
4. Aadir 1 a position.
De lo contrario, parar.
Operandos:
Texto estructurado
WHILE bool_expression DO
Operando Tipo Formato Introduzca
<statement>;
END_WHILE; bool_ BOOL tag Expresin o tag BOOL que evala
expression respecto a un valor BOOL
expresin
WHILE bool_expression1 DO
<statement>; declaraciones que se ejecutan mientras
bool_expression1 es verdadero
IF bool_expression2 THEN
EXIT; Si existen condiciones cuando usted desea
opcional salir del lazo anticipadamente, use otras
END_IF; declaraciones, tal como la construccin
IF...THEN, para condicionar una
declaracin EXIT.
END_WHILE;
Mientras bool_expression es verdadero, el Para detener el lazo antes de que las condiciones
controlador ejecuta slo las declaraciones sean verdaderas, use una declaracin EXIT.
dentro del lazo WHILEDO.
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ejemplo 1:
Ejemplo 2:
8. Ir a 3.
REPEATUNTIL Use el lazo REPEATUNTIL para continuar haciendo algo hasta que
las condiciones sean verdaderas.
Operandos:
Texto estructurado
REPEAT
Operando Tipo Formato Introduzca
<statement>;
UNTIL bool_expression bool_ BOOL tag Expresin o tag BOOL que evala respecto
expression a un valor BOOL (expresin BOOL)
END_REPEAT; expresin
REPEAT
<statement>; declaraciones que se ejecutan mientras
bool_expression1 es falso
IF bool_expression2 THEN
EXIT; Si existen condiciones cuando usted desea
opcional salir del lazo anticipadamente, use otras
END_IF; declaraciones, tal como la construccin
IF...THEN, para condicionar una
declaracin EXIT.
UNTIL bool_expression1
END_REPEAT;
resto de la rutina
Mientras bool_expression es falso, el Para detener el lazo antes de que las condiciones
controlador ejecuta slo las declaraciones dentro sean falsas, use una declaracin EXIT.
del lazo REPEATUNTIL.
Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ejemplo 1:
Esto es diferente del lazo WHILE...DO porque el lazo UNTIL ((pos = 101) OR
WHILE...DO evala su condicin primero. Si las condiciones (structarray[pos].value = targetvalue))
son verdaderas, el controlador ejecuta las declaraciones end_repeat;
dentro del lazo. Las declaraciones en un lazo REPEAT...UNTIL
siempre se ejecutan por lo menos una vez. Las declaraciones
en un lazo WHILE...DO es posible que nunca se ejecuten.
Ejemplo 2:
7. Si el carcter en SINT_array[element_number] = 13
(valor decimal del retorno de carro), parar.
De lo contrario, ir a 3.
/*comment*/
dentro de una lnea de texto (*comment*)
estructurado
/*comment*/
que abarque ms de una lnea (*start of comment . . . end of
comment*)
Por ejemplo:
Formato Ejemplo
//comment Al comienzo de una lnea
IF conveyor_direction THEN...
light := 1;
END_IF;
(*comment*) Sugar.Inlet[:=]1;(*open the inlet*)
SIZE(Inventory,0,Inventory_Items);
A comentarios
texto estructurado 687
activacin de salida 82 comparacin de bits de archivo 478
activar tarea de evento 464 comparar 206
actualizar salida 201 concatenacin de cadenas 601
ajuste 503 condiciones de overflow 648
alarma digital 30 conector
alarmas 504 diagrama de bloques de
arco coseno 532 funciones 641
arco seno 529
arco tangente 535 conector de cable de entrada 641
aritmtica y lgica de archivo 335 conector de cable de salida 641
ASCII conexin
asignacin de texto cach 173
estructurado 663 configuracin 159
instruccin MSG 159
asignacin
carcter ASCII 663 instruccin PID 502
no retentiva 662 construccin
texto estructurado 671
retentiva 661
conteo progresivo 128
atributos conteo progresivo/regresivo 136
conversin de tipos de datos 635 conteo regresivo 132
valores inmediatos 635 control de programa/operador
atributos comunes 635 descripcin general 654
conversin de tipos de datos 635 conversin de tipos de datos 635
valores inmediatos 635 convertir a BCD 556
convertir en entero 559
copiar 356
B copiar sncrono 356
BAND 317 coseno 523
banda muerta 514
BNOT 326
BOR 320 D
borrar 298 descarga FIFO 400
Borrar ASCII bfer 575 descripcin
buscar cadena 605 texto estructurado 687
bsqueda y comparacin de desenclavamiento de salida 86
archivos 347 desplazamiento de bits a la
BXOR 323 derecha 390
desplazamiento de bits a la
izquierda 386
C desviacin estndar 376
cach deteccin de diagnstico 486
conexin 173 determinacin de igualdad con
cadena mscara 237
evaluacin en texto diagrama de bloques de funciones
estructurado 667 creacin de un retardo de
Cadena a DINT 614 escn 647
Cadena central 609 resolucin del flujo de datos entre
Cadena en REAL 616 dos bloques 647
clculo 248 resolver un lazo 645
cambiar signo 274 seleccin de elementos 641
caracteres ASCII en el bfer 573 diferente de 242
carga de secuenciador 428 DINT en cadena 619
carga FIFO 394 distribuir campo de bits 292
carga LIFO 406, 412 distribuir campo de bits con
CASE 675 receptor 295
clasificar 371 divisin 261
cdigos de error documento
ASCII 568 texto estructurado 687
instruccin MSG 152
cdigos de productos 181
E FBD_BIT_FIELD_DISTRIBUTE 295
FBD_BOOLEAN_AND 317
elementos FBD_BOOLEAN_NOT 326
instruccin SIZE 381
FBD_BOOLEAN_OR 320
Eliminacin de cadena 603
enclavamiento de datos 642 FBD_BOOLEAN_XOR 323
enclavamiento de salida 84 FBD_COMPARE 212, 216, 220,
Encontrar cadena 605 224, 228, 243
escalado 505 FBD_CONVERT 556, 559
escritura ASCII 594 FBD_COUNTER 136
escritura ASCII con anexo 589 FBD_LIMIT 232
establecer valor del sistema 176 FBD_LOGICAL 305, 308, 311, 315
estado FBD_MASKED_MOVE 288
tarea 195 FBD_MASK_EQUAL 238
estructura COMPARE 479, 487 FBD_MATH 253, 256, 259, 262,
estructura CONTROL 336, 347, 367, 267, 275, 547
371, 376, 386, 390, 395, 401, FBD_MATH_ADVANCED 271, 278,
406, 407, 413, 420, 424, 428
estructura COUNTER 128, 132 520, 524, 527, 529, 532,
estructura de control 448 535, 540, 544, 550, 553
Estructura FBD_BIT_FIELD_ FBD_ONESHOT 96, 99
DISTRIBUTE 295 FBD_TIMER 116, 120, 124
Estructura FBD_BOOLEAN_ FBD_TRUNCATE 561
AND 317 instruccin RES 141
Estructura FBD_BOOLEAN_ MESSAGE 144
NOT 326 PID 498
Estructura FBD_BOOLEAN_OR 320 RESULT 479, 487
Estructura FBD_BOOLEAN_XOR 323 SERIAL_PORT_CONTROL 566, 568,
estructura FBD_COMPARE 212, 216, 570, 573, 578, 582, 586,
220, 224, 228, 243
estructura FBD_CONVERT 556, 559 590, 595
Estructura FBD_COUNTER 136 STRING 568, 600, 613
estructura FBD_LIMIT 232 TIMER 104, 108, 112
Estructura FBD_LOGICAL 305, 308, etiqueta 434, 627, 631
311, 315 examinar si est abierto 80
Estructura FBD_MASKED_ expiracin
MOVE 288 configurar para tarea de evento 195
Estructura FBD_MASK_EQUAL 238 exponencial 546
estructura FBD_MATH 253, 256, 259, expresin
262, 267, 275, 547 expresin BOOL
Estructura FBD_MATH_ADVANCED texto estructurado 663
271, 520, 524, 527, 529, 532, expresin numrica
535, 540, 544, 550, 553 texto estructurado 663
estructura FBD_MATH_ orden de ejecucin
ADVANCED 278 texto estructurado 669
estructura FBD_ONESHOT 96, 99 texto estructurado
estructura FBD_TIMER 116, 120, 124 descripcin general 663
Estructura FBD_TRUNCATE 561 funciones 665
estructura MESSAGE 144 operadores a nivel de bits 669
estructura PID 498 operadores aritmticos 665
estructura RESULT 479, 487 operadores lgicos 668
Estructura SERIAL_PORT_ operadores relacionales 666
CONTROL 566, 568, 570, 573, expresin BOOL
578, 582, 586, 590, 595 texto estructurado 663
estructura STRING 568, 600, 613 expresin numrica 663
estructura TIMER 104, 108, 112 expresiones
estructuras formato 209, 250, 345, 353
cadena 568, 613 operadores vlidos 208, 250, 345,
COMPARE 479, 487 353
CONTROL 336, 347, 367, 371, 376, orden de operacin 209, 251, 346,
386, 390, 395, 401, 406, 354
407, 413, 420, 424, 428
COUNTER 128, 132
N
P
NO a nivel de bits 314
NO booleano 326 polarizacin de salida 515
post-escn
texto estructurado 662
O promedio 366
proporcional, integral y
O a nivel de bits 307 derivativo 497
O booleano 320 prueba ASCII para lnea de
O exclusivo a nivel de bits 310 bfer 570
O exclusivo booleano 323
objeto CONTROLLER 180
objeto CONTROLLERDEVICE 181 R
objeto CST 183
objeto DF1 184 radianes 553
objeto FAULTLOG 187 raz cuadrada 270
objeto MESSAGE 188 REAL en cadena 621
objeto MODULE 190 referencia de entrada 641
objeto MOTIONGROUP 191 referencia de salida 641
objeto PROGRAM 192 REPEATUNTIL 684
objeto ROUTINE 193 resta 255
objeto SERIALPORT 193 restablecer 141
objeto TASK 195 restablecimiento de control
objeto WALLCLOCKTIME 197 maestro 452
objetos retardo de escn
CONTROLLER 180 diagrama de bloques de
CONTROLLERDEVICE 181 funciones 647
CST 183 retornar 474
DF1 184 retorno 436
S IF...THEN 672
operadores a nivel de bits 669
Salida operadores aritmticos 665
actualizar inmediatamente 201
operadores lgicos 668
habilitar o inhabilitar fin de
operadores relacionales 666
procesamiento de
REPEATUNTIL 684
tarea 195
WHILEDO 681
saltar 434, 627, 631
saltar a subrutina 436 tipo de datos de cadena 568, 600,
secuenciador de entrada 420 613
secuenciador de salida 424 transicin de datos 494
seno 520 truncar 561
sin operacin 457
subrutina 436 U
sumar 252
superposicin un impulso 88
verifica 195 un impulso en flanco ascendente 91
suponer datos disponibles 645, 647 un impulso en flanco ascendente
con entrada 96
un impulso en flanco
T descendente 94
un impulso en flanco descendente
tamao en elementos 381 con entrada 99
tangente 526
tarea
activar mediante tag V
consumido 201
activar tarea de evento 464 valor absoluto 277
configurar programticamente 195 valores inmediatos 635
monitorear 195
tarea de evento W
activar mediante instruccin
EVENT 464 WHILEDO 681
activar mediante tag
consumido 201
configurar 195
X
temporizador de retardo a la X a la potencia de Y 546
conexin 104
temporizador de retardo a la
conexin con Y
restablecimiento 116 Y a nivel de bits 304
temporizador de retardo a la Y booleano 317
desconexin 108
temporizador de retardo a la
desconexin con
restablecimiento 120
temporizador retentivo activado 112
temporizador retentivo activado
con restablecimiento 124
texto estructurado
asignacin 661
asignacin no retentiva 662
asigne carcter ASCII 663
CASE 675
comentarios 687
componentes 659
construcciones 671
evaluacin de cadenas 667
expresin 663
expresin numrica 663
FORDO 678
funciones 665
Carcter Dec Hex Carcter Dec Hex Carcter Dec Hex Carcter Dec Hex
[ctrl-@] NUL 0 $00 SPACE 32 $20 @ 64 $40 96 $60
[ctrl-A] SOH 1 $01 ! 33 $21 A 65 $41 a 97 $61
[ctrl-B] STX 2 $02 34 $22 B 66 $42 b 98 $62
[ctrl-C] ETX 3 $03 # 35 $23 C 67 $43 c 99 $63
[ctrl-D] EOT 4 $04 $ 36 $24 D 68 $44 d 100 $64
[ctrl-E] ENQ 5 $05 % 37 $25 E 69 $45 e 101 $65
[ctrl-F] ACK 6 $06 & 38 $26 F 70 $46 f 102 $66
[ctrl-G] BEL 7 $07 39 $27 G 71 $47 g 103 $67
[ctrl-H] BS 8 $08 ( 40 $28 H 72 $48 h 104 $68
[ctrl-I] HT 9 $09 ) 41 $29 I 73 $49 i 105 $69
[ctrl-J] LF 10 $l ($0A) * 42 $2A J 74 $4A j 106 $6A
[ctrl-K] VT 11 $0B + 43 $2B K 75 $4B k 107 $6B
[ctrl-L] FF 12 $0C , 44 $2C L 76 $4C l 108 $6C
[ctrl-M] CR 13 $r ($0D) - 45 $2D m 77 $4D m 109 $6D
[ctrl-N] SO 14 $0E . 46 $2E N 78 $4E n 110 $6E
[ctrl-O] SI 15 $0F / 47 $2F O 79 $4F o 111 $6F
[ctrl-P] DLE 16 $10 0 48 $30 P 80 $50 P 112 $70
[ctrl-Q] DC1 17 $11 1 49 $31 Q 81 $51 q 113 $71
[ctrl-R] DC2 18 $12 2 50 $32 R 82 $52 r 114 $72
[ctrl-S] DC3 19 $13 3 51 $33 S 83 $53 s 115 $73
[ctrl-T] DC4 20 $14 4 52 $34 T 84 $54 t 116 $74
[ctrl-U] NAK 21 $15 5 53 $35 U 85 $55 u 117 $75
[ctrl-V] SYN 22 $16 6 54 $36 V 86 $56 v 118 $76
[ctrl-W] ETB 23 $17 7 55 $37 W 87 $57 w 119 $77
[ctrl-X] CAN 24 $18 8 56 $38 X 88 $58 X 120 $78
[ctrl-Y] EM 25 $19 9 57 $39 Y 89 $59 y 121 $79
[ctrl-Z] SUB 26 $1A : 58 $3A Z 90 $5A z 122 $7A
ctrl-[ ESC 27 $1B ; 59 $3B [ 91 $5B { 123 $7B
[ctrl-\] FS 28 $1C < 60 $3C \ 92 $5C | 124 $7C
ctrl-] GS 29 $1D = 61 $3D ] 93 $5D } 125 $7D
[ctrl-^] RS 30 $1E > 62 $3E ^ 94 $5E ~ 126 $7E
[ctrl-_] US 31 $1F ? 63 $3F _ 95 $5F DEL 127 $7F
Servicio de asistencia Rockwell Automation ofrece informacin tcnica en Internet para
proporcionarle asistencia a la hora de utilizar sus productos. En
tcnica de http://support.rockwellautomation.com, puede encontrar manuales tcnicos,
Rockwell Automation una base de conocimientos con respuestas a preguntas frecuentes, notas
tcnicas y de aplicacin, ejemplos de cdigo y vnculos a Service Packs de
software, as como un vnculo llamado MySupport que se puede personalizar
para sacar el mximo provecho de estas herramientas.
En los +1.440.646.3223
Estados Unidos Lunes a viernes, de 8:00 am a 5:00 pm, hora oficial del Este de EE.UU.
Fuera de Pngase en contacto con el representante local de
Estados Unidos Rockwell Automation para cualquier consulta relacionada con
asistencia tcnica.