Está en la página 1de 701

Instrucciones generales de los

controladores Logix5000

Manual de referencia
Nmeros de catlogo 1756-L1x,
1756-L5x, 1756-L6x, 1768-L4x, 1769L30, 1769-L31, 1769-L32C, 1769-L32E,
1769-L35CR, 1769-L35E, 1789-L60,
1794-L34, 20D

Informacin importante para el usuario


Los equipos de estado slido tienen caractersticas de funcionamiento distintas de las de los equipos electromecnicos.
El documento Safety Guidelines for the Application, Installation and Maintenance of Solid State Controls
(publicacin SGI-1.1 disponible en la oficina de ventas local del Rockwell Automation o en lnea en
http://literature.rockwellautomation.com) describe algunas diferencias importantes entre los equipos de estado slido y
los dispositivos electromecnicos de lgica cableada. Debido a esta diferencia y tambin a la gran variedad de usos de los
equipos de estado slido, toda persona encargada de la aplicacin de estos equipos debe asegurarse de la idoneidad de
cada una de las aplicaciones concebidas con estos equipos.
En ningn caso Rockwell Automation, Inc. ser responsable ni asumir ninguna obligacin por daos indirectos o
consecuentes que resulten del uso o de la aplicacin de estos equipos.
Los ejemplos y diagramas presentados en este manual se incluyen nicamente con fines ilustrativos. Debido a las
numerosas variables y requisitos asociados con cualquier instalacin en particular, Rockwell Automation, Inc. no puede
asumir responsabilidad u obligacin alguna por el uso de estos equipos basado en ejemplos y diagramas.
Rockwell Automation, Inc. no asume ninguna obligacin de patente con respecto al uso de la informacin, los circuitos,
los equipos o el software descritos en este manual.
Se prohbe la reproduccin total o parcial del contenido de este manual sin la autorizacin escrita de
Rockwell Automation, Inc.
Este manual contiene notas de seguridad en cada circunstancia en que se estimen necesarias.
ADVERTENCIA

IMPORTANTE
ATENCIN

PELIGRO DE CHOQUE

PELIGRO DE QUEMADURA

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

Identifica informacin importante para la correcta aplicacin y comprensin del producto.


Identifica informacin sobre prcticas o circunstancias que pueden provocar lesiones personales
o la muerte, daos materiales o prdidas econmicas. Los mensajes de Atencin le ayudan a
identificar y evitar un peligro, y a reconocer las consecuencias.

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.

Puede haber etiquetas en el exterior o en el interior del equipo (por ejemplo, en un variador o un
motor) para advertir sobre superficies que podran estar a temperaturas peligrosas.

Allen-Bradley, Rockwell Automation y TechConnect son marcas comerciales de Rockwell Automation, Inc.
Las marcas comerciales no pertenecientes a Rockwell Automation son propiedad de sus respectivas empresas.

ndice
Prefacio
Instrucciones generales de
controladores Logix5000

Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A quin est dirigido este manual . . . . . . . . . . . . . . . . .
Propsito de este manual . . . . . . . . . . . . . . . . . . . . . . .
Informacin comn para todas las instrucciones. . . . . . .
Convenciones y trminos relacionados. . . . . . . . . . . . . .
Establecer y borrar . . . . . . . . . . . . . . . . . . . . . . . . . .
Condicin de rengln de lgica de escalera de rels .
Estados del bloque de funciones . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

23
23
24
25
25
25
26
27

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

3Publicacin 1756-RM003K-ES-P Julio 2008

Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Alarma digital (ALMD). . . . . . . . . . . . . . . . . . . . . . . . . . .
Diagramas de estado cuando se requiere
confirmacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Diagramas de estado cuando no se requiere
confirmacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Confirmacin de alarma ALMD requerida y enclavada .
Confirmacin de alarma ALMD requerida y no
enclavada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Confirmacin de alarma ALMD no requerida y
enclavada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Confirmacin de alarma ALMD no requerida y no
enclavada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Alarma Analgica (ALMA) . . . . . . . . . . . . . . . . . . . . . . . .
Diagramas de estado cuando se requiere
confirmacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Diagramas de estado cuando no se requiere
confirmacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Confirmacin de condicin de nivel ALMA requerida .
Confirmacin de condicin de nivel ALMA no
requerida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Confirmacin de velocidad de cambio ALMA
requerida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Confirmacin de velocidad de cambio ALMA
no requerida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configure una instruccin de alarma . . . . . . . . . . . . . . . .
Introduzca el texto del mensaje de alarma . . . . . . . . . . . .
Variables de la cadena de mensaje . . . . . . . . . . . . . . .
Versiones de los mensajes de alarma en mltiples
idiomas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Monitoreo del estado de alarma. . . . . . . . . . . . . . . . . . . .
Almacenamiento de alarmas en el bfer. . . . . . . . . . . . . .
Acceda programticamente a informacin de alarmas . . . .
Suprima o inhabilite alarmas . . . . . . . . . . . . . . . . . . . . . .
Ejecucin de alarma basada en el controlador . . . . . . . . .
Uso de la memoria del controlador. . . . . . . . . . . . . . .
Tiempo de escn . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . 29
. . 30
. . 36
. . 37
. . 38
. . 39
. . 39
. . 40
. . 42
. . 54
. . 55
. . 57
. . 58
. . 59
.
.
.
.

.
.
.
.

60
62
65
66

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

67
68
69
70
71
72
73
75

ndice

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

Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Examinar si est cerrado (XIC). . . . . . . . . . . . . . . . . . .
Examinar si est abierto (XIO) . . . . . . . . . . . . . . . . . . .
Activacin de salida (OTE) . . . . . . . . . . . . . . . . . . . . .
Enclavamiento de salida (OTL) . . . . . . . . . . . . . . . . . .
Desenclavamiento de salida (OTU) . . . . . . . . . . . . . . .
Un impulso (ONS) . . . . . . . . . . . . . . . . . . . . . . . . . . .
Un impulso en flanco ascendente (OSR) . . . . . . . . . . .
Un impulso en flanco descendente (OSF) . . . . . . . . . .
Un impulso en flanco ascendente con entrada (OSRI) .
Un impulso en flanco descendente con entrada (OSFI).

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

77
78
80
82
84
86
88
91
94
96
99

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

Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Temporizador de retardo a la conexin (TON). . . . . .
Temporizador de retardo a la desconexin (TOF) . . .
Temporizador retentivo activado (RTO) . . . . . . . . . . .
Temporizador de retardo a la conexin con
restablecimiento (TONR) . . . . . . . . . . . . . . . . . . . . . .
Temporizador de retardo a la desconexin con
restablecimiento (TOFR) . . . . . . . . . . . . . . . . . . . . . .
Temporizador retentivo activado con restablecimiento
(RTOR). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Conteo progresivo (CTU) . . . . . . . . . . . . . . . . . . . . .
Conteo regresivo (CTD) . . . . . . . . . . . . . . . . . . . . . .
Conteo progresivo/regresivo (CTUD) . . . . . . . . . . . . .
Restablecer (RES) . . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.

103
104
108
112

. . . . 116
. . . . 120
.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

124
128
132
136
141

Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mensaje (MSG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cdigos de error MSG . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cdigos de error . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cdigos de error extendidos . . . . . . . . . . . . . . . . . . .
Cdigos de error PLC y SLC (.ERR) . . . . . . . . . . . . . . .
Cdigos de error de transferencia en bloques . . . . . . .
Especifique los detalles de configuracin . . . . . . . . . . . . .
Especifique mensajes de lectura y escritura de la tabla
de datos CIP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Reconfigure un mdulo de E/S. . . . . . . . . . . . . . . . . .
Especifique mensajes genricos CIP . . . . . . . . . . . . . .
Especifique mensajes PLC-5 . . . . . . . . . . . . . . . . . . . .
Especifique mensajes SLC. . . . . . . . . . . . . . . . . . . . . .
Especifique mensajes de transferencia en bloques . . . .
Especifique mensajes PLC-3 . . . . . . . . . . . . . . . . . . . .
Especifique mensajes PLC-2 . . . . . . . . . . . . . . . . . . . .
Ejemplos de configuracin MSG . . . . . . . . . . . . . . . . . . .
Especifique los detalles de comunicacin. . . . . . . . . . . . .

.
.
.
.
.
.
.
.

143
144
152
152
154
156
158
159

.
.
.
.
.
.
.
.
.
.

160
161
162
163
165
165
166
167
168
169

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

Publicacin 1756-RM003K-ES-P Julio 2008

ndice

Especifique una ruta . . . . . . . . . . . . . . . . . . . . . . .


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

. . . 169
. . . 172
. . . 172
. . . 173
. . . 175
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

176
179
180
181
183
184
187
188
190
191
192
193
193
195
197
198
198

. . . 200
. . . 201

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

Publicacin 1756-RM003K-ES-P Julio 2008

Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comparar (CMP) . . . . . . . . . . . . . . . . . . . . . . . . . .
Expresiones CMP . . . . . . . . . . . . . . . . . . . . . . .
Operadores vlidos . . . . . . . . . . . . . . . . . . . . .
Expresiones de formato . . . . . . . . . . . . . . . . . .
Determine el orden de operacin . . . . . . . . . . .
Use cadenas en una expresin . . . . . . . . . . . . .
Igual a (EQU) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mayor o igual que (GEQ) . . . . . . . . . . . . . . . . . . .
Mayor que (GRT) . . . . . . . . . . . . . . . . . . . . . . . . .
Menor o igual que (LEQ). . . . . . . . . . . . . . . . . . . .
Menor que (LES) . . . . . . . . . . . . . . . . . . . . . . . . . .
Lmite (LIM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mscara igual que (MEQ) . . . . . . . . . . . . . . . . . . .
Introduccin de un valor de mscara inmediato
Diferente de (NEQ) . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

205
206
208
208
209
209
210
211
215
219
223
227
231
237
238
242

ndice

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

Introduccin . . . . . . . . . . . . . . . . . . .
Calcular (CPT) . . . . . . . . . . . . . . . . .
Operadores vlidos . . . . . . . . . . .
Expresiones de formato . . . . . . . .
Determine el orden de operacin .
Sumar (ADD) . . . . . . . . . . . . . . . . . .
Restar (SUB) . . . . . . . . . . . . . . . . . . .
Multiplicar (MUL) . . . . . . . . . . . . . . .
Dividir (DIV) . . . . . . . . . . . . . . . . . .
Mdulo (MOD) . . . . . . . . . . . . . . . . .
Raz cuadrada (SQR) . . . . . . . . . . . . .
Cambiar signo (NEG) . . . . . . . . . . . .
Valor absoluto (ABS). . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

247
248
250
250
251
252
255
258
261
266
270
274
277

Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mover (MOV) . . . . . . . . . . . . . . . . . . . . . . . . . .
Mover con mscara (MVM) . . . . . . . . . . . . . . . .
Introduzca un valor de mscara inmediato . .
Movimiento enmascarado con receptor (MVMT).
Distribuir campo de bits (BTD) . . . . . . . . . . . . .
Distribuir campo de bits con receptor (BTDT) . .
Borrar (CLR) . . . . . . . . . . . . . . . . . . . . . . . . . . .
Intercambiar byte (SWPB) . . . . . . . . . . . . . . . . .
Y a nivel de bits (AND) . . . . . . . . . . . . . . . . . . .
O a nivel de bits (OR) . . . . . . . . . . . . . . . . . . . .
O exclusivo a nivel de bits (XOR) . . . . . . . . . . .
NO a nivel de bits (NOT) . . . . . . . . . . . . . . . . .
Y booleano (BAND) . . . . . . . . . . . . . . . . . . . . .
O booleano (BOR) . . . . . . . . . . . . . . . . . . . . . .
O exclusivo booleano (BXOR). . . . . . . . . . . . . .
NO booleano (BNOT) . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..
..

281
283
285
286
288
292
295
298
300
304
307
310
314
317
320
323
326

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

329
330
330
331
333
335
344
345
345
346
347
352
353
353

Captulo 7
Instrucciones de movimiento/
lgicas
(MOV, MVM, BTD, MVMT, BTDT,
CLR, SWPB, AND, OR, XOR, NOT,
BAND, BOR, BXOR, BNOT)

Captulo 8
Instrucciones de matriz
(archivo)/miscelneas
(FAL, FSC, COP, CPS, FLL, AVE,
SRT, STD, SIZE)

Introduccin . . . . . . . . . . . . . . . . . . . . . . . .
Seleccin del modo de operacin . . . . . . . .
Modo Todos . . . . . . . . . . . . . . . . . . . . .
Modo numrico . . . . . . . . . . . . . . . . . . .
Modo incremental . . . . . . . . . . . . . . . . .
Aritmtica y lgica de archivo (FAL) . . . . . .
Expresiones FAL . . . . . . . . . . . . . . . . . .
Operadores vlidos . . . . . . . . . . . . . . . .
Expresiones de formato . . . . . . . . . . . . .
Determine el orden de operacin . . . . . .
Bsqueda y comparacin de archivos (FSC) .
Expresiones FSC . . . . . . . . . . . . . . . . . .
Operadores vlidos . . . . . . . . . . . . . . . .
Expresiones de formato . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

Publicacin 1756-RM003K-ES-P Julio 2008

ndice

Determine el orden de operacin . . . . . . . . . . . .


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

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

354
355
356
362
366
371
376
381

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

Introduccin . . . . . . . . . . . . . . . . . . . . . . . .
Desplazamiento de bits a la izquierda (BSL) .
Desplazamiento de bits a la derecha (BSR). .
Carga FIFO (FFL) . . . . . . . . . . . . . . . . . . . .
Descarga FIFO (FFU) . . . . . . . . . . . . . . . . .
Carga LIFO (LFL). . . . . . . . . . . . . . . . . . . . .
Descarga LIFO (LFU). . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

385
386
390
394
400
406
412

Introduccin . . . . . . . . . . . . . . . . . . . . . . . . .
Secuenciador de entrada (SQI) . . . . . . . . . . .
Introduzca un valor de mscara inmediato
Use SQI sin SQO . . . . . . . . . . . . . . . . . . .
Secuenciador de salida (SQO) . . . . . . . . . . . .
Introduzca un valor de mscara inmediato
Uso de SQI con SQO . . . . . . . . . . . . . . . .
Restablecimiento de la posicin de SQO. .
Carga de secuenciador (SQL). . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

419
420
421
423
424
425
427
427
428

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

Captulo 11
Instrucciones de control de
programa
(JMP, LBL, JSR, RET, SBR, JXR,
TND, MCR, UID, UIE, AFI,
NOP, EOT, SFP, SFR, EVENT)

Publicacin 1756-RM003K-ES-P Julio 2008

Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Saltar a etiqueta (JMP)
Etiqueta (LBL). . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Salto a subrutina (JSR)
Subrutina (SBR) Retorno (RET) . . . . . . . . . . . . . . . .
Salto a rutina externa (JXR) . . . . . . . . . . . . . . . . . . .
Fin temporal (TND). . . . . . . . . . . . . . . . . . . . . . . . .
Restablecimiento de control maestro (MCR) . . . . . . .
Inhabilitacin de interrupcin de usuario (UID)
Habilitacin de interrupcin de usuario (UIE) . . . . .
Instruccin siempre falso (AFI) . . . . . . . . . . . . . . . .
Sin operacin (NOP) . . . . . . . . . . . . . . . . . . . . . . . .
Fin de transicin (EOT) . . . . . . . . . . . . . . . . . . . . . .
Pausa SFC (SFP) . . . . . . . . . . . . . . . . . . . . . . . . . . .
Restablecer SFC (SFR) . . . . . . . . . . . . . . . . . . . . . . .
Activar tarea de evento (EVENT) . . . . . . . . . . . . . . .
Determine programticamente si una instruccin
EVENT activ una tarea . . . . . . . . . . . . . . . . . . .

. . . . . 433
. . . . . 434
.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

436
447
450
452

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

454
456
457
458
460
462
464

. . . . . 464

ndice

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

Introduccin . . . . .
For (FOR) . . . . . . .
Interrumpir (BRK) .
Retornar (RET) . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

469
470
473
474

Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comparacin de bits de archivo (FBC). . . . . . . . .
Seleccin del modo de bsqueda . . . . . . . . . .
Deteccin de diagnstico (DDT) . . . . . . . . . . . . .
Seleccin del modo de bsqueda . . . . . . . . . .
Transicin de datos (DTR). . . . . . . . . . . . . . . . . .
Introduzca un valor de mscara inmediato . . .
Proporcional integral derivativo (PID) . . . . . . . . .
Configure una instruccin PID. . . . . . . . . . . . . . .
Especifique el ajuste. . . . . . . . . . . . . . . . . . . .
Especifique la configuracin. . . . . . . . . . . . . .
Especificacin de alarmas. . . . . . . . . . . . . . . .
Especificacin de escalado . . . . . . . . . . . . . . .
Uso de instrucciones PID . . . . . . . . . . . . . . . . . .
Bloqueo de accin integral y transferencia sin
perturbaciones de manual a automtico . . . . .
Temporizacin de la instruccin PID . . . . . . .
Reinicio sin problemas . . . . . . . . . . . . . . . . . .
Suavizado derivativo . . . . . . . . . . . . . . . . . . .
Establezca la banda muerta . . . . . . . . . . . . . .
Use lmite de salida . . . . . . . . . . . . . . . . . . . .
Ganancia anticipativa o polarizacin de salida
Lazos en cascada . . . . . . . . . . . . . . . . . . . . . .
Control de relacin . . . . . . . . . . . . . . . . . . . .
Teora de PID . . . . . . . . . . . . . . . . . . . . . . . . . . .
Proceso PID . . . . . . . . . . . . . . . . . . . . . . . . .
Proceso PID con lazos maestro/esclavo . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

477
478
480
486
488
494
495
497
502
503
504
504
505
505

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

507
508
512
513
514
514
515
515
516
517
517
517

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

519
520
523
526
529
532
535

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

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

Introduccin . . . . . . .
Seno (SIN) . . . . . . . .
Coseno (COS) . . . . . .
Tangente (TAN) . . . .
Arco seno (ASN) . . . .
Arco coseno (ACS) . .
Arco tangente (ATN) .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

Publicacin 1756-RM003K-ES-P Julio 2008

ndice

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

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

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

539
540
543
546

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

549
550
553
556
559
561

Introduccin . . . . . . . . . . . . . . . . . . . . .
Ejecucin de la instruccin. . . . . . . .
Cdigos de error ASCII . . . . . . . . . .
Tipos de datos de cadena. . . . . . . . .
Prueba ASCII para lnea de bfer (ABL) .
Caracteres ASCII en el bfer (ACB) . . . .
Borrar ASCII bfer (ACL) . . . . . . . . . . . .
Lneas de handshake ASCII (AHL) . . . . .
Lectura ASCII (ARD) . . . . . . . . . . . . . . .
Lectura ASCII de lnea (ARL) . . . . . . . . .
Escritura ASCII con anexo (AWA) . . . . .
Escritura ASCII (ASCII Write (AWT)) . . .

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

565
566
568
569
570
573
575
577
581
585
589
594

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

599
600
601
603
605
607
609

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

Introduccin . . . . . . . . . .
Grados (DEG). . . . . . . . .
Radianes (RAD) . . . . . . .
Convertir a BCD (TOD). .
Convertir a entero (FRD) .
Truncar (TRN). . . . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

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

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

Introduccin . . . . . . . . . . . . . . . . . . . .
Tipos de datos de cadena. . . . . . . .
Concatenacin de cadenas (CONCAT) .
Eliminacin de cadena (DELETE). . . . .
Encontrar cadena (FIND). . . . . . . . . . .
Insertar cadena (INSERT). . . . . . . . . . .
Cadena central (MID) . . . . . . . . . . . . .

.
.
.
.
.
.
.

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

Publicacin 1756-RM003K-ES-P Julio 2008

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

616
619
621
623
625

ndice

Captulo 20
Instrucciones de depuracin
(BPT, TPT)

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

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

627
627
628
631
631

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

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

635
635
635
637
639
639
640

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

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

641
641
642
644
645
647
647
648

Apndice A
Atributos comunes

Apndice B
Atributos de bloque de funciones

10

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

Publicacin 1756-RM003K-ES-P Julio 2008

ndice

Apndice C
Programacin de texto
estructurado

ndice

Publicacin 1756-RM003K-ES-P Julio 2008

Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sintaxis del texto estructurado . . . . . . . . . . . . . . . . . .
Asignaciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Especifique una asignacin no retentiva . . . . . . . .
Asigne un carcter ASCII a una cadena . . . . . . . . .
Expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Use funciones y operadores aritmticos . . . . . . . .
Use operadores relacionales . . . . . . . . . . . . . . . . .
Use operadores lgicos . . . . . . . . . . . . . . . . . . . .
Use operadores a nivel de bits . . . . . . . . . . . . . . .
Determine el orden de ejecucin . . . . . . . . . . . . .
Instrucciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Construcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Algunas palabras clave estn reservadas para uso
futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IF...THEN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CASE...OF. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
FORDO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WHILEDO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
REPEATUNTIL . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comentarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cdigos de caracteres ASCII . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

659
659
661
662
663
663
665
666
668
669
669
670
671

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

671
672
675
678
681
684
687
697

11

ndice

12

Publicacin 1756-RM003K-ES-P Julio 2008

Resumen de cambios

Introduccin

Esta versin del documento contiene informacin nueva y actualizada.


Para encontrar la informacin nueva y actualizada, busque barras de
cambio como las mostradas al lado de este prrafo.

Informacin actualizada

Este documento contiene los siguientes cambios.


Cambio

13Publicacin 1756-RM003K-ES-P Julio 2008

Pgina

Captulo 1 Se combinaron las instrucciones de alarma digital (ALMD)


y de alarma analgica (ALMA) en un captulo. Se aadi informacin
sobre configuracin, cadenas de mensajes y estados.

29

Captulo 4 Se aadieron nuevos atributos de objeto de controlador


GSV/SSV.

180

Captulo 20 Se aadieron instrucciones de depuracin (PPT, TPT).

627

13

Resumen de cambios

Notas:

14

Publicacin 1756-RM003K-ES-P Julio 2008

Ubicacin de instrucciones

Dnde se encuentran las instrucciones


Use esta tabla de ubicacin de instrucciones para encontrar
detalles de referencia acerca de las instrucciones Logix (las
instrucciones atenuadas en color gris estn disponibles en
otros manuales). Esta tabla de ubicacin de instrucciones
tambin indica los lenguajes de programacin disponibles
para las instrucciones.

Si la tabla de ubicacin indica:

La instruccin se encuentra en:

un nmero de pgina

este manual

control de movimiento

Logix5000 Controllers Motion Instruction Set Reference Manual,


publicacin 1756-RM007

PhaseManager

PhaseManager User Manual, publicacin LOGIX-UM001

control de procesos

Logix5000 Controllers Process Control and Drives Instruction Set


Reference Manual, publicacin 1756-RM006

15Publicacin 1756-RM003K-ES-P Julio 2008

15

Ubicacin de instrucciones

Instruccin:

Ubicacin:

Lenguajes:

Instruccin:

Ubicacin:

Lenguajes:

ABL

609

lgica de escalera
de rels
texto estructurado

AWA

589

lgica de escalera
de rels
texto estructurado

lgica de escalera
de rels
texto estructurado
bloque de funciones

AWT

594

lgica de escalera
de rels
texto estructurado

317

lgica de escalera
de rels
texto estructurado

Y booleano

texto estructurado
bloque de funciones

326

texto estructurado
bloque de funciones

320

texto estructurado
bloque de funciones

BPT
Puntos de interrupcin

627

lgica de escalera
de rels

BRK

473

lgica de escalera
de rels

386

lgica de escalera
de rels

390

lgica de escalera
de rels

295

lgica de escalera
de rels

295

texto estructurado
bloque de funciones

144

lgica de escalera
de rels
texto estructurado

144

lgica de escalera
de rels
texto estructurado

323

texto estructurado
bloque de funciones

Control coordinado

control de
procesos

texto estructurado
bloque de funciones

CLR

295

lgica de escalera
de rels
texto estructurado

206

lgica de escalera
de rels

601

lgica de escalera
de rels
texto estructurado

356

lgica de escalera
de rels
texto estructurado

523

lgica de escalera
de rels
texto estructurado
bloque de funciones

Prueba ASCII para lnea de


bfer

ABS

277

Valor absoluto

ACB

573

Caracteres ASCII en el bfer

ACL

575

Borrar ASCII bfer

ACS

532

Arco coseno

ADD

252

Suma

AFI

456

Instruccin siempre falso

AHL

577

Lneas de handshake ASCII

ALM

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

Escritura ASCII con anexo

Escritura ASCII

BAND
BNOT
NO booleano

BOR
O booleano

Interrupcin

BSL
Desplazamiento de bit a la
izquierda

lgica de escalera
de rels

BSR

lgica de escalera
de rels
texto estructurado

BTD

Desplazamiento de bit a la
derecha
Distribuir campo de bits

Alarma

control de
procesos

texto estructurado
bloque de funciones

BTDT

ALMA

42

lgica de escalera
de rels
texto estructurado
bloque de funciones

BTR

Alarma analgica

ALMD

30

Alarma digital

AND

304

Y a nivel de bits

ARD

581

Lectura ASCII

ARL

585

Lectura ASCII de lnea

ASN

529

Arco seno

ATN

535

Arco tangente

AVE
Promedio de archivo

16

366

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

Distribuir campo de bits con


receptor
Mensaje

BTW
Mensaje

BXOR
O exclusivo booleano

CC

Borrar

CMP
Comparar

CONCAT
Concatenar cadenas

COP
Copiar archivo

COS
Coseno

Publicacin 1756-RM003K-ES-P Julio 2008

Ubicacin de instrucciones

Instruccin:

Ubicacin:

Lenguajes:

Instruccin:

Ubicacin:

Lenguajes:

CPS

356

lgica de escalera
de rels
texto estructurado

FAL

335

lgica de escalera
de rels

lgica de escalera
de rels

FBC

478

lgica de escalera
de rels

394

lgica de escalera
de rels

400

lgica de escalera
de rels

Copiar archivo sncrono

CPT

248

Calcular

CTD

132

Conteo regresivo

CTU

128

Conteo progresivo

CTUD

136

Conteo progresivo/regresivo

D2SD
Dispositivo discreto de
2 estados

D3SD
Dispositivo discreto de
3 estados

DDT

control de
procesos

lgica de escalera
de rels
texto estructurado
bloque de funciones

Descarga FIFO

texto estructurado
bloque de funciones

Generador de funciones

control de
procesos

texto estructurado
bloque de funciones

FIND

605

lgica de escalera
de rels
texto estructurado

control de
procesos

362

lgica de escalera
de rels

470

lgica de escalera
de rels

559

lgica de escalera
de rels
bloque de funciones

347

lgica de escalera
de rels

215

lgica de escalera
de rels
texto estructurado
bloque de funciones

219

lgica de escalera
de rels
texto estructurado
bloque de funciones

176

lgica de escalera
de rels
texto estructurado

control de
procesos

texto estructurado
bloque de funciones

Filtro pasaaltos

control de
procesos

texto estructurado
bloque de funciones

ICON

641

bloque de funciones

IMC
Control de modelos interno

control de
procesos

texto estructurado
bloque de funciones

INSERT

607

lgica de escalera
de rels
texto estructurado

texto estructurado
bloque de funciones

486

FLL
FOR
FRD

DEG

553

lgica de escalera
de rels
texto estructurado
bloque de funciones

Grados

603

Eliminar cadena

DFF

FGEN

lgica de escalera
de rels
texto estructurado
bloque de funciones

Derivada

FFU

Llenar archivo

control de
procesos

DERV

FFL
Carga FIFO

Tiempo muerto

DELETE

Comparacin de bits de
archivo

Encontrar cadena

Deteccin de diagnstico

DEDT

lgica de escalera
de rels

Aritmtica y lgica de
archivo

control de
procesos

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

Instruccin FOR
Convertir en entero

FSC
Bsqueda y comparacin de
archivos

GEQ
Mayor o igual que

GRT
Mayor que

Circuito multivibrador D

control de
procesos

texto estructurado
bloque de funciones

DIV

261

lgica de escalera
de rels
texto estructurado
bloque de funciones

GSV

619

lgica de escalera
de rels
texto estructurado

Lmite superior/inferior

Dividir

DTOS
DINT en cadena

DTR

494

Transicin de datos

EOT

458

Fin de transicin

EQU

206

Igual a

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

Obtener valor del sistema

HLL
HPF

Conector de cable de entrada

Insertar cadena

texto estructurado
bloque de funciones

INTG

Seleccin mejorada

control de
procesos

Integrador

control de
procesos

texto estructurado
bloque de funciones

EVENT

464

lgica de escalera
de rels
texto estructurado

IOT

201

lgica de escalera
de rels
texto estructurado

ESEL

Activar tarea de evento

Publicacin 1756-RM003K-ES-P Julio 2008

Salida inmediata

17

Ubicacin de instrucciones

Instruccin:

Ubicacin:

Lenguajes:

Instruccin:

Ubicacin:

Lenguajes:

IREF

641

bloque de funciones

MAG

control de
movimiento

lgica de escalera
de rels
texto estructurado

control de
movimiento

lgica de escalera
de rels
texto estructurado

control de
movimiento

lgica de escalera
de rels
texto estructurado

control de
movimiento

lgica de escalera
de rels
texto estructurado

control de
movimiento

lgica de escalera
de rels
texto estructurado

control de
movimiento

lgica de escalera
de rels
texto estructurado

control de
movimiento

lgica de escalera
de rels
texto estructurado

control de
movimiento

lgica de escalera
de rels
texto estructurado

control de
movimiento

lgica de escalera
de rels
texto estructurado

Paro de eje de movimiento

control de
movimiento

lgica de escalera
de rels
texto estructurado

MASR

control de

lgica de escalera
de rels
texto estructurado

Referencia de entrada

JKFF
Circuito multivibrador JK

JMP

control de
procesos

436

lgica de escalera
de rels
texto estructurado
bloque de funciones

447

lgica de escalera
de rels

Impulso de eje de
movimiento

434

lgica de escalera
de rels

MAM

Saltar a subrutina externa

LBL
Etiqueta

LDL2

Aplicar diagnsticos de
conexin de movimiento

lgica de escalera
de rels

Saltar a subrutina

JXR

MAHD

434

Saltar a etiqueta

JSR

texto estructurado
bloque de funciones

Engranaje de eje de
movimiento

MAH
Posicin inicial de eje de
movimiento

MAJ

Mover eje de movimiento

control de
procesos

texto estructurado
bloque de funciones

MAOC

Avance-retardo

control de
procesos

texto estructurado
bloque de funciones

MAPC

LEQ

223

lgica de escalera
de rels
texto estructurado
bloque de funciones

MAR

Avance-retardo de segundo
orden

LDLG

Menor o igual que

LES

227

Menor que

LFL

406

Carga LIFO

LFU

412

Descarga LIFO

LIM

Filtro pasabajos

MAAT
Aplicar ajuste a eje de
movimiento

MAFR

MAS

lgica de escalera
de rels
texto estructurado
bloque de funciones

Leva de tiempo de eje de


movimiento

(1)

625

lgica de escalera
de rels
texto estructurado
bloque de funciones

MATC

MAVE
Promedio mvil

MAW
Observar brazo de
movimiento

lgica de escalera
de rels
texto estructurado

MAXC

control de
procesos

texto estructurado
bloque de funciones

MCCD

control de
movimiento

lgica de escalera
de rels
texto estructurado

MCCM

control de

Restablecimiento de fallo de movimiento


eje de movimiento

18

Desactivacin de eje de
movimiento

540

Minsculas

LPF

MASD

lgica de escalera
de rels
bloque de funciones

Logaritmo base 10

LOWER

lgica de escalera
de rels

Registro de brazo de
movimiento

231

Logaritmo natural

LOG

lgica de escalera
de rels

Leva de posicin de eje de


movimiento

Restablecer desactivacin de movimiento


eje de movimiento

Lmite

LN

lgica de escalera
de rels
texto estructurado
bloque de funciones

Leva de salida de brazo de


movimiento

lgica de escalera
de rels
texto estructurado

Captura mxima
Dinmica de cambio
coordinado de movimiento
Movimiento circular
coordinado de movimiento

MCCP
Perfil de leva de clculo de
movimiento

control de
movimiento

lgica de escalera
de rels
texto estructurado

control de
procesos

texto estructurado
bloque de funciones

control de
movimiento

lgica de escalera
de rels
texto estructurado

control de
procesos

texto estructurado
bloque de funciones

control de
movimiento

lgica de escalera
de rels
texto estructurado

control de
movimiento

lgica de escalera
de rels
texto estructurado

control de
movimiento

lgica de escalera
de rels
texto estructurado

Publicacin 1756-RM003K-ES-P Julio 2008

Ubicacin de instrucciones

Instruccin:

Ubicacin:

Lenguajes:

Instruccin:

Ubicacin:

Lenguajes:

MCD

control de
movimiento

lgica de escalera
de rels
texto estructurado

MGSR

control de
movimiento

lgica de escalera
de rels
texto estructurado

control de
movimiento

lgica de escalera
de rels
texto estructurado

609

lgica de escalera
de rels
texto estructurado

control de
procesos

texto estructurado
bloque de funciones

Dinmica de cambio de
movimiento

MCLM
Movimiento lineal de
coordenadas de movimiento

MCR

452

Restablecimiento de control
maestro

MCSD
Desactivacin de
coordenadas de movimiento

MCS
Paro de coordenadas de
movimiento

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

Variador directo de
movimiento desactivado

MDOC

Variador directo de
movimiento activado

MDR
Registro de desarme de
movimiento

MDW
Observar desarme de
movimiento

MEQ

Desactivacin de grupo de
movimiento

MGS

IMMC
Control multivariable
modular

control de
procesos

texto estructurado
bloque de funciones

control de
movimiento

lgica de escalera
de rels
texto estructurado

MOD

266

lgica de escalera
de rels
texto estructurado
bloque de funciones

control de
movimiento

lgica de escalera
de rels
texto estructurado

MOV

283

lgica de escalera
de rels

control de

lgica de escalera
de rels
texto estructurado

Mdulo

Mover

MRAT
control de
movimiento

control de
movimiento
control de

control de
movimiento
control de
movimiento
control de
movimiento

lgica de escalera
de rels
texto estructurado
lgica de escalera
de rels
texto estructurado
lgica de escalera
de rels
texto estructurado
lgica de escalera
de rels
texto estructurado
lgica de escalera
de rels
texto estructurado
lgica de escalera
de rels
texto estructurado
lgica de escalera
de rels
texto estructurado

Ajuste de eje de movimiento movimiento


de marcha

MRHD

control de

Diagnsticos de conexin de movimiento


movimiento de marcha

MRP

237

lgica de escalera
de rels
texto estructurado
bloque de funciones

lgica de escalera
de rels
texto estructurado

control de
movimiento

lgica de escalera
de rels
texto estructurado

144

lgica de escalera
de rels
texto estructurado

control de
movimiento

lgica de escalera
de rels
texto estructurado

control de
procesos

texto estructurado
bloque de funciones

258

lgica de escalera
de rels
texto estructurado
bloque de funciones

control de
procesos

bloque de funciones

Multiplexor

MVM

285

lgica de escalera
de rels

288

texto estructurado
bloque de funciones

274

lgica de escalera
de rels
texto estructurado
bloque de funciones

MSF
Servo de movimiento
desactivado

MSG
Mensaje

MSO
Servo de movimiento
activado

MSTD
Desviacin estndar de
movimiento

MUL

MUX

control de
movimiento

lgica de escalera
de rels
texto estructurado

control de

lgica de escalera
de rels
texto estructurado

MVMT

lgica de escalera
de rels
texto estructurado

NEG

control de

Posicin de estroboscopio de movimiento


grupo de movimiento

Publicacin 1756-RM003K-ES-P Julio 2008

lgica de escalera
de rels
texto estructurado

control de
movimiento

Posicin de redefinir
movimiento

Multiplicar

Paro de grupo de movimiento movimiento

MGSP

MINC

lgica de escalera
de rels
texto estructurado

Mscara igual que

MGSD

Cadena central

control de
movimiento

Leva de salida de
movimiento
desactivacin de movimiento

MDO

MID

Captura mnima

MCTP
control de
Posicin de transformada de movimiento
clculo de movimiento

MDF

lgica de escalera
de rels

Restablecimiento de
desactivacin de grupo de
movimiento

Mover con mscara


Mover con mscara con
receptor
Cambiar signo

19

Ubicacin de instrucciones

Instruccin:

Ubicacin:

Lenguajes:

Instruccin:

Ubicacin:

Lenguajes:

NEQ

242

lgica de escalera
de rels
texto estructurado
bloque de funciones

PFL

PhaseManager

lgica de escalera
de rels
texto estructurado

457

lgica de escalera
de rels

PID mejorado

control de
procesos

texto estructurado
bloque de funciones

314

lgica de escalera
de rels
texto estructurado
bloque de funciones

PID

497

lgica de escalera
de rels
texto estructurado

texto estructurado
bloque de funciones

Proporcional + Integral

control de
procesos

texto estructurado
bloque de funciones

Filtro de muesca

control de
procesos

OCON

641

bloque de funciones

Multiplicador de impulsos

control de
procesos

texto estructurado
bloque de funciones

88

lgica de escalera
de rels

Proporcional de posicin

control de
procesos

texto estructurado
bloque de funciones

POVR

PhaseManager

307

lgica de escalera
de rels
texto estructurado
bloque de funciones

Comando de anulacin de
fase de equipo

lgica de escalera
de rels
texto estructurado

PhaseManager

lgica de escalera
de rels
texto estructurado

PhaseManager

lgica de escalera
de rels
texto estructurado

PhaseManager

lgica de escalera
de rels
texto estructurado

PhaseManager

lgica de escalera
de rels
texto estructurado

553

lgica de escalera
de rels
texto estructurado
bloque de funciones

control de

texto estructurado
bloque de funciones

Diferente de

NOP
Sin operacin

NOT
NO a nivel de bits

NTCH

Conector de cable de salida

ONS

O a nivel de bits

OREF

641

bloque de funciones

99

texto estructurado
bloque de funciones

94

lgica de escalera
de rels

Referencia de salida

OSFI
Un impulso en flanco
descendente con entrada

OSF
Un impulso en flanco
descendente

OSRI

91

texto estructurado
bloque de funciones

91

lgica de escalera
de rels

82

lgica de escalera
de rels

84

lgica de escalera
de rels

86

lgica de escalera
de rels

PhaseManager

lgica de escalera
de rels
texto estructurado

Activacin de salida

OTL
Enclavamiento de salida

OTU
Desenclavamiento de salida

PATT
Conectar a fase de equipo

PCLF

PhaseManager

Fallo de borrado de fase de


equipo

PCMD

Desconectar de fase de
equipo

20

lgica de escalera
de rels
texto estructurado

PhaseManager

lgica de escalera
de rels
texto estructurado

PhaseManager

lgica de escalera
de rels
texto estructurado

Comando de fase de equipo

PDET

PI
PMUL

PPD
Fase de equipo en pausa

PRNP
Parmetros de nueva fase de
equipo

PSC
Estado de fase completo

Solicitud externa de fase de


equipo

RAD

Un impulso en flanco
ascendente

OTE

Proporcional integral
derivativo

PXRQ

Un impulso en flanco
ascendente con entrada

OSR

PIDE

POSP

Un impulso

OR

Fallo de fase de equipo

Radianes

RESD

Restablecimiento dominante procesos

RES

141

lgica de escalera
de rels

436 y 474

lgica de escalera
de rels
texto estructurado
bloque de funciones

control de
procesos

texto estructurado
bloque de funciones

Rampa y estabilizacin

control de
procesos

texto estructurado
bloque de funciones

RTO

112

lgica de escalera
de rels

124

texto estructurado
bloque de funciones

Restablecer

RET
Retorno

RLIM
Limitador de rgimen

RMPS

Temporizador retentivo
activado

RTOR
Temporizador retentivo
activado con
restablecimiento

Publicacin 1756-RM003K-ES-P Julio 2008

Ubicacin de instrucciones

Instruccin:

Ubicacin:

Lenguajes:

Instruccin:

Ubicacin:

Lenguajes:

RTOS

621

lgica de escalera
de rels
texto estructurado

SSV

176

lgica de escalera
de rels
texto estructurado

lgica de escalera
de rels
texto estructurado
bloque de funciones

STD

376

lgica de escalera
de rels

614

lgica de escalera
de rels
texto estructurado

616

lgica de escalera
de rels
texto estructurado

255

lgica de escalera
de rels
texto estructurado
bloque de funciones

300

lgica de escalera
de rels
texto estructurado

526

lgica de escalera
de rels
texto estructurado
bloque de funciones

450

lgica de escalera
de rels

556

lgica de escalera
de rels
bloque de funciones

120

texto estructurado
bloque de funciones

108

lgica de escalera
de rels

116

texto estructurado
bloque de funciones

104

lgica de escalera
de rels

control de
procesos

texto estructurado
bloque de funciones

TPT
Puntos de rastreo

631

lgica de escalera
de rels

561

lgica de escalera
de rels
bloque de funciones

561

texto estructurado

454

lgica de escalera
de rels
texto estructurado

REAL en cadena

SBR

436

Subrutina

SCL

Establecer valor del sistema

Desviacin estndar de
archivo

STOD

control de
procesos

texto estructurado
bloque de funciones

control de
procesos

texto estructurado
bloque de funciones

control de
procesos

bloque de funciones

Establecer dominante

control de
procesos

texto estructurado
bloque de funciones

SFP

460

lgica de escalera
de rels
texto estructurado

462

lgica de escalera
de rels
texto estructurado

520

lgica de escalera
de rels
texto estructurado
bloque de funciones

TND

lgica de escalera
de rels
texto estructurado

Convertir en BCD

control de
procesos

texto estructurado
bloque de funciones

Temporizador de retardo a la
desconexin con
restablecimiento

control de
procesos

texto estructurado
bloque de funciones

TOF

420

lgica de escalera
de rels

TONR

428

lgica de escalera
de rels

Temporizador de retardo a la
conexin con
restablecimiento

424

lgica de escalera
de rels

TON

lgica de escalera
de rels
bloque de funciones

TOT

Escalar

SCRV
Curva en S

SEL
Seleccionar

SETD

Pausa SFC

SFR
Restablecer SFC

SIN
Seno

SIZE

381

Tamao en elementos

SNEG
Cambiar signo seleccionado

SOC
Controlador de segundo
orden

SQI
Secuenciador de entrada

SQL
Carga de secuenciador

SQO
Secuenciador de salida

SQR

270

Raz cuadrada

SQRT

Dividir rango de tiempo


proporcional

SSUM
Sumador seleccionado

Cadena en REAL

SUB

SWPB
Intercambiar byte

TAN
Tangente

Fin temporal

TOD

TOFR

Temporizador de retardo a la
desconexin

Temporizador de retardo a la
conexin
Totalizador

270

texto estructurado

371

lgica de escalera
de rels
texto estructurado

TRN

control de
procesos

texto estructurado
bloque de funciones

TRUNC

control de
procesos

texto estructurado
bloque de funciones

Clasificacin de archivo

SRTP

STOR

Restar

Raz cuadrada

SRT

Cadena en DINT

Publicacin 1756-RM003K-ES-P Julio 2008

Truncar

Truncar

UID
Inhabilitacin de interrupcin
de usuario

21

Ubicacin de instrucciones

Instruccin:

Ubicacin:

Lenguajes:

UIE

454

lgica de escalera
de rels
texto estructurado

control de
procesos

texto estructurado
bloque de funciones

623

lgica de escalera
de rels
texto estructurado

78

lgica de escalera
de rels

80

lgica de escalera
de rels

310

lgica de escalera
de rels
texto estructurado
bloque de funciones

546

lgica de escalera
de rels
texto estructurado
bloque de funciones

Habilitacin de interrupcin
de usuario

UPDN
Acumulador progresivo/
regresivo

UPPER
Maysculas

XIC
Examinar si est cerrado

XIO
Examinar si est abierto

XOR
O exclusivo a nivel de bits

XPY
X a la potencia de Y
(1)

22

Publicacin 1756-RM003K-ES-P Julio 2008

Prefacio

Instrucciones generales de controladores


Logix5000
Introduccin

Este manual es uno de varios manuales de instrucciones del sistema


Logix5000.

Tarea/meta

Documentos

Programar el controlador para aplicaciones


secuenciales

Manual de referencia de instrucciones generales de controladores Logix5000,


publicacin 1756-RM003

Usted se encuentra aqu

Programar el controlador para aplicaciones


de procesos o de variadores

Logix5000 Controllers Process Control and Drives Instructions Reference Manual,


publicacin 1756-RM006

Programar el controlador para aplicaciones


de control de movimiento

Logix5000 Controllers Motion Instruction Set Reference Manual, publicacin


1756-RM007

Programar el controlador para usar fases de


equipo

PhaseManager User Manual, publicacin LOGIX-UM001

Importar un archivo de texto o tags en un


proyecto

Logix5000 Controllers Import/Export Reference Manual, publicacin 1756-RM084

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


manual

Este documento proporciona al programador los detalles acerca de


cada una de las instrucciones disponibles para un controlador basado
en Logix. El usuario ya debe estar familiarizado con la manera en que
el controlador basado en Logix almacena y procesa datos.
Los programadores sin experiencia deben leer todos los detalles de
una instruccin antes de usarla. Los programadores con experiencia
pueden consultar la informacin sobre las instrucciones para verificar
detalles.

23Publicacin 1756-RM003K-ES-P Julio 2008

23

Prefacio

Instrucciones generales de controladores Logix5000

Propsito de este manual

Este manual proporciona una descripcin de cada instruccin en este


formato:

Esta seccin

Proporciona este tipo de informacin

Nombre de la instruccin

identifica la instruccin
define si la instruccin es una instruccin de entrada o de salida

Operandos

lista de todos los operandos de la instruccin


si est disponible en lgica de escalera de rels, describe los operandos
si est disponible en texto estructurado, describe los operandos
si est disponible en bloque de funciones, describe los operandos
Los pines mostrados en un bloque de funciones predeterminado son slo los pines
predeterminados. La tabla de operandos indica todos los pines posibles para un
bloque de funciones.

Estructura de la instruccin indica los bits y valores de estado de control de la instruccin, si los hay
Descripcin

describes el uso de la instruccin


define cualquier diferencia cuando la instruccin est habilitada e inhabilitada,
si corresponde

Indicadores de estado
aritmtico

define si la instruccin afecta o no los indicadores de estado aritmtico


consulte el apndice Atributos comunes

Condiciones de fallo

define si la instruccin genera o no genera fallos menores o mayores


de ser as, define el tipo de fallo y el cdigo

Ejecucin

especifica cmo funciona la instruccin

Ejemplo

proporciona por lo menos un ejemplo de programacin en cada lenguaje de programacin


disponible
incluye una descripcin que explica cada ejemplo

Los siguientes iconos ayudan a identificar informacin especfica del


lenguaje:
Este icono

Indica este lenguaje de programacin


lgica de escalera de rels

texto estructurado

bloque de funciones

24

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones generales de controladores Logix5000

Informacin comn para


todas las instrucciones

Prefacio

El conjunto de instrucciones Logix5000 tiene algunos atributos


comunes:
Para esta informacin

Vea este apndice

atributos comunes

El apndice Atributos comunes define:


indicadores de estado aritmtico
tipos de datos
palabras clave

atributos de bloques de
funciones

El apndice Atributos de bloque de funciones:


control del programa y del operador
modos de temporizacin

Convenciones y trminos
relacionados

Establecer y borrar
Este manual usa las funciones de establecer y borrar para definir el
estado de los bits (booleanos) y los valores (no booleanos):
Este trmino

Significa

establecer

el bit se establece en 1 (ON)


un valor se establece en cualquier nmero que no sea
cero

borrar

el bit se pone en 0 (desactivado)


todos los bits de un valor se ponen en 0

Si un operando o parmetro acepta ms de un tipo de datos, los tipos


de datos en negrita indican tipos de datos ptimos. Las instrucciones
se ejecutan ms rpidamente y requieren menos memoria si todos los
operandos de instruccin usan el mismo tipo de datos ptimos,
tpicamente DINT o REAL.

Publicacin 1756-RM003K-ES-P Julio 2008

25

Prefacio

Instrucciones generales de controladores Logix5000

Condicin de rengln de lgica de escalera de rels


El controlador evala las instrucciones de lgica de escalera segn la
condicin de rengln que precede a la instruccin (condicin de
entrada del rengln). Segn la condicin de entrada de rengln y la
instruccin, el controlador establece la condicin de rengln que
sigue la instruccin (condicin de salida de rengln), lo cual, a su vez,
afecta cualquier instruccin subsiguiente.

instruccin de entrada

condicin
de entrada
de rengln

instruccin de salida

condicin
de salida
de rengln

Si la condicin de entrada de rengln de una instruccin de entrada


es verdadera, el controlador evala la instruccin y establece la
condicin de rengln de entrada segn los resultados de la
instruccin. Si la instruccin se evala como verdadera, la condicin
de salida del rengln es verdadera; si la instruccin se evala como
falsa, la condicin de salida del rengln es falsa.
El controlador tambin preescanea las instrucciones. El preescn es un
escn especial de todas las rutinas en el controlador. El controlador
escanea todas las rutinas principales y subrutinas durante el preescn,
pero ignora saltos que podran omitir la ejecucin de las
instrucciones. El controlador ejecuta todos los lazos FOR y llamadas
de subrutina. Si una subrutina se llama ms de una vez, se ejecuta
cada vez que se llama. El controlador usa el preescn de las
instrucciones de lgica de escalera de rels para restablecer E/S no
retentivas y valores internos.
Durante el preescn, los valores de entrada no estn actualizados y no
se escriben las salidas. Las siguientes condiciones generan un
preescn:
Conmutar del modo de programacin al modo de marcha
Entrar automticamente al modo de marcha tras encender la
unidad.
Un preescn no se produce para un programa cuando:
El programa se prioriza mientras el controlador est en
ejecucin.
El programa se desprioriza cuando el controlador entra al modo
de marcha.

26

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones generales de controladores Logix5000

Prefacio

Estados del bloque de funciones


IMPORTANTE

Cuando se programa un bloque de funciones, es necesario restringir el rango de


unidades de ingeniera a +/-10+/-15 puesto que los clculos de punto flotante (coma
flotante) internos se realizan usando un punto flotante (coma flotante) de precisin
simple. Las unidades de ingeniera que no se estn dentro de este rango pueden
provocar una prdida de exactitud si los resultados se acercan a las limitaciones de
punto flotante (coma flotante) de precisin simple (+/-10+/-38).
El controlador evala las instrucciones de bloques de funciones segn
el estado de condiciones diferentes.

Posible condicin

Descripcin

preescn

El preescn para las rutinas de bloques de funciones es igual que para las rutinas de lgica de escalera de
rels. La nica diferencia radica en que el parmetro EnableIn para cada instruccin de bloque de funciones
se borra durante el preescn.

primer escn de instruccin El primer escn de instruccin se refiere a la primera vez que se ejecuta una instruccin despus del
preescn. El controlador usa el primer escn de instruccin para leer las entradas actuales y determinar el
estado apropiado en que estarn
primera ejecucin de
instruccin

La primera ejecucin de instruccin se refiere a la primera vez que la instruccin se ejecuta con una nueva
instancia de estructura de datos. El controlador usa la primera ejecucin de instruccin para generar
coeficientes y otros almacenamientos de datos que no cambian para un bloque de funciones despus de
una descarga inicial.

Cada instruccin de bloque de funciones incluye tambin los


parmetros EnableIn y EnableOut:
las instrucciones de bloques de funciones se ejecutan
normalmente cuando se establece EnableIn.
cuando EnableIn se borra, la instruccin de bloque de funciones
ejecuta la lgica de preescn, la lgica de post-escn o
simplemente omite la ejecucin del algoritmo normal.
EnableOut es similar a EnableIn; sin embargo, si la ejecucin del
bloque de funciones detecta una condicin de overflow,
EnableOut tambin se borra.
la ejecucin del bloque de funciones se reanuda desde donde se
detuvo cuando EnableIn cambi de borrado a establecido. Sin
embargo, hay algunas instrucciones de bloques de funciones
que especifican una funcionalidad especial, tal como la funcin
de reinicializacin, cuando EnableIn cambia de borrado a
establecido. Para las instrucciones de bloques de funciones con
parmetros basados en tiempo, cada vez que el modo de
temporizacin es sobremuestreo, la instruccin siempre se
reanuda donde se detuvo cuando EnableIn cambi de borrado a
establecido.
Si el parmetro EnableIn no est cableado, la instruccin siempre se
ejecuta como normal y EnableIn permanece establecido. Si usted
borra EnableIn, ste cambia para establecerse la prxima vez que se
ejecute la instruccin.
Publicacin 1756-RM003K-ES-P Julio 2008

27

Prefacio

Instrucciones generales de controladores Logix5000

Notas:

28

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

Instrucciones basadas en Logix para alarmas


y eventos FactoryTalk
(ALMD, ALMA)

Introduccin

Si desea
detectar alarmas basadas en condiciones
booleanas (verdadero/falso)

Estas instrucciones de alarma basadas en Logix estn disponibles en


lgica de escalera de rels, texto estructurado y diagrama de bloques
de funciones. Cuando se usan con las versiones 5.0 y posteriores del
software FactoryTalk View SE, estas instrucciones crean un sistema de
alarmas con su paquete de visualizacin. El controlador detecta
condiciones de alarma y publica eventos para los servidores de
alarmas y eventos de FactoryTalk View que propagan las alarmas a los
clientes Factory Talk View SE suscritos para recibir notificaciones.

Use esta instruccin


ALMD

Disponible en estos lenguajes


lgica de escalera de rels

Vea la pgina
30

texto estructurado
bloque de funciones
detectar alarmas en base al nivel o velocidad
de cambio de un valor

ALMA

lgica de escalera de rels

42

texto estructurado
bloque de funciones

29Publicacin 1756-RM003K-ES-P Julio 2008

29

Captulo 1

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

Alarma digital (ALMD)

La instruccin ALMD detecta alarmas basadas en condiciones


booleanas (verdadero/falso) Los parmetros de control de programa
(Prog) y de operador (Oper) proporcionan una interface para los
comandos de alarma.

Operandos:
Lgica de escalera de rels
En la lgica de escalera de rels, la entrada de condicin de alarma
(In) se obtiene a partir de la condicin de rengln.

Operando

Tipo

Formato

Descripcin

tag ALMD

ALARM_DIGITAL

Estructura

Estructura ALMD

In

BOOL

Tag
Inmediato

Texto estructurado solamente.


El valor se copia a In cuando se ejecuta la instruccin. El valor
de entrada de alarma es comparado para determinar si existe
una alarma.

ProgAck

BOOL

Tag
Inmediato

El valor se copia a ConfProg (ProgAck) cuando se ejecuta la


instruccin. En la transicin de borrado a establecido, confirma
la alarma (si se requiere confirmacin).

ProgReset

BOOL

Tag
Inmediato

El valor se copia a RestabProg (ProgReset) cuando se ejecuta


la instruccin. En la transicin de borrado a establecido, borra
la alarma (si se requiere).

ProgDisable

BOOL

Tag
Inmediato

El valor se copia a InhabProg (ProgDisable) cuando se ejecuta


la instruccin. Cuando se establece, inhabilita la alarma
(no anula los comandos de habilitacin).

ProgEnable

BOOL

Tag
Inmediato

El valor se copia a HabilitProg (ProgEnable) cuando se ejecuta


la instruccin. Cuando se establece, habilita la alarma
(tiene precedencia sobre los comandos de inhabilitacin).

MinDurationPRE

DINT

Inmediato

Lgica de escalera de rels solamente.


Especifica la duracin de la alarma antes de que sea reportada
(milisegundos).

MinDurationACC

DINT

Inmediato

Lgica de escalera de rels solamente.


Indica el nmero de milisegundos que han transcurrido desde
que se cumpli la condicin de la alarma.

Texto estructurado
ALMD(ALMD, In, ProgAck,
ProgReset, ProgDisable,
ProgEnable);

30

Los operandos son iguales a los de la instruccin ALMD de lgica


de escalera de rels, con algunas excepciones como se indic
anteriormente.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 1

Bloque de funciones
Operando

Tipo

Formato

Descripcin

tag ALMD

ALARM_DIGITAL

Estructura

Estructura ALMD

Estructura ALARM_DIGITAL
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Lgica de escalera de rels:


Corresponde al estado del rengln. No afecta el procesamiento.
Bloque de funciones:
Si se borra, la instruccin no se ejecuta y las salidas no se actualizan.
Si se establece, la instruccin se ejecuta.
La opcin predeterminada es establecido.
Texto estructurado:
Ningn efecto. La instruccin siempre se ejecuta.

In

BOOL

La entrada de seal digital para la instruccin.


La opcin predeterminada es borrado.
Lgica de escalera de rels:
Sigue la condicin del rengln. Se establece si la condicin del rengln es verdadera.
Se borra si la condicin del rengln es falsa.
Texto estructurado:
Copiado del operando de instruccin.

InFault

BOOL

Indicador de estado deficiente para la entrada. El usuario puede establecer InFault para
indicar que la seal de entrada tiene un error. Cuando se establece, la instruccin establece
InFaulted (Status.1). Cuando se borra, la instruccin borra InFaulted (Status.1). En cualquier
caso, la instruccin contina evaluando In en lo que respecta a las condiciones de alarma.
La opcin predeterminada es borrado (buen estado).

Condition

BOOL

Especifica cmo se activa la alarma. Cuando se establece la condicin, se activa la condicin


de alarma cuando In se establece. Cuando se borra la condicin, se activa la condicin de
alarma cuando In se borra.
La opcin predeterminada es establecido.

Publicacin 1756-RM003K-ES-P Julio 2008

31

Captulo 1

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

Parmetro de
entrada

Tipo de datos

Descripcin

AckRequired

BOOL

Especifica si se requiere confirmacin de alarma. Cuando se establece, requiere


confirmacin. Cuando se borra, no se requiere confirmacin y siempre se establece Acked.
La opcin predeterminada es establecido.

Latched

BOOL

Especifica si la alarma est enclavada. Las alarmas enclavadas permanecen InAlarm cuando
la condicin de alarma se hace falsa, hasta que se reciba un comando de restablecimiento
(Reset). Cuando se establece, se enclava la alarma. Cuando se borra, se desenclava la
alarma.
Una alarma enclavada slo puede restablecerse cuando la condicin de alarma es falsa.
La opcin predeterminada es borrado.

ProgAck

BOOL

Se establece mediante el programa de usuario para confirmar la alarma. Requiere que una
transicin cambie de borrado a establecido mientras la alarma no est confirmada.
La opcin predeterminada es borrado.
Lgica de escalera de rels:
Copiado del operando de instruccin.
Texto estructurado:
Copiado del operando de instruccin.

OperAck

BOOL

Se establece mediante la interface del operador para confirmar la alarma. Requiere que una
transicin cambie de borrado a establecido mientras la alarma no est confirmada.
La instruccin borra este parmetro.
La opcin predeterminada es borrado.

ProgReset

BOOL

Se establece mediante el programa de usuario para restablecer la alarma. Requiere que una
transicin cambie de borrado a establecido mientras la alarma est InAlarm y la condicin In
no est en alarma.
La opcin predeterminada es borrado.
Lgica de escalera de rels:
Copiado del operando de instruccin.
Texto estructurado:
Copiado del operando de instruccin.

OperReset

BOOL

Se establece mediante la interface del operador para restablecer la alarma. Requiere que
una transicin cambie de borrado a establecido mientras la alarma est InAlarm y la
condicin In no est en alarma. La instruccin de alarma borra este parmetro.
La opcin predeterminada es borrado.

ProgSuppress

BOOL

Se establece mediante el programa de usuario para suprimir la alarma.


La opcin predeterminada es borrado.

OperSuppress

BOOL

Se establece mediante la interface del operador para suprimir la alarma. La instruccin de


alarma borra este parmetro.
La opcin predeterminada es borrado.

32

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 1

Parmetro de
entrada

Tipo de datos

Descripcin

ProgUnsuppress

BOOL

Se establece mediante el programa de usuario para cancelar la supresin de la alarma. Tiene


precedencia sobre los comandos de supresin.
La opcin predeterminada es borrado.

OperUnsuppress

BOOL

Se establece mediante la interface del operador para cancelar la supresin de la alarma.


Tiene precedencia sobre los comandos de supresin. La instruccin de alarma borra este
parmetro.
La opcin predeterminada es borrado.

ProgDisable

BOOL

Se establece mediante el programa de usuario para inhabilitar la alarma.


La opcin predeterminada es borrado.
Lgica de escalera de rels:
Copiado del operando de instruccin.
Texto estructurado:
Copiado del operando de instruccin.

OperDisable

BOOL

Se establece mediante la interface del operador para inhabilitar la alarma. La instruccin de


alarma borra este parmetro.
La opcin predeterminada es borrado.

ProgEnable

BOOL

Se establece mediante el programa de usuario para habilitar la alarma. Tiene precedencia


sobre un comando de inhabilitacin.
La opcin predeterminada es borrado.
Lgica de escalera de rels:
Copiado del operando de instruccin.
Texto estructurado:
Copiado del operando de instruccin.

OperEnable

BOOL

Se establece mediante la interface del operador para habilitar la alarma. Tiene precedencia
sobre un comando de inhabilitacin. La instruccin de alarma borra este parmetro.
La opcin predeterminada es borrado.

AlarmCountReset

BOOL

Se establece mediante el programa de usuario para restablecer el conteo de alarmas. Una


transicin que cambia de borrado a establecido restablece el conteo de alarmas a cero.
La opcin predeterminada es borrado.

UseProgTime

BOOL

Especifica si se usa el reloj del controlador o el valor ProgTime para aplicar sello de hora a
eventos de cambio de estado. Cuando se establece, el valor de ProgTime proporciona el sello
de hora. Cuando se borra, el reloj del controlador proporciona el sello de hora.
La opcin predeterminada es borrado.

Publicacin 1756-RM003K-ES-P Julio 2008

33

Captulo 1

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

Parmetro de
entrada

Tipo de datos

Descripcin

ProgTime

LINT

Si UseProgTime se establece, este valor se usa para proporcionar el valor de sello de hora
para todos los eventos. Esto permite que la aplicacin aplique sellos de hora obtenidos del
origen de la alarma, tal como un mdulo de entrada de secuencia de eventos.

Severity

DINT

Severidad de la alarma. Esto no afecta el procesamiento de alarmas por parte del


controlador, pero puede usarse para clasificar y filtrar funciones en el subscriptor de alarmas.
Vlido = 1...1000 (1000 = ms severa; 1 = menos severa).
Valor predeterminado = 500.

MnDurationPRE

DINT

Preajuste de duracin mnima (milisegundos) para que la condicin de alarma permanezca


verdadera antes de que la alarma sea marcada como InAlarm y se enve notificacin de
alarma a los clientes. El controlador recolecta los datos de alarma tan pronto como se
detecta la condicin de alarma; por lo tanto, no se pierden datos durante la espera hasta
cumplir con la duracin mnima.
Vlido = 0...2,147,483,647.
Valor predeterminado = 0.

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

Habilitacin de salida.

InAlarm

BOOL

Estado activo de alarma. Se establece cuando la alarma est activa. Se borra cuando la
alarma no est activa (estado normal).

Acked

BOOL

Estado de alarma confirmada. Se establece cuando la alarma est confirmada. Se borra


cuando la alarma no est confirmada.
Acked siempre se establece cuando AckRequired se borra.

InAlarmUnack

BOOL

Combinacin de alarma activa y estado confirmado. Se establece cuando la alarma est


activa (InAlarm est establecido) y no confirmada (Acked est borrado). Se borra cuando la
alarma est normal (inactiva), confirmada, o ambas.

Suppressed

BOOL

Estado suprimido de la alarma. Se establece cuando la alarma est suprimida. Se borra


cuando la alarma no est suprimida.

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 la alarma Cuando este valor llega a
MnDuracinPRE, la alarma se activa (InAlarm est establecido) y se enva una notificacin a
los clientes.

AlarmCount

DINT

Nmero de veces que se activ la alarma (InAlarm est establecido). Si se llega al valor
mximo, el contador deja el valor en el mximo valor de conteo.

InAlarmTime

LINT

Sello de hora de la deteccin de alarma.

AckTime

LINT

Sello de hora de confirmacin de alarma. Si la alarma no requiere confirmacin, este sello de


hora es igual a la hora de la alarma.

RetToNormalTime

LINT

Sello de hora del retorno de la alarma al estado normal.

AlarmCountResetTime LINT

Sello de hora que indica cundo se restableci la alarma.

DeliveryER

Error de entrega del mensaje de notificacin de alarma. Se establece cuando hay un error de
entrega: es decir, ningn subscriptor de alarma estaba suscrito o por lo menos un suscriptor
no recibi el ltimo mensaje de estado de cambio de alarma. Se borra cuando la entrega es
exitosa o est en curso.

34

BOOL

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 1

Parmetro de salida Tipo de datos

Descripcin

DeliveryDN

BOOL

Entrega del mensaje de notificacin de alarma realizada. Se establece cuando la entrega es


exitosa: por lo menos un suscriptor estaba suscrito y todos los suscriptores recibieron
correctamente el ltimo mensaje de estado de cambio de alarma. Se borra cuando la entrega
no se realiz correctamente o est en curso.

DeliveryEN

BOOL

Estado de entrega del mensaje de notificacin de alarma. Se establece cuando la entrega


est en curso. Se borra cuando la entrega no est en curso.

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

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.


Si la severidad <1, la instruccin usa Severity = 1.
Si la severidad >1000, la instruccin usa Severity = 1000.

Descripcin La instruccin ALMD detecta alarmas con base en condiciones


booleanas (verdadero/falso)
La instruccin ALMD proporciona funcionalidad adicional cuando se
usa con el software RSLinx Enterprise y FactoryTalk View SE. Usted
puede mostrar alarmas en las pantallas Alarm Summary, Alarm
Banner, Alarm Status Explorer y Alarm Log Viewer del software
FactoryTalk View SE.

Publicacin 1756-RM003K-ES-P Julio 2008

35

Captulo 1

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

El software RSLinx Enterprise se encarga de las alarmas en el


controlador. Use los parmetros de salida para monitorear la
instruccin a fin de ver el estado de suscripcin de alarmas y para
mostrar cambios de estado de alarmas. Si se pierde una conexin con
el software RSLinx Enterprise, el controlador puede almacenar en el
bfer datos de alarmas brevemente hasta que se restaure la conexin.

Diagramas de estado cuando se requiere confirmacin


Enclavado
= Falso
Latched
= False
InAlarm = Falso

En== Condition,
Condicin,MinDurationACC
MinDurationACC >=
>= Min
DurationPRE
In
MinDurationPRE

InAlarm = False
Acked
= Verdadero
Acked = True

Ack11
Ack

InAlarm = Falso

IInn

InAlarm = False
Acked==False
Falso
Acked

n n
dici itio
C=onCond
=
!
In In !
EE
nPPRR
atio
r
u
D
Min
C >=
C
C
C
A
A
n
ttioion In
I!n= !C
uurraa
=oCnod
ininDD
M
M
,
,
nitdioicn
nn
o

i
i
t
c
i
in
d
n
Co
== C

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

1
Ack
Ack1

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

Enclavado
= Verdadero
Latched
= True

InAlarm = Falso

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

InAlarm = False
Acked
= Verdadero
Acked
= True
2
2
!= Condicin,
Reset
In != In
Condition,
Reset

InIn!
=!=CC
onodnd
itiioci
n,nR,
eRsees 2 2
tet

1
Ack
Ack1

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

La
1 alarma puede confirmarse de diferentes maneras: ProgAck, OperAck, clientes
Alarm can be acked by several different ways: ProgAck, OperAck, clients (RSLogix 5000
(software
RSLogix
5000,
software RSView).
software,
RSView
software).
2
La
2 alarma puede restablecerse de diferentes maneras: ProgReset, OperReset, clientes
Alarm can be reset by several different ways: ProgReset, OperReset, clients (RSLogix 5000
(software
RSLogix
5000,
software RSView).
software,
RSView
software).

36

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 1

Diagramas de estado cuando no se requiere confirmacin


Enclavado
Latched
= False=

Falso
In = Condicin, MinDurationACC >=
In = Condition, MinDurationACC
>= MinDurationPRE
MinDurationPRE

InAlarm
= Falso
InAlarm = False

InAlarm
= Verdadero
InAlarm
= True

Acked= =True
Acked
Verdadero

InAlarm
= Verdadero
InAlarm
= True

Acked= =True
Acked
Verdadero

In In
!=!=Condicin
Condition

Enclavado
Latched
= True=

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

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

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


1

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

(software
RSLogixsoftware)
5000, software RSView).
software, RSView

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

Accin de lgica de escalera de rels

preescn

La condicin de salida de rengln se establece como falsa.


InAlarma se borra y Acked se establece.
Todas las peticiones del operador, sellos de hora e
indicadores de entrega se borran.

condicin de entrada de
rengln es falsa

La condicin de salida de rengln se establece como falsa.


EnableIn y EnableOut se borran.
El Parmetro In se borra y la instruccin realiza una
evaluacin para determinar el estado de la alarma.

condicin de entrada de
rengln es verdadera

La condicin de salida de rengln se establece como


verdadera.
EnableIn y EnableOut se establecen
El Parmetro In se establece y la instruccin realiza una
evaluacin para determinar el estado de la alarma.

post-escn

Publicacin 1756-RM003K-ES-P Julio 2008

La condicin de salida de rengln se establece como falsa.

37

Captulo 1

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

Condicin

Accin de bloque de funciones

Accin de texto estructurado

preescn

Todas las peticiones del operador, sellos de hora e


indicadores de entrega se borran.

Todas las peticiones del operador, sellos de hora e


indicadores de entrega se borran.

InAlarm se borra y Acked se establece.

InAlarm se borra y Acked se establece.

primer escn de instruccin Ninguna.

Ninguna.

primera ejecucin de
instruccin

Ninguna.

Ninguna.

EnableIn se borra

La instruccin no se ejecuta.

La instruccin se ejecuta.

EnableOut se borra.

EnableOut siempre se establece.

La instruccin se ejecuta.

La instruccin se ejecuta.

EnableOut se establece.

EnableOut siempre se establece.

Ninguna.

Ninguna.

EnableIn se establece

post-escn

Confirmacin de alarma ALMD requerida y enclavada

38

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 1

Confirmacin de alarma ALMD requerida y no enclavada

Confirmacin de alarma ALMD no requerida y enclavada

Publicacin 1756-RM003K-ES-P Julio 2008

39

Captulo 1

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

Confirmacin de alarma ALMD no requerida y no enclavada

Ejemplo: Se combinan dos seales de fallo de motor, de manera que si se


presenta uno de ellos, se activa una alarma de fallo de motor.
Confirme programticamente la alarma con una transicin de borrado
a establecido del valor del tag Motor101Ack. La lgica de la aplicacin
debe borrar Motor101Ack.

Lgica de escalera de rels

40

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 1

Texto estructurado
Motor101FaultConditions := Motor101Overtemp OR
Motor101FailToStart;
ALMD(Motor101Fault,Motor101FaultConditions,Motor101Ack,
0,0,0 );

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

41

Captulo 1

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

Alarma Analgica (ALMA)

La instruccin ALMA detecta alarmas basadas en el nivel o velocidad


de cambio de un valor analgico. Los parmetros de control de
programa (Prog) y de operador (Oper) proporcionan una interface
para los comandos de alarma.

Operandos:
Lgica de escalera de rels

Operando

Tipo

Formato

Descripcin

tag ALMA

ALARM_ANALOG

Estructura

Estructura ALMA

In

REAL
DINT
INT
SINT

Tag
inmediato

El valor se copia a In cuando se ejecuta la instruccin. El valor


de entrada de alarma, que se compara con los lmites de
alarma para detectar las condiciones de la alarma.

ProgAckAll

BOOL

Tag
Inmediato

El valor se copia a ProgAckAll cuando se ejecuta la


instruccin. En la transicin de borrado a establecido, confirma
todas las condiciones de alarma que requieren confirmacin.

ProgDisable

BOOL

Tag
Inmediato

El valor se copia a ProgDisable cuando se ejecuta la


instruccin. Cuando se establece, inhabilita la alarma
(no anula los comandos de habilitacin).

ProgEnable

BOOL

Tag
Inmediato

El valor se copia a ProgEnable cuando se ejecuta la


instruccin. Cuando se establece, habilita la alarma
(tiene precedencia sobre los comandos de inhabilitacin).

HHlimit

REAL

Inmediato

Lgica de escalera de rels solamente.


Lmite de alarma alta alta.

HLimit

REAL

Inmediato

Lgica de escalera de rels solamente.


Lmite de alarma alta.

LLimit

REAL

Inmediato

Lgica de escalera de rels solamente.


Lmite de alarma baja.

LLLimit

REAL

Inmediato

Lgica de escalera de rels solamente.


Lmite de alarma baja baja.

42

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 1

Texto estructurado
ALMA(ALMA, In, ProgAckAll,
ProgDisable, ProgEnable);

Los operandos son iguales a los de la instruccin ALMD de lgica


de escalera de rels, con algunas excepciones como se indic
anteriormente.

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

Operando

Tipo

Formato

Descripcin

tag ALMA

ALARM_ANALOG

Estructura

Estructura ALMA

43

Captulo 1

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

Estructura ALARM_ANALOG
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Lgica de escalera de rels:


Corresponde al estado del rengln. Si se borra, la instruccin no se ejecuta y las salidas no se
actualizan.
Texto estructurado:
Ningn efecto. La instruccin siempre se ejecuta.
Bloque de funciones:
Si se borra, la instruccin no se ejecuta y las salidas no se actualizan.
La opcin predeterminada es establecido.

In

REAL

El valor de entrada de alarma, el cual se compara con los lmites de alarma para detectar las
condiciones de la alarma.
Valor predeterminado = 0.0.
Lgica de escalera de rels:
Copiado del operando de instruccin.
Texto estructurado:
Copiado del operando de instruccin.

InFault

BOOL

Indicador de estado deficiente para la entrada. El usuario puede establecer InFault para indicar
que la seal de entrada tiene un error. Cuando se establece, la instruccin establece InFaulted
(Status.1). Cuando se borra, la instruccin borra InFaulted (Status.1). En cualquier caso, la
instruccin contina evaluando In en lo que respecta a las condiciones de alarma.
La opcin predeterminada es borrado (buen estado).

HHEnabled

BOOL

Deteccin de condicin de alarma alta alta. Se establece para habilitar la deteccin de la


condicin de alarma alta alta. Se borra para inhabilitar la deteccin de la condicin de alarma
alta alta.
La opcin predeterminada es establecido.

HabilitadaA

BOOL

Deteccin de condicin de alarma alta. Se establece para habilitar la deteccin de la condicin


de alarma alta. Se borra para inhabilitar la deteccin de la condicin de alarma alta.
La opcin predeterminada es establecido.

LEnabled

BOOL

Deteccin de condicin de alarma baja. Se establece para habilitar la deteccin de la condicin


de alarma baja. Se borra para inhabilitar la deteccin de la condicin de alarma baja.
La opcin predeterminada es establecido.

LLEnabled

BOOL

Deteccin de condicin de alarma baja baja. Se establece para habilitar la deteccin de la


condicin de alarma baja baja. Se borra para inhabilitar la deteccin de la condicin de alarma
baja baja.
La opcin predeterminada es establecido.

44

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 1

Parmetro de
entrada

Tipo de datos

Descripcin

AckRequired

BOOL

Especifica si se requiere confirmacin de alarma. Cuando se establece, requiere confirmacin.


Cuando se borra, la confirmacin no se requiere y HHAcked, HAcked, LAcked, LLAcked,
ROCPosAcked y ROCNegAcked siempre se establecen.
La opcin predeterminada es establecido.

ProgAckAll

BOOL

Se establece mediante el programa de usuario para confirmar todas las condiciones de esta la
alarma. Requiere que una transicin cambie de borrado a establecido mientras las condiciones
de alarma no estn confirmadas.
La opcin predeterminada es borrado.
Lgica de escalera de rels:
Copiado del operando de instruccin.
Texto estructurado:
Copiado del operando de instruccin.

OperAckAll

BOOL

Se establece mediante la interface del operador para confirmar todas las condiciones de esta la
alarma. Requiere que una transicin cambie de borrado a establecido mientras las condiciones
de alarma no estn confirmadas. La instruccin de alarma borra este parmetro.
La opcin predeterminada es borrado.

HHProgAck

BOOL

Confirmacin de programa alta alta. Se establece mediante el programa de usuario para


confirmar una condicin alta alta. Requiere que una transicin cambie de borrado a establecido
mientras la condicin de alarma no est confirmada.
La opcin predeterminada es borrado.

HHOperAck

BOOL

Confirmacin de operador alta alta. Se establece mediante la interface de operador para


confirmar una condicin alta alta. Requiere que una transicin cambie de borrado a establecido
mientras la condicin de alarma no est confirmada. La instruccin de alarma borra este
parmetro.
La opcin predeterminada es borrado.

HProgAck

BOOL

Confirmacin de programa alta. Se establece mediante el programa de usuario para confirmar


una condicin alta. Requiere que una transicin cambie de borrado a establecido mientras la
condicin de alarma no est confirmada.
La opcin predeterminada es borrado.

HOperAck

BOOL

Confirmacin de operador alta. Se establece mediante la interface de operador para confirmar


una condicin alta. Requiere que una transicin cambie de borrado a establecido mientras la
condicin de alarma no est confirmada. La instruccin de alarma borra este parmetro.
La opcin predeterminada es borrado.

LProgAck

BOOL

Confirmacin de programa baja. Se establece mediante el programa de usuario para confirmar


una condicin baja. Requiere que una transicin cambie de borrado a establecido mientras la
condicin de alarma no est confirmada.
La opcin predeterminada es borrado.

LOperAck

BOOL

Confirmacin de operador baja. Se establece mediante la interface de operador para confirmar


una condicin baja. Requiere que una transicin cambie de borrado a establecido mientras la
condicin de alarma no est confirmada. La instruccin de alarma borra este parmetro.
La opcin predeterminada es borrado.

Publicacin 1756-RM003K-ES-P Julio 2008

45

Captulo 1

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

Parmetro de
entrada

Tipo de datos

Descripcin

LLProgAck

BOOL

Confirmacin de programa baja baja. Se establece mediante el programa de usuario para


confirmar una condicin baja baja. Requiere que una transicin cambie de borrado a
establecido mientras la condicin de alarma no est confirmada.
La opcin predeterminada es borrado.

LLOperAck

BOOL

Confirmacin de operador baja baja. Se establece mediante la interface de operador para


confirmar una condicin baja baja. Requiere que una transicin cambie de borrado a
establecido mientras la condicin de alarma no est confirmada. La instruccin de alarma borra
este parmetro.
La opcin predeterminada es borrado.

ROCPosProgAck

BOOL

Confirmacin de programa de velocidad de cambio positiva. Se establece mediante el programa


de usuario para confirmar una condicin de velocidad de cambio positiva. Requiere que una
transicin cambie de borrado a establecido mientras la condicin de alarma no est
confirmada.
La opcin predeterminada es borrado.

ROCPosOperAck

BOOL

Confirmacin de operador de velocidad de cambio positivo. Se establece mediante la interface


de operador para confirmar una condicin de velocidad de cambio positiva. Requiere que una
transicin cambie de borrado a establecido mientras la condicin de alarma no est
confirmada. La instruccin de alarma borra este parmetro.
La opcin predeterminada es borrado.

ROCNegProgAck

BOOL

Confirmacin de programa de velocidad de cambio negativa. Se establece mediante el


programa de usuario para confirmar una condicin de velocidad de cambio negativa. Requiere
que una transicin cambie de borrado a establecido mientras la condicin de alarma no est
confirmada.
La opcin predeterminada es borrado.

ROCNegOperAck

BOOL

Confirmacin de operador de velocidad de cambio negativa. Se establece mediante la interface


de operador para confirmar una condicin de velocidad de cambio negativa. Requiere que una
transicin cambie de borrado a establecido mientras la condicin de alarma no est
confirmada. La instruccin de alarma borra este parmetro.
La opcin predeterminada es borrado.

ProgSuppress

BOOL

Se establece mediante el programa de usuario para suprimir la alarma.


La opcin predeterminada es borrado.

OperSuppress

BOOL

Se establece mediante la interface del operador para suprimir la alarma. La instruccin de


alarma borra este parmetro.
La opcin predeterminada es borrado.

ProgUnsuppress

BOOL

Se establece mediante el programa de usuario para cancelar la supresin de la alarma. Tiene


precedencia sobre los comandos de supresin.
La opcin predeterminada es borrado.

OperUnsuppress

BOOL

Se establece mediante la interface del operador para cancelar la supresin de la alarma. Tiene
precedencia sobre los comandos de supresin. La instruccin de alarma borra este parmetro.
La opcin predeterminada es borrado.

46

Publicacin 1756-RM003K-ES-P Julio 2008

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

Parmetro de
entrada

Tipo de datos

Descripcin

ProgDisable

BOOL

Se establece mediante el programa de usuario para inhabilitar la alarma.

Captulo 1

La opcin predeterminada es borrado.


Lgica de escalera de rels:
Copiado del operando de instruccin.
Texto estructurado:
Copiado del operando de instruccin.
OperDisable

BOOL

Se establece mediante la interface del operador para inhabilitar la alarma. La instruccin de


alarma borra este parmetro.
La opcin predeterminada es borrado.

ProgEnable

BOOL

Se establece mediante el programa de usuario para habilitar la alarma. Tiene precedencia


sobre un comando de inhabilitacin.
La opcin predeterminada es borrado.
Lgica de escalera de rels:
Copiado del operando de instruccin.
Texto estructurado:
Copiado del operando de instruccin.

OperEnable

BOOL

Se establece mediante la interface del operador para habilitar la alarma. Tiene precedencia
sobre un comando de inhabilitacin. La instruccin de alarma borra este parmetro.
La opcin predeterminada es borrado.

AlarmCountReset

BOOL

Se establece mediante el programa de usuario para reinicializar los conteos de alarmas para
todas las condiciones. Una transicin que cambia de borrado a establecido pone en cero los
conteos de alarmas.
La opcin predeterminada es borrado.

HHlimit

REAL

Lmite de alarma alta alta.


Vlido = HLimit < HHLimit < valor con punto flotante (coma flotante) positivo mximo.
Valor predeterminado = 0.0.

HHSeverity

DINT

Severidad de la condicin de alarma alta alta. Esto no afecta el procesamiento de alarmas por
parte del controlador, pero puede usarse para clasificar y filtrar funciones en el subscriptor de
alarmas.
Vlido = 1...1000 (1000 = la ms severa; 1 = la menos severa).
Valor predeterminado = 500.

HLimit

REAL

Lmite de alarma alta.


Vlido = LLimit < HLimit < HHLimit.
Valor predeterminado = 0.0.

Publicacin 1756-RM003K-ES-P Julio 2008

47

Captulo 1

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

Parmetro de
entrada

Tipo de datos

Descripcin

HSeverity

DINT

Severidad de la condicin de alarma alta. Esto no afecta el procesamiento de alarmas por parte
del controlador, pero puede usarse para clasificar y filtrar funciones en el subscriptor de
alarmas.
Vlido = 1...1000 (1000 = la ms severa; 1 = la menos severa).
Valor predeterminado = 500.

LLimit

REAL

Lmite de alarma baja.


Vlido = LLLimit < LLimit < HLimit.
Valor predeterminado = 0.0.

LSeverity

DINT

Severidad de la condicin de alarma baja. Esto no afecta el procesamiento de alarmas por parte
del controlador, pero puede usarse para clasificar y filtrar funciones en el subscriptor de
alarmas.
Vlido = 1...1000 (1000 = la ms severa; 1 = la menos severa).
Valor predeterminado = 500.

LLLimit

REAL

Lmite de alarma baja baja.


Vlido = valor con punto flotante (coma flotante) negativo mximo < LLLimit < LLimit.
Valor predeterminado = 0.0.

LLSeverity

DINT

Severidad de la condicin de alarma baja baja. Esto no afecta el procesamiento de alarmas por
parte del controlador, pero puede usarse para clasificar y filtrar funciones en el subscriptor de
alarmas.
Vlido = 1...1000 (1000 = la ms severa; 1 = la menos severa).
Valor predeterminado = 500.

MnDurationPRE

DINT

Preajuste de duracin mnima (milisegundos) para que una condicin de nivel de alarma
permanezca verdadera antes de que la condicin sea marcada como InAlarm y se enve
notificacin de la alarma a los clientes. El controlador recolecta datos de alarmas tan pronto
como se detecta la condicin de alarma; por lo tanto, no se pierden datos durante la espera
hasta cumplir con la duracin mnima. No se aplica a condiciones de velocidad de cambio.
MinDurationPRE slo se aplica a la primera excursin de normal en cualquier direccin. Por
ejemplo, una vez que la condicin alta sobrepasa el tiempo de espera, la condicin alta alta se
activa inmediatamente, mientras que una condicin baja esperar el perodo de tiempo de
espera.
Vlido = 0...2,147,483,647.
Valor predeterminado = 0.

48

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 1

Parmetro de
entrada

Tipo de datos

Descripcin

Deadband

REAL

Banda muerta para detectar que los niveles de alarma alta alta, alta, baja y baja baja han
regresado a lo normal.
Una banda muerta diferente de cero puede reducir la vibracin de la condicin de alarma si el
valor In est cambiando continuamente pero permanece cerca del nivel de umbral de la
condicin. El valor de la banda muerta no afecta la transicin al estado InAlarm (activo). Una
vez que una condicin de nivel est activa, pero antes de que la condicin regrese al estado
inactivo (normal), el valor In debe, o bien:
caer por debajo del umbral menos la banda muerta (para condiciones alta y alta alta).
o bien
subir por encima del umbral ms la banda muerta (para condiciones baja y baja baja).
La banda muerta no se usa para condicionar la medicin del tiempo de duracin mnima.
Vlido = 0 Deadband < Span desde la primera alarma baja habilitada hasta la primera alarma
alta habilitada.
Valor predeterminado = 0.0.

ROCPosLimit

REAL

Lmite para una velocidad de cambio creciente, en unidades por segundo. La deteccin se
habilita para cualquiera valor > 0.0 si ROCPeriod tambin es > 0.0.
Vlido = 0.0...valor con punto flotante (coma flotante) mximo posible.
Valor predeterminado = 0.0.

ROCPosSeverity

DINT

Severidad de la condicin de velocidad de cambio creciente. Esto no afecta el procesamiento de


alarmas por parte del controlador, pero puede usarse para clasificar y filtrar funciones en el
subscriptor de alarmas.
Vlido = 1...1000 (1000 = ms severa; 1 = menos severa).
Valor predeterminado = 500.

ROCNegLimit

REAL

Lmite para una velocidad de cambio decreciente, en unidades por segundo. La deteccin se
habilita para cualquiera valor > 0.0 si ROCPeriod tambin es > 0.0.
Vlido = 0.0...valor con punto flotante (coma flotante) mximo posible.
Valor predeterminado = 0.0.

ROCNegSeverity

DINT

Severidad de la condicin de velocidad de cambio decreciente. Esto no afecta el procesamiento


de alarmas por parte del controlador, pero puede usarse para clasificar y filtrar funciones en el
subscriptor de alarmas.
Vlido = 1...1000 (1000 = ms severa; 1 = menos severa).
Valor predeterminado = 500.

ROCPeriod

REAL

Perodo de tiempo en segundos para calcular (intervalo de muestreo) el valor de la velocidad de


cambio. Cada vez que expira el intervalo de muestreo, se almacena una nueva muestra de In, y
se calcula ROC.
La deteccin de velocidad de cambio se habilita para cualquiera valor > 0.0.
Vlido = 0.0...valor con punto flotante (coma flotante) mximo posible.
Valor predeterminado = 0.0.

Publicacin 1756-RM003K-ES-P Julio 2008

49

Captulo 1

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

Parmetro de salida

Tipo de datos

Descripcin

EnableOut

BOOL

Habilitacin de salida.

InAlarm

BOOL

Estado activo de alarma. Se establece cuando cualquier condicin de alarma est activa.
Se borra cuando todas las condiciones de alarma no estn activas (estado normal).

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.
ROC = (muestra actual de In muestra previa de In)/ROCPeriod

HHAcked

BOOL

Estado confirmado de condicin alta alta. Se establece cuando se confirma una condicin
alta alta. Siempre se establece cuando AckRequired se borra. Se borra cuando no se
confirma una condicin alta alta.

HAcked

BOOL

Estado confirmado de condicin alta. Se establece cuando se confirma una condicin alta.
Siempre se establece cuando AckRequired se borra. Se borra cuando no se confirma una
condicin alta.

LAcked

BOOL

Estado de confirmacin de condicin baja. Se establece cuando se confirma una condicin


baja. Siempre se establece cuando AckRequired se borra. Se borra cuando no se confirma
una condicin baja.

LLAcked

BOOL

Estado de confirmacin de condicin baja baja. Se establece cuando se confirma una


condicin baja baja. Siempre se establece cuando AckRequired se borra. Se borra cuando
no se confirma una condicin baja baja.

ROCPosAcked

BOOL

Estado de confirmacin de condicin de velocidad de cambio positiva. Se establece cuando


se confirma una condicin de velocidad de cambio positiva. Siempre se establece cuando
AckRequired se borra. Se borra cuando no se confirma una condicin de velocidad de
cambio positiva.

ROCNegAcked

BOOL

Estado de confirmacin de condicin de velocidad de cambio negativa. Se establece


cuando se confirma una condicin de velocidad de cambio negativa. Siempre se establece
cuando AckRequired se borra. Se borra cuando no se confirma una condicin de velocidad
de cambio negativa.

HHInAlarmUnack

BOOL

Estado no confirmado y condicin alta alta activa combinado. Se establece cuando la


condicin alta alta est activa (HHInAlarm est establecido) y no confirmada. Se borra
cuando la condicin alta alta es normal (inactiva), confirmada, o ambas.

50

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 1

Parmetro de salida

Tipo de datos

Descripcin

HInAlarmUnack

BOOL

Estado no confirmado y condicin alta activa combinado. Se establece cuando la condicin


alta est activa (HInAlarm est establecido) y no confirmada. Se borra cuando la condicin
alta es normal (inactiva), confirmada, o ambas.

LInAlarmUnack

BOOL

Estado no confirmado y condicin baja activa combinado. Se establece cuando la condicin


baja est activa (LInAlarm est establecido) y no confirmada. Se borra cuando la condicin
baja es normal (inactiva), confirmada, o ambas.

LLInAlarmUnack

BOOL

Estado no confirmado y condicin baja baja activa combinado. Se establece cuando la


condicin baja baja est activa (LLInAlarm est establecido) y no confirmada. Se borra
cuando la condicin baja baja es normal (inactiva), confirmada, o ambas.

ROCPosInAlarmUnack

BOOL

Estado no confirmado y condicin de velocidad de cambio positiva activa combinado. Se


establece cuando la condicin de velocidad de cambio positiva est activa (ROCPosInAlarm
est establecido) y no confirmada. Se borra cuando la condicin de velocidad de cambio
positiva es normal (inactiva), confirmada, o ambas.

ROCNegInAlarmUnack

BOOL

Estado no confirmado y condicin de velocidad de cambio negativa activa combinado.


Se establece cuando la condicin de velocidad de cambio negativa est activa
(ROCNegInAlarm est establecido) y no confirmada. Se borra cuando la condicin de
velocidad de cambio negativa es normal (inactiva), confirmada, o ambas.

Suppressed

BOOL

Estado suprimido de la alarma. Se establece cuando la alarma est suprimida. Se borra


cuando la alarma no est suprimida.

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.

Publicacin 1756-RM003K-ES-P Julio 2008

51

Captulo 1

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

Parmetro de salida

Tipo de datos

Descripcin

AckTime

LINT

Sello de hora de la confirmacin de condicin ms reciente. Si la alarma no requiere


confirmacin, este sello de hora es igual a la hora de la alarma de condicin ms reciente.

RetToNormalTime

LINT

Sello de hora del retorno de la alarma al estado normal.

AlarmCountResetTime

LINT

Sello de hora que indica cundo se restableci la alarma.

DeliveryER

BOOL

Error de entrega del mensaje de notificacin de alarma. Se establece cuando hay un error
de entrega: ningn subscriptor de alarma estaba suscrito, o por lo menos un suscriptor no
recibi el ltimo mensaje de estado de cambio de alarma. Se borra cuando la entrega se
realiza correctamente o est en curso.

DeliveryDN

BOOL

Entrega del mensaje de notificacin de alarma realizada. Se establece cuando la entrega se


realiza correctamente: por lo menos un suscriptor estaba suscrito y todos los suscriptores
recibieron correctamente el ltimo mensaje de estado de cambio de alarma. Se borra
cuando la entrega no se realiza correctamente o est en curso.

DeliveryEN

BOOL

Estado de entrega del mensaje de notificacin de alarma. Se establece cuando la entrega


est en curso. Se borra cuando la entrega no est en curso.

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)

52

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.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 1

Parmetro de salida

Tipo de datos

Descripcin

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 las condiciones de alarma.

SeverityInv (Status.2)

BOOL

La severidad de la alarma no es vlida.


Si la severidad <1, la instruccin usa Severity = 1.
Si a severidad >1000, la instruccin usa Severity = 1000.

AlarmLimitsInv
(Status.3)

BOOL

La configuracin de lmite de alarma no es vlida (por ejemplo, LLimit < LLLimit). Si no es


vlido, la instruccin borra todos los bits activos de condiciones de nivel. No se podrn
detectar nuevas condiciones de nivel hasta que se borre el fallo.

DeadbandInv (Status.4)

BOOL

La configuracin de la banda muerta no es vlida. Si no es vlida, la instruccin usa


Deadband = 0.0.
Vlido = 0 Deadband < Span desde la primera alarma baja habilitada hasta la primera
alarma alta habilitada.

ROCPosLimitInv
(Status.5)

BOOL

Lmite de velocidad de cambio positiva no vlido. Si no es vlido, la instruccin usa


ROCPosLimit = 0.0, lo cual inhabilita la deteccin de velocidad de cambio positiva.

ROCNegLimitInv
(Status.6)

BOOL

Lmite de velocidad de cambio negativa no vlido. Si no es vlido, la instruccin usa


ROCNegLimit = 0.0, lo cual inhabilita la deteccin de velocidad de cambio negativa.

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.

Descripcin La instruccin ALMA detecta alarmas segn el nivel o velocidad de


cambio de un valor.
La instruccin ALMA proporciona funcionalidad adicional cuando se
usa con el software RSLinx Enterprise y FactoryTalk View SE. Usted
puede mostrar alarmas en las pantallas Alarm Summary, Alarm
Banner, Alarm Status Explorer y Alarm Log Viewer en el software
FactoryTalk View SE.
El software RSLinx Enterprise se suscribe a alarmas en el controlador.
Use los parmetros de salida para monitorear la instruccin a fin de
ver el estado de suscripcin de alarmas y para mostrar cambios de
estado de alarmas. Si se pierde una conexin al software RSLinx
Enterprise, el controlador puede almacenar en el bfer datos de
alarmas brevemente hasta que se restaure la conexin.

Publicacin 1756-RM003K-ES-P Julio 2008

53

Captulo 1

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

Diagramas de estado cuando se requiere confirmacin


InIn>=>=HLimit,
>=MinDurationPRE
MinDurationPRE
HLimit,MinDurationACC
MinDurationACC >=
HinAlarm==False
False
HInAlarm
HAcked==True
True
HAcked

Ack1 1
Ack

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

InIn<<
((HHLLi
imiit
m
t

nd)
dbaand)
Deaadb

- e
mitit - D
ERE
(HHLliim
PnRP
iotnio
InIn<< (
arta
nuDru
iniD
M
M
==
CC>>
AACC
ttioionn
uurraa
D
n
in
Mi
itit,, M

InIn>=>=HHLimit,
>=MinDurationPRE
MinDurationPRE
HHLimit,MinDurationACC
MinDurationACC >=

- Dee
aaddb
baannd
d))

im
HLLim
>==H
InIn>

Ack1
Ack

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

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

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

InIn>=<=LLimit,
>=MinDurationPRE
MinDurationPRE
LLimit,MinDurationACC
MinDurationACC >=

Ack1

Ack1

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

nd))
dbaand
IInn <>
Deaadb
(LLLLiim
it+- De
m
it
miitt +
i
(LLLlim
PREE
- De
PnR
InIn <> (
adba
atiotino
uurar
ndd)
ininDD
)
M
M
=
=
>>
ACCCC
A
tiioonn
uurraat
inDD
n
i
M
,
it,itM
Lim
Lim
=<=LL
InI>n

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

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

LLinAlarm
= True
LLInAlarm = True
LAcked ==False
LLAcked
False
)
anndd)
b
a
d
b
a
Deead
> ((LL
it +- D
LLLLim
it
E
m
i
R
imiitt (LLLLLLim
oPnRPE
+D
Deead
rtioatni
IInn >< (
Ack1
adbba
uDrua
Ack1
anndd)
iniDn
MM
=
)
=
>
CC>
C
C
A
ionnA
urraattio
inDDu
Min
it,, M
t
i
im
m
LLinAlarm
= True
LLLi
LLInAlarm = True
==LLL
LAcked ==True
InIn><
LLAcked
True

IInn <
1

Ack1
Ack

Ack1
Ack

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

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

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

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

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

Donde se recolecta una nueva muestra en el


Where a new sample is collected on the
siguiente escn despus de que haya transcurrido
next scan after the ROCPeriod has elapsed.
ROCPeriod

ROC
ROC <=
<= -RocNegLimit
-RocNegLimit

ROC <=
ROC
>= RocPosLimit
RocPosLimit
RocPosInAlarm
= False
False
RocPosInAlarm =
RocPosAcked =
= True
RocPosAcked
True
RROOC

C<<

Ack11
Ack

RocPosInAlarm
= False
False
RocPosInAlarm =
RocPosAcked = False
RocPosAcked
1
1

54

RRooc
cPPoo
ssLLim
imiitt

miitt
ssLLiim
cPPoo
Rooc
<>== R
C
C
RO

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

InIn>=<=LLLimit,
>= MinDurationPRE
MinDurationPRE
LLLimit,MinDurationACC
MinDurationACC >=

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

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

ROC ==
ROC

Ack1
Ack

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

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


1

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

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

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

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

ndd) )
dbbaan
IInn<<
eeaad
-- DD
(H(HHH
t
i
it
m
LLim
E
PRE
imiitt
HHLLiim
PoRn
-- DDe
< ((HH
ranti
eaadd
rautio
uD
n
bbaann IInn
i
D
in
MM
dd))
>=>=
ACCC
AnC
taiotino
r
a
r
u
DDu
Minin
M
im
miitt,,
HLLi
=H
=
>
>
Inn

Ack1
Ack

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


1

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

HinAlarm
True
HInAlarm =
= True
HAcked = False
HAcked

it
Limit
PoossLim

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

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

cP
< RRooc

<
ROOCC
R

Ack1 1
Ack

Ack11
Ack

RocPosInAlarm
True
RocPosInAlarm == True
RocPosAcked = True
True

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

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

RROOC
C<>R

imitit
Lim
NeeggL

-Rooc
cNNeg
egLLi
miitt
im

occN
< --RRo

C>
OC
RO
R

it
Limit
im
NegeLg
RooccN
R
=
<=
OCC<
RRO

RocNegInAlarm
= True
True
RocNegInAlarm =
RocNegAcked = False
RocNegAcked

Ack1
Ack

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

La
condicin de alarma ROCNeg puede confirmarse de diferentes maneras: RocNegProgAck, RocNegOperAck,
1
ROCNeg alarm condition can be acked by several different ways: RocNegProgAck, RocNegOperAck, ProgAckAll,
,
ProgAkkAll,
clientes
5000, software RSView).
OperAckAll,OperAckAll,
clients (RSLogix
5000(software
software, RSLogix
RSView software).

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 1

Diagramas de estado cuando no se requiere confirmacin


In >=
HLimit,MinDurationACC
MinDurationACC >=
>= MinDurationPRE
In >=
HLimit,
MinDurationPRE
HinAlarm = False

HAcked = True

HinAlarm = True

HInAlarm = False

HInAlarm = True

HAcked = True

< (HLimit- -Deadband)


Deadband)
In In
< (HLimit

LLLimit,MinDurationACC
MinDurationACC >=
>= MinDurationPRE
In In
<=>=LLimit,
MinDurationPRE
LinAlarm = True

LinAlarm = False

LInAlarm = False

LAcked = True

LInAlarm = True

LAcked = True

HHinAlarm ==True
HHInAlarm
True

HHAcked ==True
HHAcked
True

LLinAlarm = True

LLAcked = True

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

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

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

LLInAlarm = False

LLAcked = True

LLInAlarm = True

< (LLLimit+- Deadband)


In In
> (LLLimit
Deadband)

ROC
ROC= =

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

Donde
una nueva
muestraonenthe
el siguiente
Wheresearecolecta
new sample
is collected
escn
despus
de the
queROCPeriod
haya transcurrido
ROCPeriod
next scan
after
has elapsed.

ROC>=>= ROCPosLimit
ROCPosLimit
ROC
RocPosInAlarm ==False
RocPosInAlarm
False

RocPosInAlarm ==True
RocPosInAlarm
True

RocPosAcked
= True
RocPosAcked
= True

RocNegInAlarm ==True
RocNegInAlarm
True

RocNegAcked
= True
RocNegAcked
= True

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

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

Tipo de fallo

Cdigo de fallo

Overflow ROC

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 confirman
todas las condiciones de alarma.
Todas las peticiones del operador, sellos de hora e
indicadores de entrega se borran.

condicin de entrada de
rengln es falsa

La instruccin no se ejecuta.
EnableOut se borra.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.
EnableOut se establece.

post-escn

Publicacin 1756-RM003K-ES-P Julio 2008

La condicin de salida de rengln se establece como falsa.

55

Captulo 1

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

Condicin

Accin de bloque de funciones

Accin de texto estructurado

preescn

Todas las peticiones del operador, sellos de hora e


indicadores de entrega se borran.

Todas las peticiones del operador, sellos de hora e


indicadores de entrega se borran.

Todos los parmetros xInAlarm se borran y se


confirman todas las condiciones de alarma.

Todos los parmetros xInAlarm se borran y se


confirman todas las condiciones de alarma.

primer escn de instruccin Ninguna.

Ninguna.

primera ejecucin de
instruccin

Ninguna.

Ninguna.

EnableIn se borra

La instruccin no se ejecuta.

La instruccin se ejecuta.

EnableOut se borra.

EnableOut siempre se establece.

La instruccin se ejecuta.

La instruccin se ejecuta.

EnableOut se establece.

EnableOut siempre se establece.

Ninguna.

Ninguna.

EnableIn se establece

post-escn

56

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 1

Confirmacin de condicin de nivel ALMA requerida

Publicacin 1756-RM003K-ES-P Julio 2008

57

Captulo 1

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

Confirmacin de condicin de nivel ALMA no requerida

58

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 1

Confirmacin de velocidad de cambio ALMA requerida

Publicacin 1756-RM003K-ES-P Julio 2008

59

Captulo 1

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

Confirmacin de velocidad de cambio ALMA no requerida

Ejemplo: Se activa una alarma de tanque si el nivel del tanque sobrepasa el


lmite de alarma alta o alta alta. Confirme programticamente todas las
condiciones de alarma con una transicin de borrado a establecido
del valor de tag Tank32LevelAck. La lgica de la aplicacin debe
borrar Tank32LevelAck.

60

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 1

Lgica de escalera de rels

Texto estructurado
ALMA(Tank32Level,Tank32LT,Tank32LevelAck,0, 0);

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

61

Captulo 1

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

Configure una instruccin


de alarma

Despus de introducir una alarma ALMD o ALMA y especificar el


nombre de tag de la alarma, use el dilogo Alarm Configuration para
especificar los detalles del mensaje.

Haga clic aqu para configurar la instruccin.

El dilogo Properties de la instruccin de alarma incluye la ficha


Configuration.

62

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 1

Para cada instruccin de alarma, configure esta informacin.


Opcin

Descripcin

Condition Instruccin ALMD

Condicin para activar la alarma.


Seleccione Input=1 para una alarma activa cuando In=1. Seleccione Input=0 para una
alarma activa cuando In=0.

Input Level Instruccin ALMA

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:
1...250 son de baja prioridad
251...500 son de prioridad media.
501...750 son de alta prioridad.
751...1000 son de prioridad urgente.
Usted puede configurar la asignacin de severidad a prioridad en el sistema FactoryTalk
Alarms and Events. Remtase a la ayuda de FactoryTalk para obtener detalles.

Minimum Duration

Introduzca el tiempo en ms que una condicin de alarma debe estar activa antes de que se
reporte la alarma.

Latched Instruccin ALMD

Seleccione enclavado (Latched) si desea que la alarma permanezca activa (InAlarm)


despus de que la condicin de alarma regresa al estado inactivo (normal). Las alarmas
enclavadas requieren un comando de restablecimiento para cambiar a normal. El comando
de restablecimiento debe recibirse despus de que la condicin regrese al estado normal.
Los comandos de confirmacin no borrarn una alarma enclavada.

Deadband Instruccin ALMA

Especifique un valor de banda muerta para reducir la vibracin de la condicin de alarma


causada por pequeas fluctuaciones en el valor In.
El valor de banda muerta no afecta el lmite de alarma para la transicin al estado activo y,
adems, no se usa durante el intervalo de duracin mnima.
Una vez que una condicin de nivel de activa (InAlarm), permanecer activa hasta que el
valor In regrese dentro del lmite mediante la banda muerta especificada. Por ejemplo, si el
lmite alto es 80, el lmite bajo es 20 y la banda muerta es 5, la condicin alta se activar
cuando el valor sea 80 y regresar a lo normal cuando el valor sea 75; la condicin baja
se activar cuando el valor sea 20 y regresar a lo normal cuando el valor sea 25.
La banda muerta no tiene ningn efecto en las condiciones de alarma de velocidad de
cambio.

Acknowledgement Required

Las alarmas estn configuradas de manera predeterminada para requerir confirmacin. La


confirmacin indica que un operador tiene conocimiento de la condicin de alarma, ya sea
que las condiciones hayan regresado a lo normal o no.
Borre el ajuste Acknowledgement Required si desea que la alarma aparezca y desaparezca
del resumen de alarmas en el HMI sin interaccin del operador.
Las alarmas que no requieren confirmacin siempre tienen establecido el estado Acked.
Si una alarma digital se configura como enclavada, el comando de restablecimiento
tambin reconoce la alarma.

Publicacin 1756-RM003K-ES-P Julio 2008

63

Captulo 1

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

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.
Tenga cuidado a fin de ingresar la sintaxis de comando correcta y pruebe el comando en
tiempo de ejecucin, ya que cuando se introduce el comando no se realiza una verificacin
de errores.

Usted puede editar todos los aspectos de la configuracin de alarmas


fuera de lnea y en lnea. Las ediciones en lnea de las alarmas nuevas
y existentes se envan inmediatamente a los suscriptores de
FactoryTalk (los terminales de HMI de versiones anteriores que estn
encuestando [polling] los tags no se actualizan automticamente).
Los suscriptores de FactoryTalk no tienen que volver a suscribirse
para recibir informacin actualizada. Los cambios en lnea
automticamente se propagan desde la estructura de alarmas del
controlador al resto de la arquitectura.

64

Publicacin 1756-RM003K-ES-P Julio 2008

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

Introduzca el texto del


mensaje de alarma

Captulo 1

Introduzca el texto de mensaje apropiado que se mostrar cuando


una condicin de alarma est activa (InAlarm). Para una instruccin
ALMD, usted introduce la informacin del mensaje en la ficha
Configuration. Para una instruccin ALMA, usted introduce la
informacin de mensaje en la ficha Message.

Para definir un mensaje de alarma, especifique esta informacin.


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.
Usted no puede acceder programticamente a la cadena del mensaje de alarma desde el
tag de alarma. Para cambiar el mensaje de alarma basado en eventos especficos, configure
uno de los tags asociados como tipo de datos de cadena e incorpore dicho tag asociado en
el mensaje.
Usted puede tener versiones de los mensajes en mltiples idiomas. El idioma adicional se
introduce mediante la utilidad de importacin/exportacin. Para obtener ms informacin,
vea la pgina 67.

Publicacin 1756-RM003K-ES-P Julio 2008

65

Captulo 1

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

Opcin

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.
Opcionalmente, incorpore los tags asociados en la cadena de texto de mensaje.
Los valores de tag asociados siempre se envan con la alarma, visibles para el operador e
introducidos en el registro del historial, independientemente de que los haya incorporado
en la cadena de mensaje.

Variables de la cadena de mensaje


Puede incorporar esta informacin variable en una cadena de
mensaje.
Variable

Se incorpora en la cadena de mensaje

Cdigo predeterminado aadido a la cadena


de mensaje

Alarm name

El nombre de la alarma, que consiste en el nombre del /*S:0 %AlarmName*/


controlador, nombre del programa y nombre de tag.
Por ejemplo,
[Zone1Controller]Program:Main.MyAlarmTagName.

Condition name

La condicin que activa la alarma:

/*S:0 %ConditionName*/

la alarma digital muestra el disparo;


la alarma analgica muestra HiHi, Hi, Lo, LoLo,
ROC_POS ROC_NEG.
Input value

El valor de entrada para la alarma:

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

la alarma digital muestra 0 1;


la alarma analgica muestra el valor de la variable
de entrada que est monitoreando.
Limit value

El umbral de la alarma:

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

la alarma digital muestra 0 1;


la alarma analgica muestra la verificacin de
rango configurada actual para la condicin de
alarma analgica.
Severity

La severidad configurada de la condicin de alarma.

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

Values of associated tags

El valor de un tag configurado para incluirse con el


evento de alarma.

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

66

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 1

El cdigo vara segn el tipo de tag que seleccione, cuntos dgitos o


caracteres hay en un valor de tag y si desea rellenar los bits vacos con
espacios o ceros a la izquierda. Por ejemplo:
Tag

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)


3 dgitos despus del decimal, relleno con ceros a la
izquierda.

/*N:9 %InputValue NOFILL DP:3*/

Valor REAL, 8 dgitos (incluye decimal) 4 dgitos despus


del decimal, relleno con ceros a la izquierda.

/*N:8 %Tag3 ZEROFILL DP:4*/

Valor de cadena, sin ancho fijo

/*S:0 %Tag4*/

Valor de cadena, 26 caracteres, ancho fijo

/*S:26 %Tag4*/

Toda esta informacin variable se incluye con los datos de alarma,


visibles para el operador e introducidos en el registro de historial,
independientemente de que usted haya incorporado la informacin
en el texto del mensaje.

Versiones de los mensajes de alarma en mltiples idiomas


Usted puede mantener mensajes de alarmas en varios idiomas.
Introduzca los diversos idiomas en las versiones de idiomas asociados
del software de programacin RSLogix 5000 o en un archivo de
importacin/exportacin (.CSV o .TXT).
Usted puede acceder al texto del mensaje de alarma desde un archivo
de importacin/exportacin (.CSV o .TXT) y aadir lneas adicionales
para las versiones traducidas de la cadena de mensaje original. Los
mensajes en diferentes idiomas usan cdigos de lenguaje ISO en la
columna TIPO. El texto de mensaje de alarma, que incluye los
cdigos de variable incorporados para el operador, est en la columna
DESCRIPCIN. El ESPECIFICADOR identifica la condicin de la
alarma.

Publicacin 1756-RM003K-ES-P Julio 2008

67

Captulo 1

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

Use la utilidad de importacin/exportacin para crear y traducir


cadenas de mensajes en mltiples idiomas. El formato de
importacin/exportacin .TXT admite caracteres de doble byte, por lo
tanto usted puede usar este formato para todos los idiomas, inclusive
chino, japons y coreano. El formato de importacin/exportacin
.CVS no admite caracteres de doble byte.
Los mensajes de importacin y exportacin siempre realizan una
fusin. Al eliminar un mensaje en un archivo .CSV o .TXT no se
elimina el mensaje del archivo .ACD. Para eliminar un mensaje,
importe el archivo .CSV o .TXT con los campos tipo, nombre y
especificador llenados pero con la descripcin en blanco.

Monitoreo del estado de


alarma

68

En la ficha Status del dilogo de alarma, monitoree la condicin de


una alarma, confirme una alarma, inhabilite una alarma, suprima una
alarma o restablezca una alarma. Use las selecciones del dilogo para
ver cmo se comporta una alarma sin necesidad de tener un HMI en
operacin.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Almacenamiento de
alarmas en el bfer

Captulo 1

Para recibir mensajes de alarma basados en el controlador, los clientes


de alarmas (como el servidor RSLinx Enterprise) deben establecer una
suscripcin a las alarmas en el controlador Logix. El controlador
mantiene una conexin con cada suscriptor y monitorea el estado de
dicha conexin.
A medida que ocurren cambios de estado de alarma, las instrucciones
de alarma almacenan en cach la informacin necesaria (como sellos
de hora y valores de tag asociados) y solicitan la transmisin del
mensaje de alarma a todos los suscriptores. El mecanismo de
publicacin entrega los mensajes de alarma a cada suscriptor tan
rpido como sea posible.
Si algn suscriptor no confirma recibo del mensaje de alarma, o si la
conexin a un suscriptor conocido no es buena, el mecanismo de
publicacin almacena los mensajes de alarma no entregados en un
bfer de 100 KB. Cada suscriptor tiene su propio bfer; por lo tanto,
los problemas de comunicacin con un suscriptor no interfieren con
la entrega de mensajes de alarmas a otros suscriptores. Cuando el
bfer est lleno, se descartan los mensajes de alarma ms nuevos. El
bfer se crea cuando el suscriptor establece su conexin inicial y se
mantiene por un tiempo configurable (0...120 minutos, siendo el valor
predeterminado 20 minutos) despus de que un suscriptor pierde su
conexin.
Cuando el suscriptor restablece una conexin dentro del intervalo de
tiempo de espera del bfer, obtiene el estado actual de todas las
alarmas, comienza a recibir mensajes de alarma actuales y tambin
carga los mensajes que puedan haberse acumulado en el bfer. Aun si
el bfer estuviera lleno y los mensajes fueras descartados, los
suscriptores se sincronizan de manera exacta con el estado actual de
las alarmas (inclusive los sellos de hora ms recientes de
InAlarmTime, RetToNormalTime y AckTime.
El almacenamiento en el bfer contina hasta llenarse. Una vez lleno,
el bfer deja de aadir transiciones de alarmas hasta que el suscriptor
deje un espacio disponible en el bfer.

Publicacin 1756-RM003K-ES-P Julio 2008

69

Captulo 1

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

Acceda programticamente
a informacin de alarmas

Cada instruccin de alarma tiene una estructura de alarma que


almacena informacin de configuracin y ejecucin de alarma. La
estructura de alarma incluye tanto elementos de control de programa
y de operador, como elementos de operador. Las instrucciones de
alarma no usan ajustes de modo para determinar si el acceso al
programa o el acceso al operador estn activos; por lo tanto, estos
elementos siempre estn activos.
Existen tres maneras de realizar acciones en una instruccin de
alarma.

Acceso
Programa de usuario

Elementos de estructura de
alarmas
ProgAck
ProgReset
ProgSuppress
ProgDisable
ProgEnable

HMI personalizado

OperAck
OperReset
OperSuppress
OperDisable
OperEnable

Consideraciones
Use la lgica del controlador para acceder programticamente a
elementos del sistema de alarmas. Por ejemplo, el programa de
control puede determinar si se inhabilitar una serie de alarmas
relacionadas con una sola causa raz. Por ejemplo, el programa de
control podra inhabilitar una instruccin de alarma,
MyDigitalAlarm de tipo de datos ALARM_DIGITAL, mediante
acceso al miembro de tag MyDigitalAlarm.ProgDisable.
Cree una plantilla de HMI personalizada para acceder a elementos
del sistema de alarmas. Por ejemplo, si el operador necesita retirar
una herramienta, en lugar de inhabilitar manualmente o suprimir
alarmas individualmente desde las pantallas de alarmas, el
operador puede presionar una tecla de inhabilitacin que brinda
acceso a un tag MyDigitalAlarm.OperDisable.
Los parmetros del operador trabajan con cualquier interface de
Rockwell Automation o de otros fabricantes para permitir el control
de estados de alarma.
Cuando se establece un parmetro del operador, la instruccin
evala si puede responder a la peticin, y posteriormente
restablece siempre el parmetro.

Objeto HMI estndar

No accesible

La interaccin normal del operador se realiza a travs de objetos del


resumen de alarmas, indicador de alarma y explorador de estado de
alarmas en la aplicacin FactoryTalk View. Esta interaccin es
similar a la opcin de HMI personalizada antes descrita, pero no
hay interaccin ni visibilidad programtica.

Cuando usted crea una instruccin de alarma, debe crear y asignar un


tag del tipo de datos correcto para dicha alarma. Por ejemplo, cree
MyDigitalAlarm del tipo de datos ALARM_DIGITAL. En lgica de
escalera de rels, estos parmetros de instruccin deben introducirse
en la instruccin:
ProgAck
ProgReset
ProgDisable
ProgEnable
En lgica de escalera de rels y en texto estructurado, el valor o tag
que usted asigna a un parmetro de instruccin (como ProgAck) se
escribe automticamente en el miembro del tag de alarma (por ej.,
MyAnalogAlarm.ProgAck) cada vez que se escanea la instruccin.

70

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 1

En lgica de escalera de rels y en texto estructurado, si usted desea


acceder programticamente a la estructura de alarmas, asigne el tag de
estructura al parmetro en la instruccin. Por ejemplo, para usar
MyAnalogAlarm.ProgAck en lgica, asigne el tag
MyAnalogAlarm.ProgAck al parmetro ProgAck.

Suprima o inhabilite
alarmas

Publicacin 1756-RM003K-ES-P Julio 2008

Suprima alarmas para retirar las alarmas cuya existencia usted conoce
desde el HMI, pero mantenga las alarmas activas. Esto le permitir
borrar el resumen de alarmas mientras que usted est resolviendo una
alarma conocida sin continuar viendo informacin de alarmas. Una
alarma suprimida no aparece en las pantallas de indicadores o
resumen de operador, pero una alarma suprimida igualmente se enva
a los suscriptores, se registra en la base de datos histricos, puede
cambiar el estado de alarma, tener sello de hora y responder a otras
interacciones programticas o del operador.
Cuando una alarma se suprime, sta contina funcionando
normalmente, monitorea el parmetro In en lo que respecta a
las condiciones de alarma y responde a peticiones de
confirmacin. Todos los suscriptores son notificados de este
evento, y todo mensaje de alarma generado mientras la alarma
se encuentra en estado suprimido incluye el estado suprimido.
Los clientes de alarmas pueden responder de manera diferente a
las alarmas suprimidas. Por ejemplo, las alarmas suprimidas
pueden registrarse en la base de datos histricos pero no
pueden anunciarse al operador.
Cuando una alarma no est suprimida, todos los suscriptores
son notificados y los mensajes de alarma a los suscriptores ya no
incluyen el estado suprimido.
Inhabilite una alarma para tratar la alarma como si sta no existiera en
el programa de control. Una alarma inhabilitada no cambia el estado
de alarma ni se registra en la base de datos histricos. Una alarma
inhabilitada aun se rastrea y puede rehabilitarse en el explorador de
estado de alarmas en el software FactoryTalk View SE.
Cuando una alarma est inhabilitada, todas sus condiciones se
establecen en el estado inicial (InAlarm se borra y Acked se
establece). El parmetro In no es monitoreado en lo que
respecta a las condiciones de alarma. Todos los suscriptores son
notificados de este evento.

71

Captulo 1

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

Cuando una alarma se habilita, comienza a monitorear el


parmetro In en lo que respecta a las condiciones de alarma.
Todos los suscriptores son notificados de este evento.

Ejecucin de alarma
basada en el controlador

Las alarmas basadas en el controlador procesan entradas provenientes


de dos fuentes.

Fuente

Descripcin

Miembros de tag de alarma

Los miembros de tag de alarma en su mayor parte se procesan cuando la aplicacin del
usuario escanea la instruccin de alarma. Esto incluye lo siguiente:
procesamiento de cambios a los parmetros de configuracin;
evaluacin de la condicin de alarma;
medicin del tiempo transcurrido para MinDuration;
captura de los sellos de hora de InAlarmTime y RetToNormalTime;
captura de valores de tag asociados;
procesamiento de los comandos Prog y Oper;
Adems, estos miembros de estado de tag de alarma se actualizan a medida que los
mensajes de alarma se entregan a cada suscriptor, de manera asncrona con el escn del
programa:
DeliveryEN, DeliveryER, DeliveryDN
NoSubscriber, NoConnection, CommError, AlarmBuffered, SubscNotified

Mensajes de clientes

Los mensajes de clientes son procesados a medida que se reciben, de manera asncrona
con el escn del programa.
Comandos restablecer, confirmar, inhabilitar/habilitar y suprimir/cancelar supresin
desde un terminal RSLogix 5000.
Comandos restablecer, confirmar, inhabilitar/habilitar y suprimir/cancelar supresin
desde un suscriptor de alarmas FactoryTalk View SE.

Tenga cuidado al determinar dnde colocar las instrucciones de


alarma en la aplicacin. La exactitud de los sellos de hora se ve
afectada por la rapidez con que se escanea la instruccin despus de
que la condicin de alarma cambia de estado. Los clculos de
acumulacin de tiempo de MinDuration y la velocidad de cambio
requieren escaneo repetido, dentro de los intervalos de tiempo
determinados por la aplicacin de usuario. Las instrucciones de
alarma deben continuar escanendose despus de que la condicin
de alarma se hace falsa, de modo que pueda detectarse la transicin
de ReturnToNormal. Por ejemplo, si usted desea una exactitud de
10 ms en los sellos de hora, podra colocar las instrucciones de alarma
que necesitan dicha resolucin en una tarea peridica de 10 ms.

72

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 1

Uso de la memoria del controlador


Como pauta, use los siguientes tamaos de alarma para hacer un
clculo general del uso de memoria del controlador:
Tpicamente, 1 KB por alarma digital sin tags asociados
Ejemplo de alarma digital

Tamao aproximado

Alarma digital sin tags asociados y esta configuracin:

1012 bytes

Mensaje de alarma: Fallo de contactor


Clase de alarma: Zona de tanques A
Alarma digital con dos tags asociados y esta configuracin:

1100 bytes

Mensaje de alarma: Fallo de contactor


Clase de alarma: Zona de tanques A
Tag asociado 1 = tipo de datos DINT
Tag asociado 2 = tipo de datos DINT
Alarma digital con dos tags asociados y esta configuracin:

1522 bytes

Mensaje de alarma: Fallo de contactor


Clase de alarma: Zona de tanques A
Tag asociado 1 = tipo de datos DINT
Tag asociado 2 = tipo de datos STRING

Publicacin 1756-RM003K-ES-P Julio 2008

73

Captulo 1

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

Tpicamente, 2.2 KB por alarma analgica sin tags asociados


Ejemplo de alarma analgica

Tamao aproximado

Alarma analgica sin tags asociados y esta configuracin:

2228 bytes

Mensaje de alarma HH: Alarma de nivel


Mensaje de alarma H: Alarma de nivel
Mensaje de alarma L: Alarma de nivel
Mensaje de alarma LL: Alarma de nivel
Mensaje positivo de velocidad de cambio: Se llena demasiado rpido
Mensaje negativo de velocidad de cambio: Se vaca demasiado rpido
Clase de alarma: Zona de tanques A
Alarma analgica con dos tags asociados y esta configuracin:

2604 bytes

Mensaje de alarma HH: Alarma de nivel


Mensaje de alarma H: Alarma de nivel
Mensaje de alarma L: Alarma de nivel
Mensaje de alarma LL: Alarma de nivel
Mensaje positivo de velocidad de cambio: Se llena demasiado rpido
Mensaje negativo de velocidad de cambio: Se vaca demasiado rpido
Clase de alarma: Zona de tanques A
Tag asociado 1 = tipo de datos DINT
Tag asociado 2 = tipo de datos DINT
Alarma analgica con dos tags asociados y esta configuracin:

4536 bytes

Mensaje de alarma HH: Alarma de nivel


Mensaje de alarma H: Alarma de nivel
Mensaje de alarma L: Alarma de nivel
Mensaje de alarma LL: Alarma de nivel
Mensaje positivo de velocidad de cambio: Se llena demasiado rpido
Mensaje negativo de velocidad de cambio: Se vaca demasiado rpido
Clase de alarma: Zona de tanques A
Tag asociado 1 = tipo de datos DINT
Tag asociado 2 = tipo de datos STRING

Las cadenas de mensaje ms largas, al igual que las cadenas de


mensaje para mltiples idiomas, consumen memoria adicional de su
controlador.
El uso real de memoria depende de cmo se configura la alarma, de
la longitud del mensaje y de los tags asociados pasados con la alarma.

74

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 1

Tiempo de escn
Estos tiempos de ejecucin muestran cmo las instrucciones ALMD y
ALMA afectan el tiempo de escn total.
Estado de rengln

Tiempos de ejecucin
Alarma digital
(ALMD)

Alarma analgica
(ALMA)

8 s

17 s

Rengln
verdadero

8 s

60 s

Rengln
falso

35 s

17 s

Rengln
verdadero

35 s

126 s

Sin cambio de estado Rengln


de alarma
falso

Cambio de estado de
alarma

Un cambio de estado de alarma es un evento que cambia la condicin


de la alarma, tal como confirmar o suprimir la alarma. Minimice el
potencial de que un gran nmero de alarmas cambie de estado
simultneamente (rfagas de alarmas) creando dependencias en
alarmas relacionadas. Las grandes rfagas de alarmas pueden tener un
efecto considerable en el tiempo de escn del cdigo de aplicacin.

Publicacin 1756-RM003K-ES-P Julio 2008

75

Captulo 1

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

Notas:

76

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

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

Introduccin
Si desea
habilitar salidas cuando se establece un bit.

Use las instrucciones de bits (tipo rel) para monitorear y controlar el


estado de los bits.
Use esta instruccin
XIC

Disponible en estos lenguajes


lgica de escalera de rels

Vea la pgina
78

texto estructurado(1)
habilitar salidas cuando se borra un bit.

XIO

lgica de escalera de rels


texto estructurado

establecer un bit

OTE

80

(1)

lgica de escalera de rels

82

texto estructurado(1)
establecer un bit (retentivo)

OTL

lgica de escalera de rels


texto estructurado

borrar un bit (retentivo)

OTU

lgica de escalera de rels


texto estructurado

84

(1)

86

(1)

ONS

establecer un bit por un escn cada vez que el


rengln se hace verdadero

OSR

lgica de escalera de rels

91

establecer un bit por un escn cada vez que el


rengln se hace falso

OSF

lgica de escalera de rels

94

establecer un bit por un escn cada vez que el


bit de entrada se establece en el bloque de
funciones

OSRI

texto estructurado
bloque de funciones

96

establecer un bit por un escn cada vez que el


bit de entrada se borra en el bloque de
funciones

OSFI

texto estructurado
bloque de funciones

99

(1)

lgica de escalera de rels

88

habilitar salidas por un escn cada vez que el


rengln se hace verdadero

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.

77Publicacin 1756-RM003K-ES-P Julio 2008

77

Captulo 2

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

Examinar si est cerrado


(XIC)

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


establecido.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

bit de datos

BOOL

tag

bit que se va a probar

Texto estructurado
El texto estructurado no tiene una instruccin XIC, pero usted puede
lograr los mismos resultados usando una construccin IF...THEN.
IF data_bit THEN
<statement>;
END_IF;

Consulte el Apndice 641B, Atributos de bloque de funciones para


obtener informacin sobre la sintaxis de las construcciones en texto
estructurado.

Descripcin: La instruccin XIC examina el bit de datos para determinar si est


establecido.

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

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

examinar bit
de datos

bit de datos = 0

la condicin de salida de
rengln se establece como
falsa

bit de datos = 1

la condicin de salida de
rengln se establece como
verdadera
fin

post-escn

78

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 2

Ejemplo 1: Si se establece limit_switch_1, esto habilita la siguiente instruccin


(la condicin de salida de rengln es verdadera).

Lgica de escalera de rels

Texto estructurado
IF limit_switch THEN
<statement>;
END_IF;

Ejemplo 2: Si se establece S:V (indica que ocurri un overflow), esto habilita la


siguiente instruccin (la condicin de salida del rengln es
verdadera).

Lgica de escalera de rels

Texto estructurado
IF S:V THEN
<statement>;
END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008

79

Captulo 2

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

Examinar si est abierto


(XIO)

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


borrado.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

bit de datos

BOOL

tag

bit que se va a probar

Texto estructurado
El texto estructurado no tiene una instruccin XIO, pero usted puede
lograr los mismos resultados usando una construccin IF...THEN.
IF NOT data_bit THEN
<statement>;
END_IF;

Consulte el Apndice 641B, Atributos de bloque de funciones para


obtener informacin sobre la sintaxis de las construcciones en texto
estructurado.

Descripcin: La instruccin XIO examina el bit de datos para determinar si est


borrado.

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

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

examinar bit de
datos

bit de datos = 0

la condicin de salida de
rengln se establece como
verdadera

bit de datos = 1

la condicin de salida de
rengln se establece como
falsa
fin

post-escn

80

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 2

Ejemplo 1: Si se borra limit_switch_2, esto habilita la siguiente instruccin


(la condicin de salida de rengln es verdadera).

Lgica de escalera de rels

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

Ejemplo 2: Si S:V se borra (indica que no ocurri un overflow), esto habilita la


siguiente instruccin (la condicin de salida del rengln es
verdadera).

Lgica de escalera de rels

Texto estructurado
IF NOT S:V THEN
<statement>;
END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008

81

Captulo 2

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

Activacin de salida (OTE)

La instruccin OTE establece o borra el bit de datos.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

bit de datos

BOOL

tag

bit que se va a establecer o borrar

Texto estructurado
El texto estructurado no tiene una instruccin OTE, pero usted puede
lograr los mismos resultados usando una asignacin no retentiva.
data_bit [:=] BOOL_expression;

Consulte el Apndice 641B, Atributos de bloque de funciones para


obtener informacin sobre la sintaxis de asignaciones y expresiones
en texto estructurado.

Descripcin: Cuando se habilita la instruccin OTE, el controlador establece el bit


de datos. Cuando se inhabilita la instruccin OTE, el controlador borra
el bit de datos.

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

Accin de lgica de escalera de rels

preescn

El bit de datos se borra.


La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln es falsa

El bit de datos se borra.


La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln es verdadera

El bit de datos se establece.


La condicin de salida de rengln se establece como verdadera.

post-escn

El bit de datos se borra.


La condicin de salida de rengln se establece como falsa.

82

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 2

Ejemplo: Cuando se establece switch, la instruccin OTE establece (activa)


light_1. Cuando se borra switch, la instruccin OTE borra (desactiva)
light_1.

Lgica de escalera de rels

Texto estructurado
light_1 [:=] switch;

Publicacin 1756-RM003K-ES-P Julio 2008

83

Captulo 2

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

Enclavamiento de salida
(OTL)

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

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

bit de datos

BOOL

tag

bit que se va a establecer

Texto estructurado
El texto estructurado no tiene una instruccin OTL, pero usted puede
lograr los mismos resultados usando una construccin IF...THEN y
una asignacin.
IF BOOL_expression THEN
data_bit := 1;
END_IF;

Consulte el Apndice 641B, Atributos de bloque de funciones para


obtener informacin sobre la sintaxis de construcciones, expresiones
y asignaciones en texto estructurado.

Descripcin: Cuando se habilita, la instruccin OTL establece el bit de datos. El bit


de datos permanece establecido hasta que es borrado, generalmente
por una instruccin OTU. Cuando se inhabilita, la instruccin OTL no
cambia el estado del bit de datos.

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

Accin de lgica de escalera de rels

preescn

El bit de datos no se modifica.


La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln es falsa

El bit de datos no se modifica.


La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln es verdadera

El bit de datos se establece.


La condicin de salida de rengln se establece como verdadera.

post-escn

El bit de datos no se modifica.


La condicin de salida de rengln se establece como falsa.

84

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 2

Ejemplo: Cuando se habilita, la instruccin OTL establece light_2. Este bit de


datos permanece establecido hasta que es borrado, generalmente por
una instruccin OTU.

Lgica de escalera de rels

Texto estructurado
IF BOOL_expression THEN
light_2 := 1;
END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008

85

Captulo 2

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

Desenclavamiento de
salida (OTU)

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

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

bit de datos

BOOL

tag

bit que se va a borrar

Texto estructurado
El texto estructurado no tiene una instruccin OTU, pero usted puede
lograr los mismos resultados usando una construccin IF...THEN y
una asignacin.
IF BOOL_expression THEN
data_bit := 0;
END_IF;

Consulte el Apndice 641B, Atributos de bloque de funciones para


obtener informacin sobre la sintaxis de construcciones, expresiones
y asignaciones en texto estructurado.

Descripcin: Cuando se habilita, la instruccin OTU borra el bit de datos. Cuando


se inhabilita, la instruccin OTU no cambia el estado del bit de datos.

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

Accin de lgica de escalera de rels

preescn

El bit de datos no se modifica.


La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln es falsa

El bit de datos no se modifica.


La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln es verdadera

El bit de datos se borra.


La condicin de salida de rengln se establece como verdadera.

post-escn

El bit de datos no se modifica.


La condicin de salida de rengln se establece como falsa.

86

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 2

Ejemplo: Cuando se habilita, la instruccin OTU borra light_2.


Lgica de escalera de rels

Texto estructurado
IF BOOL_expression THEN
light_2 := 0;
END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008

87

Captulo 2

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

Un impulso (ONS)

La instruccin ONS habilita o inhabilita el resto del rengln,


dependiendo del estado del bit de almacenamiento.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

storage bit

BOOL

tag

bit de almacenamiento interno


almacena la condicin de entrada del rengln
desde la ltima vez que se ejecut la
instruccin

Texto estructurado
El texto estructurado no tiene una instruccin ONS, pero usted puede
lograr los mismos resultados usando una construccin IF...THEN.
IF BOOL_expression AND NOT storage_bit THEN
<statement>;
END_IF;
storage_bit := BOOL_expression;

Consulte el Apndice 641B, Atributos de bloque de funciones para


obtener informacin sobre la sintaxis de construcciones y expresiones
en texto estructurado.

Descripcin: Cuando se habilita y el bit de almacenamiento se borra, la instruccin


ONS habilita el resto del rengln. Cuando se inhabilita o cuando el bit
de almacenamiento se establece, la instruccin ONS inhabilita el resto
del rengln.

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

88

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 2

Ejecucin:
Condicin

Accin de lgica de escalera de rels

preescn

El bit de almacenamiento se establece para evitar una activacin no vlida durante el


primer escn.
La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln es falsa

El bit de almacenamiento se borra.


La condicin de salida de rengln se establece como falsa.

condicin de entrada de
rengln es verdadera

examinar bit de
almacenamiento

bit de
almacenamiento = 0

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

bit de
almacenamiento = 1

el bit de almacenamiento
permanece establecido
la condicin de salida de
rengln se establece como
falsa

post-escn

fin

El bit de almacenamiento se borra.


La condicin de salida de rengln se establece como falsa.

Ejemplo: Normalmente una instruccin ONS est precedida por una instruccin
de entrada, porque la instruccin ONS se escanea cuando sta se
habilita y cuando se inhabilita para que funcione correctamente. Una
vez que la instruccin ONS se habilita, la condicin de entrada de
rengln debe borrarse, o el bit de almacenamiento debe borrarse para
que la instruccin ONS se habilite nuevamente.

Publicacin 1756-RM003K-ES-P Julio 2008

89

Captulo 2

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

En todo escn en que limit_switch_1 se borra o storage_1 se


establece, este rengln no tiene efecto. En todo escn en que
limit_switch_1 se establece y storage_1 se borra, la instruccin ONS
establece storage_1 y la instruccin ADD incrementa sum en 1.
Siempre que limit_switch_1 permanezca esta blecido, sum permanece
con el mismo valor. limit_switch_1 debe cambiar de borrado a
establecido nuevamente para que se incremente sum nuevamente.

Lgica de escalera de rels

Texto estructurado
IF limit_switch_1 AND NOT storage_1 THEN
sum := sum + 1;
END_IF;
storage_1 := limit_switch_1;

90

Publicacin 1756-RM003K-ES-P Julio 2008

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

Un impulso en flanco
ascendente (OSR)

Captulo 2

La instruccin OSR establece o borra el bit de salida, dependiendo del


estado del bit de almacenamiento.
Esta instruccin est disponible en texto estructurado y en bloque de
funciones como OSRI; vea la pgina 96.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

storage bit

BOOL

tag

bit de almacenamiento interno


almacena la condicin de entrada del rengln
desde la ltima vez que se ejecut la
instruccin

output bit

BOOL

tag

bit que se va a establecer

Descripcin: Cuando se habilita y el bit de almacenamiento est borrado, la


instruccin OSR establece el bit de salida. Cuando se habilita y el bit
de almacenamiento est establecido o cuando se inhabilita, la
instruccin OSR borra el bit de salida.

condicin de entrada
del rengln

bit de almacenamiento

bit de salida

la instruccin
se ejecuta

la instruccin se restablece durante


la siguiente ejecucin del escn

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

Publicacin 1756-RM003K-ES-P Julio 2008

91

Captulo 2

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

Ejecucin:
Condicin

Accin de lgica de escalera de rels

preescn

El bit de almacenamiento se establece para evitar una activacin no vlida durante el


primer escn.
El bit de salida se borra.
La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln es falsa

El bit de almacenamiento se borra.


El bit de salida no se modifica.
La condicin de salida de rengln se establece como falsa.

condicin de entrada de
rengln es verdadera

examinar bit de
almacenamiento

bit de
almacenamiento = 0

bit de
almacenamiento = 1

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

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

post-escn

fin

El bit de almacenamiento se borra.


El bit de salida no se modifica.
La condicin de salida de rengln se establece como falsa.

92

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 2

Ejemplo: Cada vez que limit_switch_1 cambia de borrado a establecido, la


instruccin OSR establece output_bit_1 y la instruccin ADD
incrementa sum en 5. Siempre que limit_switch_1 permanezca
establecido, sum permanece con el mismo valor. El limit_switch_1
debe cambiar de borrado a establecido nuevamente para que sum se
incremente nuevamente. Usted puede usar output_bit_1 en varios
renglones para activar otras operaciones.

Publicacin 1756-RM003K-ES-P Julio 2008

93

Captulo 2

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

Un impulso en flanco
descendente (OSF)

La instruccin OSF establece o borra el bit de salida dependiendo del


estado del bit de almacenamiento.
Esta instruccin est disponible en texto estructurado y en bloque de
funciones como OSFI; vea la pgina 99.

Operandos:
Operandos de lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

storage bit

BOOL

tag

bit de almacenamiento interno


almacena la condicin de entrada del rengln
desde la ltima vez que se ejecut la
instruccin

output bit

BOOL

tag

bit que se va a establecer

Descripcin: Cuando se inhabilita y el bit de almacenamiento est establecido, la


instruccin OSF establece el bit de salida. Cuando se inhabilita y el bit
de almacenamiento est borrado o cuando se habilita, la instruccin
OSF borra el bit de salida.
condicin de
entrada del rengln

bit de
almacenamiento

bit de salida

la instruccin
se ejecuta

la instruccin se restablece
durante la siguiente
ejecucin del escn

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

94

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 2

Ejecucin:
Condicin

Accin de lgica de escalera de rels

preescn

El bit de almacenamiento se borra para evitar una activacin no vlida durante el primer
escn.
El bit de salida se borra.
La condicin de salida de rengln se establece como falsa.

condicin de entrada de
rengln es falsa

examinar bit de
almacenamiento

bit de
almacenamiento = 0

bit de
almacenamiento = 1

el bit de almacenamiento
permanece borrado
el bit de salida se borra la
condicin de salida de
rengln se establece como
falsa

el bit de almacenamiento
se borra
el bit de salida se establece
la condicin de salida de
rengln se establece como
falsa

condicin de entrada de rengln es verdadera

fin

El bit de almacenamiento se establece.


El bit de salida se borra.
La condicin de salida de rengln se establece como verdadera.

post-escn

Ntese que la condicin de entrada del rengln es falsa arriba.

Ejemplo: Cada vez que limit_switch_1 cambia de establecido a borrado, la


instruccin OSF establece output_bit_2 y la instruccin ADD
incrementa sum en 5. Siempre que limit_switch_1 permanezca
borrado, sum permanece con el mismo valor. El limit_switch_1 debe
cambiar de establecido a borrado nuevamente para que sum se
incremente nuevamente. Usted puede usar output_bit_2 en varios
renglones para activar otras operaciones.

Publicacin 1756-RM003K-ES-P Julio 2008

95

Captulo 2

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

Un impulso en flanco
ascendente con entrada
(OSRI)

La instruccin OSRI establece el bit de salida por un ciclo de


ejecucin cuando el bit de entrada cambia de borrado a establecido.
Esta instruccin est disponible en lgica de escalera de rels como
OSR; vea la pgina 91.

Operandos:
OSRI(OSRI_tag);

Texto estructurado
Operando

Tipo

Formato

Descripcin

tag OSRI

FBD_ONESHOT

estructura

estructura OSRI

Bloque de funciones
Operando

Tipo

Formato

Descripcin

tag OSRI

FBD_ONESHOT

estructura

estructura OSRI

Estructura FBD_ONESHOT
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Bloque de funciones:
Si se borra, la instruccin no se ejecuta y las salidas no se actualizan.
Si se establece, la instruccin se ejecuta.
La opcin predeterminada es establecido.
Texto estructurado:
Ningn efecto. La instruccin se ejecuta.

InputBit

BOOL

Bit de entrada. Esto es equivalente a la condicin del rengln para la instruccin OSR de
lgica de escalera de rels.
La opcin predeterminada es borrado.

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

OutputBit

BOOL

Bit de salida

96

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 2

Descripcin: Cuando InputBit se establece y InputBitn-1 se borra, la instruccin


OSRI establece OutputBit. Cuando InputBitn-1 se establece o cuando
InputBit se borra, la instruccin OSRI borra OutputBit.

InputBit

InputBitn-1

OutputBit

la instruccin
se ejecuta

la instruccin se restablece durante


la siguiente ejecucin del escn

40048

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

Accin de bloque de funciones

Accin de texto estructurado

preescn

Ninguna.

Ninguna.

primer escn de instruccin InputBit n-1 se establece.

InputBit n-1 se establece.

primera ejecucin de
instruccin

InputBit n-1 se establece.

InputBit n-1 se establece.

EnableIn se borra

EnableOut se borra, la instruccin no efecta


ninguna operacin y las salidas no se actualizan.

n. a.

EnableIn se establece

En una transicin de borrado a establecido de


InputBit, la instruccin establece InputBit n-1.

En una transicin de borrado a establecido de


InputBit, la instruccin establece InputBit n-1.

La instruccin se ejecuta.

EnableIn siempre se establece.

EnableOut se establece.

La instruccin se ejecuta.

Ninguna.

Ninguna.

post-escn

Publicacin 1756-RM003K-ES-P Julio 2008

97

Captulo 2

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

Ejemplo: Cuando limit_switch1 cambia de borrado a establecido, la instruccin


OSRI establece OutputBit por un escn.

Texto estructurado
OSRI_01.InputBit := limit_switch1;

OSRI(OSRI_01);

State := OSRI_01.OutputBit;

Bloque de funciones

98

Publicacin 1756-RM003K-ES-P Julio 2008

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

Un impulso en flanco
descendente con entrada
(OSFI)

Captulo 2

La instruccin OSFI establece OutputBit por un ciclo de ejecucin


cuando InputBit cambia de establecido a borrado.
Esta instruccin est disponible en lgica de escalera de rels como
OSF; vea la pgina 94.

Operandos:
OSFI(OSFI_tag);

Texto estructurado
Operando

Tipo

Formato

Descripcin

tag OSFI

FBD_ONESHOT

estructura

estructura OSFI

Bloque de funciones
Operando

Tipo

Formato

Descripcin

tag OSFI

FBD_ONESHOT

estructura

estructura OSFI

Estructura FBD_ONESHOT
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Bloque de funciones:
Si se borra, la instruccin no se ejecuta y las salidas no se actualizan.
Si se establece, la instruccin se ejecuta.
La opcin predeterminada es establecido.
Texto estructurado:
Ningn efecto. La instruccin se ejecuta.

InputBit

BOOL

Bit de entrada. Esto es equivalente a la condicin del rengln para la instruccin OSF de
lgica de escalera de rels
La opcin predeterminada es borrado.

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

OutputBit

BOOL

Bit de salida

Publicacin 1756-RM003K-ES-P Julio 2008

99

Captulo 2

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

Descripcin: Cuando InputBit se borra y InputBit n-1 se establece, la instruccin


OSFI establece OutputBit. Cuando InputBit n-1 se borra o cuando
InputBit se establece, la instruccin OSFI borra OutputBit.
InputBit

InputBit n-1

OutputBit

la instruccin
se ejecuta

la instruccin se restablece durante


la siguiente ejecucin del escn
40047

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

Accin de bloque de funciones

Accin de texto estructurado

preescn

Ninguna.

Ninguna.

primer escn de instruccin InputBit n-1 se borra.

InputBit n-1 se borra.

primera ejecucin de
instruccin

InputBit n-1 se borra.

InputBit n-1 se borra.

EnableIn se borra

EnableOut se borra, la instruccin no efecta


ninguna operacin y las salidas no se actualizan.

n. a.

EnableIn se establece

En una transicin de borrado a establecido de


InputBit, la instruccin borra InputBit n-1.

En una transicin de borrado a establecido de


InputBit, la instruccin borra InputBit n-1.

La instruccin se ejecuta.

EnableIn siempre se establece.

EnableOut se establece.

La instruccin se ejecuta.

Ninguna.

Ninguna.

post-escn

100

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 2

Ejemplo: Cuando limit_switch1 cambia de establecido a borrado, la instruccin


OSFI establece OutputBit por un escn.

Texto estructurado
OSFI_01.InputBit := limit_switch1;

OSFI(OSFI_01);

Output_state := OSFI_01.OutputBit;

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

101

Captulo 2

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

Notas:

102

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

Instrucciones de temporizador y contador


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

Introduccin
Si desea

Los temporizadores y contadores controlan operaciones en base a


tiempo o nmero de eventos.
Use esta instruccin

Disponible en estos lenguajes

Vea la pgina

establecer el tiempo durante el cual un


temporizador est habilitado

TON

lgica de escalera de rels

104

establecer el tiempo durante el cual un


temporizador est inhabilitado

TOF

lgica de escalera de rels

108

acumular tiempo

RTO

lgica de escalera de rels

112

establecer el tiempo durante el cual un


temporizador est habilitado con
restablecimiento incorporado en el bloque de
funciones

TONR

texto estructurado

116

establecer el tiempo durante el cual un


temporizador est inhabilitado con
restablecimiento incorporado en el bloque de
funciones

TOFR

acumular tiempo con restablecimiento


incorporado en el bloque de funciones

RTOR

bloque de funciones
texto de estructura

120

bloque de funciones
texto estructurado

124

bloque de funciones
conteo progresivo

CTU

lgica de escalera de rels

128

conteo regresivo

CTD

lgica de escalera de rels

132

conteo progresivo y regresivo en el bloque de


funciones

CTUD

texto estructurado

136

bloque de funciones
restablecer un temporizador o un contador

RES

lgica de escalera de rels

141

La base de tiempo para todos los temporizadores es 1 ms.

103Publicacin 1756-RM003K-ES-P Julio 2008

103

Captulo 3

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

Temporizador de retardo a
la conexin (TON)

La instruccin TON es un temporizador no retentivo que acumula el


tiempo cuando la instruccin est habilitada (la condicin de entrada
del rengln es verdadera).
Esta instruccin est disponible en texto estructurado y en bloque de
funciones como TONR; vea la pgina 116.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Timer

TIMER

tag

estructura de temporizador

Preset

DINT

inmediato

perodo de retardo (acumulacin de tiempo)

Acum

DINT

inmediato

el tiempo en ms contado por el temporizador


el valor inicial es tpicamente 0

Estructura TIMER
Mnemnico

Tipo de datos

Descripcin

.EN

BOOL

El bit de habilitacin indica que la instruccin TON est habilitada.

.TT

BOOL

El bit de temporizacin indica que se est ejecutando una operacin de temporizacin.

.DN

BOOL

El bit de efectuado se establece cuando .ACC .PRE.

.PRE

DINT

El valor de preajuste especifica el valor (en unidades de 1 ms) al que debe llegar el valor
acumulado para que la instruccin establezca el bit .DN.

.ACC

DINT

El valor acumulado especifica el nmero de milisegundos que han transcurrido desde que se
habilit la instruccin TON.

Descripcin: La instruccin TON acumula tiempo hasta que:


la instruccin TON se inhabilita
.ACC .PRE
La base de tiempo siempre es 1 ms. Por ejemplo, en un temporizador
de 2 segundos, introduzca 2000 como valor .PRE.

104

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 3

Cuando se inhabilita la instruccin TON, se borra el valor .ACC.

condicin de entrada del rengln


bit de habilitacin de temporizador (.EN)
bit de temporizador temporizando (.TT)
bit de temporizador expirado (.DN)
Retardo
a la
conexin

preajuste
valor acumulado de temporizador (.ACC) 0

el temporizador no
lleg al valor .PRE
16649

Un temporizador se ejecuta restando la hora de su ltimo escn de la


hora actual:
ACC = ACC + (current_time - last_time_scanned)
Despus de que se actualiza el ACC, el temporizador establece
last_time_scanned = current_time. Esto deja el temporizador
listo para el siguiente escn.

IMPORTANTE

Asegrese de escanear el temporizador por lo menos cada 69 minutos mientras se ejecuta.


De no hacerse, el valor ACC no ser correcto.
El valor last_time_scanned tiene un rango de hasta 69 minutos. El clculo del
temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso de
69 minutos. Si esto sucede, el valor ACC no ser correcto.
Durante la ejecucin de un temporizador, escanelo dentro de un lapso no mayor de
69 minutos si lo coloca en una:
subrutina
seccin de cdigo comprendida entre las instrucciones JMP y LBL
diagrama de funcin secuencial (SFC)
evento o tarea peridica
rutina de estado de una fase

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ocurrir un fallo mayor si

Publicacin 1756-RM003K-ES-P Julio 2008

Tipo de fallo

Cdigo de fallo

.PRE < 0

34

.ACC < 0

34

105

Captulo 3

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

Ejecucin:
Condicin

Accin de lgica de escalera de rels

preescn

Los bits .EN, .TT y .DN se borran.


El valor .ACC se borra.
La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln es falsa

Los bits .EN, .TT y .DN se borran.


El valor .ACC se borra.
La condicin de salida de rengln se establece como falsa.

condicin de entrada de
rengln es verdadera

examine el bit .DN

Bit .DN = 1

Bit .DN = 0

examine el bit .EN

Bit .EN = 0

el bit .EN se establece


el bit .TT se establece
last_time = current_time

Bit .EN = 1

el bit .TT se establece


.ACC = .ACC + (current_time - last_time)
last_time = current_time

.ACC .PRE

examine .ACC

.ACC < .PRE


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

no

la condicin de salida de
rengln se establece como
verdadera

.ACC = 2,147,483,647
fin

post-escn

106

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 3

Ejemplo: Cuando limit_switch_1 se establece, light_2 se enciende por 180 ms.


(timer_1 est temporizando). Cuando timer_1.acc llega a 180, light_2
se apaga y light_3 se enciende. Light_3 permanece encendida hasta
que se inhabilita la instruccin TON. Si limit_switch_1 se borra
mientras que timer_1 est temporizando light_2 se apaga.

Publicacin 1756-RM003K-ES-P Julio 2008

107

Captulo 3

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

Temporizador de retardo a
la desconexin (TOF)

La instruccin TOF es un temporizador no retentivo que acumula el


tiempo cuando la instruccin est habilitada (la condicin de entrada
del rengln es falsa).
Esta instruccin est disponible en texto estructurado y en bloque de
funciones como TOFR; vea la pgina 120.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Timer

TIMER

tag

estructura de temporizador

Preset

DINT

inmediato

perodo de retardo (acumulacin de tiempo)

Acum

DINT

inmediato

total de ms que cont el temporizador


el valor inicial es tpicamente 0

Estructura TIMER
Mnemnico

Tipo de datos

Descripcin

.EN

BOOL

El bit de habilitacin indica que la instruccin TOF est habilitada.

.TT

BOOL

El bit de temporizacin indica que se est ejecutando una operacin de temporizacin.

.DN

BOOL

El bit de efectuado se borra cuando .ACC .PRE.

.PRE

DINT

El valor de preajuste especifica el valor (en unidades de 1 ms) al que debe llegar el valor
acumulado para que la instruccin borre el bit .DN.

.ACC

DINT

El valor acumulado especifica el nmero de milisegundos que han transcurrido desde que se
habilit la instruccin TOF.

Descripcin: La instruccin TOF acumula tiempo hasta que:


la instruccin TOF se inhabilita
.ACC .PRE
La base de tiempo siempre es 1 ms. Por ejemplo, en un temporizador
de 2 segundos, introduzca 2000 para el valor .PRE.

108

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 3

Cuando se inhabilita la instruccin TOF, se borra el valor .ACC.


condicin de entrada del rengln
bit de habilitacin de temporizador (.EN)
bit de temporizador temporizando (.TT)
bit de temporizador expirado (.DN)
retardo a la
desconexin
preajuste

valor acumulado de temporizador (.ACC)


0

16650

el temporizador no lleg al valor .PRE

Un temporizador se ejecuta restando la hora de su ltimo escn de la


hora actual:
ACC = ACC + (current_time - last_time_scanned)
Despus de que se actualiza el ACC, el temporizador establece
last_time_scanned = current_time. Esto deja el temporizador
listo para el siguiente escn.

IMPORTANTE

Asegrese de escanear el temporizador por lo menos cada 69 minutos mientras se ejecuta.


De no hacerse, el valor ACC no ser correcto.
El valor last_time_scanned tiene un rango de hasta 69 minutos. El clculo del
temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso de
69 minutos. Si esto sucede, el valor ACC no ser correcto.
Durante la ejecucin de un temporizador, escanelo dentro de un lapso no mayor de
69 minutos si lo coloca en una:
subrutina
seccin de cdigo comprendida entre las instrucciones JMP y LBL
diagrama de funcin secuencial (SFC)
evento o tarea peridica
rutina de estado de una fase

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ocurrir un fallo mayor si

Publicacin 1756-RM003K-ES-P Julio 2008

Tipo de fallo

Cdigo de fallo

.PRE < 0

34

.ACC < 0

34

109

Captulo 3

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

Ejecucin:
Condicin

Accin de lgica de escalera de rels

preescn

Los bits .EN, .TT y .DN se borran.


El valor .ACC se establece para coincidir con el valor .PRE.
La condicin de salida de rengln se establece como falsa.

condicin de entrada de
rengln es falsa

examine el bit .DN

Bit .DN = 0

Bit .DN = 1

examine el bit .EN

Bit .EN = 1

el bit .EN se borra


el bit .TT se establece
last_time = current_time

Bit .EN = 0

el bit .TT se establece


.ACC = .ACC + (current_time - last_time)
last_time = current_time

examine .ACC

.ACC .PRE

.ACC < .PRE

el valor .ACC
retorna al
valor inicial

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

no

la condicin de salida de
rengln se establece como
falsa

.ACC = 2,147,483,647
fin

condicin de entrada de rengln es verdadera

Los bits .EN, .TT y .DN se establecen.


El valor .ACC se borra.
La condicin de salida de rengln se establece como verdadera.

post-escn

110

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 3

Ejemplo: Cuando limit_switch_2 se borra, light_2 se enciende durante 180 ms


(timer_2 est temporizando). Cuando timer_2.acc llega a 180, light_2
se apaga y light_3 se enciende. Light_3 permanece encendida hasta
que se habilita la instruccin TOF. Si limit_switch_2 se establece
mientras que timer_2 est temporizando light_2 se apaga.

Publicacin 1756-RM003K-ES-P Julio 2008

111

Captulo 3

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

Temporizador retentivo
activado (RTO)

La instruccin RTO es un temporizador retentivo que acumula tiempo


cuando la instruccin est habilitada.
Esta instruccin est disponible en texto estructurado y en bloque de
funciones como RTOR; vea la pgina 124.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Timer

TIMER

tag

estructura de temporizador

Preset

DINT

inmediato

perodo de retardo (acumulacin de tiempo)

Acum

DINT

inmediato

nmero de ms que cont el temporizador


el valor inicial es tpicamente 0

Estructura TIMER
Mnemnico

Tipo de datos

Descripcin

.EN

BOOL

El bit de habilitacin indica que la instruccin RTO est habilitada.

.TT

BOOL

El bit de temporizacin indica que se est ejecutando una operacin de temporizacin.

.DN

BOOL

El bit de efectuado indica que .ACC .PRE.

.PRE

DINT

El valor de preajuste especifica el valor (en unidades de 1 ms) al que debe llegar el valor
acumulado para que la instruccin establezca el bit .DN.

.ACC

DINT

El valor acumulado especifica el nmero de milisegundos que han transcurrido desde que se
habilit la instruccin RTO.

Descripcin: La instruccin RTO acumula tiempo hasta que se inhabilita. Cuando la


instruccin RTO se inhabilita, retiene su valor .ACC. Usted debe borrar
el valor .ACC, normalmente con una instruccin RES que referencia la
misma estructura TIMER.

112

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 3

La base de tiempo siempre es 1 ms. Por ejemplo, en un temporizador


de 2 segundos, introduzca 2000 para el valor .PRE.
condicin de entrada del rengln
bit de habilitacin de temporizador (.EN)
condicin de rengln que controla la instruccin RES
bit de temporizador temporizando (.TT)

bit de temporizador expirado (.DN)

preajuste

16651

valor acumulado de temporizador (.ACC)


0

el temporizador no lleg al valor .PRE

Un temporizador se ejecuta restando la hora de su ltimo escn de la


hora actual:
ACC = ACC + (current_time - last_time_scanned)
Despus de que se actualiza el ACC, el temporizador establece
last_time_scanned = current_time. Esto deja el temporizador
listo para el siguiente escn.

IMPORTANTE

Asegrese de escanear el temporizador por lo menos cada 69 minutos mientras se ejecuta.


De no hacerse, el valor ACC no ser correcto.
El valor last_time_scanned tiene un rango de hasta 69 minutos. El clculo del
temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso de
69 minutos. Si esto sucede, el valor ACC no ser correcto.
Durante la ejecucin de un temporizador, escanelo dentro de un lapso no mayor de
69 minutos si lo coloca en una:
subrutina
seccin de cdigo comprendida entre las instrucciones JMP y LBL
diagrama de funcin secuencial (SFC)
evento o tarea peridica
rutina de estado de una fase

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ocurrir un fallo mayor si

Publicacin 1756-RM003K-ES-P Julio 2008

Tipo de fallo

Cdigo de fallo

.PRE < 0

34

.ACC < 0

34

113

Captulo 3

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

Ejecucin:
Condicin

Accin de lgica de escalera de rels

preescn

Los bits .EN, .TT y .DN se borran.


El valor .ACC no se modifica.
La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln es falsa

Los bits .EN y .TT se borran.


El bit .DN no se modifica.
El valor .ACC no se modifica.
La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln


es verdadera

examine el bit .DN

Bit .DN = 1

Bit .DN = 0

examine el bit .EN

Bit .EN = 0

el bit .EN se establece


el bit .TT se establece
last_time = current_time

Bit .EN = 1

el bit .TT se establece


.ACC = .ACC + (current_time - last_time)
last_time = current_time

examine .ACC

.ACC < .PRE

el valor .ACC
retorna al
valor inicial
s

.ACC .PRE

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

no

la condicin de salida de
rengln se establece como
verdadera

.ACC = 2,147,483,647
fin

post-escn

114

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 3

Ejemplo: Cuando limit_switch_1 se establece, light_1 se enciende por 180 ms


(timer_2 est temporizando). Cuando timer_3.acc llega a 180, light_1
se apaga y light_2 se enciende. Light_2 permanece hasta que timer_3
se restablece. Si limit_switch_2 se borra mientras que timer_3 est
temporizando light_1 permanece encendida. Cuando limit_switch_2
se establece, la instruccin RES restablece timer_3 (borra los bits de
estado y el valor .ACC).

Publicacin 1756-RM003K-ES-P Julio 2008

115

Captulo 3

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

Temporizador de retardo
a la conexin con
restablecimiento (TONR)

La instruccin TONR es un temporizador no retentivo que acumula


tiempo cuando TimerEnable est establecido.
Esta instruccin est disponible en lgica de escalera de rels como
dos instrucciones separadas: TON (vea pgina 104) y RES
(vea pgina 141).

Operandos:
TONR(TONR_tag);

Texto estructurado
Variable

Tipo

Formato

Descripcin

tag TONR

FBD_TIMER

estructura

estructura TONR

Bloque de funciones
Operando

Tipo

Formato

Descripcin

tag TONR

FBD_TIMER

estructura

estructura TONR

Estructura FBD_TIMER
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Bloque de funciones:
Si se borra, la instruccin no se ejecuta y las salidas no se actualizan.
Si se establece, la instruccin se ejecuta.
La opcin predeterminada es establecido.
Texto estructurado:
Ningn efecto. La instruccin se ejecuta.

TimerEnable

BOOL

Si se establece, permite que el temporizador se ejecute y acumule tiempo.


La opcin predeterminada es borrado.

PRE

DINT

Valor prefijado en el temporizador. ste es un valor expresado en unidades de 1 ms al que


ACC debe llegar antes de que concluya la temporizacin. Si no es vlido, la instruccin
establece el bit apropiado en Status y el temporizador no se ejecuta.
Vlido = 0 hasta el entero positivo mximo

Reset

BOOL

Peticin para restablecer el temporizador. Cuando se establece, el temporizador se


restablece.
La opcin predeterminada es borrado.

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

ACC

BOOL

Tiempo acumulado en milisegundos.

EN

BOOL

Salida de temporizador habilitado. Indica que la instruccin de temporizador est habilitada.

TT

BOOL

Salida de temporizador temporizando. Cuando se establece, se est ejecutando una


operacin de temporizacin.

116

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 3

Parmetro de
entrada

Tipo de datos

Descripcin

DN

BOOL

Salida de temporizacin efectuada. Indica cuando el tiempo acumulado es mayor o igual que
el valor de preajuste.

Status

DINT

Estado del bloque de funciones.

InstructFault (Status.0) BOOL

La instruccin detect uno de los siguientes errores de ejecucin. ste no es un error menor
ni mayor del controlador. Verifique los bits de estado restantes para determinar lo que
ocurri.

PresetInv (Status.1)

El valor de preajuste no es vlido.

BOOL

Descripcin: La instruccin TONR acumula tiempo hasta que:


la instruccin TONR se inhabilita
ACC PRE
La base de tiempo siempre es 1 ms. Por ejemplo, en un temporizador
de 2 segundos, introduzca 2000 para el valor .PRE.
TimerEnable
bit de habilitacin (EN)
bit de temporizador temporizando (TT)
bit de temporizador expirado (.DN)
Retardo
a la
conexin

preajuste
valor acumulado de temporizador (.ACC) 0

el temporizador no
lleg al valor PRE

16649

Establezca el parmetro de entrada Reset para restablecer la


instruccin. Si TimerEnable se establece cuando Reset se establece,
la instruccin TONR comienza la temporizacin nuevamente cuando
Reset se borra.
Un temporizador se ejecuta restando la hora de su ltimo escn de la
hora actual:
ACC = ACC + (current_time - last_time_scanned)

Publicacin 1756-RM003K-ES-P Julio 2008

117

Captulo 3

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

Despus de que se actualiza el ACC, el temporizador establece


last_time_scanned = current_time. Esto deja el temporizador
listo para el siguiente escn.

IMPORTANTE

Asegrese de escanear el temporizador por lo menos cada 69 minutos mientras se ejecuta.


De no hacerse, el valor ACC no ser correcto.
El valor last_time_scanned tiene un rango de hasta 69 minutos. El clculo del
temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso de
69 minutos. Si esto sucede, el valor ACC no ser correcto.
Durante la ejecucin de un temporizador, escanelo dentro de un lapso no mayor de
69 minutos si lo coloca en una:
subrutina
seccin de cdigo comprendida entre las instrucciones JMP y LBL
diagrama de funcin secuencial (SFC)
evento o tarea peridica
rutina de estado de una fase

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo: ninguna
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.

El valor ACC se establece en 0.

El valor ACC se establece en 0.

Los bits EN, TT y DN se borran.

Los bits EN, TT y DN se borran.

El valor ACC se establece en 0.

El valor ACC se establece en 0.

EnableIn se borra

EnableOut se borra, la instruccin no efecta


ninguna operacin y las salidas no se actualizan.

n. a.

EnableIn se establece

Cuando EnableIn cambia de borrado a establecido,


la instruccin se inicializa segn lo descrito para el
primer escn de la instruccin.

EnableIn siempre se establece.

primera ejecucin de
instruccin

La instruccin se ejecuta.

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.

118

Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 3

Ejemplo: En cada escn que limit_switch1 se establece, la instruccin TONR


incrementa el valor ACC en una cantidad equivalente al tiempo
transcurrido hasta que el valor ACC llega al valor PRE. Cuando
ACC PRE, el parmetro DN se establece y timer_state se establece.

Texto estructurado
TONR_01.Preset := 500;
TONR_01.Reset : = reset;
TONR_O1.TimerEnable := limit_switch1;

TONR(TONR_01);

timer_state := TONR_01.DN;

Ejemplo de bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

119

Captulo 3

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

Temporizador de retardo a
la desconexin con
restablecimiento (TOFR)

La instruccin TOFR es un temporizador no retentivo que acumula


tiempo cuando TimerEnable est borrado.
Esta instruccin est disponible en lgica de escalera de rels como
dos instrucciones separadas: TOF (vea pgina 108) y RES
(vea pgina 141).

Operandos:
TOFR(TOFR_tag);

Texto estructurado
Variable

Tipo

Formato

Descripcin

TOFR tag

FBD_TIMER

estructura

estructura TOFR

Operandos de bloque de funciones


Operando

Tipo

Formato

Descripcin

TOFR tag

FBD_TIMER

estructura

estructura TOFR

Estructura FBD_TIMER
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Bloque de funciones:
Si se borra, la instruccin no se ejecuta y las salidas no se actualizan.
Si se establece, la instruccin se ejecuta.
La opcin predeterminada es establecido.
Texto estructurado:
Ningn efecto. La instruccin se ejecuta.

TimerEnable

BOOL

Si se borra, permite que el temporizador se ejecute y acumule tiempo.


La opcin predeterminada es borrado.

PRE

DINT

Valor prefijado en el temporizador. ste es un valor en unidades de 1 ms al que ACC debe


llegar antes de que concluya la temporizacin. Si no es vlido, las instrucciones establecen
el bit apropiado en Status y el temporizador no se ejecuta.
Vlido = 0 hasta el entero positivo mximo

Reset

BOOL

Peticin para restablecer el temporizador. Cuando se establece, el temporizador se


restablece.
La opcin predeterminada es borrado.

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

ACC

BOOL

Tiempo acumulado en milisegundos.

EN

BOOL

Salida de temporizador habilitado. Indica que la instruccin de temporizador est habilitada.

TT

BOOL

Salida de temporizador temporizando. Cuando se establece, se est ejecutando una


operacin de temporizacin.

120

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 3

Parmetro de
entrada

Tipo de datos

Descripcin

DN

BOOL

Salida de temporizador expirado. Indica cuando el tiempo acumulado es mayor o igual que el
valor de preajuste.

Status

DINT

Estado del bloque de funciones.

InstructFault (Status.0) BOOL

La instruccin detect uno de los siguientes errores de ejecucin. ste no es un error menor
ni mayor del controlador. Verifique los bits de estado restantes para determinar lo que
ocurri.

PresetInv (Status.1)

El valor de preajuste no es vlido.

BOOL

Descripcin: La instruccin TOFR acumula tiempo hasta que:


la instruccin TOFR se inhabilita
ACC PRE
La base de tiempo siempre es 1 ms. Por ejemplo, en un temporizador
de 2 segundos, introduzca 2000 para el valor .PRE.
TimerEnable
bit de habilitacin (EN)
bit de temporizador temporizando (TT)
bit de temporizador expirado (.DN)
retardo a la
desconexin
preajuste

valor acumulado de temporizador (.ACC)

16650

el temporizador no lleg al valor PRE

Establezca el parmetro de entrada Reset para restablecer la


instruccin. Si TimerEnable se borra cuando Reset se establece, la
instruccin TOFR no comienza a temporizar nuevamente hasta que se
Reset se borra.
Un temporizador se ejecuta restando la hora de su ltimo escn de la
hora actual:
ACC = ACC + (current_time - last_time_scanned)

Publicacin 1756-RM003K-ES-P Julio 2008

121

Captulo 3

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

Despus de que se actualiza el ACC, el temporizador establece


last_time_scanned = current_time. Esto deja el temporizador
listo para el siguiente escn.

IMPORTANTE

Asegrese de escanear el temporizador por lo menos cada 69 minutos mientras se ejecuta.


De no hacerse, el valor ACC no ser correcto.
El valor last_time_scanned tiene un rango de hasta 69 minutos. El clculo del
temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso de
69 minutos. Si esto sucede, el valor ACC no ser correcto.
Durante la ejecucin de un temporizador, escanelo dentro de un lapso no mayor de
69 minutos si lo coloca en una:
subrutina
seccin de cdigo comprendida entre las instrucciones JMP y LBL
diagrama de funcin secuencial (SFC)
evento o tarea peridica
rutina de estado de una fase

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo: ninguna
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.

El valor ACC se establece en PRE.

El valor ACC se establece en PRE.

Los bits EN, TT y DN se borran.

Los bits EN, TT y DN se borran.

El valor ACC se establece en PRE.

El valor ACC se establece en PRE.

EnableIn se borra

EnableOut se borra, la instruccin no efecta


ninguna operacin y las salidas no se actualizan.

n. a.

EnableIn se establece

Cuando EnableIn cambia de borrado a establecido, la EnableIn siempre se establece.


instruccin se inicializa segn lo descrito para el
primer escn de la instruccin.
La instruccin se ejecuta.

primera ejecucin de
instruccin

La instruccin se ejecuta.
EnableOut se establece.
restablecimiento

Cuando el parmetro de entrada Reset se establece,


la instruccin borra EN, TT y DN, y establece
ACC = PRE. Tenga presente que esto es diferente a
usar una instruccin RES en una instruccin TOF.

Cuando el parmetro de entrada Reset se establece,


la instruccin borra EN, TT y DN, y establece
ACC = PRE. Tenga presente que esto es diferente a
usar una instruccin RES en una instruccin TOF.

post-escn

Ninguna.

Ninguna.

Ejemplo: En cada escn despus de que limit_switch1 se borra, la instruccin


TOFR incrementa el valor ACC en una cantidad equivalente al tiempo
transcurrido hasta que el valor ACC llega al valor PRE. Cuando
ACC PRE, el parmetro DN se borra y timer_state2 se establece.

122

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 3

Texto estructurado
TOFR_01.Preset := 500
TOFR_01.Reset := reset;
TOFR_O1.TimerEnable := limit_switch1;

TOFR(TOFR_01);

timer_state2 := TOFR_01.DN;

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

123

Captulo 3

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

Temporizador retentivo
activado con
restablecimiento (RTOR)

La instruccin RTOR es un temporizador retentivo que acumula


tiempo cuando TimerEnable est establecido.
Esta instruccin est disponible en lgica de escalera de rels como
dos instrucciones separadas: RTO (vea pgina 112) y RES
(vea pgina 141).

Operandos:
RTOR(RTOR_tag);

Texto estructurado
Variable

Tipo

Formato

Descripcin

RTOR tag

FBD_TIMER

estructura

estructura RTOR

Operandos de bloque de funciones


Operando

Tipo

Formato

Descripcin

RTOR tag

FBD_TIMER

estructura

estructura RTOR

Estructura FBD_TIMER
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Bloque de funciones:
Si se borra, la instruccin no se ejecuta y las salidas no se actualizan.
Si se establece, la instruccin se ejecuta.
La opcin predeterminada es establecido.
Texto estructurado:
Ningn efecto. La instruccin se ejecuta.

TimerEnable

BOOL

Si se establece, permite que el temporizador se ejecute y acumule tiempo.


La opcin predeterminada es borrado.

PRE

DINT

Valor prefijado en el temporizador. ste es un valor expresado en unidades de 1 ms al que


ACC debe llegar antes de que concluya la temporizacin. Si no es vlido, la instruccin
establece el bit apropiado en Status y el temporizador no se ejecuta.
Vlido = 0 hasta el entero positivo mximo

Reset

BOOL

Peticin para restablecer el temporizador. Cuando se establece, el temporizador se


restablece.

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

ACC

DINT

Tiempo acumulado en milisegundos. Este valor queda retenido aun cuando la entrada
TimerEnable se borra. sta es la diferencia entre el comportamiento de este bloque y el del
bloque TONR.

EN

BOOL

Salida de temporizador habilitado. Indica que la instruccin de temporizador est habilitada.

TT

BOOL

Salida de temporizador temporizando. Cuando se establece, se est ejecutando una


operacin de temporizacin.

124

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 3

Parmetro de
entrada

Tipo de datos

Descripcin

DN

BOOL

Salida de temporizador expirado. Indica cuando el tiempo acumulado es mayor o igual que el
valor de preajuste.

Status

DINT

Estado del bloque de funciones.

InstructFault (Status.0) BOOL

La instruccin detect uno de los siguientes errores de ejecucin. ste no es un error menor
ni mayor del controlador. Verifique los bits de estado restantes para determinar lo que
ocurri.

PresetInv (Status.1)

El valor de preajuste no es vlido.

BOOL

Descripcin: La instruccin RTOR acumula tiempo hasta que se inhabilita. Cuando


la instruccin RTOR se inhabilita, retiene su valor .ACC. Usted debe
borrar el valor .ACC usando la entrada de restablecimiento.
La base de tiempo siempre es 1 ms. Por ejemplo, en un temporizador
de 2 segundos, introduzca 2000 para el valor .PRE.
TimerEnable
bit de habilitacin (EN)
Reset
bit de temporizador temporizando (TT)

bit de temporizador expirado (.DN)

preajuste

16651

valor acumulado de temporizador (.ACC)


0
el temporizador no lleg al valor PRE

Establezca el parmetro de entrada Reset para restablecer la


instruccin. Si TimerEnable se establece cuando Reset se establece,
la instruccin RTOR comienza la temporizacin nuevamente cuando
Reset se borra.
Un temporizador se ejecuta restando la hora de su ltimo escn de la
hora actual:
ACC = ACC + (current_time - last_time_scanned)

Publicacin 1756-RM003K-ES-P Julio 2008

125

Captulo 3

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

Despus de que se actualiza el ACC, el temporizador establece


last_time_scanned = current_time. Esto deja el temporizador
listo para el siguiente escn.

IMPORTANTE

Asegrese de escanear el temporizador por lo menos cada 69 minutos mientras se ejecuta.


De no hacerse, el valor ACC no ser correcto.
El valor last_time_scanned tiene un rango de hasta 69 minutos. El clculo del
temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso de
69 minutos. Si esto sucede, el valor ACC no ser correcto.
Durante la ejecucin de un temporizador, escanelo dentro de un lapso no mayor de
69 minutos si lo coloca en una:
subrutina
seccin de cdigo comprendida entre las instrucciones JMP y LBL
diagrama de funcin secuencial (SFC)
evento o tarea peridica
rutina de estado de una fase

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo: ninguna
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.

El valor .ACC no se modifica.

El valor .ACC no se modifica.

Los bits EN, TT y DN se borran.

Los bits EN, TT y DN se borran.

El valor .ACC no se modifica.

El valor .ACC no se modifica.

EnableIn se borra

EnableOut se borra, la instruccin no efecta


ninguna operacin y las salidas no se actualizan.

n. a.

EnableIn se establece

Bloque de funciones:

EnableIn siempre se establece.

Cuando EnableIn cambia de borrado a establecido,


la instruccin se inicializa segn lo descrito para el
primer escn de la instruccin.

La instruccin se ejecuta.

primera ejecucin de
instruccin

La instruccin se ejecuta.
EnableOut se establece.
restablecimiento

Cuando el parmetro de entrada Reset se establece, Cuando el parmetro de entrada Reset se establece,
la instruccin borra EN, TT y DN y establece
la instruccin borra EN, TT y DN y establece
ACC = cero.
ACC = cero.

post-escn

Ninguna.

126

Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 3

Ejemplo: En cada escn que limit_switch1 se establece, se establece, la


instruccin RTOR incrementa el valor ACC en una cantidad
equivalente al tiempo transcurrido hasta que el valor ACC llega al
valor PRE. Cuando ACC PRE, el parmetro DN se establece y
timer_state3 se establece.

Texto estructurado
RTOR_01.Preset := 500
RTOR_01.Reset := reset;
RTOR_O1.TimerEnable := limit_switch1;

RTOR(RTOR_01);

timer_state3 := RTOR_01.DN;

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

127

Captulo 3

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

Conteo progresivo (CTU)

La instruccin CTU cuenta progresivamente.


Esta instruccin est disponible en texto estructurado y en bloque de
funciones como CTUD; vea la pgina 136.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Counter

COUNTER

tag

estructura de contador

Preset

DINT

inmediato

valor superior hasta donde contar

Acum

DINT

inmediato

nmero de veces que cont el contador


el valor inicial es tpicamente 0

Estructura COUNTER
Mnemnico

Tipo de datos

Descripcin

.CU

BOOL

El bit de habilitacin de conteo progresivo indica que la instruccin CTU est habilitada.

.DN

BOOL

El bit de efectuado indica que .ACC .PRE.

.OV

BOOL

El bit de overflow indica que el contador excedi el lmite superior de 2,147,483,647, por lo
que el contador regresa a -2,147,483,648 y comienza nuevamente el conteo progresivo.

.UN

BOOL

El bit de underflow indica que el contador excedi el lmite inferior de -2,147,483,648, por lo
que el contador regresa a 2,147,483,647 y comienza nuevamente el conteo regresivo.

.PRE

DINT

El valor de preajuste especifica el valor al que debe llegar el valor acumulado para que la
instruccin establezca el bit .DN.

.ACC

DINT

El valor acumulado especifica el nmero de transiciones que cont la instruccin.

128

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 3

Descripcin: Cuando se habilita y el bit .CU se borra, la instruccin CTU


incrementa el contador en uno. Cuando se habilita y el bit .CU se
establece, o cuando se inhabilita, la instruccin CTU retiene su
valor .ACC.
condicin de entrada del rengln

bit de habilitacin de conteo progresivo (.CU)

bit de conteo progresivo efectuado (.DN)

preajuste

valor acumulado de contador (.ACC)


16636

El valor acumulado contina incrementndose, incluso despus de


que se establece el bit .DN. Para borrar el valor acumulado, use una
instruccin RES que referencie la estructura de contador o escriba 0 en
el valor acumulado.

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

Publicacin 1756-RM003K-ES-P Julio 2008

129

Captulo 3

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

Ejecucin:
Condicin

Accin de lgica de escalera de rels

preescn

El bit .CU se establece para evitar incrementos no vlidos durante el primer escn del
programa.
La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln es falsa

El bit .EN se borra.


La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln es verdadera

bit .CU = 0

examine el bit .CU

el bit .CU se establece

el valor .ACC
retorna al valor
inicial

.ACC = .ACC + 1

no

bit .CU = 1

el bit .UN se borra


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

el bit .UN = 1
examine el bit .UN

el bit .UN = 0

examine el bit .UN

el bit .UN = 0

el bit .UN = 1

examine el bit .OV

el bit .OV = 0

el bit .OV se
establece

el bit .OV = 1

examine .ACC

.ACC .PRE

.ACC < .PRE


el bit .DN se borra

el bit .DN se
establece

la condicin de salida de
rengln se establece como
verdadera

fin

post-escn

130

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 3

Ejemplo: Despus de que limit_switch_1 cambia de inhabilitado a habilitado


10 veces, el bit .DN se establece y light_1 se enciende. Si
limit_switch_1 contina cambiando de inhabilitado a habilitado,
counter_1 contina incrementando su conteo y el bit .DN permanece
establecido. Cuando limit_switch_2 se habilita, la instruccin RES
restablece counter_1 (borra el bit de estado y el valor .ACC) y light_1
se apaga.

Publicacin 1756-RM003K-ES-P Julio 2008

131

Captulo 3

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

Conteo regresivo (CTD)

La instruccin CTD cuenta regresivamente.


Esta instruccin est disponible en texto estructurado y en bloque de
funciones como CTUD; vea la pgina 136.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Counter

COUNTER

tag

estructura de contador

Preset

DINT

inmediato

valor inferior hasta donde contar

Acum

DINT

inmediato

nmero de veces que cont el contador


el valor inicial es tpicamente 0

Estructura COUNTER
Mnemnico

Tipo de datos

Descripcin

.CD

BOOL

El bit de habilitacin de conteo regresivo indica que la instruccin CTD est habilitada.

.DN

BOOL

El bit de efectuado indica que .ACC .PRE.

.OV

BOOL

El bit de overflow indica que el contador excedi el lmite superior de 2,147,483,647, por lo
que el contador regresa a -2,147,483,648 y comienza nuevamente el conteo progresivo.

.UN

BOOL

El bit de underflow indica que el contador excedi el lmite inferior de -2,147,483,648, por lo
que el contador regresa a 2,147,483,647 y comienza nuevamente el conteo regresivo.

.PRE

DINT

El valor de preajuste especifica el valor al que debe llegar el valor acumulado para que la
instruccin establezca el bit .DN.

.ACC

DINT

El valor acumulado especifica el nmero de transiciones que cont la instruccin.

132

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 3

Descripcin: La instruccin CTD normalmente se usa con una instruccin CTU que
referencia la misma estructura de contador.
Cuando se habilita y el bit .CD se borra, la instruccin CTD
decrementa el contador en uno. Cuando se habilita y el bit .CD se
establece, o cuando se inhabilita, la instruccin CTD retiene su
valor .ACC.
condicin de entrada del rengln
bit de habilitacin de conteo regresivo (.CD)
bit de conteo regresivo efectuado (.DN)

valor acumulado de contador (.ACC)


preajuste
16637

El valor acumulado contina decrementndose, aun despus de que


se establece el bit .DN. Para borrar el valor acumulado, use una
instruccin RES que referencie la estructura de contador o escriba 0 en
el valor acumulado.

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

Publicacin 1756-RM003K-ES-P Julio 2008

133

Captulo 3

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

Ejecucin:
Condicin

Accin de lgica de escalera de rels

preescn

El bit .CD se establece para evitar decrementos no vlidos durante el primer escn del
programa.
La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln es falsa

El bit .CD se borra.


La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln es verdadera

el bit .CD = 0

examine el bit .CD

el bit .CD se establece

el valor .ACC
retorna al
valor inicial

.ACC = .ACC - 1

no

el bit .CD = 1

el bit .OV se borra


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

el bit .OV = 1
examine el bit .OV

el bit .OV = 0

examine el bit .UN

el bit .UN = 0

el bit .UN = 1

examine el bit .OV

el bit .OV = 0

el bit .UN se
establece

el bit .OV = 1

examine .ACC

.ACC .PRE

.ACC < .PRE


el bit .DN se borra

el bit .DN se
establece

la condicin de salida de
rengln se establece como
verdadera

fin

post-escn

134

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 3

Ejemplo: Un transportador lleva partes a una zona de almacenamiento


intermedio. Cada vez que entra una parte, limit_switch_1 se habilita
y counter_1 se incrementa en 1. Cada vez que sale una parte,
limit_switch_2 se habilita y counter_1 se decrementa en 1. Si hay
100 partes en la zona de almacenamiento intermedio (counter_1.dn
se establece), conveyor_a se activa y detiene el transportador para que
no lleve ms partes hasta que la zona de almacenamiento intermedio
tenga espacio para ms partes.

Publicacin 1756-RM003K-ES-P Julio 2008

135

Captulo 3

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

Conteo progresivo/
regresivo (CTUD)

La instruccin CTUD incrementa en uno el conteo cuando CUEnable


cambia de borrado a establecido. La instruccin decrementa en uno el
conteo cuando CDEnable cambia de borrado a establecido.
Esta instruccin est disponible en lgica de escalera de rels como
tres instrucciones separadas: CTU (ver pgina 128), CTD
(ver pgina 132), y RES (ver pgina 141).

Operandos:
CTUD(CTUD_tag);

Texto estructurado
Variable

Tipo

Formato

Descripcin

CTUD tag

FBD_COUNTER

estructura

estructura CTUD

Bloque de funciones
Operando

Tipo

Formato

Descripcin

CTUD tag

FBD_COUNTER

estructura

estructura CTUD

Estructura FBD_COUNTER
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Bloque de funciones:
Si se borra, la instruccin no se ejecuta y las salidas no se actualizan.
Si se establece, la instruccin se ejecuta.
La opcin predeterminada es establecido.
Texto estructurado:
Ningn efecto. La instruccin se ejecuta.

CUEnable

BOOL

Habilita el conteo progresivo. Cuando la entrada cambia de borrado a establecido,


el acumulador se incrementa en uno.
La opcin predeterminada es borrado.

136

Publicacin 1756-RM003K-ES-P Julio 2008

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

Parmetro de
entrada

Tipo de datos

Descripcin

CDEnable

BOOL

Habilita el conteo regresivo. Cuando la entrada cambia de borrado a establecido,


el acumulador se decrementa en uno.

Captulo 3

La opcin predeterminada es borrado.


PRE

DINT

Valor de preajuste del contador. ste es el valor al cual debe llegar el valor acumulado para
que se establezca DN.
Vlido = cualquier nmero entero
El valor predeterminado es 0.

Reset

BOOL

Peticin para restablecer el temporizador. Cuando se establece, el contador se restablece.


La opcin predeterminada es borrado.

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

ACC

DINT

Valor acumulado.

CU

BOOL

Conteo progresivo habilitado.

CD

BOOL

Conteo regresivo habilitado.

DN

BOOL

Conteo efectuado. Se establece cuando el valor acumulado es mayor o igual que el valor de
preajuste.

OV

BOOL

Overflow del contador. Indica que el contador excedi el lmite superior de 2,147,483,647.
Seguidamente el contador regresa a 2,147,483,648 y comienza nuevamente el conteo
regresivo.

UN

BOOL

Underflow del contador. Indica que el contador excedi el lmite inferior de 2,147,483,648.
Seguidamente el contador regresa a 2,147,483,647 y comienza nuevamente el conteo
regresivo.

Descripcin Cuando se habilita y CUEnable se establece, la instruccin CTUD


incrementa el contador en uno. Cuando se habilita y CDEnable se
establece, la instruccin CTUD decrementa el contador en uno.
Ambos parmetros de entrada CUEnable y CDEnable pueden
alternarse durante el mismo escn. La instruccin ejecuta el conteo
progresivo antes del conteo regresivo.

Publicacin 1756-RM003K-ES-P Julio 2008

137

Captulo 3

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

Conteo progresivo

CUEnable

bit de habilitacin de conteo progresivo (CU)

bit de conteo progresivo efectuado (.DN)

preajuste

valor acumulado de contador (ACC)


16636

Conteo regresivo

CDEnable
bit de habilitacin de conteo regresivo (CD)
bit de conteo regresivo efectuado (.DN)

valor acumulado de contador (ACC)


preajuste
16637

Cuando se inhabilita, la instruccin CTUD retiene su valor acumulado.


Establezca el parmetro de entrada Reset de la estructura
FBD_COUNTER para restablecer la instruccin.

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

138

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 3

Ejecucin:
Condicin

Accin de bloque de funciones

Accin de texto estructurado

preescn

No se requiere inicializacin.

No se requiere inicializacin.

primer escn de instruccin CUEnablen-1 y CDEnablen-1 se establecen.

CUEnablen-1 y CDEnablen-1 se establecen.

primera ejecucin de
instruccin

CUEnablen-1 y CDEnablen-1 se establecen.

CUEnablen-1 y CDEnablen-1 se establecen.

EnableIn se borra

EnableOut se borra, la instruccin no efecta


ninguna operacin y las salidas no se actualizan.

n. a.

EnableIn se establece

La instruccin establece CUEnablen-1 y CDEnablen-1. La instruccin establece CUEnablen-1 y CDEnablen-1.


En una transicin de borrado a establecido de
EnableIn:
La instruccin se ejecuta.

EnableIn siempre se establece.


La instruccin se ejecuta.

EnableOut se establece.
restablecimiento

Cuando se establece, la instruccin borra


CUEnablen-1, CDEnablen-1, CU, CD, DN, OV y UN y
establece ACC = cero.

Cuando se establece, la instruccin borra


CUEnablen-1, CDEnablen-1, CU, CD, DN, OV y UN y
establece ACC = cero.

post-escn

Ninguna.

Ninguna.

Ejemplo: Cuando limit_switch1 cambia de borrado a establecido, CUEnable se


establece por un escn y la instruccin CTUD incrementa el valor ACC
en 1. Cuando ACC PRE, el parmetro DN se establece, lo cual
habilita la instruccin de bloque de funciones despus de la
instruccin CTUD.

Texto estructurado
CTUD_01.Preset := 500;
CTUD_01.Reset := Restart;
CTUD_O1.CUEnable := limit_switch1;

CTUD(CTUD_01);

counter_state := CTUD_01.DN;

Publicacin 1756-RM003K-ES-P Julio 2008

139

Captulo 3

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

Bloque de funciones

140

Publicacin 1756-RM003K-ES-P Julio 2008

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

Restablecer (RES)

Captulo 3

La instruccin RES restablece una estructura TIMER, COUNTER o


CONTROL.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

estructura

TIMER

tag

estructura que se va a restablecer

CONTROL
COUNTER

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


Cuando se usa una
instruccin RES para

La instruccin borra

TIMER

el valor .ACC
los bits de estado de control

COUNTER

el valor .ACC
los bits de estado de control

CONTROL

el valor .POS
los bits de estado de control

ATENCIN

Puesto que la instruccin RES borra el valor .ACC, el bit .DN y


el bit .TT, no use la instruccin RES para restablecer un
temporizador TOF.

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

Publicacin 1756-RM003K-ES-P Julio 2008

141

Captulo 3

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

Ejecucin:
Condicin

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 RES restablece la estructura especificada.


La condicin de salida de rengln se establece como verdadera.

post-escn

142

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

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

Introduccin

Las instrucciones de entrada/salida leen o escriben datos desde o


hacia el controlador, o un bloque de datos desde o hacia otro mdulo
en otra red.

Si desea
enviar datos desde o hacia otro mdulo

Use esta instruccin


MSG

Disponible en estos lenguajes


lgica de escalera de rels

Vea la pgina
144

texto estructurado
obtener informacin de estado del controlador

GSV

lgica de escalera de rels

176

texto estructurado
establecer informacin de estado del
controlador

SSV

lgica de escalera de rels

176

texto estructurado
enviar valores de salida a un mdulo de E/S
o controlador consumidor en un punto
especfico de su lgica

IOT

lgica de escalera de rels

201

texto estructurado

activar una tarea de evento en otro


controlador

143Publicacin 1756-RM003K-ES-P Julio 2008

143

Captulo 4

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

Mensaje (MSG)

La instruccin MSG lee o escribe asncronamente un bloque de datos


en otro mdulo de una red.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Message
control

MESSAGE

tag

estructura de mensaje

Texto estructurado
MSG(MessageControl);

Los operandos son iguales a los de la instruccin MSG de lgica de


escalera de rels.

Estructura MESSAGE

ATENCIN

Si usted revisa los bits de estado ms de una vez


El controlador cambia los bits DN, ER, EW y ST de manera asncrona con el escn
de la lgica. Use una copia de los bits si los verifica en ms de un lugar en la
lgica. De lo contrario, los bits pueden cambiar durante el escn y la lgica no
funcionar segn lo esperado.
Una manera de hacer una copia es usar la palabra FLAGS. Copie la palabra
FLAGS a otro tag y verifique los bits en la copia.

IMPORTANTE

No cambie los siguientes bits de estado de una instruccin MSG:


DN
EN
ER
EW
ST

No cambie esos bits por s mismos ni como parte de la palabra FLAGS. Si lo hace,
el controlador puede sufrir un fallo no recuperable. El controlador borra el
proyecto de su memoria cuando sufre un fallo no recuperable.

144

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Mnemnico

Tipo de
datos

Descripcin

.FLAGS

INT

El miembro .FLAGS proporciona acceso a los miembros de estado (bits) en una palabra de 16 bits.
Este bit:

Es este miembro:

.EW

.ER

.DN

.ST

.EN

.TO

.EN_CC

Importante: No cambie los bits EW, ER, DN ni ST del miembro FLAGS. Por ejemplo, no borre toda la
palabra FLAGS. El controlador ignora el cambio y usa los valores de los bits almacenados
internamente.
.ERR

INT

Si el bit .ER est establecido, la palabra de cdigo de error identifica los cdigos de error de la
instruccin MSG.

.EXERR

INT

La palabra de cdigo de error extendida especifica informacin adicional de algunos cdigos de


error.

.REQ_LEN

INT

La longitud solicitada especifica cuntas palabras la instruccin de mensaje intentar transferir.

.DN_LEN

INT

La longitud efectuada identifica cuntas palabras se transfirieron realmente.

.EW

BOOL

Se establece el bit de habilitacin/espera cuando el controlador detecta que una solicitud de


mensaje ha entrado en la cola. El controlador restablece el bit .EW cuando se establece el bit .ST.
Importante: No cambie el bit EW. El controlador ignora el cambio y usa el valor del bit almacenado
internamente.

.ER

BOOL

Se establece el bit de error cuando el controlador detecta el fallo de una transferencia. El bit .ER se
restablece la prxima vez que la condicin de entrada de rengln cambia de falsa a verdadera.
Importante: No cambie el bit ER.

.DN

BOOL

Se establece el bit de efectuado cuando se transfiere correctamente el ltimo paquete del mensaje.
El bit .DN se restablece la prxima vez que la condicin de entrada de rengln cambia de falsa a
verdadera.
Importante: No cambie el bit DN.

.ST

BOOL

Se establece el bit de arranque cuando el controlador comienza a ejecutar la instruccin MSG.


El bit .ST se restablece cuando se establece el bit .DN o .ER.
Importante: No cambie el bit ST. El controlador ignora el cambio y usa el valor del bit almacenado
internamente.

.EN

BOOL

Se establece el bit de habilitacin cuando la condicin de entrada de rengln se hace verdadera y


permanece establecida hasta que se establece el bit .DN o .ER y la condicin de entrada de rengln
es falsa. Si la condicin de entrada de rengln se hace falsa, pero los bits .DN y .ER se borran, el
bit .EN permanece establecido.
Importante: No cambie el bit EN.

.TO

BOOL

Si se establece manualmente el bit .TO, el controlador interrumpe el procesamiento del mensaje y


establece el bit .ER.

.EN_CC

BOOL

El bit de habilitacin de cach determina cmo administrar la conexin MSG. Consulte Seleccione
una opcin de cach en la pgina 4-173. Las conexiones para instrucciones MSG a travs del puerto
serie no se guardan en la memoria cach aunque se establezca el bit .EN_CC.

.ERR_SRC

SINT

Usado por el software RSLogix 5000 para mostrar la ruta de error en el cuadro de dilogo Message
Configuration

Publicacin 1756-RM003K-ES-P Julio 2008

145

Captulo 4

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

Mnemnico

Tipo de
datos

Descripcin

.DestinationLink

INT

Para cambiar el vnculo de destino de un DH+ o CIP con mensaje de ID de origen, establezca este
miembro en el valor requerido.

.DestinationNode

INT

Para cambiar el nodo de destino de un DH+ o CIP con mensaje de ID de origen, establezca este
miembro en el valor requerido.

.SourceLink

INT

Para cambiar el vnculo de origen de un DH+ o CIP con mensaje de ID de origen, establezca este
miembro en el valor requerido.

.Class

INT

Para cambiar el parmetro Class de un mensaje genrico de CIP, establezca este miembro en el valor
requerido.

.Attribute

INT

Para cambiar el parmetro Attribute de un mensaje genrico de CIP, establezca este miembro en el
valor requerido.

.Instance

DINT

Para cambiar el parmetro Instance de un mensaje genrico de CIP, establezca este miembro en el
valor requerido.

.LocalIndex

DINT

Si usted usa un asterisco [*] para eliminar el nmero de elemento de la matriz local, el LocalIndex
proporciona el nmero de elemento. Para cambiar el nmero de elemento, establezca este miembro
en el valor requerido.
Si el mensaje:

La matriz local es el:

lee datos

Elemento de destino

escribe datos

Elemento de origen

.Channel

SINT

Para enviar el mensaje a travs de un canal diferente del mdulo 1756-DHRIO, establezca este
miembro en el valor requerido. Use el carcter ASCII A o B.

.Rack

SINT

Para cambiar el nmero de rack en un mensaje de transferencia en bloques, establezca este


miembro en el nmero de rack requerido (octal).

.Group

SINT

Para cambiar el nmero de grupo en un mensaje de transferencia en bloques, establezca este


miembro en el nmero de grupo requerido (octal).

.Slot

SINT

Para cambiar el nmero de ranura en un mensaje de transferencia en bloques, establezca este


miembro en el nmero de ranura requerido.

.Path

STRING

Si el mensaje se
enva a travs de
esta red:

Especifique el nmero de ranura en:

E/S remotas
universales

octal

ControlNet

decimal (0-15)

Para enviar el mensaje a un controlador diferente, establezca este miembro en la nueva ruta.
Introduzca la ruta en valores decimales.
Omita las comas [,]
Por ejemplo, para una ruta de 1, 0, 2, 42, 1, 3, introduzca $01$00$02$2A$01$03.
Para llegar a un dispositivo y crear automticamente una porcin o toda la nueva cadena, haga clic
con el botn derecho del mouse en un tag de cadena y seleccione Go to Message Path Editor.

.RemoteIndex

146

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

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Mnemnico

Tipo de
datos

Descripcin

.RemoteElement

STRING

Para especificar un tag o direccin diferente en el controlador al cual se enva el mensaje, establezca
este miembro en el valor requerido. Introduzca el tag o direccin en caracteres ASCII.

.UnconnnectedTimeout DINT

.ConnectionRate

DINT

.TimeoutMultiplier

SINT

Si el mensaje:

La matriz remota es el:

lee datos

Elemento de origen

escribe datos

Elemento de destino

Tiempo de espera para un mensaje no conectado o para hacer una conexin. El valor predeterminado
es 30 segundos.
Si el mensaje es

Entonces

no conectado

El bit ER se activa si el controlador no recibe una respuesta dentro del tiempo


UnconnectedTimeout.

conectado

El bit ER se activa si el controlador no recibe una respuesta para hacer la


conexin dentro del tiempo UnconnectedTimeout.

Tiempo de espera para un mensaje conectado una vez que tiene una conexin. Este tiempo de
espera es para la respuesta proveniente del otro dispositivo acerca del envo de datos.
Este tiempo de espera se aplica solamente despus de que se hace la conexin.
El tiempo de espera = ConnectionRate x TimeoutMultiplier.
El valor predeterminado de ConnectionRate es 7.5 segundos.
El valor predeterminado de TimeoutMultiplier es 0 (que es un factor de multiplicacin de 4).
El tiempo de espera predeterminado para los mensajes conectados es 30 segundos
(7.5 segundos x 4 = 30 segundos).
Para cambiar el tiempo de espera, cambie ConnectionRate y deje TimeoutMultiplier en el valor
predeterminado.

Descripcin La instruccin MSG transfiere los elementos de datos.


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

Publicacin 1756-RM003K-ES-P Julio 2008

147

Captulo 4

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

El tamao de cada elemento depende de los tipos de datos que usted


especifica y del tipo de comando de mensaje que usa.
conexin con .EN_CC = 1

condicin de entrada de rengln


bit .EN

bit .EW
conexin con .EN_CC = 0

bit .ST
bit .DN o bit .ER
41382

148

Publicacin 1756-RM003K-ES-P Julio 2008

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

Donde
1

Descripcin

Donde

condicin de entrada de rengln es verdadera

Captulo 4

Descripcin
el mensaje se enva

.EN se establece

.ST se establece

.EW se establece

.EW se borra

la conexin est abierta*


2

el mensaje se enva

.ST se establece

mensaje efectuado o con error


condicin de entrada de rengln todava es
verdadera

.EW se borra
.DN o .ER se establece
.ST se borra
La conexin est cerrada (si .EN_CC = 0)
3

mensaje efectuado o con error

la condicin de entrada de rengln se hace falsa y


.DN o .ER se establece

condicin de entrada de rengln es falsa


.EN se borra
.DN o .ER se establece
.ST se borra
La conexin est cerrada (si .EN_CC = 0)
.EN se borra (la condicin de entrada de rengln es
falsa)
4

condicin de entrada de rengln es verdadera


.DN o .ER se estableci previamente
.EN se establece
.EW se establece
la conexin est abierta*
.DN o .ER se borra

Ejecucin:
Condicin

Accin de lgica de escalera de rels

Accin de texto estructurado

preescn

La condicin de salida de rengln se establece como


falsa.

Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008

149

Captulo 4

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

Condicin

Accin de lgica de escalera de rels

condicin de entrada de rengln es falsa


(no se aplica a texto estructurado)

Accin de texto estructurado

bit .EN = 1
examine el bit .EN
bit .EN = 0

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

bit .ER = 1

bit .ER = 0
examine el bit .ER

comando de
transferencia en
bloques

no

la ruta de acceso
del mdulo es
vlida
s

no
bit .DN = 1
s

examine el bit .DN

bit .DN = 0

el bit .EN se borra

conexin de
mdulo en
ejecucin

no

ejecute la peticin de
mensaje

bit .ER = 1
examine el bit .ER

el bit .ER se
establece

el bit .EW se establece

bit .ER = 0

la condicin de salida de rengln


se establece como falsa

fin

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

La condicin de salida de rengln se establece como


verdadera.

150

Publicacin 1756-RM003K-ES-P Julio 2008

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

Condicin

Accin de lgica de escalera de rels

Accin de texto estructurado

EnableIn se establece

n. a.

EnableIn siempre se establece.

Captulo 4

La instruccin se ejecuta.
ejecucin de la instruccin

bit .EN = 1

bit .EN = 0
examine el bit .EN

bit .EW = 1
examine el bit .EW

examine el bit .EW

bit .EW = 1

bit .EW = 0

bit .EW = 0

bit .ST = 1
examine el bit .ST

examine el bit .ST

bit .ST = 1

bit .ST = 0

bit .ST = 0

los bits .EW, .ST, .TO, .DN y .ER se


borran y el bit
.EN se establece

bit .DN = 1
examine el bit .DN

el bit .EN se
establece

bit .DN = 0

bit .ER = 1

bit .ER = 0
examine el bit .ER

comando de
transferencia en
bloques

la ruta de acceso
del mdulo es
vlida

no

no

conexin de
mdulo en
ejecucin

no

los bits .EW, .ST, .TO, .DN y .ER se borran


el bit .EN se establece
ejecute la peticin de mensaje
el bit .EW se establece

el bit .ER se
establece

la condicin de salida de
rengln se establece
como falsa
fin

post-escn

La condicin de salida de rengln se establece como


falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

Ninguna.

151

Captulo 4

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

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

Cdigos de error MSG

Los cdigos de error dependen del tipo de instruccin MSG.

Cdigos de error
El software RSLogix 5000 no siempre muestra la descripcin completa.
Cdigo de error Descripcin
(hex)

Se muestra en el software

0001

Fallo de conexin (vea los cdigos de error extendidos)

idntico a la descripcin

0002

Recurso insuficiente

idntico a la descripcin

0003

Valor no vlido

idntico a la descripcin

0004

Error de sintaxis IOI (vea los cdigos de error extendidos)

idntico a la descripcin

0005

Destino desconocido, clase no compatible, instancia no


definida o elemento de estructura no definido (vea los cdigos
de error extendidos)

idntico a la descripcin

0006

Espacio de paquete insuficiente

idntico a la descripcin

0007

Conexin perdida

idntico a la descripcin

0008

Servicio no compatible

idntico a la descripcin

0009

Error en segmento de datos o valor de atributo no vlido

idntico a la descripcin

000A

Error de lista de atributos

idntico a la descripcin

000B

El estado ya existe

idntico a la descripcin

000C

Conflicto de modelo de objeto

idntico a la descripcin

000D

El objeto ya existe

idntico a la descripcin

000E

Atributo no se puede establecer

idntico a la descripcin

000F

Permiso denegado

idntico a la descripcin

0010

Conflicto de estado de dispositivo

idntico a la descripcin

0011

La respuesta no cabe

idntico a la descripcin

0012

Fragmento primitivo

idntico a la descripcin

0013

Datos de comando insuficientes

idntico a la descripcin

0014

Atributo no compatible

idntico a la descripcin

0015

Demasiados datos

idntico a la descripcin

001A

Peticin de puente demasiado grande

idntico a la descripcin

001B

Respuesta de puente demasiado grande

idntico a la descripcin

001C

Lista de atributos insuficiente

idntico a la descripcin

001D

Lista de atributos no vlida

idntico a la descripcin

001E

Error de servicio incorporado

idntico a la descripcin

152

Publicacin 1756-RM003K-ES-P Julio 2008

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

Cdigo de error Descripcin


(hex)

Se muestra en el software

001F

Fallo relacionado con la conexin (vea los cdigos de error


extendidos)

idntico a la descripcin

0022

Respuesta no vlida recibida

idntico a la descripcin

0025

Error de segmento clave

idntico a la descripcin

0026

Error IOI no vlido

idntico a la descripcin

0027

Atributo inesperado en lista

idntico a la descripcin

0028

Error DeviceNet ID de miembro no vlido

idntico a la descripcin

0029

Error DeviceNet miembro no se puede establecer

idntico a la descripcin

00D1

El mdulo no se encuentra en estado de marcha

error desconocido

00FB

Puerto de mensajes no compatible

error desconocido

00FC

Tipo de mensaje no compatible

error desconocido

00FD

Mensaje no inicializado

error desconocido

00FE

Expiracin de mensaje

error desconocido

00FF

Error general (vea los cdigos de error extendidos)

error desconocido

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo 4

153

Captulo 4

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

Cdigos de error extendidos


El software RSLogix 5000 no muestra ningn texto para los cdigos de
error extendidos.
Estos son los cdigos de error extendidos para el cdigo de
error 0001.
Cdigo de
error
extendido
(hex.):

Descripcin

Cdigo de
error
extendido
(hex.):

Descripcin

0100

Conexin en uso

0203

Expiracin de conexin

0103

Transporte no compatible

0204

Expiracin de mensaje no conectado

0106

Conflicto de propiedad

0205

Error de parmetro de envo no conectado

0107

No se encontr la conexin

0206

Mensaje demasiado grande

0108

Tipo de conexin no vlido

0301

No hay memoria de bfer

0109

Tamao de conexin no vlido

0302

Ancho de banda no disponible

0110

Mdulo no configurado

0303

No hay protectores disponibles

0111

EPR no compatible

0305

Coincidencia de firma

0114

Mdulo incorrecto

0311

Porte no disponible

0115

Tipo incorrecto de dispositivo

0312

Direccin de vnculo no disponible

0116

Revisin incorrecta

0315

Tipo de segmento no vlido

0118

Formato de configuracin no vlido

0317

Conexin no programada

011A

Aplicacin sin conexiones

Estos son los cdigos de error extendidos para el cdigo de


error 001F.
Cdigo de error
extendido (hex.):

Descripcin

0203

Expiracin de conexin

Estos son los cdigos de error extendidos para el cdigo de


error 0004 y 0005.

154

Cdigo de error
extendido (hex.):

Descripcin

0000

estado extendido fuera de memoria

0001

estado extendido fuera de instancias

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Estos son los cdigos de error extendidos para el cdigo de


error 00FF.
Cdigo de
error
extendido
(hex.):

Descripcin

Cdigo de
error
extendido
(hex.):

Descripcin

2001

IOI excesivo

2107

Tipo no vlido o no compatible

2002

Valor de parmetro incorrecto

2108

Controlador en modo de carga o descarga

2018

Rechazo de semforo

2109

201B

Tamao demasiado pequeo

Intento para cambiar el nmero de dimensiones


de registro

201C

Tamao no vlido

210A

Nombre de smbolo no vlido

2100

Fallo de privilegio

210B

El smbolo no existe

2101

Posicin no vlida de interruptor de llave

210E

La bsqueda entr en fallo

2102

Contrasea no vlida

210F

La tarea no se puede iniciar

2103

No se emiti contrasea

2110

No se puede escribir

2104

Direccin fuera de rango

2111

No se puede leer

2105

Direccin y cuntas fuera de rango

2112

Rutina compartida no editable

2106

Datos en uso

2113

Controlador en modo con fallo

2114

Modo de marcha inhibido

Publicacin 1756-RM003K-ES-P Julio 2008

155

Captulo 4

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

Cdigos de error PLC y SLC (.ERR)


Logix, revisin de firmware 10.x y posteriores, proporciona nuevos
cdigos de error asociados con tipos de mensajes PLC y SLC
(mensajes PCCC).
Este cambio permite que el software RSLogix 5000 muestre una
descripcin significativa para muchos de los errores.
Anteriormente, el software no daba una descripcin de ninguno
de los errores asociados con el cdigo de error 00F0.
El cambio tambin hace que los cdigos de errores sean ms
coherentes con los errores devueltos por otros controladores,
tales como los controladores PLC-5.
La siguiente tabla muestra el cambio en los cdigos de error de R9.x y
anteriores hasta R10.x y posteriores. Como resultado del cambio, el
miembro .ERR retorna un valor nico por cada error PCCC. .EXERR ya
no se requiere para estos errores.
Cdigos de error PLC y SLC (hex)
R9.x y anteriores

R10.x y posteriores

.ERR

.ERR

.EXERR

Descripcin

.EXERR

0010

1000

Comando o formato prohibido proveniente del procesador local

0020

2000

El mdulo de comunicacin no funciona

0030

3000

Nodo remoto ausente, desconectado o desactivado

0040

4000

Procesador conectado pero en fallo (hardware)

0050

5000

Nmero de estacin incorrecto

0060

6000

La funcin solicitada no est disponible

0070

7000

El procesador est en el modo de programacin

0080

8000

El archivo de compatibilidad del procesador no existe

0090

9000

El nodo remoto no puede almacenar temporalmente el comando

00B0

B000

El procesador est descargando, por lo que no es accesible

00F0

0001

F001

El procesador convirti la direccin incorrectamente

00F0

0002

F002

Direccin incompleta

00F0

0003

F003

Direccin incorrecta

00F0

0004

F004

Formato de direccin prohibido no se encontr el smbolo

00F0

0005

F005

Formato de direccin prohibido El smbolo tiene 0 o es mayor que el mximo


nmero de caracteres aceptados por el dispositivo

00F0

0006

F006

El archivo de direcciones no existe en el procesador receptor

00F0

0007

F007

El archivo de destino es demasiado pequeo para el nmero de palabras


solicitado

00F0

0008

F008

No puede completarse la solicitud


La situacin cambi durante la operacin con mltiples paquetes

00F0

0009

F009

Los datos o el archivo son demasiado grandes


Memoria no disponible

156

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Cdigos de error PLC y SLC (hex) (cont.)


R9.x y anteriores

R10.x y posteriores

Descripcin

.ERR

.EXERR

.ERR

00F0

000A

F00A

El procesador receptor no puede poner en paquetes la informacin solicitada

00F0

000B

F00B

Error de privilegio; acceso denegado

00F0

000C

F00C

La funcin solicitada no est disponible

00F0

000D

F00D

La peticin es redundante

00F0

000E

F00E

El comando no puede ejecutarse

00F0

000F

F00F

Overflow; overflow de histograma

00F0

0010

F010

Sin acceso

00F0

0011

F011

El tipo de datos solicitado no coincide con los datos disponibles

00F0

0012

F012

Parmetros de comando incorrectos

00F0

0013

F013

Existe referencia de direccin a rea eliminada

00F0

0014

F014

Fallo de ejecucin de comando por razn desconocida

.EXERR

Overflow de histograma PLC-3


00F0

0015

F015

Error de conversin de datos

00F0

0016

F016

El escner no est disponible para comunicarse con un adaptador de


rack 1771

00F0

0017

F017

El adaptador no est disponible para comunicarse con el mdulo

00F0

0018

F018

La respuesta del modulo 1771 no fue vlida

00F0

0019

F019

Etiqueta duplicada

00F0

001A

F01A

Propietario de archivo activo el archivo est en uso

00F0

001B

F01B

Propietario de programa activo alguien est descargando o editando en


lnea

00F0

001C

F01C

El archivo de disco tiene proteccin contra escritura o no es accesible (fuera


de lnea solamente)

00F0

001D

F01D

El archivo de disco lo est usando otra aplicacin


Actualizacin no realizada (fuera de lnea solamente)

Publicacin 1756-RM003K-ES-P Julio 2008

157

Captulo 4

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

Cdigos de error de transferencia en bloques


Estos son los cdigos de error especficos para la transferencia en
bloques de Logix5000.
Cdigo de error Descripcin
(hex)

Se muestra en el
software

00D0

El escner no recibi una respuesta de transferencia en bloques del mdulo de


transferencia en bloques dentro de los 3.5 segundos siguientes a la peticin

error desconocido

00D1

La suma de comprobacin de la respuesta de lectura no coincidi con la suma de


comprobacin del flujo de datos

error desconocido

00D2

El escner solicit una lectura o una escritura, pero el mdulo de transferencia en bloques
respondi lo opuesto

error desconocido

00D3

El escner solicit una longitud y el mdulo de transferencia en bloques respondi con una
longitud diferente

error desconocido

00D6

El escner recibi una respuesta del mdulo de transferencia en bloques indicando que la
peticin de escritura fall.

error desconocido

00EA

El escner no estaba configurado para comunicarse con el rack que contendra este mdulo error desconocido
de transferencia en bloques

00EB

La ranura lgica especificada no est disponible para el tamao de rack dado

error desconocido

00EC

Actualmente est en curso una peticin de transferencia en bloques y se requiere una


respuesta antes de que pueda comenzar otra peticin.

error desconocido

00ED

El tamao de la peticin de transferencia en bloques no es coherente con las peticiones de


tamao de transferencia en bloques vlidas

error desconocido

00EE

El tipo de la peticin de transferencia en bloques no es coherente con la BT_READ


o BT_WRITE esperada

error desconocido

00EF

El escner no pudo encontrar una ranura disponible en la tabla de transferencia en bloques


para aceptar la peticin de transferencia en bloques

error desconocido

00F0

El escner recibi una peticin para restablecer los canales de E/S remotas mientras que
haba transferencias en bloques pendientes

error desconocido

00F3

Las colas para las transferencias en bloques remotas estn llenas

error desconocido

00F5

Los canales de comunicacin estn configurados para el rack o ranura solicitada

error desconocido

00F6

Ningn canal de comunicacin est configurado para E/S remotas

error desconocido

00F7

El tiempo de espera de la transferencia en bloques, establecido en la instruccin, expir


antes de concluir

error desconocido

00F8

Error en el protocolo de transferencia en bloques transferencia en bloques no solicitada

error desconocido

00F9

Los datos de la transferencia en bloques se perdieron debido a un canal de comunicacin


defectuoso

error desconocido

00FA

El mdulo de transferencia en bloques solicit una longitud diferente a la instruccin de


transferencia en bloques asociada

error desconocido

00FB

La suma de comprobacin de la transferencia en bloque de lectura era incorrecta

error desconocido

00FC

Hubo una transferencia no vlida de datos de transferencia en bloques de escritura entre el error desconocido
adaptador y el mdulo de transferencia en bloques

00FD

El tamao de la transferencia en bloques ms el tamao del ndice en la tabla de datos de


transferencias en bloques era mayor que el tamao del archivo de tablas de datos de
transferencia en bloques

158

error desconocido

Publicacin 1756-RM003K-ES-P Julio 2008

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

Especifique los detalles


de configuracin

Captulo 4

Despus de introducir la instruccin MSG y de especificar la estructura


MESSAGE, use el cuadro de dilogo Message Configuration para
especificar los detalles del mensaje.

Haga clic aqu para configurar la instruccin MSG

Los detalles que usted configura dependen del tipo de mensaje que
selecciona.

42976

Si el dispositivo receptor es un

Seleccione uno de estos tipos de


mensaje

Vea la pgina

Controlador Logix5000

Lectura de tabla de datos CIP

160

Escritura de tabla de datos CIP


Mdulo de E/S que usted configura
usando el software RSLogix 5000

Reconfiguracin de mdulo

161

CIP genrico

162

Controlador PLC-5

TypedRead PLC5

163

TypedWrite PLC5
Lectura de rango de palabras PLC5
Escritura de rango de palabras PLC5
Controlador SLC
Controlador MicroLogix
Mdulo de transferencia en bloques

TypedRead SLC

165

TypedWrite SLC
Lectura de transferencia en bloques

165

Escritura de transferencia en bloques


Procesador PLC-3

TypedRead PLC3

166

TypedWrite PLC3
Lectura de rango de palabras PLC3
Escritura de rango de palabras PLC3
Procesador PLC-2

Lectura no protegida PLC2

167

Escritura no protegida PLC2

Publicacin 1756-RM003K-ES-P Julio 2008

159

Captulo 4

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

Usted debe especificar esta informacin de configuracin:


Para esta propiedad
Elemento de origen

Especifique
Si selecciona un tipo de mensaje de lectura, el elemento de origen es la direccin de los datos que desea
leer en el dispositivo receptor. Use la sintaxis del dispositivo receptor.
Si selecciona un tipo de mensaje de escritura, el tag de origen es el primer elemento del tag que usted
desea enviar al dispositivo receptor.

Nmero de elementos

Elemento de destino

El nmero de elementos que usted lee/escribe depende del tipo de datos que usa. Un elemento se refiere a un
segmento de datos asociados. Por ejemplo, el tag timer1 es un elemento que consiste en una estructura de
control del temporizador.
Si selecciona un tipo de mensaje de lectura, el elemento de destino es el primer elemento del tag en el
controlador Logix5000 donde desea almacenar los datos que lee desde el dispositivo receptor.
Si selecciona un tipo de mensaje de escritura, el elemento de destino es la direccin del lugar en el
dispositivo receptor donde desea escribir los datos.

Especifique mensajes de lectura y escritura de la tabla de


datos CIP
Los tipos de mensajes de lectura y escritura de la tabla de datos CIP
transfieren datos entre controladores Logix5000.
Seleccione este comando

Si desea

Lectura de tabla de datos CIP

leer datos de otro controlador.


Los tipos de Source y Destination deben coincidir.

Escritura de tabla de datos CIP

escribir datos a otro controlador.


Los tipos de Source y Destination deben coincidir.

160

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Reconfigure un mdulo de E/S


Utilice el mensaje de reconfiguracin de mdulo para enviar la nueva
informacin de configuracin a un mdulo de E/S. Durante la
reconfiguracin:
Los mdulos de entrada continan enviando datos de entrada al
controlador.
Los mdulos de salida continan controlando sus dispositivos
de salida.
Un mensaje de reconfiguracin de mdulo requiere estas propiedades
de configuracin:
En esta propiedad

Seleccione

Tipo de mensaje

Reconfiguracin de mdulo

Ejemplo: Para reconfigurar un mdulo de E/S:


1. Cambie al nuevo valor el miembro requerido del tag de
configuracin del mdulo.
2. Enve al mdulo un mensaje de reconfiguracin de mdulo.
Cuando reconfigure[5] se establece, establezca la alarma alta en 60 en
el mdulo local en la ranura 4. Seguidamente el mensaje de
reconfiguracin de mdulo enva al mdulo el nuevo valor de alarma.
La instruccin de un impulso impide que el rengln enve mltiples
mensajes al mdulo mientras reconfigure[5] est activado.

Lgica de escalera de rels

Texto estructurado
IF reconfigure[5] AND NOT reconfigure[6]THEN
Local:4:C.Ch0Config.HAlarmLimit := 60;
IF NOT change_Halarm.EN THEN
MSG(change_Halarm);
END_IF;
END_IF;
reconfigure[6] := reconfigure[5];

Publicacin 1756-RM003K-ES-P Julio 2008

161

Captulo 4

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

Especifique mensajes genricos CIP


Un mensaje genrico CIP realiza una accin especfica en un mdulo
de E/S.
Si desea

En esta propiedad

Escriba o seleccione

Realizar una prueba de impulso en un


mdulo de salida digital

Tipo de mensaje

CIP genrico

Tipo de servicio

Prueba de impulso

Origen

tag_name de tipo INT [5]


Esta matriz contiene:

Destino
Restablecer los fusibles electrnicos en Tipo de mensaje
un mdulo de salida digital
Tipo de servicio
Origen

tag_name[0]

mscara de bit de puntos a probar


(pruebe slo un punto a la vez)

tag_name[1]

reservado, dejar 0

tag_name[2]

anchura de impulso (centenares de


segundos; generalmente 20)

tag_name[3]

retardo de cruce por cero para E/S


ControlLogix (centenares de segundos;
generalmente 40)

tag_name[4]

verificar el retardo

dejar en blanco
CIP genrico
Restablecer fusible
electrnico
tag_name de tipo DINT
Este tag representa una mscara de bit de los puntos en los cuales se
restablecen los fusibles

Destino
Restablecer diagnsticos enclavados en Tipo de mensaje
un mdulo de entrada digital
Tipo de servicio
Origen

dejar en blanco
CIP genrico
Restablecer diagnsticos enclavados (I)
tag_name de tipo DINT
Este tag representa una mscara de bit de los puntos en los cuales se
restablecen los diagnsticos.

Restablecer diagnsticos enclavados en Tipo de mensaje


un mdulo de salida digital
Tipo de servicio
Origen

CIP genrico
Restablecer diagnsticos enclavados (O)
tag_name de tipo DINT
Este tag representa una mscara de bit de los puntos en los cuales se
restablecen los diagnsticos.

162

Publicacin 1756-RM003K-ES-P Julio 2008

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

Si desea

En esta propiedad

Escriba o seleccione

Desenclavar la alarma de un mdulo de


entrada analgico

Tipo de mensaje

CIP genrico

Tipo de servicio

Seleccione la alarma que desea desenclavar:

Captulo 4

Desenclavar todas las alarmas (I)


Desenclavar alarma alta analgica (I)
Desenclavar alarma alta alta analgica (I)
Desenclavar alarma baja analgica (I)
Desenclavar alarma baja baja analgica (I)
Desenclavar alarma de rgimen (I)
Desenclavar la alarma de un mdulo de
salida analgico

Instancia

Canal de la alarma que desea desenclavar

Tipo de mensaje

CIP genrico

Tipo de servicio

Seleccione la alarma que desea desenclavar:


Desenclavar todas las alarmas (O)
Desenclavar alarma alta (O)
Desenclavar alarma baja (O)
Desenclavar alarma de rampa (O)

Instancia

Canal de la alarma que desea desenclavar

Especifique mensajes PLC-5


Use los tipos de mensajes PLC-5 para comunicarse con los
controladores PLC-5.
Seleccione este comando

Si desea

TypedRead PLC5

Leer datos de nmeros enteros de 16 bits, con punto flotante (coma flotante) o de tipo
de cadena y mantener la integridad de los datos. Vea Tipos de datos para mensajes
TypedRead y TypedWrite de PLC5 en la pgina 164.

TypedWrite PLC5

Escribir datos de nmeros enteros de 16 bits, con punto flotante (coma flotante) o de
tipo de cadena y mantener la integridad de los datos. Vea Tipos de datos para mensajes
TypedRead y TypedWrite de PLC5 en la pgina 164

Lectura de rango de palabras


PLC5

Leer un rango continuo de palabras de 16 bits en la memoria PLC-5 independientemente


del tipo de datos.
Este comando comienza en la direccin especificada como el elemento de origen y lee
secuencialmente el nmero de palabras de 16 bits solicitado.
Los datos del elemento de origen se almacenan a partir de la direccin especificada
como tag de destino.

Escritura de rango de palabras


PLC5

Escribir un rango continuo de palabras de 16 bits en la memoria Logix5000,


independientemente del tipo de datos a la memoria PLC-5.
Este comando comienza en la direccin especificada en el tag de origen y lee
secuencialmente el nmero de palabras de 16 bits solicitado.
Los datos del tag de origen se almacenan a partir de la direccin especificada como el
elemento de destino en el procesador PLC-5.

Publicacin 1756-RM003K-ES-P Julio 2008

163

Captulo 4

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

La siguiente tabla muestra los tipos de datos a usar con mensajes


TypedRead de PLC5 y mensajes TypedWrite de PLC5.
Tipos de datos para mensajes TypedRead y TypedWrite de PLC5
Para este tipo de datos
PLC-5

Use este tipo de datos Logix5000

INT

REAL

INT
DINT (solamente escriba valores DINT a un controlador
PLC-5 si el valor es 32,768 y 32,767.)

INT

ST

STRING

Los comandos TypedRead y TypedWrite tambin funcionan con los


procesadores SLC 5/03 (OS303 y posteriores), procesadores SLC 5/04
(OS402 y posteriores) y procesadores SLC 5/05.
Los diagramas siguientes muestran la diferencia entre los comandos
de tipo (TypedWrite/TypedRead) y de rango de palabras. El ejemplo
usa comandos de lectura de un procesador PLC-5 a un controlador
Logix5000.
Comando TypedRead
palabras de 16 bits en
procesador PLC-5

Comando de lectura de rango de palabras


palabras de 32 bits en
controlador Logix5000

palabras de 32 bits en
controlador Logix5000

Los comandos TypedWrite/TypedRead mantienen la


estructura y el valor de los datos.

164

palabras de 16 bits en
procesador PLC-5

Los comandos de rango de palabras llenan el tag de destino


contiguamente. La estructura y valor de los datos se cambian
segn el tipo de datos de destino.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Especifique mensajes SLC


Use los tipos de mensajes SLC para comunicarse con los controladores
SLC y MicroLogix. La siguiente tabla muestra los tipos de datos que la
instruccin le permite acceder. La tabla tambin muestra el tipo de
datos Logix5000 correspondiente.
Para este tipo de datos SLC o
MicroLogix

Use este tipo de datos Logix5000

REAL

L (controladores MicroLogix 1200 y 1500)

DINT

INT

Especifique mensajes de transferencia en bloques


Los tipos de mensajes de transferencia en bloques se usan para
comunicarse con mdulos de transferencia en bloques mediante una
red de E/S remotas universales.
Si desea

Seleccione este
comando

leer los datos de un mdulo de transferencia en bloques

Lectura de transferencia en
bloques

Este tipo de mensaje reemplaza la instruccin BTR.


escribir datos en un mdulo de transferencia en bloques

Escritura de transferencia
en bloques

Este tipo de mensaje reemplaza la instruccin BTW.

Para configurar un mensaje de transferencia en bloques, siga estas


pautas:
Los tags de origen (para BTW) y destino (para BTR) deben ser
suficientemente grandes para aceptar los datos solicitados,
excepto por las estructuras MESSAGE, AXIS y MODULE.
Especifique la cantidad de nmeros enteros de 16 bits (INT) que
desea enviar o recibir. Puede especificar de 0 a 64 nmeros
enteros.
Si usted desea que el

Especifique

mdulo de transferencia en bloques determine


cuntos enteros de 16 bits enviar (BTR).

0 para el nmero de
elementos

controlador enve 64 enteros (BTW).

Publicacin 1756-RM003K-ES-P Julio 2008

165

Captulo 4

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

Especifique mensajes PLC-3


Los tipos de mensaje PLC-3 han sido diseados para los procesadores
PLC-3.
Seleccione este comando

Si desea

TypedRead PLC3

leer nmeros enteros o datos de tipo REAL.


Para enteros, este comando lee enteros de 16 bits del procesador PLC-3 y los almacena
en matrices de datos SINT, INT o DINT en el controlador Logix5000, y mantiene la
integridad de los datos.
Este comando tambin lee datos de punto flotante (coma flotante) del PLC-3 y los
almacena en un tag de tipo de datos REAL en el controlador Logix5000.

TypedWrite PLC3

escribir nmeros enteros o datos tipo REAL.


Este comando escribe datos SINT o INT en el archivo de nmeros enteros PLC-3, y
mantiene la integridad de los datos. Usted puede escribir datos DINT siempre y cuando
estn comprendidos dentro de un tipo de datos INT (32,768 32,767).
Este comando tambin escribe datos de tipo REAL del controlador Logix5000 en un
archivo de valores con punto flotante (coma flotante) PLC-3.

Lectura de rango de palabras


PLC3

leer un rango continuo de palabras de 16 bits en la memoria PLC-3 independientemente


del tipo de datos.
Este comando comienza en la direccin especificada en el elemento de origen y lee
secuencialmente el nmero de palabras de 16 bits solicitado.
Los datos del elemento de origen se almacenan a partir de la direccin especificada
como tag de destino.

Escritura de rango de palabras


PLC3

escribir un rango continuo de palabras de 16 bits de la memoria Logix5000


independientemente del tipo de datos a la memoria PLC-3.
Este comando comienza en la direccin especificada en el tag de origen y lee
secuencialmente el nmero de palabras de 16 bits solicitado.
Los datos del tag de origen se almacenan a partir de la direccin especificada como el
elemento de destino en el procesador PLC-3.

166

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Los diagramas siguientes muestran la diferencia entre los comandos


TypedWrite/TypedRead y de rango de palabras. El ejemplo usa los
comandos de lectura de un procesador PLC-3 a un controlador
Logix5000.
Comando TypedRead
palabras de 16 bits en
el procesador PLC-3

Comando de lectura de rango de palabras


palabras de 32 bits en el
controlador Logix5000

palabras de 16 bits en
el procesador PLC-3

palabras de 32 bits en el
controlador Logix5000

Los comandos TypedWrite/TypedRead mantienen la


estructura y el valor de los datos.

Los comandos de rango de palabras llenan el tag de destino


contiguamente. La estructura y el valor de los datos se
cambian segn el tipo de datos de destino.

Especifique mensajes PLC-2


Los tipos de mensaje PLC-2 han sido diseados para los procesadores
PLC-2.
Seleccione este comando

Si desea

Lectura no protegida PLC2

leer palabras de 16 bits de cualquier rea de la tabla de datos PLC-2 o el archivo de


compatibilidad PLC-2 de otro procesador.

Escritura no protegida PLC2

escribir palabras de 16 bits en cualquier rea de la tabla de datos PLC-2 o el archivo de


compatibilidad PLC-2 de otro procesador.

La transferencia de mensaje usa palabras de 16 bits; por lo tanto,


asegrese de que el tag Logix5000 almacena apropiadamente los
datos transferidos (generalmente como una matriz INT).

Publicacin 1756-RM003K-ES-P Julio 2008

167

Captulo 4

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

Ejemplos de configuracin
MSG

Los ejemplos siguientes muestran tags de origen y destino, as como


elementos para diferentes combinaciones de controladores.
Para las instrucciones MSG que provienen de un controlador
Logix5000 y escriben en otro procesador:

Ruta de mensaje

Ejemplo de origen y destino

Logix5000 Logix5000

tag de origen

array_1[0]

tag de destino

array_2[0]

Puede usar un tag de alias para el tag de origen (en el controlador Logix5000 de
origen).
No puede usar un tag de alias para el tag de destino. El destino debe ser un tag de
base.
Logix5000 PLC-5

tag de origen

array_1[0]

Logix5000 SLC

elemento de destino

N7:10

Puede usar un tag de alias para el tag de origen (en el controlador Logix5000 de
origen).
Logix5000 PLC-2

tag de origen

array_1[0]

elemento de destino

010

Para las instrucciones MSG que provienen de un controlador


Logix5000 y leen de otro controlador:
Ruta de mensaje

Ejemplo de origen y destino

Logix5000 Logix5000

tag de origen

array_1[0]

tag de destino

array_2[0]

No puede usar un tag de alias para el tag de origen. El origen debe ser un tag de base.
Puede usar un tag de alias para el tag de destino (en el controlador Logix5000 de
origen).
Logix5000 PLC-5

elemento de origen

N7:10

Logix5000 SLC

tag de destino

array_1[0]

Puede usar un tag de alias para el tag de destino (en el controlador Logix5000 de
origen).
Logix5000 PLC-2

168

elemento de origen

010

tag de destino

array_1[0]

Publicacin 1756-RM003K-ES-P Julio 2008

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

Especifique los detalles


de comunicacin

Captulo 4

Para configurar una instruccin MSG, usted especifica estos detalles


en la ficha Communication.

Especifique una ruta


Especifique un mtodo de comunicacin
o una direccin de mdulo
Seleccione una opcin de cach

Especifique una ruta


La ruta de acceso muestra la ruta que sigue el mensaje para llegar al
destino. La misma utiliza ya sea los nombres de la configuracin de
E/S del controlador, los nmeros que usted escribe, o ambos.
Si

Entonces

La configuracin de E/S del controlador


tiene el mdulo que obtiene el mensaje.

Use el botn Browse para seleccionar el mdulo.

La configuracin de E/S del controlador


tiene slo el mdulo de comunicacin local.

1. Use el botn Browse para seleccionar el mdulo de comunicacin local.

La configuracin de E/S del controlador no


tiene ninguno de los mdulos que necesita
para el mensaje.

Escriba la ruta.

Publicacin 1756-RM003K-ES-P Julio 2008

2. Escriba el resto de la ruta.

169

Captulo 4

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

Ejemplo
La configuracin de E/S del controlador
tiene el mdulo que obtiene el mensaje.
Haga clic en el botn Browse y seleccione el mdulo.

La configuracin de E/S del controlador


tiene slo el mdulo de comunicacin local.
Vaya al mdulo de comunicacin local.
Vaya al puerto EtherNet/IP.
a la direccin de 10.10.10.10.
Vaya a travs del backplane
al mdulo en la ranura 0.

La configuracin de E/S del controlador no


tiene ninguno de los mdulos que necesita
para el mensaje.
Vaya a travs del backplane
al mdulo de comunicacin local en la ranura 1
Vaya al puerto ControlNet.
al nodo 4
Vaya a travs del backplane
al mdulo en la ranura 0.

Para escribir una ruta, use este formato:


port, next_address, port, next_address,

170

Publicacin 1756-RM003K-ES-P Julio 2008

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

Donde

port

Captulo 4

Es
Para esta red

Tipo

backplane

DF1 (canal 0 serie, serie)

ControlNet
EtherNet/IP
DH+ canal A
DH+ canal B

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:
Direccin IP (por ejemplo, 10.10.10.10)
Direccin IP:Puerto (por ejemplo, 10.10.10.10:24)
Nombre DNS (por ejemplo, tanques)
Nombre DNS:Puerto (por ejemplo, tanques:24)

Publicacin 1756-RM003K-ES-P Julio 2008

171

Captulo 4

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

Para transferencia en bloques


Para mensajes de transferencia en bloques, aada los siguientes
mdulos a la configuracin de E/S del controlador:
Para transferencias en
bloques mediante esta red
ControlNet

Aada estos mdulos a la configuracin de E/S


mdulo de comunicacin local (por ejemplo, el mdulo 1756-CNB)
mdulo adaptador remoto (por ejemplo, el mdulo 1771-ACN)

E/S remotas universales

mdulo de comunicacin local (por ejemplo, el mdulo 1756-DHRIO)


un mdulo adaptador remoto (por ejemplo, el mdulo 1771-ASB) para cada rack o porcin de un rack
en el chasis
mdulo de transferencia en bloques (opcional)

Especifique un mtodo de comunicacin o una direccin de


mdulo
Use la tabla siguiente para seleccionar un mtodo de comunicacin o
direccin de mdulo para el mensaje.
Si el dispositivo de destino
es un

Seleccione

Y especifique

Controlador Logix5000

CIP

no se requieren otras especificaciones

DH+

Canal:

Canal A o B del mdulo 1756-DHRIO que est


conectado a la red DH+

Controlador SLC por una red


DH+

Vnculo de origen:

La identificacin de vnculo asignada al


backplane del controlador en la tabla de
encaminamiento del mdulo 1756-DHRIO.
(El nodo de origen en la tabla de
encaminamiento es automticamente el nmero
de ranura del controlador).

Procesador PLC-3

Vnculo de destino

La identificacin de vnculo de la red DH+


remota donde reside el dispositivo receptor

Procesador PLC-2

Nodo de destino:

Direccin de estacin del dispositivo receptor, en


octal

Controlador PLC-5 por una red


EtherNet/IP
Controlador PLC-5 por una red
ControlNet
Controlador SLC 5/05
Controlador PLC-5 por una red
DH+

Si slo hay un vnculo DH+ y usted no us el software RSLinx para


configurar el mdulo DH/RIO para vnculos remotos, especifique 0 tanto
para el vnculo de origen como para el vnculo de destino.

172

Publicacin 1756-RM003K-ES-P Julio 2008

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

Si el dispositivo de destino
es un

Seleccione

CIP con ID de origen


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

Captulo 4

Y especifique
Vnculo de origen:

ID remoto del tema en el software RSLinx

Vnculo de destino:

ID de vnculo virtual configurado en RSLinx


(0-65535)

Nodo de destino:

ID de destino (0-77 octal) proporcionado por la


aplicacin a RSLinx. Para el tema DDE en
RSLinx, use 77.

El nmero de ranura del controlador ControlLogix se usa como nodo de


origen.
Mdulo de transferencia en
bloques mediante una red de
E/S remotas universales

Mdulo de transferencia en
bloques mediante una red
ControlNet

RIO

ControlNet

Canal:

Canal A o B del mdulo 1756-DHRIO que est


conectado a la red RIO

Rack

Nmero de rack (octal) del mdulo

Grupo

Nmero de grupo del mdulo

Ranura

Nmero de ranura donde est el mdulo

Ranura

Nmero de ranura donde est el mdulo

Seleccione una opcin de cach


Dependiendo de cmo usted configure una instruccin MSG, puede
usar una conexin para enviar o recibir datos.
Este tipo de mensaje

Y este mtodo de comunicacin

Lectura o escritura de datos CIP


PLC2, PLC3, PLC5 o SLC (todos los tipos)

Usa una conexin

CIP
CIP con ID de origen
DH+

CIP genrico

su opcin (1)

Lectura o escritura de transferencia en


bloques

(1)

Puede conectar mensajes genricos CIP. Pero para la mayora de las aplicaciones, recomendamos que deje no
conectados los mensajes genricos CIP.

Si una instruccin MSG usa una conexin, usted tiene la opcin de


dejar la conexin abierta (en cach) o cerrar la conexin cuando haya
acabado de transmitir el mensaje.

Publicacin 1756-RM003K-ES-P Julio 2008

Si usted

Entonces

Almacena en cach la
conexin

La conexin se mantiene abierta una vez finalizada la


instruccin MSG. As se optimiza el tiempo de ejecucin.
El abrir una conexin cada vez que se ejecuta el mensaje
aumenta el tiempo de ejecucin.

No almacena en cach
la conexin

La conexin se cierra una vez finalizada la instruccin MSG.


As se libera la conexin para otros usos.

173

Captulo 4

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

El controlador tiene los siguientes lmites en el nmero de conexiones


que usted puede poner en cach:
Si tiene esta revisin de
software y firmware
11.x o anterior

Puede almacenar en cach


mensajes de transferencia en bloques para hasta
16 conexiones
otros tipos de mensajes para hasta 16 conexiones

12.x o posterior

hasta 32 conexiones

Si varios mensajes van al mismo dispositivo, es posible que los


mensajes puedan compartir una conexin.
Si las instrucciones MSG son para

Entonces

diferentes dispositivos
el mismo dispositivo

Cada instruccin MSG usa 1 conexin.


estn habilitadas simultneamente

Cada instruccin MSG usa 1 conexin.

NO estn habilitadas simultneamente

Las instrucciones MSG comparten la misma


conexin. (es decir, juntas cuentan como
1 conexin).

EJEMPLO

Comparta una conexin


Si el controlador alterna entre enviar un mensaje de lectura de
transferencia en bloque y un mensaje de escritura de
transferencia en bloques al mismo mdulo, ambos mensajes se
cuentan como 1 conexin. Almacenar en cach ambos
mensajes se cuenta como 1 en la lista de cach.

174

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Pautas
Cuando planifique y programe sus instrucciones MSG, siga estas
pautas:
Pauta

Detalles

1. Para cada instruccin MSG, cree un tag de


control.

Cada instruccin MSG requiere su propio tag de control.


Tipo de datos = MESSAGE
Alcance = controlador
El tag no puede ser parte de una matriz ni de un tipo de datos definido por el usuario.

2. Mantenga los datos de origen y/o destino al Una instruccin MSG puede acceder slo a tags que estn en la carpeta de tags del
alcance del controlador.
controlador (alcance del controlador).
Si su mensaje es a un dispositivo que usa enteros de 16 bits, tal como un controlador
3. Si su MSG es a un dispositivo que usa
enteros de 16 bits, use un bfer de INT en el PLC-5 o SLC 500, y ste transfiere enteros (no valores REAL), use un bfer de INT en
el mensaje y DINT en todo el proyecto.
MSG y DINT en todo el proyecto.
As se aumenta la eficiencia de su proyecto porque los controladores Logix se ejecutan
ms eficientemente y usan menos memoria cuando trabajan con enteros de 32 bits
(DINT).
Para convertir entre INT y DINT, consulte Logix5000 Controllers Common Procedures,
publicacin 1756-PM001.
4. Almacene en cach los MSG conectados
que se ejecutan con mayor frecuencia.

Almacene en cach la conexin para dichas instrucciones MSG que se ejecutan con
ms frecuencia, hasta el nmero mximo permitido por la revisin del controlador.
Esto optimiza el tiempo de ejecucin porque el controlador no tiene que abrir una
conexin cada vez que se ejecuta el mensaje.

5. Si desea habilitar ms de 16 MSG


simultneamente, use el mismo tipo de
estrategia de administracin.

Si usted habilita ms de 16 MSG a la vez, algunas instrucciones MSG pueden


experimentar retardos al ingresar en la cola. Para garantizar la ejecucin de cada
mensaje, use una de estas opciones.
Habilite cada mensaje en secuencia.
Habilite los mensajes en grupos.
Programe un mensaje para comunicarse con varios dispositivos. Para obtener ms
informacin, consulte Logix5000 Controllers Common Procedures, publicacin
1756-PM001.
Programe la lgica para coordinar la ejecucin de mensajes. Para obtener ms
informacin, consulte Logix5000 Controllers Common Procedures, publicacin
1756-PM001.

6. Mantenga el nmero de MSG no


conectados y no almacenados en cach en
un valor menor que el nmero de bferes no
conectados.

El controlador puede tener 10 - 40 bferes no conectados. El nmero predeterminado


es 10.
Si todos los bferes no conectados se usan cuando una instruccin deja la cola de
mensajes, se produce un error en la instruccin y no transfiere los datos.
Usted puede aumentar el nmero de bferes no conectados (40 mx.), pero contine
siguiendo las pautas 5.
Para aumentar el nmero de bferes no conectados, consulte Logix5000 Controllers
Common Procedures, publicacin 1756-PM001.

Publicacin 1756-RM003K-ES-P Julio 2008

175

Captulo 4

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

Obtener valor del sistema


(GSV) y establecer valor del
sistema (SSV)

Las instrucciones GSV/SSV reciben y envan datos de sistema del


controlador que se almacenan en los objetos.

Operandos:
Lgica de escalera de rels

Operando

Tipo

Formato

Descripcin

Class name

nombre

nombre del objeto

Instance name

nombre

nombre de objeto especfico cuando el objeto requiere un


nombre

Attribute Name

nombre

atributo del objeto


el tipo de datos depende del atributo que usted selecciona

Destination (GSV)

SINT

tag

destino de los datos del atributo

tag

el tag que contiene los datos que desea copiar al atributo

INT
DINT
REAL
estructura
Source (SSV)

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

176

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Descripcin: Las instrucciones GSV/SSV reciben y envan datos de sistema del


controlador que se almacenan en objetos. El controlador almacena
datos del sistema en objetos. No hay un archivo de estado,
a diferencia del procesador PLC-5.
Cuando se habilita, la instruccin GSV recupera la informacin
especificada y la coloca en el destino. Cuando se habilita, la
instruccin SSV establece el atributo especificado con datos del
origen.
Cuando se introduce una instruccin GSV o SSV, el software de
programacin muestra las clases de objetos vlidas, nombres de
objetos y nombres de atributos para cada instruccin. Para la
instruccin GSV, usted puede obtener valores para todos los atributos
disponibles. Para la instruccin SSV, el software muestra slo los
atributos que usted puede establecer (SSV).

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

Member_A es demasiado pequeo para el atributo. Por lo tanto, la instruccin GSV


escribe el ltimo valor a Member_B.
Ejemplo 2

My_Tag es demasiado pequeo para el atributo. Por lo tanto, la instruccin GSV se


detiene y registra un fallo menor.
La seccin de objetos GSV/SSV muestra los atributos de cada objeto
y sus tipos de datos asociados. Por ejemplo, el atributo
MajorFaultRecord del objeto Program necesita un tipo de datos
DINT[11].

Publicacin 1756-RM003K-ES-P Julio 2008

177

Captulo 4

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

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ocurrir un fallo menor si

Tipo de fallo

Cdigo de fallo

direccin de objeto no vlida

se especific un objeto que no es compatible con


GSV/SSV

atributo no vlido

no se proporcion suficiente informacin para


una instruccin SSV

el destino GSV no es suficientemente grande


para retener los datos solicitados

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

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

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.

post-escn

La condicin de salida de rengln se establece como Ninguna.


falsa.

178

Obtenga o establezca el valor especificado.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Objetos GSV/SSV

Captulo 4

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.

ATENCIN

Para la instruccin GSV, slo el tamao especificado de datos


se copia al destino. Por ejemplo, si el atributo est especificado
como un SINT y el destino es un DINT, slo los 8 bits inferiores
del destino DINT se actualizan, dejando los 24 bits sin ningn
cambio.

Se puede obtener acceso a los siguientes objetos:

Publicacin 1756-RM003K-ES-P Julio 2008

Para obtener informacin acerca de


este objeto

Vea esta pgina o publicacin

AXIS

ControlLogix Motion Module Setup and


Configuration Manual, publicacin
1756-UM006

CONTROLLER

180

CONTROLLERDEVICE

181

CST

183

DF1

184

FAULTLOG

187

MESSAGE

188

MODULE

190

MOTIONGROUP

191

PROGRAM

192

ROUTINE

193

SERIALPORT

193

TASK

195

WALLCLOCKTIME

197

179

Captulo 4

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

Acceso al objeto CONTROLLER


El objeto CONTROLLER proporciona informacin de estado acerca de
la ejecucin de un controlador.
Atributo

Tipo de datos

Instruccin

Descripcin

TimeSlice

INT

GSV

El porcentaje de la CPU disponible que se asigna a las


comunicaciones.

SSV
Los valores vlidos son 10-90. Este valor no puede cambiarse
cuando el interruptor de llave del controlador se encuentra en
la posicin de marcha.
ControllerLogTotalEntryCou
nt

DINT

SSV

Nmero de entradas de registro del controlador desde la


ltima actualizacin de firmware.

GSV
El nmero se restablecer si la RAM entra en un mal estado.
El nmero tiene como lmite el DINT ms alto.
ControllerLogExecutionMod DINT
ificationCount

SSV
GSV

Nmero de entradas de registro del controlador que se origin


a partir de un cambio de propiedades de programa/tarea, una
edicin en lnea o un cambio del segmento de tiempo del
controlador. Tambin puede configurarse para incluir entradas
de registro que se originan a partir de forzados.
El nmero se restablecer si la RAM entra en un mal estado.
El nmero no tiene como lmite el mayor DINT, y puede ocurrir
un salto entre los valores extremos (rollover).

ControllerLogUnsavedEntry
Count

DINT

GSV

Nmero de entradas en el registro del controlador que todava


tienen que almacenarse en el medio fsico extrable.
Rango de 0 al nmero mximo de entradas.

ControllerLogAutoWrite

BOOL

MSG

Indicador usado para determinar si la escritura automtica del


registro del controlador al medio fsico extrable est
habilitada.
0 = la escritura automtica est inhabilitada (fallo).
1 = el registro del controlador tratar de escribir al medio fsico
extrable cuando el registro est al 80% de su capacidad.

ExecutionCountConfigureM DINT
ask

MSG

Matriz de bits usada para determinar qu har que se


incremente el conteo de modificacin de ejecucin.
0 = predeterminado (todo excepto los forzados).
1 = forzados incluidos (todo adems de los forzados).

180

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Acceso al objeto CONTROLLERDEVICE


El objeto CONTROLLERDEVICE identifica el hardware fsico del
controlador.
Atributo

Tipo de datos

Instruccin

Descripcin

DeviceName

SINT[33]

GSV

La cadena ASCII que identifica el nmero de catlogo del


controlador y la tarjeta de memoria.
El primer byte contiene un conteo del nmero de caracteres
ASCII retornados en la cadena de matriz.

ProductCode

ProductRev

INT

INT

GSV

GSV

Identifica el tipo de controlador.


Controlador Logix

Cdigo de producto

CompactLogix5320

43

CompactLogix5330

44

CompactLogix5335E

65

ControlLogix5550

ControlLogix5553

50

ControlLogix5555

51

ControlLogix5561

54

ControlLogix5562

55

ControlLogix5563

56

DriveLogix5720

48

FlexLogix5433

41

FlexLogix5434

42

SoftLogix5860

15

Identifica la revisin del producto actual. La visualizacin debe


ser hexadecimal.
El byte inferior contiene la revisin mayor; el byte superior
contiene la revisin menor.

SerialNumber

DINT

GSV

Nmero de serie del dispositivo.


El nmero de serie se asigna cuando se construye el
dispositivo.

Publicacin 1756-RM003K-ES-P Julio 2008

181

Captulo 4

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

Atributo

Tipo de datos

Instruccin

Descripcin

Status

INT

GSV

Bits que identifican el estado:


Los bits 3-0 estn reservados
Bits de estado de dispositivo
Bits 7-4:
0000

Significado:
reservado

0001

actualizacin de la memoria flash en curso

0010

reservado

0011

reservado

0100

la memoria flash est defectuosa

0101

con fallo

0110

marcha

0111

programa

Bits de estado de fallo


Bits 11-8:
0001

Significado:
fallo menor recuperable

0010

fallo menor no recuperable

0100

fallo mayor recuperable

1000

fallo mayor no recuperable

Bits de estado especficos para Logix5000

Type

INT

GSV

Bits 13-12:
01

Significado:
interruptor de llave en marcha

10

interruptor de llave en programa

11

interruptor de llave en modo remoto

Bits 15-14

Significado

01

el controlador est cambiando de modos

10

modo de depuracin si el controlador est


en el modo de marcha

Identifica el dispositivo como controlador.


Controlador = 14

Vendor

INT

GSV

Identifica el suministrador del dispositivo.


Allen-Bradley = 0001

182

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Acceso al objeto CST


El objeto CST (hora coordinada del sistema) proporciona la hora
coordinada del sistema para los dispositivos en un chasis.
Atributo

Tipo de datos

Instruccin

Descripcin

CurrentStatus

INT

GSV

El estado actual de la hora coordinada del sistema. Los bits


identifican:

CurrentValue

DINT[2]

GSV

Bit:

Significado

el hardware del temporizador entr en fallo: el hardware


del temporizador interno del dispositivo est en un estado
de fallo

rampa habilitada: el valor actual de los 16+ bits inferiores


del temporizador aumentan en rampa al valor solicitado
en lugar de quedarse en el valor inferior. El mtodo de
sincronizacin por puntos para la red especfica manipula
estos bits.

maestro de hora del sistema: el objeto CST es la fuente de


hora del maestro en el sistema ControlLogix

sincronizado: el objeto de CST maestro sincroniza el


CurrentValue de 64 bits del objeto CST mediante una
actualizacin de hora del sistema

maestro de red local: el objeto CST es la fuente de hora


del maestro de la red local

en el modo de relevo: el objeto CST acta en un modo de


relevo de tiempo

se detect un maestro duplicado: se ha detectado un


maestro de hora duplicado en la red local. Este bit siempre
es 0 en los nodos dependientes de la hora.

no se usa

8-9

00 = nodo dependiente de la hora


01 = nodo maestro de hora
10 = nodo de rel de hora
11 = no se usa

10-15

no se usa

Valor actual del temporizador. DINT[0] contiene los 32 bits inferiores;


DINT[1] contiene los 32 bits superiores.
La fuente del temporizador se ajusta para coincidir con el valor
suministrado en los servicios de actualizacin y de la sincronizacin
de red de comunicacin local. El ajuste representa un aumento en
rampa hasta el valor solicitado o un establecimiento inmediato en el
valor solicitado, segn se reporte en el atributo CurrentStatus.

Publicacin 1756-RM003K-ES-P Julio 2008

183

Captulo 4

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

Acceso al objeto DF1


El objeto DF1 proporciona una interface al driver de comunicacin
que se puede configurar para el puerto serie.
Atributo

Tipo de
datos

Instruccin

Descripcin

ACKTimeout

DINT

GSV

La cantidad de tiempo que se debe esperar por la confirmacin de


una transmisin de mensaje (punto a punto y maestro solamente).
El valor vlido es 0-32,767. Retardo en conteos de perodos de
20 ms. El valor predeterminado es 50 (1 segundo).

DiagnosticCounters
offset de palabra
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

INT[19]

GSV

DF1 punto a punto


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

DuplicateDetection

SINT

GSV

Matriz de contadores de diagnstico para el driver de


comunicacin DF1.
DF1 esclavo
firma (0x0042)
bits de mdem
paquetes enviados
paquetes recibidos
paquetes no entregados
mensajes reenviados
NAK recibidos
paquetes de encuesta recibidos
paquetes deficientes sin ACK
sin memoria sin ACK
recibidos paquetes duplicados
no se usa
conteo de recuperaciones DCD
conteo de mdem perdido
no se usa
no se usa
no se usa
no se usa
no se usa

Habilita la deteccin de mensajes duplicados.


Valor:
0
no cero

EmbeddedResponseEnable

SINT

GSV

1
SINT

GSV

Significado:
deteccin de mensajes duplicados inhabilitada
deteccin de mensajes duplicados inhabilitada

Habilita la funcionalidad de respuesta incorporada (punto a punto


solamente).
Valor:
0

ENQTransmitLimit

maestro
firma (0x0044)
bits de mdem
paquetes enviados
paquetes recibidos
paquetes no entregados
mensajes reenviados
no se usa
no se usa
paquetes deficientes sin ACK
no se usa
recibidos paquetes duplicados
no se usa
conteo de recuperaciones DCD
conteo de mdem perdido
mximo de tiempo de escn prioritario
ltimo tiempo de escn prioritario
mximo de tiempo de escn normal
ltimo tiempo de escn normal
no se usa

Significado:
se inicia solamente despus de que se recibe uno
(opcin predeterminada)
habilitado incondicionalmente

El nmero de consultas (ENQ) que se envan despus del tiempo


de espera de ACK (punto a punto solamente).
Los valores vlidos son 0-127. El ajuste predeterminado es 3.

EOTSuppression

SINT

GSV

Habilita la supresin de transmisiones de EOT como respuesta a


los paquetes de encuesta (esclavo solamente).
Valor:
0
no cero

184

Significado:
supresin de EOT inhabilitada
supresin de EOT habilitada

Publicacin 1756-RM003K-ES-P Julio 2008

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

Atributo

Tipo de
datos

Instruccin

Descripcin

ErrorDetection

SINT

GSV

Especifica el esquema de deteccin de errores.


Valor:
0
1

MasterMessageTransmit

SINT

GSV

Captulo 4

Significado:
BCC (predeterminado)
CRC

Valor actual de la transmisin de mensaje del maestro (maestro


solamente).
Valor:
0
1

Significado:
entre encuestas de estacin
en secuencia de encuesta (en lugar del nmero de
estacin del maestro)

El valor predeterminado es 0.
NAKReceiveLimit

SINT

GSV

El nmero de NAK recibidos como respuesta a un mensaje antes


de detener la transmisin (comunicacin punto a punto
solamente).
Los valores vlidos son 0-127. El valor predeterminado es 3.

NormalPollGroupSize

INT

GSV

El nmero de estaciones que se encuestan en la matriz de nodos


de encuesta normal despus de encuestarse todas las estaciones
en la matriz de nodos de encuesta prioritaria (maestro solamente).
Los valores vlidos son 0-255. El valor predeterminado es 0.

PollingMode

SINT

GSV

Modo de encuesta actual (maestro solamente).


Valor:
0
1
2
3

Significado:
basado en mensajes; no permite a los esclavos
iniciar mensajes
basado en mensajes, pero permite a los esclavos
iniciar mensajes (predeterminado)
estndar, transferencia de un solo mensaje por
escn de nodo
estndar, transferencia de varios mensajes por
escn de nodo

La configuracin predeterminada es 1.
ReplyMessageWait

DINT

GSV

El tiempo (actuando como maestro) que se debe esperar despus


de recibirse un ACK antes de encuestarse el esclavo en busca de
una respuesta (maestro solamente).
Valores vlidos de 0-65,535. Retardo en conteos de perodos de
20 ms. La configuracin predeterminada es 5 perodos (100 ms).

StationAddress

INT

GSV

Direccin de estacin actual del puerto serie.


Valores vlidos de 0-254. El valor predeterminado es 0.

SlavePollTimeout

DINT

GSV

La cantidad de tiempo en ms que espera el esclavo hasta que el


maestro realiza una encuesta antes de que el esclavo indique que
no puede transmitir debido a la inactividad del maestro (esclavo
solamente).
Valores vlidos de 0-32,767. Retardo en conteos de perodos de
20 ms. La configuracin predeterminada es 3000 perodos
(1 minuto).

Publicacin 1756-RM003K-ES-P Julio 2008

185

Captulo 4

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

Atributo

Tipo de
datos

Instruccin

Descripcin

TransmitRetries

SINT

GSV

El nmero de veces que se puede volver a enviar un mensaje sin


obtenerse una confirmacin (maestro y esclavo solamente).
Valores vlidos de 0-127. El valor predeterminado es 3.

PendingACKTimeout

DINT

SSV

Valor pendiente para el atributo ACKTimeout.

PendingDuplicateDetection

SINT

SSV

Valor pendiente para el atributo DuplicateDetection.

PendingEmbeddedResponse
Enable

SINT

SSV

Valor pendiente para el atributo EmbeddedResponse.

PendingENQTransmitLimit

SINT

SSV

Valor pendiente para el atributo ENQTransmitLimit.

PendingEOTSuppression

SINT

SSV

Valor pendiente para el atributo EOTSuppression.

PendingErrorDetection

SINT

SSV

Valor pendiente para el atributo ErrorDetection.

PendingNormalPollGroupSize

INT

SSV

Valor pendiente para el atributo NormalPollGroupSize.

PendingMasterMessage
Transmit

SINT

SSV

Valor pendiente para el atributo MasterMessageTransmit.

PendingNAKReceiveLimit

SINT

SSV

Valor pendiente para el atributo NAKReceiveLimit.

PendingPollingMode

SINT

SSV

Valor pendiente para el atributo PollingMode.

PendingReplyMessageWait

DINT

SSV

Valor pendiente para el atributo ReplyMessageWait.

PendingStationAddress

INT

SSV

Valor pendiente para el atributo StationAddress.

PendingSlavePollTimeout

DINT

SSV

Valor pendiente para el atributo SlavePollTimeout.

PendingTransmitRetries

SINT

SSV

Valor pendiente para el atributo TransmitRetries.

Para aplicar los valores en cualquiera de los atributos DF1 pendientes:


1. Use una instruccin SSV para establecer el valor del atributo
pendiente.
Usted puede establecer tantos atributos pendientes como desee,
usando una instruccin SSV por cada atributo pendiente.
2. Use una instruccin MSG para aplicar el valor. La instruccin
MSG aplica cada atributo pendiente establecido. Configure la
instruccin MSG como:
Ficha MSG Configuration

Campo

Valor

Configuracin

Message Type

CIP genrico

Service Code

0d hex

Tipo de objeto

a2

Object ID

Object Attribute

dejar en blanco

Source

dejar en blanco

Number of Elements

Destination

dejar en blanco

Path

ruta de comunicacin consigo


mismo (1,s donde s = nmero
de ranura del controlador)

Comunicacin

186

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Acceso al objeto FAULTLOG


El objeto FAULTLOG proporciona informacin de fallo acerca del
controlador.
Atributo

Tipo de datos

Instruccin

Descripcin

MajorEvents

INT

GSV

Cuntos fallos mayores han ocurrido desde la ltima vez que


se restableci este contador.

SSV
MinorEvents

INT

GSV

Cuntos fallos menores han ocurrido desde la ltima vez que


se restableci este contador.

SSV
MajorFaultBits

MinorFaultBits

DINT

DINT

Publicacin 1756-RM003K-ES-P Julio 2008

GSV

Los bits individuales indican la razn del fallo mayor actual.

SSV

Bit:
1
3
4
5
6
7
8
11

GSV

Los bits individuales indican la razn del fallo menor actual.

SSV

Bit:
4
6
9
10

Significado:
corte de energa
E/S
ejecucin de instruccin (programa)
administrador de fallos
temporizador de control (watchdog)
pila
cambio de modo
control de movimiento

Significado:
ejecucin de instruccin (programa)
temporizador de control (watchdog)
puerto serie
batera

187

Captulo 4

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

Acceso al objeto MESSAGE


Usted puede acceder al objeto MESSAGE a travs de las instrucciones
GSV/SSV. Especifique el nombre del tag de mensaje para determinar
qu objeto MESSAGE desea. El objeto MESSAGE proporciona una
interface para configurar y activar las comunicaciones entre
dispositivos similares. Este objeto reemplaza el tipo de datos MG del
procesador PLC-5.
Atributo

Tipo de datos

Instruccin

Descripcin

ConnectionPath

SINT[130]

GSV
SSV

Datos para configurar la ruta de conexin. Los dos primeros bytes


(byte inferior y byte superior) representan la longitud en bytes de la
ruta de conexin.

GSV

Rgimen de paquetes solicitado de la conexin.

ConnectionRate

DINT

SSV
MessageType

Port

TimeoutMultiplier

SINT

SINT

SINT

GSV

Especifica el tipo de mensaje.

SSV

Valor:
0

GSV

Indica el puerto por el que se debe enviar el mensaje.

SSV

Valor:
1
2

GSV

Determina cundo una conexin se debe considerar como que ha


sobrepasado el tiempo de espera y se ha cerrado.

Significado:
no inicializado

Significado:
backplane
puerto serie

SSV
Valor:
0
1
2
UnconnectedTimeout

DINT

GSV
SSV

Significado:
la conexin sobrepasar el tiempo de espera en un
lapso igual a 4 veces el rgimen de actualizacin
(predeterminado)
la conexin sobrepasar el tiempo de espera en un
lapso igual a 8 veces el rgimen de actualizacin
la conexin sobrepasar el tiempo de espera en un
lapso igual a 16 veces el rgimen de actualizacin

El tiempo de espera, en microsegundos, para todos los


mensajes no conectados. La opcin predeterminada es
30,000,000 microsegundos (30 segundos).

Siga los pasos que aparecen a continuacin para cambiar un atributo


MESSAGE:
1. Use una instruccin GSV para obtener el atributo MessageType
y gurdelo en un tag.
2. Use una instruccin SSV para establecer MessageType en 0.
3. Use una instruccin SSV para establecer el atributo MESSAGE
que desea cambiar.
4. Use una instruccin SSV para establecer el atributo MessageType
nuevamente al valor original que usted obtuvo en el paso 1.

188

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Ejemplo: El ejemplo siguiente cambia el atributo ConnectionPath de modo que


el mensaje se enve a un controlador diferente. Cuando msg_path est
activado, establece la ruta del mensaje msg_1 en el valor de
msg_1_path. Esto hace que se enve el mensaje a un controlador
diferente.
Donde

Es

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

Lgica de escalera de rels


msg_path
msg_path
0

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

msg_1.EN
msg_1.EN
/

SSV
SSV
Set
Value
SetSystem
System
Value
Class
name
Message
Class
name
MESSAGE
Instance
name
msg_1
Instance
name
msg_1
Attribute
Name MessageType
Attribute
Name
MessageType
Source
tag_a
Source
tag_a
00
SSV
SSV
Set
Value
SetSystem
System
Value
Class
name
Message
Class
name
MESSAGE
Instance
name
msg_1
Instance
name
msg_1
Attribute
Name
MessageType
Attribute
Name MessageType
Source
msg_1_type
Source
msg_1_type
22

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

EN
EN
DN
DN
ER
ER

Texto estructurado
IF msg_path THEN
GSV(MESSAGE,msg_1,MessageType,msg_1_type);
SSV(MESSAGE,msg_1,MessageType,tag_a);
SSV(MESSAGE,msg_1,ConnectionPath,msg_1_path[0]);
SSV(MESSAGE,msg_1,MessageType,msg_1_type);
END_IF;
IF NOT msg_1.EN THEN
MSG(msg_1);
END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008

189

Captulo 4

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

Acceso al objeto MODULE


El objeto MODULE proporciona informacin de estado acerca de un
mdulo. Para seleccionar un objeto MODULE determinado, establezca
el operando Object Name de la instruccin GSV/SSV en el nombre del
mdulo. El mdulo especificado deber estar presente en la seccin
I/O Configuration del organizador del controlador y deber tener un
nombre de dispositivo.
Atributo

Tipo de datos

Instruccin

Descripcin

EntryStatus

INT

GSV

Especifica el estado actual de la entrada de mapa especificada. Los


12 bits inferiores se deben enmascarar cuando se realiza una operacin
de comparacin. Solamente los bits 12-15 son vlidos.
Valor:
16#0000

Significado:
Reserva: el controlador se est encendiendo.

16#1000

Con fallo: cualquiera de las conexiones del objeto


MODULE al mdulo asociado entran en fallo. No se debe
usar este valor para determinar si el mdulo ha entrado en
fallo puesto que el objeto MODULE sale peridicamente de
este estado cuando intenta volver a conectarse al mdulo.
En lugar de ello, realice una prueba para determinar si hay
un estado de marcha (16#4000). Verifique si hay un
FaultCode diferente de 0 para determinar si un mdulo ha
entrado en fallo. Una vez que han entrado en fallo, los
atributos FaultCode y FaultInfo son vlidos hasta que se
corrige la condicin de fallo.

16#2000

Validando: el objeto MODULE est verificando la


integridad del objeto MODULE antes de establecer las
conexiones al mdulo.

16#3000

Conectndose: el objeto MODULE est iniciando las


conexiones al mdulo.

16#4000

Funcionando: todas las conexiones al mdulo han sido


establecidas y los datos se transfieren correctamente.

16#5000

Desactivndose: el objeto MODULE est en proceso de


desactivar todas las conexiones al mdulo.

16#6000

Inhibido: el objeto MODULE se inhibe (el bit de inhibicin


est establecido en el atributo de modo).

16#7000

En espera: no funciona el objeto MODULE primario del


cual depende este objeto MODULE.

FaultCode

INT

GSV

Un nmero que identifica un fallo del mdulo, si ocurre.

FaultInfo

DINT

GSV

Proporciona informacin especfica acerca del cdigo de fallo del objeto


MODULE.

ForceStatus

INT

GSV

Especifica el estado de los forzados.


Bit:
0
1
2-15

190

Significado:
forzados instalados (1=s, 0=no)
forzados habilitados (1=s, 0=no)
no se usa

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Atributo

Tipo de datos

Instruccin

Descripcin

Instance

DINT

GSV

Proporciona el nmero de instancia de este objeto MODULE.

LEDStatus

INT

GSV

Especifica el estado actual del indicador LED de E/S en la parte frontal del
controlador.
Valor:
0

Significado:
LED apagado: No hay objetos MODULE configurados para
el controlador (no hay mdulos en la seccin I/O
Configuration del organizador del controlador).

Rojo parpadeante: Ninguno de los objetos MODULE est


en ejecucin.

Verde parpadeante: Por lo menos uno de los objetos


MODULE no est en ejecucin.

Verde fijo: Todos los objetos Module estn en ejecucin.

Nota: No introduzca un nombre de objeto con este atributo puesto que el


atributo se aplica a toda la coleccin de mdulos.
Mode

INT

GSV

Especifica el modo actual del objeto MODULE.

SSV

Bit:
0

Significado:
Si se establece, hace que se genere un fallo mayor si
cualquiera de las conexiones del objeto MODULE entran en
fallo mientras el controlador est en el modo de marcha.

Si se establece, hace que el objeto MODULE entre en el


estado inhibido despus de desactivar todas las
conexiones al mdulo.

Acceso al objeto MOTIONGROUP


El objeto MOTIONGROUP proporciona informacin de estado acerca
de un grupo de ejes para el mdulo servo. Especifique el nombre de
tag del grupo de control de movimiento para determinar el objeto
MOTIONGROUP deseado.
Atributo

Tipo de datos

Instruccin

Descripcin

Instance

DINT

GSV

Proporciona el nmero de instancia de este objeto


MOTION_GROUP.

Publicacin 1756-RM003K-ES-P Julio 2008

191

Captulo 4

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

Acceso al objeto PROGRAM


El objeto PROGRAM proporciona informacin de estado acerca de un
programa. Especifique el nombre del programa para determinar el
objeto PROGRAM deseado.
Atributo

Tipo de datos

Instruccin

Descripcin

DisableFlag

SINT

GSV

Controla la ejecucin de este programa.

SSV

Valor:
0
1

Significado:
ejecucin habilitada
ejecucin inhabilitada

Instance

DINT

GSV

Proporciona el nmero de instancia de este objeto PROGRAM.

LastScanTime

DINT

GSV

El tiempo necesario para que se ejecutara este programa la ltima


vez que se ejecut. El tiempo se representa en microsegundos.

SSV
MajorFaultRecord

DINT[11]

GSV

Registra los fallos mayores para este programa.

SSV

Recomendamos que usted cree una estructura definida por el


usuario para simplificar el acceso al atributo MajorFaultRecord:

Nombre:

Tipo de datos:

Estilo:

Descripcin:

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

Type

INT

Decimal

tipo de fallo (programa, E/S, etc.)

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

SSV

Recomendamos que usted cree una estructura definida por el


usuario para simplificar el acceso al atributo MinorFaultRecord:

Nombre:

Tipo de datos:

Estilo:

Descripcin:

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

Type

INT

Decimal

tipo de fallo (programa, E/S, etc.)

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

192

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Acceso al objeto ROUTINE


El objeto ROUTINE proporciona informacin de estado acerca de una
rutina. Especifique el nombre de la rutina para determinar el objeto
ROUTINE deseado.
Atributo

Tipo de datos

Instruccin

Descripcin

Instance

DINT

GSV

Proporciona el nmero de instancia de este objeto ROUTINE.


Los valores vlidos son 0-65,535.

Acceso al objeto SERIALPORT


El objeto SERIALPORT proporciona una interface al puerto de
comunicacin serie.
Atributo

Tipo de datos

Instruccin

Descripcin

BaudRate

DINT

GSV

Especifica la velocidad en baudios.


Los valores vlidos son 110, 300, 600, 1200, 2400, 4800, 9600 y
19200 (predeterminado).

DataBits

SINT

GSV

Especifica el nmero de bits de datos por carcter.


Valor:
7
8

Parity

SINT

GSV

Especifica la paridad.
Valor:
0
1
2

RTSOffDelay

INT

GSV

Significado:
7 bits de datos (ASCII solamente)
8 bits de datos (opcin predeterminada)

Significado:
sin paridad (no predeterminado)
paridad impar (ASCII solamente)
paridad par

La cantidad de tiempo necesario para retardar la desconexin de


la lnea RTS despus de la transmisin del ltimo carcter.
El valor vlido es 0-32,767. Retardo en conteos de perodos de
20 ms. El valor predeterminado es 0 ms.

RTSSendDelay

INT

GSV

La cantidad de tiempo necesario para retardar la transmisin del


primer carcter de un mensaje despus de activar la lnea RTS.
El valor vlido es 0-32,767. Retardo en conteos de perodos de
20 ms. El valor predeterminado es 0 ms.

StopBits

SINT

GSV

Especifica el nmero de bits de fin.


Valor:
1
2

Significado:
1 bit de fin (opcin predeterminada)
2 bits de fin (ASCII solamente)

PendingBaudRate

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.

Publicacin 1756-RM003K-ES-P Julio 2008

193

Captulo 4

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

Atributo

Tipo de datos

Instruccin

Descripcin

PendingRTSOffDelay

INT

SSV

Valor pendiente para el atributo RTSOffDelay.

PendingRTSSendDelay

INT

SSV

Valor pendiente para el atributo RTSSendDelay.

PendingStopBits

SINT

SSV

Valor pendiente para el atributo StopBits.

Para aplicar los valores para cualquiera de los atributos SERIALPORT


pendientes:
1. Use una instruccin SSV para establecer el valor para el atributo
pendiente.
Usted puede establecer tantos atributos pendientes como desee,
usando una instruccin SSV para cada atributo pendiente.
2. Use una instruccin MSG para aplicar el valor. La instruccin
MSG aplica cada atributo pendiente establecido. Configure las
instrucciones MSG como:
Ficha MSG Configuration

Campo

Valor

Configuration

Message Type

CIP genrico

Service Code

0d hex

Object Type

6f hex

Object ID

Object Attribute

dejar en blanco

Source

dejar en blanco

Number of Elements

Destination

dejar en blanco

Path

ruta de comunicacin consigo mismo


(1,s donde s = nmero de ranura del
controlador)

Communication

194

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Acceso al objeto TASK


El objeto TASK proporciona informacin de estado acerca de una
tarea. Especifique el nombre de la tarea para determinar el objeto
TASK deseado.
Atributo

Tipo de datos

Instruccin

Descripcin

DisableUpdateOutputs

DINT

GSV

Habilita o inhabilita el procesamiento de salidas al final de una


tarea.

SSV

EnableTimeOut

DINT

GSV
SSV

InhibitTask

DINT

GSV
SSV

Instance

DINT

GSV

Para:

Establezca el atributo en:

habilitar el procesamiento de
salidas al final de la tarea

inhabilitar el procesamiento de
salidas al final de la tarea

1 (o cualquier valor excepto


cero)

Habilita o inhabilita la funcin de tiempo de espera de una tarea de


evento.
Para:

Establezca el atributo en:

inhabilitar la funcin de tiempo


de espera

habilitar la funcin de tiempo de


espera

1 (o cualquier valor excepto


cero)

Evita que se ejecute la tarea. Si se inhibe una tarea, el controlador


igualmente preescanea la tarea cuando el controlador cambia del
modo de programacin al modo de marcha o al modo de prueba.
Para:

Establezca el atributo en:

habitar la tarea

0 (predeterminado)

inhibir (inhabilitar) la tarea

1 (o cualquier valor excepto


cero)

Proporciona el nmero de instancia de este objeto TASK.


Los valores vlidos son 0-31.

LastScanTime

DINT

GSV

El tiempo necesario para ejecutar esta tarea desde la ltima vez


que se ejecut. El tiempo se representa en microsegundos.

SSV
MaxInterval

DINT[2]

GSV
SSV

El intervalo de tiempo mximo entre las ejecuciones sucesivas de la


tarea. DINT[0] contiene los 32 bits inferiores del valor; DINT[1]
contiene los 32 bits superiores del valor.
Un valor de 0 indica 1 o menos ejecuciones de la tarea.

MaxScanTime

DINT

GSV

El tiempo de ejecucin mximo registrado para este programa.


El tiempo se representa en microsegundos.

SSV
MinInterval

DINT[2]

GSV
SSV

El intervalo de tiempo mnimo entre las ejecuciones sucesivas de la


tarea. DINT[0] contiene los 32 bits inferiores del valor; DINT[1]
contiene los 32 bits superiores del valor.
Un valor de 0 indica 1 o menos ejecuciones de la tarea.

OverlapCount

DINT

GSV
SSV

Publicacin 1756-RM003K-ES-P Julio 2008

El nmero de veces que se activ la tarea mientras se estaba


ejecutando. Vlido para un evento o una tarea peridica.
Para borrar el conteo, establezca el atributo en 0.

195

Captulo 4

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

Atributo

Tipo de datos

Instruccin

Descripcin

Priority

INT

GSV

La prioridad relativa de esta tarea comparada con las otras tareas.

SSV

Valores vlidos 1...15.

GSV

Si el tipo de tarea es:

El atributo Rate especifica


el:

peridica

Perodo para la tarea.


El tiempo se representa en
microsegundos.

evento

El valor de tiempo de espera


para la tarea. El tiempo se
representa en microsegundos.

Rate

DINT

SSV

StartTime

DINT[2]

GSV
SSV

Status

DINT

GSV
SSV

Watchdog

DINT

GSV
SSV

El valor WALLCLOCKTIME cuando se inici la ltima ejecucin de la


tarea. DINT[0] contiene los 32 bits inferiores del valor; DINT[1]
contiene los 32 bits superiores del valor.
Proporciona informacin de estado acerca de la tarea. Una vez que
el controlador establece uno de estos bits, usted puede borrar el bit
manualmente.
Para determinar si:

Examine este bit:

Una instruccin EVNT activ


la tarea (tarea de evento
solamente).

Un tiempo de espera
sobrepasado activ la tarea
(tarea de evento solamente).

Ocurri una superposicin para


esta tarea.

El lmite de tiempo para la ejecucin de todos los programas


asociados con esta tarea. El tiempo se representa en
microsegundos.
Si se introduce 0, se asignan estos valores:

196

Tiempo:

Tipo de tarea:

0.5 s

peridica o de evento

5.0 s

continua

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Acceso al objeto WALLCLOCKTIME


El objeto WALLCLOCKTIME proporciona un sello de hora que el
controlador puede usar para la priorizacin.
Atributo

Tipo de datos

Instruccin

Descripcin

CSTOffset

DINT[2]

GSV

Offset positivo del CurrentValue del objeto CST (hora coordinada del
sistema; vea la pgina 183). DINT[0] contiene los 32 bits inferiores
del valor; DINT[1] contiene los 32 bits superiores del valor.

SSV

Valor en s. El valor predeterminado es 0.


CurrentValue

DINT[2]

GSV

El valor actual de la hora del reloj. DINT[0] contiene los 32 bits


inferiores del valor; DINT[1] contiene los 32 bits superiores del valor.

SSV
El valor es el nmero de microsegundos que han transcurrido desde
las 0000 horas del 1 de enero de 1972.
Los objetos CST y WALLCLOCKTIME estn relacionados
matemticamente en el controlador. Por ejemplo, si se suman
CST CurrentValue y WALLCLOCKTIME CTSOffset, el resultado es
WALLCLOCKTIME CurrentValue.
DateTime

DINT[7]

Publicacin 1756-RM003K-ES-P Julio 2008

GSV

La fecha y hora en un formato legible.

SSV

DINT[0]

ao

DINT[1]

representacin del mes en nmeros enteros (1-12)

DINT[2]

representacin del da en nmeros enteros (1-31)

DINT[3]

hora (0-23)

DINT[4]

minuto (0-59)

DINT[5]

segundos (0-59)

DINT[6]

microsegundos (0-999,999)

197

Captulo 4

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

Ejemplo de programacin
GSV/SSV

Obtenga informacin de fallo


Los siguientes ejemplos usan instrucciones GSV para obtener
informacin de fallo.

Ejemplo 1: Este ejemplo obtiene informacin de fallo del mdulo de E/S


disc_in_2 y coloca los datos en una estructura definida por el usuario
disc_in_2_info.

Lgica de escalera de rels

Texto estructurado
GSV(MODULE,disc_in_2,FaultCode,disc_in_2_info.FaultCode);
GSV(MODULE,disc_in_2,FaultInfo,disc_in_2_info.FaultInfo);
GSV(MODULE,disc_in_2,Mode,disc_in_2info.Mode);

Ejemplo 2: Este ejemplo obtiene informacin de estado acerca del programa


discrete y coloca los datos en una estructura definida por el usuario
discrete_info.

Lgica de escalera de rels

Texto estructurado
GSV(PROGRAM,DISCRETE,LASTSCANTIME,
discrete_info.LastScanTime);
GSV(PROGRAM,DISCRETE,MAXSCANTIME,discrete_info.MaxScanTime);

198

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Ejemplo 3: Este ejemplo obtiene informacin de estado acerca de la tarea IO_test


y coloca los datos en una estructura definida por el usuario
io_test_info.

Lgica de escalera de rels

Texto estructurado
GSV(TASK,IO_TEST,LASTSCANTIME,io_test_info.LastScanTime);
GSV(TASK,IO_TEST,MAXSCANTIME,io_test_info.MaxScanTime);
GSV(TASK,IO_TEST,WATCHDOG,io_test_info.WatchDog);

Publicacin 1756-RM003K-ES-P Julio 2008

199

Captulo 4

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

Establezca los indicadores de habilitacin e inhabilitacin


El siguiente ejemplo usa la instruccin SSV para habilitar o inhabilitar
un programa. Usted tambin podra usar este mtodo para habilitar o
inhabilitar un mdulo de E/S, lo cual es similar a usar bits de
inhibicin con un procesador PLC-5.

Ejemplo: Segn el estado de SW.1, coloque el valor apropiado en el atributo


disableflag del programa discrete.

Lgica de escalera de rels

Texto estructurado
IF SW.1 THEN
discrete_prog_flag := enable_prog;
ELSE
discrete_prog_flag := disable_prog;
END_IF;
SSV(PROGRAM,DISCRETE,DISABLEFLAG,discrete_prog_flag);

200

Publicacin 1756-RM003K-ES-P Julio 2008

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

Salida inmediata (IOT)

Captulo 4

La instruccin IOT actualiza inmediatamente los datos de salida


especificados (tag de salida o tag producido).

Operandos:
Lgica de escalera de rels
Operando

Tipo

Update Tag

Formato

Descripcin

tag

tag que usted desea actualizar, ya sea:


tag de salida de un mdulo de E/S
tag producido
No seleccione un miembro o elemento de un
tag. Por ejemplo, Local:5:0 es correcto, pero
Local:5:0.Data no es correcto.

Texto estructurado

IOT(output_tag);

Los operandos son iguales a los de la instruccin IOT de lgica de


escalera de rels.

Descripcin: La instruccin IOT anula el intervalo solicitado entre paquetes (RPI)


de una conexin de salida y enva datos nuevos mediante la
conexin.
Una conexin de salida es una conexin asociada con el tag de
salida de un mdulo de E/S o con un tag producido.
Si la conexin es para un tag producido, la instruccin IOT
tambin enva el activador de evento al controlador consumidor.
Esto permite a la instruccin IOT activar una tarea de evento en
el controlador consumidor.
Para usar una instruccin IOT y un tag producido para activar una
tarea de evento en un controlador consumidor, configure el tag
producido de la siguiente manera:

Marque esta casilla.


De esta manera se configura el tag para actualizar su
activador de evento slo mediante una instruccin IOT.

Publicacin 1756-RM003K-ES-P Julio 2008

201

Captulo 4

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

El tipo de red entre los controladores determina cundo el


controlador consumidor recibe los nuevos datos y el activador de
eventos mediante la instruccin IOT.
Con este controlador

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)

Usted puede producir y consumir tags slo


por una red ControlNet.

dentro del intervalo entre paquetes actual


(API) del tag consumido (conexin)

SoftLogix5800

Los siguientes diagramas comparan la recepcin de datos mediante


una instruccin IOT por las redes EtherNet/IP y ControlNet.
Red EtherNet/IP

Red ControlNet

valores cargados al tag


producido

valores cargados al tag


producido

instruccin IOT en el
controlador productor

instruccin IOT en el
controlador productor

tarea de evento en el
controlador consumidor

RPI del tag producido


tarea de evento en el
controlador consumidor

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

202

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 4

Ejecucin:
Condicin

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

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

EnableIn se establece

n. a.

La condicin de salida de rengln se establece como


verdadera.
EnableIn siempre se establece.
La instruccin se ejecuta.

ejecucin de la instruccin

La instruccin:
actualiza la conexin del tag especificado.
restablece el temporizador RPI de la conexin

post-escn

La condicin de salida de rengln se establece como


falsa.

Ninguna.

Ejemplo 1: Cuando la instruccin IOT se ejecuta, sta inmediatamente enva los


valores del tag Local:5:0 al mdulo de salida.

Lgica de escalera de rels

Texto estructurado
IOT (Local:5:O);

Publicacin 1756-RM003K-ES-P Julio 2008

203

Captulo 4

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

Ejemplo 2: Este controlador controla la estacin 24 y produce datos para la


siguiente estacin (estacin 25). Para usar una instruccin IOT para
sealar la transmisin de nuevos datos, el tag producido se configura
de la siguiente manera:

Produced_Tag se configura para actualizar su activador de


eventos mediante una instruccin IOT.

Lgica de escalera de rels


Si New_Data = activado, ocurre lo siguiente durante un escn:
La instruccin CPS establece Produced_Tag = Source_Tag.
La instruccin IOT actualiza Produced_Tag y enva esta actualizacin al controlador consumidor (estacin 25). Cuando
el controlador consumidor recibe esta actualizacin, activa la tarea de evento asociada en dicho controlador.

Texto estructurado
IF New_Data AND NOT Trigger_Consumer THEN
CPS (Source_Tag,Produced_Tag,1);
IOT (Produced_Tag);
END_IF;
Trigger_Consumer := New_Data;

204

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

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

Introduccin

Las instrucciones de comparacin le permiten comparar los valores


usando una expresin o una instruccin de comparacin especfica.

Si desea

Use esta instruccin

Disponible en estos lenguajes

Vea la pgina

comparar los valores segn una expresin

CMP

lgica de escalera de rels


texto estructurado(1)

206

probar si dos valores son iguales

EQU

lgica de escalera de rels


texto estructurado(2)
bloque de funciones

211

probar si un valor es mayor o igual que un


segundo valor

GEQ

lgica de escalera de rels


texto estructurado(1)
bloque de funciones

215

determinar si un valor es mayor que otro valor

GRT

lgica de escalera de rels


texto estructurado(1)
bloque de funciones

219

probar si un valor es menor o igual que un


segundo valor

LEQ

lgica de escalera de rels


texto estructurado(1)
bloque de funciones

223

determinar si un valor es menor que otro valor

LES

lgica de escalera de rels


texto estructurado(1)
bloque de funciones

227

determinar si un valor se encuentra entre otros


dos valores

LIM

lgica de escalera de rels


texto estructurado(1)
bloque de funciones

231

pasar dos valores a travs de una mscara y


determinar si son iguales

MEQ

lgica de escalera de rels


texto estructurado(1)
bloque de funciones

237

determinar si un valor diferente a otro valor

NEQ

lgica de escalera de rels


texto estructurado(1)
bloque de funciones

242

(1)

No hay una instruccin equivalente en texto estructurado. Use otra programacin en texto estructurado para lograr el mismo resultado. Vea la descripcin de la
instruccin.

(2)

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

Usted puede comparar valores de diferentes tipos de datos como, por


ejemplo, valores de punto flotante (coma flotante) y valores enteros.
Para las instrucciones de lgica de escalera de rels, los tipos de datos
que aparecen en negrita indican tipos de datos ptimos. Las
instrucciones se ejecutan ms rpidamente y requieren menos
memoria si todos los operandos de instruccin usan el mismo tipo de
datos ptimos, tpicamente DINT o REAL.

205Publicacin 1756-RM003K-ES-P Julio 2008

205

Captulo 5

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

Comparar (CMP)

La instruccin CMP realiza una comparacin de las operaciones


aritmticas que se especifican en la expresin.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Expression

SINT

inmediato

INT

tag

una expresin que consiste en tags y/o


valores inmediatos separados por
operadores.

DINT
REAL
cadena
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.

Texto estructurado
El texto estructurado no tiene una instruccin CMP, pero usted puede
lograr los mismos resultados usando una construccin IF...THEN y
una expresin.
IF BOOL_expression THEN
<statement>;
END_IF;

Consulte Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de construcciones y expresiones
en texto estructurado.

Descripcin: Defina la expresin CMP mediante operadores, tags y valores


inmediatos. Use parntesis ( ) para definir secciones de expresiones
ms complejas.
La ejecucin de una instruccin CMP es un poco ms lenta y usa ms
memoria que la ejecucin de las otras instrucciones de comparacin.
La ventaja de la instruccin CMP es que le permite introducir
expresiones complejas en una sola instruccin.

Indicadores de estado La instruccin CMP afecta los indicadores de estado aritmtico si la


aritmtico: expresin contiene un operador (por ejemplo, +, , *, /) que afecta los
indicadores de estado aritmtico.

Condiciones de fallo: ninguna

206

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 5

Ejecucin:
Condicin

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

evale la expresin

la expresin es
verdadera

la condicin de salida de
rengln se establece como
verdadera

la expresin es falsa

la condicin de salida de
rengln se establece
como falsa
fin

post-escn

La condicin de salida de rengln se establece como falsa.

Ejemplos: Si la instruccin CMP determina que la expresin es verdadera, la


condicin de salida de rengln se establece como verdadera.

Si introduce una expresin sin un operador de comparacin, tal como


value_1 + value_2 o value_1, la instruccin evala la expresin como:

Publicacin 1756-RM003K-ES-P Julio 2008

Si la expresin es

La condicin de salida de rengln


se establece como

diferente de cero

verdadera

cero

falsa

207

Captulo 5

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

Expresiones CMP
Usted programa las expresiones en las instrucciones CMP de la misma
manera que las expresiones en las instrucciones FSC. Use las
siguientes secciones para obtener informacin sobre operadores
vlidos, formato y orden de operacin, que son comunes para ambas
instrucciones.

Operadores vlidos
Operador:

Descripcin

ptimo

Operador:

Descripcin

ptimo

sumar

DINT, REAL

DEG

radianes a grados

DINT, REAL

restar/cambiar signo

DINT, REAL

FRD

BCD a entero

DINT

multiplicar

DINT, REAL

LN

logaritmo natural

REAL

dividir

DINT, REAL

LOG

logaritmo base 10

REAL

igual que

DINT, REAL

MOD

mdulo de divisin

DINT, REAL

<

menor que

DINT, REAL

NOT

DINT

<=

menor o igual que

DINT, REAL

complemento a nivel
de bits

>

mayor que

DINT, REAL

OR

O a nivel de bits

DINT

>=

mayor o igual que

DINT, REAL

RAD

grados a radianes

DINT, REAL

<>

diferente de

DINT, REAL

SIN

seno

REAL

**

exponente (x a la y)

DINT, REAL

SQR

raz cuadrada

DINT, REAL

ABS

valor absoluto

DINT, REAL

TAN

tangente

REAL

ACS

arco coseno

REAL

TOD

entero a BCD

DINT

AND

Y a nivel de bits

DINT

TRN

truncar

DINT, REAL

ASN

arco seno

REAL

XOR

O exclusivo a nivel de
bits

DINT

ATN

arco tangente

REAL

COS

coseno

REAL

208

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 5

Expresiones de formato
Por cada operador que use en una expresin, usted tiene que
proporcionar uno o dos operandos (tags o valores inmediatos). Use la
siguiente tabla para formatear operadores y operandos dentro de una
expresin:
Para operadores
que operan en

Use este formato

Ejemplos

un operando

operador(operando)

ABS(tag_a)

dos operandos

operando_a operador
operando_b

tag_b + 5
tag_c AND tag_d
(tag_e ** 2) MOD (tag_f /
tag_g)

Determine el orden de operacin


Las operaciones que usted escribe en la expresin son realizadas por
la instruccin en un orden prescrito, no necesariamente en el orden
en que usted las escribe. Usted puede anular el orden de operacin
agrupando trminos dentro de parntesis, forzando a la instruccin
para que realice una operacin dentro del parntesis antes de otras
operaciones.
Las operaciones de igual orden se realizan de izquierda a derecha.

Publicacin 1756-RM003K-ES-P Julio 2008

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

209

Captulo 5

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

Use cadenas en una expresin


Use una expresin de texto estructurado o lgica de escalera de rels
para comparar tipos de datos de cadena. Para usar cadenas en una
expresin, siga estas pautas:
Una expresin le permite comparar dos tags de cadena.
Usted no puede introducir caracteres ASCII directamente en la
expresin.
Slo se permiten los siguientes operadores
Operador

Descripcin

igual que

<

menor que

<=

menor o igual que

>

mayor que

>=

mayor o igual que

<>

diferente de

Las cadenas son iguales si sus caracteres coinciden.


Los caracteres ASCII permiten distinguir maysculas de
minsculas. La A mayscula ($41) es diferente a la a
minscula ($61).
Los valores hexadecimales de los caracteres determinan si una
cadena es mayor o menor que otra cadena. Para obtener el
cdigo hexadecimal de un carcter, remtase a la contraportada
de este manual.
Cuando las dos cadenas se clasifican como en un directorio
telefnico, el orden de las cadenas determina cul es mayor.

m
e
n
o
r

210

m
a
y
o
r

Caracteres ASCII

Cdigos
hexadecimales

1ab

$31$61$62

1b

$31$62

$41

AB

$41$42

$42

$61

ab

$61$62

AB < B
a>B

Publicacin 1756-RM003K-ES-P Julio 2008

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

Igual a (EQU)

Captulo 5

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

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source A

SINT

inmediato

valor que se compara con


Source B

INT

tag

DINT
REAL
cadena
Source B

SINT

inmediato

INT

tag

valor que se compara con


Source A

DINT
REAL
cadena

Si usted introduce un tag SINT o INT, el valor se convierte en un


valor DINT mediante extensin de signo.
Los valores REAL pocas veces son absolutamente iguales. Si
necesita determinar la igualdad de dos valores REAL, use la
instruccin LIM.
Los tipos de datos de cadena son:
tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted cree
Para probar los caracteres de una cadena, introduzca un tag de
cadena tanto para Source A como para Source B.

Texto estructurado
IF sourceA = sourceB THEN
<statements>;

Use el signo igual = como operador dentro de una expresin. Esta


expresin evala si sourceA es igual que sourceB.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Publicacin 1756-RM003K-ES-P Julio 2008

211

Captulo 5

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

Bloque de funciones
Operando

Tipo

Formato

Descripcin

EQU tag

FBD_COMPARE

estructura

estructura EQU

Estructura FBD_COMPARE
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

SourceA

REAL

Valor que se compara con SourceB


Vlido = cualquier valor con punto flotante (coma flotante)

SourceB

REAL

Valor que se compara con SourceA


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

BOOL

Resultado de la instruccin. Es equivalente a la condicin de salida de rengln de la


instruccin EQU de lgica de escalera de rels.

Descripcin: Use la instruccin EQU para comparar dos nmeros o dos cadenas de
caracteres ASCII. Cuando usted compara las cadenas:
Las cadenas son iguales si sus caracteres coinciden.
Los caracteres ASCII permiten distinguir maysculas de
minsculas. La A mayscula ($41) es diferente a la a
minscula ($61).

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

212

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 5

Ejecucin:
Lgica de escalera de rels
Condicin

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

Source A = Source B

la condicin de salida de
rengln se establece
como verdadera

no

la condicin de salida de
rengln se establece
como falsa
fin

post-escn

La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin

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

Publicacin 1756-RM003K-ES-P Julio 2008

Ninguna.

213

Captulo 5

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

Ejemplo: Si value_1 es igual a value_2, establezca light_a. Si value_1 es


diferente de value_2, borre light_a.

Lgica de escalera de rels

Texto estructurado
light_a := (value_1 = value_2);

Bloque de funciones

214

Publicacin 1756-RM003K-ES-P Julio 2008

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

Mayor o igual que (GEQ)

Captulo 5

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


Source B.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source A

SINT

inmediato

valor que se compara con Source B

INT

tag

DINT
REAL
cadena
Source B

SINT

inmediato

INT

tag

valor que se compara con Source A

DINT
REAL
cadena

Si usted introduce un tag SINT o INT, el valor se convierte en un


valor DINT mediante extensin de signo.
Los tipos de datos de cadena son:
tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted cree
Para probar los caracteres de una cadena, introduzca un tag de
cadena tanto para Source A como para Source B.

Texto estructurado
IF sourceA >= sourceB THEN
<statements>;

Use los signos mayor que e igual >= adyacentes como operador
dentro de una expresin. Esta expresin evala si sourceA es mayor o
igual que sourceB.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Publicacin 1756-RM003K-ES-P Julio 2008

215

Captulo 5

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

Bloque de funciones
Operando

Tipo

Formato

Descripcin

GEQ tag

FBD_COMPARE

estructura

estructura GEQ

Estructura FBD_COMPARE
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

SourceA

REAL

Valor que se compara con SourceB


Vlido = cualquier valor con punto flotante (coma flotante)

SourceB

REAL

Valor que se compara con SourceA


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

BOOL

Resultado de la instruccin. Es equivalente a la condicin de salida de rengln para la


instruccin GEQ de lgica de escalera de rels.

Descripcin: La instruccin GEQ determina si Source A es mayor o igual que


Source B.
Cuando usted compara las cadenas:
Los valores hexadecimales de los caracteres determinan si una
cadena es mayor o menor que otra cadena. Para obtener el
cdigo hexadecimal de un carcter, remtase a la contraportada
de este manual.
Cuando las dos cadenas se clasifican como en un directorio
telefnico, el orden de las cadenas determina cul es mayor.

m
e
n
o
r

216

m
a
y
o
r

Caracteres ASCII

Cdigos
hexadecimales

1ab

$31$61$62

1b

$31$62

$41

AB

$41$42

$42

$61

ab

$61$62

AB < B
a>B

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 5

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo: ninguna
Ejecucin:
Lgica de escalera de rels
Condicin

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

Source A Source B

la condicin de salida de
rengln se establece
como verdadera

no

la condicin de salida de
rengln se establece
como falsa
fin

post-escn

La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin

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

Publicacin 1756-RM003K-ES-P Julio 2008

Ninguna.

217

Captulo 5

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

Ejemplo: Si value_1 es mayor o igual que value_2, establezca light_b. Si


value_1 es menor que value_2, borre light_b.

Lgica de escalera de rels

Texto estructurado
light_b := (value_1 >= value_2);

Bloque de funciones

218

Publicacin 1756-RM003K-ES-P Julio 2008

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

Mayor que (GRT)

Captulo 5

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

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source A

SINT

inmediato

valor que se compara con Source B

INT

tag

DINT
REAL
cadena
Source B

SINT

inmediato

INT

tag

valor que se compara con Source A

DINT
REAL
cadena

Si usted introduce un tag SINT o INT, el valor se convierte en un


valor DINT mediante extensin de signo.
Los tipos de datos de cadena son:
tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted cree
Para probar los caracteres de una cadena, introduzca un tag de
cadena tanto para Source A como para Source B.

Texto estructurado
IF sourceA > sourceB THEN
<statements>;

Use el signo mayor que > como un operador dentro de una


expresin. Esta expresin evala si sourceA es mayor que sourceB.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

Operando

Tipo

Formato

Descripcin

GRT tag

FBD_COMPARE

estructura

estructura GRT

219

Captulo 5

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

Estructura FBD_COMPARE
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

SourceA

REAL

Valor que se compara con SourceB


Vlido = cualquier valor con punto flotante (coma flotante)

SourceB

REAL

Valor que se compara con SourceA


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

BOOL

Resultado de la instruccin. Es equivalente a la condicin de salida de rengln para la


instruccin GRT de lgica de escalera de rels.

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


Cuando usted compara cadenas:
Los valores hexadecimales de los caracteres determinan si una
cadena es mayor o menor que otra cadena. Para obtener el
cdigo hexadecimal de un carcter, remtase a la contraportada
de este manual.
Cuando las dos cadenas se clasifican como en un directorio
telefnico, el orden de las cadenas determina cul es mayor.

m
e
n
o
r

m
a
y
o
r

Caracteres ASCII

Cdigos
hexadecimales

1ab

$31$61$62

1b

$31$62

$41

AB

$41$42

$42

$61

ab

$61$62

AB < B
a>B

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

220

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 5

Ejecucin:
Lgica de escalera de rels
Condicin

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

Source A > Source B

la condicin de salida de
rengln se establece
como verdadera

no

la condicin de salida de
rengln se establece
como falsa
fin

post-escn

La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin

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

Publicacin 1756-RM003K-ES-P Julio 2008

Ninguna.

221

Captulo 5

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

Ejemplo: Si value_1 es mayor que value_2, establezca light_1. Si value_1 es


menor o igual que value_2, borre light_1.

Lgica de escalera de rels

Texto estructurado
light_1 := (value_1 > value_2);

Bloque de funciones

222

Publicacin 1756-RM003K-ES-P Julio 2008

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

Menor o igual que (LEQ)

Captulo 5

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


Source B.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source A

SINT

inmediato

valor que se compara con Source B

INT

tag

DINT
REAL
cadena
Source B

SINT

inmediato

INT

tag

valor que se compara con Source A

DINT
REAL
cadena

Si usted introduce un tag SINT o INT, el valor se convierte en un


valor DINT mediante extensin de signo.
Los tipos de datos de cadena son:
tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted cree
Para probar los caracteres de una cadena, introduzca un tag de
cadena tanto para Source A como para Source B.

Texto estructurado
IF sourceA <= sourceB THEN
<statements>;

Use los signos menor que e igual <= adyacentes como operador
dentro de una expresin. Esta expresin evala si sourceA es menor o
igual que sourceB.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Publicacin 1756-RM003K-ES-P Julio 2008

223

Captulo 5

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

Bloque de funciones
Operando

Tipo

Formato

Descripcin

LEQ tag

FBD_COMPARE

estructura

estructura LEQ

Estructura FBD_COMPARE
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

SourceA

REAL

Valor que se compara con SourceB


Vlido = cualquier valor con punto flotante (coma flotante)

SourceB

REAL

Valor que se compara con SourceA


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

BOOL

Resultado de la instruccin. Es equivalente a la condicin de salida de rengln para la


instruccin LEQ de lgica de escalera de rels.

Descripcin: La instruccin LEQ determina si Source A es menor o igual que


Source B.
Cuando usted compara las cadenas:
Los valores hexadecimales de los caracteres determinan si una
cadena es mayor o menor que otra cadena. Para obtener el
cdigo hexadecimal de un carcter, remtase a la contraportada
de este manual.
Cuando las dos cadenas se clasifican como en un directorio
telefnico, el orden de las cadenas determina cul es mayor.

m
e
n
o
r

224

m
a
y
o
r

Caracteres ASCII

Cdigos
hexadecimales

1ab

$31$61$62

1b

$31$62

$41

AB

$41$42

$42

$61

ab

$61$62

AB < B
a>B

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 5

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo: ninguna
Ejecucin:
Lgica de escalera de rels
Condicin

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

Source A Source B

la condicin de salida de
rengln se establece
como verdadera

no

la condicin de salida de
rengln se establece
como falsa
fin

post-escn

La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin

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

Publicacin 1756-RM003K-ES-P Julio 2008

Ninguna.

225

Captulo 5

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

Ejemplo: Si value_1 es menor o igual que value_2, establezca light_2. Si


value_1 es mayor que value_2, borre light_2.

Lgica de escalera de rels

Texto estructurado
light_2 := (value_1 <= value_2);

Bloque de funciones

226

Publicacin 1756-RM003K-ES-P Julio 2008

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

Menor que (LES)

Captulo 5

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

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source A

SINT

inmediato

valor que se compara con Source B

INT

tag

DINT
REAL
cadena
Source B

SINT

inmediato

INT

tag

valor que se compara con Source A

DINT
REAL
cadena

Si usted introduce un tag SINT o INT, el valor se convierte en un


valor DINT por la extensin del signo.
Los tipos de datos de cadena son:
tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted cree
Para probar los caracteres de una cadena, introduzca un tag de
cadena tanto para Source A como para Source B.

Texto estructurado
IF sourceA < sourceB THEN
<statements>;

Use el signo menor que < como un operador dentro de una


expresin. Esta expresin evala si sourceA es menor que sourceB.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

Operando

Tipo

Formato

Descripcin

LES tag

FBD_COMPARE

estructura

estructura LES

227

Captulo 5

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

Estructura FBD_COMPARE
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

SourceA

REAL

Valor que se compara con SourceB


Vlido = cualquier valor con punto flotante (coma flotante)

SourceB

REAL

Valor que se compara con SourceA


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

BOOL

Resultado de la instruccin. Es equivalente a la condicin de salida de rengln para la


instruccin LES de lgica de escalera de rels.

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


Cuando usted compara las cadenas:
Los valores hexadecimales de los caracteres determinan si una
cadena es mayor o menor que otra cadena. Para obtener el
cdigo hexadecimal de un carcter, remtase a la contraportada
de este manual.
Cuando las dos cadenas se clasifican como en un directorio
telefnico, el orden de las cadenas determina cul es mayor.

m
e
n
o
r

m
a
y
o
r

Caracteres ASCII

Cdigos
hexadecimales

1ab

$31$61$62

1b

$31$62

$41

AB

$41$42

$42

$61

ab

$61$62

AB < B
a>B

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

228

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 5

Ejecucin:
Lgica de escalera de rels
Condicin

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

Source A < Source B

la condicin de salida de
rengln se establece
como verdadera

no

la condicin de salida de
rengln se establece
como falsa
fin

post-escn

La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin:

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

Publicacin 1756-RM003K-ES-P Julio 2008

Ninguna.

229

Captulo 5

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

Ejemplo: Si value_1 es menor que value_2, establezca light_3. Si value_1 es


mayor o igual que value_2, borre light_3.

Lgica de escalera de rels

Texto estructurado
light_3 := (value_1 < value_2);

Bloque de funciones

230

Publicacin 1756-RM003K-ES-P Julio 2008

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

Lmite (LIM)

Captulo 5

La instruccin LIM determina si el valor de prueba se encuentra


dentro del rango de los lmites inferior y superior.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Low limit

SINT

inmediato

valor del lmite inferior

INT

tag

DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Test

SINT

inmediato

INT

tag

valor que se prueba

DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
High limit

SINT

inmediato

INT

tag

valor del lmite superior

DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.

Texto estructurado
El texto estructurado no cuenta con la instruccin LIM, pero se
pueden lograr los mismos resultados usando texto estructurado.
IF (LowLimit <= HighLimit AND
(Test >= LowLimit AND Test <= HighLimit)) OR
(LowLimit >= HighLimit AND
(Test <= LowLimit OR Test >= HighLimit)) THEN
<statement>;
END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008

231

Captulo 5

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

Bloque de funciones
Operando

Tipo

Formato

Descripcin

LIM tag

FBD_LIMIT

estructura

estructura LIM

Estructura FBD_LIMIT
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Si se borra, la instruccin no se ejecuta y las salidas no se actualizan.


Si se establece, la instruccin se ejecuta segn lo descrito en Ejecucin.
La opcin predeterminada es establecido.

LowLimit

REAL

Valor del lmite inferior


Vlido = cualquier valor con punto flotante (coma flotante)

Test

REAL

Valor que se compara con lmites


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

BOOL

Resultado de la instruccin. Es equivalente a la condicin de salida de rengln para la


instruccin LIM de lgica de escalera de rels.

HighLimit

REAL

Valor del lmite superior


Vlido = cualquier valor con punto flotante (coma flotante)

Descripcin: La instruccin LIM determina si el valor de prueba se encuentra


dentro del rango de los lmites inferior y superior.
Si es lmite
inferior

Y el valor de prueba es

La condicin de salida de
rengln se establece como

Lmite superior

igual a o est entre los lmites

verdadera

diferente o est fuera de los


lmites

falsa

igual a o est fuera de los


lmites

verdadera

diferente o est dentro de los


lmites

falsa

Lmite superior

232

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 5

Los nmeros enteros con signo saltan (roll over) del nmero
positivo mximo al nmero negativo mximo cuando se establece el
bit ms significativo. Por ejemplo, en los nmeros enteros de 16 bits
(tipo INT), el nmero entero positivo mximo es 32,767, el cual se
representa en hexadecimal como 16#7FFF (todos los bits del 0 al 14
estn en uno). Si usted incrementa dicho nmero en uno, el resultado
es 16#8000 (el bit 15 se pone en uno). Para enteros con signo, el
hexadecimal 16#8000 es igual a -32,768 en decimal. Incrementar
desde este punto hasta que los 16 bits se pongan en uno, termina en
16#FFFF, que es igual a -1 en decimal.
Esto puede mostrarse como lnea circular de nmeros (vea los
siguientes diagramas). La instruccin LIM comienza en el lmite
inferior e se va incrementando en sentido horario hasta llegar al lmite
superior. Cualquier valor de prueba que se encuentre en el rango en
sentido horario desde el lmite inferior al lmite superior establece en
verdadera la condicin de salida del rengln. Cualquier valor de
prueba que se encuentre en el rango en sentido horario desde el
lmite superior al lmite inferior establece en falsa la condicin de
salida del rengln.
Lmite superior

Lmite inferior Lmite superior

Lmite inferior

La instruccin es verdadera si el valor de prueba se encuentra entre los lmites inferior y


superior, o coincide con uno de dichos lmites.

La instruccin es verdadera si el valor de prueba se encuentra fuera de los


lmites inferior y superior, o coincide con uno de dichos lmites.

0
1

+1

+1

lmite inferior

lmite superior

lmite superior
(n+1)

+n

n = valor mximo

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

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

Publicacin 1756-RM003K-ES-P Julio 2008

233

Captulo 5

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

Ejecucin:
Lgica de escalera de rels
Condicin

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

evaluar el lmite

la comparacin es
verdadera

la condicin de salida de
rengln se establece
como verdadera

la comparacin es falsa

la condicin de salida de
rengln se establece
como falsa
fin

post-escn

La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin

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

234

Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 5

Ejemplo 1: Lmite inferior Lmite superior:

Cuando 0 value 100, establezca light_1. Si value < 0 or value


> 100, borre light_1.

Lgica de escalera de rels

Texto estructurado
IF (value <= 100 AND(value >= 0 AND value <= 100)) OR
(value >= 100 AND value <= 0 OR value >= 100)) THEN
light_1 := 1;
ELSE
light_1 := 0;
END_IF;

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

235

Captulo 5

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

Ejemplo 2: Lmite inferior Lmite superior:

Cuando value 0 o value 100, establezca light_1. Si value < 0 o


value >100, borre light_1.

Lgica de escalera de rels

Texto estructurado
IF (0 <= -100 AND value >= 0 AND value <= -100)) OR
(0 >= -100 AND(value <= 0 OR value >= -100)) THEN
light_1 := 1;
ELSE
light_1 := 0;
END_IF;

Bloque de funciones

236

Publicacin 1756-RM003K-ES-P Julio 2008

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

Mscara igual que (MEQ)

Captulo 5

La instruccin MEQ pasa los valores Source y Compare por una


mscara y compara los resultados.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source

SINT

inmediato

valor que se compara con Compare

INT

tag

DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Mask

SINT

inmediato

INT

tag

define qu bits se deben bloquear o pasar

DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Compare

SINT

inmediato

INT

tag

valor que se compara con Source

DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.

Texto estructurado
El texto estructurado no cuenta con la instruccin MEQ, pero se
pueden lograr los mismos resultados usando texto estructurado.
IF (Source AND Mask) = (Compare AND Mask) THEN
<statement>;
END_IF;

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

Operando

Tipo

Formato

Descripcin

MEQ tag

FBD_MASK_EQUAL

estructura

estructura MEQ

237

Captulo 5

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

Estructura FBD_MASK_EQUAL
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Si se borra, la instruccin no se ejecuta y las salidas no se actualizan.


Si se establece, la instruccin se ejecuta segn lo descrito en Ejecucin.
La opcin predeterminada es establecido.

Source

DINT

Valor que se compara con Compare.


Vlido = cualquier nmero entero

Mask

DINT

Define qu bits se deben bloquear (enmascarar).


Vlido = cualquier nmero entero

Compare

DINT

Valor de comparacin.
Vlido = cualquier nmero entero

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

BOOL

Resultado de la instruccin. Es equivalente a la condicin de salida de rengln para la


instruccin MEQ de lgica de escalera de rels.

Descripcin: Un nmero 1 en la mscara significa que se pasa el bit de datos. Un


nmero 0 en la mscara significa que se bloquea el bit de datos.
Normalmente, los valores Source, Mask y Compare son del mismo
tipo de datos.
Si mezcla tipos de datos enteros, la instruccin llena con ceros los bits
superiores de los tipos de datos enteros menores para que tengan el
mismo tamao que el tipo de datos mayores.

Introduccin de un valor de mscara inmediato


Cuando usted introduce una mscara, el software de programacin
cambia de manera predeterminada a valores decimales. Si desea
introducir una mscara usando otro formato, preceda el valor con el
prefijo correcto.
Prefijo

Descripcin

16#

hexadecimal
por ejemplo; 16#0F0F

8#

octal
por ejemplo; 8#16

2#

binario
por ejemplo; 2#00110011

238

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 5

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo: ninguna
Ejecucin:
Lgica de escalera de rels
Condicin

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 =
comparacin
enmascarada

la condicin de salida de
rengln se establece
como verdadera

no

la condicin de salida de
rengln se establece
como falsa
fin

post-escn

La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin

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

Publicacin 1756-RM003K-ES-P Julio 2008

Ninguna.

239

Captulo 5

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

Ejemplo 1: Si value_1 enmascarado es igual a value_2 enmascarado, establezca


light_1. Si value_1 enmascarado es diferente de value_2 enmascarado,
borre light_1. Este ejemplo muestra que los valores enmascarados son
iguales. Un nmero 0 en la mscara impide que la instruccin
compare el bit (representado por x en el ejemplo).
value_1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1

value_2 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0

mask_1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0

mask_1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0

value_1 0 1 0 1 0 1 0 1 1 1 1 1 X X X X
enmascarado

value_2 0 1 0 1 0 1 0 1 1 1 1 1 X X X X
enmascarado

Lgica de escalera de rels

Texto estructurado
light_1 := ((value_1 AND mask_1)=(value_2 AND mask_2));

Bloque de funciones

240

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 5

Ejemplo 2: Si value_1 enmascarado es igual a value_2 enmascarado, establezca


light_1. Si value_1 enmascarado es diferente de value_2 enmascarado,
borre light_1. Este ejemplo muestra que los valores enmascarados son
diferentes. Un nmero 0 en la mscara impide que la instruccin
compare el bit (representado por x en el ejemplo).
value_1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1

value_2 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0

mask_1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1

mask_1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1

value_1 X X X X X X X X X X X X 1 1 1 1
enmascarado

value_2 X X X X X X X X X X X X 0 0 0 0
enmascarado

Lgica de escalera de rels

Texto estructurado
light_1 := ((value_1 AND mask_1)=(value_2 AND mask_2));

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

241

Captulo 5

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

Diferente de (NEQ)

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

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source A

SINT

inmediato

valor que se compara con Source B

INT

tag

DINT
REAL
cadena
Source B

SINT

inmediato

INT

tag

valor que se compara con Source A

DINT
REAL
cadena

Si usted introduce un tag SINT o INT, el valor se convierte en un


valor DINT mediante extensin de signo.
Los tipos de datos de cadena son:
tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted cree
Para probar los caracteres de una cadena, introduzca un tag de
cadena tanto para Source A como para Source B.

Texto estructurado
IF sourceA <> sourceB THEN
<statements>;

Use los signos menor que y mayor que <> juntos como operador
dentro de una expresin. Esta expresin evala si sourceA es
diferente de sourceB.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

242

Operando

Tipo

Formato

Descripcin

NEQ tag

FBD_COMPARE

estructura

estructura NEQ

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 5

Estructura FBD_COMPARE
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

SourceA

REAL

Valor que se compara con SourceB


Vlido = cualquier valor con punto flotante (coma flotante)

SourceB

REAL

Valor que se compara con SourceA


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

BOOL

Resultado de la instruccin. Es equivalente a la condicin de salida de rengln para la


instruccin NEQ de lgica de escalera de rels.

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


Cuando usted compara las cadenas:
Las cadenas son diferentes si algunos de sus caracteres no
coinciden.
Los caracteres ASCII permiten distinguir maysculas de
minsculas. Una A mayscula ($41) es diferente a una a
minscula ($61).

m
e
n
o
r

m
a
y
o
r

Caracteres ASCII

Cdigos
hexadecimales

1ab

$31$61$62

1b

$31$62

$41

AB

$41$42

$42

$61

ab

$61$62

AB < B
a>B

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

Publicacin 1756-RM003K-ES-P Julio 2008

243

Captulo 5

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

Ejecucin:
Lgica de escalera de rels
Condicin

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

Source A = Source B

la condicin de salida de
rengln se establece
como verdadera

no

la condicin de salida de
rengln se establece
como falsa
fin

post-escn

La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin

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

244

Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 5

Ejemplo: Si value_1 es diferente de value_2, establezca light_4. Si value_1 es


igual a value_2, borre light_4.

Lgica de escalera de rels

Texto estructurado
light_4 := (value_1 <> value_2);

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

245

Captulo 5

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

Notas:

246

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

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

Introduccin
Si desea

Las instrucciones de clculo/matemticas evalan las operaciones


aritmticas usando una expresin o una instruccin aritmtica
especfica.
Use esta instruccin

Disponible en estos lenguajes

Vea la pgina

evaluar una expresin

CPT

lgica de escalera de rels


texto estructurado(1)

248

sumar dos valores

ADD

lgica de escalera de rels


texto estructurado(2)
bloque de funciones

252

restar dos valores

SUB

lgica de escalera de rels


texto estructurado(2)
bloque de funciones

255

multiplicar dos valores

MUL

lgica de escalera de rels


texto estructurado(2)
bloque de funciones

258

dividir dos valores

DIV

lgica de escalera de rels


texto estructurado(2)
bloque de funciones

261

determinar el residuo despus de dividir un


valor entre otro

MOD

lgica de escalera de rels


texto estructurado(2)
bloque de funciones

266

calcular la raz cuadrada de un valor

SQR

lgica de escalera de rels


texto estructurado
bloque de funciones

270

SQRT(3)
tomar el signo opuesto de un valor.

NEG

lgica de escalera de rels


texto estructurado(2)
bloque de funciones

274

hallar el valor absoluto de un valor.

ABS

lgica de escalera de rels


texto estructurado
bloque de funciones

277

(1)

No hay una instruccin equivalente en texto estructurado. Use otra programacin en texto estructurado para lograr el mismo resultado. Vea la descripcin de la
instruccin.

(2)

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

(3)

Texto estructurado solamente.

Usted puede mezclar diferentes tipos de datos, pero puede producirse


prdida de exactitud y error de redondeo, y la instruccin requerir
ms tiempo para ejecutarse. Verifique el bit S:V para determinar si se
trunc el resultado.
Para las instrucciones de lgica de escalera de rels, los tipos de datos
que aparecen en negrita indican tipos de datos ptimos. Las
instrucciones se ejecutan ms rpidamente y requieren menos

247Publicacin 1756-RM003K-ES-P Julio 2008

247

Captulo 6

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

memoria si todos los operandos de instruccin usan el mismo tipo de


datos ptimos, tpicamente DINT o REAL.

Calcular (CPT)

La instruccin CPT realiza las operaciones aritmticas que usted define


en la expresin.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato:

Descripcin

Destination

SINT
INT
DINT
REAL

tag

tag para almacenar el resultado

Expression

SINT
INT
DINT
REAL

inmediato

una expresin que consiste en tags y/o


valores inmediatos separados por operadores

tag

Un tag SINT o INT se convierte en un valor DINT mediante extensin de


signo.

Texto estructurado
El texto estructurado no tiene una instruccin CPT, pero usted puede
lograr los mismos resultados usando una asignacin y una expresin.
destino := numeric_expresion;

Consulte Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de asignaciones y expresiones
en texto estructurado.

Descripcin: La instruccin CPT realiza las operaciones aritmticas que usted define
en la expresin. Cuando se habilita, la instruccin CPT evala la
expresin y coloca el resultado en Destination.
La ejecucin de una instruccin CPT es un poco ms lenta y usa ms
memoria que la ejecucin de las otras instrucciones de clculo/
matemticas. La ventaja de la instruccin CPT es que le permite
introducir expresiones complejas en una sola instruccin.
SUGERENCIA

No hay lmite en la longitud de una expresin.

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

248

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 6

Ejecucin:
Condicin

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 evala la expresin y coloca el resultado en Destination.


La condicin de salida de rengln se establece como verdadera.

post-escn

La condicin de salida de rengln se establece como falsa.

Ejemplo 1: Cuando se habilita, la instruccin CPT evala value_1 multiplicado


por 5, divide dicho resultado entre el resultado de value_2 dividido
entre 7 y coloca el resultado final en result_1.

Ejemplo 2: Cuando se habilita, la instruccin CPT trunca float_value_1 y


float_value_2, eleva el valor truncado float_value_2 al cuadrado,
divide el valor truncado float_value_1 entre dicho resultado y
almacena el residuo despus de la divisin en float_value_result_cpt.

Publicacin 1756-RM003K-ES-P Julio 2008

249

Captulo 6

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

Operadores vlidos
Operador

Descripcin

ptimo

Operador

Descripcin

ptimo

sumar

DINT, REAL

LOG

logaritmo base 10

REAL

restar/cambiar signo

DINT, REAL

MOD

mdulo de divisin

DINT, REAL

multiplicar

DINT, REAL

NOT

DINT

dividir

DINT, REAL

complemento a nivel
de bits

**

exponente (x a la y)

DINT, REAL

OR

O a nivel de bits

DINT

ABS

valor absoluto

DINT, REAL

RAD

grados a radianes

DINT, REAL

ACS

arco coseno

REAL

SIN

seno

REAL

AND

Y a nivel de bits

DINT

SQR

raz cuadrada

DINT, REAL

ASN

arco seno

REAL

TAN

tangente

REAL

ATN

arco tangente

REAL

TOD

entero a BCD

DINT

COS

coseno

REAL

TRN

truncar

DINT, REAL

DEG

radianes a grados

DINT, REAL

XOR

O exclusivo a nivel de
bits

DINT

FRD

BCD a entero

DINT

LN

logaritmo natural

REAL

Expresiones de formato
Por cada operador que use en una expresin, usted tiene que
proporcionar uno o dos operandos (tags o valores inmediatos). Use la
siguiente tabla para formatear operadores y operandos dentro de una
expresin:
Para operadores
que operan en:

Use este formato:

Ejemplos:

un operando

operador(operando)

ABS(tag_a)

dos operandos

operando_a operador
operando_b

tag_b + 5
tag_c AND tag_d
(tag_e ** 2) MOD (tag_f /
tag_g)

250

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 6

Determine el orden de operacin


Las operaciones que usted escribe en la expresin son realizadas por
la instruccin en un orden prescrito, que no es necesariamente el
orden en que usted las escribe. Usted puede anular el orden de
operacin agrupando trminos dentro de parntesis, forzando a la
instruccin para que realice una operacin dentro del parntesis antes
de otras operaciones.
Las operaciones de igual orden se realizan de izquierda a derecha.

Publicacin 1756-RM003K-ES-P Julio 2008

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

251

Captulo 6

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

Sumar (ADD)

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


en Destination.

Operandos:
Lgica de escalera de rels
Operando:

Tipo:

Formato:

Descripcin:

Source A

SINT

inmediato

valor que se suma a Source B

INT

tag

DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Source B

SINT

inmediato

INT

tag

valor que se suma a Source A

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.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

252

Operando:

Tipo:

Formato:

Descripcin:

ADD tag

FBD_MATH

estructura

estructura ADD

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 6

Estructura FBD_MATH
Parmetro de
entrada:

Tipo de datos:

Descripcin:

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

SourceA

REAL

valor que se suma a SourceB


Vlido = cualquier valor con punto flotante (coma flotante)

SourceB

REAL

valor que se suma a SourceA


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de
salida:

Tipo de datos:

Descripcin:

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

REAL

Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico


para esta salida.

Descripcin: La instruccin ADD suma Source A con Source B y coloca el resultado


en Destination.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo: ninguna
Ejecucin:
Lgica de escalera de rels
Condicin:

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


La condicin de salida de rengln se establece como verdadera.

post-escn

Publicacin 1756-RM003K-ES-P Julio 2008

La condicin de salida de rengln se establece como falsa.

253

Captulo 6

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

Bloque de funciones
Condicin:

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.

Ejemplo: Sume float_value_1 a float_value_2 y coloque el resultado en


add_result.

Lgica de escalera de rels

Texto estructurado
add_result := float_value_1 + float_value_2;

Bloque de funciones

254

Publicacin 1756-RM003K-ES-P Julio 2008

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

Restar (SUB)

Captulo 6

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


en Destination.

Operandos:
Lgica de escalera de rels
Operando:

Tipo:

Formato:

Descripcin:

Source A

SINT

inmediato

valor del cual restar Source B

INT

tag

DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Source B

SINT

inmediato

INT

tag

valor que se resta de Source A

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.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

Operando:

Tipo:

Formato:

Descripcin:

SUB tag

FBD_MATH

estructura

estructura SUB

255

Captulo 6

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

Estructura FBD_MATH
Parmetro de
entrada:

Tipo de datos:

Descripcin:

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

SourceA

REAL

Valor del cual restar SourceB


Vlido = cualquier valor con punto flotante (coma flotante)

SourceB

REAL

Valor que se resta de SourceA


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de
salida:

Tipo de datos:

Descripcin:

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

REAL

Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico


para esta salida.

Descripcin: La instruccin SUB resta Source B de Source A y coloca el resultado


en Destination.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo: ninguna
Ejecucin:
Lgica de escalera de rels
Condicin:

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


La condicin de salida de rengln se establece como verdadera.

post-escn

256

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 6

Bloque de funciones
Condicin:

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.

Ejemplo: Reste float_value_2 de float_value_1 y coloque el resultado en


subtract_result.

Lgica de escalera de rels

Texto estructurado
subtract_result := float_value_1 - float_value_2;

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

257

Captulo 6

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

Multiplicar (MUL)

La instruccin MUL multiplica Source A por Source B y coloca el


resultado en Destination.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source A

SINT

inmediato

valor del multiplicando

INT

tag

DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Source B

SINT

inmediato

INT

tag

valor del multiplicador

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.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

258

Operando

Tipo

Formato

Descripcin

MUL tag

FBD_MATH

estructura

estructura MUL

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 6

Estructura FBD_MATH
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

Source A

REAL

Valor del multiplicando


Vlido = cualquier valor con punto flotante (coma flotante)

Source B

REAL

Valor del multiplicador


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

REAL

Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico


para esta salida.

Descripcin: La instruccin MUL multiplica Source A por Source B y coloca el


resultado en Destination.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo: ninguna
Ejecucin:
Lgica de escalera de rels
Condicin

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


La condicin de salida de rengln se establece como verdadera.

post-escn

Publicacin 1756-RM003K-ES-P Julio 2008

La condicin de salida de rengln se establece como falsa.

259

Captulo 6

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

Bloque de funciones
Condicin

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.

Ejemplo: Multiplique float_value_1 por float_value_2 y coloque el resultado en


multiply_result.

Lgica de escalera de rels

Texto estructurado
multiply_result := float_value_1 float_value_2;

Bloque de funciones

260

Publicacin 1756-RM003K-ES-P Julio 2008

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

Dividir (DIV)

Captulo 6

La instruccin DIV divide Source A entre Source B y coloca el


resultado en Destination.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source A

SINT

inmediato

valor del dividendo

INT

tag

DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Source B

SINT

inmediato

INT

tag

valor del divisor

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.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Publicacin 1756-RM003K-ES-P Julio 2008

261

Captulo 6

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

Bloque de funciones
Operando

Tipo

Formato

Descripcin

DIV tag

FBD_MATH

estructura

estructura DIV

Estructura FBD_MATH
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

Source A

REAL

Valor del dividendo.


Vlido = cualquier valor con punto flotante (coma flotante)

Source B

REAL

Valor del divisor.


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

REAL

Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico


para esta salida.

Descripcin: Si el destino no es un tipo REAL, la instruccin maneja la porcin


fraccionaria del resultado de la siguiente manera:
Si Source A

Entonces la porcin
fraccionaria del
resultado

y Source B no son REAL se trunca

o Source B es REAL

262

se redondea

Ejemplo

Source A

DINT

Source B

DINT

Destination

DINT

Source A

REAL

5.0

Source B

DINT

Destination

DINT

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 6

Si Source B (el divisor) es cero:


se produce un fallo menor
Tipo 4: fallo del programa
Cdigo 4: overflow aritmtico
el destino se establece de la siguiente manera:
Si Source B es cero y:

Y el destino es un:

Y el resultado es:

todos los operandos son nmeros


enteros (SINT, INT o DINT)
por lo menos un operando es REAL

Entonces el destino se
establece en:
Source A

SINT, INT o DINT


REAL

positivo

-1

negativo

positivo

1.$ (infinito positivo)

negativo

-1.$ (infinito negativo)

Para detectar una posible divisin entre cero, examine el fallo menor
(S:MINOR). Consulte el documento Logix5000 Controllers Common
Procedures, publicacin 1756-PM001.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo:
Se produce un fallo
menor si

Tipo de fallo

Cdigo de fallo

el divisor es cero

Ejecucin:
Lgica de escalera de rels
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


La condicin de salida de rengln se establece como verdadera.

post-escn

Publicacin 1756-RM003K-ES-P Julio 2008

La condicin de salida de rengln se establece como falsa.

263

Captulo 6

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

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.

Ejemplo 1: Dividir float_value_1 entre float_value_2 y coloque el resultado en


divide_result.

Lgica de escalera de rels

Texto estructurado
divide_result := float_value_1 / float_value_2;

Bloque de funciones

264

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 6

Ejemplo 2: Las instrucciones DIV y MOV funcionan juntas para dividir dos
enteros, redondear el resultado y colocarlo en un tag de nmero
entero:
La instruccin DIV divide dint_a entre dint_b.
Para redondear el resultado, Destination es un tag REAL. (Si el
destino fuera un tag entero (SINT, INT o DINT), la instruccin
truncara el resultado).
La instruccin MOV traslada el resultado redondeado
(real_temp) de la DIV a divide_result_rounded.
Puesto que divide_result_rounded es un tag DINT, el valor de
real_temp se redondea y se coloca en el destino DINT.

Lgica de escalera de rels

43009

Publicacin 1756-RM003K-ES-P Julio 2008

265

Captulo 6

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

Mdulo (MOD)

La instruccin MOD divide Source A entre Source B y coloca el


residuo en Destination.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source A

SINT

inmediato

valor del dividendo

INT

tag

DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Source B

SINT

inmediato

INT

tag

valor del divisor

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.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

266

Operando

Tipo

Formato

Descripcin

MOD tag

FBD_MATH

estructura

estructura MOD

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 6

Estructura FBD_MATH
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

Source A

REAL

Valor del dividendo.


Vlido = cualquier valor con punto flotante (coma flotante)

Source B

REAL

Valor del divisor.


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

REAL

Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico


para esta salida.

Descripcin: Si Source B (el divisor) es cero:


se produce un fallo menor
Tipo 4: fallo del programa
Cdigo 4: overflow aritmtico
el destino se establece de la siguiente manera:
Si Source B es cero y:

Y el destino es un:

Y el resultado es:

todos los operandos son nmeros


enteros (SINT, INT o DINT)
por lo menos un operando es REAL

Entonces el destino se
establece en:
Source A

SINT, INT o DINT


REAL

positivo

-1

negativo

positivo

1.$ (infinito positivo)

negativo

-1.$ (infinito negativo)

Para detectar una posible divisin entre cero, examine el fallo menor
(S:MINOR). Consulte el documento Logix5000 Controllers Common
Procedures, publicacin 1756-PM001.

Publicacin 1756-RM003K-ES-P Julio 2008

267

Captulo 6

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

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo:
Se produce un fallo
menor si

Tipo de fallo

Cdigo de fallo

el divisor es cero

Ejecucin:
Lgica de escalera de rels
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 )


La condicin de salida de rengln se establece como verdadera.

post-escn

La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin

Accin

preescn

Ninguna.

primer escn de instruccin

Ninguna.

primera ejecucin de instruccin

Ninguna.

EnableIn se borra

EnableOut se borra.

post-escn

Ninguna.

268

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 6

Ejemplo: Divida dividend entre divisor y coloque el residuo en remainder. En


este ejemplo, tres cabe tres veces dentro de 10, y arroja un residuo de
uno.

Lgica de escalera de rels

Texto estructurado
residuo := dividendo MOD divisor;

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

269

Captulo 6

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

Raz cuadrada (SQR)

La instruccin SQR calcula la raz cuadrada de Source y coloca el


resultado en Destination.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source

SINT

inmediato

halla la raz cuadrada de este valor

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.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

270

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 6

Bloque de funciones
Operando

Tipo

Formato

Descripcin

SQR tag

FBD_MATH_ADVANCED

estructura

estructura SQR

Estructura FBD_MATH_ADVANCED
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

Source

REAL

Halla la raz cuadrada de este valor.


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

REAL

Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico


para esta salida.

Descripcin: Si Destination no es REAL, la instruccin maneja la porcin


fraccionaria del resultado de la siguiente manera:
Si Source

Entonces la porcin
fraccionaria del
resultado

Ejemplo

no es REAL

se trunca

Source

DINT

Destination

DINT

Source

REAL

3.0

Destination

DINT

es REAL

se redondea

Si Source es negativo, la instruccin toma el valor absoluto de Source


antes de calcular la raz cuadrada.

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

Publicacin 1756-RM003K-ES-P Julio 2008

271

Captulo 6

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

Ejecucin:
Lgica de escalera de rels
Condicin

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

La condicin de salida de rengln se establece como verdadera.


post-escn

La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin

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

272

Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 6

Ejemplo: Calcule la raz cuadrada de value_1 y coloque el resultado en


sqr_result.

Lgica de escalera de rels

Texto estructurado
sqr_result := SQRT(value_1);

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

273

Captulo 6

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

Cambiar signo (NEG)

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


Destination.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source

SINT

inmediato

valor cuyo signo se cambia

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 el signo menos como operador en una expresin. La


expresin cambia el signo de source y almacena el resultado en dest.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

274

Operando

Tipo

Formato

Descripcin

NEG tag

FBD_MATH_ADVANCED

estructura

estructura NEG

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 6

Estructura FBD_MATH
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
la opcin predeterminada es establecido

Source

REAL

Valor cuyo signo se cambia.


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

REAL

Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico


para esta salida.

Descripcin: Si usted cambia el signo de un valor negativo, el resultado es positivo.


Si usted cambia el signo de un valor positivo, el resultado es negativo.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo: ninguna
Ejecucin:
Lgica de escalera de rels
Condicin

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

post-escn

La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin

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

Publicacin 1756-RM003K-ES-P Julio 2008

Ninguna.

275

Captulo 6

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

Ejemplo: Cambie el signo de value_1 y coloque el resultado en negate_result.


Lgica de escalera de rels

Texto estructurado
negate_result := -value_1;

Bloque de funciones

276

Publicacin 1756-RM003K-ES-P Julio 2008

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

Valor absoluto (ABS)

Captulo 6

La instruccin ABS toma el valor absoluto de Source y coloca el


resultado en Destination.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source

SINT

inmediato

valor del cual hallar el valor absoluto

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.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

Operando

Tipo

Formato

Descripcin

ABS tag

FBD_MATH_ADVANCED

estructura

estructura ABS

277

Captulo 6

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

Estructura FBD_MATH_ADVANCED
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

Source

REAL

Valor del cual hallar el valor absoluto.


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

REAL

Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico


para esta salida.

Descripcin: La instruccin ABS toma el valor absoluto de Source y coloca el


resultado en Destination.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo: ninguna
Ejecucin:
Lgica de escalera de rels
Condicin

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

post-escn

La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin

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

278

Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 6

Ejemplo: Coloque el valor absoluto de value_1 en value_1_absolute. En este


ejemplo, el valor absoluto de cuatro negativo es cuatro positivo.

Lgica de escalera de rels

Texto estructurado
value_1_absolute := ABS(value_1);

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

279

Captulo 6

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

Notas:

280

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

Instrucciones de movimiento/lgicas
(MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT,
BAND, BOR, BXOR, BNOT)

Introduccin

Usted puede mezclar diferentes tipos de datos, pero puede producirse


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

Si desea
copiar un valor

Use esta instruccin


MOV

Disponible en estos lenguajes


lgica de escalera de rels

Vea la pgina
283

texto estructurado(1)
copiar una parte especfica de un nmero
entero

MVM

lgica de escalera de rels

285

copiar una parte especfica de un nmero


entero en el bloque de funciones

MVMT

texto estructurado

288

bloque de funciones
mover bits dentro de un nmero entero o entre
nmeros enteros

BTD

lgica de escalera de rels

292

mover bits dentro de un nmero entero o entre


nmeros enteros en el bloque de funciones

BTDT

texto estructurado

295

bloque de funciones
borrar un valor

CLR

texto estructurado(1)

298

lgica de escalera de rels


reacomodar los bytes de un tag INT, DINT o
REAL

SWPB

lgica de escalera de rels

300

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.

281Publicacin 1756-RM003K-ES-P Julio 2008

281

Captulo 7

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Las instrucciones lgicas realizan operaciones con los bits.


Si desea:

Use esta instruccin:

operacin Y a nivel de bits

Bitwise AND

Disponible en estos lenguajes

&(1)

lgica de escalera de rels

Vea la pgina
304

texto estructurado(2)
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
booleanas.

Boolean Exclusive OR
(BXOR)

texto estructurado(2)

323

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.

282

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Mover (MOV)

Captulo 7

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

Operandos:
Lgica de escalera de rels
Operando:

Tipo:

Formato

Descripcin:

Source

SINT

inmediato

valor a mover (copiar)

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
Use una asignacin := con una expresin. Esta asignacin mueve el
valor de source a dest.

dest := source;

Consulte Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de expresiones y asignaciones
en texto estructurado.

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


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

Publicacin 1756-RM003K-ES-P Julio 2008

283

Captulo 7

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Ejecucin:
Condicin

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 copia Source en Destination.


La condicin de salida de rengln se establece como verdadera.

post-escn

La condicin de salida de rengln se establece como falsa.

Ejemplo: Mueva los datos en value_1 a value_2.


Lgica de escalera de rels

Texto estructurado
value_2 := value _1;

284

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Mover con mscara (MVM)

Captulo 7

La instruccin MVM copia Source a un Destination y permite


enmascarar porciones de los datos.
Esta instruccin est disponible en texto estructurado y en bloque de
funciones como MVMT; vea la pgina 288.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source

SINT

inmediato

valor a mover

INT

tag

DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Mask

SINT

inmediato

INT

tag

qu bits se bloquean o se pasan

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))
OR (Source AND Mask);

Esta instruccin est disponible en texto estructurado como MVMT.


O puede combinar lgica a nivel de bits dentro de una expresin y
asignar el resultado al destino. Esta expresin realiza un movimiento
con mscara en Source.
Consulte Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de expresiones y asignaciones
en texto estructurado.

Descripcin: La instruccin MVM usa una mscara para pasar o bloquear bits de
datos de Source. Un nmero 1 en la mscara significa que se pasa el
bit de datos. Un nmero 0 en la mscara significa que se bloquea el
bit de datos.
Si mezcla diferentes tipos de datos enteros, la instruccin llena con
ceros los bits superiores de los tipos de datos enteros menores para
que tengan el mismo tamao que el tipo de datos mayor.

Publicacin 1756-RM003K-ES-P Julio 2008

285

Captulo 7

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Introduzca un valor de mscara inmediato


Cuando usted introduce una mscara, el software de programacin
cambia de manera predeterminada a valores decimales. Si desea
introducir una mscara usando otro formato, preceda el valor con el
prefijo correcto.
Prefijo:

Descripcin

16#

hexadecimal
por ejemplo; 16#0F0F

8#

octal
por ejemplo; 8#16

2#

binario
por ejemplo; 2#00110011

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
condiciones de fallo ninguna
Ejecucin:
Condicin

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 pasa Source a travs de la mscara y copia el resultado en Destination.


Los bits sin mscara en Destination permanecen sin ningn cambio.
La condicin de salida de rengln se establece como verdadera.

post-escn

286

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Captulo 7

Ejemplo: Copie datos de value_a a value_b, mientras permite que los datos
sean enmascarados (un 0 enmascara los datos en value_a).

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1

Las casillas sombreadas muestran los bits cambiados en value_b.

Lgica de escalera de rels

Texto estructurado
value_b := (value_b AND NOT (mask_2)) OR
(value_a AND mask_2);

Publicacin 1756-RM003K-ES-P Julio 2008

287

Captulo 7

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Movimiento enmascarado
con receptor (MVMT)

La instruccin MVMT primero copia Target en Destination.


Seguidamente la instruccin compara Source enmascarado con
Destination y hace los cambios requeridos en Destination. Target y
Source permanecen sin ningn cambio.
Esta instruccin est disponible en lgica de escalera de rels como
MVM; vea la pgina 285.

Operandos:
MVMT(MVMT_tag);

Texto estructurado
Variable

Tipo

Formato

Descripcin:

MVMT tag

FBD_MASKED_MOVE

estructura

estructura MVMT

Bloque de funciones
Operando

Tipo

Formato

Descripcin

MVMT tag

FBD_MASKED_MOVE

estructura

estructura MVMT

Estructura FBD_MASKED_MOVE
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Bloque de funciones
Si se borra, la instruccin no se ejecuta y las salidas no se actualizan.
Si se establece, la instruccin se ejecuta.
La opcin predeterminada es establecido.
Texto estructurado
Ningn efecto. La instruccin se ejecuta.

Source

DINT

Valor de entrada para mover el destino con base en el valor de la mscara.


Vlido = cualquier nmero entero

Mask

DINT

Mscara de bits para mover de Source a Dest. Todos los bits establecidos en uno hacen que
los bits correspondientes se muevan de Source a Dest. Todos los bits que se establecen en
cero hacen que los bits correspondientes no se muevan de Source a Dest.
Vlido = cualquier nmero entero

Target

DINT

Valor de entrada para mover a Dest antes de mover los bits de Source a travs de la
mscara.
Vlido = cualquier nmero entero

288

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Captulo 7

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

DINT

Resultado de la instruccin de movimiento enmascarado. Se establecen indicadores de


estado aritmtico para esta salida.

Descripcin: Cuando se habilita, la instruccin MVMT usa una mscara para pasar o
bloquear bits de datos de Source. Un nmero 1 en la mscara
significa que se pasa el bit de datos. Un nmero 0 en la mscara
significa que se bloquea el bit de datos.
Si mezcla diferentes tipos de datos enteros, la instruccin llena con
ceros los bits superiores de los tipos de datos enteros menores para
que tengan el mismo tamao que el tipo de datos mayor.

Introduzca un valor de mscara inmediato usando una referencia


de entrada
Cuando usted introduce una mscara, el software de programacin
cambia de manera predeterminada a valores decimales. Si desea
introducir una mscara usando otro formato, preceda el valor con el
prefijo correcto.
Prefijo

Descripcin

16#

hexadecimal
por ejemplo; 16#0F0F

8#

octal
por ejemplo; 8#16

2#

binario
por ejemplo; 2#00110011

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

Publicacin 1756-RM003K-ES-P Julio 2008

289

Captulo 7

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Ejecucin:
Condicin

Accin de bloque de funciones

Accin de texto estructurado

preescn

Ninguna.

Ninguna.

primer escn de instruccin Ninguna.

Ninguna.

primera ejecucin de
instruccin

Ninguna.

Ninguna.

EnableIn se borra

EnableOut se borra, la instruccin no efecta


ninguna operacin y las salidas no se actualizan.

n. a.

EnableIn se establece

La instruccin se ejecuta.

EnableIn siempre se establece.

EnableOut se establece.

La instruccin se ejecuta.

Ninguna.

Ninguna.

post-escn

Ejemplo:

1. Copie el receptor a Dest.

Receptor 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Dest 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

2. Enmascare Source y comprelo con Dest. Cualquier cambio


requerido se hace en Dest. Source y Target permanecen sin
ningn cambio. Un nmero 0 en la mscara impide que la
instruccin compare ese bit (representado por x en el ejemplo).

Source 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Mask1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

Dest 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1

Las casillas sombreadas muestran los bits cambiados.

Texto estructurado
MVMT_01.Source := value _1;
MVMT_01.Mask := mask1;
MVMT_01.Target := target;

MVMT(MVMT_01);

value_masked := MVMT_01.Dest;

290

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Captulo 7

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

291

Captulo 7

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Distribuir campo de bits


(BTD)

La instruccin BTD copia los bits especificados de Source, desplaza


los bits a la posicin apropiada y escribe los bits en Destination.
Esta instruccin est disponible en texto estructurado y en bloque de
funciones como BTDT; vea la pgina 295.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source

SINT

inmediato

el tag que contiene los bits a mover

INT

tag

DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Source bit

Destination

DINT

SINT

inmediato

nmero del bit (nmero del bit ms bajo)


desde donde empezar el movimiento

(0-31 DINT)
(0-15 INT)
(0-7 SINT)

debe estar dentro del rango vlido para el


tipo de datos de Source

tag

tag a donde mover los bits

inmediato

nmero del bit (nmero del bit ms bajo)


desde donde empezar a copiar bits desde
Source

INT
DINT
Destination
bit

DINT

(0-31 DINT)
(0-15 INT)
(0-7 SINT)
Length

DINT

inmediato
(1-32)

debe estar dentro del rango vlido para el


tipo de datos del destino
nmero de bits que se van a mover

Descripcin: Cuando se habilita, la instruccin BTD copia un grupo de bits de


Source a Destination. El grupo de bits es identificado por el bit de
Source (el nmero de bit ms bajo del grupo) y la longitud (el nmero
de bits a copiar). El bit de Destination identifica el nmero de bit
menor con el cual se comienza en Destination. Source no cambia.
Si la longitud del campo de bits se extiende ms all de Destination, la
instruccin no guarda los bits adicionales. Los bits adicionales no
pasan a la prxima palabra.
Si mezcla diferentes tipos de datos enteros, la instruccin llena con
ceros los bits superiores de los tipos de datos enteros menores para
que tengan el mismo tamao que el tipo de datos mayor.

292

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Captulo 7

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

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 copia y desplaza los bits de Source a Destination.


La condicin de salida de rengln se establece como verdadera.

post-escn

La condicin de salida de rengln se establece como falsa.

Ejemplo 1: Una vez habilitada, la instruccin BTD transfiere los bits dentro de
value_1.

bit de destino

bit de origen

value_1 antes de la 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0
instruccin BTD

value_1 despus de la 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
instruccin BTD

Las casillas sombreadas muestran los bits que cambiaron en value_1.

Publicacin 1756-RM003K-ES-P Julio 2008

293

Captulo 7

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Ejemplo 2: Una vez habilitada, la instruccin BTD mueve 10 bits de value_1


a value_2.

bit de origen

value_1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

bit de destino

value_2 antes de la 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
instruccin BTD

value_2 despus de la 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0
instruccin BTD

Las casillas sombreadas muestran los bits que cambiaron en value_2.

294

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Distribuir campo de bits


con receptor (BTDT)

Captulo 7

La instruccin BTDT primero copia Target en Destination.


Seguidamente, la instruccin BTD copia los bits especificados desde
Source, desplaza los bits a la posicin apropiada y escribe los bits en
Destination. Target y Source no cambian.
Esta instruccin est disponible en lgica de escalera de rels como
BTD; vea la pgina 292.

Operandos:
BTDT(BTDT_tag);

Texto estructurado
Variable

Tipo

Formato

Descripcin

BTDT tag

FBD_BIT_FIELD_DISTRIBUTE

estructura

estructura BTDT

Bloque de funciones
Operando

Tipo

Formato

Descripcin

BTDT tag

FBD_BIT_FIELD_DISTRIBUTE

estructura

estructura BTDT

Estructura FBD_BIT_FIELD_DISTRIBUTE
Parmetro de
entrada

Tipo de datos

Descripcin:

EnableIn

BOOL

Bloque de funciones:
Si se borra, la instruccin no se ejecuta y las salidas no se actualizan.
Si se establece, la instruccin se ejecuta.
La opcin predeterminada es establecido.
Texto estructurado:
Ningn efecto. La instruccin se ejecuta.

Source

DINT

El valor de entrada que contiene los bits que se transfieren a Destination.


Vlido = cualquier nmero entero

SourceBit

DINT

La posicin de bit en Source (el nmero de bit ms bajo desde el cual se inicia la
transferencia).
Vlido = 0-31

Length

DINT

Nmero de bits que se van a mover


Vlido = 1-32

DestBit

DINT

La posicin de bit en Dest (el nmero de bit ms bajo al cual se comienza a copiar bits).
Vlido = 0-31

Publicacin 1756-RM003K-ES-P Julio 2008

295

Captulo 7

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Parmetro de
entrada

Tipo de datos

Descripcin:

Target

DINT

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

Parmetro de
salida:

Tipo de datos:

Descripcin:

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

DINT

Resultado de la operacin del traslado de bits. Se establecen indicadores de estado


aritmtico para esta salida.

Descripcin: Cuando se habilita, la instruccin BTD copia un grupo de bits de


Source a Destination. El grupo de bits es identificado por el bit de
Source (el nmero de bit ms bajo del grupo) y Length (nmero de
bits a copiar). El bit de Destination identifica el nmero de bit menor
con el cual se comienza en Destination. Source no cambia.
Si la longitud del campo de bits se extiende ms all de Destination,
la instruccin no guarda los bits adicionales. Los bits adicionales no
pasan a la prxima palabra.

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

Accin de bloque de funciones

Accin de texto estructurado

preescn

Ninguna.

Ninguna.

primer escn de instruccin Ninguna.

Ninguna.

primera ejecucin de
instruccin

Ninguna.

Ninguna.

EnableIn se borra

EnableOut se borra, la instruccin no efecta


ninguna operacin y las salidas no se actualizan.

n. a.

EnableIn se establece

La instruccin se ejecuta.

EnableIn siempre se establece.

EnableOut se establece.

La instruccin se ejecuta.

Ninguna.

Ninguna.

post-escn

296

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Ejemplo:

Captulo 7

1. El controlador copia el receptor en Destination.

Target 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0

Dest 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0

2. SourceBit y Length especifican qu bits en Source se copian en


Destination a partir de DestBit. Source y Target no cambian.
DestBit

SourceBit

Source 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0

Dest 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Texto estructurado
BTDT_01.Source := source;
BTDT_01.SourceBit := source_bit;
BTDT_01.Length := length;
BTDT_01.DestBit := dest_bit;
BTDT_01.Target := target;

BTDT(BTDT_01);

distributed_value := BTDT_01.Dest;

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

297

Captulo 7

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Borrar (CLR)

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

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Destination

SINT

tag

tag que se borra

INT
DINT
REAL

Texto estructurado

dest := 0;

El texto estructurado no cuenta con la instruccin CLR. En lugar de


ello, asigne 0 al tag que desea borrar. Esta declaracin de asignacin
borra dest.
Consulte Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones y
declaraciones de asignacin en texto estructurado.

Descripcin: La instruccin CLR borra todos los bits de Destination.


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

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.


La condicin de salida de rengln se establece como verdadera.

post-escn

298

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Captulo 7

Ejemplo: Ponga en cero todos los bits de value.


Lgica de escalera de rels

Texto estructurado
value := 0;

Publicacin 1756-RM003K-ES-P Julio 2008

299

Captulo 7

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Intercambiar byte (SWPB)

La instruccin SWPB reacomoda los bytes de un valor.

Operandos:
Lgica de escalera de rels

Operando

Tipo

Formato

Introduzca

Source

INT

tag

el tag que contiene los bytes que desea reacomodar

DINT
REAL
Modo de orden

Destination

INT

tag

Si Source
es un

Y usted desea cambiar los bytes a este


patrn (cada letra representa un byte
diferente)

Entonces
seleccione

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)

tag para almacenar los bytes en el nuevo orden

DINT

Si Source
es un

Entonces el destino debe ser un

REAL

INT

INT
DINT

DINT

DINT

REAL

REAL

Texto estructurado
SWPB(Source,OrderMode,Dest);

300

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

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Captulo 7

Descripcin: La instruccin SWPB reacomoda el orden de los bytes de Source y


coloca el resultado en Destination.
Cuando usted lee o escribe caracteres ASCII, generalmente no
necesita intercambiar caracteres. Las instrucciones de lectura y
escritura ASCII (ARD, ARL, AWA, AWT) automticamente intercambian
caracteres, como se muestra a continuacin.
lector de cdigos de barras

BA

Nombre del tag

Valor

Estilo

Tipo

bar_code[0]

AB

ASCII

INT

42969

42968

AB

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo: ninguna
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
rengln es falsa

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La condicin de salida de rengln se establece como


verdadera.

n. a.

EnableIn se establece

n. a.

EnableIn siempre se establece.


La instruccin se ejecuta.

ejecucin de la instruccin

La instruccin reacomoda los bytes especificados.

La instruccin reacomoda los bytes especificados.

post-escn

La condicin de salida de rengln se establece como


falsa.

Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008

301

Captulo 7

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Ejemplo 1: Las tres instrucciones SWPB reacomodan los bytes de DINT_1 segn
un modo de orden diferente. El estilo de visualizacin es ASCII, y
cada carcter representa un byte. Cada instruccin coloca los bytes, en
el nuevo orden, en un diferente Destination.

Lgica de escalera de rels

Texto estructurado
SWPB(DINT_1,REVERSE,DINT_1_reverse);
SWPB(DINT_1,WORD,DINT_1_swap_word);
SWPB(DINT_1,HIGHLOW,DINT_1_swap_high_low);

Ejemplo 2: El siguiente ejemplo invierte los bytes en cada elemento de una


matriz. Para un proyecto RSLogix 5000 que contiene este ejemplo,
abra la carpeta RSLogix 5000\Projects\Samples, archivo
Swap_Bytes_in_Array.ACD.
1. Inicialice los tags. La instruccin SIZE encuentra el nmero de
elementos en array y almacena ese valor en array_length. Una
instruccin subsiguiente usa este valor para determinar cundo
actu la rutina en todos los elementos de la matriz.
2. Invierta los bytes en un elemento de array.
La instruccin SWPB invierte los bytes del nmero de elemento
indicado por el valor de index. Por ejemplo, cuando index es
igual a 0, la instruccin SWPB acta sobre array[0].
La instruccin ADD incrementa index. La prxima vez que se
ejecute la instruccin, la instruccin SWPB acta sobre el
siguiente elemento en array.
3. Determine cundo la instruccin SWPB actu sobre todos los
elementos en la matriz.
Si index es menor que el nmero de elementos en la matriz
(array_length), contine con el siguiente elemento en la matriz.
Si index es igual a array_length, significa que SWPB actu sobre
todos los elementos en la matriz.

302

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Captulo 7

Lgica de escalera de rels


Inicialice los tags.

Invierta los bytes.

Determine si la instruccin SWPB actu sobre todos los elementos en la matriz.

Texto estructurado
index := 0;
SIZE (array[0],0,array_length);
REPEAT
SWPB(array[index],REVERSE,array_bytes_reverse[index]);
index := index + 1;
UNTIL(index >= array_length)END_REPEAT;

Publicacin 1756-RM003K-ES-P Julio 2008

303

Captulo 7

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Y a nivel de bits (AND)

La instruccin AND realiza una operacin Y a nivel de bits usando los


bits en Source A y Source B, y coloca el resultado en Destination.
Para realizar una operacin lgica Y, vea la pgina 317.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source A

SINT

inmediato

valor con que se realiza la operacin Y con


Source B

INT

tag

DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Source B

SINT

inmediato

INT

tag

valor con que se a realiza la operacin AND


con Source A

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.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

304

Operando

Tipo

Formato

Descripcin

AND tag

FBD_LOGICAL

estructura

estructura AND

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Captulo 7

Estructura FBD_LOGICAL
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

SourceA

DINT

Valor con que se realiza la operacin AND con SourceB


Vlido = cualquier nmero entero

SourceB

DINT

Valor con que se realiza la operacin AND con SourceA


Vlido = cualquier nmero entero

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

DINT

Resultado de la instruccin. Se establecen indicadores de estado aritmtico para esta salida.

Descripcin: Una vez habilitada, la instruccin evala la operacin AND:


Si el bit en
Source A es

Y el bit en
Source B es

El bit en Destination
es

Si mezcla diferentes tipos de datos enteros, la instruccin llena con


ceros los bits superiores de los tipos de datos enteros menores para
que tengan el mismo tamao que el tipo de datos mayor.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo: ninguna
Ejecucin:
Lgica de escalera de rels
Condicin

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.


La condicin de salida de rengln se establece como verdadera.

post-escn

Publicacin 1756-RM003K-ES-P Julio 2008

La condicin de salida de rengln se establece como falsa.

305

Captulo 7

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Bloque de funciones
Condicin

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.

Ejemplo: Cuando se habilita, la instruccin AND realiza una operacin Y a nivel


de bits en SourceA y SourceB y coloca el resultado en Dest.

SourceA 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1

SourceB 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0

Dest 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0

Lgica de escalera de rels

Texto estructurado
value_result_and := value_1 AND value_2;

Bloque de funciones

306

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

O a nivel de bits (OR)

Captulo 7

La instruccin OR realiza una operacin O a nivel de bits usando los


bits en Source A y Source B, y coloca el resultado en Destination.
Para realizar una operacin lgica O, vea la pgina 320.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source A

SINT

inmediato

valor con que se realiza la


operacin O con Source B

INT

tag

DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Source B

SINT

inmediato

INT

tag

valor con que se realiza la


operacin O con Source A

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.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

Operando

Tipo

Formato

Descripcin

OR tag

FBD_LOGICAL

estructura

estructura OR

307

Captulo 7

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Estructura FBD_LOGICAL
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

SourceA

DINT

Valor con que se realiza la operacin O con SourceB


Vlido = cualquier nmero entero

SourceB

DINT

Valor con que se realiza la operacin O con SourceA


Vlido = cualquier nmero entero

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

DINT

Resultado de la instruccin. Se establecen indicadores de estado aritmtico para esta salida.

Descripcin: Una vez habilitada, la instruccin evala la operacin O:


Si el bit en
Source A es

Y el bit en
Source B es

El bit en Destination
es

Si mezcla diferentes tipos de datos enteros, la instruccin llena con


ceros los bits superiores de los tipos de datos enteros menores para
que tengan el mismo tamao que el tipo de datos mayor.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo: ninguna
Ejecucin:
Lgica de escalera de rels
Condicin

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.


La condicin de salida de rengln se establece como verdadera.

post-escn

308

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Captulo 7

Bloque de funciones
Condicin

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.

Ejemplo: Cuando se habilita, la instruccin OR realiza una operacin O a nivel


de bits en SourceA y SourceB y coloca el resultado en Dest.

SourceA 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1

SourceB 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0

Dest 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1

Lgica de escalera de rels

Texto estructurado
value_result_or := value_1 OR value_2;

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

309

Captulo 7

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

O exclusivo a nivel de bits


(XOR)

La instruccin XOR realiza una operacin O exclusivo a nivel de bits


usando los bits en Source A y Source B, y coloca el resultado en
Destination.
Para realizar una operacin lgica XO, vea la pgina 323.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source A

SINT

inmediato

valor con que se realiza la operacin


XOR con Source B

INT

tag

DINT
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con
ceros.
Source B

SINT

inmediato

INT

tag

valor con que se realiza la operacin


XOR con Source A

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.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

310

Operando

Tipo

Formato

Descripcin

XOR tag

FBD_LOGICAL

estructura

estructura XOR

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Captulo 7

Estructura FBD_LOGICAL
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

SourceA

DINT

Valor con que se realiza la operacin XOR con SourceB


Vlido = cualquier nmero entero

SourceB

DINT

Valor con que se realiza la operacin XOR con SourceA


Vlido = cualquier nmero entero

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

DINT

Resultado de la instruccin. Se establecen indicadores de estado aritmtico para esta salida.

Descripcin: Una vez habilitada, la instruccin evala la funcin XOR:


Si el bit en
Source A es

Y el bit en
Source B es

El bit en
Destination es

Si mezcla diferentes tipos de datos enteros, la instruccin llena con


ceros los bits superiores de los tipos de datos enteros menores para
que tengan el mismo tamao que el tipo de datos mayor.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo: ninguna
Ejecucin:
Lgica de escalera de rels
Condicin

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.


La condicin de salida de rengln se establece como verdadera.

post-escn

Publicacin 1756-RM003K-ES-P Julio 2008

La condicin de salida de rengln se establece como falsa.

311

Captulo 7

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Bloque de funciones
Condicin

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.

Ejemplo: Cuando se habilita, la instruccin AND realiza una operacin O


exclusivo a nivel de bits en SourceA y SourceB y coloca el resultado
en el tag de destino.

value_1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1

value_2 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0

value_result_xor 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1

Lgica de escalera de rels

Texto estructurado
value_result_xor := value_1 XOR value_2;

312

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Captulo 7

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

313

Captulo 7

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

NO a nivel de bits (NOT)

La instruccin NOT realiza un NO a nivel de bits usando los bits en


Source y coloca el resultado en Destination.
Para realizar una operacin lgica NO, vea la pgina 326.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source

SINT

inmediato

valor sobre el cual se aplicar la


operacin NO

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 := NOT source

Use NOT como operador dentro de una expresin. Esta expresin


evala source con la operacin NOT.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

314

Operando

Tipo

Formato

Descripcin

NOT tag

FBD_LOGICAL

estructura

estructura NOT

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Captulo 7

Estructura FBD_LOGICAL
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
la opcin predeterminada es establecido

Source

DINT

Valor sobre el cual se aplicar la operacin NO


Vlido = cualquier nmero entero

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

DINT

Resultado de la instruccin. Se establecen indicadores de estado aritmtico para esta salida.

Descripcin: Una vez habilitada, la instruccin evala la operacin NO:


Si el bit en
Source es:

El bit en Destination
es:

Si mezcla diferentes tipos de datos enteros, la instruccin llena con


ceros los bits superiores de los tipos de datos enteros menores para
que tengan el mismo tamao que el tipo de datos mayor.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo: ninguna
Ejecucin:
Lgica de escalera de rels
Condicin

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.


La condicin de salida de rengln se establece como verdadera.

post-escn

Publicacin 1756-RM003K-ES-P Julio 2008

La condicin de salida de rengln se establece como falsa.

315

Captulo 7

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Bloque de funciones
Condicin

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.

Ejemplo: Cuando se habilita, la instruccin NOT realiza una operacin NO a


nivel de bits en Source y coloca el resultado en Dest.

value_1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1

value_result_not 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0

Lgica de escalera de rels

Texto estructurado
value_result_not := NOT value_1;

Bloque de funciones

316

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Y booleano (BAND)

Captulo 7

La instruccin BAND aplica la operacin lgica Y a 8 entradas


booleanas como mximo.
Para realizar una operacin Y a nivel de bits, vea la pgina 304.

Operandos:
Texto estructurado
IF operandA AND operandB THEN
<statement>;
END_IF;

Use AND o el signo & como operador dentro de una expresin.


Los operandos deben ser valores BOOL o expresiones que resultan
en valores BOOL. Esta expresin evala si tanto operandA como
operandB estn establecidos (verdaderos).
Consulte el Apndice C, para obtener informacin sobre la sintaxis de
las expresiones en texto estructurado.

Bloque de funciones
Operando

Tipo

Formato

Descripcin

BAND tag

FBD_BOOLEAN_AND

estructura

estructura BAND

Estructura FBD_BOOLEAN_AND
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

In1

BOOL

Primera entrada booleana.


La opcin predeterminada es establecido.

In2

BOOL

Segunda entrada booleana.


La opcin predeterminada es establecido.

In3

BOOL

Tercera entrada booleana.


La opcin predeterminada es establecido.

In4

BOOL

Cuarta entrada booleana.


La opcin predeterminada es establecido.

In5

BOOL

Quinta entrada booleana.


La opcin predeterminada es establecido.

In6

BOOL

Sexta entrada booleana.


La opcin predeterminada es establecido.

In7

BOOL

Sptima entrada booleana.


La opcin predeterminada es establecido.

Publicacin 1756-RM003K-ES-P Julio 2008

317

Captulo 7

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Parmetro de
entrada

Tipo de datos

Descripcin

In8

BOOL

Octava entrada booleana.


La opcin predeterminada es establecido.

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

Habilitacin de salida.

Out

BOOL

La salida de la instruccin.

Descripcin: La instruccin BAND aplica la operacin lgica Y a 8 entradas


booleanas como mximo. Si no se usa una entrada, sta se pone en
uno (1) de manera predeterminada.
Out = In1 AND In2 AND In3 AND In4 AND In5 AND In6 AND In7 AND In8

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

Accin de bloque de funciones

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.

Ejemplo 1: Este ejemplo efecta la operacin Y en bool_in1 y bool_in2 y coloca


el resultado en value_result_and.
Si BOOL_IN1 es Si BOOL_IN2 es Entonces VALUE_RESULT_AND es
0

Texto estructurado
value_result_and := bool_in1 AND bool_in2;

318

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Captulo 7

Bloque de funciones

Ejemplo 2: Si bool_in1 y bool_in2 se establecen (son verdaderos), light1 se


establece (se enciende). De lo contrario, light1 se borra (se apaga).

Texto estructurado
IF bool_in1 AND bool_in2 THEN
light1 := 1;
ELSE
light1 := 0;
END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008

319

Captulo 7

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

O booleano (BOR)

La instruccin BOR aplica la operacin lgica O a 8 entradas


booleanas como mximo.
Para realizar un O a nivel de bits, vea la pgina 307.

Operandos:
Texto estructurado
IF operandA OR operandB THEN
<statement>;
END_IF;

Use OR como operador dentro de una expresin. Los operandos


deben ser valores BOOLEANOS o expresiones que resultan en valores
BOOLEANOS. Esta expresin evala si operandA u operandB, o
ambos estn establecidos (verdaderos).
Consulte el Apndice C, para obtener informacin sobre la sintaxis de
las expresiones en texto estructurado.

Bloque de funciones
Operando

Tipo

Formato

Descripcin

BOR tag

FBD_BOOLEAN_OR

estructura

estructura BOR

Estructura FBD_BOOLEAN_OR
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

In1

BOOL

Primera entrada booleana.


La opcin predeterminada es borrado.

In2

BOOL

Segunda entrada booleana.


La opcin predeterminada es borrado.

In3

BOOL

Tercera entrada booleana.


La opcin predeterminada es borrado.

In4

BOOL

Cuarta entrada booleana.


La opcin predeterminada es borrado.

In5

BOOL

Quinta entrada booleana.


La opcin predeterminada es borrado.

In6

BOOL

Sexta entrada booleana.


La opcin predeterminada es borrado.

In7

BOOL

Sptima entrada booleana.


La opcin predeterminada es borrado.

320

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Parmetro de
entrada

Tipo de datos

Descripcin

In8

BOOL

Octava entrada booleana.

Captulo 7

La opcin predeterminada es borrado.


Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

Habilitacin de salida.

Out

BOOL

La salida de la instruccin.

Descripcin: La instruccin BOR aplica la operacin lgica O a 8 entradas


booleanas como mximo. Si no se usa una entrada, sta se pone en
cero (0) de manera predeterminada.
Out = In1 OR In2 OR In3 OR In4 OR In5 OR In6 OR In7 OR In8

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

Accin de bloque de funciones

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.

Ejemplo 1: Este ejemplo efecta la operacin O en bool_in1 y bool_in2 y coloca


el resultado en value_result_or.
Si BOOL_IN1 es Si BOOL_IN2 es Entonces VALUE_RESULT_OR es
0

Texto estructurado
value_result_or := bool_in1 OR bool_in2;

Publicacin 1756-RM003K-ES-P Julio 2008

321

Captulo 7

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Bloque de funciones

Ejemplo 2: En este ejemplo, light1 se establece (se enciende) si:


slo bool_in1 se establece (verdadero).
slo bool_in2 se establece (verdadero).
ambos bool_in1 y bool_in2 se establecen (verdaderos).
De lo contrario, light1 se borra (se apaga).

Texto estructurado
IF bool_in1 OR bool_in2 THEN
light1 := 1;
ELSE
light1 := 0;
END_IF;

322

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

O exclusivo booleano
(BXOR)

Captulo 7

La instruccin BXOR realiza una operacin O exclusivo de dos


entradas booleanas.
Para realizar un XOR a nivel de bits, vea la pgina 310.

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

Use XOR como operador dentro de una expresin. Los operandos


deben ser valores BOOLEANOS o expresiones que resultan en valores
BOOLEANOS. Esta expresin evala si slo operandA o slo
operandB, est establecido (verdadero).
Consulte el Apndice C, para obtener informacin sobre la sintaxis de
las expresiones en texto estructurado.

Bloque de funciones
Operando

Tipo

Formato

Descripcin

BXOR tag

FBD_BOOLEAN_XOR

estructura

estructura BXOR

Estructura FBD_BOOLEAN_XOR
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

In1

BOOL

Primera entrada booleana.


La opcin predeterminada es borrado.

In2

BOOL

Segunda entrada booleana.


La opcin predeterminada es borrado.

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

Habilitacin de salida.

Out

BOOL

La salida de la instruccin.

Descripcin: La instruccin BXOR realiza una operacin O exclusivo de dos


entradas booleanas.
Out = In1 XOR In2

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

Publicacin 1756-RM003K-ES-P Julio 2008

323

Captulo 7

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Ejecucin:
Condicin

Accin de bloque de funciones

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.

Ejemplo 1: Este ejemplo realiza una operacin O exclusivo en bool_in1 y


bool_in2 y coloca el resultado en value_result_xor.
Si BOOL_IN1 es Si BOOL_IN2 es Entonces VALUE_RESULT_XOR es
0

Texto estructurado
value_result_xor := bool_in1 XOR bool_in2;

Bloque de funciones

324

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Captulo 7

Ejemplo 2: En este ejemplo, light1 se establece (se enciende) si:


slo bool_in1 se establece (verdadero).
slo bool_in2 se establece (verdadero).
De lo contrario, light1 se borra (se apaga).

Texto estructurado
IF bool_in1 XOR bool_in2 THEN
light1 := 1;
ELSE
light1 := 0;
END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008

325

Captulo 7

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

NO booleano (BNOT)

La instruccin BNOT complementa una entrada booleana.


Para realizar una operacin NO a nivel de bits, vea la pgina 314.

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

Use NOT como operador dentro de una expresin. El operando debe


ser un valor BOOL o expresiones que resultan en valores BOOL. Esta
expresin evala si el operando est borrado (falso).
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones
Operando

Tipo

Formato

Descripcin

BNOT tag

FBD_BOOLEAN_NOT

estructura

estructura BNOT

Estructura FBD_BOOLEAN_NOT
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

In

BOOL

Entrada a la instruccin
La opcin predeterminada es establecido.

Parmetro de salida Tipo de datos

Descripcin:

EnableOut

BOOL

Habilitacin de salida.

Out

BOOL

La salida de la instruccin.

Descripcin: La instruccin BNOT complementa una entrada booleana.


Out = NOT In

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

326

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Captulo 7

Ejecucin:
Condicin

Accin de bloque de funciones

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.

Ejemplo 1: Este ejemplo complementa bool_in1 y coloca el resultado en


value_result_not.
Si BOOL_IN1 es

Entonces VALUE_RESULT_NOT es

Texto estructurado
value_result_not := NOT bool_in1;

Bloque de funciones

Ejemplo 2: Si bool_in1 se borra, light1 se borra (se apaga). De lo contrario, light1


se establece (se enciende).

Texto estructurado
IF NOT bool_in1 THEN
light1 := 0;
ELSE
light1 := 1;
END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008

327

Captulo 7

Instrucciones de movimiento/lgicas (MOV, MVM, BTD, MVMT, BTDT, CLR, SWPB, AND, OR, XOR, NOT, BAND, BOR, BXOR, BNOT)

Notas:

328

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

Instrucciones de matriz
(archivo)/miscelneas
(FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Introduccin

Las instrucciones de archivo/miscelneas realizan operaciones en


matrices de datos.

Si desea

Use esta instruccin

Disponible en estos lenguajes


lgica de escalera de rels

Vea la pgina

realizar operaciones aritmticas, lgicas, de


desplazamiento y de funciones en valores en
matrices

FAL

buscar y comparar valores en matrices

FSC

lgica de escalera de rels

347

copiar el contenido de una matriz en otra matriz

COP

lgica de escalera de rels

356

335

texto estructurado(1)

texto estructurado
copiar el contenido de una matriz en otra matriz
sin interrupcin

CPS

lgica de escalera de rels

356

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

SRT

lgica de escalera de rels

371

texto estructurado
calcular la desviacin estndar de una matriz
de valores

STD

lgica de escalera de rels

376

texto estructurado(1)
encontrar el tamao de una dimensin de una
matriz

SIZE

lgica de escalera de rels

381

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.

Usted puede mezclar diferentes tipos de datos, pero puede producirse


prdida de exactitud y error de redondeo, y la instruccin requiere
ms tiempo para ejecutarse. Verifique el bit S:V para determinar si se
trunc el resultado.
Para las instrucciones de lgica de escalera de rels, los tipos de datos
que aparecen en negrita indican tipos de datos ptimos. Las
instrucciones se ejecutan ms rpidamente y requieren menos
memoria si todos los operandos de instruccin usan el mismo tipo de
datos ptimos, tpicamente DINT o REAL.
329Publicacin 1756-RM003K-ES-P Julio 2008

329

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Seleccin del modo de


operacin

Para las instrucciones FAL y FSC, el modo indica al controlador cmo


distribuir la operacin de la matriz.
Si desea

Seleccione este
modo

realizar una operacin en todos los elementos


especificados de una matriz antes de continuar con la
prxima instruccin

Todos

distribuir operaciones de matriz entre un nmero de


escanes

Numrico

introduzca el nmero de elementos sobre los que se debe


operar por escn (1-2147483647)
manipular un elemento de la matriz cada vez que la
condicin de entrada de rengln cambia de falsa a
verdadera

Incremental

Modo Todos
En el modo Todos, se opera sobre todos los elementos de la matriz
antes de continuar con la prxima instruccin La operacin comienza
cuando la condicin de entrada del rengln cambia de falso a
verdadero. El valor de posicin (.POS) en la estructura de control
apunta al elemento de la matriz que la instruccin est usando
actualmente. La operacin se detiene cuando el valor .POS es igual al
valor .LEN.
Matriz de datos

un escn

16639

330

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Captulo 8

El siguiente diagrama temporal muestra la relacin entre los bits de


estado y la operacin de la instruccin. Cuando concluye la ejecucin
de la instruccin, se establece el bit .DN. El bit .DN, el bit .EN y el
valor .POS se borran cuando la condicin de entrada del rengln es
falsa. Slo entonces podr activarse otra ejecucin de la instruccin
por una transicin de falso a verdadero de la condicin de entrada del
rengln.
un escn

condicin de entrada de rengln

bit .EN

bit .DN
borra los bits de estado y
borra el valor .POS
escn de la instruccin

operacin concluida

no se realiza la ejecucin

40010

Modo numrico
El modo numrico distribuye la operacin de la matriz entre un
nmero de escanes. Este modo es til cuando se trabaja con datos no
crticos en cuando a tiempo o con grandes cantidades de datos. Usted
introduce el nmero de elementos sobre los que se va a operar por
cada escn, lo que mantiene ms corto el tiempo de escn.

Publicacin 1756-RM003K-ES-P Julio 2008

331

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

La ejecucin se activa cuando la condicin de entrada del rengln


cambia de falso a verdadero. Una vez activada, la instruccin se
ejecuta cada vez que se escanea por el nmero de escanes necesarios
para completar la operacin en toda la matriz. Una vez activada, la
condicin de entrada del rengln puede cambiar repetidamente sin
interrumpir la ejecucin de la instruccin.
un escn

segundo escn

siguiente escn

16641

IMPORTANTE

Evite usar los resultados de una instruccin de archivo que


funciona en modo numrico hasta que est establecido el
bit .DN.

El siguiente diagrama muestra la relacin entre los bits de estado y la


operacin de la instruccin. Cuando concluye la ejecucin de la
instruccin, se establece el bit .DN.
el rengln es verdadero al concluir
mltiples escanes

el rengln es falso al concluir


mltiples escanes

condicin de entrada de rengln


bit .EN
bit .DN
escn de la instruccin
operacin concluida

operacin concluida

borra los bits de estado y


borra el valor .POS

332

40013

borra los bits de estado


y borra el valor .POS

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Captulo 8

Si la condicin de entrada de rengln es verdadera al concluir, los


bits .EN y .DN se establecen hasta que la condicin de entrada de
rengln se hace falsa. Cuando la condicin de entrada de rengln
cambia a falso, estos bits se borran y el valor .POS se borra.
Si la condicin de entrada de rengln es falsa al concluir, el bit .EN se
borra inmediatamente. Un escn despus de que se borra el bit .EN, el
bit .DN y el valor .POS se borran.

Modo incremental
El modo incremental manipula un elemento de la matriz cada vez que
la condicin de entrada de rengln de la instruccin cambia de falso a
verdadero.

Habilitacin de 1 instruccin
Habilitacin de 2 instruccin
Habilitacin de 3 instruccin

Habilitacin de ltima instruccin

16643

Publicacin 1756-RM003K-ES-P Julio 2008

333

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

El siguiente diagrama muestra la relacin entre los bits de estado y la


operacin de la instruccin. La ejecucin se realiza slo en un escn
en el cual la condicin de entrada del rengln cambia de falso a
verdadero. Cada vez que esto ocurre, slo se manipula un elemento
de la matriz. Si la condicin de entrada de rengln permanece
verdadera por ms de un escn, la instruccin slo se ejecuta durante
el primer escn.
un escn

condicin de entrada de rengln

bit .EN

bit .DN

40014

escn de la instruccin
operacin
concluida

borra los bits de estado


y borra el valor .POS

El bit .EN se establece cuando la condicin de entrada del rengln es


verdadera. El bit .DN se establece cuando el ltimo elemento de la
matriz ha sido manipulado. Cuando el ltimo elemento ha sido
manipulado y la condicin de entrada de rengln cambia a falso, se
borran el bit .EN, el bit .DN y el valor .POS.
La diferencia entre el modo incremental y el modo numrico a un
rgimen de un elemento por escn es:
El modo numrico con cualquier nmero de elementos por
escn requiere slo una transicin de falso a verdadero de la
condicin de entrada de rengln para comenzar la ejecucin.
La instruccin contina ejecutando el nmero especificado de
elementos en cada escn hasta concluir, independientemente
del estado de la condicin de entrada de rengln.
El modo incremental requiere que la condicin de entrada de
rengln cambie de falso a verdadero para manipular un
elemento de la matriz.

334

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Aritmtica y lgica de
archivo (FAL)

Captulo 8

La instruccin FAL realiza operaciones de copia, aritmticas, lgicas y


funciones en los datos almacenados en una matriz.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Control

CONTROL

tag

estructura de control para la


operacin

Length

DINT

inmediato

nmero de elementos en la matriz que


se manipularn

Position

DINT

inmediato

elemento actual en la matriz


el valor inicial es tpicamente 0

Mode

DINT

inmediato

cmo distribuir la operacin


seleccione INC, ALL o introduzca un
nmero

Destination

SINT

tag

tag para almacenar el resultado

SINT

inmediato

INT

tag

una expresin que consiste en tags


y/o valores inmediatos separados por
operadores

INT
DINT
REAL
Expression

DINT
REAL
Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.

Texto estructurado
El texto estructurado no cuenta con la instruccin FAL, pero usted
puede lograr los mismos resultados usando una instruccin SIZE y
una construccin FOR...DO u otra construccin de lazo.
SIZE(destination,0,length-1);
FOR position = 0 TO length DO
destination[position] := numeric_expression;
END_FOR;

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las construcciones en texto
estructurado.

Publicacin 1756-RM003K-ES-P Julio 2008

335

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Estructura CONTROL
Mnemnico

Tipo de datos

Descripcin

.EN

BOOL

El bit de habilitacin indica que la instruccin FAL est habilitada.

.DN

BOOL

El bit de efectuado se establece cuando la instruccin ha efectuado la operacin en el ltimo


elemento (.POS = .LEN).

.ER

BOOL

El bit de error se establece si la expresin genera un overflow (se establece S:V). La


instruccin detiene la ejecucin hasta que el programa borra el bit .ER. El valor .POS contiene
la posicin del elemento que caus el overflow.

.LEN

DINT

La longitud especifica el nmero de elementos de la matriz sobre el que opera la instruccin


FAL.

.POS

DINT

La posicin contiene la posicin del elemento actual al cual la instruccin obtiene acceso.

Descripcin: La instruccin FAL realiza las mismas operaciones en las matrices que
la instruccin CPT realiza en los elementos.
Los ejemplos que aparecen a partir de la pgina 342 describen cmo
usar el valor .POS para procesar una matriz. Si un subndice de la
expresin de Destination se encuentra fuera de rango, la instruccin
FAL genera un fallo mayor (tipo 4, cdigo 20).

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

336

Ocurrir un fallo mayor si

Tipo de fallo

Cdigo de fallo

el subndice est fuera de rango

20

.POS < 0 o .LEN < 0

21

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Captulo 8

Ejecucin:
Condicin

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

examine el
bit .DN

Bit .DN = 0

modo INC

se borra el bit interno

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

no

el bit .EN se borra

modo ALL

no

.LEN < 0 o
.POS < 0

fallo mayor

no

.POS = .POS + 1

.LEN = 0
no

.POS = 0

s
no

no

.POS < .LEN


s

.POS = .POS - 1

.LEN > modo


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

no

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

Publicacin 1756-RM003K-ES-P Julio 2008

337

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Condicin

Accin de lgica de escalera de rels

condicin de entrada de rengln es verdadera


s

.LEN < 0 o
.POS < 0
examinar el
bit .ER

pgina 341
fallo mayor
modo
numrico

Bit .ER = 0
no
no

bit .DN = 0

bit .ER = 1
examinar el
bit .DN

no

.LEN = 0

bit .DN = 1

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

no

modo INC

modo ALL

modo
INC

modo
ALL

pgina 340

pgina 339

comn

loop_count =
loop_count - 1

loop_count < 0

no

.POS = .POS + 1

s
evaluar la expresin

examinar S:V

no

s
el bit .ER se establece

.POS = .POS + 1

.POS = .LEN

no

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

.POS = .POS + 1

la condicin de salida de
rengln se establece como
verdadera

fin

338

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Condicin

Captulo 8

Accin de lgica de escalera de rels


modo
INC

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

bit = 1

examinar el
bit interno

.POS = .POS + 1

bit = 0

el bit interno se establece

.POS .LEN

.POS = 0

no

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

.POS = .POS - 1

el bit .DN se establece


el bit .EN se establece

comn

pgina 338

la condicin de salida de
rengln se establece como
verdadera

fin

Publicacin 1756-RM003K-ES-P Julio 2008

339

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Condicin

Accin de lgica de escalera de rels

modo
ALL

examinar el
bit .EN
bit .EN = 1

.POS = .POS + 1

bit .EN = 0

bit = 1

examinar el
bit interno
bit = 0

el bit .EN se establece

.POS .LEN

no

.POS = 0

no

loop_count = .LEN - .POS


.POS = .POS - 1

.POS = .POS - 1

el bit .DN se establece


el bit .EN se establece
comn

la condicin de salida de
rengln se establece como
verdadera

pgina 338
fin

340

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Condicin

Captulo 8

Accin de lgica de escalera de rels


modo
numrico

bit .EN = 1

examinar el
bit .EN
bit .EN = 0

.POS = .POS + 1
bit = 1

examinar el
bit interno
bit = 0

el bit interno se establece

.POS .LEN

.POS = 0
no

no

modo = .LEN

no

.POS = .POS - 1
.LEN modo
s
el bit .DN se establece
el bit .EN se establece

el bit .EN se establece


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

la condicin de salida de
rengln se establece como
verdadera

fin

modo
loop_count
no

comn

pgina 338

el bit .EN se establece


loop_count = modo

post-escn

Publicacin 1756-RM003K-ES-P Julio 2008

La condicin de salida de rengln se establece como falsa.

341

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Ejemplo 1: Una vez habilitada, la instruccin FAL copia cada elemento de


array_2 en la misma posicin dentro de array_1.
copia de matriz a matriz

Expresin:
array_2[control_2.pos]

Destino:
array_1[control_2.pos]

Ejemplo 2: Una vez habilitada, la instruccin FAL copia value_1 en las


10 primeras posiciones de la segunda dimensin de array_2.
copia de elemento a matriz

Expresin:
value_1

Destino:
array_2[0,control_2.pos]

Ejemplo 3: Cada vez que la instruccin FAL se habilita, copia el valor actual de
array_1 a value_1. La instruccin FAL usa el modo incremental; por
lo tanto, slo se copia un valor de matriz cada vez que se habilita la
instruccin. La prxima vez que se habilita la instruccin, sta
sobrescribe value_1 con el siguiente valor en array_1.
copia de matriz a elemento

Expresin:
array_1[control_1.pos]

Destino:
value_1

Ejemplo 4: Cuando se habilita, la instruccin FAL suma value_1 y value_2 y


almacena el resultado en la posicin actual de array_1.
operacin aritmtica: (elemento + elemento) a matriz

Expresin:
value_1 + value_2

342

Destino:
array_1[control_1.pos]

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Captulo 8

Ejemplo 5: Cuando se habilita, la instruccin FAL divide el valor en la posicin


actual de array_2 entre el valor de la posicin actual de array_3 y
almacena el resultado en la posicin actual de array_1.
operacin aritmtica: (matriz/matriz) a matriz

Expresin:
array_2[control_2.pos] / array_3[control_2.pos]

Destino:
array_1[control_2.pos]

Ejemplo 6: Cuando se habilita, la instruccin FAL suma el valor en la posicin


actual en array_1 y value_1, y almacena el resultado en la posicin
actual en array_3. La instruccin debe ejecutarse 10 veces para que se
manipulen array_1 y array_3 por completo.
operacin aritmtica: (matriz + elemento) a matriz

Expresin:
array_1[control_1.pos] + value_1

Destino:
array_3[control_1.pos]

Ejemplo 7: Cada vez que la instruccin FAL se habilita, suma value_1 al valor
actual de array_1 y almacena el resultado en value_2. La instruccin
FAL usa el modo incremental; por lo tanto, slo se suma un valor de
matriz a value_1 cada vez que se habilita la instruccin. La siguiente
vez que se habilita la instruccin, sta sobrescribe value_2.
operacin aritmtica: (elemento + matriz) a elemento

Expresin:
value_1 + array_1[control_1.pos]

Publicacin 1756-RM003K-ES-P Julio 2008

Destino:
value_2

343

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Ejemplo 8: Cuando se habilita, la instruccin FAL multiplica el valor actual de


array_1 por el valor actual de array_3 y almacena el resultado en
value_1. La instruccin FAL usa el modo incremental; por lo tanto,
slo una pareja de valores de matriz se multiplica cada vez que se
habilita la instruccin. La prxima vez que se habilita la instruccin,
sta sobrescribe value_1.
operacin aritmtica: (matriz matriz) a elemento

Expresin:
array_1[control_1.pos] * array_3[control_1.pos]

Destino:
value_1

Expresiones FAL
Usted programa las expresiones en las instrucciones FAL de la misma
manera que las expresiones en las instrucciones CPT. Use las
siguientes secciones para obtener informacin sobre operadores,
formato y orden de operacin vlidos que son comunes para ambas
instrucciones.

344

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Captulo 8

Operadores vlidos
Operador

Descripcin

ptimo

Operador

Descripcin

ptimo

sumar

DINT, REAL

LOG

logaritmo base 10

REAL

restar/cambiar signo

DINT, REAL

MOD

mdulo de divisin

DINT, REAL

multiplicar

DINT, REAL

NOT

DINT

dividir

DINT, REAL

complemento a nivel
de bits

**

exponente (x a la y)

DINT, REAL

OR

O a nivel de bits

DINT

ABS

valor absoluto

DINT, REAL

RAD

grados a radianes

DINT, REAL

ACS

arco coseno

REAL

SIN

seno

REAL

AND

Y a nivel de bits

DINT

SQR

raz cuadrada

DINT, REAL

ASN

arco seno

REAL

TAN

tangente

REAL

ATN

arco tangente

REAL

TOD

entero a BCD

DINT

COS

coseno

REAL

TRN

truncar

DINT, REAL

DEG

radianes a grados

DINT, REAL

XOR

O exclusivo a nivel de
bits

DINT

FRD

BCD a entero

DINT

LN

logaritmo natural

REAL

Expresiones de formato
Por cada operador que use en una expresin, usted tiene que
proporcionar uno o dos operandos (tags o valores inmediatos). Use la
siguiente tabla para formatear operadores y operandos dentro de una
expresin:
Para operadores
que operan en

Use este formato

Ejemplos

un operando

operador(operando)

ABS(tag_a)

dos operandos

operando_a operador operando_b

tag_b + 5
tag_c AND tag_d
(tag_e ** 2) MOD (tag_f /
tag_g)

Publicacin 1756-RM003K-ES-P Julio 2008

345

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Determine el orden de operacin


Las operaciones que usted escribe en la expresin son realizadas por
la instruccin en un orden prescrito, que no es necesariamente el
orden en que usted las escribe. Usted puede cambiar el orden de
operacin agrupando trminos dentro de parntesis, forzando la
instruccin para que realice una operacin dentro del parntesis antes
de otras operaciones.
Las operaciones de igual orden se realizan de izquierda a derecha.

346

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

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Bsqueda y comparacin
de archivos (FSC)

Captulo 8

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


elemento.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Control

CONTROL

tag

estructura de control para la operacin

Length

DINT

inmediato

nmero de elementos en la matriz que se


manipularn

Position

DINT

inmediato

offset en la matriz
el valor inicial es tpicamente 0

Estructura CONTROL
Mnemnico

Tipo de datos

Descripcin

.EN

BOOL

El bit de habilitacin indica que la instruccin FSC est habilitada.

.DN

BOOL

El bit de efectuado se establece cuando la instruccin ha efectuado la operacin en el ltimo


elemento (.POS = .LEN).

.ER

BOOL

El bit de error no se modifica.

.IN

BOOL

El bit de inhibicin indica que la instruccin FSC ha detectado una comparacin verdadera.
Usted debe borrar este bit para poder continuar la operacin de buscar.

.FD

BOOL

El bit de encontrado indica que la instruccin FSC ha detectado una comparacin verdadera.

.LEN

DINT

La longitud especifica el nmero de elementos en la matriz sobre el que opera la instruccin.

.POS

DINT

La posicin contiene la posicin del elemento actual al cual la instruccin obtiene acceso.

Descripcin: Cuando la instruccin FSC est habilitada y la comparacin es


verdadera, la instruccin establece el bit .FD y el bit .POS refleja la
posicin de la matriz donde la instruccin encontr la comparacin
verdadera. La instruccin establece el bit .IN para interrumpir la
bsqueda.

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

Publicacin 1756-RM003K-ES-P Julio 2008

Ocurrir un fallo mayor si

Tipo de fallo

Cdigo de fallo

.POS < 0 o .LEN < 0

21

347

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

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

examinar el
bit .DN

bit .DN = 0

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

modo INC

no

se borra el bit interno

s
el bit .EN se borra

modo ALL

no

.LEN < 0 o
.POS < 0

fallo mayor

no

.POS = .POS + 1

.LEN = 0
no

.POS = 0

s
no

no

.POS < .LEN


s

.POS = .POS - 1

.LEN > modo


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

no

s
modo = .LEN

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

pgina 341

fin

348

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Condicin

Captulo 8

Accin de lgica de escalera de rels

condicin de entrada de rengln es verdadera


.LEN < 0 o
.POS < 0
examinar el
bit .ER

pgina 341
fallo mayor
modo
numrico

bit .ER = 0
no
no

bit .DN = 0

bit .ER = 1

bit .DN = 1

examinar el
bit .IN

.LEN = 0

no

bit .IN = 0

el bit .DN se establece


el bit .EN se establece
bit .DN = 1

examinar el
bit .DN

no

modo INC

modo ALL

modo
INC

modo
ALL

pgina 340

pgina 339

comn
bit .DN = 0

loop_count =
loop_count - 1

loop_count < 0

no

.POS = .POS + 1

s
evale la comparacin

coincidencia

no

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

.POS = .POS + 1

.POS = .LEN

no

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

.POS = .POS + 1

la condicin de salida de rengln


se establece como verdadera

fin

post-escn

Publicacin 1756-RM003K-ES-P Julio 2008

La condicin de salida de rengln se establece como falsa.

349

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Ejemplo 1: Buscar una coincidencia entre dos matrices. Una vez habilitada, la
instruccin FSC compara cada uno de los 10 primeros elementos en
array_1 con los elementos correspondientes en array_2.

array_1

array_2

control_3.pos

00000000000000000000000000000000

00000000000000000000000000000000

00000000000000000000000000000000

00000000000000000000000000000000

00000000000000000000000000000000

00000000000000000000000000000000

00000000000000000000000000000000

00000000000000000000000000000000

00000000000000001111111111111111

11111111111111110000000000000000

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

350

La instruccin FSC determina que estos


elementos son diferentes. La instruccin
establece los bits .FD e .IN. El valor .POS (4)
indica la posicin de los elementos que son
diferentes. Para continuar comparando el
resto de la matriz, borre el bit .IN.

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Captulo 8

Ejemplo 2: Buscar una coincidencia en una matriz. Cuando se habilita, la


instruccin FSC compara MySearchKey con 10 elementos en array_1.

MySearchKey

11111111111111110000000000000000

Publicacin 1756-RM003K-ES-P Julio 2008

referencia

control_3.pos

00000000000000000000000000000000

00000000000000000000000000000000

00000000000000000000000000000000

00000000000000000000000000000000

11111111111111110000000000000000

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

11111111111111111111111111111111

La instruccin FSC determina que este


elemento de matriz es igual a
MySearchKey. La instruccin establece los
bits .FD e .IN. El valor .POS (4) indica la
posicin de los elementos que son iguales.
Para continuar comparando el resto de la
matriz, borre el bit .IN.

351

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Ejemplo 3: Buscar una cadena en una matriz de cadenas. Cuando se habilita, la


instruccin FSC compara los caracteres en code con 10 elementos en
code_table.

code

SAM

code_table

code_table_search.POS

AFG

BEH

HUO

SAK

SAM

FQG

CLE

CAK

DET

BWG

La instruccin FSC determina que este


elemento de la matriz es igual a code.
La instruccin establece los bits .FD e .IN.
El valor .POS (4) indica la posicin de los
elementos que son iguales. Para continuar
comparando el resto de la matriz, borre el
bit .IN.

Expresiones FSC
Usted programa las expresiones en las instrucciones FSC de la misma
manera que las expresiones en las instrucciones CMP. Use las
siguientes secciones para obtener informacin sobre operadores,
formato y orden de operacin vlidos que son comunes para ambas
instrucciones.

352

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Captulo 8

Operadores vlidos
Operador

Descripcin

ptimo

Operador

Descripcin

ptimo

sumar

DINT, REAL

DEG

radianes a grados

DINT, REAL

restar/cambiar signo

DINT, REAL

FRD

BCD a entero

DINT

multiplicar

DINT, REAL

LN

logaritmo natural

REAL

dividir

DINT, REAL

LOG

logaritmo base 10

REAL

igual que

DINT, REAL

MOD

mdulo de divisin

DINT, REAL

<

menor que

DINT, REAL

NOT

DINT

<=

menor o igual que

DINT, REAL

complemento a nivel
de bits

>

mayor que

DINT, REAL

OR

O a nivel de bits

DINT

>=

mayor o igual que

DINT, REAL

RAD

grados a radianes

DINT, REAL

<>

diferente de

DINT, REAL

SIN

seno

REAL

**

exponente (x a la y)

DINT, REAL

SQR

raz cuadrada

DINT, REAL

ABS

valor absoluto

DINT, REAL

TAN

tangente

REAL

ACS

arco coseno

REAL

TOD

entero a BCD

DINT

AND

Y a nivel de bits

DINT

TRN

truncar

DINT, REAL

ASN

arco seno

REAL

XOR

O exclusivo a nivel de
bits

DINT

ATN

arco tangente

REAL

COS

coseno

REAL

Expresiones de formato
Por cada operador que use en una expresin, usted tiene que
proporcionar uno o dos operandos (tags o valores inmediatos). Use la
siguiente tabla para formatear operadores y operandos dentro de una
expresin:
Para operadores
que operan en

Use este formato

Ejemplos

un operando

operador(operando)

ABS(tag_a)

dos operandos

operando_a operador operando_b

tag_b + 5
tag_c AND tag_d
(tag_e ** 2) MOD (tag_f /
tag_g)

Publicacin 1756-RM003K-ES-P Julio 2008

353

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Determine el orden de operacin


Las operaciones que usted escribe en la expresin son realizadas por
la instruccin en un orden prescrito, que no es necesariamente el
orden en que usted las escribe. Usted puede anular el orden de
operacin agrupando trminos dentro de parntesis, forzando a la
instruccin para que realice una operacin dentro del parntesis antes
de otras operaciones.
Las operaciones de igual orden se realizan de izquierda a derecha.

354

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

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Captulo 8

Use cadenas en una expresin


Para usar cadenas de caracteres ASCII en una expresin, siga estas
pautas:
Una expresin le permite comparar dos tags de cadena.
Usted no puede introducir caracteres ASCII directamente en la
expresin.
Slo se permiten los siguientes operadores
Operador

Descripcin

igual que

<

menor que

<=

menor o igual que

>

mayor que

>=

mayor o igual que

<>

diferente de

Las cadenas son iguales si sus caracteres coinciden.


Los caracteres ASCII permiten distinguir maysculas de
minsculas. La A mayscula ($41) es diferente a la a
minscula ($61).
Los valores hexadecimales de los caracteres determinan si una
cadena es mayor o menor que otra cadena. Para obtener el
cdigo hexadecimal de un carcter, remtase a la contraportada
de este manual.
Cuando las dos cadenas se clasifican como en un directorio
telefnico, el orden de las cadenas determina cul es mayor.

m
e
n
o
r

Publicacin 1756-RM003K-ES-P Julio 2008

m
a
y
o
r

Caracteres ASCII

Cdigos
hexadecimales

1ab

$31$61$62

1b

$31$62

$41

AB

$41$42

$42

$61

ab

$61$62

AB < B
a>B

355

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Copiar archivo (COP)


Copiar archivo sncrono
(CPS)

Las instrucciones COP y CPS copian el o los valores de Source en


Destination. Source no cambia.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source

SINT

tag

elemento inicial que se copia

INT

Importante: Los operandos Source y


Destination deben ser del mismo tipo; de lo
contrario, pueden ocurrir resultados
inesperados.

DINT
REAL
cadena
estructura
Destination

SINT

tag

el elemento inicial que va a ser sobrescrito


por Source

INT
Importante: Los operandos Source y
Destination deben ser del mismo tipo; de lo
contrario, pueden ocurrir resultados
inesperados.

DINT
REAL
cadena
estructura
Length

DINT

inmediato

nmero de elementos de destino que se


copian

tag

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

356

Los operandos son iguales que los de las instrucciones COP y CPS de
lgica de escalera de rels.

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Captulo 8

Descripcin: Durante la ejecucin de las instrucciones COP y CPS, es posible que


otras acciones del controlador puedan intentar interrumpir la
operacin de copia y cambiar los datos de origen o destino:
Si Source o Destination es
tag producido
tag consumido

Y usted desea

Entonces
seleccione

evitar que los datos cambien durante


la operacin de copia

CPS

datos de E/S
datos que otra tarea puede
sobrescribir

Notas
Las tareas que intentan interrumpir
una instruccin CPS se suspenden
hasta que haya finalizado la
instruccin.
Para calcular el tiempo de ejecucin
de la instruccin CPS, consulte el
documento ControlLogix System User
Manual, publicacin 1756-UM001.

permitir que los datos cambien


durante la operacin de copia
ninguno de los anteriores

COP
COP

El nmero de bytes copiados es:


Conteo de bytes = Length (nmero de bytes en el tipo de datos de
Destination)
ATENCIN

IMPORTANTE

Si el conteo de bytes es mayor que la longitud de Source, se copian datos


inesperados para el resto de los elementos.

Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
Las instrucciones COP y CPS operan en memoria contigua. Realizan una copia de
memoria directa byte a byte. En algunos casos, escriben ms all de la matriz en
otros miembros del tag. Esto sucede si la longitud es excesiva y el tag es de un tipo
de datos definido por el usuario.
Si el tag es

Entonces

tipo de datos definido por Si Length es demasiado grande, la instruccin escribe ms


el usuario
all del final de la matriz a otros miembros del tag. Se detiene
al final del tag. No se genera un fallo mayor.
NO es un tipo de datos
definido por el usuario

Si Length es demasiado grande, la instruccin se detiene al


final de la matriz. No se genera un fallo mayor.

Length es demasiado grande si es mayor que el nmero total de elementos en la


matriz Destination.

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo: ninguna
Publicacin 1756-RM003K-ES-P Julio 2008

357

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Ejecucin:
Condicin

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

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

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

end_address = start_address + (Length


nmero de bytes en un elemento de
destino)

end_address > fin


de matriz de
destino

end_address = fin de matriz de destino

no

source_address = Source

destination_address =
end_address

no

copiar datos en source_address a


destination_address
la condicin de salida de
rengln se establece como
verdadera
source_address = source_address + 1
fin

destination_address =
destination_address + 1

post-escn

358

La condicin de salida de rengln se establece como


falsa.

Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Captulo 8

Ejemplo 1: Tanto array_4 como array_5 son del mismo tipo de datos. Cuando se
habilita, la instruccin COP copia los primeros 10 elementos de
array_4 en los primeros 10 elementos de array_5.

Lgica de escalera de rels

Texto estructurado
COP(array_4[0],array_5[0],10);

Ejemplo 2: Cuando se habilita, la instruccin COP copia la estructura timer_1 en


el elemento 5 de array_timer. La instruccin copia slo una estructura
a un elemento de matriz.

Lgica de escalera de rels

Texto estructurado
COP(timer_1,array_timer[5],1);

Publicacin 1756-RM003K-ES-P Julio 2008

359

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Ejemplo 3: La matriz project_data (100 elementos) almacena una variedad de


valores que cambian en momentos diferentes en la aplicacin. Para
enviar una imagen completa de project_data en una instancia a
tiempo a otro controlador, la instruccin CPS copia project_data en
produced_array.
Mientras la instruccin CPS copia los datos, las actualizaciones
de E/S u otras tareas no pueden cambiar los datos.
El tag produced_array produce los datos en una red ControlNet
para el consumo por parte de otros controladores.
Para usar la misma imagen de datos (p. ej., copiar los datos de
manera sincronizada), el o los controladores consumidores usan
una instruccin CPS para copiar los datos desde el tag
consumido a otro tag para uso en la aplicacin.

Lgica de escalera de rels

Texto estructurado
CPS(project_data[0],produced_array[0],100);

Ejemplo 4: Local:0:I.Data almacena los datos de entrada para la red DeviceNet


conectada al mdulo 1756-DNB en la ranura 0. Para sincronizar las
entradas con la aplicacin, la instruccin CPS copia los datos de
entrada en input_buffer.
Mientras la instruccin CPS copia los datos, las actualizaciones
de E/S no pueden cambiar los datos.
A medida que se ejecuta la aplicacin, sta usa para sus entradas
los datos de entrada en input_buffer.

Lgica de escalera de rels

Texto estructurado
CPS(Local:0:I.Data[0],input_buffer[0],20);

360

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Captulo 8

Ejemplo 5: Este ejemplo inicializa una matriz de estructuras de temporizador.


Cuando se habilita, la instruccin MOV inicializa los valores .PRE y
.ACC del primer elemento array_timer. Una vez habilitada, la
instruccin COP copia un bloque contiguo de bytes a partir de
array_timer[0]. La longitud es nueve estructuras de temporizador.
array_timer[0]

Primero la instruccin copia los


valores de timer[0] a timer[1]

array_timer[1]

Seguidamente la instruccin copia


los valores de timer[1] a timer[2]

array_timer[2]

Seguidamente la instruccin copia


los valores de timer[2] a timer[3]

array_timer[3]

Seguidamente la instruccin copia


los valores de timer[3] a timer[4]

array_timer[4]

array_timer[9]

Finalmente, la instruccin copia los


valores de timer[9] a timer[10]

array_timer[10]

Lgica de escalera de rels

Texto estructurado
IF S:FS THEN
array_timer[0].pre := 500;
array_timer[0].acc := 0;
COP(array_timer[0],array_timer[1],10);
END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008

361

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Llenar archivo (FLL)

La instruccin FLL llena los elementos de una matriz con el valor de


Source. Source no cambia.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato:

Descripcin

Source

SINT

inmediato

elemento que se copia

INT

tag

Importante: Los operandos Source y


Destination deben ser del mismo tipo; de lo
contrario. pueden ocurrir resultados
inesperados

tag

elemento inicial que va a ser sobrescrito por


Source

DINT
REAL
Destination

SINT
INT

Importante: Los operandos Source y


Destination deben ser del mismo tipo; de lo
contrario, pueden ocurrir resultados
inesperados

DINT
REAL

El mtodo preferido para inicializar una


estructura es mediante la instruccin COP.

estructura
Length

DINT

inmediato

nmero de elementos que se llenan

Texto estructurado
El texto estructurado no cuenta con la instruccin FLL, pero usted
puede lograr los mismos resultados usando una instruccin SIZE y
una construccin FOR...DO u otra construccin de lazo.
SIZE(destination,0,length);
FOR position = 0 TO length-1 DO
destination[position] := source;
END_FOR;

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las construcciones en texto
estructurado.

362

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Captulo 8

Descripcin: El nmero de bytes llenados es:


Conteo de bytes = Length (nmero de bytes en el tipo de datos de
Destination)

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
definido por el usuario

Si Length es demasiado grande, la instruccin se detiene al


final de la matriz. No se genera un fallo mayor.

Length es demasiado grande si es mayor que el nmero total de elementos en la


matriz Destination.
Para obtener los mejores resultados, Source y Destination deben ser
del mismo tipo. Si usted desea llenar una estructura, use la instruccin
COP (vea el ejemplo 3 en la pgina 359). Si mezcla diferentes tipos de
datos para Source y Destination, los elementos de Destination se
llenan con los valores de Source convertidos.
Si Source es

Y Destination es

Source se convierte en

SINT, INT, DINT o REAL

SINT

SINT

SINT, INT, DINT o REAL

INT

INT

SINT, INT, DINT o REAL

DINT

DINT

SINT, INT, DINT o REAL

REAL

REAL

SINT

estructura

SINT (no se convierte)

INT

estructura

INT (no se convierte)

DINT

estructura

DINT (no se convierte)

REAL

estructura

REAL (no se convierte)

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

Publicacin 1756-RM003K-ES-P Julio 2008

363

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Ejecucin:
Condicin

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
end_address = start_address + (Length
nmero de bytes en un elemento de
destino)

end_address > fin


de una matriz de
destino

end_address = fin de una matriz de destino

no

source_address = Source

destination_address =
end_address

no

copiar los datos en source_address a


destination _address

destination_address =
destination_address + 1

la condicin de salida de
rengln se establece como
verdadera

fin

post-escn

364

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Captulo 8

Ejemplo: La instruccin FLL copia el valor de value_1 en dest_1


Lgica de escalera de rels

Tipo de datos de
Source (value_1)

Valor de Source
(value_1)

Tipo de datos de
Destination
(dest_1)

Valor de
Destination
(dest_1) despus
de FLL

SINT

16#80 (-128)

DINT

16#FFFF FF80 (-128)

DINT

16#1234 5678

SINT

16#78

SINT

16#01

REAL

1.0

REAL

2.0

INT

16#0002

SINT

16#01

TIMER

16#0101 0101
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
dest_1 := value _1;

Publicacin 1756-RM003K-ES-P Julio 2008

365

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Promedio de archivo (AVE)

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

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Array

SINT

tag de
matriz

hallar el promedio de los valores en esta


matriz

INT

Dimension
to vary

DINT

especificar el primer elemento del grupo de


elementos que se va a promediar

REAL

no usar CONTROL.POS en el subndice

DINT

inmediato

qu dimensin usar

(0, 1, 2)

segn el nmero de dimensiones, el orden es


array[dim_0,dim_1,dim_2]
array[dim_0,dim_1]
array[dim_0]

Destination

SINT

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


el valor inicial es tpicamente 0

Texto estructurado
El texto estructurado no cuenta con la instruccin AVE, pero usted
puede lograr los mismos resultados usando una instruccin SIZE y
una construccin FOR...DO u otra construccin de lazo.
SIZE(array,0,length);
sum := 0;
FOR position = 0 TO length-1 DO
sum := sum + array[position];
END_FOR;
destino := sum / length;

366

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Captulo 8

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las construcciones en texto
estructurado.

Estructura CONTROL
Mnemnico

Tipo de datos

Descripcin

.EN

BOOL

El bit de habilitacin indica que la instruccin AVE est habilitada.

.DN

BOOL

El bit de efectuado se establece cuando la instruccin ha realizado una operacin en el


ltimo elemento de la matriz (.POS = .LEN).

.ER

BOOL

Se establece el bit de error si la instruccin genera un overflow. La instruccin detiene la


ejecucin hasta que el programa borra el bit .ER. La posicin del elemento que caus el
overflow se almacena en el valor .POS.

.LEN

DINT

La longitud especifica el nmero de elementos en la matriz sobre el que opera la instruccin.

.POS

DINT

La posicin contiene la posicin del elemento actual al cual la instruccin obtiene acceso.

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


IMPORTANTE

Asegrese de que la longitud no haga que la instruccin exceda


la Dimension to vary especificada. Si ocurre esto, el destino
ser incorrecto.

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

Publicacin 1756-RM003K-ES-P Julio 2008

Ocurrir un fallo mayor si

Tipo de fallo

Cdigo de fallo

.POS < 0 o .LEN < 0

21

Dimension to vary no existe en la matriz


especificada

20

367

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Ejecucin:
Condicin

Accin de lgica de escalera de rels

preescn

El bit .EN se borra.


El bit .DN se borra.
El bit .ER se borra.
La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln es falsa

examinar el bit .DN

bit .DN = 0

bit .DN = 1

el bit .EN se borra


el bit .ER se borra
el bit .DN se borra
el valor .POS se borra

la condicin de salida de
rengln se establece como
falsa

fin

condicin de entrada de rengln es verdadera

La instruccin AVE calcula el promedio sumando todos los elementos especificados en


la matriz y dividiendo el resultado entre el nmero de elementos.
Internamente, la instruccin usa una instruccin FAL para calcular el promedio:
Expresin = clculo de promedio
Modo = ALL
Para obtener detalles sobre cmo se ejecuta la instruccin FAL, vea la pgina 337.

post-escn

368

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Captulo 8

Ejemplo 1: Promediar array_dint, el cual es DINT[4,5].

su

dimensin 1

d
bn

20

19

18

17

16

15

14

13

12

11

10

s
ice

dimensin 0

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

Lgica de escalera de rels

Texto estructurado
SIZE(array_dint,0,length);
sum := 0;
FOR position = 0 TO (length-1) DO
sum := sum + array_dint[position];
END_FOR;
dint_ave := sum / length;

Publicacin 1756-RM003K-ES-P Julio 2008

369

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Ejemplo 2: Promediar array_dint, el cual es DINT[4,5].

b
su

dimensin 1

nd

20

19

18

17

16

15

14

13

12

11

10

ice

dimensin 0

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

Lgica de escalera de rels

Texto estructurado
SIZE(array_dint,1,length);
sum := 0;
FOR position = 0 TO (length-1) DO
sum := sum + array_dint[position];
END_FOR;
dint_ave := sum / length;

370

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Clasificacin de archivo
(SRT)

Captulo 8

La instruccin SRT clasifica un conjunto de valores en una dimensin


(Dim to vary) de la matriz en orden ascendente.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Array

SINT

tag de
matriz

matriz que se clasifica

INT

especificar el primer elemento del grupo de


elementos que se clasifica

DINT
no use CONTROL.POS en el subndice
REAL
Dimension
to vary

DINT

inmediato

qu dimensin usar

(0, 1, 2)

segn el nmero de dimensiones, el orden


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


el valor inicial es tpicamente 0

Texto estructurado
SRT(Array,Dimtovary,
Control);

Los operandos son los mismos que para la instruccin SRT de lgica
de escalera de rels. Sin embargo, usted especifica los valores de
Length y Position al acceder a los miembros .LEN y .POS de la
estructura CONTROL, en lugar de incluir los valores en la lista de
operandos.

Estructura CONTROL
Mnemnico

Tipo de datos

Descripcin

.EN

BOOL

El bit de habilitacin indica que la instruccin SRT est habilitada.

.DN

BOOL

Se establece el bit de efectuado cuando los elementos especificados se han clasificado.

.ER

BOOL

Se establece el bit de error cuando .LEN < 0 o .POS < 0. Cualquiera de estas condiciones
tambin genera un fallo mayor.

.LEN

DINT

La longitud especifica el nmero de elementos en la matriz en que la instruccin realiza una


operacin.

.POS

DINT

La posicin contiene la posicin del elemento actual al cual la instruccin obtiene acceso.

Publicacin 1756-RM003K-ES-P Julio 2008

371

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Descripcin: La instruccin SRT clasifica un conjunto de valores en una dimensin


(Dimension to vary) de la matriz en orden ascendente.
IMPORTANTE

Usted debe probar y confirmar que la instruccin no cambie datos que usted no
desea que cambien.
La instruccin SRT realiza la operacin en la memoria de datos contiguos. En
algunos casos, la instruccin cambia datos en otros miembros del tag. Esto sucede
si la longitud es excesiva y el tag es de un tipo de datos definido por el usuario.

IMPORTANTE

Asegrese de que la longitud no haga que la instruccin exceda la Dimension to


vary especificada. Si ocurre esto, ocurrirn resultados inesperados.
sta es una instruccin transicional:
En lgica de escalera de rels, cambie la condicin de entrada
del rengln de borrado a establecido cada vez que deba
ejecutarse la instruccin.
En texto estructurado, condicione la instruccin de manera
que slo se ejecute cuando ocurra una transicin. Consulte el
Apndice C, Programacin de texto estructurado.

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

372

Ocurrir un fallo mayor si

Tipo de fallo

Cdigo de fallo

.POS < 0 o .LEN < 0

21

La dimensin que se va a variar no existe


para la matriz especificada

20

La instruccin intenta obtener acceso a los 4


datos fuera de los lmites de la matriz.

20

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Captulo 8

Ejecucin:
Condicin

Accin de lgica de escalera de rels

Accin de texto estructurado

preescn

El bit .EN se borra.

El bit .EN se borra.

El bit .DN se borra.

El bit .DN se borra.

El bit .ER se borra.

El bit .ER se borra.

La condicin de salida de rengln se establece como


falsa.
n. a.

condicin de entrada de
rengln es falsa
examinar el bit .DN

bit .DN = 0

bit .DN = 1

el bit .EN se borra


el bit .ER se borra
el bit .DN se borra
el valor .POS se borra

la condicin de salida de
rengln se establece como
falsa

fin

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

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 clasifica los elementos especificados


en la matriz en orden ascendente.

La instruccin clasifica los elementos especificados


en la matriz en orden ascendente.

post-escn

La condicin de salida de rengln se establece como


falsa.

Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008

373

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Ejemplo 1: Clasifique int _array, que es DINT[4,5].


Despus

Antes

20

19

15

20

19

18

17

16

15

14

13

12

11

10

s
ic e

17

16

14

12

11

10

13

18

es
dic

d
bn

dimensin 0

dimensin 1

bn
su

su

dimensin 1

dimensin 0

Lgica de escalera de rels

Texto estructurado
control_1.LEN := 4;
control_1.POS := 0;
SRT(int_array[0,2],0,control_1);

374

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Captulo 8

Ejemplo 2: Clasificar int _array, que es DINT[4,5].


Despus

Antes

bn

20

19

18

17

16

15

14

13

12

11

10

20

19

18

17

16

15

14

13

12

11

10

ice

e
dic

nd

dimensin 0

dimensin 1

su

b
su

dimensin 1

dimensin 0

Lgica de escalera de rels

Texto estructurado
control_1.LEN := 5;
control_1.POS := 0;
SRT(int_array[2,0],1,control_1);

Publicacin 1756-RM003K-ES-P Julio 2008

375

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Desviacin estndar de
archivo (STD)

La instruccin STD calcula la desviacin estndar de un conjunto de


valores en una dimensin de la matriz y almacena el resultado en
Destination.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Array

SINT

tag de
matriz

hallar la desviacin estndar de los valores


en esta matriz

INT
especificar el primer elemento del grupo de
elementos que se usan para calcular la
desviacin estndar

DINT
REAL

no use CONTROL.POS en el subndice


Un tag SINT o INT se convierte en un valor DINT mediante extensin de
signo.
Dimension
to vary

DINT

inmediato

qu dimensin usar

(0, 1, 2)

segn el nmero de dimensiones, el orden


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


el valor inicial es tpicamente 0

Estructura CONTROL
Mnemnico

Tipo de datos

Descripcin

.EN

BOOL

El bit de habilitacin indica que la instruccin STD est habilitada.

.DN

BOOL

Se establece el bit de efectuado cuando se completa el clculo.

.ER

BOOL

Se establece el bit de error cuando la instruccin genera un overflow. La instruccin detiene


la ejecucin hasta que el programa borra el bit .ER. La posicin del elemento que caus el
overflow se almacena en el valor .POS.

.LEN

DINT

La longitud especifica el nmero de elementos de la matriz sobre el que opera la instruccin.

.POS

DINT

La posicin contiene la posicin del elemento actual al cual la instruccin obtiene acceso.

376

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Captulo 8

Texto estructurado
El texto estructurado no cuenta con la instruccin STD, pero usted
puede lograr los mismos resultados usando una instruccin SIZE y
una construccin FOR...DO u otra construccin de lazo.
SIZE(array,0,length);
sum := 0;
FOR position = 0 TO length-1 DO
sum := sum + array[position];
END_FOR;
average := sum / length;
sum := 0;
FOR position = 0 TO length-1 DO
sum := sum + ((array[position] - average)**2);
END_FOR;
destino := SQRT(sum /(length-1));

Consulte el Apndice C, Programacin de texto estructurado para


obtener informacin sobre la sintaxis de las construcciones en texto
estructurado.

Descripcin: La desviacin estndar se calcula segn la frmula siguiente:

Desviacin estndar =

AVE

]
( start + i )

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 =

x ( start + i )

i = 1

----------------------------------------N

IMPORTANTE

Publicacin 1756-RM003K-ES-P Julio 2008

Asegrese de que Length no haga que la instruccin exceda la Dimension to vary


especificada. Si ocurre esto, el destino ser incorrecto.

377

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo:
Ocurrir un fallo mayor si

Tipo de fallo

Cdigo de fallo

.POS < 0 o .LEN < 0

21

La dimensin que se va a variar no existe


en la matriz especificada

20

Ejecucin:
Condicin

Accin de lgica de escalera de rels

preescn

El bit .EN se borra.


El bit .DN se borra.
El bit .ER se borra.
La condicin de salida de rengln se establece como falsa.

condicin de entrada de
rengln es falsa

examinar el bit .DN

bit .DN = 0

bit .DN = 1

el bit .EN se borra


el bit .ER se borra
el bit .DN se borra
el valor .POS se borra

la condicin de salida de
rengln se establece como
falsa

fin

condicin de entrada de rengln es verdadera La instruccin STD calcula la desviacin estndar de los elementos especificados.
Internamente, la instruccin usa una instruccin FAL para calcular el promedio:
Expresin = clculo de la desviacin estndar
Modo = ALL
Para obtener detalles acerca de cmo se ejecuta la instruccin FAL, vea la pgina 337.
post-escn

378

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Captulo 8

Ejemplo 1: Calcular la desviacin estndar de dint_array, que es DINT[4,5].


dimensin 1
su
di c
bn

20

19

18

17

16

15

14

13

12

11

10

es

dimensin 0

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

STD =

16 8.5 + 11 8.5 + 6 8.5 + 1 8.5 - = 6.454972


------------------------------------------------------------------------------------------------------------------------- 4 1

real_std = 6.454972

Lgica de escalera de rels

Texto estructurado
SIZE(dint_array,0,length);
sum := 0;
FOR position = 0 TO (length-1) DO
sum := sum + dint_array[position];
END_FOR;
average := sum / length;
sum := 0;
FOR position = 0 TO (length-1) DO
sum := sum + ((dint_array[position] - average)**2);
END_FOR;
real_std := SQRT(sum / (length-1));

Publicacin 1756-RM003K-ES-P Julio 2008

379

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Ejemplo 2: Calcular la desviacin estndar de dint_array, que es DINT[4,5].


dimensin 1
bn
su

20

19

18

17

16

15

14

13

12

11

10

es
dic

dimensin 0

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

STD =

20 18 + 19 18 + 18 18 + 17 18 + 16 18 - = 1.581139
---------------------------------------------------------------------------------------------------------------------------------------------------------- 5 1

real_std = 1.581139

Lgica de escalera de rels

Texto estructurado
SIZE(dint_array,1,length);
sum := 0;
FOR position = 0 TO (length-1) DO
sum := sum + dint_array[position];
END_FOR;
average := sum / length;
sum := 0;
FOR position = 0 TO (length-1) DO
sum := sum + ((dint_array[position] - average)**2);
END_FOR;
real_std := SQRT(sum / (length-1));

380

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Tamao en elementos
(SIZE)

Captulo 8

La instruccin SIZE encuentra el tamao de una dimensin de una


matriz.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source

SINT

tag de
matriz

la matriz en la cual la instruccin realizar la


operacin

inmediato
(0, 1, 2)

dimensin que se va a usar:

INT
DINT
REAL
estructura
cadena
Dimension
to Vary

Size

DINT

SINT

tag

Para el tamao de

Introduzca

primera dimensin

segunda dimensin

tercera dimensin

tag para guardar el nmero de elementos en


la dimensin especificada de la matriz.

INT
DINT
REAL

Texto estructurado
SIZE(Source,Dimtovary,Size);

Los operandos son iguales a los de la instruccin SIZE de lgica de


escalera de rels.

Descripcin: La instruccin SIZE halla el nmero de elementos (tamao) en la


dimensin designada de la matriz Source y coloca el resultado en el
operando Size.
La instruccin encuentra el tamao de una dimensin de una
matriz.
La instruccin realiza la operacin en una:
matriz
matriz en una estructura
matriz que es parte de una matriz ms grande

Indicadores de estado
aritmtico: no afectados

Publicacin 1756-RM003K-ES-P Julio 2008

381

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Condiciones de fallo: ninguna.


Ejecucin:
Condicin

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

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

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 encuentra el tamao de una


dimensin.

La instruccin encuentra el tamao de una


dimensin.

post-escn

La condicin de salida de rengln se establece como


falsa.

Ninguna.

Ejemplo 1: Encuentre el nmero de elementos en la dimensin 0 (primera


dimensin) de array_a. Almacene el tamao en array_a_size. En este
ejemplo, la dimensin 0 de array_a tiene 10 elementos.

Lgica de escalera de rels


SIZE
SIZE
Tamao
elementos
Size inenElements
Source
array_a[0]
Source
array_a[0]
255
255
Dim.
to Vary
Dim.
To Vary
00
Tamao
array_a_size
Size
array_a_size
1010

Texto estructurado
SIZE(array_a,0,array_a_size);

382

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Captulo 8

Ejemplo 2: Encuentre el nmero de elementos en el miembro DATA de string_1,


que es una cadena. Almacene el tamao en string_1_size. En este
ejemplo, el miembro DATA de string_1 tiene 82 elementos.
(La cadena usa el tipo de datos STRING predeterminado). Puesto que
cada elemento retiene 1 carcter, string_1 puede contener hasta
82 caracteres.

Lgica de escalera de rels


SIZE
SIZE
Tamao
elementos
Size in en
Elements
Source
string_1.DATA[0]
Source string_1.DATA[0]
$00
'$00'
Dim.
Vary
Dim.toTo
Vary
00
Tamao
string_1_size
Size
string_1_size
82
82

Texto estructurado
SIZE(string_1.DATA[0],0,string_1_size);

Ejemplo 3: Strings_a es una matriz de estructuras de cadenas. La instruccin SIZE


encuentra el nmero de elementos en el miembro DATA de la
estructura de cadena y almacena el tamao en data_size_a. En este
ejemplo, el miembro DATA tiene 24 elementos. (La estructura de
cadenas tiene una longitud especificada por el usuario de 24).

Lgica de escalera de rels


SIZE
SIZE
Tamao
elementos
Size inen
Elements
Source
strings_a[0].DATA[0]
Source strings_a[0].DATA[0]
$00
'$00'
Dim.
Vary
Dim.toTo
Vary
00
Tamao
data_size_a
Size
data_size_a
2424

Texto estructurado
SIZE(strings_a[0].DATA[0],0,data_size_a);

Publicacin 1756-RM003K-ES-P Julio 2008

383

Captulo 8

Instrucciones de matriz (archivo)/miscelneas (FAL, FSC, COP, CPS, FLL, AVE, SRT, STD, SIZE)

Notas:

384

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

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

Introduccin

Use las instrucciones de matriz (archivo)/desplazamiento para


modificar la ubicacin de datos dentro de matrices.

Si desea

Use esta instruccin

Cargar bits, desplazar bits y descargar bits de


una matriz de bits, bit por bit.
Cargar y descargar valores en el mismo orden.
Cargar y descargar valores en el orden
invertido.

Disponible en estos lenguajes

Vea la pgina

BSL

lgica de escalera de rels

386

BSR

lgica de escalera de rels

390

FFL

lgica de escalera de rels

394

FFU

lgica de escalera de rels

400

LFL

lgica de escalera de rels

406

LFU

lgica de escalera de rels

412

Usted puede mezclar diferentes tipos de datos, pero esto puede


causar prdida de exactitud y errores de redondeo.
Para las instrucciones de lgica de escalera de rels, los tipos de datos
que aparecen en negrita indican tipos de datos ptimos. Las
instrucciones se ejecutan ms rpidamente y requieren menos
memoria si todos los operandos de instruccin usan el mismo tipo de
datos ptimos, tpicamente DINT o REAL.

385Publicacin 1756-RM003K-ES-P Julio 2008

385

Captulo 9

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

Desplazamiento de bits a la
izquierda (BSL)

La instruccin BSL desplaza los bits especificados dentro de la matriz


una posicin hacia la izquierda.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Array

DINT

tag de
matriz

matriz que se modifica


especificar el primer elemento del grupo de
elementos
no usar CONTROL.POS en el subndice

Control

CONTROL

tag

estructura de control para la operacin

Source bit

BOOL

tag

bit que se desplaza

Length

DINT

inmediato

nmero de bits en la matriz que se desplazan

Estructura CONTROL
Mnemnico

Tipo de datos

Descripcin

.EN

BOOL

El bit de habilitacin indica que la instruccin BSL est habilitada.

.DN

BOOL

Se establece el bit de efectuado para indicar que los bits se han desplazado una posicin
hacia la izquierda.

.UL

BOOL

El bit de descarga es la salida de la instruccin. El bit .UL almacena el estado del bit que se
desplaz fuera del rango de los bits.

.ER

BOOL

Se establece el bit de error cuando .LEN < 0.

.LEN

DINT

La longitud especifica el nmero de bits de matriz que se desplazan.

Descripcin: Cuando se habilita, la instruccin descarga el bit del extremo superior


de los bits especificados al bit .UL, desplaza los bits restantes una
posicin hacia la izquierda y carga el bit de Source en el bit 0 de
Array.

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
Condiciones de fallo: ninguna

386

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 9

Ejecucin:
Condicin:

Accin de lgica de escalera de rels

preescn

El bit .EN se borra.


El bit .DN se borra.
El bit .ER se borra.
El valor .POS se borra.
La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln es falsa

El bit .EN se borra.


El bit .DN se borra.
El bit .ER se borra.
El valor .POS se borra.
La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

387

Captulo 9

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

Condicin:

Accin de lgica de escalera de rels

condicin de entrada de rengln es verdadera

examinar el bit .EN

bit .EN = 1

bit .EN = 0
el bit .EN se establece

.LEN = 0

el bit .DN se establece

no

.LEN < 0

.source bit = 1

examinar el bit de
origen

el bit .UL permanece


establecido.

el bit .ER se establece


.source bit = 0

no
el bit .UL se establece.
desplazar matriz izquierda una posicin a la
izquierda
matriz

bit .UL

el bit .DN se establece

bit de
origen

la condicin de salida de
rengln se establece como
verdadera

.POS = .LEN
fin

post-escn

388

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 9

Ejemplo 1: Cuando se habilita, la instruccin BSL comienza en el bit 0 en


array_dint[0]. La instruccin descarga array_dint[0].9 en el bit .UL,
desplaza los bits restantes y carga input_1 en array_dint[0].0. Los
valores en los bits restantes (10-31) no son vlidos.

9 8 7 6 5 4 3 2 1 0
array_dint[0] 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0
antes del
desplazamiento
estos bits se desplazan
a la izquierda

0
bit .UL

1
input_1

9 8 7 6 5 4 3 2 1 0
array_dint[0]
despus del
desplazamiento

0 1 1 1 1 0 0 0 0 1

Ejemplo 2: Cuando se habilita, la instruccin BSL comienza en el bit 0 en


array_dint[0]. La instruccin descarga array_dint[1].25 en el bit .UL,
desplaza los bits restantes y carga input_1 en array_dint[0].0. Los
valores en los bits restantes (31-26 en array_dint[1]) no son vlidos.
Observe cmo array_dint[0].31 se desplaza a travs de las palabras
hasta array_dint[1].0.

31

array_dint[0] 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0
1
estos bits se desplazan a la izquierda

31

input_1
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

estos bits se desplazan a la izquierda

bit .UL

Publicacin 1756-RM003K-ES-P Julio 2008

389

Captulo 9

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

Desplazamiento de bits a la
derecha (BSR)

La instruccin BSR desplaza los bits especificados dentro de la matriz


una posicin hacia la derecha.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Array

DINT

tag de
matriz

matriz que se modifica


especificar el elemento a partir del cual se
inicia el desplazamiento
no usar CONTROL.POS en el subndice

Control

CONTROL

tag

estructura de control para la operacin

Source bit

BOOL

tag

bit que se desplaza

Length

DINT

inmediato

nmero de bits en la matriz que se desplazan

Estructura CONTROL
Mnemnico

Tipo de datos

Descripcin

.EN

BOOL

El bit de habilitacin indica que la instruccin BSR est habilitada.

.DN

BOOL

Se establece el bit de efectuado para indicar que los bits se han desplazado una posicin
hacia la derecha.

.UL

BOOL

El bit de descarga es la salida de la instruccin. El bit .UL almacena el estado del bit que se
desplaz fuera del rango de los bits.

.ER

BOOL

Se establece el bit de error cuando .LEN < 0.

.LEN

DINT

La longitud especifica el nmero de bits de la matriz que se desplazan.

Descripcin: Cuando se habilita, la instruccin descarga el valor del bit 0 de Array


en el bit .UL, desplaza los bits restantes una posicin hacia la derecha
y carga el bit de Source en el bit de extremo superior de los bits
especificados.

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
Condiciones de fallo: ninguna

390

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 9

Ejecucin:
Condicin

Accin de lgica de escalera de rels

preescn

El bit .EN se borra.


El bit .DN se borra.
El bit .ER se borra.
El valor .POS se borra.
La condicin de salida de rengln se
establece como falsa.

condicin de entrada de rengln es falsa

El bit .EN se borra.


El bit .DN se borra.
El bit .ER se borra.
El valor .POS se borra.
La condicin de salida de rengln se
establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

391

Captulo 9

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

Condicin

Accin de lgica de escalera de rels

condicin de entrada de rengln es verdadera

examinar el bit .EN

bit .EN = 1

bit .EN = 0
el bit .EN se establece

.LEN = 0

el bit .DN se establece

no

.LEN < 0

examinar el bit de
origen

.source bit = 1

el bit .UL permanece


establecido.

el bit .ER se establece


.source bit = 0

no
el bit .UL se establece
desplazar matriz izquierda una posicin hacia
la izquierda
bit de
origen

matriz

el bit .DN se establece

bit .UL

la condicin de salida de
rengln se establece como
verdadera

.POS = .LEN
fin

post-escn

392

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 9

Ejemplo 1: Cuando se habilita, la instruccin BSR comienza en el bit 9 en


array_dint[0]. La instruccin descarga array_dint[0].0 en el bit .UL,
desplaza los bits restantes a la derecha y carga input_1 en
array_dint[0].9. Los valores en los bits restantes (10-31) no son
vlidos.

9 8 7 6 5 4 3 2 1 0
array_dint[0] 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0
antes del
desplazamiento
estos bits se desplazan
a la derecha

1
input_1

0
bit .UL

9 8 7 6 5 4 3 2 1 0
array_dint[0]
despus del
desplazamiento

1 0 0 1 1 1 1 0 0 0

Ejemplo 2: Cuando se habilita, la instruccin BSR comienza en el bit 25 en


array_dint[1]. La instruccin descarga array_dint[0].0 en el bit .UL,
desplaza los bits restantes a la derecha y carga input_1 en
array_dint[1].25. Los valores en los bits restantes (31-26 en
dint_array[1]) no son vlidos. Observe cmo array_dint[1].0 se
desplaza a travs de las palabras hasta array_dint[0].31.

31

array_dint[0] 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0
0

estos bits se desplazan a la derecha

bit .UL
31

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

estos bits se desplazan a la derecha

input_1

Publicacin 1756-RM003K-ES-P Julio 2008

393

Captulo 9

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

Carga FIFO (FFL)

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

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source

SINT

inmediato

datos que se almacenan en la FIFO

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
matriz

FIFO que se modifica

INT

especificar el primer elemento de la FIFO

DINT

no usar CONTROL.POS en el subndice

REAL
cadena
estructura
Control

CONTROL

tag

estructura de control para la operacin


generalmente se usa el mismo CONTROL que
el FFU asociado

Length

DINT

inmediato

nmero mximo de elementos que la FIFO


puede contener a la vez

Position

DINT

inmediato

la prxima ubicacin en la FIFO donde la


instruccin carga datos
el valor inicial es tpicamente 0

Si usted usa una estructura definida por el usuario como el tipo de


datos para el operando de Source o FIFO, use la misma estructura
para los dos operandos.

394

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 9

Estructura CONTROL
Mnemnico

Tipo de datos

Descripcin

.EN

BOOL

El bit de habilitacin indica que la instruccin FFL est habilitada.

.DN

BOOL

Se establece el bit de efectuado para indicar que la FIFO est llena (.POS = .LEN). El bit .DN
inhibe la carga de la FIFO hasta que .POS < .LEN.

.EM

BOOL

El bit de vaco indica que la FIFO est vaca. Si .LEN 0 o .POS < 0, los bits .EM y .DN se
establecen.

.LEN

DINT

La longitud especifica el nmero mximo de elementos que la FIFO puede contener a la vez.

.POS

DINT

La posicin identifica la ubicacin en la FIFO donde la instruccin cargar el siguiente valor.

Descripcin: Use la instruccin FFL con la instruccin FFU para almacenar y


recuperar datos en el siguiente orden: primero en entrar, primero en
salir. Cuando se usan en parejas, las instrucciones FFL y FFU
establecen un registro de desplazamiento asncrono.
Normalmente, Source y la FIFO tienen el mismo tipo de datos.
Cuando se habilita, la instruccin FFL carga el valor de Source en la
posicin de la FIFO identificada por el valor .POS. La instruccin
carga un valor cada vez que la instruccin se habilita hasta que la
FIFO est llena.

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:

Publicacin 1756-RM003K-ES-P Julio 2008

Ocurrir un fallo mayor si

Tipo de fallo

Cdigo de fallo

(elemento inicial + .POS) > tamao de la matriz


FIFO

20

395

Captulo 9

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

Ejecucin:
Condicin

Accin de lgica de escalera de rels

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

.LEN < 0

no

.POS < 0

no

el bit .EM se borra

el bit .EM est establecido

el bit .DN se borra

el bit .DN est establecido

.POS = 0

el bit .EM est establecido

no

.POS .LEN

el bit .DN est establecido

no

la condicin de salida de
rengln se establece como
falsa

fin

396

Publicacin 1756-RM003K-ES-P Julio 2008

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

Condicin

Captulo 9

Accin de lgica de escalera de rels

condicin de entrada de rengln es falsa

el bit .EN se borra

.LEN < 0

no

.POS < 0

no

el bit .EM se borra

el bit .EM est establecido

el bit .DN se borra

el bit .DN est establecido

.POS = 0

el bit .EM est establecido

no

.POS .LEN

el bit .DN est establecido

no

la condicin de salida de
rengln se establece como
falsa

fin

Publicacin 1756-RM003K-ES-P Julio 2008

397

Captulo 9

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

Condicin

Accin de lgica de escalera de rels

condicin de entrada de rengln es verdadera

examinar el
bit .EN

.EN = 0

el bit .EN se establece

.LEN < 0
no

.EN = 1

.LEN < 0

.POS < 0

no

no

.POS < 0

el bit .EM est


establecido

el bit .EM se borra

el bit .DN se borra

el bit .DN est


establecido

.POS = .POS + 1
no
el bit .EM est
establecido

el bit .EM se borra

el bit .DN est


establecido

el bit .DN se borra

.POS .LEN

el bit .DN se establece

no
.POS = 0

el bit .EM est establecido


.POS o
s
.LEN > tamao de
la matriz

no

fallo mayor

no
.POS .LEN
no

el bit .DN se establece

.POS > .LEN

.POS = .POS - 1

no

FIFO[.POS - 1] = origen

la condicin de salida de
rengln se establece como
verdadera

fin

post-escn

398

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 9

Ejemplo: Una vez habilitada, la instruccin FFL carga value_1 en la siguiente


posicin de la FIFO, la cual es array_dint[5] en este ejemplo.

antes de la carga
FIFO

despus de la carga
FIFO

00000

00000

11111

11111

22222

22222

array_dint[0]

array_dint[5]

Publicacin 1756-RM003K-ES-P Julio 2008

33333

control_1.pos = 5

33333

44444

value_1 = 55555

44444

00000

55555

00000

00000

00000

00000

00000

00000

00000

00000

control_1.pos = 6

399

Captulo 9

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

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:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

FIFO

SINT

tag de
matriz

FIFO que se modifica

INT

especificar el primer elemento de la FIFO

DINT

no usar CONTROL.POS en el subndice

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


generalmente se usa el mismo CONTROL que
el FFL asociado

Length

DINT

inmediato

nmero mximo de elementos que la FIFO


puede contener a la vez

Position

DINT

inmediato

La prxima ubicacin en la FIFO donde la


instruccin descarga datos
el valor inicial es tpicamente 0

Si usted usa una estructura definida por el usuario como el tipo de


datos para el operando FIFO o Destination, use la misma estructura
para los dos operandos.

400

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 9

Estructura CONTROL
Mnemnico

Tipo de datos

Descripcin

.EU

BOOL

El bit de habilitacin de descarga indica que la instruccin FFU est habilitada. El bit .EU se
establece para impedir una descarga falsa cuando se inicia el escn del programa.

.DN

BOOL

Se establece el bit de efectuado para indicar que la FIFO est llena (.POS = .LEN).

.EM

BOOL

El bit de vaco indica que la FIFO est vaca. Si .LEN 0 o .POS < 0, los bits .EM y .DN se
establecen.

.LEN

DINT

La longitud especifica el nmero mximo de elementos en la FIFO.

.POS

DINT

La posicin identifica el final de los datos cargados en la FIFO.

Descripcin: Use la instruccin FFU con una instruccin FFL para almacenar y
recuperar datos en el siguiente orden: primero en entrar, primero en
salir.
Una vez habilitada, la instruccin FFU descarga los datos desde el
primer elemento de la FIFO y coloca dicho valor en Destination. La
instruccin descarga un valor cada vez que la instruccin se habilita
hasta que la FIFO est vaca. Si la FIFO est vaca, FFU retorna la
cifra 0 a Destination.

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:

Publicacin 1756-RM003K-ES-P Julio 2008

Ocurrir un fallo mayor si

Tipo de fallo

Cdigo de fallo

Length > tamao de la matriz FIFO

20

401

Captulo 9

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

Ejecucin:
Condicin

Accin de lgica de escalera de rels

preescn

se establece el bit .EU para evitar una


descarga falsa cuando se inicia el escn

.LEN < 0

no

.POS < 0

no

el bit .EM se borra

el bit .EM est establecido

el bit .DN se borra

el bit .DN est establecido

.POS = 0

el bit .EM est establecido

no

.POS .LEN

el bit .DN est establecido

no

la condicin de salida de
rengln se establece como
falsa

fin

402

Publicacin 1756-RM003K-ES-P Julio 2008

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

Condicin

Captulo 9

Accin de lgica de escalera de rels

condicin de entrada de rengln es falsa

el bit .EU se borra

.LEN < 0

no

.POS < 0

no

el bit .EM se borra

el bit .EM est establecido

el bit .DN se borra

el bit .DN est establecido

.POS = 0

el bit .EM est establecido

no

.POS .LEN

el bit .DN est establecido

no

la condicin de salida de
rengln se establece como
falsa

fin

Publicacin 1756-RM003K-ES-P Julio 2008

403

Captulo 9

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

Condicin

Accin de lgica de escalera de rels

condicin de entrada de rengln es verdadera

examinar el
bit .EU

.EU = 0

el bit .EU est


establecido

.LEN < 0

.EU = 1

no

.LEN < 0

.POS < 0

no

no

.POS < 0

el bit .EM est


establecido

el bit .EM se borra

el bit .DN se borra

el bit .DN est


establecido

no
el bit .EM est
establecido

el bit .EM se borra

el bit .DN est


establecido

el bit .DN se borra

.LEN >
tamao de la
matriz

fallo mayor

no
s

.POS = 0

el bit .EM est establecido

.POS 1

no

el bit .EM est establecido

no

.POS .LEN

.POS < 1

Destination = 0

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

post-escn

404

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 9

Ejemplo: Una vez habilitada, la instruccin FFU descarga array_dint[0] en


value_2 y desplaza el resto de los elementos en array_dint.

antes de la descarga
FIFO

despus de la descarga
FIFO

00000

11111

11111

22222

22222

33333

33333

44444

44444

55555

55555

00000

control_1.pos = 5

00000

value_2 = 00000

array_dint[0]

array_dint[5]

00000

Publicacin 1756-RM003K-ES-P Julio 2008

control_1.pos = 6

00000

00000

00000

00000

00000

00000

405

Captulo 9

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

Carga LIFO (LFL)

La instruccin LFL copia el valor de Source en la LIFO.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source

SINT

inmediato

datos que se almacenan en la LIFO

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
matriz

LIFO que se modifica

INT

especificar el primer elemento de la LIFO

DINT

no usar CONTROL.POS en el subndice

REAL
cadena
estructura
Control

CONTROL

tag

estructura de control para la operacin


generalmente se usa el mismo CONTROL que
el LFU asociado

Length

DINT

inmediato

nmero mximo de elementos que la LIFO


puede contener a la vez

Position

DINT

inmediato

la siguiente ubicacin en la LIFO donde la


instruccin carga datos
el valor inicial es tpicamente 0

Si usted usa una estructura definida por el usuario como el tipo de


datos para el operando Source o LIFO, use la misma estructura para
los dos operandos.

406

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 9

Estructura CONTROL
Mnemnico

Tipo de datos

Descripcin:

.EN

BOOL

El bit de habilitacin indica que la instruccin LFL est habilitada.

.DN

BOOL

Se establece el bit de efectuado para indicar que la LIFO est llena (.POS = .LEN). El bit .DN
inhibe la carga de la LIFO hasta que .POS < .LEN.

.EM

BOOL

El bit de vaco indica que la LIFO est vaca. Si .LEN 0 o .POS < 0, los bits .EM y .DN se
establecen.

.LEN

DINT

La longitud especifica el nmero mximo de elementos que la LIFO puede contener a la vez.

.POS

DINT

La posicin identifica la ubicacin en la LIFO donde la instruccin cargar el siguiente valor.

Descripcin: Use la instruccin LFL con la instruccin LFU para almacenar y


recuperar datos en el siguiente orden: ltimo en entrar, primero en
salir. Cuando se usan en parejas, las instrucciones LFL y LFU
establecen un registro de desplazamiento asncrono.
Normalmente, Source y LIFO tienen el mismo tipo de datos.
Cuando se habilita, la instruccin LFL carga el valor de Source en la
posicin en la LIFO identificada por el valor .POS. La instruccin
carga un valor cada vez que la instruccin se habilita hasta que la
LIFO est llena.

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:

Publicacin 1756-RM003K-ES-P Julio 2008

Ocurrir un fallo mayor si

Tipo de fallo

Cdigo de fallo

(elemento inicial + .POS) > tamao de la matriz


LIFO

20

407

Captulo 9

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

Ejecucin:
Condicin:

Accin de lgica de escalera de rels

preescn

se establece el bit .EN para evitar una


carga falsa cuando se inicia el escn

.LEN < 0

no

.POS < 0

no

el bit .EM se borra

el bit .EM est establecido

el bit .DN se borra

el bit .DN est establecido

.POS = 0

el bit .EM est establecido

no

.POS .LEN

el bit .DN est establecido

no

la condicin de salida de
rengln se establece como
falsa

fin

408

Publicacin 1756-RM003K-ES-P Julio 2008

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

Condicin:

Captulo 9

Accin de lgica de escalera de rels

condicin de entrada de rengln es falsa

el bit .EN se borra

.LEN < 0

no

.POS < 0

no

el bit .EM se borra

el bit .EM est establecido

el bit .DN se borra

el bit .DN est establecido

.POS = 0

el bit .EM est establecido

no

.POS .LEN

el bit .DN est establecido

no

la condicin de salida de
rengln se establece como
falsa

fin

Publicacin 1756-RM003K-ES-P Julio 2008

409

Captulo 9

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

Condicin:

Accin de lgica de escalera de rels

condicin de entrada de rengln es verdadera

examinar el
bit .EN

.EN = 0

el bit .EN se
establece

.LEN < 0
no

.EN = 1

.LEN < 0

.POS < 0

no

no

.POS < 0

el bit .EM est


establecido

el bit .EM se borra

el bit .DN se borra

el bit .DN est


establecido

.POS = .POS + 1
no
el bit .EM est
establecido

el bit .EM se borra

el bit .DN est


establecido

el bit .DN se borra

.POS .LEN

el bit .DN se establece

no
.POS = 0

el bit .EM est establecido


.POS o
s
.LEN > tamao de
la matriz

no

fallo mayor

no
.POS .LEN
no

el bit .DN se establece

.POS > .LEN

.POS = .POS - 1

no

LIFO[.POS - 1] = origen

la condicin de salida de
rengln se establece como
verdadera

fin

post-escn

410

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 9

Ejemplo: Una vez habilitada, la instruccin LFL carga value_1 en la prxima


posicin en la LIFO, la cual es array_dint[5] en este ejemplo.

antes de la carga
LIFO

despus de la carga
LIFO

00000

00000

11111

11111

22222

22222

array_dint[0]

array_dint[5]

Publicacin 1756-RM003K-ES-P Julio 2008

33333

control_1.pos = 5

33333

44444

value_1 = 55555

44444

00000

55555

00000

00000

00000

00000

00000

00000

00000

00000

control_1.pos = 6

411

Captulo 9

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

Descarga LIFO (LFU)

La instruccin LFU descarga el valor en .POS de la LIFO y almacena 0


en ese lugar.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

LIFO

SINT

tag de
matriz

LIFO que se modifica

INT

especificar el primer elemento de la LIFO

DINT

no usar CONTROL.POS en el subndice

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


generalmente se usa el mismo CONTROL que
el LFL asociado

Length

DINT

inmediato

nmero mximo de elementos que la LIFO


puede contener a la vez

Position

DINT

inmediato

La prxima ubicacin en la LIFO donde la


instruccin descarga datos
el valor inicial es tpicamente 0

Si usted usa una estructura definida por el usuario como el tipo de


datos para el operando LIFO o Destination, use la misma estructura
para los dos operandos.

412

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 9

Estructura CONTROL
Mnemnico

Tipo de datos:

Descripcin

.EU

BOOL

El bit de habilitacin de descarga indica que la instruccin LFU est habilitada. El bit .EU se
establece para impedir una descarga falsa cuando se inicia el escn del programa.

.DN

BOOL

Se establece el bit de efectuado para indicar que la LIFO est llena (.POS = .LEN).

.EM

BOOL

El bit de vaco indica que la LIFO est vaca. Si .LEN 0 o .POS < 0, los bits .EM y .DN se
establecen.

.LEN

DINT

La longitud especifica el nmero mximo de elementos que la LIFO puede contener a la vez.

.POS

DINT

La posicin identifica el final de los datos cargados en la LIFO.

Descripcin: Use la instruccin LFU con la instruccin LFL para almacenar y


recuperar datos en el siguiente orden: ltimo en entrar, primero en
salir.
Una vez habilitada, la instruccin LFU descarga el valor en .POS de la
LIFO y coloca dicho valor en Destination. La instruccin descarga un
valor y lo reemplaza por 0 cada vez que la instruccin se habilita
hasta que la LIFO est vaca. Si la LIFO est vaca, LFU retorna la
cifra 0 a Destination.

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:

Publicacin 1756-RM003K-ES-P Julio 2008

Ocurrir un fallo mayor si

Tipo de fallo

Cdigo de fallo

Length > tamao de la matriz LIFO

20

413

Captulo 9

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

Ejecucin:
Condicin

Accin de lgica de escalera de rels:

preescn

se establece el bit .EU para evitar una


descarga falsa cuando se inicia el escn.

.LEN < 0

no

.POS < 0

no

el bit .EM se borra

el bit .EM est establecido

el bit .DN se borra

el bit .DN est establecido

.POS = 0

el bit .EM est establecido

no

.POS .LEN

el bit .DN est establecido

no

la condicin de salida de
rengln se establece como
falsa

fin

414

Publicacin 1756-RM003K-ES-P Julio 2008

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

Condicin

Captulo 9

Accin de lgica de escalera de rels:

condicin de entrada de rengln es falsa

el bit .EU se borra

.LEN < 0

no

.POS < 0

no

el bit .EM se borra

el bit .EM est establecido

el bit .DN se borra

el bit .DN est establecido

.POS = 0

el bit .EM est establecido

no

.POS .LEN

el bit .DN est establecido

no

la condicin de salida de
rengln se establece como
falsa

fin

Publicacin 1756-RM003K-ES-P Julio 2008

415

Captulo 9

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

Condicin

Accin de lgica de escalera de rels:

condicin de entrada de rengln es verdadera

examinar el
bit .EU

.EU = 0

el bit .EU est


establecido

.LEN < 0
no

.EU = 1

.LEN < 0

.POS < 0

no

no

.POS < 0

el bit .EM est


establecido

el bit .EM se borra

el bit .DN se borra

el bit .DN est


establecido

no
el bit .EM est
establecido

el bit .EM se borra

el bit .DN est


establecido

el bit .DN se borra

.POS 1

el bit .EM est establecido

no

.POS = 0

el bit .EM est establecido

no

.POS .LEN

.POS < 1

Destination = 0

no

.POS > .LEN

.POS = .LEN

el bit .DN se establece


no

no
.POS = .POS -1

.LEN >
tamao de la
matriz

fallo mayor

no
Destination = LIFO[control.POS]
LIFO[control.POS) = 0

la condicin de salida de
rengln se establece como
verdadera

fin

post-escn

416

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 9

Ejemplo: Una vez habilitada, la instruccin LFU descarga array_dint[5] en


value_2.

antes de la descarga
LIFO

despus de la descarga
LIFO

00000

00000

11111

11111

22222

22222

33333

33333

44444

44444

55555

00000

control_1.pos = 5

00000

value_2 = 55555

array_dint[0]

array_dint[5]

00000

Publicacin 1756-RM003K-ES-P Julio 2008

control_1.pos = 6

00000

00000

00000

00000

00000

00000

417

Captulo 9

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

Notas:

418

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

10

Instrucciones de secuenciador
(SQI, SQO, SQL)

Introduccin
Si desea

No se toma ninguna accin. Las instrucciones de secuenciador


monitorean operaciones uniformes y repetibles.
Use esta instruccin

Disponible en estos lenguajes

Vea la pgina

Detectar cundo ha concluido un paso

SQI

lgica de escalera de rels

420

Establecer condiciones de salida para el


siguiente paso

SQO

lgica de escalera de rels

424

Cargar condiciones de referencia en matrices


de secuenciador

SQL

lgica de escalera de rels

428

Para las instrucciones de lgica de escalera de rels, los tipos de datos


que aparecen en letras negritas indican tipos de datos ptimos. Las
instrucciones se ejecutan ms rpidamente y requieren menos
memoria si todos los operandos de instruccin usan el mismo tipo de
datos ptimos, tpicamente DINT o REAL.

419Publicacin 1756-RM003K-ES-P Julio 2008

419

Captulo 10

Instrucciones de secuenciador (SQI, SQO, SQL)

Secuenciador de entrada
(SQI)

La instruccin SQI detecta cundo ha concluido un paso en una


pareja de instrucciones de secuencia SQO/SQI.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Array

DINT

tag de
matriz

matriz de secuenciador
especifica el primer elemento de la matriz de
secuenciador
no use CONTROL.POS en el subndice

Mask

SINT

tag

INT

inmediato

qu bits se bloquean o se pasan

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


normalmente se usa el mismo CONTROL que
para las instrucciones SQO y SQL

Length

DINT

inmediato

nmero de elementos en la matriz (tabla de


secuenciador) que se va a comparar

Position

DINT

inmediato

posicin actual en la matriz


el valor inicial es tpicamente 0

Estructura CONTROL
Mnemnico

Tipo de datos

Descripcin

.ER

BOOL

El bit de error se establece cuando .LEN 0, .POS < 0, o .POS > .LEN.

.LEN

DINT

La longitud especifica el nmero de pasos en la matriz de secuenciador.

.POS

DINT

La posicin identifica el elemento que la instruccin est comparando actualmente.

420

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de secuenciador (SQI, SQO, SQL)

Captulo 10

Descripcin: Cuando se habilita, la instruccin SQI compara un elemento fuente


(Source), a travs de una mscara (Mask), a un elemento de matriz
(Array) para determinar su equivalencia.
Normalmente se usa la misma estructura de CONTROL que para las
instrucciones SQO y SQL
La instruccin SQI realiza la operacin en memoria contigua.

Introduzca un valor de mscara inmediato


Cuando usted introduce una mscara, el software de programacin
cambia de manera predeterminada a valores decimales. Si desea
introducir una mscara usando otro formato, preceda el valor con el
prefijo correcto.
Prefijo:

Descripcin

16#

hexadecimal
por ejemplo; 16#0F0F

8#

octal
por ejemplo; 8#16

2#

binario
por ejemplo; 2#00110011

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

Publicacin 1756-RM003K-ES-P Julio 2008

421

Captulo 10

Instrucciones de secuenciador (SQI, SQO, SQL)

Ejecucin:
Condicin:

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

.LEN 0
.POS < 0
o
.POS > .LEN

no

el bit .ER se borra

s
el bit .ER se establece

no

Source
enmascarada =
Array[.POS]
enmascarada
s

la condicin de salida de
rengln se establece como
verdadera

la condicin de salida de
rengln se establece como
falsa

fin

post-escn

422

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de secuenciador (SQI, SQO, SQL)

Captulo 10

Ejemplo: Cuando se habilita, la instruccin SQI pasa el value_2 a travs de la


mscara para determinar si el resultado es igual al elemento actual en
array_dint. La comparacin enmascarada es verdadera; por lo tanto,
la condicin de salida de rengln se hace verdadera.

Operando SQI

Ejemplo de valores (usando DINT mostrados en binario):

Source

xxxxxxxx xxxxxxxx xxxx0101 xxxx1010

Mask

00000000 00000000 00001111 00001111

Array

xxxxxxxx xxxxxxxx xxxx0101 xxxx1010

Un nmero 0 en la mscara significa que el bit no se compara


(designado por xxxx en este ejemplo).

Use SQI sin SQO


Si usted usa la instruccin SQI sin una instruccin SQO emparejada,
tiene que incrementar externamente la matriz de secuenciador.
La instruccin SQI compara el valor de fuente. La instruccin ADD
incrementa la matriz de secuenciador. GRT determin si otro valor
est disponible para verificacin en la matriz de secuenciador. La
instruccin MOV restablece el valor de posicin despus de pasar
paso a paso completamente por la matriz de secuenciador una vez.

Publicacin 1756-RM003K-ES-P Julio 2008

423

Captulo 10

Instrucciones de secuenciador (SQI, SQO, SQL)

Secuenciador de salida
(SQO)

La instruccin SQO establece condiciones de salida para el siguiente


paso de una pareja de instrucciones SQO/SQI de secuencia.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Array

DINT

tag de matriz matriz de secuenciador


especifica el primer elemento de la matriz
de secuenciador
no use CONTROL.POS en el subndice

Mask

SINT

tag

INT

inmediato

qu bits se bloquean o se pasan

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


normalmente, se usa el mismo CONTROL
que para las instrucciones SQI y SQL

Length

DINT

inmediato

nmero de elementos en la matriz (tabla de


secuenciador) que se va a establecer como
salida

Position

DINT

inmediato

posicin actual en la matriz


el valor inicial es tpicamente 0

Estructura CONTROL
Mnemnico

Tipo de datos

Descripcin

.EN

BOOL

El bit de habilitacin indica que la instruccin SQO est habilitada.

.DN

BOOL

El bit de efectuado se establece cuando todos los elementos especificados se han


transferido a Destination.

.ER

BOOL

El bit de error se establece cuando .LEN 0, .POS < 0, o .POS > .LEN.

.LEN

DINT

La longitud especifica el nmero de pasos en la matriz de secuenciador.

.POS

DINT

La posicin identifica el elemento que el controlador est manipulando actualmente.

424

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de secuenciador (SQI, SQO, SQL)

Captulo 10

Descripcin: Cuando se habilita, la instruccin SQO incrementa la posicin,


transfiere los datos en la posicin a travs de la mscara (Mask) y
almacena el resultado en Destination. Si .POS > .LEN, la instruccin da
la vuelta hasta el comienzo de la matriz de secuenciador y contina
con .POS = 1.
Normalmente, se usa la misma estructura de CONTROL que para las
instrucciones SQI y SQL.
La instruccin SQO realiza la operacin en memoria contigua.

Introduzca un valor de mscara inmediato


Cuando usted introduce una mscara, el software de programacin
cambia de manera predeterminada a valores decimales. Si desea
introducir una mscara usando otro formato, preceda el valor con el
prefijo correcto.
Prefijo

Descripcin

16#

hexadecimal
por ejemplo; 16#0F0F

8#

octal
por ejemplo; 8#16

2#

binario
por ejemplo; 2#00110011

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

Accin de lgica de escalera de rels

preescn

El bit .EN se establece para impedir una carga falsa cuando se inicia el escn del
programa.
La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln es falsa

El bit .EN se borra.


La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

425

Captulo 10

Instrucciones de secuenciador (SQI, SQO, SQL)

Condicin

Accin de lgica de escalera de rels

condicin de entrada de rengln es verdadera

.LEN 0 o
.POS < 0

no

examine el
bit .EN

.EN = 0

el bit .EN se establece


el bit .ER se borra
el bit .DN se establece

.EN = 1

.POS = .LEN

no

.POS .LEN

.POS = 1

no

.POS = .POS + 1

el bit .DN se establece

el valor
.POS retorna al
valor inicial

ir a
error

no

.POS = .LEN

el bit .DN se establece

no

.POS > .LEN

no

error

el bit .ER se establece

Destination = (Destination AND (NOT(Mask)))


OR (Array[control.POS] AND Mask)

la condicin de salida de rengln


se establece como verdadera

fin

post-escn

426

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de secuenciador (SQI, SQO, SQL)

Captulo 10

Ejemplo: Cuando se habilita, la instruccin SQO incrementa la posicin, pasa


los datos en esa posicin en array_dint a travs de la mscara y
almacena el resultado en value_1.

Operando SQO

Ejemplo de valores (usando INT mostrados en binario):

Array

xxxxxxxx xxxxxxxx xxxx0101 xxxx1010

Mask

00000000 00000000 00001111 00001111

Destination

xxxxxxxx xxxxxxxx xxxx0101 xxxx1010

Un nmero 0 en la mscara significa que el bit no se compara


(designado por xxxx en este ejemplo).

Uso de SQI con SQO


Si usted empareja una instruccin SQI con una instruccin SQO,
asegrese de que ambas instrucciones usen los mismos valores de
Control, Length y Position.

Restablecimiento de la posicin de SQO


Cada vez que el controlador cambia del modo de programacin al
modo de marcha, la instruccin SQO borra (inicializa) el valor .POS.
Para restablecer .POS al valor de inicializacin (.POS = 0), use una
instruccin RES a fin de borrar el valor de posicin. Este ejemplo usa
el estado del bit de primer escn para borrar el valor .POS.

Publicacin 1756-RM003K-ES-P Julio 2008

427

Captulo 10

Instrucciones de secuenciador (SQI, SQO, SQL)

Carga de secuenciador
(SQL)

La instruccin SQL carga condiciones de referencia en una matriz de


secuenciador.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Array

DINT

tag de matriz matriz de secuenciador


especifica el primer elemento de la matriz
de secuenciador
no use CONTROL.POS en el subndice

Source

SINT

tag

INT

inmediato

datos de entrada que se van a cargar en la


matriz de secuenciador

DINT
Un tag SINT o INT se convierte en un valor DINT mediante la extensin con
signo.
Control

CONTROL

tag

estructura de control para la operacin


normalmente, se usa el mismo CONTROL
que para las instrucciones SQI y SQO

Length

DINT

inmediato

nmero de elementos en la matriz (tabla de


secuenciador) que se va a cargar

Position

DINT

inmediato

posicin actual en la matriz


el valor inicial es tpicamente 0

Estructura CONTROL
Mnemnico

Tipo de datos

Descripcin

.EN

BOOL

El bit de habilitacin indica que la instruccin SQL est habilitada.

.DN

BOOL

El bit de efectuado se establece cuando todos los elementos especificados se han cargado
en la matriz.

.ER

BOOL

El bit de error se establece cuando .LEN 0, .POS < 0, o .POS > .LEN.

.LEN

DINT

La longitud especifica el nmero de pasos en la matriz de secuenciador.

.POS

DINT

La posicin identifica el elemento que el controlador est manipulando actualmente.

428

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de secuenciador (SQI, SQO, SQL)

Captulo 10

Descripcin: Cuando se habilita, la instruccin SQL incremente la siguiente


posicin en la matriz de secuenciador y carga el valor de Source en
dicha posicin. El bit .DN se establece, o si .POS .LEN, la instruccin
establece .POS=1.
Normalmente, se usa la misma estructura de CONTROL que para las
instrucciones SQI y SQO.

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:
Ocurrir un fallo mayor si

Tipo de fallo

Cdigo de fallo

Longitud > tamao de la matriz

20

Ejecucin:
Condicin

Accin de lgica de escalera de rels

preescn

El bit .EN se establece para impedir una carga falsa cuando se inicia el escn del
programa.
La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln es falsa

El bit .EN se borra.


La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

429

Captulo 10

Instrucciones de secuenciador (SQI, SQO, SQL)

Condicin

Accin de lgica de escalera de rels

condicin de entrada de rengln es verdadera

.LEN 0 o
.POS < 0

no

examine el
bit .EN

.EN = 0

el bit .EN se establece


el bit .ER se borra
el bit .DN se establece

.POS = .LEN

.EN = 1

no

.POS .LEN

.POS = 1

no

.POS = .POS + 1

el bit .DN se establece

el valor
.POS retorna al
valor inicial

ir a
error

no

.POS = .LEN

el bit .DN se establece

no

.POS > .LEN

no

error

.LEN >
tamao de la
matriz

no

el bit .ER se establece

fallo mayor

Array[control.POS] = Source

la condicin de salida de
rengln se establece como
verdadera

fin

post-escn

430

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de secuenciador (SQI, SQO, SQL)

Captulo 10

Ejemplo: Una vez habilitada, la instruccin SQL carga value_3 en la prxima


posicin en la matriz de secuenciador la cual es array_dint[5] en este
ejemplo.

antes de la carga

despus de la carga

00000

00000

11111

11111

22222

22222

array_dint[0]

array_dint[5]

Publicacin 1756-RM003K-ES-P Julio 2008

33333

control_1.pos = 5

33333

44444

value_3 = 55555

44444

00000

55555

00000

00000

00000

00000

00000

00000

00000

00000

control_1.pos = 6

431

Captulo 10

Instrucciones de secuenciador (SQI, SQO, SQL)

Notas:

432

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

11

Instrucciones de control de programa


(JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI,
NOP, EOT, SFP, SFR, EVENT)

Introduccin

Use las instrucciones de control de programa para cambiar el flujo de


la lgica.

Si desea

Use esta instruccin

Disponible en estos lenguajes

Vea la pgina

Saltarse una seccin de lgica que no siempre


necesita ejecutarse.

JMP
LBL

lgica de escalera de rels

434

Saltar a una rutina separada, pasar datos a la


rutina, ejecutar la rutina y retornar resultados.

JSR
SBR
RET

lgica de escalera de rels

436

bloque de funciones
texto estructurado

Saltar a una rutina externa (controlador


SoftLogix5800 solamente)

JXR

lgica de escalera de rels

447

Marcar un fin temporal que detiene la


ejecucin de la rutina.

TND

lgica de escalera de rels

450

Inhabilitar todos los renglones en una seccin


de lgica.

MCR

lgica de escalera de rels

452

Inhabilitar tareas de usuario.

UID

lgica de escalera de rels

454

texto estructurado

texto estructurado
Habilitar tareas de usuario.

UIE

lgica de escalera de rels

454

texto estructurado
Inhabilitar un rengln.

AFI

lgica de escalera de rels

456

Insertar un indicador de posicin en la lgica.

NOP

lgica de escalera de rels

457

Finalizar una transicin para un diagrama de


funcin secuencial

EOT

lgica de escalera de rels

458

Poner en pausa un diagrama de funcin


secuencial

SFP

Restablecer un diagrama de funcin secuencial

SFR

texto estructurado
lgica de escalera de rels

460

texto estructurado
lgica de escalera de rels

462

texto estructurado
Activar la ejecucin de una tarea de evento

EVENT

lgica de escalera de rels

464

texto estructurado

433Publicacin 1756-RM003K-ES-P Julio 2008

433

Captulo 11

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Saltar a etiqueta (JMP)


Etiqueta (LBL)

Las instrucciones JMP y LBL saltan porciones de la lgica de escalera.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

nombre de
etiqueta

introduzca un nombre para la instruccin LBL


asociada

nombre de
etiqueta

la ejecucin salta a la instruccin LBL con el


nombre de etiqueta al cual se hizo referencia

instruccin JMP
Nombre de
etiqueta
instruccin LBL
Nombre de
etiqueta

Descripcin: Cuando se habilita, la instruccin JMP salta a la instruccin LBL


referenciada y el controlador contina la ejecucin desde all. Cuando
se inhabilita, la instruccin JMP no afecta la ejecucin de la lgica de
escalera.
La instruccin JMP puede mover la ejecucin de la lgica de escalera
hacia adelante o hacia atrs. Saltar hacia adelante a una etiqueta
ahorra tiempo de escn del programa al omitir un segmento de lgica
hasta que ste sea necesario. Los saltos hacia atrs permiten al
controlador repetir iteraciones de lgica.
Abstngase de saltar hacia atrs un nmero excesivo de veces. El
temporizador de control (watchdog) podra sobrepasar el tiempo de
espera porque el controlador nunca llegara al final de la lgica, lo
cual hara fallar al controlador.

ATENCIN

La lgica saltada no se escanea. Coloque la lgica crtica fuera


de la zona saltada.

La instruccin LBL es el objetivo de la instruccin JMP que tiene el


mismo nombre de etiqueta. Asegrese de que la instruccin LBL
sea la primera instruccin en su rengln.
Un nombre de etiqueta debe ser nico dentro de una rutina.
El nombre puede:
tener hasta 40 caracteres
contener letras, nmeros y caracteres de subrayado (_)

434

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Captulo 11

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ocurrir un fallo mayor si

Tipo de fallo

Cdigo de fallo

la etiqueta no existe

42

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


La ejecucin salta al rengln que contiene la instruccin LBL con el nombre de etiqueta
referenciado.

post-escn

La condicin de salida de rengln se establece como falsa.

Ejemplo: Cuando la instruccin JMP se habilita, la ejecucin salta sobre


renglones sucesivos de lgica hasta llegar al rengln que contiene la
instruccin LBL con label_20.

[otros renglones de cdigo]

Publicacin 1756-RM003K-ES-P Julio 2008

435

Captulo 11

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Salto a subrutina (JSR)


Subrutina (SBR) Retorno
(RET)

La instruccin JSR salta la ejecucin a una rutina diferente. Las


instrucciones SBR y RET son instrucciones opcionales que
intercambian datos con la instruccin JSR.

Operandos de JSR:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Nombre de
la rutina

ROUTINE

nombre

rutina a ejecutar (es decir, subrutina)

Parmetro
de entrada

BOOL

inmediato

datos de esta rutina que desea copiar a un


tag en la subrutina

SINT

tag

INT

tag de
matriz

DINT

Los parmetros de entrada son


opcionales.
Introduzca mltiples parmetros de
entrada, si es necesario.

REAL
estructura
Parmetro
de retorno

BOOL

tag

SINT

tag de
matriz

el tag en esta rutina al cual desea copiar un


resultado de la subrutina

INT

Los parmetros de retorno son


opcionales.

DINT

Introduzca mltiples parmetros de


retorno, si es necesario.

REAL
estructura

436

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Captulo 11

Operandos de JSR (cont.):


Texto estructurado
JSR(RoutineName,InputCount,
InputPar,ReturnPar);

Operando

Tipo

Formato

Descripcin

Nombre de
la rutina

ROUTINE

nombre

rutina a ejecutar (es decir, subrutina)

Conteo de
entradas

SINT

inmediato

nmero de parmetros de entrada

BOOL

inmediato

datos de esta rutina que desea copiar a un


tag en la subrutina

SINT

tag

INT

tag de
matriz

INT
DINT
REAL
Parmetro
de entrada

Los parmetros de entrada son


opcionales.
Introduzca mltiples parmetros de
entrada, si es necesario.

DINT
REAL
estructura
Parmetro
de retorno

BOOL

tag

SINT

tag de
matriz

el tag en esta rutina al cual desea copiar un


resultado de la subrutina

INT

Los parmetros de retorno son


opcionales.

DINT

Introduzca mltiples parmetros de


retorno, si es necesario.

REAL
estructura

Bloque de funciones
Parmetros de
entrada

Parmetros de
retorno

Los operandos son iguales a los de la instruccin JSR de lgica de


escalera de rels.

Publicacin 1756-RM003K-ES-P Julio 2008

437

Captulo 11

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Para cada parmetro en una instruccin SBR o RET, use el


mismo tipo de datos (inclusive las dimensiones de la matriz)
que el parmetro correspondiente en la instruccin JSR. El uso
de tipos de datos diferentes puede producir resultados
inesperados.

ATENCIN

Operandos de SBR: La instruccin SBR debe ser la primera instruccin en una lgica de
escalera de rels o rutina de texto estructurado.

Lgica de escalera de rels


Operando

Tipo

Formato

Descripcin

Parmetro
de entrada

BOOL

tag

SINT

tag de
matriz

el tag en esta rutina al cual desea copiar el


parmetro de entrada correspondiente
proveniente de la instruccin JSR.

INT
DINT
REAL
estructura
SBR(InputPar);

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

Bloque de funciones
Parmetros

Los operandos son iguales a los de la instruccin SBR de lgica de


escalera de rels.

438

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Captulo 11

Operandos de RET:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Parmetro
de retorno

BOOL

inmediato

SINT

tag

datos de esta rutina que usted desea copiar


al parmetro de retorno correspondiente en
la instruccin JSR.

INT

tag de
matriz

DINT
REAL
estructura
RET(ReturnPar);

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

Bloque de funciones
Parmetros

Los operandos son iguales a los de la instruccin RET de lgica de


escalera de rels.

Descripcin: La instruccin JSR inicia la ejecucin de la rutina especificada, la cual


se conoce como subrutina:
La subrutina se ejecuta una vez.
Despus de que se ejecuta la subrutina, la ejecucin de la lgica
regresa a la rutina que contiene la instruccin JSR.

Publicacin 1756-RM003K-ES-P Julio 2008

439

Captulo 11

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Para programar un salto a una subrutina, siga estas pautas:


IMPORTANTE

No use una instruccin JSR para llamar (ejecutar) la rutina


principal.
Usted puede colocar una instruccin JSR en la
rutina principal o cualquier otra rutina.
Si usted usa una instruccin JSR para llamar a la
rutina principal y posteriormente coloca una
instruccin RET en la rutina principal, se produce
un fallo mayor (tipo 4, cdigo 31).

El diagrama siguiente ilustra cmo funcionan las instrucciones.


Rutina que origina la llamada

SBR

Subrutina

1. Si la instruccin JSR tiene un


parmetro de entrada, introduzca una
instruccin SBR.

SBR
JSR

JSR

1. Si desea copiar datos a un tag en la


subrutina, introduzca un parmetro de
entrada.

RET

2. Si desea copiar un resultado de la


subrutina a un tag en esta rutina,
introduzca un parmetro de retorno.

RET

3. Introduzca la cantidad necesaria de


parmetros de entrada y retorno.

2. Coloque la instruccin SBR como la


primera instruccin en la rutina.
3. Para cada parmetro de entrada en la
instruccin JSR, introduzca el tag en
el cual desea copiar los datos.
42974

RET
1. Si la instruccin JSR tiene un parmetro de retorno, introduzca
una instruccin RET.
2. Coloque la instruccin RET como la ltima instruccin en la
rutina.
3. Para cada parmetro de retorno en la instruccin JSR,
introduzca un parmetro de retorno para enviar la instruccin
JSR.
4. En una rutina de lgica de escalera, coloque instrucciones RET
adicionales para salir de la subrutina con base en diferentes
condiciones de entrada, si es necesario. (Las rutinas de bloque
de funciones slo permiten una instruccin RET).

440

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Captulo 11

No hay restricciones, excepto la memoria del controlador, para el


nmero de rutinas anidadas que pueden existir ni para el nmero de
parmetros que se pasan o retornan.
nivel 1

nivel 2

nivel 3

subrutina action_1

subrutina action_2

subrutina action_3

rutina principal
SBR

action_1
JSR

SBR

SBR

action_2
JSR

action_3
JSR

RET

RET

RET

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo:
Ocurrir un fallo mayor si

Tipo de fallo

Cdigo de fallo

la instruccin JSR tiene menos parmetros de entrada que la instruccin SBR

31

la instruccin JSR salta a una rutina de fallo

4 o proporcionado por 0 o proporcionado por


el usuario
el usuario

la instruccin RET tiene menos parmetros de retorno que la instruccin JSR

31

la rutina principal contiene una instruccin RET

31

Ejecucin:
Lgica de escalera de rels y texto estructurado
Condicin

Accin de lgica de escalera de rels

Accin de texto estructurado

preescn

El controlador ejecuta todas las subrutinas independientemente de la condicin del rengln. Para asegurar
que todos los renglones en la subrutina estn previamente escaneados, el controlador ignora las
instrucciones RET. (es decir, las instrucciones RET no salen de la subrutina).
En las versiones 6.x y anteriores, se pasan los parmetros de entrada y retorno.
En las versiones 7.x y posteriores, no se pasan los parmetros de entrada y retorno.
Si existen llamadas recursivas a la misma subrutina, la subrutina es preescaneada slo la primera vez. Si
existen mltiples llamadas (no recursivas) a la misma subrutina, la subrutina es preescaneada cada vez.
La condicin de salida de rengln se establece en falso (lgica de escalera de rels solamente).

La condicin de entrada de
rengln es falsa para la
instruccin JSR

La subrutina no se ejecuta.

n. a.

Las salidas en la subrutina permanecen en su ltimo


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

Publicacin 1756-RM003K-ES-P Julio 2008

441

Captulo 11

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Condicin

Accin de lgica de escalera de rels

Accin de texto estructurado

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

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
parmetros de
entrada

JSR copia los parmetros de


entrada en los tags SBR
apropiados

no

la ejecucin de lgica comienza


en la rutina identificada por JSR

s
instruccin RET

parmetros de
retorno

RET copia los parmetros de


retorno en los tags JSR
apropiados

no

no

s
fin de la subrutina

no
la condicin de salida de rengln
se establece como falsa

la condicin de salida de rengln se


establece como verdadera
la ejecucin de la lgica regresa a JSR

continuar ejecutando la subrutina


fin

post-escn

442

La misma accin que el preescn antes descrito.

La misma accin que el preescn antes descrito.

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Captulo 11

Bloque de funciones
Condicin:

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.
2. El controlador enclava todos los valores de datos en las IREF.
3. El controlador ejecuta los otros bloques de funcin en el orden determinado por su cableado.
Esto incluye otras instrucciones JSR.
4. El controlador escribe salidas en las OREF.
5. Si la rutina contiene una instruccin RET, el controlador ejecuta la instruccin RET por ltimo.

post-escn

Se llama la subrutina.
Si la rutina es una rutina SFC, la rutina se inicializa de la misma manera que durante el preescn.

Publicacin 1756-RM003K-ES-P Julio 2008

443

Captulo 11

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Ejemplo 1: La instruccin JSR pasa value_1 y value_2 a routine_1.


La instruccin SBR recibe value_1 y value_2 desde la instruccin JSR y
copia esos valores en value_a y value_b, respectivamente. La
ejecucin de la lgica contina en esta rutina.
La instruccin RET enva float_a a la instruccin JSR. La instruccin
JSR recibe float_a y copia el valor en float_value_1. La ejecucin de la
lgica contina con la siguiente instruccin despus de la instruccin
JSR.

Lgica de escalera de rels


Rutina:

Programa

Rutina principal

Subrutina

[otros renglones de cdigo]

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

444

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Captulo 11

Ejemplo 2:
Lgica de escalera de rels
MainRoutine
Cuando abc est activado, subroutine_1 se ejecuta, calcula el nmero de cookies y coloca un valor en cookies_1.

Aade el valor en cookies_1 a cookies_2 y almacena el resultado en total_cookies.

Subroutine_1
Cuando def est activado, la instruccin RET retorna value_1 al parmetro cookies_1 de JSR y el resto de la subrutina no se escanea.

Cuando def est desactivado (rengln previo) y ghi est activado, la instruccin RET retorna value_2 al parmetro cookies_1 de JSR y el resto
de la subrutina no se escanea.

Cuando def y ghi estn desactivados (renglones previos), la instruccin RET retorna value_3 al parmetro cookies_1 de JSR.

Publicacin 1756-RM003K-ES-P Julio 2008

445

Captulo 11

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Ejemplo 3:
Bloque de funciones
Instruccin JSR en Routine_A

42972

1. Los valores en
Add_Input_1,
Add_Input_2 y
Add_Input_3 se copian
en Input_A, Input_B y
Input_C,
respectivamente.

3. El valor de Sum_A_B_C se copia


en Add_Three_Result.

Bloques de funciones de la rutina Add_Three_Inputs

42973

2. Las instrucciones ADD suman Input_A, Input_B y Input_C, y colocan el resultado en Sum_A_B_C.

446

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Salto a rutina externa (JXR)

Captulo 11

La instruccin JXR ejecuta una rutina externa. Esta instruccin slo es


compatible con los controladores SoftLogix5800.

Operandos:
Lgica de escalera de rels

.
Operando

Tipo

Formato

Descripcin

Nombre de
rutina externa

ROUTINE

nombre

rutina externa que se va a ejecutar

Control de rutina EXT_ROUTINE_


externa
CONTROL

tag

estructura de control (ver la siguiente pgina)

Parmetro

BOOL

inmediato

datos de esta rutina que desea copiar a una variable en la rutina externa

SINT

tag

INT

tag de matriz

Los parmetros son opcionales.


Introduzca mltiples parmetros, si es necesario.
Puede tener hasta 10 parmetros.

DINT
REAL
estructura
Parmetro de
retorno

BOOL

tag

SINT
INT

el tag en esta rutina al cual desea copiar un resultado de la rutina externa


El parmetro de retorno es opcional
Slo puede tener un parmetro de retorno

DINT
REAL

Publicacin 1756-RM003K-ES-P Julio 2008

447

Captulo 11

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Estructura EXT_ROUTINE_CONTROL
Mnemnico

Tipo de datos

Descripcin

Implementacin

ErrorCode

SINT

Si ocurre un error, este valor identifica el error.


Los valores vlidos son 0-255.

No hay cdigos de error predefinidos. El


encargado del desarrollo de la rutina externa
debe proporcionar los cdigos de error.

NumParams

SINT

Este valor indica el nmero de parmetros


asociados con esta instruccin.

Visualizacin solamente esta informacin


proviene de la entrada de la instruccin.

ParameterDefs

EXT_ROUTINE_
PARAMETERS[10]

Esta matriz contiene definiciones de los


parmetros que se van a pasar a la rutina
externa. La instruccin puede pasar hasta
10 parmetros.

Visualizacin solamente esta informacin


proviene de la entrada de la instruccin.

ReturnParamDef

EXT_ROUTIN_
PARAMETERS

Este valor contiene definiciones del parmetro


de retorno de la rutina externa. Slo hay un
parmetro de retorno.

Visualizacin solamente esta informacin


proviene de la entrada de la instruccin.

EN

BOOL

Cuando se establece, el bit de habilitacin


indica que la instruccin JXR est habilitada.

La rutina externa establece este bit.

ReturnsValue

BOOL

Si se establece, este bit indica que se introdujo


un parmetro de retorno para la instruccin. Si
se borra, este bit indica que no se introdujo un
parmetro de retorno para la instruccin.

Visualizacin solamente esta informacin


proviene de la entrada de la instruccin.

DN

BOOL

El bit de efectuado se establece cuando la


rutina externa se ha ejecutado una vez hasta el
final.

La rutina externa establece este bit.

ER

BOOL

La rutina externa establece este bit.


El bit de error se establece si ocurre un error.
La instruccin detiene la ejecucin hasta que el
programa borra el bit de error.

FirstScan

BOOL

Este bit identifica si ste es el primer escn


despus de que el controlador pas al modo de
marcha. Use FirstScan para inicializar la rutina
externa, si es necesario.

El controlador establece este bit para reflejar


el estado de escn.

EnableOut

BOOL

Habilitacin de salida.

La rutina externa establece este bit.

EnableIn

BOOL

Entrada de habilitacin.

El controlador establece este bit para reflejar


la condicin de entrada del rengln. La
instruccin se ejecuta independientemente
de la condicin del rengln. El encargado del
desarrollo de la rutina externa debe
monitorear este estado y actuar como
corresponde.

User1

BOOL

User0

BOOL

Estos bits estn disponibles para el usuario.


El controlador no inicializa estos bits.

La rutina externa o el programa de usuario


pueden establecer estos bits.

ScanType1

BOOL

Estos bits identifican el tipo de escn actual:

ScanType0

BOOL

El controlador establece estos bits para


reflejar el estado de escn.

448

Valores de bit: Tipo de escn:


00

Normal

01

Preescn

10

Post-escn (no aplicable a


programas de lgica de
escalera de rels)

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Captulo 11

Descripcin: Use la instruccin de salto a rutina externa (JXR) para llamar a la


rutina externa desde una rutina de lgica de escalera en el proyecto.
La instruccin JXR es compatible con varios parmetros; por lo tanto,
puede pasar valores entre la rutina de lgica de escalera y la rutina
externa.
La instruccin JXR es similar a la instruccin de salto a subrutina (JSR).
La instruccin JXR inicia la ejecucin de la rutina externa especificada:
La rutina externa se ejecuta una vez.
Despus de que se ejecuta la rutina externa, la ejecucin de
lgica regresa a la rutina que contiene la instruccin JXR.

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico no son afectados.
Condiciones de fallo:
Ocurrir un fallo mayor si
ocurre una excepcin en la rutina externa DLL

Tipo de fallo

Cdigo de
fallo:

88

el DLL no pudo cargarse


el punto de entrada no se encontr en el DLL

Ejecucin: La instruccin JXR puede ser sncrona o asncrona segn la


implementacin del DLL. El cdigo en el DLL tambin determina
cmo responder al estado de escn, estado de condicin de entrada
de rengln y estado de condicin de salida de rengln.
Para obtener ms informacin sobre cmo usar la instruccin JXR y
cmo crear rutinas externas, consulte el documento SoftLogix5800
System User Manual, publicacin 1789-UM002.

Publicacin 1756-RM003K-ES-P Julio 2008

449

Captulo 11

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Fin temporal (TND)

La instruccin TND sirve como lmite.

Operandos:
Operadores de escalera de rel
ninguno

Texto estructurado

TND();

ninguno
Se tienen que introducir los parntesis () despus del mnemnico de
la instruccin, aunque no haya operandos.

Descripcin: Cuando se habilita, la instruccin TND deja que el controlador ejecute


la lgica slo hasta esta instruccin.
Cuando se habilita, la instruccin TND acta como el fin de la rutina.
Cuando el controlador escanea una instruccin TND, el controlador
va hasta el final de la rutina actual. Si la instruccin TND est en una
subrutina, el control regresa a la rutina que origin la llamada. Si la
instruccin TND est en una rutina principal, el control regresa al
siguiente programa dentro de la tarea actual.

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

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

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

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

Se termina la rutina actual.

post-escn

La condicin de salida de rengln se establece como Ninguna.


falsa.

450

Se termina la rutina actual.

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Captulo 11

Ejemplo: Usted puede usar la instruccin TND al depurar o resolver problemas


para ejecutar la lgica hasta cierto punto. Progresivamente, mueva la
instruccin TND a travs de la lgica conforme va depurando cada
nueva seccin.
Una vez habilitada la instruccin TND, el controlador deja de escanear
la rutina actual.

Lgica de escalera de rels

Texto estructurado
TND();

Publicacin 1756-RM003K-ES-P Julio 2008

451

Captulo 11

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Restablecimiento de
control maestro (MCR)

La instruccin MCR, usada en parejas, crea una zona de programa que


puede inhabilitar todos los renglones dentro de las instrucciones MCR.

Operandos:
Lgica de escalera de rels
ninguna

Descripcin: Cuando la zona MCR se habilita, los renglones en la zona MCR son
escaneados para determinar la presencia de condiciones normales
verdaderas o falsas. Cuando se inhabilita, el controlador todava
escanea renglones dentro de una zona MCR, pero el tiempo de escn
se reduce debido a que las salidas no retentivas en la zona estn
inhabilitadas. La condicin de entrada de rengln es falsa para todas
las instrucciones dentro de la zona MCR inhabilitada.
Cuando programe una zona MCR, tenga presente que:
Debe terminar la zona con una instruccin MCR incondicional.
No puede anidar una zona MCR dentro de otra.
No salte a una zona MCR. Si la zona es falsa, saltar a la zona
activa la zona desde el punto en el que usted salt al final de la
zona.
Si una zona MCR contina al final de la rutina, usted no tiene
que programar una instruccin MCR al final de la zona.
La instruccin MCR no sustituye a un rel de control maestro con
cableado permanente que proporciona capacidad de paro de
emergencia. Usted debe instalar un rel de control maestro con
cableado permanente para proporcionar desactivacin de emergencia
de la alimentacin elctrica de E/S.

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
Condiciones de fallo: ninguna

452

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Captulo 11

Ejecucin:
Condicin

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.


Las instrucciones en la zona son escaneadas, pero la condicin de entrada de rengln es
falsa y las salidas no retentivas en la zona se inhabilitan.

condicin de entrada de rengln es verdadera

La condicin de salida de rengln se establece como verdadera.


Las instrucciones en la zona se escanean normalmente.

post-escn

La condicin de salida de rengln se establece como falsa.

Ejemplo: Cuando la primera instruccin MCR se habilita (input_1, input_2 y


input_3 se establecen), el controlador ejecuta los renglones en la zona
MCR entre las dos instrucciones MCR) y establece o borra las salidas,
dependiendo de las condiciones de entrada.
Cuando la primera instruccin MCR se inhabilita (input_1, input_2 y
input_3 no estn establecidos simultneamente), el controlador
ejecuta los renglones en la zona MCR (entre las dos instrucciones
MCR) y la condicin de entrada del rengln se hace falsa para todos
los renglones en la zona MCR, independientemente de las
condiciones de entrada.

Publicacin 1756-RM003K-ES-P Julio 2008

453

Captulo 11

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Inhabilitacin de
interrupcin de usuario
(UID)
Habilitacin de interrupci
n de usuario (UIE)

La instruccin UID y la instruccin UIE funcionan juntas para evitar


que otras tareas interrumpan una cantidad pequea de renglones
crticos.

Operandos:
Lgica de escalera de rels
ninguno
UID();
UIE();

Texto estructurado
ninguno
Se tienen que introducir los parntesis () despus del mnemnico de
instruccin, aunque no haya operandos.

Descripcin: Cuando la condicin de entrada de rengln es verdadera:


La instruccin UID evita que tareas de mayor prioridad
interrumpan la tarea actual, pero no inhabilita la ejecucin de
una rutina de fallo o del administrador de fallos del controlador.
La instruccin UIE habilita otras tareas para interrumpir la tarea
actual.
Para evitar la interrupcin de una serie de renglones:
1. Limite el nmero de renglones que no desea sean interrumpidos
al menor nmero posible. Inhabilitar interrupciones por un
tiempo prolongado puede ocasionar prdida de comunicacin.
2. Arriba del primer rengln que usted no desea sea interrumpido,
introduzca un rengln y una instruccin UID.
3. Despus del ltimo rengln que usted no desea sea
interrumpido, introduzca un rengln y una instruccin UIE.
4. Si lo desea, puede anidar parejas de instrucciones UID/UIE.

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

454

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Captulo 11

Ejecucin:
Condicin

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

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

La condicin de salida de rengln se establece como


verdadera.
EnableIn se establece

n. a.

EnableIn siempre se establece.


La instruccin se ejecuta.

ejecucin de la instruccin

La instruccin UID evita la interrupcin por parte de tareas de mayor prioridad.


La instruccin UIE habilita la interrupcin por parte de tareas de mayor prioridad.

post-escn

La condicin de salida de rengln se establece como


falsa.

Ninguna.

Ejemplo: Cuando ocurre un error (error_bit est activado), la instruccin FSC


compara el cdigo de error con una lista de errores crticos. Si la
instruccin FSC determina que el error es crtico (error_check.FD est
activado), se anuncia una alarma. Las instrucciones UID y UIE evitan
que cualquier otra tarea interrumpa la verificacin de errores y
alarmas.

Lgica de escalera de rels


UID

error_bit
error_bit

FSC
FSC
FileSearch/Compare
Search/Compare
File
error_check
Control
error_check
Control
Length
10
Length
Position
8
Position
ALL
Mode
ALL
Mode
error_code=error_list[error_check.POS]
Expression
Expression
error_code=error_list[error_check.POS]

EN
EN
DN
ER
ER

alarm
alarm

error_check.FD
error_check.FD

UIE

Texto estructurado
UID();
<statements>
UIE();

Publicacin 1756-RM003K-ES-P Julio 2008

455

Captulo 11

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Instruccin siempre falso


(AFI)

La instruccin AFI establece su condicin de salida de rengln como


falsa.

Operandos:
Lgica de escalera de rels
ninguno

Descripcin: La instruccin AFI establece su condicin de salida de rengln como


falsa.

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

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

post-escn

La condicin de salida de rengln se establece como falsa.

Ejemplo: Use la instruccin AFI para inhabilitar temporalmente un rengln


mientras depura un programa.
Cuando se habilita, la instruccin AFI inhabilita todas las instrucciones
en este rengln.

456

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Sin operacin (NOP)

Captulo 11

La instruccin NOP funciona como indicador de posicin

Operandos:
Lgica de escalera de rels
ninguno

Descripcin: Usted puede colocar la instruccin NOP en cualquier parte de un


rengln. Una vez habilitada, la instruccin NOP no realiza operacin
alguna. Una vez inhabilitada, la instruccin NOP no realiza operacin
alguna.

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

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

post-escn

La condicin de salida de rengln se establece como falsa.

Ejemplo Esta instruccin es til para ubicar bifurcaciones incondicionales


cuando usted coloca la instruccin NOP en la bifurcacin.
La instruccin NOP omite la instruccin XIC para habilitar la salida.

Publicacin 1756-RM003K-ES-P Julio 2008

457

Captulo 11

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Fin de transicin (EOT)

La instruccin EOT retorna un estado booleano a una transicin SFC.

Operandos:
Lgica de escalera de rels

EOT(data_bit);

Operando

Tipo

Formato

Descripcin

bit de datos

BOOL

tag

estado de la transicin
(0=en ejecucin, 1=completada)

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

Descripcin: Puesto que la instruccin EOT retorna un estado booleano, mltiples


rutinas SFC pueden compartir la misma rutina que contiene la
instruccin OET. La rutina que origin la llamada no es una transicin;
la instruccin OET acta como una instruccin TND (ver pgina 450).
La implementacin Logix de la instruccin OET es diferente a la de un
controlador PLC-5. En un controlador PLC-5, la instruccin EOT no
tiene parmetros. En lugar de ello, la instruccin OET PLC-5 retorna la
condicin del rengln como su estado. El parmetro de retorno, en un
controlador Logix, retorna el estado de transicin puesto que la
condicin del rengln no est disponible en todos los lenguajes de
programacin Logix.

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

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

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

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

458

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Captulo 11

Ejemplo: Cuando se establecen limit_switch1 y interlock_1, se establece el


estado. Despus de que se completa timer_1, EOT retorna el valor de
state a la rutina que origin la llamada.

Lgica de escalera de rels

Texto estructurado
state := limit_switch1 AND interlock_1;

IF timer_1.DN THEN
EOT(state);
END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008

459

Captulo 11

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Pausa SFC (SFP)

La instruccin SFP pone en pausa una rutina SFC.

Operandos:
Lgica de escalera de rels
Operando

Tipo:

Formato:

Descripcin:

SFCRoutine
Name

ROUTINE

nombre

rutina SFC que se va a poner en pausa

TargetState

DINT

inmediato

seleccione uno:

tag

ejecutando (o introduzca 0)
puesta en pausa (o introduzca 1)

Texto estructurado
SFP(SFCRoutineName,
TargetState);

Los operandos son iguales a los de la instruccin SFP de lgica de


escalera de rels.

Descripcin: La instruccin SFP le permite poner en pausa una rutina SFC en


ejecucin. Si una rutina SFC se encuentra en pausa, use la instruccin
SFP nuevamente para cambiar el estado y reanudar la ejecucin de la
rutina.
Adems, use la instruccin SFP para reanudar la ejecucin del SFC
despus de usar una instruccin SFR (ver pgina 462) para restablecer
una rutina SFC.

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:

460

Ocurrir un fallo mayor si:

Tipo de fallo

Cdigo de fallo

el tipo de rutina no es una rutina SFC

85

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Captulo 11

Ejecucin:
Condicin:

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

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

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 pone en pausa o reanuda la ejecucin de la rutina SFC especificada.

post-escn

La condicin de salida de rengln se establece como


falsa.

Ejemplo:

Ninguna.

Si sfc_en_p se establece, se pone en pausa la rutina SFC llamada


normal. Reinicie el SFC cuando se establezca sfc_en_e.

Lgica de escalera de rels


Se pone en pausa la rutina SFC.

Se reanuda la ejecucin de la rutina SFC.

Texto estructurado
Se pone en pausa la rutina SFC. IF (sfp_en_p) THEN

SFP(normal,paused);
sfp_en_p := 0;
END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008

461

Captulo 11

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Se reanuda la ejecucin de la rutina SFC: IF (sfp_en_e) THEN

SFP(normal,executing);
sfp_en_e := 0;
END_IF;

Restablecer SFC (SFR)

La instruccin SFR restablece la ejecucin de una rutina SFC en un


paso especificado.

Operandos:
Operandos de lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

SFCRoutine
Name

ROUTINE

nombre

rutina SFC que se va a restablecer

Step Name

SFC_STEP

tag

paso objetivo donde se va a reanudar la


ejecucin

Texto estructurado
SFR(SFCRoutineName,StepName);

Los operandos son iguales a los de la instruccin SFR de lgica de


escalera de rels.

Descripcin: Cuando la instruccin SFR est habilitada:


En la rutina SFC especificada, se detiene la ejecucin de todas
las acciones almacenadas (restablecimiento).
El SFC comienza a ejecutarse en el paso especificado.
Si el paso objetivo es 0, el diagrama se restablecer en su paso inicial.
La implementacin Logix de la instruccin SFR es diferente a la del
controlador PLC-5. En el controlador PLC-5, el SFR se ejecut cuando
la condicin del rengln fue verdadera. Despus del restablecimiento,
el SFC permanecera en pausa hasta que el rengln que contiene el
SFR se haga falso. Esto permiti retardar la ejecucin despus de un
restablecimiento. Esta funcin de poner en pausa/cancelar la pausa de
la instruccin SFR del PLC-5 se desacopl de la condicin del rengln
y se movi a la instruccin SFP.

Indicadores de estado
aritmtico: no afectados

462

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Captulo 11

Condiciones de fallo:
Ocurrir un fallo mayor si:

Tipo de fallo

Cdigo de fallo

el tipo de rutina no es una rutina SFC

85

el paso objetivo especificado no existe


en la rutina SFC

89

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

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

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 restablece la rutina SFC especificada. La instruccin restablece la rutina SFC especificada.

post-escn

La condicin de salida de rengln se establece como


falsa.

Ninguna.

Ejemplo: Si ocurre una condicin especfica (shutdown se establece) reinicie el


SFC en el paso initialize.

Lgica de escalera de rels

Texto estructurado
IF shutdown THEN
SFR(mySFC,initialize);
END_IF;

Publicacin 1756-RM003K-ES-P Julio 2008

463

Captulo 11

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Activar tarea de evento


(EVENT)

La instruccin EVENT activa una ejecucin de una tarea de evento.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Tarea

TASK

nombre

tarea de evento que se va a ejecutar


La instruccin le permite seleccionar otros
tipos de tareas, pero no ejecutarlas.

Texto estructurado

EVENT(task_name);

Los operandos son iguales a los de la instruccin EVENT de lgica de


escalera de rels.

Descripcin: Use la instruccin EVENT para ejecutar programticamente una tarea


de evento.
Cada vez que la instruccin se ejecuta, sta activa la tarea de
evento especificada.
Asegrese de dar a la tarea de evento tiempo suficiente para
completar su ejecucin antes de volver a activarla. Se lo
contrario, se producir una superposicin.
Si usted ejecuta una instruccin EVENT mientras se est
ejecutando la tarea de evento, el controlador incrementa el
contador de superposiciones pero no activa la tarea de evento.

Determine programticamente si una instruccin EVENT activ


una tarea
Para determinar si una instruccin EVENT activ una tarea de evento,
use una instruccin Get System Value (GSV) para monitorear el
atributo Status de la tarea.
Atributo Status del objeto TASK
Atributo

Tipo de datos

Instruccin

Descripcin

Status

DINT

GSV

Proporciona informacin de estado acerca de la tarea. Una vez que el


controlador establece un bit, usted debe borrar manualmente el bit para
determinar si ocurri otro fallo de ese tipo.

SSV

464

Para determinar si:

Examine este bit:

Una instruccin EVENT activ la tarea (tarea de


evento solamente).

Al expirar un tiempo de espera se activ la tarea


(tarea de evento solamente).

Ocurri una superposicin para esta tarea.

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Captulo 11

El controlador no borra los bits del atributo Status una vez que stos
estn establecidos.
Para usar un bit para nueva informacin de estado, debe borrar
manualmente el bit.
Use una instruccin de establecer valor del sistema (Set System
Value (SSV)) para establecer el atributo en un valor diferente.

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

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

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

EnableIn se establece

n. a.

La condicin de salida de rengln se establece como


verdadera.
EnableIn siempre se establece.
La instruccin se ejecuta.

ejecucin de la instruccin

La instruccin activa una ejecucin de la tarea de evento especificada

post-escn

La condicin de salida de rengln se establece como


falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

Ninguna.

465

Captulo 11

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Ejemplo 1: Un controlador usa mltiples programas pero un procedimiento de


desactivacin comn. Cada programa usa un tag bajo el control del
programa llamado Shut_Down_Line el cual se activa si el programa
detecta una condicin que requiere una desactivacin. La lgica en
cada programa se ejecuta de la siguiente manera:
Si Shut_Down_Line = activado (la condicin requiere una
desactivacin) entonces
Ejecute la tarea Shut_Down una vez

Lgica de escalera de rels


Programa A

Programa B

Texto estructurado
Programa A
IF Shut_Down_Line AND NOT Shut_Down_Line_One_Shot THEN
EVENT (Shut_Down);
END_IF;
Shut_Down_Line_One_Shot := Shut_Down_Line;

Programa B
IF Shut_Down_Line AND NOT Shut_Down_Line_One_Shot THEN
EVENT (Shut_Down);
END_IF;
Shut_Down_Line_One_Shot := Shut_Down_Line;

466

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Captulo 11

Ejemplo 2: El siguiente ejemplo usa una instruccin EVENT para inicializar una
tarea de evento. (Otro tipo de evento normalmente activa la tarea de
evento).
Tarea continua
Si Initialize_Task_1 = 1 entonces
La instruccin ONS limita la ejecucin de la instruccin EVENT a un escn.
La instruccin EVENT activa una ejecucin de Task_1 (tarea de evento).

Task_1 (tarea de evento)


La instruccin GSV establece Task_Status (tag DINT) = atributo Status para la tarea de evento. En el atributo
Instance Name, THIS significa el objeto TASK para la tarea en la cual est la instruccin (o sea Task_1).

Si Task_Status.0 = 1, significa que una instruccin EVENT activ la tarea de evento (es decir, cuando la tarea
continua ejecuta su instruccin EVENT para inicializar la tarea de evento).
La instruccin RES pone en cero un contador que usa la tarea de evento.

El controlador no borra los bits del atributo Status una vez que stos estn establecidos. Para usar un bit para
nueva informacin de estado, debe borrar el bit manualmente.
Si Task_Status.0 = 1, borre ese bit.
La instruccin OTU establece Task_Status.0 = 0.
La instruccin SSV establece el atributo Status de la tarea THIS (Task_1) = Task_Status. Esto incluye el bit
borrado.

Publicacin 1756-RM003K-ES-P Julio 2008

467

Captulo 11

Instrucciones de control de programa (JMP, LBL, JSR, RET, SBR, JXR, TND, MCR, UID, UIE, AFI, NOP, EOT, SFP, SFR, EVENT)

Notas:

468

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

12

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

Introduccin

Use la instruccin FOR para llamar repetidamente una subrutina. Use


la instruccin BRK para interrumpir la ejecucin de una subrutina.

Si desea
Ejecutar repetidamente una rutina.

Interrumpir la ejecucin repetida de una rutina.

Retornar a la instruccin FOR.


(1)

Use esta instruccin

Disponible en estos lenguajes

Para obtener

lgica de escalera de rels

FOR...DO(1)

texto estructurado

BRK

lgica de escalera de rels

EXIT(1)

texto estructurado

RET

lgica de escalera de rels

Vea la pgina
470

473

474

Texto estructurado solamente.

469Publicacin 1756-RM003K-ES-P Julio 2008

469

Captulo 12

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

For (FOR)

La instruccin FOR ejecuta una rutina repetidamente.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Routine
name

ROUTINE

nombre de la rutina que se ejecuta


rutina

Index

DINT

tag

cuenta cuntas veces la rutina se ha


ejecutado

Initial value

SINT

inmediato

valor en que se comienza el ndice

INT

tag

DINT
Terminal
value

SINT

inmediato

INT

tag

valor en que se detiene la ejecucin de la


rutina

DINT
Step size

SINT

inmediato

INT

tag

cantidad que se aade al ndice cada vez


que la instruccin FOR ejecuta la rutina

DINT

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

Use la construccin FOR...DO. Consulte Apndice C, Programacin de


texto estructurado para obtener informacin sobre construcciones de
texto estructurado.

Descripcin:

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

470

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 12

Cuando se habilita, la instruccin FOR ejecuta repetidamente la rutina


hasta que el valor Index excede el valor Terminal. Esta instruccin no
pasa parmetros a la rutina.
Cada vez que la instruccin FOR ejecuta la rutina, aade el Step size al
Index.
Tenga cuidado de no hacer lazos demasiadas veces en un solo escn.
Un nmero excesivo de repeticiones puede hacer que el
temporizador de control (watchdog) exceda el tiempo de espera,
lo cual causa un fallo mayor.

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ocurrir un fallo mayor si

Tipo de fallo

Cdigo de fallo

la rutina principal contiene una instruccin


RET

31

Ejecucin:
Condicin

Accin de lgica de escalera de rels

preescn

La condicin de salida de rengln se establece como falsa.


El controlador ejecuta la subrutina una vez.
Si existen instrucciones FOR recursivas a la misma subrutina, la subrutina es
preescaneada slo la primera vez. Si existen mltiples instrucciones FOR (no recursivas)
a la misma subrutina, la subrutina es preescaneada cada vez.

condicin de entrada de rengln es falsa

Publicacin 1756-RM003K-ES-P Julio 2008

La condicin de salida de rengln se establece como falsa.

471

Captulo 12

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

Condicin

Accin de lgica de escalera de rels

condicin de entrada de
rengln es verdadera
index = initial_value

no

tamao de paso < 0

s
ir a
fin

no

ndice valor terminal

s
ndice valor terminal

no

ir a
fin

fin

ejecutar rutina
ndice = (index + step_size)

la condicin de salida de rengln


se establece como verdadera

fin

post-escn

La condicin de salida de rengln se establece como falsa.

Ejemplo: Una vez habilitada, la instruccin FOR ejecuta repetidamente


routine_2 e incrementa value_2 en un valor de 1 cada vez. Cuando
value_2 es > 10 o una instruccin BRK est habilitada, la instruccin
FOR ya no ejecuta routine_2.

472

Publicacin 1756-RM003K-ES-P Julio 2008

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

Interrumpir (BRK)

Captulo 12

La instruccin BRK interrumpe la ejecucin de una rutina que fue


llamada por una instruccin FOR.

Operandos:
Lgica de escalera de rels
ninguna

Texto estructurado

EXIT;

Use la declaracin EXIT en una construccin de lazo. Consulte el


Apndice B para obtener informacin sobre construcciones de texto
estructurado.

Descripcin: Una vez habilitada, la instruccin BRK sale de la rutina actual y


retorna el controlador a la instruccin que sigue a la instruccin FOR.
Si hay instrucciones FOR anidadas, una instruccin BRK retorna el
control a la instruccin FOR del extremo interior.

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

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


La ejecucin retorna a la instruccin que sigue a la instruccin FOR que origin la
llamada.

post-escn

La condicin de salida de rengln se establece como falsa.

Ejemplo: Una vez habilitada, la instruccin BRK hace que se deje de ejecutar la
rutina actual y retorna a la instruccin que sigue a la instruccin FOR
que origin la llamada.

Publicacin 1756-RM003K-ES-P Julio 2008

473

Captulo 12

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

Retornar (RET)

La instruccin RET retorna a la instruccin FOR que origin la


llamada.

Operandos:
Lgica de escalera de rels
ninguna

Descripcin:
IMPORTANTE

No coloque una instruccin RET en la rutina principal. Si usted


coloca una instruccin RET en la rutina principal, ocurre un fallo
mayor (tipo 4, cdigo 31).

Cuando se habilita, la instruccin RET retorna a la instruccin FOR. La


instruccin FOR incrementa el valor de Index por una cantidad
equivalente al Step Size y ejecuta la subrutina nuevamente. Si el valor
de Index excede el valor Terminal, se completa la instruccin FOR y
la ejecucin pasa a la instruccin que sigue a la instruccin FOR.
La instruccin FOR no usa parmetros. La instruccin FOR ignora
cualquier parmetro que usted introduzca en una instruccin RET.
Tambin puede usar una instruccin TND para terminar la ejecucin
de una subrutina.

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ocurrir un fallo mayor si

Tipo de fallo

Cdigo de fallo

la rutina principal contiene una instruccin


RET

31

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

Retorna los parmetros especificados a la rutina que origin la llamada.


La condicin de salida de rengln se establece como verdadera.

post-escn

474

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 12

Ejemplo: La instruccin FOR ejecuta repetidamente routine_2 e incrementa

value_2 en un valor de 1 cada vez. Cuando value_2 es > 10 o una


instruccin BRK est habilitada, la instruccin FOR ya no ejecuta
routine_2.
La instruccin RET retorna a la instruccin FOR que origin la
llamada. La instruccin FOR ejecuta la subrutina nuevamente e
incrementa el valor de Index en una cantidad equivalente a Step Size
o, si el valor de Index excede el valor de Terminal, la instruccin FOR
se completa y la ejecucin pasa a la instruccin que sigue a la
instruccin FOR.

rutina que origina la llamada

Publicacin 1756-RM003K-ES-P Julio 2008

subrutina

475

Captulo 12

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

Notas:

476

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

13

Instrucciones especiales
(FBC, DDT, DTR, PID)

Introduccin
Si desea

Las instrucciones especiales realizan operaciones especficas de la


aplicacin.
Use esta instruccin

Disponible en estos lenguajes:

Vea la pgina

Comparar datos con una buena referencia


conocida y registrar las incongruencias.

FBC

lgica de escalera de rels

478

Comparar datos con una buena referencia


conocida, registrar las incongruencias y
actualizar la referencia para que sea igual al
origen.

DDT

lgica de escalera de rels

486

Pasar los datos de origen a travs de una


mscara y comparar los resultados con los
datos de referencia. Seguidamente escribir el
origen en la referencia para la siguiente
comparacin.

DTR

lgica de escalera de rels

494

Controlar un lazo PID.

PID

lgica de escalera de rels

497

texto estructurado

477Publicacin 1756-RM003K-ES-P Julio 2008

477

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Comparacin de bits de
archivo (FBC)

La instruccin FBC compara los bits en una matriz de origen con los
bits en una matriz de referencia.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin:

Source

DINT

tag de matriz matriz que se va a comparar con la


referencia.
no use CONTROL.POS en el subndice

Reference

DINT

tag de matriz matriz que se va a comparar con el origen.


no use CONTROL.POS en el subndice

Result

DINT

tag de matriz matriz para almacenar el resultado


no use CONTROL.POS en los subndices

Cmp control

CONTROL

estructura

estructura de control para la comparacin

Length

DINT

inmediato

nmero de bits que se van a comparar

Position

DINT

inmediato

posicin actual en el origen


el valor inicial es tpicamente 0

Result
control

CONTROL

estructura

estructura de control para los resultados

Length

DINT

inmediato

nmero de ubicaciones de almacenamiento


en el resultado

Position

DINT

inmediato

posicin actual en el resultado


el valor inicial es tpicamente 0

ATENCIN

478

Use tags diferentes para la estructura de control de


comparacin y para la estructura de control de resultado. El
usar el mismo tag para ambos podra resultar en una operacin
inesperada y causar dao al equipo y/o lesiones personales.

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones especiales (FBC, DDT, DTR, PID)

Captulo 13

Estructura COMPARE
Mnemnico:

Tipo de datos

Descripcin:

.EN

BOOL

El bit de habilitacin indica que la instruccin FBC est habilitada.

.DN

BOOL

El bit de efectuado se establece cuando la instruccin FBC compara el ltimo bit en las
matrices de origen y referencia.

.FD

BOOL

El bit de encontrado se establece cada vez que la instruccin FBC registra una incongruencia
(operacin una a la vez) o despus de registrar todas las incongruencias (operacin todas por
escn).

.IN

BOOL

El bit de inhibicin indica el modo de bsqueda de FBC.


0 = modo de todas
1 = modo de una incongruencia a la vez

.ER

BOOL

El bit de error se establece si la comparacin .POS < 0, la comparacin .LEN < 0, el


resultado .POS < 0 o el resultado .LEN < 0. La instruccin detiene la ejecucin hasta que el
programa borra el bit .ER.

.LEN

DINT

El valor de longitud identifica el nmero de bits que se van a comparar.

.POS

DINT

El valor de posicin identifica el bit actual.

Estructura RESULT
Mnemnico

Tipo de datos

Descripcin

.DN

BOOL

El bit de efectuado se establece cuando la matriz resultado est llena.

.LEN

DINT

El valor de longitud identifica el nmero de ubicaciones de almacenamiento en la matriz


resultado.

.POS

DINT

El valor de posicin identifica la posicin actual en la matriz resultado.

Descripcin: Cuando se habilita, la instruccin FBC compara los bits en la matriz


origen con los bits en la matriz de referencia y registra el nmero de
bit de cada incongruencia en la matriz resultado.

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.

Publicacin 1756-RM003K-ES-P Julio 2008

479

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Seleccin del modo de bsqueda


Si desea detectar

Seleccione este modo

Una incongruencia a la vez

Establezca el bit .IN en la estructura CONTROL de comparacin.


Cada vez que la condicin de entrada del rengln cambia de falso a verdadero, la
instruccin FBC busca la siguiente incongruencia entre las matrices de origen y
referencia. Al encontrar una incongruencia, la instruccin establece el bit .FD, registra
la posicin de la incongruencia y detiene la ejecucin.

Todas las incongruencias

Borre el bit .IN en la estructura CONTROL de comparacin.


Cada vez que la condicin de entrada del rengln cambia de falso a verdadero, la
instruccin FSC busca todas las incongruencias entre las matrices de origen y
referencia.

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:

480

Ocurrir un fallo mayor si:

Tipo de fallo

Cdigo de fallo

result.POS > tamao de matriz resultado

20

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones especiales (FBC, DDT, DTR, PID)

Captulo 13

Ejecucin:
Condicin

Accin de lgica de escalera de rels

preescn
el bit compare.EN se borra
el bit compare.FD se borra

examine el bit
compare.DN

compare.DN = 0

compare.DN = 1
el bit compare.DN se borra
el valor compare.POS se borra
el bit result.DN se borra
el valor result.POS se borra

la condicin de salida de
rengln se establece como
falsa

fin

Publicacin 1756-RM003K-ES-P Julio 2008

481

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Condicin

Accin de lgica de escalera de rels

condicin de entrada de
rengln es falsa
el bit compare.EN se borra
el bit compare.FD se borra

examine el bit
compare.DN

compare.DN = 0

compare.DN = 1
el bit compare.DN se borra
el valor compare.POS se borra
el bit result.DN se borra
el valor result.POS se borra

la condicin de salida de
rengln se establece como
falsa

fin

482

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones especiales (FBC, DDT, DTR, PID)

Condicin

Captulo 13

Accin de lgica de escalera de rels

condicin de entrada de rengln es verdadera

examine el bit
compare.EN

compare.EN = 1

ir a la
salida

compare.EN = 0
examine el bit
compare.DN

El bit compare.EN se
establece

compare.DN = 1

ir a la
salida

compare.DN = 0
el bit compare.ER se borra

compare.LEN 0

el bit compare.FD se borra


no

exit

compare.POS < 0

no

el bit compare.ER se
establece

la condicin de salida de
rengln se establece como
verdadera
comparar

ir a la
salida

fin

pgina 484

Publicacin 1756-RM003K-ES-P Julio 2008

483

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Condicin

Accin de lgica de escalera de rels


comparar

compare.POS
compare.LEN

compare.POS = compare.LEN
el bit compare.DN se establece

ir a la
salida

pgina 483
no
result.DN = 1
source[compare.POS] =
reference[compare.POS]

no

el bit compare.FD se
establece

el bit result.DN se borra


el valor result.POS se
borra

examine el bit
result.DN bit

result.DN = 0

s
compare.POS =
compare.POS + 1

s
result.POS < 0

no

result.LEN 0

no

s
fallo mayor

result.POS >
tamao de
matriz
resultado

el bit compare.ER se
establece

ir a la
salida

pgina 483
no
result[result.POS] = compare.POS
result.POS = result.POS + 1

no

result.POS >
result.LEN

s
el bit result.DN se establece

post-escn

484

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones especiales (FBC, DDT, DTR, PID)

Captulo 13

Ejemplo: Cuando se habilita, la instruccin FBC compara el origen array_dint1


con la referencia array_dint2 y almacena las ubicaciones de las
incongruencias en el resultado array_dint3.

origen 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
array_dint1

referencia 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0
array_dint2

resultado
array_dint3

Publicacin 1756-RM003K-ES-P Julio 2008

5 3

485

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Deteccin de diagnstico
(DDT)

La instruccin DDT compara los bits en una matriz de origen con los
bits en una matriz de referencia para determinar cambios de estado.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source

DINT

tag de
matriz

matriz que se va a comparar con la referencia


no use CONTROL.POS en el subndice

Reference

DINT

tag de
matriz

matriz que se va a comparar con el origen


no use CONTROL.POS en el subndice

Result

DINT

tag de
matriz

matriz para almacenar los resultados


no use CONTROL.POS en el subndice

Cmp control

CONTROL

estructura

estructura de control para la comparacin

Length

DINT

inmediato

nmero de bits que se van a comparar

Position

DINT

inmediato

posicin actual en el origen


el valor inicial es tpicamente 0

Result
control

CONTROL

estructura

estructura de control para los resultados

Length

DINT

inmediato

nmero de ubicaciones de almacenamiento


en el resultado

Position

DINT

inmediato

posicin actual en el resultado


el valor inicial es tpicamente 0

ATENCIN

486

Use tags diferentes para la estructura de control de


comparacin y para la estructura de control de resultado.
El usar el mismo tag para ambos podra resultar en un
comportamiento inesperado y causar dao al equipo y/o
lesiones personales.

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones especiales (FBC, DDT, DTR, PID)

Captulo 13

Estructura COMPARE
Mnemnico

Tipo de datos

Descripcin

.EN

BOOL

El bit de habilitacin indica que la instruccin DDT est habilitada.

.DN

BOOL

El bit de efectuado se establece cuando la instruccin DDT compara el ltimo bit en las
matrices de origen y referencia.

.FD

BOOL

El bit de encontrado se establece cada vez que la instruccin DDT registra una incongruencia
(operacin una a la vez) o despus de registrar todas las incongruencias (operacin todas por
escn).

.IN

BOOL

El bit de inhibicin indica el modo de bsqueda de DDT.


0 = modo de todas
1 = modo de una incongruencia a la vez

.ER

BOOL

El bit de error se establece si la comparacin .POS < 0, la comparacin .LEN < 0, el


resultado .POS < 0 o el resultado .LEN < 0. La instruccin detiene la ejecucin hasta que el
programa borra el bit .ER.

.LEN

DINT

El valor de longitud identifica el nmero de bits que se van a comparar.

.POS

DINT

El valor de posicin identifica el bit actual.

Estructura RESULT
Mnemnico

Tipo de datos

Descripcin

.DN

BOOL

El bit de efectuado se establece cuando la matriz resultado est llena.

.LEN

DINT

El valor de longitud identifica el nmero de ubicaciones de almacenamiento en la matriz


resultado.

.POS

DINT

El valor de posicin identifica la posicin actual en la matriz resultado.

Descripcin: Cuando se habilita, la instruccin DDT compara los bits en la matriz


de origen con los bits en la matriz de referencia, registra el nmero de
bits de cada incongruencia en la matriz resultado y cambia el valor del
bit de referencia para que coincida con el valor del bit de origen
correspondiente.

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.
La diferencia entre las instrucciones DDT y FBC radica en que cada
vez que la instruccin DDT encuentra una incongruencia, la
instruccin DDT cambia el bit de referencia para que coincida con el
bit de origen. La instruccin FBC no cambia el bit de referencia.

Publicacin 1756-RM003K-ES-P Julio 2008

487

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Seleccin del modo de bsqueda


Si desea detectar

Seleccione este modo

Una incongruencia a la vez

Establezca el bit .IN en la estructura CONTROL de comparacin.


Cada vez que la condicin de entrada del rengln cambia de falso a verdadero, la
instruccin DDT busca la siguiente incongruencia entre las matrices de origen y
referencia. Al encontrar una incongruencia, la instruccin establece el bit .FD, registra
la posicin de la incongruencia y detiene la ejecucin.

Todas las incongruencias

Borre el bit .IN en la estructura CONTROL de comparacin.


Cada vez que la condicin de entrada del rengln cambia de falso a verdadero,
la instruccin DDT busca todas las incongruencias entre las matrices de origen y
referencia.

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ocurrir un fallo mayor si

Tipo de fallo

result.POS > tamao de matriz resultado 4

488

Cdigo de fallo
20

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones especiales (FBC, DDT, DTR, PID)

Captulo 13

Ejecucin:
Condicin:

Accin de lgica de escalera de rels

preescn
el bit compare.EN se borra
el bit compare.FD se borra

examine el bit
compare.DN

compare.DN = 0

compare.DN = 1
el bit compare.DN se borra
el valor compare.POS se borra
el bit result.DN se borra
el valor result.POS se borra

la condicin de salida de
rengln se establece como
falsa

fin

Publicacin 1756-RM003K-ES-P Julio 2008

489

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Condicin:

Accin de lgica de escalera de rels

condicin de entrada de
rengln es falsa
el bit compare.EN se borra
el bit compare.FD se borra

examine el bit
compare.DN

compare.DN = 0

compare.DN = 1
el bit compare.DN se borra
el valor compare.POS se borra
el bit result.DN se borra
el valor result.POS se borra

la condicin de salida de
rengln se establece como
falsa

fin

490

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones especiales (FBC, DDT, DTR, PID)

Condicin:

Captulo 13

Accin de lgica de escalera de rels

condicin de entrada de rengln es verdadera

compare.EN = 1

examine el bit
compare.EN

ir a la
salida

compare.EN = 0
examine el bit
compare.DN

El bit compare.EN se
establece

bit compare.DN = 1

ir a la
salida

bit compare.DN = 0
el bit compare.ER se borra
el bit compare.FD se borra

compare.LEN 0

no

salida

compare.POS < 0

no

el bit compare.ER se
establece

la condicin de salida de
rengln se establece como
verdadera
comparar

ir a la
salida

fin

pgina 492

Publicacin 1756-RM003K-ES-P Julio 2008

491

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Condicin:

Accin de lgica de escalera de rels

comparar

compare.POS
compare.LEN

compare.POS = compare.LEN
el bit compare.DN se establece

ir a la
salida

pgina 491
no
result.DN = 1
source[compare.POS] =
reference[compare.POS]

no

compare.FD bit se
establece
reference[compare.POS]
= source[compare.POS]

el bit result.DN se borra


el valor result.POS se
borra

examine el bit
result.DN bit

result.DN = 0

s
compare.POS =
compare.POS + 1

s
result.POS < 0

no

s
result.LEN 0

no

s
fallo mayor

result.POS >
tamao de matriz
resultado

el bit compare.ER se
establece

ir a la
salida

pgina 483
no
result[result.POS] = compare.POS
result.POS = result.POS + 1

no

result.POS
result.LEN

s
el bit result.DN se establece

post-escn

492

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones especiales (FBC, DDT, DTR, PID)

Captulo 13

Ejemplo: Cuando se habilita, la instruccin DDT compara el origen array_dint1


con la referencia array_dint2 y almacena las ubicaciones de las
incongruencias en el resultado array_dint3. El controlador tambin
cambia los bits incongruentes en la referencia array_dint2 para
hacerlos congruentes con el origen array_dint1.

origen 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
array_dint1
referencia (antes de comparacin) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0
array_dint2
resultado

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

Publicacin 1756-RM003K-ES-P Julio 2008

493

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

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:
Lgica de escalera de rels
Operando:

Tipo

Formato

Descripcin

Source

DINT

inmediato

matriz que se va a comparar con la


referencia.

tag
Mask

DINT

inmediato

qu bits se bloquean o se pasan

tag
Reference

DINT

tag

matriz que se va a comparar con el origen.

Descripcin: La instruccin DTR pasa el valor de origen a travs de una mscara


y compara el resultado con el valor de referencia. La instruccin DTR
tambin escribe el valor de Source enmascarado en el valor de
referencia para la siguiente comparacin. Source no cambia.
Un nmero 1 en la mscara significa que se pasa el bit de datos. Un
nmero 0 en la mscara significa que se bloquea el bit de datos.
Cuando Source enmascarado es diferente de la referencia, la
condicin de salida de rengln se hace verdadera en un escn.
Cuando Source enmascarado es igual que la referencia, la condicin
de salida de rengln se hace falsa.

ATENCIN

494

El programar en lnea con esta instruccin puede ser peligroso.


Si el valor de referencia es diferente del valor de origen, la
condicin de salida del rengln se hace falsa. Tenga cuidado al
insertar esta instruccin cuando el procesador est en el modo
de marcha o de marcha remota.

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones especiales (FBC, DDT, DTR, PID)

Captulo 13

Introduzca un valor de mscara inmediato


Cuando usted introduce una mscara, el software de programacin
cambia de manera predeterminada a valores decimales. Si desea
introducir una mscara usando otro formato, preceda el valor con el
prefijo correcto.
Prefijo

Descripcin:

16#

hexadecimal
por ejemplo; 16#0F0F

8#

octal
por ejemplo: 8#16

2#

binario
por ejemplo: 2#00110011

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

Accin de lgica de escalera de rels

preescn

La Referencia = Source AND Mask.


La condicin de salida de rengln se establece como falsa.

condicin de entrada de rengln es falsa

La Referencia = Source AND Mask.


La condicin de salida de rengln se establece como falsa.

condicin de entrada de
rengln es verdadera

origen
enmascarado =
referencia

no

la referencia se establece igual que el origen


enmascarado
la condicin de salida de rengln se establece como
verdadera

la condicin de salida de
rengln se establece
como falsa
fin

post-escn

Publicacin 1756-RM003K-ES-P Julio 2008

La condicin de salida de rengln se establece como falsa.

495

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Ejemplo: Cuando se habilita, la instruccin DTR enmascara value_1. Si existe


una diferencia entre los dos valores, la condicin de salida de rengln
se establece como verdadera.

ejemplo 1

ejemplo 2
origen

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

escn previo

El rengln permanece falso siempre que el


valor de entrada no cambie.

value_2

escn actual

escn previo

El rengln permanece verdadero por un


escn cuando se detecta un cambio.
13385

Un nmero 0 en la mscara deja el bit sin ningn cambio.

496

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones especiales (FBC, DDT, DTR, PID)

Proporcional integral
derivativo (PID)

Captulo 13

La instruccin PID controla una variable del proceso, tal como flujo,
presin, temperatura o nivel.

Operandos:
Lgica de escalera de rels

Operando

Tipo

Formato

Descripcin

PID

PID

estructura

estructura PID

Process
variable

SINT

tag

valor que desea controlar

SINT

inmediato

(opcional) salida de una estacin manual/automtica que est pasando por alto la salida del
controlador

INT

tag

INT
DINT
REAL
Tieback

Introduzca 0 si no desea usar este parmetro.


DINT
REAL
Control
variable

SINT

tag

INT

valor que va al dispositivo de control final (vlvula, regulador, etc.)


Si usted est usando la banda muerta, la variable Control debe ser REAL o se forzar a 0
cuando el error est dentro de la banda muerta.

DINT
REAL
PID master
loop

PID

estructura

(opcional) tag PID para el PID maestro


Si est realizando control en cascada y este PID es un lazo esclavo, introduzca el nombre del
PID maestro. Introduzca 0 si no desea usar este parmetro.

Inhold bit

BOOL

tag

(opcional) estado actual del bit mantenido desde un canal de salida analgica 1756 para
permitir un reinicio sin problemas
Introduzca 0 si no desea usar este parmetro.

Inhold value

SINT

tag

(opcional) valor de repeticin de lectura de datos desde un canal de salida analgica 1756
para permitir un reinicio sin problemas

INT
Introduzca 0 si no desea usar este parmetro.
DINT
REAL

Publicacin 1756-RM003K-ES-P Julio 2008

497

Captulo 13

Operando

Instrucciones especiales (FBC, DDT, DTR, PID)

Tipo

Formato

Descripcin

Setpoint

muestra el valor actual del punto de ajuste

Process
variable

muestra el valor actual de la variable del proceso escalada

Output %

muestra el valor de porcentaje de la salida actual

Texto estructurado
Los operandos son iguales que los de la instruccin PID de lgica de
escalera de rels. Sin embargo, usted especifica Setpoint, Process
Variable y Output % accediendo a los miembros .SP, .PV. y .OUT de la
estructura PID, en lugar de incluir valores en la lista de operandos.

PID(PID,ProcessVariable,
Tieback,ControlVariable,
PIDMasterLoop,InholdBit,
InHoldValue);

Estructura PID
Mnemnico:

Tipo de datos

Descripcin

.CTL

DINT

El miembro .CTL proporciona acceso a los miembros de estado (bits) en una palabra de 32 bits.
La instruccin PID establece los bits 07 - 15.
Este bit

Es este miembro

31

.EN

30

.CT

29

.CL

28

.PVT

27

.DOE

26

.SWM

25

.CA

24

.MO

23

.PE

22

.NDF

21

.NOBC

20

.NOZC

Este bit:

Es este miembro, que la instruccin PID establece

15

.INI

14

.SPOR

13

.OLL

12

.OLH

11

.EWD

10

.DVNA

09

.DVPA

08

.PVLA

07

.PVHA

.SP

REAL

punto de ajuste

.KP

REAL

independiente

ganancia proporcional (sin unidades)

dependiente

ganancia de controlador (sin unidades)

498

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones especiales (FBC, DDT, DTR, PID)

Mnemnico:

Tipo de datos

Descripcin

.KI

REAL

independiente

ganancia integral (1/segundo)

dependiente

tiempo de accin integral (minutos por repeticin)

independiente

ganancia derivativa (segundos)

dependiente

tiempo de accin derivada (minutos)

.KD

REAL

.BIAS

REAL

% de ganancia anticipativa o polarizacin

.MAXS

REAL

valor mximo de escalado de unidades de ingeniera

.MINS

REAL

valor mnimo de escalado de unidades de ingeniera

.DB

REAL

unidades de ingeniera de banda muerta

.SO

REAL

% salida establecida

.MAXO

REAL

lmite mximo de salida (% de salida)

.MINO

REAL

lmite mnimo de salida (% de salida)

.UPD

REAL

tiempo de actualizacin del lazo (segundos)

.PV

REAL

valor PV escalado

.ERR

REAL

valor de error escalado

.OUT

REAL

% de salida

.PVH

REAL

lmite de alarma alta de variable del proceso

.PVL

REAL

lmite de alarma baja de variable del proceso

.DVP

REAL

lmite de alarma de desviacin positiva

.DVN

REAL

lmite de alarma de desviacin negativa

.PVDB

REAL

banda muerta de alarma de variable del proceso

.DVDB

REAL

banda muerta de alarma de desviacin

.MAXI

REAL

valor PV mximo (entrada no escalada)

.MINI

REAL

valor PV mnimo (entrada no escalada)

.TIE

REAL

valor retenido para control manual

.MAXCV

REAL

valor CV mximo (correspondiente a 100%)

.MINCV

REAL

valor CV mnimo (correspondiente a 0%)

.MINTIE

REAL

valor retenido mnimo (correspondiente a 100%)

.MAXTIE

REAL

valor retenido mximo (correspondiente a 0%)

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo 13

499

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Mnemnico:

Tipo de datos

Descripcin

.DATA

REAL[17]

El miembro .DATA almacena:


Elemento:

Descripcin

.DATA[0]

acumulacin integral

.DATA[1]

valor temporal de suavizado derivativo

.DATA[2]

valor .PV previo

.DATA[3]

valor .ERR previo

.DATA[4]

valor .SP previo vlido

.DATA[5]

constante de escalado porcentual

.DATA[6]

constante de escalado .PV

.DATA[7]

constante de escalado derivativo

.DATA[8]

valor .KP previo

.DATA[9]

valor .KI previo

.DATA[10]

valor .KD previo

.DATA[11]

.KP de ganancia dependiente

.DATA[12]

.KI de ganancia dependiente

.DATA[13]

.KD de ganancia dependiente

.DATA[14]

valor .CV previo

.DATA[15]

constante de desactivacin de escalado .CV

.DATA[16]

constante de desactivacin de escalado de valor retenido

.EN

BOOL

habilitado

.CT

BOOL

tipo cascada (0=esclavo; 1=maestro)

.CL

BOOL

lazo en cascada (0=no; 1=s)

.PVT

BOOL

seguimiento de variable de proceso (0=no; 1=s)

.DOE

BOOL

derivada de (0=PV; 1=error)

.SWM

BOOL

modo manual de software (0=no-auto; 1=s- sw manual)

.CA

BOOL

accin de control (0 significa E=SP-PV; 1 significa E=PV-SP)

.MO

BOOL

modo de estacin (0=automtico; 1=manual)

.PE

BOOL

Ecuacin PID (0=independiente; 1=dependiente)

.NDF

BOOL

sin suavizado derivativo


(0=filtro de suavizado derivativo habilitado; 1=filtro de suavizado derivativo inhabilitado)

.NOBC

BOOL

sin clculo en base a datos originales de polarizacin


(0=clculo en base a datos originales de polarizacin habilitado; 1=clculo en base a datos
originales de polarizacin inhabilitado)

.NOZC

BOOL

sin banda muerta de cruce por cero


(0=banda muerta de cruce por cero; 1=banda muerta sin cruce por cero)

.INI

BOOL

PID inicializado (0=no; 1=s)

.SPOR

BOOL

punto de ajuste fuera de rango (0=no; 1=s)

.OLL

BOOL

VC est por debajo del lmite de salida mnimo (0=no; 1=s)

.OLH

BOOL

VC est por arriba del lmite de salida mximo (0=no; 1=s)

.EWD

BOOL

el error est dentro de la banda muerta (0=no; 1=s)

.DVNA

BOOL

la desviacin tiene alarma baja (0=no; 1=s)

500

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones especiales (FBC, DDT, DTR, PID)

Mnemnico:

Tipo de datos

Descripcin

.DVPA

BOOL

la desviacin tiene alarma alta (0=no; 1=s)

.PVLA

BOOL

PV tiene alarma baja (0=no; 1=s)

.PVHA

BOOL

PV tiene alarma alta (0=no; 1=s)

Captulo 13

Descripcin: La instruccin PID tpicamente recibe la variable del proceso (PV)


desde un mdulo de entrada analgico y modula una salida de
variable de control (CV) en un mdulo de salidas analgicas a fin de
mantener la variable del proceso en el punto de ajuste deseado.
El bit .EN indica el estado de ejecucin. El bit .EN se establece cuando
la condicin de entrada del rengln cambia de falso a verdadero.
El bit .EN se borra cuando la condicin de entrada del rengln se
hace falsa. La instruccin PID no usa el bit .DN. La instruccin PID
se ejecuta en cada escn, siempre que la condicin de entrada de
rengln sea verdadera.
bit .EN

estado de rengln
ejecucin de la instruccin PID

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

Publicacin 1756-RM003K-ES-P Julio 2008

Estos fallos eran fallos mayores en el controlador PLC-5.

Ocurrir un fallo menor si

Tipo de fallo

Cdigo de fallo

.UPD 0

35

el punto de ajuste est fuera de rango

36

501

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Ejecucin:
Condicin

Accin

Accin

preescn

La condicin de salida de rengln se establece como Ninguna.


falsa.

condicin de entrada de
rengln es falsa

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

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.

post-escn

La condicin de salida de rengln se establece como Ninguna.


falsa.

Configure una instruccin


PID

La instruccin ejecuta el lazo PID.

Despus de introducir la instruccin PID y especificar la estructura de


PID, se usan las fichas de configuracin para especificar cmo debe
funcionar la instruccin PID.

Haga clic aqu para configurar


la instruccin PID

502

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones especiales (FBC, DDT, DTR, PID)

Captulo 13

Especifique el ajuste
Seleccione la ficha Tuning. Los cambios surten efecto al hacer clic en
otro campo, en OK, en Apply o al presionar Enter.
En este campo

Especifique:

Setpoint (SP)

Introduzca un valor de punto de ajuste (.SP).

% salida establecida

Introduzca un porcentaje de salida establecido (.SO).


En el modo manual de software, este valor se usa para la salida.
En el modo auto, este valor muestra el % de salida.

Output bias

Introduzca un porcentaje de polarizacin de salida (.BIAS).

Proportional gain (Kp)

Introduzca la ganancia proporcional (.KP).


Para ganancias independientes, sta es la ganancia proporcional (sin unidades).
Para ganancias dependientes, sta es la ganancia del controlador (sin unidades).

Integral gain (Ki)

Introduzca la ganancia integral (.KI).


Para ganancias independientes, sta es la ganancia integral (1/segundo).
Para ganancias dependientes, ste es el tiempo de accin integral (minutos por
repeticin).

Derivative time (Kd)

Introduzca la ganancia derivativa (.KD).


Para ganancias independientes, sta es la ganancia derivativa (segundos).
Para ganancias dependientes, ste es el valor en minutos del tiempo de accin
derivada).

Manual Mode

Seleccione ya sea manual (.MO) o manual de software (.SWM).


El modo manual tiene precedencia sobre el modo manual de software, si ambos estn
seleccionados.

Publicacin 1756-RM003K-ES-P Julio 2008

503

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Especifique la configuracin
Seleccione la ficha Configuration. Debe hacer clic en OK o Apply para
que los cambios surtan efecto.
En este campo

Especifique

PID equation

Seleccione ganancias independientes o dependientes (.PE).


Use independientes cuando desee que las tres ganancias (P, I y D) operen de manera
independiente. Use dependientes cuando desee una ganancia total del controlador que
afecte a los tres trminos (P, I y D).

Control action

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
deadband

Habilite o inhabilite esta seleccin (.NOZC).

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
Seleccione la ficha Alarms. Debe hacer clic en OK o Apply para que
los cambios surtan efecto.

504

En este campo

Especifique

PV alta

Introduzca un valor de alarma alta VP (.PVH).

PV low

Introduzca un valor de alarma baja VP (.PVL).

PV deadband

Introduzca un valor de banda muerta de alarma VP (.PVDB).

positive deviation

Introduzca un valor de desviacin positiva (.DVP).

negative deviation

Introduzca un valor de desviacin negativa (.DVN).

deviation deadband

Introduzca un valor de banda muerta de alarma de desviacin (.DVDB).

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones especiales (FBC, DDT, DTR, PID)

Captulo 13

Especificacin de escalado
Seleccione la ficha Scaling. Debe hacer clic en OK o Apply para que
los cambios surtan efecto.
En este campo

Especifique

PV unscaled maximum

Introduzca un valor PV mximo (.MAXI) que sea igual al valor mximo sin escalado
recibido desde el canal de entrada analgico para el valor PV.

PV unscaled minimum

Introduzca un valor VP mnimo (.MINI) que sea igual al valor mnimo sin escalado
recibido desde el canal de entrada analgico para el valor PV.

PV engineering units
maximum

Introduzca el valor mximo de unidades de ingeniera correspondiente a .MAXI (.MAXS)

PV engineering units
minimum

Introduzca el valor mnimo de unidades de ingeniera correspondiente a .MINI (.MINS)

CV maximum

Introduzca un valor de CV mximo correspondiente al 100% (.MAXCV).

CV minimum

Introduzca un valor de CV mnimo correspondiente al 0% (.MINCV).

Tieback maximum

Introduzca un valor retenido mximo (.MAXTIE) que sea igual al valor mximo sin
escalado recibido desde el canal de entrada analgico para el valor retenido.

Tieback minimum

Introduzca un valor retenido mnimo (.MINTIE) que sea igual al valor mnimo sin
escalado recibido desde el canal de entrada analgico para el valor retenido.

PID Initialized

Si usted cambia las constantes de escalado durante el modo de marcha, desactvelo


para reinicializar valores internos de desactivacin de escalado (.INI).

Uso de instrucciones PID

El control de lazo cerrado PID retiene una variable del proceso en un


punto de ajuste deseado. La siguiente figura muestra un ejemplo de
rgimen de flujo/nivel de fluido.

punto de ajuste

error
ecuacin PID

+
rgimen de flujo
variable de proceso

variable de control

detector de nivel

14271

En el ejemplo anterior, el nivel del tanque se compara con el punto de


ajuste. Si el nivel es ms alto que el punto de ajuste, la ecuacin PID
aumenta la variable de control y causa que se abra la vlvula de salida
del tanque, reduciendo as el nivel del tanque.

Publicacin 1756-RM003K-ES-P Julio 2008

505

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

La ecuacin PID usada en la instruccin PID es una ecuacin de


forma posicional con la opcin de usar ganancias independientes
o dependientes. Al usar ganancias independientes, las ganancias
proporcional, integral y derivativa slo afectan sus respectivos
trminos proporcional, integral o derivativo especficos. Al usar
ganancias dependientes, la ganancia proporcional es reemplazada con
una ganancia de controlador que afecta los tres trminos. Usted puede
usar cualquier forma de ecuacin para realizar el mismo tipo de
control. Los dos tipos de ecuacin se proporcionan simplemente para
permitirle usar el tipo de ecuacin con el que usted est ms
familiarizado.
Opcin de ganancia

Derivada de

Ganancias dependientes
(estndar ISA)

error (E)

Ecuacin
t

1
dE
CV = K C E + ---- Edt + T d ------- + BIAS
Ti
dt
0

variable de proceso (PV)

E = SP - PV
t

CV = K C

1
dPV
E + ---- Edt T d ----------- + BIAS
Ti
dt
0

E = PV - SP
t

dPV
1
CV = K C E + ---- Edt + T d ----------- + BIAS
dt
Ti
0

Ganancias independientes

error (E)
t

dE
CV = K P E + K i Edt + K d ------- + BIAS
dt
0

variable de proceso (PV)

E = SP - PV
t

dPV
CV = K P E + K i Edt K d ----------- + BIAS
dt
0

E = PV - SP
t

dPV
CV = K P E + K i Edt + K d ----------- + BIAS
dt
0

506

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones especiales (FBC, DDT, DTR, PID)

Captulo 13

Donde:
Variable

Descripcin

KP

ganancia proporcional (sin unidades)


Kp = Kc sin unidades

Ki

ganancia integral (segundos -1)


Para convertir entre Ki (ganancia integral) y Ti (tiempo de accin integral),
use:
KC
K i = ---------60T i

Kd

ganancia derivativa (segundos)


Para convertir entre Kd (ganancia derivativa) y Td (tiempo de accin
derivada), use:
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

error [(SP-PV) o (PV-SP)]

BIAS

ganancia anticipativa o polarizacin

VC

variable de control

dt

tiempo de actualizacin del lazo

Si no desea usar un trmino particular de la ecuacin PID,


simplemente establezca su ganancia en cero. Por ejemplo, si no desea
accin derivativa, establezca Kd o Td igual a cero.

Bloqueo de accin integral y transferencia sin perturbaciones de


manual a automtico
La instruccin PID evita automticamente una accin integral de
restablecimiento al evitar que el trmino integral se acumule cada vez
que la salida CV llega a sus valores mximos o mnimos, segn lo
establecido por .MAXO y .MINO. El trmino integral acumulado
permanece congelado hasta que la salida CV cae por debajo de su
lmite mximo o supera su lmite mnimo. Seguidamente se reanuda
automticamente la acumulacin integral normal.

Publicacin 1756-RM003K-ES-P Julio 2008

507

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

La instruccin PID acepta dos modos manuales de control:


Modo manual de control

Descripcin

manual de software (.SWM)

tambin conocido como modo de salida establecida


permite que el usuario establezca en el software el % de salida
El valor de salida establecida (.SO) se usa como la salida del lazo. El valor de salida
establecida normalmente proviene de una entrada de operador de un dispositivo de
interface de operador.

manual (.MO)

toma el valor retenido, como una entrada, y ajusta sus variables internas para generar
el mismo valor en la salida.
La entrada retenida relacionada con la instruccin PID se escala al 0 - 100% segn los
valores de .MINTIE y .MAXTIE y se utiliza como la salida del lazo. La entrada retenida
generalmente viene desde la salida de una estacin manual/automtica de hardware
que est pasando por alto la salida proveniente del controlador.
Nota: El modo manual tiene precedencia sobre el modo manual de software si ambos
bits de modo estn establecidos.

La instruccin PID tambin proporciona automticamente


transferencias sin perturbaciones desde el modo manual de software
o desde el modo manual a automtico. La instruccin PID vuelve
a calcular en base a datos originales el valor del trmino de
acumulacin integral requerido para hacer que la salida CV rastree ya
sea el valor de la salida establecida (.SO) en el modo manual de
software o la entrada retenida en el modo manual. De esta manera,
cuando el lazo cambia al modo automtico, la salida CV comienza
desde el valor retenido o salida establecida, y no ocurre ninguna
perturbacin en el valor de salida.
La instruccin PID tambin puede proporcionar automticamente una
transferencia sin perturbaciones de manual a automtico incluso si no
se usa el control integral (es decir, Ki = 0). En este caso, la instruccin
modifica el trmino .BIAS para hacer que la salida CV rastree la salida
establecida o los valores retenidos. Al reanudarse el control
automtico, el trmino .BIAS mantendr su valor ms reciente. Usted
puede inhabilitar el clculo en base a datos originales del trmino
.BIAS con slo establecer el bit .NOBC en la estructura de datos PID.
Tenga en cuenta que si establece .NOBC como verdadero, la
instruccin PID ya no proporciona una transferencia sin
perturbaciones de manual a automtico cuando no se usa control
integral.

Temporizacin de la instruccin PID


La instruccin PID y el muestreo de la variable del proceso necesitan
actualizarse peridicamente. Este tiempo de actualizacin est
relacionado con el proceso fsico que usted est controlando. Para
lazos muy lentos como, por ejemplo, lazos de temperatura, un
perodo de una actualizacin por segundo o incluso un perodo

508

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones especiales (FBC, DDT, DTR, PID)

Captulo 13

mayor, generalmente es suficiente para obtener un buen control. Para


lazos algo ms rpidos, tales como lazos de presin o flujo, se puede
requerir perodos de actualizacin como de 250 milisegundos. Slo en
raras ocasiones, como en el caso de control de tensin mecnica o
carrete desbobinador, se requieren perodos de actualizacin de lazo
de 10 milisegundos o menores.
Puesto que la instruccin PID usa una base de tiempo para su clculo,
usted necesita sincronizar la ejecucin de esta instruccin con el
muestreo de la variable del proceso (PV).
La manera ms fcil de ejecutar la instruccin PID es poner la
instruccin PID en una tarea peridica. Establezca el tiempo de
actualizacin de lazo (.UPD) igual al rgimen de la tarea peridica
para asegurarse de que la instruccin PID se ejecute en cada escn
de la tarea peridica.

Lgica de escalera de rels

Texto estructurado
PID(TIC101,Local:0:I.Ch0Data,Local:0:I.Ch1Data,
Local:1:O.Ch4Data,0,Local:1:I.Ch4InHold,
Local:1:I.Ch4Data);

Cuando use una tarea peridica, asegrese de que la entrada


analgica empleada para la variable del proceso se actualice con el
procesador a un rgimen considerablemente ms rpido que el
rgimen de la tarea peridica. Idealmente, la variable del proceso
debe enviarse al procesador a un rgimen por lo menos de cinco a
diez veces mayor que el rgimen de la tarea peridica. Esto
minimiza la diferencia de tiempo entre las muestras de la variable
del proceso y la ejecucin del lazo PID. Por ejemplo, si el lazo PID
es una tarea peridica de 250 milisegundos, use un tiempo de
actualizacin de lazo de 250 milisegundos (.UPD = .25) y configure el
mdulo de entrada analgica para producir datos por lo menos cada
25 50 milisegundos.

Publicacin 1756-RM003K-ES-P Julio 2008

509

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Otro mtodo algo menos exacto de ejecutar una instruccin PID


consiste en colocar la instruccin en una tarea continua y usar un bit
de temporizador expirado para activar la ejecucin de la instruccin
PID.

Lgica de escalera de rels

Texto estructurado
PID_timer.pre := 1000
TONR(PID_timer);
IF PID_timer.DN THEN
PID(TIC101,Local:0:I.Ch0Data,Local:0:I.Ch1Data,
Local:1:O.Ch0Data,0,Local:1:I.Ch0InHold,
Local:1:I.Ch0Data);
END_IF;

Con este mtodo, el tiempo de actualizacin de lazo de la instruccin


PID debe establecerse igual que el valor prefijado en el temporizador.
Igual que cuando se usa una tarea peridica, usted debe establecer el
mdulo de entrada analgica para producir la variable del proceso a
un rgimen considerablemente mayor que el rgimen de actualizacin
de lazo. Usted slo debe usar el mtodo de temporizacin de
ejecucin PID para lazos cuyos tiempos de actualizacin de lazo sean
por lo menos varias veces mayores que el tiempo de ejecucin ms
largo posible de la tarea continua.
La manera ms exacta de ejecutar una instruccin PID es usar la
funcin de muestreo en tiempo real (RTS) de los mdulos de entradas
analgicas 1756. El mdulo de entradas analgicas muestrea sus
entradas segn el rgimen de muestreo en tiempo real que usted haya
establecido al momento de configurar el mdulo. Cuando el perodo

510

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones especiales (FBC, DDT, DTR, PID)

Captulo 13

de muestreo en tiempo real del mdulo expira, ste actualiza sus


entradas y actualiza un sello de hora continuo (representado por el
miembro RolllingTimestamp de la estructura de entradas analgicas)
producido por el mdulo.
El rango del sello de hora oscila entre 0 - 32767 milisegundos.
Monitoree el sello de hora. Cuando cambia, significa que se recibi
una nueva muestra de la variable del proceso. Cada vez que cambia
un sello de hora, se ejecuta una vez la instruccin PID. Puesto que el
muestreo de la variable del proceso es activado por el mdulo de
entradas analgicas, el tiempo de muestreo de entrada es muy exacto,
y el tiempo de actualizacin de lazo usado por la instruccin PID
debe establecerse igual al tiempo RTS del mdulo de entradas
analgicas.
Para asegurarse de no omitir muestreos de la variable del proceso,
ejecute la lgica a un rgimen ms rpido que el tiempo RTS. Por
ejemplo, si el tiempo RTS es 250 ms, puede colocar la lgica PID en
una tarea peridica que se ejecute cada 100 ms para asegurarse de no
omitir nunca un muestreo. Incluso podra colocar la lgica PID en una
tarea continua, siempre y cuando se asegure de que la lgica se
actualizara ms frecuentemente que una vez cada 250 milisegundos.
A continuacin se muestra un ejemplo del mtodo de ejecucin RTS.
La ejecucin de la instruccin PID depende de la recepcin de datos
de entradas analgicas. Si el mdulo de entradas analgicas falla o se
desmonta, el controlador deja de recibir sellos de hora continuos y el
lazo PID deja de ejecutarse. Usted debe monitorear el bit de estado de
la entrada analgica PV y, si muestra un estado incorrecto, fuerce el
lazo al modo manual de software y ejecute el lazo en cada escn. As
el operador podr cambiar manualmente la salida del lazo PID.

Lgica de escalera de rels

Publicacin 1756-RM003K-ES-P Julio 2008

511

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Texto estructurado
IF (Local:0:I.Ch0Fault) THEN
TIC101.SWM [:=] 1;
ELSE
TIC101.SWM := 0;
END_IF;
IF (Local:0:I.RollingTimestamp<>PreviousTimestamp) O
(Local:0:I.Ch0Fault) THEN
PreviousTimestamp := Local:0:I.RollingTimestamp;
PID(TIC101,Local:0:I.Ch0Data,Local:0:I.Ch1Data,
Local:1:O.Ch0Data,0,Local:1:I.Ch0InHold,
Local:1:I.Ch0Data);
END_IF;

Reinicio sin problemas


La instruccin PID puede interactuar con los mdulos de salidas
analgicas 1756 para admitir un reinicio sin perturbaciones cuando el
controlador cambia del modo de programacin al modo de marcha,
o cuando se enciende el controlador.
Cuando el mdulo de salidas analgicas 1756 pierde comunicacin
con el controlador o detecta que el controlador est en el modo de
programacin, el mdulo de salidas analgicas establece sus salidas
segn los valores de condicin de fallo que usted especific cuando
configur el mdulo. Seguidamente, cuando el controlador regresa al
modo de marcha o vuelve a establecer comunicacin con el mdulo
de salidas analgicas, usted puede disponer que la instruccin PID
restablezca automticamente su salida de variable de control igual a la
salida analgica, mediante el bit Inhold y los parmetros Inhold Value
en la instruccin PID.

512

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones especiales (FBC, DDT, DTR, PID)

Captulo 13

Para establecer un reinicio sin problemas:


Haga lo siguiente

Detalles:

Configure el canal del mdulo de salidas


analgicas 1756 que recibe la variable de control
proveniente de la instruccin PID

Marque la casilla de verificacin de retener para inicializacin (hold for


initialization) en la pgina de propiedades del canal especfico del mdulo.

Esto indicar al mdulo de salidas analgicas que cuando el controlador regrese al


modo de marcha o vuelva a establecer comunicacin con el mdulo, el mdulo debe
retener la salida analgica en su valor actual hasta que el valor enviado desde el
controlador coincida (dentro de un intervalo de 0.1%) con el valor actual usado por
el canal de salida. La salida del controlador cambiar gradualmente al valor de
salida retenido actualmente mediante el uso del trmino .BIAS. Este cambio en
forma de rampa es similar al de la transferencia sin perturbaciones.
Introduzca el tag de bit Inhold y el tag Inhold Value
en la instruccin PID

El mdulo de salidas analgicas 1756 retorna dos valores por cada canal en su
estructura de datos de entrada. El bit de estado en retencin (.Ch2InHold, por
ejemplo) cuando es verdadero, indica que el canal de salida analgica est
reteniendo su valor. El valor de relectura de datos (.Ch2Data, por ejemplo) muestra
el valor de salida actual en unidades de ingeniera.

Introduzca el tag del bit de estado en retencin como parmetro InHold de la


instruccin PID. Introduzca el tag del valor de relectura de datos como el parmetro
Inhold Value.

Cuando el bit Inhold se hace verdadero, la instruccin PID mueve el Inhold Value a la
salida de variable de control y se reinicializa para permitir un reinicio sin
perturbaciones en dicho valor. Cuando el mdulo de salidas analgicas recibe su
valor de vuelta desde el controlador, ste desactiva el bit de estado InHold, lo cual
permite que la instruccin PID comience normalmente a realizar el control.

Suavizado derivativo
El clculo de la derivada se mejora mediante el uso de un filtro de
suavizado derivativo. Este filtro digital pasabajos de primer orden
ayuda a minimizar picos grandes del trmino derivativo causados por
ruido en la PV. Este suavizado se hace ms agresivo mientras mayores
son los valores de ganancia derivativa. Usted puede inhabilitar el
suavizado derivativo si su proceso requiere valores muy grandes de
ganancia derivativa (Kd > 10, por ejemplo). Para inhabilitar el
suavizado derivativo, seleccione la opcin sin suavizado derivativo
(No derivative smoothing) en la ficha Configuration o establezca el
bit .NDF en la estructura PID.

Publicacin 1756-RM003K-ES-P Julio 2008

513

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Establezca la banda muerta


La banda muerta ajustable le permite seleccionar un rango de errores
por encima y por debajo del punto de ajuste donde la salida no
cambia siempre y cuando el error permanezca dentro de este rango.
Esta banda muerta le permite controlar la proximidad con la que la
variable del proceso coincide con el punto de ajuste sin cambiar la
salida. La banda muerta tambin ayuda a minimizar el desgaste del
dispositivo de control final.

+ banda muerta
punto de ajuste

error dentro del rango de banda


muerta

- banda muerta

tiempo

41026

El cruce por cero es un control de banda muerta que permite que la


instruccin use el error para fines de clculo desde que la variable del
proceso penetra en la banda muerta hasta que la variable del proceso
cruza el punto de ajuste. Una vez que la variable del proceso cruza el
punto de ajuste (el error cruza por cero y cambia de signo), y siempre
que la variable del proceso permanezca en la banda muerta, la salida
no cambiar.
La banda muerta se extiende, por arriba y por debajo del punto de
ajuste, el valor que usted especifica. Introduzca cero para inhibir la
banda muerta. La banda muerta tiene las mismas unidades escaladas
que el punto de ajuste. Se puede usar la banda muerta sin la funcin
de cruce por cero; para ello seleccione la opcin sin cruce por cero
(no zero crossing for deadband) en la ficha Configuration, o
establezca el bit .NOZC en la estructura PID.
Si usted est usando la banda muerta, la variable Control debe ser
REAL o se forzar a 0 cuando el error est dentro de la banda muerta.

Use lmite de salida


Usted puede establecer un lmite de salida (porcentaje de salida) en la
salida de control. Cuando la instruccin detecta que la salida ha
llegado a un lmite, establece un bit de alarma y evita que la salida
exceda el lmite inferior o superior.

514

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones especiales (FBC, DDT, DTR, PID)

Captulo 13

Ganancia anticipativa o polarizacin de salida


Usted puede establecer ganancia anticipativa a una perturbacin del
sistema alimentando el valor .BIAS en el valor ganancia anticipativa/
polarizacin de la instruccin PID.
El valor de ganancia anticipativa representa una perturbacin
alimentada en la instruccin PID antes de que la perturbacin tenga
oportunidad de cambiar la variable de proceso. La ganancia
anticipativa a menudo se usa para controlar procesos con un retraso
de transporte. Por ejemplo, un valor de ganancia anticipativa que
representa agua fra vertida en una mezcla tibia podra reforzar el
valor de salida ms rpidamente que si se espera que la variable del
proceso cambie como resultado de la mezcla.
Un valor de polarizacin generalmente se usa cuando no se usa
control integral. En este caso, el valor de polarizacin puede ajustarse
para mantener la salida en el rango requerido a fin de mantener PV
cerca del punto de ajuste.

Lazos en cascada
El PID conecta en cascada dos lazos asignando la salida en porcentaje
del lazo maestro al punto de ajuste del lazo esclavo. El lazo esclavo
convierte automticamente la salida del lazo maestro en las unidades
de ingeniera correctas para el punto de ajuste del lazo esclavo, con
base en los valores del lazo esclavo para .MAXS y .MINS.

Lgica de escalera de rels

Texto estructurado
PID(master,pv_master,0,cv_master,0,0,0);
PID (slave,pv_slave,0,cv_slave,master,0,0);

Publicacin 1756-RM003K-ES-P Julio 2008

515

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Control de relacin
Usted puede mantener la relacin entre dos valores usando estos
parmetros:
valor no controlado
valor controlado (el punto de ajuste resultante que se usar para
la instruccin PID)
relacin entre estos dos valores

Lgica de escalera de rels

Texto estructurado
pid_2.sp := uncontrolled_flow * ratio
PID(pid_2,pv_2,tieback_2,cv_2,0,0,0);

516

Para este parmetro de multiplicacin

Introduzca este valor

destination

valor controlado

source A

valor no controlado

source B

relacin

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones especiales (FBC, DDT, DTR, PID)

Teora de PID

Captulo 13

Las siguientes figuras muestran el flujo del proceso para una


instruccin PID.

Proceso PID
SP
Mostrado
como EU

Error
mostrado
como EU

Software A/M
o bien
Modo de
estacin A/M

Modo A/M de
software

SP-PV

Auto
+

SP

% de
polarizacin
de salida

Accin de
control
Convierte unidades
de ingeniera a %

(Error)
-

PV-SP

PVT

Clculo PID

(Out%)

Auto

Error X 100
maxs-mins

-1

Manual

Convierte % a unidades CV

Auto
Lmite de
salida

Manual

No

Convierte de binario a
unidades de ingeniera

CV

Salida (CV)
mostrada como
% de escalado
EU

Convierte unidades de
valor retenido a %

(PV-mini)(maxs-mins) + mins
maxi-mini

CV%(maxcv-mincv)
+ mincv
100

Manual

% salida
establecida

PV
Mostrado
como EU

% salida
establecida

Modo de
estacin A/M

tieback-mintie
maxtie-mintie

x 100

PV

Proceso PID con lazos maestro/esclavo


Lazo
maestro

A/M de software
o bien
Modo de estacin A/M
Auto

SP

SP-PV
(Error)

+
-

% de
polarizacin
de salida

Accin de
control
Convierte unidades
de ingeniera a %

Clculo PID (Out%)

PV-SP

PVT
No

Manual

Lmite de
salida

% salida
establecida

(Master.Out)

Manual
Modo A/M de
software

(Master.Out)

Modo de
estacin A/M

% salida
establecida

Convierte de binario a
unidades de ingeniera
(PV-mini)(maxs-mins)
+ mins
maxi-mini

Lazo
esclavo

Error X 100
maxs-mins

-1

Manual

Modo A/M de
software
Auto
Auto

SP

Convierte
unidades de
ingeniera a %

PV

Error X 100
maxs-mins

Auto
Manual
Manual
Los tems referidos en este cuadro
son parmetros, unidades y modos
que pertenecen al lazo esclavo
designado.

PV
% de
polarizacin
de salida

Accin de
control
Convierte % a unidades (SP)
de ingeniera

X (maxs-mins)
+ mins
100

SP-PV
+

-1

PV-SP

Convierte
unidades de
ingeniera a %

Clculo PID

Modo A/M de
software
Auto

Error X 100
maxs-mins

Modo de
estacin A/M

Auto

Convierte de binario a
unidades de ingeniera
(PV-mini)(maxs-mins)
+ mins
maxi-mini

% salida
establecida

Convierte % a unidades CV
Lmite de
salida

Manual
Manual

% salida
establecida

CV%(maxcv-mincv)
100

+ mincv

Convierte unidades de
valor retenido a %
tieback-mintie
maxtie-mintie

x 100

PV

Publicacin 1756-RM003K-ES-P Julio 2008

517

Captulo 13

Instrucciones especiales (FBC, DDT, DTR, PID)

Notas:

518

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

14

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

Introduccin
Si desea

Las instrucciones trigonomtricas evalan las operaciones aritmticas


mediante operaciones trigonomtricas.
Use esta instruccin

Disponible en estos lenguajes

Vea la pgina

Hallar el seno de un valor.

SIN

lgica de escalera de rels


texto estructurado
bloque de funciones

520

Hallar el coseno de un valor.

COS

lgica de escalera de rels


texto estructurado
bloque de funciones

523

Hallar la tangente de un valor.

TAN

lgica de escalera de rels


texto estructurado
bloque de funciones

526

Hallar el arco seno de un valor.

ASN

lgica de escalera de rels


texto estructurado
bloque de funciones

529

lgica de escalera de rels


texto estructurado
bloque de funciones

532

lgica de escalera de rels


texto estructurado
bloque de funciones

535

ASIN(1)
Hallar el arco coseno de un valor.

ACS
ACOS(1)

Hallar el arco tangente de un valor.

ATN
ATAN(1)

(1)

Texto estructurado solamente.

Usted puede mezclar diferentes tipos de datos, pero puede producirse


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

519Publicacin 1756-RM003K-ES-P Julio 2008

519

Captulo 14

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

Seno (SIN)

La instruccin SIN halla el seno del valor de origen (en radianes) y


almacena el resultado en Destination.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source

SINT

inmediato

hallar el seno de este valor

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.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones
Operando

Tipo

Formato

Descripcin

SIN tag

FBD_MATH_ADVANCED

estructura

estructura SIN

Estructura FBD_MATH_ADVANCED
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

Source

REAL

Entrada a la instruccin matemtica.


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

REAL

Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico


para esta salida.

520

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 14

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

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo: ninguna
Ejecucin:
Lgica de escalera de rels
Condicin:

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.


La condicin de salida de rengln se establece como verdadera.

post-escn

La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin

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

Publicacin 1756-RM003K-ES-P Julio 2008

Ninguna.

521

Captulo 14

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

Ejemplo: Calcule el seno de value y coloque el resultado en result.


Lgica de escalera de rels

Texto estructurado
result := SIN(value);

Bloque de funciones

522

Publicacin 1756-RM003K-ES-P Julio 2008

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

Coseno (COS)

Captulo 14

La instruccin COS halla el coseno del valor de origen (en radianes) y


almacena el resultado en Destination.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source

SINT

inmediato

hallar el coseno de este valor

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.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

Operando

Tipo

Formato

Descripcin

COS tag

FBD_MATH_ADVANCED

estructura

estructura COS

523

Captulo 14

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

Estructura FBD_MATH_ADVANCED
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

Source

REAL

Entrada a la instruccin matemtica.


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

REAL

Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico


para esta salida.

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

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo: ninguna
Ejecucin:
Lgica de escalera de rels
Condicin

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.


La condicin de salida de rengln se establece como verdadera.

post-escn

524

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 14

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.

Ejemplo: Calcule coseno de value y coloque el resultado en result.


Lgica de escalera de rels

Texto estructurado
result := COS(value);

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

525

Captulo 14

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

Tangente (TAN)

La instruccin TAN halla la tangente del valor de origen (en radianes)


y almacena el resultado en Destination.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source

SINT

inmediato

halla la tangente de este valor

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.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

526

Operando

Tipo

Formato

Descripcin

TAN tag

FBD_MATH_ADVANCED

estructura

Estructura TAN

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 14

Estructura FBD_MATH_ADVANCED
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

Source

REAL

Entrada a la instruccin matemtica.


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

REAL

Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico


para esta salida.

Descripcin: Source debe ser mayor o igual que -102943.7 (-2x214) y menor o
igual que 102943.7 (2x214).

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo: ninguna
Ejecucin:
Lgica de escalera de rels
Condicin

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.


La condicin de salida de rengln se establece como verdadera.

post-escn

La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin

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

Publicacin 1756-RM003K-ES-P Julio 2008

Ninguna.

527

Captulo 14

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

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


Lgica de escalera de rels

Texto estructurado
result := TAN(value);

Bloque de funciones

528

Publicacin 1756-RM003K-ES-P Julio 2008

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

Arco seno (ASN)

Captulo 14

La instruccin ASN halla el arco seno del valor de Source y almacena


el resultado en Destination (en radianes).

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source

SINT

inmediato

hallar el arco seno de este valor

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.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones
Operando

Tipo

Formato

Descripcin

ASN tag

FBD_MATH_ADVANCED

estructura

estructura ASN

Estructura FBD_MATH_ADVANCED
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

Source

REAL

Entrada a la instruccin matemtica.


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

REAL

Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico


para esta salida.

Publicacin 1756-RM003K-ES-P Julio 2008

529

Captulo 14

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

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

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo: ninguna
Ejecucin:
Lgica de escalera de rels
Condicin

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.


La condicin de salida de rengln se establece como verdadera.

post-escn

La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin

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

530

Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 14

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


Lgica de escalera de rels

Texto estructurado
result := ASIN(value);

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

531

Captulo 14

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

Arco coseno (ACS)

La instruccin ACS halla el arco coseno del valor de Source y


almacena el resultado en Destination (en radianes).

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source

SINT

inmediato

hallar el arco coseno de este valor

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.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones
Operando

Tipo

Formato

Descripcin

ACS tag

FBD_MATH_ADVANCED

estructura

estructura ACS

Estructura FBD_MATH_ADVANCED
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

Source

REAL

Entrada a la instruccin matemtica.


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

REAL

Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico


para esta salida.

532

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 14

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

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo: ninguna
Ejecucin:
Lgica de escalera de rels
Condicin

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.


La condicin de salida de rengln se establece como verdadera.

post-escn

La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin

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

Publicacin 1756-RM003K-ES-P Julio 2008

Ninguna.

533

Captulo 14

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

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


Lgica de escalera de rels

Texto estructurado
result := ACOS(value);

Bloque de funciones

534

Publicacin 1756-RM003K-ES-P Julio 2008

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

Arco tangente (ATN)

Captulo 14

La instruccin ATN halla el arco tangente del valor de Source y


almacena el resultado en Destination (en radianes).

Operandos:
Lgica de escalera de rels
Operando:

Tipo

Formato

Descripcin

Source

SINT

inmediato

hallar el arco tangente de este valor

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.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones
Operando

Tipo

Formato

Descripcin

ATN tag

FBD_MATH_ADVANCED

estructura

estructura ATN

Estructura FBD_MATH_ADVANCED
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

Source

REAL

Entrada a la instruccin matemtica.


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

REAL

Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico


para esta salida.

Publicacin 1756-RM003K-ES-P Julio 2008

535

Captulo 14

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

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


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

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo: ninguna
Ejecucin:
Lgica de escalera de rels
Condicin

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.


La condicin de salida de rengln se establece como verdadera.

post-escn

La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin

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

536

Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 14

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


Lgica de escalera de rels

Texto estructurado
result := ATAN(value);

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

537

Captulo 14

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

Notas:

538

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

15

Instrucciones matemticas avanzadas


(LN, LOG, XPY)

Introduccin
Si desea
Hallar el logaritmo natural de un valor.

Las instrucciones matemticas avanzadas incluyen estas instrucciones:


Use esta instruccin
LN

Disponible en estos lenguajes


lgica de escalera de rels

Vea la pgina
540

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.

Usted puede mezclar diferentes tipos de datos, pero puede producirse


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

539Publicacin 1756-RM003K-ES-P Julio 2008

539

Captulo 15

Instrucciones matemticas avanzadas (LN, LOG, XPY)

Logaritmo natural (LN)

La instruccin LN halla el logaritmo natural de Source y almacena el


resultado en Destination.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source

SINT

inmediato

hallar el logaritmo natural de este valor

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.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones
Operando

Tipo

Formato

Descripcin

LN tag

FBD_MATH_ADVANCED

estructura

estructura LN

Estructura FBD_MATH_ADVANCED
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

Source

REAL

Entrada a la instruccin matemtica.


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de salida Tipo de datos

Descripcin

EnableOut

La instruccin produjo un resultado vlido.

540

BOOL

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones matemticas avanzadas (LN, LOG, XPY)

Captulo 15

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

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo: ninguna
Ejecucin:
Lgica de escalera de rels
Condicin

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

post-escn

La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin

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

Publicacin 1756-RM003K-ES-P Julio 2008

Ninguna.

541

Captulo 15

Instrucciones matemticas avanzadas (LN, LOG, XPY)

Ejemplo: Calcule el logaritmo natural de value y coloque el resultado en result.


Ejemplo de la lgica de escalera de rels

Texto estructurado
result := LN(value);

Bloque de funciones

542

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones matemticas avanzadas (LN, LOG, XPY)

Logaritmo base 10 (LOG)

Captulo 15

La instruccin LOG halla el logaritmo base 10 de Source y almacena el


resultado en Destination.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source

SINT

inmediato

hallar el logaritmo de este valor

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.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

Operando

Tipo

Formato

Descripcin

LOG tag

FBD_MATH_ADVANCED

estructura

Estructura LOG

543

Captulo 15

Instrucciones matemticas avanzadas (LN, LOG, XPY)

Estructura FBD_MATH_ADVANCED
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

Source

REAL

Entrada a la instruccin matemtica.


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

REAL

Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico


para esta salida.

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

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo: ninguna
Ejecucin:
Lgica de escalera de rels
Condicin

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.


La condicin de salida de rengln se establece como verdadera.

post-escn

La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin

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

544

Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones matemticas avanzadas (LN, LOG, XPY)

Captulo 15

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


Lgica de escalera de rels

Texto estructurado
result := LOG(value);

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

545

Captulo 15

Instrucciones matemticas avanzadas (LN, LOG, XPY)

X a la potencia de Y (XPY)

La instruccin XPY eleva Source A (X) a la potencia de Source B (Y) y


almacena el resultado en Destination.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source X

SINT

inmediato

valor base

INT

tag

DINT
REAL
Source Y

SINT

inmediato

INT

tag

exponente

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.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones

546

Operando

Tipo

Formato

Descripcin

XPY tag

FBD_MATH

estructura

estructura XPY

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones matemticas avanzadas (LN, LOG, XPY)

Captulo 15

Estructura FBD_MATH
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

Source X

REAL

Valor base.
Vlido = cualquier valor con punto flotante (coma flotante)

Source Y

REAL

exponente
Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

REAL

Resultado de la instruccin matemtica. Se establecen indicadores de estado aritmtico


para esta salida.

Descripcin: Si Source X es negativo, Source Y debe ser un valor entero; de lo


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

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo:
Ocurrir un fallo menor si

Tipo de fallo

Cdigo de fallo

Source X es negativo y Source Y no es un valor


entero

Ejecucin:
Lgica de escalera de rels
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.
La condicin de salida de rengln se establece como verdadera.

post-escn

Publicacin 1756-RM003K-ES-P Julio 2008

La condicin de salida de rengln se establece como falsa.

547

Captulo 15

Instrucciones matemticas avanzadas (LN, LOG, XPY)

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.

Ejemplo: La instruccin XPY eleva value_1 a la potencia de value_2 y coloca el


resultado en result.

Lgica de escalera de rels

Texto estructurado
result := (value_1 value_2);

Bloque de funciones

548

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

16

Instrucciones de conversin matemtica


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

Introduccin
Si desea
Convertir radianes en grados.

Las instrucciones de conversin matemtica convierten valores.


Use esta instruccin
DEG

Disponible en estos lenguajes


lgica de escalera de rels

Vea la pgina
550

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

TRUNC(1)

texto estructurado

561

bloque de funciones
(1)

Texto estructurado solamente.

Usted puede mezclar diferentes tipos de datos, pero puede producirse


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

549Publicacin 1756-RM003K-ES-P Julio 2008

549

Captulo 16

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

Grados (DEG)

La instruccin DEG convierte Source (radianes) en grados y almacena


el resultado en Destination.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source

SINT

inmediato

valor que se va a convertir en grados

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.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones
Operando

Tipo

Formato

Descripcin

DEG tag

FBD_MATH_ADVANCED

estructura

Estructura DEG

Estructura FBD_MATH_ADVANCED
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

Source

REAL

Entrada a la instruccin de conversin.


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

REAL

Resultado de la instruccin de conversin. Se establecen indicadores de estado aritmtico


para esta salida.

550

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 16

Descripcin: La instruccin DEG usa este algoritmo:


Source*180/ (donde = 3.141593)

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo: ninguna
Ejecucin:
Lgica de escalera de rels
Condicin

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.


La condicin de salida de rengln se establece como verdadera.

post-escn

La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin

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

Publicacin 1756-RM003K-ES-P Julio 2008

Ninguna.

551

Captulo 16

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

Ejemplo: Convierta value en grados y coloque el resultado en result.


Lgica de escalera de rels

Texto estructurado
result := DEG(value);

Bloque de funciones

552

Publicacin 1756-RM003K-ES-P Julio 2008

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

Radianes (RAD)

Captulo 16

La instruccin RAD convierte Source (grados) en radianes y almacena


el resultado en Destination.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source

SINT

inmediato

valor que se va a convertir en radianes

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.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones
Operando

Tipo

Formato

Descripcin

RAD tag

FBD_MATH_ADVANCED

estructura

estructura RAD

Estructura FBD_MATH_ADVANCED
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

Source

REAL

Entrada a la instruccin de conversin.


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

REAL

Resultado de la instruccin de conversin. Se establecen indicadores de estado aritmtico


para esta salida.

Publicacin 1756-RM003K-ES-P Julio 2008

553

Captulo 16

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

Descripcin: La instruccin RAD usa este algoritmo:


Source*/180 (donde = 3.141593)

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo: ninguna
Ejecucin:
Lgica de escalera de rels
Condicin

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.


La condicin de salida de rengln se establece como verdadera.

post-escn

La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin

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

554

Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 16

Ejemplo Convierta value en radianes y coloque el resultado en result.


Lgica de escalera de rels

Texto estructurado
result := RAD(value);

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

555

Captulo 16

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

Convertir a BCD (TOD)

La instruccin TOD convierte un valor decimal (0 Source


99,999,999) en un valor BCD y almacena el resultado en Destination.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source

SINT

inmediato

valor que se va a convertir en decimal

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
Operando

Tipo

Formato

Descripcin

TOD tag

FBD_CONVERT

estructura

estructura TOD

Estructura FBD_CONVERT
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

Source

DINT

Entrada a la instruccin de conversin.


Vlido = cualquier nmero entero

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

DINT

Resultado de la instruccin de conversin. Se establecen indicadores de estado aritmtico


para esta salida.

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


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

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

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 16

Condiciones de fallo:
Ocurrir un fallo menor si

Tipo de fallo

Cdigo de fallo

Source < 0

Ejecucin:
Lgica de escalera de rels
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
origen < 0

origen > 99,999,999

no

convertir origen en BCD

S:V se establece a 1

la condicin de salida de
rengln se establece como
verdadera

fin

condicin de entrada de rengln es verdadera

El controlador convierte Source en BCD y coloca el resultado en Destination.


La condicin de salida de rengln se establece como verdadera.

post-escn

La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin

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

Publicacin 1756-RM003K-ES-P Julio 2008

Ninguna.

557

Captulo 16

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

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


resultado en result_a.

Lgica de escalera de rels

Bloque de funciones

558

Publicacin 1756-RM003K-ES-P Julio 2008

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

Convertir a entero (FRD)

Captulo 16

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


decimal y almacena el resultado en Destination.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source

SINT

inmediato

valor que se va a convertir en decimal

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
Operando

Tipo

Formato:

Descripcin

FRD tag

FBD_CONVERT

estructura

estructura FRD

Estructura FBD_CONVERT
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

Source

DINT

Entrada a la instruccin de conversin.


Vlido = cualquier nmero entero

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

DINT

Resultado de la instruccin de conversin. Se establecen indicadores de estado aritmtico


para esta salida.

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


decimal y almacena el resultado en Destination.

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

Publicacin 1756-RM003K-ES-P Julio 2008

559

Captulo 16

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

Ejecucin:
Lgica de escalera de rels
Condicin

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.


La condicin de salida de rengln se establece como verdadera.

post-escn

La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin

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.

Ejemplo: La instruccin FRD convierte value_a en un valor decimal y coloca el


resultado en result_1.

Lgica de escalera de rels

Bloque de funciones

560

Publicacin 1756-RM003K-ES-P Julio 2008

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

Truncar (TRN)

Captulo 16

La instruccin TRN retira (trunca) la parte fraccionaria de Source y


almacena el resultado en Destination.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Source

REAL

inmediato

valor que se va a truncar

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.
Consulte el Apndice C, Programacin de texto estructurado para
obtener informacin sobre la sintaxis de las expresiones en texto
estructurado.

Bloque de funciones
Operando

Tipo

Formato

Descripcin

TRN tag

FBD_TRUNCATE

estructura

estructura TRM

Estructura FBD_TRUNCATE
Parmetro de
entrada

Tipo de datos

Descripcin

EnableIn

BOOL

Habilitacin de entrada. Si se borra, la instruccin no se ejecuta y las salidas no se


actualizan.
La opcin predeterminada es establecido.

Source

REAL

Entrada a la instruccin de conversin.


Vlido = cualquier valor con punto flotante (coma flotante)

Parmetro de salida Tipo de datos

Descripcin

EnableOut

BOOL

La instruccin produjo un resultado vlido.

Dest

DINT

Resultado de la instruccin de conversin. Se establecen indicadores de estado aritmtico


para esta salida.

Publicacin 1756-RM003K-ES-P Julio 2008

561

Captulo 16

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

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


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

Indicadores de estado
aritmtico: Los indicadores de estado aritmtico son afectados.
Condiciones de fallo: ninguna
Ejecucin:
Lgica de escalera de rels
Condicin

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.


La condicin de salida de rengln se establece como verdadera.

post-escn

La condicin de salida de rengln se establece como falsa.

Bloque de funciones
Condicin

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

562

Ninguna.

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 16

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


fraccionaria, y coloque el resultado en float_value_1_truncated.

Lgica de escalera de rels

Texto estructurado
float_value_1_truncated := TRUNC(float_value_1);

Bloque de funciones

Publicacin 1756-RM003K-ES-P Julio 2008

563

Captulo 16

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

Notas:

564

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

17

Instrucciones para puerto serie ASCII


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

Introduccin

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

Para usar las instrucciones del puerto serie ASCII, usted debe
configurar el puerto serie del controlador. Consulte el
documento Logix5000 Controllers Common Procedures,
publicacin 1756-PM001.

Si desea

Por ejemplo

determinar cundo el bfer contiene


caracteres de terminacin

ver si hay datos que tienen caracteres


de terminacin

Use esta
instruccin
ABL

Disponible en estos
lenguajes

Vea la
pgina

lgica de escalera de
rels

570

texto estructurado
contar los caracteres en el bfer

verificar el nmero requerido de


caracteres antes de leer el bfer

ACB

lgica de escalera de
rels

573

texto estructurado
borrar el bfer
borrar las instrucciones del puerto
serie ASCII que actualmente se estn
ejecutando o estn en la cola.
obtener el estado de las lneas de
control del puerto serie

borrar datos antiguos del bfer al


momento de la puesta en marcha

ACL

sincronizar el bfer con un


dispositivo
hacer que el mdem cuelgue

lgica de escalera de
rels

575

texto estructurado
AHL

activar y desactivar la seal DTR

lgica de escalera de
rels

577

texto estructurado

activar y desactivar la seal RTS


leer un nmero fijo de caracteres

leer datos desde un dispositivo que


enva el mismo nmero de caracteres
durante cada transmisin

ARD

lgica de escalera de
rels

581

texto estructurado
leer un nmero variable de
caracteres, inclusive el primer
conjunto de caracteres de
terminacin

leer datos desde un dispositivo que


enva un nmero variable de
caracteres en cada transmisin

enviar caracteres y aadir


automticamente uno o dos
caracteres adicionales para marcar
el final de los datos

enviar mensajes que siempre usan


los mismos caracteres de terminacin

enviar caracteres

enviar mensajes que usan una


variedad de caracteres de
terminacin

ARL

lgica de escalera de
rels

585

texto estructurado
AWA

lgica de escalera de
rels

589

texto estructurado
AWT

lgica de escalera de
rels

594

texto estructurado

565Publicacin 1756-RM003K-ES-P Julio 2008

565

Captulo 17

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

Ejecucin de la instruccin
Las instrucciones de puerto serie ASCII se ejecutan de manera
asncrona con el escn de la lgica:
Lgica
La condicin de entrada
de rengln de
instruccin cambia de
falsa a verdadera

Cola ASCII

Tarea ASCII

Instruccin 1

La instruccin en la
parte superior de la
cola se ejecuta.

Instruccin 2
Instruccin 3
Instruccin 4

Los datos fluyen


entre la tarea y el
bfer.

La instruccin entra en
la cola ASCII.
Los datos fluyen entre el
bfer y el puerto serie.
Puerto serie

Bfer

Cada instruccin de puerto serie ASCII (excepto ACL) usa una


estructura SERIAL_PORT_CONTROL para realizar las siguientes
funciones:
controlar la ejecucin de la instruccin
proporcionar informacin de estado acerca de la instruccin

566

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 17

El siguiente diagrama de temporizacin muestra los cambios en los


bits de estado mientras la instruccin ABL prueba el bfer en busca de
caracteres de terminacin.
escn

escn

escn

escn

condicin de
entrada de rengln

falsa

verdadera

falsa

verdadera

falsa

.EN

desactivado

activado

desactivado

activado

desactivado

.EU

desactivado

activado

.RN

desactivado

activado

.DN o .ER

desactivado

activado

desactivado

activado

.FD

desactivado

activado

desactivado

activado

.EM

desactivado

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

Publicacin 1756-RM003K-ES-P Julio 2008

desactivado

activado

activado

desactivado

desactivado

activado

restablece los bits de estado


cuando se escanean y el bit
.DN o .ER est establecido,
se establece el bit .EM

567

Captulo 17

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

La cola ASCII retiene hasta 16 instrucciones. Cuando la cola est llena,


una instruccin intenta entrar en la cola durante cada escn
subsiguiente de la instruccin, segn se muestra a continuacin:
escn

condicin de
entrada de rengln

falsa

verdadera

.EN

desactivado

activado

.EU

desactivado

escn

escn

escn

falsa

activado

intenta entrar en la cola, pero la cola est llena


entra en la cola

Cdigos de error ASCII


Si una instruccin del puerto serie ASCII no logra ser ejecutada, el
miembro ERROR de su estructura SERIAL_PORT_CONTROL contendr
uno de los siguientes cdigos de error hexadecimal:
Este cdigo
hexadecimal

Indica que

16#2

El mdem se desconect.

16#3

La seal CTS se perdi durante la comunicacin.

16#4

El puerto serie estaba en el modo de sistema.

16#A

Antes de que se ejecutara la instruccin, se estableci el bit .UL. Esto impide la ejecucin de la instruccin.

16#C

El controlador cambi del modo de marcha al modo de programacin. Esto detiene la ejecucin de una instruccin de
puerto serie ASCII y borra la cola.

16#D

En el cuadro de dilogo Controller Properties, ficha User Protocol, se cambiaron y se aplicaron los parmetros de
tamao de bfer o modo de eco. Esto detiene la ejecucin de una instruccin de puerto serie ASCII y borra la cola.

16#E

Instruccin ACL ejecutada.

16#F

La configuracin del puerto serie cambi del modo de usuario al modo de sistema. Esto detiene la ejecucin de una
instruccin de puerto serie ASCII y borra la cola de instrucciones de puerto serie ASCII.

16#51

El valor LEN del tag de cadena es negativo o mayor que el tamao de DATA del tag de cadena.

16#54

La longitud de control del puerto serie es mayor que el tamao del bfer.

16#55

La longitud de control del puerto serie es negativa o mayor que el tamao de Source o Destination.

568

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 17

Tipos de datos de cadena


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

Cada tipo de datos de cadena contiene los siguientes miembros:


Nombre

Tipo de datos Descripcin

Notas

LEN

DINT

El LEN se actualiza automticamente con el nuevo conteo de los caracteres


cuando usted:

nmero de caracteres
en la cadena

usa el cuadro de dilogo String Browser para introducir caracteres


usa las instrucciones que leen, convierten o manipulan una cadena
El LEN muestra la longitud de la cadena actual. El miembro DATA puede contener
caracteres adicionales antiguos, los cuales no se incluyen en el conteo del LEN.
Datos

Matriz SINT

caracteres ASCII de la
cadena

Para obtener acceso a los caracteres de la cadena, utilice el nombre del tag.
Por ejemplo, para acceder a los caracteres del tag string_1, introduzca
string_1.
Cada elemento de la matriz DATA contiene un carcter.
Usted puede crear nuevos tipos de datos de cadena que almacenen menos o
ms caracteres.

Publicacin 1756-RM003K-ES-P Julio 2008

569

Captulo 17

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

Prueba ASCII para lnea de


bfer (ABL)

La instruccin ABL cuenta los caracteres en el bfer, inclusive el


primer carcter de terminacin.

Operandos:
Lgica de escalera de rels
ABL
ABL
ASCII
Buffer
Line
ASCIITest
TestFor
For
Buffer
Line
Channel
Channel
SerialPortControl
Control
SerialPort
CharacterCount
Count
Character

?
?
?

EN
DN
ER
ER

Operando

Tipo

Formato

Descripcin

Channel

DINT

inmediato

tag
Serial Port

SERIAL_PORT_

Control

CONTROL

Character
Count

DINT

tag

tag que controla la operacin

inmediato

Durante la ejecucin, muestra el nmero


de caracteres en el bfer, incluso el
primer conjunto de caracteres de
terminacin.

Texto estructurado
ABL(Channel
SerialPortControl);

Los operandos son iguales a los de la instruccin ABL de lgica de


escalera de rels. Usted accede al valor de conteo de caracteres
mediante el miembro .POS de la estructura SERIAL_PORT_CONTROL.

Estructura SERIAL_PORT_CONTROL
Mnemnico

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 el carcter o los caracteres de


terminacin.

.POS

DINT

La posicin determina el nmero de caracteres en el bfer, inclusive el primer conjunto de


caracteres de terminacin. La instruccin slo retorna este nmero despus de que
encuentra el carcter o los caracteres de terminacin.

.ERROR

DINT

El error contiene un valor hexadecimal que identifica la causa del error.

570

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 17

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


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

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

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

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta cuando la condicin de


entrada del rengln alterna de borrado a
establecido.

n. a.

La condicin de salida de rengln se establece como


verdadera.
EnableIn se establece

n. a.

EnableIn siempre se establece.


La instruccin se ejecuta.

Publicacin 1756-RM003K-ES-P Julio 2008

571

Captulo 17

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

Condicin

Accin de lgica de escalera de rels

ejecucin de la instruccin

La instruccin cuenta los caracteres en el bfer.

Accin de texto estructurado

El bit .EN se establece.


Los bits de estado restantes, excepto .UL, se borran.
La instruccin trata de entrar en la cola ASCII.
post-escn

La condicin de salida de rengln se establece como Ninguna.


falsa.

Ejemplo: Pruebe continuamente el bfer para determinar si contiene los


caracteres de terminacin.

Lgica de escalera de rels

MV_line.EN
MV_line.EN
/

ABL
ABL

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

EN
EN
DN
DN
ER
ER

Texto estructurado
ABL(0,MV_line);

572

Publicacin 1756-RM003K-ES-P Julio 2008

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

Caracteres ASCII en el
bfer (ACB)

Captulo 17

La instruccin ACB cuenta los caracteres en el bfer.

Operandos:
Lgica de escalera de rels
ACB
ACB
ASCII
ASCIIChars
CharsininBuffer
Buffer
Channel
Channel
SerialPort
SerialPortControl
Control
Character
CharacterCount
Count

?
?
?

EN
EN
DN
DN
ER
ER

Operando

Tipo

Formato

Introduzca

Channel

DINT

inmediato

tag
Serial Port

SERIAL_PORT_

Control

CONTROL

Character
Count

DINT

tag

tag que controla la operacin

inmediato

Durante la ejecucin, muestra el nmero


de caracteres en el bfer.

Texto estructurado
ACB(Channel
SerialPortControl);

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

Estructura SERIAL_PORT_CONTROL
Mnemnico

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.

Publicacin 1756-RM003K-ES-P Julio 2008

573

Captulo 17

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

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


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

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

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

La condicin de salida de rengln se establece como falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta cuando la condicin de entrada del


rengln alterna de borrado a establecido.

n. a.

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 cuenta los caracteres en el bfer.


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

post-escn

La condicin de salida de rengln se establece como falsa.

Ninguna.

Ejemplo: Cuente continuamente los caracteres en el bfer.


Lgica de escalera de rels
bar_code_count.EN
bar_code_count.EN
/

ACB
ACB

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

EN
EN
DN
DN
ER
ER

Texto estructurado
ACB(0,bar_code_count);

574

Publicacin 1756-RM003K-ES-P Julio 2008

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

Borrar ASCII bfer (ACL)

Captulo 17

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

Operandos:
Lgica de escalera de rels
ACL
ACL
Borrar ASCII
ASCII
Clear bfer
Buffer
Canal
Channel
Borrar Serial
lecturaPort
de puerto
Clear
Read serie
Borrar Serial
escritura
deWrite
puerto serie
Clear
Port

?
?
?

Operando

Tipo

Formato

Introduzca

Channel

DINT

inmediato

tag
Clear Serial
Port Read

BOOL

inmediato
tag

Clear Serial
Port Write

BOOL

inmediato

Para borrar el bfer y eliminar las


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

tag

Texto estructurado
ACL(Channel,
ClearSerialPortRead,
ClearSerialPortWrite);

Los operandos son iguales a los de la instruccin ACL de lgica de


escalera de rels.

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


acciones o ambas:
borra el bfer de caracteres y borra la cola ASCII de
instrucciones de lectura
borra la cola ASCII de instrucciones de escritura
Para programar la instruccin ACL, siga estas pautas:
1. Configure el puerto serie del controlador:
Si su aplicacin

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

2. Para determinar si una instruccin se retir de la cola o se


cancel, examine los siguientes componentes de la instruccin
apropiada:
El bit .ER se establece
El miembro .ERROR es 16#E

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

Publicacin 1756-RM003K-ES-P Julio 2008

575

Captulo 17

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

Ejecucin:
Condicin

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

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

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 borra las instrucciones especificadas y los bferes.

post-escn

La condicin de salida de rengln se establece como Ninguna.


falsa.

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


como la cola ASCII.

Lgica de escalera de rels

S:FS

ACL
ACL
ASCII
Buffer
Borrar Clear
ASCII bfer
Channel
Canal
BorrarSerial
lectura Port
de puerto
serie
Clear
Read
BorrarSerial
escrituraPort
de puerto
Clear
Writeserie

0
1
1

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

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

576

Publicacin 1756-RM003K-ES-P Julio 2008

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

Lneas de handshake ASCII


(AHL)

Captulo 17

La instruccin AHl obtiene el estado de las lneas de control, y activa


o desactiva las seales DTR y RTS.

Operandos:
Lgica de escalera de rels
AHL
AHL
ASCII Handshake
ASCII
HandshakeLines
Lines
Channel
Channel
AND Mask
OR
Mask
OR Mask
SerialPort
Control
SerialPort Control
Channel
Status(Decimal)
Channel Status(Decimal)

EN
EN
?
?
??
?
??
?
?

DN
DN
ER
ER

Operando

Tipo

Formato

Introduzca

Channel

DINT

inmediato

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

Durante la ejecucin, muestra el estado de las lneas de


control.
Para el estado de esta lnea
de control

Examine este bit:

CTS

RTS

DSR

DCD

DTR

Recibi el carcter XOFF

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

Publicacin 1756-RM003K-ES-P Julio 2008

Los operandos son iguales que los de la instruccin AHL de lgica de


escalera de rels. Sin embargo, se especifica el valor de estado del
canal accediendo al miembro .POS de la estructura
SERIAL_PORT_CONTROL, y no incluyendo el valor en la lista de
operandos.

577

Captulo 17

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

Estructura SERIAL_PORT_CONTROL
Mnemnico

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 no se aplica a esta instruccin.

.POS

DINT

La posicin almacena el estado de las lneas de control.

.ERROR

DINT

El error contiene un valor hexadecimal que identifica la causa del error.

Descripcin: La instruccin AHL puede:


obtener el estado de las lneas de control del puerto serie
activar o desactivar la seal de terminal de datos listo (DTR)
activar o desactivar la seal de solicitud de envo (RTS)
Para programar la instruccin AHL, siga estas pautas:
1. Configure el puerto serie del controlador:
Si su aplicacin

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

2. Use la tabla siguiente para seleccionar los valores correctos para


los operandos ANDMask y ORMask:
Para poner
DTR en el
estado
siguiente

Y poner RTS en
el estado
siguiente:

Introduzca este
valor ANDMask

E introduzca este
valor ORMask

desactivado

desactivado

activado

sin cambio

desactivado

activado

sin cambio

desactivado

activado

sin cambio

activado

sin cambio

578

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 17

3. sta es una instruccin transicional:


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

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

Cdigo

Causa

Mtodo de recuperacin

57

La instruccin AHL no se ejecut porque el puerto serie


est configurado para no usar handshaking.

Realice una de los siguientes acciones:


Cambie el ajuste de la lnea de control del puerto
serie.
Elimine la instruccin AHL.

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

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta cuando la condicin de


entrada del rengln cambia de borrado a
establecido.

n. a.

La condicin de salida de rengln se establece como


verdadera.
EnableIn se establece

n. a.

EnableIn siempre se establece.


La instruccin se ejecuta.

ejecucin de la instruccin

La instruccin obtiene el estado de la lnea de control y activa o desactiva las seales DTR y RTS.
El bit .EN se establece.
Los bits de estado restantes, excepto .UL, se borran.
La instruccin trata de entrar en la cola ASCII.

post-escn

La condicin de salida de rengln se establece como


falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

Ninguna.

579

Captulo 17

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

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


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

Lgica de escalera de rels


get_control_line_status
get_control_line_status

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

0
0

DN
DN

OR
Mask
OR Mask

ER
ER

AND Mask

SerialPort Control
SerialPort
Control
Channel Status(Decimal)
Channel
Status(Decimal)

EN
EN

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

580

Publicacin 1756-RM003K-ES-P Julio 2008

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

Lectura ASCII (ARD)

Captulo 17

La instruccin retira caracteres del bfer y los almacena en


Destination.

Operandos:
Lgica de escalera de rels
ASCII Read
Read
ASCII
Channel
Channel
Destination
Destination

ARD
ARD

EN
EN

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

?
?
??
?
?
?

DN
DN
ER
ER

Operando

Tipo

Formato

Introduzca

Channel

DINT

inmediato

Notas

tag
Destination

cadena

tag

el tag al cual se transfieren


los caracteres (lectura):

SINT

Para un tipo de datos de


cadena, introduzca el
nombre del tag.

INT
DINT

Serial Port

SERIAL_PORT_

Control

CONTROL

Serial Port

DINT

Para una matriz SINT,


INT o DINT, introduzca
el primer elemento de la
matriz.
tag

tag que controla la


operacin

inmediato

nmero de caracteres a
transferir al destino
(lectura)

Control Length

Characters Read

DINT

inmediato

Si desea comparar, convertir o manipular los


caracteres, use un tipo de datos de cadena.
Los tipos de datos de cadena son:
tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted
cree

Serial Port Control Length debe ser menor o


igual que el tamao de Destination.
Si desea establecer Serial Port Control
Length igual que el tamao de Destination,
introduzca 0.
Durante la ejecucin, muestra el nmero de
caracteres ledos.

Texto estructurado
ARD(Channel,Destination,
SerialPortControl);

Publicacin 1756-RM003K-ES-P Julio 2008

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

581

Captulo 17

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

Estructura SERIAL_PORT_CONTROL
Mnemnico

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 no se aplica a esta instruccin.

.LEN

DINT

La longitud indica el nmero de caracteres a transferir al destino (lectura).

.POS

DINT

La posicin muestra el nmero de caracteres que se leyeron.

.ERROR

DINT

El error contiene un valor hexadecimal que identifica la causa del error.

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


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

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

582

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 17

Ejecucin:
Condicin

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

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta cuando la condicin de


entrada del rengln cambia de borrado a
establecido.

n. a.

La condicin de salida de rengln se establece como


verdadera.
EnableIn se establece

n. a.

EnableIn siempre se establece.


La instruccin se ejecuta.

ejecucin de la instruccin

La instruccin retira caracteres del bfer y los almacena en el destino.


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

post-escn

La condicin de salida de rengln se establece como


falsa.

Ninguna.

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


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

Lgica de escalera de rels


bar_code_count.EN
bar_code_count.EN
/

ACB
ACB

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

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

Publicacin 1756-RM003K-ES-P Julio 2008

0
24

EN
EN
DN
DN
ER
ER

ARD
ARD

ASCII
Read
ASCII Read
Channel
Channel
Destination
Destination

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

EN
EN
DN
DN
ER
ER

583

Captulo 17

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

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

584

Publicacin 1756-RM003K-ES-P Julio 2008

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

Lectura ASCII de lnea


(ARL)

Captulo 17

La instruccin ARL retira los caracteres especificados del bfer y los


almacena en Destination.

Operandos:
Lgica de escalera de rels
ASCII
ASCIIRead
ReadLine
Line
Channel
Channel
Destination
Destination

ARL
ARL

EN
EN

SerialPortControl
Control
SerialPort
SerialPortControl
ControlLength
Length
SerialPort
CharactersRead
Read
Characters

?
?
??
?
?
?

DN
DN
ER
ER

Operando

Tipo

Formato

Introduzca

Channel

DINT

inmediato

Notas

tag
Destination

cadena

tag

el tag al cual se transfieren


los caracteres (lectura):

SINT

Para un tipo de datos de


cadena, introduzca el
nombre del tag.

INT
DINT

Serial Port

SERIAL_PORT_

Control

CONTROL

Serial Port
Control Length

DINT

Para una matriz SINT,


INT o DINT, introduzca
el primer elemento de la
matriz.
tag

tag que controla la


operacin

inmediato

nmero mximo de
caracteres a leer si no se
encuentran caracteres de
terminacin

Si desea comparar, convertir o manipular los


caracteres, use un tipo de datos de cadena.
Los tipos de datos de cadena son:
tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted
cree

Introduzca el nmero mximo de caracteres


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

Characters Read

DINT

inmediato

Durante la ejecucin, muestra el nmero de


caracteres ledos.

Texto estructurado
ARL(Channel,Destination,
SerialPortControl);

Publicacin 1756-RM003K-ES-P Julio 2008

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

585

Captulo 17

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

Estructura SERIAL_PORT_CONTROL
Mnemnico

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 no se aplica a esta instruccin.

.LEN

DINT

La longitud indica el nmero mximo de caracteres a transferir al destino (es decir, cundo se
debe interrumpir la lectura si no se encuentran caracteres de terminacin).

.POS

DINT

La posicin muestra el nmero de caracteres que se leyeron.

.ERROR

DINT

El error contiene un valor hexadecimal que identifica la causa del error.

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

586

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 17

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

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

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta cuando la condicin de


entrada del rengln cambia de borrado a
establecido.

n. a.

La condicin de salida de rengln se establece como


verdadera.
EnableIn se establece

n. a.

EnableIn siempre se establece.


La instruccin se ejecuta.

ejecucin de la instruccin

La instruccin retira los caracteres especificados del bfer y los almacena en el destino.
El bit .EN se establece.
Los bits de estado restantes, excepto .UL, se borran.
La instruccin trata de entrar en la cola ASCII.

post-escn

La condicin de salida de rengln se establece como


falsa.

Ninguna.

Ejemplo: Pruebe continuamente el bfer para determinar si contiene un


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

Publicacin 1756-RM003K-ES-P Julio 2008

587

Captulo 17

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

Lgica de escalera de rels


MV_line.EN
MV_line.EN
/

ABL
ABL
ASCII
For Buffer
ASCII
TestTest
For Buffer
Line Line
Channel
Channel
0
MV_line
SerialPort
Control
SerialPort
Control
MV_line
Characters
Count
Character
Count
0

MV_line.FD
MV_line.FD

EN
EN
DN
DN
ER
ER

ARL
ARL

ASCII
Read
ASCII Read
LineLine
Channel
Channel
Destination
Destination

EN
EN

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

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

DN
DN

ER
ER

Texto estructurado
ABL(0,MV_line);

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

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

588

Publicacin 1756-RM003K-ES-P Julio 2008

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

Escritura ASCII con anexo


(AWA)

Captulo 17

La instruccin AWA enva un nmero especificado de caracteres del


tag Source a un dispositivo serie, y aade uno o dos caracteres
predefinidos.

Operandos:
Lgica de escalera de rels
AWA
AWA
ASCII Write
Write Append
Append
ASCII
Channel
Channel
Source
Source
SerialPort Control
SerialPort
SerialPort
Length
SerialPort Control Length
Characters
Sent
Characters Sent

EN
EN
?
?
??
?
?
?

DN
DN

ER
ER

Operando

Tipo

Formato

Introduzca

Channel

DINT

inmediato

Notas

tag
Source

cadena

tag

tag que contiene los


caracteres a enviar:

SINT

Para un tipo de datos de


cadena, introduzca el
nombre del tag.

INT
DINT

Serial Port

SERIAL_PORT_

Control

CONTROL

Serial Port
Control Length

DINT

Para una matriz SINT,


INT o DINT, introduzca
el primer elemento de la
matriz.
tag

tag que controla la


operacin

inmediato

nmero de caracteres a
enviar

Si desea comparar, convertir o manipular los


caracteres, use un tipo de datos de cadena.
Los tipos de datos de cadena son:
tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted
cree

Serial Port Control Length debe ser menor o


igual que el tamao de Source.
Si desea establecer Serial Port Control
Length igual que el nmero de caracteres en
Source, introduzca 0.

Characters Sent

DINT

inmediato

Durante la ejecucin, muestra el nmero de


caracteres enviados.

Texto estructurado
AWA(Channel,Source,
SerialPortControl);

Publicacin 1756-RM003K-ES-P Julio 2008

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

589

Captulo 17

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

Estructura SERIAL_PORT_CONTROL
Mnemnico

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 no se aplica a esta instruccin.

.LEN

DINT

La longitud indica el nmero de caracteres a enviar.

.POS

DINT

La posicin muestra el nmero de caracteres que se enviaron.

.ERROR

DINT

El error contiene un valor hexadecimal que identifica la causa del error.

Descripcin: La instruccin AWA:


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

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

b. Defina los caracteres que se agregarn a los datos.


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

590

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 17

3. Enva usted siempre el mismo nmero de caracteres cada vez


que se ejecuta la instruccin?
Si

Entonces

la respuesta
es afirmativa

En Serial Port Control Length, introduzca el nmero de caracteres


a enviar.

la respuesta
es negativa

Antes de que se ejecute la instruccin, establezca el miembro LEN


del tag Source al miembro LEN del tag Serial Port Control.

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

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

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta cuando la condicin de


entrada del rengln cambia de borrado a
establecido.

n. a.

La condicin de salida de rengln se establece como


verdadera.
EnableIn se establece

n. a.

EnableIn siempre se establece.


La instruccin se ejecuta.

ejecucin de la instruccin

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

post-escn

La condicin de salida de rengln se establece como


falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

Ninguna.

591

Captulo 17

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

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


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

Lgica de escalera de rels


temp_high
temp_high

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

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

EN
EN
DN
DN

ER
ER

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

592

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 17

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


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

Lgica de escalera de rels


MOV
MOV

alarm
alarm

Move
Move
Source alarm_msg.LEN
Source
alarm_msg.LEN
Dest.
Dest

5
alarm_write.LEN
alarm_write.LEN
5

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

EN
EN

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

DN
DN
ER
ER

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

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

Publicacin 1756-RM003K-ES-P Julio 2008

593

Captulo 17

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

Escritura ASCII
(ASCII Write (AWT))

La instruccin AWT enva un nmero especificado de caracteres del


tag de origen a un dispositivo serie.

Operandos:
Lgica de escalera de rels
ASCII Write
ASCII
Write
Channel
Channel
Source
Source

AWT
AWT
EN
EN

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

?
?
??
?
?
?

DN
DN
ER
ER

Operando

Tipo

Formato

Introduzca

Channel

DINT

inmediato

Notas

tag
Source

cadena

tag

tag que contiene los


caracteres a enviar:

SINT

Para un tipo de datos de


cadena, introduzca el
nombre del tag.

INT
DINT

Serial Port

SERIAL_PORT_

Control

CONTROL

Serial Port
Control Length

DINT

Para una matriz SINT,


INT o DINT, introduzca
el primer elemento de la
matriz.
tag

tag que controla la


operacin

inmediato

el nmero de caracteres a
enviar

Si desea comparar, convertir o manipular los


caracteres, use un tipo de datos de cadena.
Los tipos de datos de cadena son:
tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted
cree

Serial Port Control Length debe ser menor o


igual que el tamao de Source.
Si desea establecer Serial Port Control
Length igual que el nmero de caracteres en
Source, introduzca 0.

Characters Sent

DINT

inmediato

Durante la ejecucin, muestra el nmero de


caracteres enviados.

Texto estructurado
AWT(Channel,Source,
SerialPortControl);

594

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

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 17

Estructura SERIAL_PORT_CONTROL
Mnemnico

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 no se aplica a esta instruccin.

.LEN

DINT

La longitud indica el nmero de caracteres a enviar.

.POS

DINT

La posicin muestra el nmero de caracteres que se enviaron.

.ERROR

DINT

El error contiene un valor hexadecimal que identifica la causa del error.

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


Port Control Length) del tag Source al dispositivo conectado al puerto
serie del controlador.
Para programar la instruccin AWT, siga estas pautas:
1. Configure el puerto serie del controlador:
Si la aplicacin

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

2. sta es una instruccin transicional:


En la lgica de escalera de rels, cambie la condicin de
entrada del rengln de borrado a establecido cada vez que
deba ejecutarse la instruccin.
En texto estructurado, condicione la instruccin de manera
que slo se ejecute cuando ocurra una transicin.
3. Enva usted siempre el mismo nmero de caracteres cada vez
que se ejecuta la instruccin?

Publicacin 1756-RM003K-ES-P Julio 2008

Si

Entonces

la respuesta
es afirmativa

En Serial Port Control Length, introduzca el nmero de caracteres


a enviar.

la respuesta
es negativa

Antes de que se ejecute la instruccin, mueva el miembro LEN del


tag Source al miembro LEN del tag Serial Port Control.

595

Captulo 17

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

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo: ninguna
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
rengln es falsa

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta cuando la condicin de


entrada del rengln cambia de borrado a
establecido.

n. a.

La condicin de salida de rengln se establece como


verdadera.
EnableIn se establece

n. a.

EnableIn siempre se establece.


La instruccin se ejecuta.

ejecucin de la instruccin

La instruccin enva un nmero especificado de caracteres.


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

post-escn

La condicin de salida de rengln se establece como Ninguna.


falsa.

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


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

Lgica de escalera de rels


AWT
AWT

temp_low
temp_low
ASCII
Write
ASCII
Write
Channel
Channel
Source
Source

EN
EN

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

596

DN
DN
ER
ER

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 17

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

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


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

Lgica de escalera de rels


MV_update
MV_update

MOV
MOV
Move
Move
Source MV_msg.LEN
Source
MV_msg.LEN
Dest.
Dest

10
MV_write.LEN
MV_write.LEN
10

AWT
AWT

ASCII
Write
ASCII Write
Channel
Channel
Source
Source

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

EN
EN
DN
DN
ER
ER

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

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

Publicacin 1756-RM003K-ES-P Julio 2008

597

Captulo 17

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

Notas:

598

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

18

Instrucciones de cadena ASCII


(CONCAT, DELETE, FIND, INSERT, MID)

Introduccin

Use las instrucciones de cadena ASCII para modificar y crear cadenas


de caracteres ASCII.

Si desea

Por ejemplo

aadir caracteres al final de una


cadena

aadir caracteres de terminacin o


delimitadores a una cadena

Use esta
instruccin

Disponible en estos
lenguajes

Vea la
pgina

CONCAT

lgica de escalera de
rels

601

texto estructurado
eliminar caracteres de una cadena

eliminar caracteres de encabezado o


control de una cadena

DELETE

lgica de escalera de
rels

603

texto estructurado
determinar el carcter inicial de una
subcadena

hallar un grupo de caracteres dentro


de una cadena

FIND

lgica de escalera de
rels

605

texto estructurado
insertar caracteres dentro de una
cadena

crear una cadena que usa variables

INSERT

lgica de escalera de
rels

607

texto estructurado
extraer caracteres de una cadena

extraer informacin de un cdigo de


barra

MID

lgica de escalera de
rels

609

texto estructurado

Tambin es posible usar las siguientes instrucciones para comparar o


convertir caracteres ASCII:
Si desea

Use esta instruccin

Vea la pgina

comparar una cadena con otra cadena

CMP

206

determinar si los caracteres son iguales a caracteres especficos

EQU

211

determinar si los caracteres son diferentes a caracteres especficos

NEQ

242

determinar si los caracteres son mayores o iguales que caracteres especficos

GEQ

211

determinar si los caracteres son mayores que caracteres especficos

GRT

219

determinar si los caracteres son menores o iguales que caracteres especficos

LEQ

223

determinar si los caracteres son menores que caracteres especficos

LES

227

reacomodar los bytes de un tag INT, DINT o REAL

SWPB

300

encontrar una cadena en una matriz de cadenas

FSC

347

STOD

614

convertir caracteres en un valor SINT, INT, DINT o REAL

599Publicacin 1756-RM003K-ES-P Julio 2008

599

Captulo 18

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

Si desea

Use esta instruccin

Vea la pgina

convertir caracteres en un valor REAL

STOR

616

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

DTOS

619

convertir un valor REAL en una cadena de caracteres ASCII

RTOS

621

Tipos de datos de cadena


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

Cada tipo de datos de cadena contiene los siguientes miembros:


Nombre

Tipo de datos Descripcin

Notas

LEN

DINT

El LEN se actualiza automticamente al nuevo conteo de caracteres cuando usted:

nmero de caracteres
en la cadena

usa el cuadro de dilogo String Browser para introducir caracteres


usa las instrucciones que leen, convierten o manipulan una cadena

El LEN muestra la longitud de la cadena actual. El miembro DATA puede contener


caracteres adicionales antiguos, los cuales no se incluyen en el conteo LEN.
DATA

Matriz SINT

caracteres ASCII de la
cadena

Para obtener acceso a los caracteres de la cadena, utilice el nombre del tag.
Por ejemplo, para acceder a los caracteres del tag string_1, introduzca
string_1.
Cada elemento de la matriz DATA contiene un carcter.
Usted puede crear nuevos tipos de datos de cadena que almacenen menos o
ms caracteres.

600

Publicacin 1756-RM003K-ES-P Julio 2008

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

Concatenacin de cadenas
(CONCAT)

Captulo 18

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

Operandos:
Lgica de escalera de rels

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

Operando

Tipo

Formato

Introduzca

Notas

Source A

cadena

tag

tag que contiene los


caracteres iniciales

Los tipos de datos de cadena son:

Source B

cadena

tag

tag que contiene los


caracteres finales

Destination

cadena

tag

tag para almacenar el


resultado

tipo de datos STRING predeterminado


cualquier tipo de datos nuevo que usted
cree

Texto estructurado
CONCAT(SourceA,SourceB,
Dest);

Los operandos son iguales a los de la instruccin CONCAT de lgica


de escalera de rels.

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


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

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

Cdigo

Causa

Mtodo de recuperacin

51

El valor LEN del tag de cadena es


mayor que el tamao de DATA del
tag de cadena.

1. Verifique que ninguna instruccin est escribiendo en el miembro LEN


del tag de cadena.
2. En el valor LEN, introduzca el nmero de caracteres que contiene la
cadena.

Publicacin 1756-RM003K-ES-P Julio 2008

601

Captulo 18

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

Ejecucin:
Condicin

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

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

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 concatena las cadenas.

post-escn

La condicin de salida de rengln se establece como


falsa.

Ninguna.

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


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

Lgica de escalera de rels


CONCAT
CONCAT

add_node

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

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

602

Publicacin 1756-RM003K-ES-P Julio 2008

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

Eliminacin de cadena
(DELETE)

Captulo 18

La instruccin DELETE retira los caracteres ASCII de una cadena.

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

Lgica de escalera de rels


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

Operando

Tipo

Formato

Introduzca

Notas

Source

cadena

tag

el tag que contiene la


cadena de la cual se desea
eliminar los caracteres

Los tipos de datos de cadena son:


tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted
cree

Quantity

SINT

inmediato

INT

tag

el nmero de caracteres
que se desea eliminar

Start as como Quantity deben ser menores o


iguales al tamao de DATA de Source.

la posicin del primer


carcter que se debe
eliminar

Introduzca un nmero entre 1 y el tamao de


DATA de Source.

DINT
Start

SINT

inmediato

INT

tag

DINT
Destination

cadena

tag

tag para almacenar el


resultado

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

Los operandos son iguales a los de la instruccin DELETE de lgica de


escalera de rels.

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


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

Publicacin 1756-RM003K-ES-P Julio 2008

603

Captulo 18

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

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

Cdigo

Causa

Mtodo de recuperacin

51

El valor LEN del tag de


cadena es mayor que el
tamao de DATA del tag
de cadena.

1. Verifique que ninguna instruccin est escribiendo en el miembro LEN del tag
de cadena.

El valor de Start o Quantity


no es vlido.

1. Verifique que el valor de Start est entre 1 y el tamao de DATA de Source.

56

2. En el valor LEN, introduzca el nmero de caracteres que contiene la cadena.

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

La condicin de salida de rengln se establece como falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

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.

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


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

Lgica de escalera de rels


DELETE
DELETE
Sting Delete
String Delete
Source
term_input
Source term_input
$0655
'$0655'
Qty
Qty
11

term_read.EM

Start
Start

11

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;

604

Publicacin 1756-RM003K-ES-P Julio 2008

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

Encontrar cadena (FIND)

Captulo 18

La instruccin FIND localiza la posicin de una cadena especificada


dentro de otra cadena.

Operandos:
Lgica de escalera de rels

FIND
FIND
Find
String
Find
String
Source
Source

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

Search
Search
Start
Start
Result
Result

Operando

Tipo

Formato

Introduzca

Notas

Source

cadena

tag

cadena en que se debe


buscar

Los tipos de datos de cadena son:

Buscar

cadena

tag

la cadena que se debe


buscar

Start

SINT

inmediato

INT

tag

la posicin en Source en la
cual se debe iniciar la
bsqueda

tipo de datos STRING predeterminado


cualquier tipo de datos nuevo que usted
cree
Introduzca un nmero entre 1 y el tamao de
DATA de Source.

DINT
Result

tag

SINT

el tag que almacena la


posicin inicial de la
cadena que se debe buscar

INT
DINT

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

Los operandos son iguales a los de la instruccin FIND de lgica de


escalera de rels antes descritos.

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


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

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

Cdigo

Causa

Mtodo de recuperacin

51

El valor LEN del tag de cadena es


mayor que el tamao de DATA del
tag de cadena.

1. Verifique que ninguna instruccin est escribiendo en el miembro LEN


del tag de cadena.
2. En el valor LEN, introduzca el nmero de caracteres que contiene la
cadena.

56

El valor de Start no es vlido.

Publicacin 1756-RM003K-ES-P Julio 2008

Verifique que el valor de Start est entre 1 y el tamao de DATA de Source.

605

Captulo 18

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

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

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

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.

Ejemplo: Un mensaje de un terminal MessageView contiene varios


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

Lgica de escalera de rels


FIND
FIND
Find
String
Find
String
Source
MV_msg
Source MV_msg
$06324\12\1\$r
'$06324\12\1\$r'
Search
find
Search
find
'\'\
Start
Start
11

MV_read.EM

Result
Result

find_pos
find_pos
55

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

606

Publicacin 1756-RM003K-ES-P Julio 2008

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

Insertar cadena (INSERT)

Captulo 18

La instruccin INSERT aade caracteres ASCII a un lugar especificado


dentro de una cadena.

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

Lgica de escalera de rels


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

Operando

Tipo

Formato

Introduzca

Notas

Source A

cadena

tag

Source B

cadena

tag

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

Start

SINT

inmediato

INT

tag

la posicin en Source A a la Introduzca un nmero entre 1 y el tamao de


DATA de Source.
cual se deben aadir los
caracteres

DINT
Result

cadena

tag

cadena para almacenar el


resultado

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

Los operandos son iguales a los de la instruccin INSERT de lgica de


escalera de rels.

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


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

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

Cdigo

Causa

Mtodo de recuperacin

51

El valor LEN del tag de cadena es


mayor que el tamao de DATA del
tag de cadena.

1. Verifique que ninguna instruccin est escribiendo en el miembro LEN


del tag de cadena.
2. En el valor LEN, introduzca el nmero de caracteres que contiene la
cadena.

56

El valor de Start no es vlido.

Publicacin 1756-RM003K-ES-P Julio 2008

Verifique que el valor de Start est entre 1 y el tamao de DATA de Source.

607

Captulo 18

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

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

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

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 inserta los caracteres especificados.

post-escn

La condicin de salida de rengln se establece como


falsa.

Ninguna.

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


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

Lgica de escalera de rels


INSERT
INSERT
Insert String
Insert String
Source
A A
string_1
Source
string_1
AD
'AD'
Source
B B
string_2
Source
string_2
BC
'BC'
Start
Start
22

temp_high

Dest
Dest

string_3
string_3
ABCD
'ABCD'

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

608

Publicacin 1756-RM003K-ES-P Julio 2008

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

Cadena central (MID)

Captulo 18

La instruccin MID copia un nmero especificado de caracteres ASCII


de una cadena y los almacena en otra cadena.

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

Lgica de escalera de rels


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

Operando

Tipo

Formato

Introduzca

Notas

Source

cadena

tag

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

Quantity

SINT

inmediato

INT

tag

el nmero de caracteres
que se desea copiar

Start as como Quantity deben ser menores o


iguales al tamao de DATA de Source.

DINT
Start

SINT

inmediato

INT

tag

la posicin del primer


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

DINT
Destination

cadena

tag

la cadena a la cual se
deben copiar los caracteres

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

Los operandos son iguales a los de la instruccin MID de lgica de


escalera de rels.

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


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

Indicadores de estado
aritmtico: no afectados

Publicacin 1756-RM003K-ES-P Julio 2008

609

Captulo 18

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

Condiciones de fallo:
Tipo

Cdigo

Causa

Mtodo de recuperacin

51

El valor LEN del tag de


cadena es mayor que el
tamao de DATA del tag
de cadena.

1. Verifique que ninguna instruccin est escribiendo en el miembro LEN del tag
de cadena.

El valor de Start o Quantity


no es vlido.

1. Verifique que el valor de inicio est entre 1 y el tamao de DATA de Source.

56

2. En el valor LEN, introduzca el nmero de caracteres que contiene la cadena.

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

La condicin de salida de rengln se establece como falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

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.

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


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

Lgica de escalera de rels


MID
MID
Middle
String
Middle
String
Source
bag_barcode
Source
bag_barcode
NWA 5058
HOP 5058
AMS01'
01
'NWA HOP
AMS
Qty
Qty
99

bag_read.EM

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;

610

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

19

Instrucciones de conversin ASCII


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

Introduccin

Use las instrucciones de conversin ASCII para alterar el formato de


los datos.

Si desea

Por ejemplo

convertir la representacin ASCII de


un valor entero en un valor SINT, INT,
DINT o REAL

convertir un valor proveniente de una


bscula u otro dispositivo ASCII en un
nmero entero para usarlo en la
lgica

STOD

convertir un valor proveniente de una


bscula u otro dispositivo ASCII en un
valor REAL para usarlo en la lgica

STOR

convertir la representacin ASCII de


un valor de punto flotante (coma
flotante) en un valor REAL

Use esta
instruccin

Disponible en estos
lenguajes

Vea la
pgina

lgica de escalera de
rels

614

texto estructurado
lgica de escalera de
rels

616

texto estructurado
convertir un valor SINT, INT, DINT o
REAL en una cadena de caracteres
ASCII

convertir una variable en una cadena


ASCII para enviarla a un terminal
MessageView

DTOS

lgica de escalera de
rels

619

texto estructurado
convertir un valor REAL en una
cadena de caracteres ASCII

convertir una variable en una cadena


ASCII para enviarla a un terminal
MessageView

RTOS

lgica de escalera de
rels

621

texto estructurado
convertir en maysculas las letras de
una cadena de caracteres ASCII

convertir en maysculas una entrada


hecha por un operador para poder
buscarla en una matriz

UPPER

lgica de escalera de
rels

623

texto estructurado
convertir en minsculas las letras en
una cadena de caracteres ASCII

convertir en minsculas una entrada


hecha por un operador para poder
buscarla en una matriz

LOWER

lgica de escalera de
rels

625

texto estructurado

611Publicacin 1756-RM003K-ES-P Julio 2008

611

Captulo 19

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

Tambin es posible usar las siguientes instrucciones para comparar o


manipular caracteres ASCII:
Si desea

Use esta instruccin

Vea la pgina

aadir caracteres al final de una cadena

CONCAT

601

eliminar caracteres de una cadena

DELETE

603

FIND

605

INSERT

607

MID

609

reacomodar los bytes de un tag INT, DINT o REAL

SWPB

300

comparar una cadena con otra cadena

CMP

206

determinar si los caracteres son iguales a caracteres especficos

EQU

211

determinar si los caracteres son diferentes a caracteres especficos

NEQ

242

determinar si los caracteres son mayores o iguales que caracteres especficos

GEQ

215

determinar si los caracteres son mayores que caracteres especficos

GRT

219

determinar si los caracteres son menores o iguales que caracteres especficos

LEQ

223

determinar si los caracteres son menores que caracteres especficos

LES

227

encontrar una cadena en una matriz de cadenas

FSC

347

identificar el carcter inicial de una subcadena


insertar caracteres dentro de una cadena
extraer caracteres de una cadena

612

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 19

Tipos de datos de cadena


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

Cada tipo de datos de cadena contiene los siguientes miembros:


Nombre:

Tipo de
datos:

Descripcin:

Notas:

LEN

DINT

nmero de caracteres
en la cadena

El LEN se actualiza automticamente con el nuevo conteo de los caracteres


cuando usted:
usa el cuadro de dilogo String Browser para introducir caracteres
usa instrucciones que leen, convierten o manipulan una cadena

El LEN muestra la longitud de la cadena actual. El miembro DATA puede contener


caracteres adicionales antiguos, los cuales no se incluyen en el conteo LEN.
DATA

Matriz SINT

caracteres ASCII de la
cadena

Para obtener acceso a los caracteres de la cadena, utilice el nombre del tag.
Por ejemplo, para acceder a los caracteres del tag string_1, introduzca
string_1.
Cada elemento de la matriz DATA contiene un carcter.
Usted puede crear nuevos tipos de datos de cadena que almacenen menos o
ms caracteres.

Publicacin 1756-RM003K-ES-P Julio 2008

613

Captulo 19

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

Cadena en DINT (STOD)

La instruccin STOD convierte la representacin ASCII de un nmero


entero en un valor entero o REAL.

Operandos:
Lgica de escalera de rels
STOD
STOD
String
ToTo
DINT
String
DINT
Source
Source
??
????
Dest
Dest
??
????

Operando

Tipo

Formato

Introduzca

Notas

Source

cadena

tag

el tag que contiene el valor


en ASCII

Los tipos de datos de cadena son:


tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted
cree

Destination

SINT

tag

el tag en que se almacena


el valor entero

INT
DINT

Si el valor Source es un nmero de punto


flotante (coma flotante), la instruccin
convierte solamente la parte no fraccionaria del
nmero (independientemente del tipo de datos
de destino).

REAL

STOD(Source,Dest);

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

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


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

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

614

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 19

Condiciones de fallo
Tipo

Cdigo

Causa

Mtodo de recuperacin

51

El valor LEN del tag de cadena es mayor que el tamao


de DATA del tag de cadena.

1. Verifique que ninguna instruccin est escribiendo


en el miembro LEN del tag de cadena.
2. En el valor LEN, introduzca el nmero de caracteres
que contiene la cadena.

53

El nmero de salida sobrepasa los lmites del tipo de


datos de destino.

Realice uno de los siguientes:


Reduzca el tamao del valor ASCII.
Use un tipo de datos mayor para el destino.

Ejecucin:
Condicin

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

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

La condicin de salida de rengln se establece como


verdadera.
EnableIn se establece

n. a.

EnableIn siempre se establece.


La instruccin se ejecuta.

ejecucin de la instruccin

SC se establece
Destination se borra.
La instruccin convierte Source.
Si el resultado es cero, S:Z se establece.

post-escn

La condicin de salida de rengln se establece como


falsa.

Ninguna.

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


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

Lgica de escalera de rels


MV_read.EM

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

324

Publicacin 1756-RM003K-ES-P Julio 2008

615

Captulo 19

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

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

Cadena en REAL (STOR)

La instruccin STOR convierte en un valor REAL la representacin


ASCII de un valor de punto flotante (coma flotante).

Operandos:
STOR
STOR
String
Real
Stringtoto
Real
Source
Source
Dest
Dest

Operadores de escalera de rel


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

Operando

Tipo

Formato

Introduzca

Notas

Source

cadena

tag

el tag que contiene el valor


en ASCII

Los tipos de datos de cadena son:


tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted
cree

Destination

REAL

tag

STOR(Source,Dest);

el tag en que se almacena


el valor REAL

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

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


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

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

616

Publicacin 1756-RM003K-ES-P Julio 2008

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

Captulo 19

Condiciones de fallo:
Tipo

Cdigo

Causa

Mtodo de recuperacin

51

El valor LEN del tag de cadena es mayor que el tamao


de DATA del tag de cadena.

1. Verifique que ninguna instruccin est escribiendo


en el miembro LEN del tag de cadena.
2. En el valor LEN, introduzca el nmero de caracteres
que contiene la cadena.

53

El nmero de salida sobrepasa los lmites del tipo de


datos de destino.

Realice uno de los siguientes:


Reduzca el tamao del valor ASCII.
Use un tipo de datos mayor para el destino.

Ejecucin:
Condicin

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

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

La condicin de salida de rengln se establece como


verdadera.
EnableIn se establece

n. a.

EnableIn siempre se establece.


La instruccin se ejecuta.

ejecucin de la instruccin

S:C se establece.
Destination se borra.
La instruccin convierte Source.
Si el resultado es cero, S:Z se establece.

post-escn

La condicin de salida de rengln se establece como


falsa.

Ninguna.

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


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

Lgica de escalera de rels


weight_read.EM

STOR
STOR
String
to Real
String
to Real
Source
weight_axcii
Source weight_ascii
428.259
'428.259'
Dest
weight
Dest
weight
428.259

428.259

Publicacin 1756-RM003K-ES-P Julio 2008

617

Captulo 19

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

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

618

Publicacin 1756-RM003K-ES-P Julio 2008

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

DINT en cadena (DTOS)

Captulo 19

La instruccin DTOS produce la representacin ASCII de un valor.

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

Lgica de escalera de rels


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

Operando

Tipo

Formato

Introduzca

Source

SINT

tag

el tag que contiene el valor Si Source es un nmero REAL, la instruccin lo


convierte en un valor DINT. Consulte REAL en
un nmero entero en la pgina 640.

tag

el tag en que se almacena


el valor ASCII

INT

Notas

DINT
REAL
Destination

cadena

Los tipos de datos de cadena son:


tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted
cree

DTOS(Source,Dest);

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

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


ASCII y coloca el resultado en Destination.

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

Cdigo

Causa

Mtodo de recuperacin

51

El valor LEN del tag de cadena es mayor que el tamao


de DATA del tag de cadena.

1. Verifique que ninguna instruccin est escribiendo


en el miembro LEN del tag de cadena.
2. En el valor LEN, introduzca el nmero de caracteres
que contiene la cadena.

52

La cadena de salida es mayor que el destino.

Publicacin 1756-RM003K-ES-P Julio 2008

Prepare un nuevo tipo de datos de cadena que sea


suficientemente grande para la cadena de salida. Use el
nuevo tipo de datos de cadena como tipo de datos para
el destino.

619

Captulo 19

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

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

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

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

post-escn

La condicin de salida de rengln se establece como Ninguna.


falsa.

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


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

Lgica de escalera de rels


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

temp_high

'23'

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

620

Publicacin 1756-RM003K-ES-P Julio 2008

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

REAL en cadena (RTOS)

Captulo 19

La instruccin RTOS produce la representacin ASCII de un valor


REAL.

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

Lgica de escalera de rels


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

Operando

Tipo

Formato

Introduzca

Notas

Source

REAL

tag

el tag que contiene el valor


REAL

Destination

cadena

tag

el tag en que se almacena


el valor ASCII

Los tipos de datos de cadena son:


tipo de datos STRING predeterminado
cualquier tipo de datos nuevo que usted
cree

RTOS(Source,Dest);

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

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


ASCII y coloca el resultado en Destination.

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

Cdigo

Causa

Mtodo de recuperacin

51

El valor LEN del tag de cadena es mayor que el tamao


de DATA del tag de cadena.

1. Verifique que ninguna instruccin est escribiendo


en el miembro LEN del tag de cadena.
2. En el valor LEN, introduzca el nmero de caracteres
que contiene la cadena.

52

La cadena de salida es mayor que el destino.

Publicacin 1756-RM003K-ES-P Julio 2008

Prepare un nuevo tipo de datos de cadena que sea


suficientemente grande para la cadena de salida. Use el
nuevo tipo de datos de cadena como tipo de datos para
el destino.

621

Captulo 19

Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

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
rengln es falsa

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

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 convierte Source.

post-escn

La condicin de salida de rengln se establece como Ninguna.


falsa.

Ejemplo: Cuando send_data se establece, la instruccin RTOS convierte en una


cadena de caracteres ASCII el valor en data_1 y coloca el resultado en
data_1_ascii. Los renglones subsiguientes insertan o concatenan
data_1_ascii con otras cadenas para producir un mensaje completo
para un terminal de pantalla.
Es posible que se perciba una pequea diferencia entre las partes
fraccionarias de Source y Destination.

Lgica de escalera de rels


RTOS
RTOS
Real
to String
Real
to String
Source
data_1
Source
data_1
15.3001
15.3001
Dest
data_1_ascii
Dest data_1_ascii
15.301003

send_data

'15.3001003'

Texto estructurado
IF send_data THEN
RTOS(data_1,data_1_ascii);
send_data := 0;
END_IF;

622

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Maysculas (UPPER)

Captulo 19

La instruccin UPPER convierte en maysculas los caracteres


alfabticos de una cadena.

Operandos:
Lgica de escalera de rels

UPPER(Source,Dest);

Operando

Tipo

Formato

Descripcin

Source

cadena

tag

el tag que contiene los caracteres que usted


desea convertir en maysculas

Destination

cadena

tag

el tag para almacenar los caracteres en


maysculas

Texto estructurado
Los operandos son iguales a los de la instruccin UPPER de lgica de
escalera de rels.

Descripcin: La instruccin UPPER convierte en maysculas todas las letras en


Source y coloca el resultado en Destination.
Los caracteres ASCII permiten distinguir maysculas de
minsculas. La A mayscula ($41) es diferente a la a
minscula ($61).
Si los operadores introducen directamente caracteres ASCII,
convierta en maysculas o minsculas todos los caracteres antes
de compararlos.
Los caracteres en la cadena Source que no son letras permanecen
iguales.

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo: ninguna
Ejecucin:
Condicin

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
rengln es falsa

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

La condicin de salida de rengln se establece como


verdadera.

Publicacin 1756-RM003K-ES-P Julio 2008

623

Captulo 19

Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Condicin

Accin de lgica de escalera de rels

Accin de texto estructurado

EnableIn se establece

n .a.

EnableIn siempre se establece.


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


falsa.

Ninguna.

Ejemplo: Para encontrar informacin acerca de un tem especifico, un operador


introduce el nmero de catlogo del tem en el terminal ASCII.
Despus de que el controlador lee la entrada proveniente de un
terminal (terminal_read.EM se establece), la instruccin UPPER
convierte en maysculas todos los caracteres de catalog_number y
almacena el resultado en catalog_number_upper_case.
Posteriormente, un rengln subsiguiente busca en la matriz los
caracteres que coinciden con los de catalog_number_upper_case.

Lgica de escalera de rels

Texto estructurado
IF terminal_read.EM THEN
UPPER(catalog_number,catalog_number_upper_case);
terminal_read.EM := 0;
END_IF;

624

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Minsculas (Lower Case


(LOWER))

Captulo 19

La instruccin LOWER convierte en minsculas los caracteres


alfabticos de una cadena.

Operandos:
Lgica de escalera de rels

LOWER(Source,Dest);

Operando

Tipo

Formato

Descripcin

Source

cadena

tag

el tag que contiene los caracteres que usted


desea convertir en minsculas

Destination

cadena

tag

el tag para almacenar los caracteres en


minsculas

Texto estructurado
Los operandos son iguales a los de la instruccin LOWER de lgica de
escalera de rels.

Descripcin: La instruccin LOWER convierte en minsculas todas las letras en


Source y coloca el resultado en Destination.
Los caracteres ASCII permiten distinguir maysculas de
minsculas. La A mayscula ($41) es diferente a la a
minscula ($61).
Si los operadores introducen directamente caracteres ASCII,
convierta en maysculas o minsculas todos los caracteres antes
de compararlos.
Los caracteres de la cadena Source que no son letras permanecen
iguales.

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo: ninguna
Ejecucin:
Condicin

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
rengln es falsa

La condicin de salida de rengln se establece como


falsa.

n. a.

condicin de entrada de
rengln es verdadera

La instruccin se ejecuta.

n. a.

La condicin de salida de rengln se establece como


verdadera.

Publicacin 1756-RM003K-ES-P Julio 2008

625

Captulo 19

Instrucciones de conversin ASCII (STOD, STOR, DTOS, RTOS, UPPER, LOWER)

Condicin

Accin de lgica de escalera de rels

Accin de texto estructurado

EnableIn se establece

n. a.

EnableIn siempre se establece.


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


falsa.

Ninguna.

Ejemplo: Para encontrar informacin acerca de un tem especifico, un operador


introduce el nmero de catlogo en un terminal ASCII. Despus de
que el controlador lee la entrada proveniente de un terminal
(terminal_read.EM se establece) la instruccin LOWER convierte en
minsculas todos los caracteres de item_number y almacena el
resultado en item_number_lower_case. Posteriormente, un rengln
subsiguiente busca en la matriz los caracteres que coinciden con los
de item_number_lower_case.

Lgica de escalera de rels

Texto estructurado
IF terminal_read.EM THEN
LOWER(item_number,item_number_lower_case);
terminal_read.EM := 0;
END_IF;

626

Publicacin 1756-RM003K-ES-P Julio 2008

Captulo

20

Instrucciones de depuracin
(BPT, TPT)

Introduccin

Use las instrucciones de depuracin para monitorear el estado de


la lgica cuando est en condiciones determinadas por usted.
Estas instrucciones slo son compatibles con el software RSLogix
Emulate 5000, con el cual usted puede emular un controlador
Logix 5000 en su computadora personal.

Si desea

Use esta instruccin

Disponible en estos lenguajes

Vea la pgina

detener la emulacin del programa cuando un


rengln es verdadero

BPT

lgica de escalera de rels

627

registrar datos que usted selecciona cuando un


rengln es verdadero

TPT

lgica de escalera de rels

631

Puntos de interrupcin
(BPT)

Los puntos de interrupcin detienen la emulacin del programa


cuando un rengln es verdadero.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Formato

Cadena

tag

Una cadena que establece el formateo del


texto que aparece en la ventana de rastreo
del punto de interrupcin.

Rastrear
esto

BOOL, SINT,
INT, DINT, REAL

tag

El tag que tiene un valor que usted desea


mostrar en la ventana de rastreo.

Descripcin:
Los puntos de interrupcin se programan con la instruccin de salida
de punto de interrupcin (BPT). Cuando las entradas en un rengln
que contiene una instruccin BPT son verdaderas, la instruccin BPT
detiene la ejecucin del programa. El software muestra una ventana
que indica que se activ el punto de interrupcin y los valores que lo
activaron.

627Publicacin 1756-RM003K-ES-P Julio 2008

627

Captulo 20

Instrucciones de depuracin (BPT, TPT)

Cuando se activa un punto de interrupcin, el emulador muestra una


ventana para informar que se produjo un punto de interrupcin.
La barra de ttulo de la ventana muestra la ranura que contiene el
emulador que encontr el punto de interrupcin.
Cuando usted hace clic en OK, el emulador reanuda la ejecucin del
programa. Si las condiciones que activaron el punto de interrupcin
persisten, el punto de interrupcin volver a ocurrir.
Adems el emulador abre una ventana de rastreo del punto de
interrupcin. La ventana de rastreo muestra informacin acerca del
punto de interrupcin y los valores.

ATENCIN

Cuando se activa un punto de interrupcin, usted no podr editar su


proyecto hasta que permita que contine la ejecucin. Puede entrar
en lnea con el emulador para observar el estado de su proyecto, pero
no podr editarlo. Si intenta aceptar una edicin de rengln mientras
que est activado un punto de interrupcin, aparece un cuadro de
dilogo que indica que el controlador no est en el modo correcto.

Formato de cadena
Con la cadena de formato en las instrucciones de punto de rastreo y
punto de interrupcin, puede controlar cmo aparecen los tags
rastreados en las ventanas de punto de interrupcin o en los rastreos.
El formato de la cadena se muestra aqu:
encabezado:(texto)%(tipo)
donde encabezado es una cadena de texto que identifica el punto de
rastreo o el punto de interrupcin, texto es una cadena que describe el
tag (o cualquier otro texto que usted seleccione) y %(tipo) indica el
formato del tag. Usted necesita un indicador de tipo para cada tag que
est rastreando con la instruccin de punto de rastreo o punto de
interrupcin.
Por ejemplo, podra formatear una cadena de punto de rastreo como
se muestra aqu:
Mi punto de rastreo:Tag 1 = %e y Tag 2 = %d
El %e formatea el primer tag rastreado como valor con punto flotante
(coma flotante) de doble precisin con un exponente, y %d formatea
el segundo tag rastreado como valor entero decimal con signo.
En este caso, usted tendra una instruccin de punto de rastreo con
dos operandos de rastreo (Trace This) (uno para un valor REAL y uno
para un valor INT, aunque el valor de cualquier tag puede formatearse
con cualquier indicador).

628

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de depuracin (BPT, TPT)

Captulo 20

La ventana de punto de rastreo resultante que aparecera cuando se


activa el punto de rastreo sera similar a esta.

El nmero de ranura indica la ranura que


contiene el mdulo emulador que tiene
el punto de rastreo o el punto de
interrupcin rastreado en la ventana de
rastreo.

El texto para el valor REAL (representado


en la cadena de formato mediante %e)
aparece aqu.

El encabezado (el texto que precede el


signo de dos puntos en la cadena de
formato) aparece aqu.

El texto para el valor


INT (representado en la cadena de
formato mediante %d) aparece aqu.

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo: ninguna
Ejecucin:
Condicin:

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 condicin de salida de rengln se establece como verdadera.


La ejecucin salta al rengln que contiene la instruccin LBL con el nombre de etiqueta
referenciado.

post-escn

La condicin de salida de rengln se establece como falsa.

Ejemplo: Usted puede mostrar muchos valores de tag con la instruccin BPT.
Sin embargo, la cadena de formateo puede contener slo
82 caracteres. Puesto que la cadena de formateo requiere dos
caracteres para cada tag que usted desea en el punto de interrupcin,
no podr rastrear ms de 41 tags con una sola instruccin BPT.
Sin embargo, para separar datos de tag en sus rastreos necesitar
incluir espacios y otro formateo, reduciendo as el nmero de valores
de tag que puede mostrar eficazmente una instruccin BPT a mucho
menos de 41.

Publicacin 1756-RM003K-ES-P Julio 2008

629

Captulo 20

Instrucciones de depuracin (BPT, TPT)

Este rengln muestra un punto de interrupcin que detiene la


ejecucin del programa cuando un valor analgico es mayor que 3.02
o menor que 2.01.

Usted desea mostrar la informacin del punto de interrupcin en la


cadena Formato (myformat). En este caso, la cadena de formato
contiene el siguiente texto:
Punto de interrupcin:El valor de entrada es %f

Cuando el punto de interrupcin se activa, la ventana de rastreo de


punto de interrupcin muestra los caracteres antes del signo de dos
puntos (Breakpoint) en la barra de ttulo de la ventana de rastreo.
Los dems caracteres conforman los rastreos. En este ejemplo, %f
representa el primer tag (y, en este caso, el nico) que se va a rastrear
(analogvalue).
Los rastreos resultantes se muestran aqu.

630

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de depuracin (BPT, TPT)

Puntos de rastreo (TPT)

Captulo 20

Datos de registro de puntos de rastreo que usted selecciona cuando


un rengln es verdadero.

Operandos:
Lgica de escalera de rels
Operando

Tipo

Formato

Descripcin

Format

Cadena

tag

Una cadena que establece el formateo de los


informes de rastreo (tanto en pantalla como
registrados en el disco).

Trace This

BOOL, SINT,
INT, DINT,
REAL

tag

El tag que usted desea rastrear.

Descripcin:
Los puntos de rastreo se programan con la instruccin de salida punto
de rastreo (BPT). Cuando las entradas en un rengln que contiene
una instruccin TPT son verdaderas, la instruccin TPT escribe una
entrada de rastreo a una pantalla de rastreo o archivo de registros.
Usted puede rastrear muchos tags con la instruccin TPT. Sin
embargo, la cadena de formateo puede contener slo 82 caracteres.
Puesto que la cadena de formateo requiere dos caracteres para cada
tag que usted desea rastrear, no podr rastrear ms de 41 tags con una
sola instruccin TPT. Sin embargo, para separar datos de tags en sus
rastreos, necesitar incluir espacios y otro formateo, lo cual reduce el
nmero de tags que puede rastrear eficazmente una instruccin TPT a
mucho menos de 41.

Formato de cadena
Con la cadena de formato en las instrucciones de punto de rastreo y
punto de interrupcin, puede controlar cmo aparecen los tags
rastreados en las ventanas de rastreo o punto de interrupcin.
El formato de la cadena se muestra aqu:
encabezado:(texto)%(tipo)
donde encabezado es una cadena de texto que identifica el punto de
rastreo o el punto de interrupcin, texto es una cadena que describe el
tag (o cualquier otro texto que usted seleccione) y %(tipo) indica el
formato del tag. Usted necesita un indicador de tipo para cada tag que
est rastreando con la instruccin de punto de rastreo o punto de
interrupcin.

Publicacin 1756-RM003K-ES-P Julio 2008

631

Captulo 20

Instrucciones de depuracin (BPT, TPT)

Por ejemplo, podra formatear una cadena de punto de rastreo como


se muestra aqu:
Mi punto de rastreo:Tag 1 = %e y Tag 2 = %d
El %e formatea el primer tag rastreado como valor con punto flotante
(coma flotante) de doble precisin con un exponente, y %d formatea
el segundo tag rastreado como valor entero decimal con signo.
En este caso, usted tendra una instruccin de punto de rastreo con
dos operandos de rastreo (Trace This) (uno para un valor REAL y uno
para un valor INT, aunque el valor de cualquier tag puede formatearse
con cualquier indicador).
La ventana de punto de rastreo resultante que aparecera cuando se
activa el punto de rastreo sera similar a esta.

El nmero de ranura indica la ranura que


contiene el mdulo emulador que tiene
el punto de rastreo o el punto de
interrupcin rastreado en la ventana de
rastreo.

El texto para el valor REAL (representado


en la cadena de formato mediante %e)
aparece aqu.

El encabezado (el texto que precede el


signo de dos puntos en la cadena de
formato) aparece aqu.

El texto para el valor


INT (representado en la cadena de
formato mediante %d) aparece aqu.

. Indicadores de estado

aritmtico: no afectados
Condiciones de fallo: ninguna
Ejecucin:
Condicin:

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 condicin de salida de rengln se establece como verdadera.


La ejecucin salta al rengln que contiene la instruccin LBL con el nombre de etiqueta
referenciado.

post-escn

632

La condicin de salida de rengln se establece como falsa.

Publicacin 1756-RM003K-ES-P Julio 2008

Instrucciones de depuracin (BPT, TPT)

Captulo 20

Ejemplo: Este rengln activa un rastreo de tres valores analgicos cuando


cualquiera de ellos excede un valor especfico (30.01).

Usted desea mostrar la informacin del punto de rastreo en la cadena


Formato (myformat). En este caso, la cadena de formato contiene este
texto:
Rastreo de entradas analgicas:Entradas analgicas = %f, %f y %f

Cuando el punto de rastreo se activa, los caracteres antes del signo de


dos puntos (Rastreo de entradas analgicas) aparecen en la barra de
ttulo de la ventana de rastreo. Los dems caracteres conforman los
rastreos. En este ejemplo, %f representa los tags que se van a rastrear
(analogvalue1, analogvalue2 y analogvalue3).
Los rastreos resultantes se muestran aqu.

Cuando este rastreo se registra en el disco, los caracteres antes del


signo de dos puntos aparecen en los rastreos.

Publicacin 1756-RM003K-ES-P Julio 2008

633

Captulo 20

Instrucciones de depuracin (BPT, TPT)

Esto indica cul punto de rastreo caus cul entrada de rastreo. ste
es un ejemplo de una entrada de rastreo. Rastreo de entradas
analgicas: es el texto de encabezado de la cadena de formato del
punto de rastreo.
Rastreo de entradas analgicas:Entradas analgicas = 31.00201,
30.282000 y 30.110001

634

Publicacin 1756-RM003K-ES-P Julio 2008

Apndice

Atributos comunes

Introduccin

Valores inmediatos

Este apndice describe los atributos comunes en las instrucciones


Logix.
Si desea informacin acerca de

Vea la pgina

Valores inmediatos

635

Conversiones de datos

635

Cada vez que usted introduce un valor inmediato (constante) en


formato decimal (por ejemplo, -2, 3), el controlador almacena el valor
usando 32 bits. Si introduce un valor en una base diferente a la
decimal como, por ejemplo, binario o hexadecimal, y no especifica
todos y cada uno de los 32 bits, el controlador coloca un cero en los
bits que usted no especifica (los rellena con ceros).
EJEMPLO

Conversiones de datos

Relleno con cero de valores inmediatos

Si introduce

El controlador almacena

-1

16#ffff ffff (-1)

16#ffff (-1)

16#0000 ffff (65535)

8#1234 (668)

16#0000 029c (668)

2#1010 (10)

16#0000 000a (10)

Las conversiones de datos ocurren cuando usted mezcla diferentes


tipos de datos en la programacin:
Cuando se programa en

Pueden ocurrir conversiones cuando usted

Lgica de escalera de rels Mezcla diferentes tipos de datos en los parmetros dentro
de una instruccin
Bloque de funciones

635Publicacin 1756-RM003K-ES-P Julio 2008

Cablea dos parmetros que tienen diferentes tipos de datos

635

Apndice A

Atributos comunes

Las instrucciones se ejecutan ms rpidamente y requieren menos


memoria si todos los operandos de la instruccin usan:
el mismo tipo de datos
un tipo de datos ptimo:
En la seccin Operandos de cada instruccin en este
manual, un tipo de datos en negrita indica un tipo de datos
ptimo.
Los tipos de datos DINT y REAL son generalmente los tipos
de datos ptimos.
La mayora de las instrucciones de bloque de funciones slo
aceptan un tipo de datos (el tipo de datos ptimo) para sus
operandos.
Si usted mezcla diferentes tipos de datos y usa tags que no son del
tipo de datos ptimo, el controlador convierte los datos segn estas
reglas.
Es alguno de los operandos un valor REAL?
Si

Los operandos de entrada (por ejemplo, origen, tag en una


expresin, lmite) se convierten en:

La respuesta
es afirmativa

REAL

La respuesta
es negativa

DINT

Despus de la ejecucin de la instruccin, el resultado (un valor


DINT o REAL) se convierte en el tipo de datos del destino, si es
necesario.
Usted no puede especificar un tag BOOL en una instruccin que
opera con tipos de datos enteros o REAL.
Puesto que la conversin de datos requiere tiempo y memoria
adicional, usted puede aumentar la eficiencia de su programa si:
usa el mismo tipo de datos en toda la instruccin
minimiza el uso de los tipos de datos SINT o INT
En otras palabras, use todos los tags DINT o tags REAL, junto con
valores inmediatos, en sus instrucciones.
En las siguientes secciones se explica cmo se convierten los datos
cuando usted usa tags SINT o INT o cuando mezcla diferentes tipos
de datos.

636

Publicacin 1756-RM003K-ES-P Julio 2008

Atributos comunes

Apndice A

SINT o INT en DINT


En las instrucciones que convierten valores SINT o INT en valores
DINT, las secciones Operandos en este manual identifican el
mtodo de conversin.
Este mtodo de conversin

Convierte datos colocando

Extensin de signo

el valor del bit del extremo izquierdo (el signo del valor)
en cada posicin de bit a la izquierda de los bits
existentes hasta que haya 32 bits.

Relleno con ceros

ceros a la izquierda de los bits existentes hasta que haya


32 bits.

Los siguientes ejemplos muestran los resultados de convertir un valor


mediante extensin de signo y relleno con ceros.
Este valor

2#1111_1111_1111_1111

(-1)

2#1111_1111_1111_1111_1111_1111_1111_1111
Se convierte en
este valor mediante
extensin de signo

(-1)

2#0000_0000_0000_0000_1111_1111_1111_1111
Se convierte en
este valor mediante
relleno con ceros

(65535)

Puesto que los valores inmediatos siempre se rellenan con ceros,


la conversin de un valor SINT o INT puede producir resultados
inesperados. En el siguiente ejemplo, la comparacin es falsa porque
Source A, un INT, se convierte mediante extensin de signo; mientras
que Source B, un valor inmediato, se rellena con ceros.

der Logic Listing - Total number of rungs: 3


EQU
EQU
Igual
Equala (Equal)
SourceAA
remote_rack_1:I.Data[0]
Source
remote_rack_1:I.Data[0]
2#1111_1111_1111_1111
2#1111_1111_1111_1111
SourceBB 2#1111_1111_1111_1111
Source
2#1111_1111_1111_1111

42093

Publicacin 1756-RM003K-ES-P Julio 2008

637

Apndice A

Atributos comunes

Si utiliza un tag SINT o INT y un valor inmediato en una instruccin


que convierte datos mediante extensin de signo, use uno de estos
mtodos para manejar los valores inmediatos:
Especifique cualquier valor inmediato en la base decimal
Si va a introducir el valor en una base diferente a la decimal,
especifique los 32 bits del valor inmediato. Para ello, introduzca
el valor del bit del extremo izquierdo en cada posicin de bit a
la izquierda hasta que haya 32 bits.
Cree un tag para cada operando y use el mismo tipo de datos en
toda la instruccin. Para asignar un valor constante, realice uno
de los siguientes procedimientos:
Introdzcalo en uno de los tags
Aada una instruccin MOV que mueva el valor a uno de los
tags.
Use una instruccin MEQ para verificar slo los bits requeridos
Los siguientes ejemplos muestran dos maneras de mezclar un valor
inmediato con un tag INT. En ambos ejemplos se verifican los bits de
un mdulo de E/S 1771 para determinar si todos los bits estn
activados. Puesto que la palabra de datos de entrada de un mdulo de
E/S 1771 es un tag INT, lo ms fcil es usar un valor constante de
16 bits.
EJEMPLO

Mezcla de un tag INT con un valor inmediato


Puesto que remote_rack_1:I.Data[0] es un tag INT, el valor con
el cual se va a verificar tambin se introduce como un tag INT.

EQU
Equal
Source A remote_rack_1:I.Data[0]
2#1111_1111_1111_1111
Source B
int_0
2#1111_1111_1111_1111
42093

EJEMPLO

Mezcla de un tag INT con un valor inmediato


Puesto que remote_rack_1:I.Data[0] es un tag INT,
el valor con el cual se va a verificar primero se
mueve a int_0, tambin un tag INT. Posteriormente
la instruccin EQU compara ambos tags.

2#1111_1111_1111_1111

MOV
Move
Source 2#1111_1111_1111_1111
Dest

638

int_0
2#1111_1111_1111_1111

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

Publicacin 1756-RM003K-ES-P Julio 2008

Atributos comunes

Apndice A

Entero en REAL
El controlador almacena valores REAL en formato de valor con punto
flotante (coma flotante) de precisin simple IEEE. ste utiliza un bit
para el signo del valor, 23 bits para el valor base y ocho bits para el
exponente (32 bits en total). Si usted mezcla un tag de nmero entero
(SINT, INT o DINT) y un tag REAL como entradas en la misma
instruccin, el controlador convierte en un valor REAL el valor entero,
antes de que se ejecute la instruccin.
Un valor SINT o INT siempre se convierte en el mismo valor
REAL.
Un valor DINT puede no convertirse al mismo valor REAL:
Un valor REAL usa hasta 24 bits para el valor base (23 bits
almacenados ms un bit oculto).
Un valor DINT usa hasta 32 bits para el valor (uno para el
signo y 31 para el valor).
Si el valor DINT requiere ms de 24 bits significativos, puede
no convertirse en el mismo valor REAL. De ser as, el
controlador se redondear al valor REAL ms cercano usando
24 bits significativos.

DINT en SINT o INT


Para convertir un valor DINT en un valor SINT o INT, el controlador
trunca la porcin superior del DINT y establece el indicador de estado
de overflow, si es necesario. El siguiente ejemplo muestra el resultado
de una conversin de DINT en SINT o INT.
EJEMPLO

Publicacin 1756-RM003K-ES-P Julio 2008

Conversin de DINT en INT y SINT

Este valor DINT

Se convierte en este valor menor

16#0001_0081 (65,665)

INT:

16#0081 (129)

SINT:

16#81 (-127)

639

Apndice A

Atributos comunes

REAL en un nmero entero


Para convertir un valor REAL en un valor entero, el controlador
redondea la parte fraccionaria y trunca la porcin superior de la parte
no fraccionaria. Si se pierden datos, el controlador establece el
indicador de estado de overflow. Los nmeros se redondean de la
siguiente manera:
Los nmeros diferentes de x.5 se redondean al nmero entero
ms cercano.
X.5 se redondea al nmero par ms cercano.
El siguiente ejemplo muestra el resultado de convertir valores REAL en
valores DINT.
EJEMPLO
Este valor REAL

Se convierte en este valor DINT

-2.5

-2

-1.6

-2

-1.5

-2

-1.4

-1

1.4

1.5

1.6

2.5

IMPORTANTE

640

Conversin de valores REAL en valores DINT

Los indicadores de estado aritmtico se establecen segn el


valor que se est almacenando. Las instrucciones que
normalmente no afectan palabras clave de estado aritmticas
pueden parecer que lo hacen si ocurre una conversin de tipo
debido a una mezcla de tipos de datos en los parmetros de
instruccin. El proceso de conversin de tipo establece
palabras clave de estado aritmtico.

Publicacin 1756-RM003K-ES-P Julio 2008

Apndice

Atributos de bloque de funciones

Introduccin

Este apndice describe aspectos que son nicos con las instrucciones
de bloque de funciones. Repase la informacin proporcionada en este
apndice para asegurarse de que entiende cmo funcionarn las
rutinas de bloque de funciones.
Cuando se programa un bloque de funciones, es necesario restringir el rango de
unidades de ingeniera a +/-10+/-15 puesto que los clculos de punto flotante
(coma flotante) internos se realizan usando punto flotante (coma flotante) de
precisin simple. Las unidades de ingeniera que no se encuentran dentro de este
rango pueden provocar una prdida de exactitud si los resultados se acercan a las
limitaciones del punto flotante (coma flotante) de precisin simple (+/-10+/-38).

IMPORTANTE

Seleccin de elementos de
bloques de funciones
referencia de entrada (IREF)

Para controlar un dispositivo, use los siguientes elementos:

referencia de salida (OREF)

bloque de funciones

conector de
cable de
salida (OCON)

conector de
cable de entrada
(ICON)

Use la siguiente tabla para seleccionar los elementos de bloques de


funciones:
Si usted desea

Use una

suministrar un valor desde un dispositivo de entrada


o tag

referencia de entrada (IREF)

enviar un valor a un dispositivo de salida o tag

referencia de salida (OREF)

641Publicacin 1756-RM003K-ES-P Julio 2008

641

Apndice B

Atributos de bloque de funciones

Si usted desea

Use una

realizar una operacin con un valor o valores de


entrada, y producir un valor o valores de salida

bloque de funciones

transferir datos entre bloques de funciones cuando


stos estn:

conector de cable de salida (OCON) y un conector de


cable de entrada (ICON)

bastante separados en la misma hoja


en hojas diferentes dentro de la misma rutina
dispersar datos a varios puntos en la rutina

Enclavamiento de datos

conector de cable de una salida (OCON) y varios


conectores de cable de entrada (ICON)

Si usted usa una IREF para especificar datos de entrada en una


instruccin de bloques de funciones, los datos en la IREF se enclavan
para el escn de la rutina de bloque de funciones. La IREF enclava
datos desde los tags bajo el control del programa y tags bajo el control
del controlador. El controlador actualiza todos los datos IREF al
comienzo de cada escn.

IREF

En este ejemplo, el valor de tagA se almacena al comienzo de la


ejecucin de la rutina. El valor almacenado se usa cuando se ejecuta
Block_01. El mismo valor almacenado tambin se usa cuando se
ejecuta Block_02. Si el valor de tagA cambia durante la ejecucin de la
rutina, el valor almacenado de tagA en IREF no cambia hasta la
siguiente ejecucin de la rutina.
Block_01

tagA

Block_02

642

Publicacin 1756-RM003K-ES-P Julio 2008

Atributos de bloque de funciones

Apndice B

Este ejemplo es igual al anterior. El valor de tagA se almacena slo


una vez al comienzo de la ejecucin de la rutina. La rutina usa este
valor almacenado en toda la rutina.
Block_01

tagA

Block_02

tagA

Comenzando con el software RSLogix 5000, versin 11, se puede usar


el mismo tag en mltiples IREF y un OREF en la misma rutina. Puesto
que los valores de tags en las IREF se enclavan en cada escn en toda
la rutina, todas las IREF usarn el mismo valor, aunque una OREF
obtenga un valor de tag diferente durante la ejecucin de la rutina. En
este ejemplo, si tagA tiene un valor de 25.4 cuando la rutina comienza
a ejecutar este escn, y Block_01 cambia el valor de tagA a 50.9, la
segunda IREF cableada en Block_02 seguir usando un valor de 25.4
cuando Block_02 ejecute este escn. El nuevo valor de tagA de 50.9
no ser usado por ninguna IREF en esta rutina hasta el comienzo del
siguiente escn.

Publicacin 1756-RM003K-ES-P Julio 2008

643

Apndice B

Atributos de bloque de funciones

Orden de ejecucin

El software de programacin RSLogix 5000 determina


automticamente el orden de ejecucin de los bloques de funciones
en una rutina cuando usted:
verifica una rutina de bloque de funciones
verifica un proyecto que contiene una rutina de bloque de
funciones
descarga un proyecto que contiene una rutina de bloque de
funciones
El orden de ejecucin se define cableando bloques de funciones unos
con otros, e indicando el flujo de datos de los cables de
retroalimentacin, si es necesario.
Si los bloques de funciones no estn cableados unos con otros, no
importa cul bloque se ejecuta primero. No existe un flujo de datos
entre los bloques.

Si usted cablea los bloques de manera secuencial, el orden de


ejecucin va de entrada a salida. Las entradas de un bloque requieren
que los datos estn disponibles para que el controlador pueda
ejecutar dicho bloque. Por ejemplo, el bloque 2 tiene que ejecutarse
antes que el bloque 3 porque las salidas del bloque 2 alimentan las
entradas del bloque 3.
1

El orden de ejecucin se relaciona slo a los bloques que estn


cableados unos con otros. El siguiente es un buen ejemplo porque
los dos grupos de bloques no estn cableados unos con otros. Los
bloques dentro de un grupo especfico se ejecutan en el orden
apropiado en relacin con los bloques de dicho grupo.

644

Publicacin 1756-RM003K-ES-P Julio 2008

Atributos de bloque de funciones

Apndice B

Resolucin de un lazo
Para crear un lazo de retroalimentacin alrededor de un bloque,
cablee un pin de salida de un bloque a un pin de entrada del mismo
bloque. El siguiente es un buen ejemplo. El lazo contiene un solo
bloque, por lo que el orden de ejecucin no es importante.

Este pin de entrada usa una


salida que el bloque produjo en
el escn anterior.

Si hay un grupo de bloques en un lazo, el controlador no puede


determinar cul bloque debe ejecutarse primero. En otras palabras,
no puede resolver el lazo.
?

Para identificar cul bloque debe ejecutarse primero, marque el cable


de entrada que crea el lazo (el cable de retroalimentacin) con el
indicador Suponer datos disponibles. En el siguiente ejemplo, el
bloque 1 usa la salida del bloque 3 que se produjo en la ejecucin
previa de la rutina.
1

Este pin de entrada usa la salida


que el bloque 3 produjo en el
escn anterior.
Indicador Suponer datos disponibles

El indicador Suponer datos disponibles define el flujo de datos dentro


del lazo. La flecha indica que los datos sirven como entrada para el
primer bloque en el lazo.

Publicacin 1756-RM003K-ES-P Julio 2008

645

Apndice B

Atributos de bloque de funciones

No marque todos los cables de un lazo con el indicador Suponer datos


disponibles.
Esto es correcto
1

Esto no es correcto
2

Indicador Suponer datos


disponibles

El controlador no puede resolver el lazo porque los cables usan el


indicador Suponer datos disponibles.

El indicador Suponer datos disponibles define el flujo de datos


dentro del lazo.

646

Publicacin 1756-RM003K-ES-P Julio 2008

Atributos de bloque de funciones

Apndice B

Resolucin del flujo de datos entre dos bloques


Si usted usa dos o ms cables para conectar dos bloques, use los
mismos indicadores de flujo de datos para todos los cables entre los
dos bloques.
Esto es correcto

Esto no es correcto

Un cable usa el indicador Suponer datos disponibles y el otro


cable no.

Ningn cable usa el indicador Suponer datos disponibles.

Indicador Suponer datos


disponibles

Ambos cables usan el indicador Suponer datos disponibles.

Creacin de un retardo de escn


Para producir un retardo de escn entre bloques, use el indicador
Suponer datos disponibles. En el siguiente ejemplo, el bloque 1 se
ejecuta primero. Utiliza la salida del bloque 2 que se produjo en el
escn anterior de la rutina.
2

Indicador Suponer datos disponibles

Publicacin 1756-RM003K-ES-P Julio 2008

647

Apndice B

Atributos de bloque de funciones

Resumen
En resumen, una rutina de bloque de funciones se ejecuta en este
orden:
1. El controlador enclava todos los valores de datos en las IREF.
2. El controlador ejecuta los otros bloques de funciones en el
orden determinado segn su cableado.
3. El controlador escribe salidas en las OREF.

Respuestas de bloque de
funciones a condiciones de
overflow

En general, las instrucciones de bloque de funciones que mantienen


el historial no actualizan el historial con valores NAN o INF cuando
se produce un overflow. Cada instruccin tiene una de estas
respuestas frente a una condicin de overflow:

Respuesta 1:

Respuesta 2:

Respuesta 3:

Los bloques ejecutan su algoritmo y


verifican el resultado para NAN o INF.
Si NAN o INF, el bloque establece la
salida NAN o INF.

Los bloques con lmite de salida ejecutan


su algoritmo y verifican el resultado para
NAN o INF. Los lmites de salida son
definidos por los parmetros de entrada
HighLimit y LowLimit. Si INF, el bloque
establece la salida un resultado limitado.
Si NAN, los lmites de salida no se usan y
el bloque establece la salida NAN.

La condicin de overflow no se aplica. Estas


instrucciones generalmente tienen una
salida booleana.

ALMNTCH

HLL

BANDOSRI

DEDTPMUL

INTG

BNOTRESD

DERVPOSP

PI

BORRTOR

ESELRLIM

PIDE

BXORSETD

FGENRMPS

SCL

CUTDTOFR

HPFSCRV

SOC

D2SDTONR

LDL2SEL

D3SD

LDLGSNEG

DFF

LPFSRTP

JKFF

MAVESSUM

OSFI

MAXCTOT
MINCUPDN
MSTD
MUX

648

Publicacin 1756-RM003K-ES-P Julio 2008

Atributos de bloque de funciones

Modos de temporizacin

Apndice B

Estas instrucciones de control de procesos y de variadores aceptan


diferentes modos de temporizacin.
DEDT

LDLG

RLIM

DERV

LPF

SCRV

HPF

NTCH

SOC

INTG

PI

TOT

LDL2

PIDE

Hay tres modos de temporizacin diferentes:


Modo de
temporizacin

Descripcin

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.

Publicacin 1756-RM003K-ES-P Julio 2008

649

Apndice B

Atributos de bloque de funciones

Modo de
temporizacin

Descripcin

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.

Las instrucciones basadas en tiempo requieren un valor constante


para DeltaT a fin de que el algoritmo de control calcule correctamente
la salida del proceso. Si DeltaT vara, se produce una discontinuidad
en la salida del proceso. La severidad de la discontinuidad depende
de la instruccin y del rango de variacin de DeltaT. Se produce una
discontinuidad si:
la instruccin no se ejecuta durante un escn;
la instruccin se ejecuta varias veces durante una tarea;
la tarea se est ejecutando y cambia la velocidad de escn de la
tarea o el tiempo de muestreo de la entrada del proceso;
el usuario cambia el modo de base de tiempo mientras la tarea
se est ejecutando.
El parmetro Order se cambia en un bloque de filtro mientras
la tarea se est ejecutando. Al cambiar el parmetro Order se
selecciona un algoritmo de control diferente dentro de la
instruccin.

650

Publicacin 1756-RM003K-ES-P Julio 2008

Atributos de bloque de funciones

Apndice B

Parmetros de instruccin comunes para modos de


temporizacin
Las instrucciones que aceptan modos de base de tiempo tienen estos
parmetros de entrada y salida:

Parmetros de entrada
Parmetro de
entrada

Tipo de datos

Descripcin

TimingMode

DINT

Selecciona el modo de ejecucin de temporizacin.


Valor:

Descripcin:

modo peridico

modo de sobremuestreo

modo de muestreo en tiempo real

vlido = 0 a 2
valor predeterminado = 0

Cuando TimingMode = 0 y la tarea es peridica, la temporizacin peridica se establece y


DeltaT se establece en la velocidad de escn de la tarea. Cuando TimingMode = 0 y la tarea
es de evento o una tarea continua, la temporizacin peridica se habilita y DeltaT se
establece en un valor igual al tiempo transcurrido desde la ltima vez que se ejecut la
instruccin.

Cuando TimingMode = 1, la temporizacin de sobremuestreo se habilita y DeltaT se


establece en el valor del parmetro OversampleDT.

Cuando TimingMode = 2, la temporizacin del muestreo en tiempo real se habilita y DeltaT


es la diferencia entre los valores de sello de hora actual y previo que fueron ledos del
mdulo asociado con la entrada.

Si TimingMode es no vlido, la instruccin establece el bit apropiado en Status.


OversampleDT

REAL

Tiempo de ejecucin para temporizacin de sobremuestreo. El valor usado para DeltaT es en


segundos. Si TimingMode = 1, implica que OversampleDT = 0.0 inhabilita la ejecucin del
algoritmo de control. Si no es vlido, la instruccin establece DeltaT = 0.0 y establece el bit
apropiado en Status.
vlido = 0 a 4194.303 segundos
valor predeterminado = 0.0

Publicacin 1756-RM003K-ES-P Julio 2008

651

Apndice B

Atributos de bloque de funciones

Parmetro de
entrada

Tipo de datos

Descripcin

RTSTime

DINT

Perodo de actualizacin del mdulo para temporizacin de muestreo en tiempo real. El


perodo de actualizacin DeltaT previsto es en milisegundos. El perodo de actualizacin
normalmente es el valor usado para configurar el tiempo de actualizacin del mdulo. Si no
es vlido, la instruccin establece el bit apropiado en Status e inhabilita la verificacin de
RTSMissed.
vlido = 1 a 32,767 ms
valor predeterminado = 1

TTSTimeStamp

DINT

Valor de sello de hora para temporizacin de muestreo en tiempo real. El valor de sello de
hora que corresponde a la ltima actualizacin de la seal de entrada. Este valor se usa para
calcular DeltaT. Si no es vlido, la instruccin establece el bit apropiado en Status, inhabilita
la ejecucin del algoritmo de control e inhabilita la verificacin de RTSMissed.
vlido = 1 a 32,767 ms (regresa de 32767 a 0)
1 conteo = 1 milisegundo
valor predeterminado = 0

Parmetros de salida
Parmetro de salida Tipo de datos

Descripcin

DeltaT

Tiempo transcurrido entre actualizaciones. Es el tiempo transcurrido en segundos usado por


el algoritmo de control para calcular la salida del proceso.

REAL

Peridica: DeltaT = velocidad de escn de la tarea si la tarea es una tarea peridica. DeltaT =
tiempo transcurrido desde la ejecucin de la instruccin previa si la tarea es de evento o una
tarea continua.

Sobremuestreo DeltaT = OversampleDT

Muestreo en tiempo real: DeltaT = (RTSTimeStampn - RTSTimeStampn-1)


Status

DINT

Estado del bloque de funciones.

TimingModeInv
(Status.27)

BOOL

Valor no vlido de TimingMode.

RTSMissed (Status.28) BOOL

Slo se usa en el modo de muestreo en tiempo real.


Se establece cuando ABS | DeltaT - RTSTime | > 1 (.001 segundo).

RTSTimeInv
(Status.29)

BOOL

Valor no vlido de RTSTime.

RTSTimeStampInv
(Status.30)

BOOL

Valor no vlido de RTSTimeStamp.

DeltaTInv (Status.31)

BOOL

Valor DeltaT no vlido.

652

Publicacin 1756-RM003K-ES-P Julio 2008

Atributos de bloque de funciones

Apndice B

Descripcin general de los modos de temporizacin


El siguiente diagrama muestra cmo una instruccin determina el
modo de temporizacin adecuado.

Determine el modo de base


de tiempo
TimingMode = 0

Temporizacin peridica

Determine el tipo de tarea

Tarea peridica

DeltaT = tiempo de escn de tarea


Si DeltaT > 0, la instruccin se
ejecuta.

Publicacin 1756-RM003K-ES-P Julio 2008

TimingMode = 1

TimingMode = 2

Temporizacin en tiempo real

Temporizacin de sobremuestreo

DeltaT = OversampleDT

DeltaT = RTSTimeStampn - RTSTimeStampn-1

Si DeltaT < 0 o DeltaT > 4194.303


segundos, la instruccin establece
DeltaT = 0.0 y establece el bit apropiado
en Status.

Si DeltaT > 0, la instruccin se ejecuta.


Si |RTSTIME - DeltaT| > 1, la instruccin establece el bit
RTSMissed en Status.

Si DeltaT > 0, la instruccin se ejecuta.

Evento o tarea continua

DeltaT = tiempo transcurrido desde la


ltima ejecucin
Si DeltaT > 0, la instruccin se ejecuta.

653

Apndice B

Atributos de bloque de funciones

Control de programa/
operador

Hay varias instrucciones compatibles con el concepto de control de


programa/operador. Estas instrucciones incluyen:

Seleccin mejorada (ESEL)


Totalizador (TOT)
PID mejorado (PIDE)
Rampa y estabilizacin (RMPS)
Dispositivo de 2 estados discretos (D2SD)
Dispositivo de 3 estados discretos (D3SD)

El control de programa/operador permite controlar estas instrucciones


simultneamente desde el programa de usuario y desde un dispositivo
de interface de operador. Cuando est en control de programa,
la instruccin es controlada por las entradas del programa a la
instruccin; cuando est en control del operador, la instruccin es
controlada por las entradas del operador a la instruccin.
El control de programa u operador se determina mediante el uso de
estas entradas:
Entrada

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.

Para determinar si una instruccin est en control de programa o de


operador, examine la salida ProgOper. Si ProgOper est establecida,
la instruccin est en control del programa; si ProgOper se borra,
la instruccin est en control del operador.
El control de operador tiene precedencia sobre el control de
programa si ambos bits de peticin de entrada estn establecidos.
Por ejemplo, si ProgProgReq y ProgOperReq estn establecidos,
la instruccin pasa a control de operador.

654

Publicacin 1756-RM003K-ES-P Julio 2008

Atributos de bloque de funciones

Apndice B

Las entradas de peticin de programa tienen precedencia sobre las


entradas de peticin de operador. Esto proporciona la capacidad de
usar las entradas ProgProgReq y ProgOperReq para bloquear una
instruccin en un control deseado. Por ejemplo, supongamos que una
instruccin Totalizer siempre se usar en el control de operador y que
el programa de usuario nunca controlar la ejecucin o paro de la
instruccin Totalizer En este caso, usted podra cablear un valor literal
de 1 en ProgOperReq. Con esto impedira que el operador pueda
poner Totalizer en el control de programa estableciendo OperProgReq
desde un dispositivo de interface de operador.
Puesto que la entrada ProgOperReq
siempre est establecida, presionar
el botn Program en la plantilla
(lo cual establece la entrada
OperProgReg) no tiene ningn
efecto. Normalmente, establecer
OperProgReq pone TOT en control
de programa.

Cablear un 1 en ProgOperReq
significa que el programa de usuario
desea que TOT siempre est en control
de operador.

Publicacin 1756-RM003K-ES-P Julio 2008

655

Apndice B

Atributos de bloque de funciones

De igual modo, el establecer constantemente ProgProgReq puede


bloquear la instruccin en control de programa. Esto es til para las
secuencias de puesta en marcha automtica cuando usted desea que
el programa controle la accin de la instruccin sin tener que
preocuparse de que un operador tome accidentalmente el control de
la instruccin. En este ejemplo el programa establece la entrada
ProgProgReq durante la puesta en marcha y posteriormente borra la
entrada ProgProgReq una vez que concluye la puesta en marcha. Una
vez que se borra la entrada ProgProgReq, la instruccin permanece en
control de programa hasta que recibe una peticin de cambiar. Por
ejemplo, el operador podra establecer la entrada OperOperReq desde
la plantilla para asumir el control de esa instruccin. El siguiente
ejemplo muestra cmo bloquear una instruccin en control de
programa.

Cuando se establece
StartupSequenceActive, la
instruccin PIDE se coloca en
control de programa y en modo
manual. El valor StartupCV se
usa como salida de lazo.

Las entradas de peticin de operador a una instruccin siempre son


borradas por la instruccin cuando sta se ejecuta. Esto permite que
las interfaces de operador funcionen con estas instrucciones
simplemente estableciendo el bit de peticin del modo deseado. No
es necesario programar la interface de operador para restablecer los
bits de peticin. Por ejemplo, si una interface de operador establece la
entrada OperAutoReq a una instruccin PIDE, cuando se ejecuta la
instruccin PIDE, sta determina cul debe ser la respuesta apropiada
y borra OperAutoReq.

656

Publicacin 1756-RM003K-ES-P Julio 2008

Atributos de bloque de funciones

Apndice B

Las entradas de peticin de programa normalmente no son borradas


por la instruccin porque stas normalmente estn cableadas como
entradas en la instruccin. Si la instruccin borra estas entradas, la
entrada sera establecida nuevamente por la entrada cableada. Puede
haber situaciones en las que usted desee usar otra lgica para
establecer las peticiones de programa de manera tal que desee que las
peticiones de programa sean borradas por la instruccin. En este caso
puede establecer la entrada ProgValueReset y la instruccin siempre
borrar las entradas de peticin del modo de programacin cuando
sta se ejecute.
En este ejemplo se usa un rengln de lgica de escalera en otra rutina
para realizar un enclavamiento monoestrable de ProgAutoReq a una
instruccin PIDE cuando se presiona un botn pulsador. Puesto que
la instruccin PIDE automticamente borra las peticiones del modo de
programacin, usted no tiene que escribir ninguna lgica de escalera
para borrar ProgAutoReq despus de que se ejecute la rutina, y la
instruccin PIDE recibir slo una peticin para pasar a Auto cada vez
que se presione el botn pulsador.
Cuando se presiona el botn pulsador TIC101AutoReq, se realiza un enclavamiento monoestrable de
ProgAutoReq para la instruccin PIDE TIC101. TIC101 se ha configurado con la entrada ProgValueReset
establecida; por lo tanto, cuando se ejecuta la instruccin PIDE, sta automticamente borra ProgAutoReq.

Publicacin 1756-RM003K-ES-P Julio 2008

657

Apndice B

Atributos de bloque de funciones

Notas:

658

Publicacin 1756-RM003K-ES-P Julio 2008

Apndice

Programacin de texto estructurado

Introduccin

Este apndice describe aspectos que son nicos con la programacin


de texto estructurado. Repase la informacin proporcionada en este
apndice para asegurarse de que entiende cmo se ejecutar la
programacin de texto estructurado.

Sintaxis del texto


estructurado

Si desea informacin acerca de

Vea la pgina

Sintaxis del texto estructurado

659

Asignaciones

661

Expresiones

663

Instrucciones

670

Construcciones

671

Comentarios

687

El texto estructurado es un lenguaje de programacin textual que usa


declaraciones para definir lo que se va a ejecutar.
El texto estructurado no permite distinguir maysculas de
minsculas.
Use caracteres de tabulacin y de retorno de carro (lneas
separadas) para facilitar la lectura del texto estructurado. Dichos
caracteres no tienen ningn efecto en la ejecucin del texto
estructurado.
El texto estructurado no permite distinguir maysculas de minsculas.
El texto estructurado contiene estos componentes:

Trmino

Definicin

Ejemplos

asignacin

Use una declaracin de asignacin para asignar valores a los tags.

tag := expression;

(ver pgina 661)

El operador := es el operador de asignacin.


Termine la asignacin con un punto y coma ;.

659Publicacin 1756-RM003K-ES-P Julio 2008

659

Apndice C

Programacin de texto estructurado

Trmino

Definicin

expresin

Una expresin es parte de una declaracin de construccin o asignacin


completa. Una expresin evala segn un nmero (expresin numrica) o
segn un estado de verdadero o falso (expresin BOOL).

(ver pgina 663)

Ejemplos

Una expresin contiene:


tags

Un rea de la memoria con nombre asignado, donde


se almacenan los datos (BOOL, SINT,INT,DINT, REAL,
cadena).

value1

inmediatos

Un valor constante.

operadores

Un smbolo o mnemnico que especifica una


operacin dentro de una expresin.

tag1 + tag2
tag1 >= value1

funciones

Cuando se ejecuta, una funcin produce un valor.


Use parntesis para delimitar el operando de una
funcin.

function(tag1)

Aunque su sintaxis es similar, las funciones se


diferencian de las instrucciones porque las
funciones slo pueden usarse en expresiones.
Las instrucciones no pueden usarse en expresiones.
instruccin

Una instruccin es una declaracin autnoma.

(ver pgina 670)

Una instruccin usa parntesis para delimitar sus operandos.


Segn la instruccin, puede haber cero, uno o varios operandos.

instruction();

instruction(operand);

Cuando se ejecuta, una instruccin produce uno o ms valores que son


parte de una estructura de datos.
Termine la instruccin con un punto y coma ;.

instruction(operand1,
operand2,operand3);

Aunque su sintaxis es similar, las instrucciones se diferencian de las


funciones porque las instrucciones no pueden usarse en expresiones.
Las funciones slo pueden usarse en expresiones.

660

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Trmino

Definicin

Ejemplos

construccin

Una declaracin condicional usada para activar cdigo de texto


estructurado (a saber, otras declaraciones).

IF...THEN

(ver pgina 671)

Apndice C

CASE
Termine la construccin con un punto y coma ;.
FOR...DO
WHILE...DO
REPEAT...UNTIL
EXIT

comentario
(ver pgina 687)

Texto que explica o aclara lo que hace una seccin de texto estructurado. //comment
Use comentarios para facilitar la interpretacin del texto
estructurado.
Los comentarios no tienen ningn efecto en la ejecucin del texto
estructurado.

(*start of comment . . .
end of comment*)

Los comentarios pueden aparecer en cualquier lugar del texto


estructurado.
/*start of comment . . .
end of comment*/

Asignaciones

Use una asignacin para cambiar el valor almacenado dentro de un


tag. Una asignacin tiene esta sintaxis:
tag := expression ;
donde:
Componente

Descripcin

tag

representa el tag que est obteniendo el nuevo valor


el tag debe ser BOOL, SINT, INT, DINT o REAL

:=

es el smbolo de asignacin

expresin

representa el nuevo valor que se va a asignar al tag


Si el tag es de este tipo de Use este tipo de expresin:
datos:
BOOL

expresin BOOL

SINT

expresin numrica

INT
DINT
REAL
;

Publicacin 1756-RM003K-ES-P Julio 2008

finaliza la asignacin

661

Apndice C

Programacin de texto estructurado

El tag retiene el valor asignado hasta que otra asignacin cambia el


valor.
La expresin puede ser simple, como un valor inmediato u otro
nombre de tag, o la expresin puede ser compleja e incluir varios
operadores y/o funciones Vea la siguiente seccin Expresiones en la
pgina 663 para obtener detalles.

Especifique una asignacin no retentiva


La asignacin no retentiva es diferente de la asignacin regular antes
descrita porque el tag en una asignacin no retentiva se pone en cero
cada vez que el controlador:
entra al modo de MARCHA
sale del paso de un SFC si usted configura el SFC para
Restablecimiento automtico (Esto slo se aplica si usted
incorpora la asignacin en la accin del paso o usa la accin
para llamar una rutina de texto estructurado mediante una
instruccin JSR).
Una asignacin no retentiva tiene esta sintaxis:
tag [:=] expresin ;
donde:
Componente

Descripcin

tag

representa el tag que obtiene el nuevo valor


el tag debe ser BOOL, SINT, INT, DINT o REAL

[:=]

es el smbolo de asignacin no retentiva

expresin

representa el nuevo valor que se va a asignar al tag


Si el tag es de este tipo de Use este tipo de expresin:
datos:
BOOL

expresin BOOL

SINT

expresin numrica

INT
DINT
REAL
;

662

finaliza la asignacin

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Apndice C

Asigne un carcter ASCII a una cadena


Use el operador de asignacin para asignar un carcter ASCII a un
elemento del miembro DATA de un tag de cadena. Para asignar un
carcter, especifique el valor del carcter o especifique el nombre de
tag, miembro DATA y elemento del carcter. Por ejemplo:
Esto es correcto

Esto no es correcto.

string1.DATA[0]:= 65;

string1.DATA[0] := A;

string1.DATA[0]:= string2.DATA[0];

string1 := string2;

Para aadir o insertar una cadena de caracteres en un tag de cadena,


use cualquiera de estas instrucciones de cadena ASCII:

Expresiones

Para

Use esta instruccin

aadir caracteres al final de una cadena

CONCAT

insertar caracteres dentro de una cadena

INSERT

Una expresin es un nombre de tag, ecuacin o comparacin. Para


escribir una expresin, use cualquiera de los siguientes:
nombre de tag que almacena el valor (variable)
nmero que usted introduce directamente en una expresin
(valor inmediato)
funciones, tales como: ABS, TRUNC
operadores, tales como: +, -, <, >, And, Or
Cuando escriba las expresiones, siga estas reglas generales:
Use cualquier combinacin de letras maysculas y minsculas.
Por ejemplo, cualquiera de estas tres variaciones de AND es
aceptable: AND, And, and.
Para requisitos ms complejos, use parntesis a fin de agrupar
expresiones dentro de otras expresiones. Esto hace que toda la
expresin sea ms fcil de leer y asegura que la expresin se
ejecute en la secuencia deseada. Consulte Determine el orden
de ejecucin en la pgina 669.

Publicacin 1756-RM003K-ES-P Julio 2008

663

Apndice C

Programacin de texto estructurado

En texto estructurado usted usa dos tipos de expresiones:


Expresin BOOL: Una expresin que produce ya sea el valor BOOL
de 1 (verdadero) o 0 (falso).
Una expresin booleana usa tags booleanos, operadores
relacionales y operadores lgicos para comparar valores o
verificar si las condiciones son verdaderas o falsas. Por ejemplo,
tag1>65.
Una expresin booleana simple puede ser un simple tag BOOL.
Normalmente usted usa expresiones para condicionar la
ejecucin de otra lgica.
Expresin numrica: Una expresin que calcula un valor entero o
de punto flotante (coma flotante).
Una expresin numrica usa operadores aritmticos, funciones
aritmticas y operadores a nivel de bits. Por ejemplo, tag1+5.
A menudo usted anida una expresin numrica dentro de una
expresin booleana. Por ejemplo, (tag1+5)>65.
Use la siguiente tabla a fin de seleccionar operadores para sus
expresiones:

664

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


verdaderas o falsas

Use operadores lgicosen la pgina 668.

Comparar los bits dentro de valores

Use operadores a nivel de bitsen la pgina 669.

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Apndice C

Use funciones y operadores aritmticos


Usted puede combinar mltiples operadores y funciones en
expresiones aritmticas.
Los operadores aritmticos calculan nuevos valores.
Para

Use este operador

Tipo de datos ptimo

sumar

DINT, REAL

restar/cambiar signo

DINT, REAL

multiplicar

DINT, REAL

exponente (x a la potencia y)

**

DINT, REAL

dividir

DINT, REAL

obtener el mdulo de una


divisin

MOD

DINT, REAL

Las funciones aritmticas realizan operaciones matemticas.


Especifique una constante, un tag no booleano o una expresin para
la funcin.

Publicacin 1756-RM003K-ES-P Julio 2008

Para obtener

Use esta funcin

Tipo de datos
ptimo

valor absoluto

ABS (numeric_expression)

DINT, REAL

arco coseno

ACOS (numeric_expression)

REAL

arco seno

ASIN (numeric_expression)

REAL

arco tangente

ATAN (numeric_expression)

REAL

coseno

COS (numeric_expression)

REAL

radianes a grados

DEG (numeric_expression)

DINT, REAL

logaritmo natural

LN (numeric_expression)

REAL

logaritmo base 10

LOG (numeric_expression)

REAL

grados a radianes

RAD (numeric_expression)

DINT, REAL

seno

SIN (numeric_expression)

REAL

raz cuadrada

SQRT (numeric_expression)

DINT, REAL

tangente

TAN (numeric_expression)

REAL

truncar

TRUNC (numeric_expression)

DINT, REAL

665

Apndice C

Programacin de texto estructurado

Por ejemplo:
Use este formato

Ejemplo
Para esta situacin

Usted escribira

value1 operator value2

Si gain_4 y gain_4_adj son tags DINT y su


especificacin dice: Aadir 15 a gain_4 y
almacenar el resultado en gain_4_adj.

gain_4_adj :=
gain_4+15;

operator value1

Si alarm y high_alarm son valores DINT y su


especificacin dice: Cambiar signo de high_alarm
y almacenar el resultado en alarm.

alarm:=
-high_alarm;

function(numeric_expression)

Si overtravel y overtravel_POS son tags DINT y su


especificacin dice: Calcular el valor absoluto de
overtravel y almacenar el resultado en
overtravel_POS.

overtravel_POS :=
ABS(overtravel);

value1 operator
(function((value2+value3)/2)

Si adjustment y position son tags DINT, sensor1 y


sensor2 son tags REAL, y su especificacin dice:
Encontrar el valor absoluto del promedio de
sensor1 y sensor2, aadir el adjustment y guardar el
resultado en position.

position :=
adjustment +
ABS((sensor1 +
sensor2)/2);

Use operadores relacionales


Los operadores relacionales comparan dos valores o cadenas para
proporcionar un resultado verdadero o falso. El resultado de una
operacin relacional es un valor BOOL:
Si la comparacin es

El resultado es

verdadera

falsa

Use los siguientes operadores relacionales:

666

Para esta comparacin:

Use este operador

Tipo de datos ptimo

igual

DINT, REAL, cadena

menor que

<

DINT, REAL, cadena

menor o igual que

<=

DINT, REAL, cadena

mayor que

>

DINT, REAL, cadena

mayor o igual que

>=

DINT, REAL, cadena

diferente de

<>

DINT, REAL, cadena

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Apndice C

Por ejemplo:
Use este formato

Ejemplo
Para esta situacin

Usted escribira

value1 operator value2

Si temp es un tag DINT y su especificacin dice: IF temp<100 THEN...


Si temp es menor que 100 entonces

stringtag1 operator
stringtag2

Si bar_code y dest son tags de cadena y su


especificacin dice: Si bar_code es igual a
dest entonces

IF bar_code=dest THEN...

char1 operator char2

Si bar_code es un tag de cadena y su


especificacin dice: Si bar_code.DATA[0] es
igual a A entonces

IF bar_code.DATA[0]=65
THEN...

Si count y length son tags DINT, done es un tag


BOOL y su especificacin dice Si count es
mayor o igual que length, usted ya termin el
conteo.

done := (count >= length);

Para introducir un carcter ASCII


directamente en la expresin, introduzca
el valor decimal del carcter.
bool_tag :=
bool_expressions

Cmo se evalan las cadenas


Los valores hexadecimales de los caracteres ASCII determinan si una
cadena es mayor o menor que otra cadena.
Cuando las dos cadenas se clasifican como en un directorio
telefnico, el orden de las cadenas determina cul es mayor.

m
e
n
o
r

m
a
y
o
r

Caracteres ASCII

Cdigos
hexadecimales

1ab

$31$61$62

1b

$31$62

$41

AB

$41$42

$42

$61

ab

$61$62

AB < B
a>B

Las cadenas son iguales si sus caracteres coinciden.


Los caracteres permiten distinguir maysculas de minsculas.
La A mayscula ($41) es diferente a la a minscula ($61).
Para obtener el valor decimal y el cdigo hexadecimal de un carcter,
consulte la contraportada de este manual.

Publicacin 1756-RM003K-ES-P Julio 2008

667

Apndice C

Programacin de texto estructurado

Use operadores lgicos


Los operadores lgicos le permiten verificar si varias condiciones son
verdaderas o falsas. El resultado de una operacin lgica es un valor
BOOL.
Si la comparacin es

El resultado es

verdadera

falsa

Use los siguientes operadores lgicos:


Para obtener

Use este operador

Tipo de datos

Y lgico

&, AND

BOOL

O lgico

OR

BOOL

O exclusivo lgico

XOR

BOOL

complemento lgico

NOT

BOOL

Por ejemplo:
Use este formato

Ejemplo
Para esta situacin

Usted escribira

BOOLtag

Si photoeye es un tag BOOL y su especificacin


dice: Si photoeye est activada, entonces

IF photoeye THEN...

NOT BOOLtag

Si photoeye es un tag BOOL y su especificacin


dice: Si photoeye est desactivada
entonces

IF NOT photoeye THEN...

expression1 & expression2

Si photoeye es un tag BOOL, temp es un tag


DINT y su especificacin dice: Si photoeye
est activada y temp es menor que 100
entonces.

IF photoeye & (temp<100)


THEN...

expression1 OR expression2

Si photoeye es un tag BOOL, temp es un tag


DINT y su especificacin dice: Si photoeye
est activada o temp es menor que 100
entonces.

IF photoeye O (temp<100)
THEN...

expression1 XOR expression2

Si photoeye1 y photoeye2 son tags BOOL y su


especificacin dice: Si:

IF photoeye1 XOR
photoeye2 THEN...

photoeye1 est activada mientras que


photoeye2 est desactivada o
photoeye1 est desactivada mientras que
photoeye2 est activada
entonces
BOOLtag := expression1 &
expression2

668

Si photoeye1 y photoeye2 son tags BOOL, open


es un tag BOOL y su especificacin dice: Si
photoeye1 y photoeye2 estn ambas activadas,
establezca open en verdadero.

abrir := photoeye1 y
photoeye2;

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Apndice C

Use operadores a nivel de bits


Los operadores a nivel de bits manipulan los bits dentro de un valor
basado en dos valores.
Para obtener

Use este operador

Tipo de datos ptimo

Y a nivel de bits

&, AND

DINT

O a nivel de bits

OR

DINT

O exclusivo a nivel de bits

XOR

DINT

complemento a nivel de bits

NOT

DINT

Por ejemplo:
Use este formato

value1 operator value2

Ejemplo
Para esta situacin

Usted escribira

Si input1, input2, y result1 son tags DINT y su


especificacin dice: Calcule el resultado a nivel de
bits de input1 e input2. Guarde el resultado en
result1.

result1 := input1 AND


input2;

Determine el orden de ejecucin


Las operaciones que usted escribe en una expresin se realizan en un
orden prescrito, no necesariamente de izquierda a derecha.
Las operaciones de igual orden se realizan de izquierda a
derecha.
Si una expresin contiene varios operadores o funciones,
agrupe las condiciones en parntesis ( ). Esto asegura el
orden correcto de ejecucin y facilita la lectura de la expresin.

Publicacin 1756-RM003K-ES-P Julio 2008

Orden

Operacin

1.

()

2.

funcin ()

3.

**

4.

(cambiar signo)

5.

NOT

6.

*, /, MOD

7.

+, - (restar)

8.

<, <=, >, >=

9.

=, <>

10.

&, AND

11.

XOR

12.

OR

669

Apndice C

Programacin de texto estructurado

Instrucciones

Las declaraciones de texto estructurado tambin pueden ser


instrucciones. Consulte en la tabla de ubicacin al comienzo de este
manual la lista de las instrucciones disponibles en texto estructurado.
Una instruccin de texto estructurado se ejecuta cada vez que se
escanea. Una instruccin de texto estructurado dentro de una
construccin se ejecuta cada vez que las condiciones de la
construccin son verdaderas. Si las condiciones de la construccin son
falsas, las declaraciones dentro de la construccin no se escanean.
No existe una condicin de rengln o transicin de estado que active
la ejecucin.
Esto difiere de las instruccin de bloque de funciones que usan
EnableIn para activar la ejecucin. Las instrucciones de texto
estructurado se ejecutan como si EnableIn siempre estuviera
establecido.
Esto tambin difiere de las instrucciones de lgica de escalera que
usan condicin de entrada de rengln para activar la ejecucin.
Algunas instrucciones de lgica de escalera de rels slo se ejecutan
cuando la condicin de entrada de rengln cambia de falso a
verdadero. stas son instrucciones de lgica de escalera de rels
transicionales. En texto estructurado, las instrucciones se ejecutarn
cada vez que sean escaneadas, a menos que usted condicione
previamente la ejecucin de la instruccin de texto estructurado.
Por ejemplo, la instruccin ABL es una instruccin transicional en
lgica de escalera de rels. En este ejemplo, la instruccin ABL slo se
ejecuta en un escn cuando tag_xic cambia de borrado a establecido.
La instruccin ABL no se ejecuta cuando tag_xic permanece
establecido ni cuando tag_xic se borra.

En texto estructurado, si usted escribe este ejemplo como:


IF tag_xic THEN ABL(0,serial_control);
END_IF;
la instruccin ABL se ejecutar en cada escn que tag_xic est
establecido, no slo cuando tag_xic cambie de borrado a establecido.

670

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Apndice C

Si desea que la instruccin ABL se ejecute slo cuando tag_xic cambie


de borrado a establecido, tiene que condicionar la instruccin de
texto estructurado. Use un impulso para activar la ejecucin.
osri_1.InputBit := tag_xic;
OSRI(osri_1);

IF (osri_1.OutputBit) THEN
ABL(0,serial_control);
END_IF;

Construcciones

Las construcciones pueden programarse individualmente o anidadas


dentro de otras construcciones.

Si desea

Use esta construccin

Disponible en estos lenguajes

Vea la pgina

hacer algo si o cuando ocurre una condicin


especfica

IF...THEN

texto estructurado

672

seleccionar qu hacer segn a un valor


numrico

CASE...OF

texto estructurado

675

hacer algo un nmero especfico de veces antes


de hacer otra cosa

FOR...DO

texto estructurado

678

continuar haciendo algo siempre que ciertas


condiciones sean verdaderas

WHILE...DO

texto estructurado

681

seguir haciendo algo hasta que una condicin


sea verdadera

REPEAT...UNTIL

texto estructurado

684

Algunas palabras clave estn reservadas para uso futuro


Estas construcciones no estn disponibles:
GOTO
REPEAT
El software RSLogix 5000 no le permitir usarlas como nombres de
tags ni como construcciones.

Publicacin 1756-RM003K-ES-P Julio 2008

671

Apndice C

Programacin de texto estructurado

IF...THEN

Use IFTHEN para hacer algo si o cuando ocurre una condicin


especfica.

Operandos:
Texto estructurado
IF bool_expression THEN
<statement>;
END_IF;

Operando

Tipo

Formato

Introduzca

bool_
expression

BOOL

tag

Expresin o tag BOOL que evala respecto


a un valor BOOL (expresin BOOL)

expresin

Descripcin: La sintaxis es:


IF bool_expression1 THEN
declaraciones que deben
ejecutarse cuando
bool_expression1 es verdadero

<statement >;

.
.
.
opcional

ELSIF bool_expression2 THEN


declaraciones que deben
ejecutarse cuando
bool_expression2 es verdadero

<statement>;

.
.
.
opcional

ELSE
declaraciones que deben
ejecutarse cuando ambas
expresiones son falsas

<statement>;

.
.
.
END_IF;
Para usar ELSIF o ELSE, siga estas pautas:

1. Para seleccionar entre varios posibles grupos de declaraciones,


aada una o ms declaraciones ELSIF.
Cada instruccin ELSIF representa una ruta alternativa.
Especifique todas las rutas ELSIF que necesite.
El controlador ejecuta la primera instruccin IF o ELSIF
verdadera y se salta el resto de las instrucciones ELSIF y ELSE.
2. Para hacer algo cuando todas las condiciones IF o ELSIF son
falsas, aada una declaracin ELSE.

672

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Apndice C

La siguiente tabla resume las diferentes combinaciones de IF, THEN,


ELSIF y ELSE.
Si desea

Use esta construccin

hacer algo si o cuando las condiciones no hacer nada si las condiciones son
son verdaderas
falsas

seleccionar entre declaraciones


alternativas (o grupos de
declaraciones) segn las condiciones
de entrada

IFTHEN

hacer algo diferente si las condiciones


son falsas

IFTHENELSE

no hacer nada si las condiciones son


falsas

IFTHENELSIF

asignar declaraciones predeterminadas


si todas las condiciones son falsas

IFTHENELSIFELSE

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo: ninguna
Ejemplo 1: IFTHEN
Si usted desea esto

Introduzca este texto estructurado

Si rechazos > 3 entonces

IF rejects > 3 THEN

transportador = desactivado (0)

conveyor := 0;

alarma = activada (1)

alarm := 1;
END_IF;

Ejemplo 2: IFTHENELSE
Si usted desea esto

Introduzca este texto estructurado

Si el contacto de direccin del transportador = avance (1)


entonces

IF conveyor_direction THEN

luz = apagada
De lo contrario, luz = encendida

light := 0;
ELSE
light [:=] 1;
END_IF;

El [:=] le indica al controlador que borre light cada vez que el


controlador:
entre al modo de MARCHA
salga del paso de un SFC si usted configura el SFC para
Restablecimiento automtico. (Esto slo se aplica si usted
incorpora la asignacin en la accin del paso o usa la accin
para llamar una rutina de texto estructurado mediante una
instruccin JSR).

Publicacin 1756-RM003K-ES-P Julio 2008

673

Apndice C

Programacin de texto estructurado

Ejemplo 3: IFTHENELSIF
Si usted desea esto

Introduzca este texto estructurado

Si el interruptor de final de carrera de azcar baja = baja


(activado) y el interruptor de final de carrera de azcar
alta = no alta (activado) entonces

IF Sugar.Low & Sugar.High THEN

vlvula de entrada = abierta (activada)

Sugar.Inlet [:=] 1;

Hasta que el interruptor de final de carrera de azcar


alta = alta (desactivado)

ELSIF NOT(Sugar.High) THEN


Sugar.Inlet := 0;
END_IF;

El [:=] le indica al controlador que borre Sugar.Inlet cada vez que el


controlador:
entre al modo de MARCHA
salga del paso de un SFC si usted configura el SFC para
Restablecimiento automtico. (Esto slo se aplica si usted
incorpora la asignacin en la accin del paso o usa la accin
para llamar una rutina de texto estructurado mediante una
instruccin JSR).

Ejemplo 4: IFTHENELSIFELSE
Si usted desea esto

Introduzca este texto estructurado

Si la temperatura del tanque > 100

IF tank.temp > 200 THEN

entonces bomba = lenta


Si la temperatura del tanque > 200

pump.fast :=1; pump.slow :=0; pump.off :=0;


ELSIF tank.temp > 100 THEN

entonces bomba = rpida


de lo contrario, bomba = desactivada

pump.fast :=0; pump.slow :=1; pump.off :=0;


ELSE
pump.fast :=0; pump.slow :=0; pump.off :=1;
END_IF;

674

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

CASE...OF

Apndice C

Use CASE para seleccionar qu hacer segn un valor numrico.

Operandos:
Texto estructurado
CASE numeric_expression OF
selector1: statement;

Operando

Tipo

Formato

Introduzca

selectorN: statement;

numeric_

SINT

tag

tag o expresin que evala respecto a un


nmero (expresin numrica)

expression

INT

expresin

ELSE
statement;

DINT

END_CASE;

REAL
selector

SINT

inmediato

el mismo tipo que


numeric_expression

INT
DINT
REAL

IMPORTANTE

Si usted usa valores REAL, emplee un rango de valores para un


selector, ya que es ms probable que un valor REAL se
encuentre dentro de un rango de valores, y no que coincida
exactamente con un valor especfico.

Descripcin: La sintaxis es:


CASE numeric_expression OF

especifique todos los


valores de selector
alternativos (rutas) que
necesite

selector1 :

<statement>;
.
.
.

declaraciones a ejecutar cuando


numeric_expression = selector1

selector2 :

<statement>;

declaraciones a ejecutar cuando


numeric_expression = selector2

.
.
.
selector3 :

<statement>;

.
.
.

declaraciones a ejecutar cuando


numeric_expression = selector3

ELSE
<statement>;
opcional

.
.
.

declaraciones a ejecutar cuando


numeric_expression cualquier
selector

END_CASE;

Publicacin 1756-RM003K-ES-P Julio 2008

675

Apndice C

Programacin de texto estructurado

Vea la tabla en la siguiente pgina para obtener los valores de selector


vlidos.
La sintaxis para introducir los valores de selector es:
Cuando el selector es

Introduzca

un valor

value: statement

varios valores distintos

value1, value2, valueN : <statement>

Use una coma (,) para separar cada valor.


un rango de valores

value1..valueN : <statement>

Use dos puntos (..) para identificar el rango.


valores distintos ms un
rango de valores

valuea, valueb, value1..valueN : <statement>

La construccin CASE es similar a una declaracin de interruptor en


los lenguajes de programacin C o C++. Sin embargo, con la
construccin CASE el controlador ejecuta slo las declaraciones
asociadas con la primera coincidencia con el valor de selector.
La ejecucin siempre se interrumpe despus de las declaraciones de
dicho selector y va a la declaracin END_CASE.

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo: ninguna

676

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Apndice C

Ejemplo
Si usted desea esto

Introduzca este texto estructurado

Si el nmero de receta = 1 entonces

CASE recipe_number OF

Ingrediente A salida 1 = abierto (1)

1:

Ingrediente B salida 4 = abierto (1)


Si el nmero de receta = 2 3 entonces

Ingredient_A.Outlet_1 :=1;
Ingredient_B.Outlet_4 :=1;

2,3:

Ingrediente A salida 4 = abierto (1)

Ingredient_A.Outlet_4 :=1;
Ingredient_B.Outlet_2 :=1;

Ingrediente B salida 2 = abierto (1)


Si el nmero de receta = 4, 5, 6 7 entonces

4..7:

Ingrediente A salida 4 = abierto (1)

Ingredient_A.Outlet_4 :=1;
Ingredient_B.Outlet_2 :=1;

Ingrediente B salida 2 = abierto (1)


Si el nmero de receta = 8, 11, 12 13 entonces

8,11..13

Ingrediente A salida 1 = abierto (1)

Ingredient_A.Outlet_1 :=1;
Ingredient_B.Outlet_4 :=1;

Ingrediente B salida 4 = abierto (1)


De lo contrario, todas las salidas = cerradas (0)

ELSE
Ingredient_A.Outlet_1 [:=]0;
Ingredient_A.Outlet_4 [:=]0;
Ingredient_B.Outlet_2 [:=]0;
Ingredient_B.Outlet_4 [:=]0;
END_CASE;

El [:=] le indica al controlador que tambin borre los tags de salida


cada vez que el controlador:
entre al modo de MARCHA
salga del paso de un SFC si usted configura el SFC para
Restablecimiento automtico. (Esto slo se aplica si usted
incorpora la asignacin en la accin del paso o usa la accin
para llamar una rutina de texto estructurado mediante una
instruccin JSR).

Publicacin 1756-RM003K-ES-P Julio 2008

677

Apndice C

Programacin de texto estructurado

FORDO

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
<statement>;

Operando

Tipo

Formato

Descripcin

count

SINT

tag

tag para almacenar la posicin de conteo


a medida que FORDO se ejecuta

SINT

tag

se debe evaluar con respecto a un nmero

INT

expresin

especifica el valor inicial del conteo

DINT

inmediato

SINT

tag

INT

expresin

DINT

inmediato

SINT

tag

INT

expresin

DINT

inmediato

END_FOR;

INT
DINT
initial_
value

final_
value

increment

especifica el valor final del conteo, el cual


determina cundo salir del lazo

(opcional) cantidad a incrementar el


conteo cada vez que se pasa por el lazo

Si usted no especifica un incremento, el


conteo se incrementa en 1.

IMPORTANTE

Asegrese de no efectuar iteraciones dentro de un lazo demasiadas


veces en un solo escn.
El controlador no ejecuta ninguna otra declaracin en la rutina
hasta que completa el lazo.
Si el tiempo que se requiere para completar el lazo es mayor
que el temporizador de control (watchdog) de la tarea, se
produce un fallo mayor.
Considere usar una construccin diferente, por ejemplo
IF...THEN.

678

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Apndice C

Descripcin: La sintaxis es:


FOR count := initial_value
TO final_value
opcional {

Si usted no especifica un incremento,


el lazo se incrementa en 1.

BY increment
DO
<statement>;
IF bool_expression THEN

Si existen condiciones cuando usted desea


salir del lazo anticipadamente, use otras
declaraciones, tal como la construccin
IF...THEN, para condicionar una
declaracin EXIT.

EXIT;
opcional

END_IF;

END_FOR;
Los siguientes diagramas muestran cmo se ejecuta un lazo FOR...DO
y cmo una declaracin EXIT deja el lazo anticipadamente.
Efectuado x
veces?

Efectuado x
veces?

no

no

declaracin 1
declaracin 2
declaracin 3
declaracin 4

declaracin 1
declaracin 2
declaracin 3
declaracin 4

Salir?
resto de la rutina

no
resto de la rutina

El lazo FORDO se ejecuta un nmero


especfico de veces.

Para detener el lazo antes de que el conteo llegue al


ltimo valor, use una declaracin EXIT.

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:

Publicacin 1756-RM003K-ES-P Julio 2008

Ocurrir un fallo mayor si

Tipo de fallo

Cdigo de fallo

la construccin tiene un lazo


excesivamente largo

679

Apndice C

Programacin de texto estructurado

Ejemplo 1:
Si usted desea esto

Introduzca este texto estructurado

Borrar los bits 0 - 31 en una matriz de elementos BOOL:

For subscript:=0 to 31 by 1 do

1. Inicializar el tag subscript a 0.

array[subscript] := 0;
End_for;

2. Borrar la matriz[ subscript ]. Por ejemplo, cuando


subscript = 5, borrar array[5].
3. Aadir 1 a subscript.
4. Si subscript es 31, repetir 2 y 3.
De lo contrario, parar.

Ejemplo 2:
Si usted desea esto

Introduzca este texto estructurado

Un tipo de datos definido por el usuario (estructura) almacena


la siguiente informacin acerca de un tem en su inventario:

SIZE(Inventory,0,Inventory_Items);

ID de cdigo de barras del tem (tipo de datos de cadena)


Cantidad en inventario del tem (tipo de datos DINT)
Una matriz de la estructura anterior contiene un elemento
para cada tem diferente en su inventario. Usted desea buscar
la matriz para un producto especfico (use su cdigo de barras)
y determine la cantidad que hay en inventario.

For position:=0 to Inventory_Items - 1 do


If Barcode = Inventory[position].ID then
Quantity := Inventory[position].Qty;
Exit;
End_if;
End_for;

1. Obtener el tamao (nmero de tems) de la matriz


Inventory y almacenar el resultado en Inventory_Items
(tag DINT).
2. Inicializar el tag position a 0.
3. Si el cdigo de barras coincide con el ID de un tem en la
matriz, entonces:
a. Establecer el tag Quantity = Inventory[position].Qty.
Esto produce la cantidad en inventario del tem.
b. Parar.
Barcode es un tag de cadena que almacena el cdigo de
barras del tem que usted est buscando. Por ejemplo,
cuando position = 5, comparar Barcode con Inventory[5].ID.
4. Aadir 1 a position.
5. Si position es (Inventory_Items -1), repetir 3 y 4. Puesto
que los nmeros de elemento comienzan en 0, el ltimo
elemento es 1 menos el nmero de elementos en la matriz.
De lo contrario, parar.

680

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

WHILEDO

Apndice C

Use el lazo WHILEDO para continuar haciendo algo siempre y


cuando ciertas condiciones sean verdaderas.

Operandos:
Texto estructurado
WHILE bool_expression DO
<statement>;
END_WHILE;

Operando

Tipo

Formato

Introduzca

bool_
expression

BOOL

tag

Expresin o tag BOOL que evala


respecto a un valor BOOL

expresin

IMPORTANTE

Asegrese de no efectuar iteraciones dentro de un lazo demasiadas


veces en un solo escn.
El controlador no ejecuta ninguna otra declaracin en la rutina
hasta que completa el lazo.
Si el tiempo que se requiere para completar el lazo es mayor
que el temporizador de control (watchdog) para la tarea, se
produce un fallo mayor.
Considere usar una construccin diferente, por ejemplo
IF...THEN.

Descripcin: La sintaxis es:


WHILE bool_expression1 DO
<statement>;

declaraciones que se ejecutan mientras


bool_expression1 es verdadero

IF bool_expression2 THEN
EXIT;
opcional

END_IF;

Si existen condiciones cuando usted desea


salir del lazo anticipadamente, use otras
declaraciones, tal como la construccin
IF...THEN, para condicionar una
declaracin EXIT.

END_WHILE;

Publicacin 1756-RM003K-ES-P Julio 2008

681

Apndice C

Programacin de texto estructurado

Los siguientes diagramas muestran cmo se ejecuta un lazo


WHILE...DO y cmo un comando EXIT deja el lazo anticipadamente.
expresin BOOL

falsa

falsa
expresin BOOL

verdadera

verdadera

declaracin 1
declaracin 2
declaracin 3
declaracin 4

declaracin 1
declaracin 2
declaracin 3
declaracin 4

Salir?
resto de la rutina

no
resto de la rutina

Para detener el lazo antes de que las condiciones


sean verdaderas, use una declaracin EXIT.

Mientras bool_expression es verdadero, el


controlador ejecuta slo las declaraciones
dentro del lazo WHILEDO.

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ocurrir un fallo mayor si

Tipo de fallo

Cdigo de fallo

la construccin tiene un lazo


excesivamente largo

Ejemplo 1:
Si usted desea esto

Introduzca este texto estructurado

El lazo WHILE...DO evala sus condiciones primero. Si las


condiciones son verdaderas, el controlador ejecuta las
declaraciones dentro del lazo.

pos := 0;

Esto es diferente del lazo REPEAT...UNTIL porque el lazo


REPEAT...UNTIL ejecuta las declaraciones en la construccin y
posteriormente determina si las condiciones son verdaderas
antes de ejecutar las declaraciones nuevamente. Las
declaraciones en un lazo REPEAT...UNTIL siempre se ejecutan
por lo menos una vez. Las declaraciones en un lazo
WHILE...DO es posible que nunca se ejecuten.

682

While ((pos <= 100) & structarray[pos].value


<> targetvalue)) do
pos := pos + 2;
String_tag.DATA[pos] := SINT_array[pos];
end_while;

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Apndice C

Ejemplo 2:
Si usted desea esto

Introduzca este texto estructurado

Mover caracteres ASCII desde una matriz SINT a un tag de


cadena. (En una matriz SINT, cada elemento retiene un
carcter). Parar cuando llegue al retorno de carro.

element_number := 0;
SIZE(SINT_array, 0, SINT_array_size);
While SINT_array[element_number] <> 13 do

1. Inicializar Element_number a 0.
2. Contar el nmero de elementos en SINT_array (la matriz
que contiene los caracteres ASCII) y almacenar el
resultado en SINT_array_size (tag DINT).
3. Si el carcter en SINT_array[element_number] = 13
(valor decimal del retorno de carro), parar.

String_tag.DATA[element_number] :=
SINT_array[element_number];
element_number := element_number + 1;
String_tag.LEN := element_number;
If element_number = SINT_array_size then
exit;

4. Establecer String_tag[element_number] = el carcter en


SINT_array[element_number].

end_if;
end_while;

5. Aadir 1 a element_number. Esto permite al controlador


verificar el siguiente carcter en SINT_array.
6. Establecer el miembro Length de String_tag =
element_number. (As registra el nmero de caracteres
que hay hasta el momento en String_tag).
7. Si element_number = SINT_array_size, parar. (Usted est
al final de la matriz y sta no contiene un retorno de carro).
8. Ir a 3.

Publicacin 1756-RM003K-ES-P Julio 2008

683

Apndice C

Programacin de texto estructurado

REPEATUNTIL

Use el lazo REPEATUNTIL para continuar haciendo algo hasta que


las condiciones sean verdaderas.

Operandos:
Texto estructurado
REPEAT
<statement>;
UNTIL bool_expression
END_REPEAT;

Operando

Tipo

Formato

Introduzca

bool_
expression

BOOL

tag

Expresin o tag BOOL que evala respecto


a un valor BOOL (expresin BOOL)

expresin

IMPORTANTE

Asegrese de no efectuar iteraciones dentro de un lazo demasiadas


veces en un solo escn.
El controlador no ejecuta ninguna otra declaracin en la rutina
hasta que completa el lazo.
Si el tiempo que se requiere para completar el lazo es mayor
que el temporizador de control (watchdog) para la tarea, se
produce un fallo mayor.
Considere usar una construccin diferente, por ejemplo
IF...THEN.

Descripcin: La sintaxis es:


REPEAT
<statement>;

declaraciones que se ejecutan mientras


bool_expression1 es falso

IF bool_expression2 THEN
EXIT;
opcional

END_IF;

Si existen condiciones cuando usted desea


salir del lazo anticipadamente, use otras
declaraciones, tal como la construccin
IF...THEN, para condicionar una
declaracin EXIT.

UNTIL bool_expression1
END_REPEAT;

684

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Apndice C

Los siguientes diagramas muestran cmo se ejecuta un lazo


REPEAT...UNTIL y cmo un comando EXIT deja el lazo
anticipadamente.
declaracin 1
declaracin 2
declaracin 3
declaracin 4

Salir?

declaracin 1
declaracin 2
declaracin 3
declaracin 4

expresin BOOL

verdadera

no

falsa

expresin BOOL

verdadera

resto de la rutina
falsa
resto de la rutina

Para detener el lazo antes de que las condiciones


sean falsas, use una declaracin EXIT.

Mientras bool_expression es falso, el


controlador ejecuta slo las declaraciones dentro
del lazo REPEATUNTIL.

Indicadores de estado
aritmtico: no afectados
Condiciones de fallo:
Ocurrir un fallo mayor si

Tipo de fallo

Cdigo de fallo

la construccin tiene un lazo


excesivamente largo

Ejemplo 1:
Si usted desea esto

Introduzca este texto estructurado

El lazo REPEAT...UNTIL ejecuta las declaraciones en la


construccin y posteriormente determina si las condiciones
son verdaderas antes de ejecutar las declaraciones
nuevamente.

pos := -1;

Esto es diferente del lazo WHILE...DO porque el lazo


WHILE...DO evala su condicin primero. Si las condiciones
son verdaderas, el controlador ejecuta las declaraciones
dentro del lazo. Las declaraciones en un lazo REPEAT...UNTIL
siempre se ejecutan por lo menos una vez. Las declaraciones
en un lazo WHILE...DO es posible que nunca se ejecuten.

UNTIL ((pos = 101) OR


(structarray[pos].value = targetvalue))

Publicacin 1756-RM003K-ES-P Julio 2008

REPEAT
pos := pos + 2;

end_repeat;

685

Apndice C

Programacin de texto estructurado

Ejemplo 2:
Si usted desea esto

Introduzca este texto estructurado

Mover caracteres ASCII desde una matriz SINT a un tag de


cadena. (En una matriz SINT, cada elemento retiene un
carcter). Parar cuando llegue al retorno de carro.

element_number := 0;
SIZE(SINT_array, 0, SINT_array_size);
Repeat

1. Inicializar Element_number a 0.
2. Contar el nmero de elementos en SINT_array (la matriz
que contiene los caracteres ASCII) y almacenar el
resultado en SINT_array_size (tag DINT).
3. Establecer String_tag[element_number] = el carcter en
SINT_array[element_number].

String_tag.DATA[element_number] :=
SINT_array[element_number];
element_number := element_number + 1;
String_tag.LEN := element_number;
If element_number = SINT_array_size then
exit;

4. Aadir 1 a element_number. Esto permite al controlador


verificar el siguiente carcter en SINT_array.

end_if;
Until SINT_array[element_number] = 13

5. Establecer el miembro Length de String_tag =


element_number. (As registra el nmero de caracteres
que hay hasta el momento en String_tag).

end_repeat;

6. Si element_number = SINT_array_size, parar. (Usted est


al final de la matriz y sta no contiene un retorno de carro).
7. Si el carcter en SINT_array[element_number] = 13
(valor decimal del retorno de carro), parar.
De lo contrario, ir a 3.

686

Publicacin 1756-RM003K-ES-P Julio 2008

Programacin de texto estructurado

Comentarios

Apndice C

Para facilitar la interpretacin del texto estructurado, adale


comentarios.
Los comentarios le permiten usar un lenguaje simple para
describir cmo funciona su texto estructurado.
Los comentarios no tienen ningn efecto en la ejecucin del
texto estructurado.
Para aadir comentarios a su texto estructurado:
Para aadir un comentario

Use uno de estos formatos

en una sola lnea

//comment

al final de una lnea de texto


estructurado
(*comment*)

/*comment*/
dentro de una lnea de texto
estructurado

(*comment*)

/*comment*/
que abarque ms de una lnea

(*start of comment . . . end of


comment*)

/*start of comment . . . end of


comment*/

Publicacin 1756-RM003K-ES-P Julio 2008

687

Apndice C

Programacin de texto estructurado

Por ejemplo:
Formato

Ejemplo

//comment

Al comienzo de una lnea


//Se verifica el sentido de desplazamiento del
transportador
IF conveyor_direction THEN...

Al final de una lnea


ELSE //Si el transportador no se est moviendo,
se establece la luz de alarma
light := 1;
END_IF;
(*comment*)

Sugar.Inlet[:=]1;(*open the inlet*)

IF Sugar.Low (*low level LS*)& Sugar.High (*high level


LS*)THEN...

(*Controla la velocidad de la bomba de recirculacin.


La velocidad depende de la temperatura en el tanque*).
IF tank.temp > 200 THEN...
/*comment*/

Sugar.Inlet:=0;/*close the inlet*/

IF bar_code=65 /*A*/ THEN...

/*Obtiene el nmero de elementos en la matriz Inventory


y almacena el valor en el tag Inventory_Items*/
SIZE(Inventory,0,Inventory_Items);

688

Publicacin 1756-RM003K-ES-P Julio 2008

ndice
A
activacin de salida 82
activar tarea de evento 464
actualizar salida 201
ajuste 503
alarma digital 30
alarmas 504
arco coseno 532
arco seno 529
arco tangente 535
aritmtica y lgica de archivo 335
ASCII
asignacin de texto
estructurado 663
asignacin
carcter ASCII 663
no retentiva 662
retentiva 661
atributos
conversin de tipos de datos 635
valores inmediatos 635
atributos comunes 635
conversin de tipos de datos 635
valores inmediatos 635

B
BAND 317
banda muerta 514
BNOT 326
BOR 320
borrar 298
Borrar ASCII bfer 575
buscar cadena 605
bsqueda y comparacin de
archivos 347
BXOR 323

C
cach
conexin 173
cadena
evaluacin en texto
estructurado 667
Cadena a DINT 614
Cadena central 609
Cadena en REAL 616
clculo 248
cambiar signo 274
caracteres ASCII en el bfer 573
carga de secuenciador 428
carga FIFO 394
carga LIFO 406, 412
CASE 675
clasificar 371
cdigos de error
ASCII 568
instruccin MSG 152
cdigos de productos 181

689Publicacin 1756-RM003K-ES-P Julio 2008

comentarios
texto estructurado 687
comparacin de bits de archivo 478
comparar 206
concatenacin de cadenas 601
condiciones de overflow 648
conector
diagrama de bloques de
funciones 641
conector de cable de entrada 641
conector de cable de salida 641
conexin
cach 173
configuracin 159
instruccin MSG 159
instruccin PID 502
construccin
texto estructurado 671
conteo progresivo 128
conteo progresivo/regresivo 136
conteo regresivo 132
control de programa/operador
descripcin general 654
conversin de tipos de datos 635
convertir a BCD 556
convertir en entero 559
copiar 356
copiar sncrono 356
coseno 523

D
descarga FIFO 400
descripcin
texto estructurado 687
desenclavamiento de salida 86
desplazamiento de bits a la
derecha 390
desplazamiento de bits a la
izquierda 386
desviacin estndar 376
deteccin de diagnstico 486
determinacin de igualdad con
mscara 237
diagrama de bloques de funciones
creacin de un retardo de
escn 647
resolucin del flujo de datos entre
dos bloques 647
resolver un lazo 645
seleccin de elementos 641
diferente de 242
DINT en cadena 619
distribuir campo de bits 292
distribuir campo de bits con
receptor 295
divisin 261
documento
texto estructurado 687

689

ndice

E
elementos
instruccin SIZE 381
Eliminacin de cadena 603
enclavamiento de datos 642
enclavamiento de salida 84
Encontrar cadena 605
escalado 505
escritura ASCII 594
escritura ASCII con anexo 589
establecer valor del sistema 176
estado
tarea 195
estructura COMPARE 479, 487
estructura CONTROL 336, 347, 367,
371, 376, 386, 390, 395, 401,
406, 407, 413, 420, 424, 428
estructura COUNTER 128, 132
estructura de control 448
Estructura FBD_BIT_FIELD_
DISTRIBUTE 295
Estructura FBD_BOOLEAN_
AND 317
Estructura FBD_BOOLEAN_
NOT 326
Estructura FBD_BOOLEAN_OR 320
Estructura FBD_BOOLEAN_XOR 323
estructura FBD_COMPARE 212, 216,
220, 224, 228, 243
estructura FBD_CONVERT 556, 559
Estructura FBD_COUNTER 136
estructura FBD_LIMIT 232
Estructura FBD_LOGICAL 305, 308,
311, 315
Estructura FBD_MASKED_
MOVE 288
Estructura FBD_MASK_EQUAL 238
estructura FBD_MATH 253, 256, 259,
262, 267, 275, 547
Estructura FBD_MATH_ADVANCED
271, 520, 524, 527, 529, 532,
535, 540, 544, 550, 553
estructura FBD_MATH_
ADVANCED 278
estructura FBD_ONESHOT 96, 99
estructura FBD_TIMER 116, 120, 124
Estructura FBD_TRUNCATE 561
estructura MESSAGE 144
estructura PID 498
estructura RESULT 479, 487
Estructura SERIAL_PORT_
CONTROL 566, 568, 570, 573,
578, 582, 586, 590, 595
estructura STRING 568, 600, 613
estructura TIMER 104, 108, 112
estructuras
cadena 568, 613
COMPARE 479, 487
CONTROL 336, 347, 367, 371, 376,
386, 390, 395, 401, 406,
407, 413, 420, 424, 428
COUNTER 128, 132
690

FBD_BIT_FIELD_DISTRIBUTE 295
FBD_BOOLEAN_AND 317
FBD_BOOLEAN_NOT 326
FBD_BOOLEAN_OR 320
FBD_BOOLEAN_XOR 323
FBD_COMPARE 212, 216, 220,
224, 228, 243
FBD_CONVERT 556, 559
FBD_COUNTER 136
FBD_LIMIT 232
FBD_LOGICAL 305, 308, 311, 315
FBD_MASKED_MOVE 288
FBD_MASK_EQUAL 238
FBD_MATH 253, 256, 259, 262,
267, 275, 547
FBD_MATH_ADVANCED 271, 278,
520, 524, 527, 529, 532,
535, 540, 544, 550, 553
FBD_ONESHOT 96, 99
FBD_TIMER 116, 120, 124
FBD_TRUNCATE 561
instruccin RES 141
MESSAGE 144
PID 498
RESULT 479, 487
SERIAL_PORT_CONTROL 566, 568,
570, 573, 578, 582, 586,
590, 595
STRING 568, 600, 613
TIMER 104, 108, 112
etiqueta 434, 627, 631
examinar si est abierto 80
expiracin
configurar para tarea de evento 195
exponencial 546
expresin
expresin BOOL
texto estructurado 663
expresin numrica
texto estructurado 663
orden de ejecucin
texto estructurado 669
texto estructurado
descripcin general 663
funciones 665
operadores a nivel de bits 669
operadores aritmticos 665
operadores lgicos 668
operadores relacionales 666
expresin BOOL
texto estructurado 663
expresin numrica 663
expresiones
formato 209, 250, 345, 353
operadores vlidos 208, 250, 345,
353
orden de operacin 209, 251, 346,
354

Publicacin 1756-RM003K-ES-P Julio 2008

ndice

F
fin temporal 450
FORDO 678
funciones
texto estructurado 665

G
ganancia anticipativa 515
grados 550

H
habilitacin de interrupcin de
usuario 454

I
ICON 641
IF...THEN 672
igual a 211
indicadores de estado aritmtico
overflow 648
inhabilitacin de interrupcin de
usuario 454
Insertar cadena 607
instruccin ABL 570
instruccin ABS 277
instruccin ACB 573
instruccin ACL 575
instruccin ACS 532
instruccin activar tarea de
evento 464
instruccin ADD 252
instruccin AFI 456
instruccin AHL 577
instruccin ALMA 42
instruccin ALMD, instrucciones
de alarmas y eventos
ALMD 30
instruccin AND 304
instruccin ARD 581
instruccin ARL 585
instruccin ASN 529
instruccin ATN 535
instruccin AVE 366
instruccin AWA 589
instruccin AWT 594
instruccin BRK 473
instruccin BSL 386
instruccin BSR 390
instruccin BTD 292
instruccin BTDT 295
instruccin CLR 298
instruccin CMP 206
instruccin CONCAT 601
instruccin COP 356
instruccin COS 523
instruccin CPS 356
instruccin CPT 248
instruccin CTD 132
Publicacin 1756-RM003K-ES-P Julio 2008

instruccin CTU 128


instruccin CTUD 136
instruccin DDT
modo de bsqueda 488
operandos 486
instruccin de salida inmediata 201
instruccin DEG 550
instruccin DELETE 603
instruccin DIV 261
instruccin DTOS 619
instruccin DTR 494
instruccin EOT 458
instruccin EQU 211
instruccin EVENT 464
instruccin FAL
modo de operacin 330
operandos 335
instruccin FBC
modo de bsqueda 480
operandos 478
instruccin FFL 394
instruccin FFU 400
instruccin fin de transicin 458
instruccin FIND 605
instruccin FLL 362
instruccin FOR 470
instruccin FRD 559
instruccin FSC
modo de operacin 330
operandos 347
instruccin GEQ 215
instruccin GRT 219
instruccin GSV
objetos 179
operandos 176
instruccin INSERT 607
instruccin IOT 201
instruccin JMP 434, 627, 631
instruccin JSR 436
instruccin JXR
estructura de control 448
instruccin LBL 434, 627, 631
instruccin LEQ 223
instruccin LES 227
instruccin LFL 406
instruccin LFU 412
instruccin LIM 231
instruccin LN 540
instruccin LOG 543
instruccin LOWER 625
instruccin MCR 452
instruccin MEQ 237
instruccin MID 609
instruccin MOD 266
instruccin MOV 283
instruccin MSG 159
cdigos de error 152
conexin en cach 173
estructura 144
mtodo de comunicacin 172
operandos 144
pautas de programacin 175
691

ndice

instruccin MUL 258


instruccin MVM 285
instruccin MVMT 288
instruccin NEG 274
instruccin NEQ 242
instruccin NOP 457
instruccin NOT 314
instruccin ONS 88
instruccin OR 307
instruccin OSF 94
instruccin OSFI 99
instruccin OSRI 96
instruccin OTE 82
instruccin OTL 84
instruccin OTU 86
instruccin pausa SFC 460
instruccin PID
ajuste 503
alarmas 504
banda muerta 514
configuracin 502
escalado 505
ganancia anticipativa 515
operandos 497
polarizacin de salida 515
instruccin RAD 553
instruccin RES 141
instruccin restablecer SFC 462
instruccin RET 436, 474
instruccin RTO 112
instruccin RTOR 124
instruccin RTOS 621
instruccin SBR 436
instruccin SFP 460
instruccin SFR 462
instruccin siempre falso 456
instruccin SIN 520
instruccin SIZE 381
instruccin SQI 420
instruccin SQL 428
instruccin SQO 424
instruccin SQR 270
instruccin SRT 371
instruccin SSV
objetos 179
operandos 176
instruccin STOD 614
instruccin STOR 616
instruccin SUB 255
instruccin SWPB 300
Instruccin TAN 526
instruccin TND 450
instruccin TOD 556
Instruccin TOF 108
instruccin TOFR 120
instruccin TON 104
instruccin TONR 116
instruccin TRN 561
instruccin UID 454
instruccin UIE 454
instruccin UPPER 623
instruccin XIO 80

692

instruccin XOR 310


instruccin XPY 546
instrucciones
alarmas y eventos 29
bit 77
clculo 247
comparar 205
contador 103
control de programa 433
conversin 549
conversin ASCII 611
conversin de cadenas 611
conversin matemtica 549
depurar 627
desplazamiento 385
entrada/salida 143
especiales 477
for/break 469
lgicas 281
manipulacin de cadenas 599
manipulacin de cadenas
ASCII 599
matemticas avanzadas 539
matriz
movimiento 281
puerto serie 565
puerto serie ASCII 565
secuenciador 419
temporizador 103
trigonomtricas 519
instrucciones ASCII
ABL 570
ACB 573
ACL 575
AHL 577
ARD 581
ARL 585
AWA 589
AWT 594
CONCAT 601
DELETE 603
DTOS 619
FIND 605
INSERT 607
LOWER 625
MID 609
RTOS 621
STOD 614
STOR 616
SWPB 300
UPPER 623
instrucciones de alarmas y eventos
acceder programticamente 70
ALMA, alarma analgica 42
almacenamiento de alarmas en el
bfer 69
configuracin 62
ejecucin de alarma basada en el
controlador 72
Publicacin 1756-RM003K-ES-P Julio 2008

ndice

estado de alarma 68
suprima o inhabilite alarmas 71
texto de mensaje 65
instrucciones de archivo. Vea
instrucciones de matriz
instrucciones de bit
ONS 88
OSF 94
OSFI 99
OSR 91
OSRI 96
OTE 82
OTL 84
OTU 86
XIO 80
instrucciones de bits
introduccin 77
instrucciones de clculo
ABS 277
ADD 252
CPT 248
DIV 261
formato de expresin 250, 345
Introduccin 247
MOD 266
MUL 258
NEG 274
operadores vlidos 250, 345
orden de operacin 251, 346
SQR 270
SUB 255
instrucciones de comparacin
CMP 206
EQU 211
formato de expresin 209, 353
GEQ 215
GRT 219
Introduccin 205
LEQ 223
LES 227
LIM 231
MEQ 237
NEQ 242
operadores vlidos 208, 353
orden de operacin 209, 354
instrucciones de contador
CTD 132
CTU 128
CTUD 136
introduccin 103
RES 141
instrucciones de control de
programa
AFI 456
EOT 458
EVENT 464
introduccin 433
JMP 434, 627, 631
JSR 436
Publicacin 1756-RM003K-ES-P Julio 2008

LBL 434, 627, 631


MCR 452
NOP 457
RET 436
SBR 436
TND 450
UID 454
UIE 454
instrucciones de conversin
DEG 550
FRD 559
Introduccin 549
RAD 553
TOD 556
TRN 561
instrucciones de conversin de
cadena
DTOS 619
LOWER 625
RTOS 621
STOR 616
SWPB 300
UPPER 623
instrucciones de conversin de
cadenas
introduccin 611
STOD 614
instrucciones de conversin
matemtica
DEG 550
FRD 559
Introduccin 549
RAD 553
TOD 556
TRN 561
instrucciones de depuracin 627
instrucciones de desplazamiento
BSL 386
BSR 390
FFL 394
FFU 400
Introduccin 385
LFL 406
LFU 412
instrucciones de entrada/salida
GSV 176
introduccin 143
IOT 201
MSG 144
SSV 176
instrucciones de manipulacin de
cadenas
CONCAT 601
DELETE 603
FIND 605
INSERT 607
introduccin 599
MID 609

693

ndice

instrucciones de matriz
archivo/miscelneas 329
AVE 366
BSL 386
BSR 390
COP 356
CPS 356
DDT 486
desplazamiento 385
FAL 335
FBC 478
FFL 394
FFU 400
FLL 362
FSC 347
LFL 406
LFU 412
modo de operacin 330
RES 141
secuenciador 419
SIZE 381
SQI 420
SQL 428
SQO 424
SRT 371
STD 376
instrucciones de movimiento
BTD 292
BTDT 295
CLR 298
Introduccin 281
MOV 283
MVM 285
MVMT 288
instrucciones de puerto serie
ABL 570
ACB 573
ACL 575
AHL 577
ARD 581
ARL 585
AWA 589
AWT 594
instrucciones de secuenciador
introduccin 419
SQI 420
SQL 428
SQO 424
instrucciones de temporizador
introduccin 103
RES 141
RTO 112
RTOR 124
TOF 108
TOFR 120
TON 104
TONR 116

694

instrucciones de traslado/lgicas
BAND 317
BNOT 326
BOR 320
BXOR 323
instrucciones especiales
DDT 486
DTR 494
FBC 478
introduccin 477
PID 497
SFP 460
SFR 462
instrucciones for/break
BRK 473
FOR 470
Introduccin 469
RET 474
instrucciones lgicas
AND 304
introduccin 281
NOT 314
OR 307
XOR 310
instrucciones matemticas
avanzadas
Introduccin 539
LN 540
logaritmo 543
XPY 546
instrucciones OSR 91
instrucciones para puerto serie
Introduccin 565
instrucciones STD 376
instrucciones trigonomtricas
ACS 532
ASN 529
ATN 535
COS 523
Introduccin 519
SIN 520
TAN 526
intercambiar byte 300
interrumpir 473
IREF 641

L
lazo de retroalimentacin
diagrama de bloques de
funciones 645
lazo no resuelto
diagrama de bloques de
funciones 645
lectura ASCII 581
lmite 231
lnea de lectura ASCII 585
lneas de handshake ASCII 577
llenar archivo 362

Publicacin 1756-RM003K-ES-P Julio 2008

ndice

logaritmo
base 10 543
natural 540
logaritmo base 10 543
logaritmo natural 540

M
mscaras 495
mayor o igual que 215
mayor que 219
maysculas 623
menor o igual que 223
menor que 227
mensaje 144
conexiones en cach 173
pautas de programacin 175
mezcla de tipos de datos 635
minsculas 625
modo de bsqueda 480, 488
modo de operacin 330
modo incremental 333
modo numrico 331
modo todos 330
modos de temporizacin 649
mdulo de divisin 266
mover 283
mover con mscara 285
movimiento enmascarado con
receptor 288
multiplicacin 258

N
NO a nivel de bits 314
NO booleano 326

O
O a nivel de bits 307
O booleano 320
O exclusivo a nivel de bits 310
O exclusivo booleano 323
objeto CONTROLLER 180
objeto CONTROLLERDEVICE 181
objeto CST 183
objeto DF1 184
objeto FAULTLOG 187
objeto MESSAGE 188
objeto MODULE 190
objeto MOTIONGROUP 191
objeto PROGRAM 192
objeto ROUTINE 193
objeto SERIALPORT 193
objeto TASK 195
objeto WALLCLOCKTIME 197
objetos
CONTROLLER 180
CONTROLLERDEVICE 181
CST 183
DF1 184

Publicacin 1756-RM003K-ES-P Julio 2008

FAULTLOG 187
instruccin GSV/SSV 179
MESSAGE 188
MODULE 190
MOTIONGROUP 191
PROGRAM 192
ROUTINE 193
SERIALPORT 193
TASK 195
WALLCLOCKTIME 197
obtener valor del sistema 176
OCON 641
operadores 208, 250, 345, 353
orden de ejecucin
texto estructurado 669
operadores a nivel de bits
texto estructurado 669
operadores aritmticos
texto estructurado 665
operadores lgicos
texto estructurado 668
operadores matemticos
texto estructurado 665
operadores relacionales
texto estructurado 666
orden de ejecucin 644
expresin de texto
estructurado 669
orden de operacin 209, 251, 346,
354
OREF 641

P
polarizacin de salida 515
post-escn
texto estructurado 662
promedio 366
proporcional, integral y
derivativo 497
prueba ASCII para lnea de
bfer 570

R
radianes 553
raz cuadrada 270
REAL en cadena 621
referencia de entrada 641
referencia de salida 641
REPEATUNTIL 684
resta 255
restablecer 141
restablecimiento de control
maestro 452
retardo de escn
diagrama de bloques de
funciones 647
retornar 474
retorno 436

695

ndice

S
Salida
actualizar inmediatamente 201
habilitar o inhabilitar fin de
procesamiento de
tarea 195
saltar 434, 627, 631
saltar a subrutina 436
secuenciador de entrada 420
secuenciador de salida 424
seno 520
sin operacin 457
subrutina 436
sumar 252
superposicin
verifica 195
suponer datos disponibles 645, 647

T
tamao en elementos 381
tangente 526
tarea
activar mediante tag
consumido 201
activar tarea de evento 464
configurar programticamente 195
monitorear 195
tarea de evento
activar mediante instruccin
EVENT 464
activar mediante tag
consumido 201
configurar 195
temporizador de retardo a la
conexin 104
temporizador de retardo a la
conexin con
restablecimiento 116
temporizador de retardo a la
desconexin 108
temporizador de retardo a la
desconexin con
restablecimiento 120
temporizador retentivo activado 112
temporizador retentivo activado
con restablecimiento 124
texto estructurado
asignacin 661
asignacin no retentiva 662
asigne carcter ASCII 663
CASE 675
comentarios 687
componentes 659
construcciones 671
evaluacin de cadenas 667
expresin 663
expresin numrica 663
FORDO 678
funciones 665
696

IF...THEN 672
operadores a nivel de bits 669
operadores aritmticos 665
operadores lgicos 668
operadores relacionales 666
REPEATUNTIL 684
WHILEDO 681
tipo de datos de cadena 568, 600,
613
transicin de datos 494
truncar 561

U
un impulso 88
un impulso en flanco ascendente 91
un impulso en flanco ascendente
con entrada 96
un impulso en flanco
descendente 94
un impulso en flanco descendente
con entrada 99

V
valor absoluto 277
valores inmediatos 635

W
WHILEDO 681

X
X a la potencia de Y 546

Y
Y a nivel de bits 304
Y booleano 317

Publicacin 1756-RM003K-ES-P Julio 2008

Cdigos de caracteres ASCII


Carcter

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

$01

33

$21

65

$41

97

$61

[ctrl-B] STX

$02

34

$22

66

$42

98

$62

[ctrl-C] ETX

$03

35

$23

67

$43

99

$63

[ctrl-D] EOT

$04

36

$24

68

$44

100

$64

[ctrl-E] ENQ

$05

37

$25

69

$45

101

$65

[ctrl-F] ACK

$06

&

38

$26

70

$46

102

$66

[ctrl-G] BEL

$07

39

$27

71

$47

103

$67

[ctrl-H] BS

$08

40

$28

72

$48

104

$68

[ctrl-I] HT

$09

41

$29

73

$49

105

$69

[ctrl-J] LF

10

$l ($0A)

42

$2A

74

$4A

106

$6A

[ctrl-K] VT

11

$0B

43

$2B

75

$4B

107

$6B

[ctrl-L] FF

12

$0C

44

$2C

76

$4C

108

$6C

[ctrl-M] CR

13

$r ($0D)

45

$2D

77

$4D

109

$6D

[ctrl-N] SO

14

$0E

46

$2E

78

$4E

110

$6E

[ctrl-O] SI

15

$0F

47

$2F

79

$4F

111

$6F

[ctrl-P] DLE

16

$10

48

$30

80

$50

112

$70

[ctrl-Q] DC1

17

$11

49

$31

81

$51

113

$71

[ctrl-R] DC2

18

$12

50

$32

82

$52

114

$72

[ctrl-S] DC3

19

$13

51

$33

83

$53

115

$73

[ctrl-T] DC4

20

$14

52

$34

84

$54

116

$74

[ctrl-U] NAK

21

$15

53

$35

85

$55

117

$75

[ctrl-V] SYN

22

$16

54

$36

86

$56

118

$76

[ctrl-W] ETB

23

$17

55

$37

87

$57

119

$77

[ctrl-X] CAN

24

$18

56

$38

88

$58

120

$78

[ctrl-Y] EM

25

$19

57

$39

89

$59

121

$79

[ctrl-Z] SUB

26

$1A

58

$3A

90

$5A

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
tcnica de
Rockwell Automation

Rockwell Automation ofrece informacin tcnica en Internet para


proporcionarle asistencia a la hora de utilizar sus productos. En
http://support.rockwellautomation.com, puede encontrar manuales tcnicos,
una base de conocimientos con respuestas a preguntas frecuentes, notas
tcnicas y de aplicacin, ejemplos de cdigo y vnculos a Service Packs de
software, as como un vnculo llamado MySupport que se puede personalizar
para sacar el mximo provecho de estas herramientas.
Con el fin de brindarle un nivel adicional de asistencia tcnica para la
instalacin, configuracin y resolucin de problemas por telfono, ofrecemos
los programas de asistencia tcnica TechConnect Support. Si desea obtener
ms informacin, pngase en contacto con el representante o distribuidor
local de Rockwell Automation, o vistenos en
http://support.rockwellautomation.com.

Asistencia para la instalacin


Si se le presenta un problema con un mdulo de hardware durante las
24 horas posteriores a la instalacin, revise la informacin proporcionada en
este manual. Tambin puede llamar a un nmero especial de asistencia
tcnica al cliente a fin de recibir ayuda inicial para la puesta en marcha del
mdulo:
En los
Estados Unidos

+1.440.646.3223
Lunes a viernes, de 8:00 am a 5:00 pm, hora oficial del Este de EE.UU.

Fuera de
Estados Unidos

Pngase en contacto con el representante local de


Rockwell Automation para cualquier consulta relacionada con
asistencia tcnica.

Devolucin de productos nuevos


Rockwell prueba todos sus productos para garantizar su correcto
funcionamiento cuando salen de las instalaciones de fabricacin.
No obstante, si el producto no funciona y es necesario devolverlo:
En los
Estados Unidos

Pngase en contacto con el distribuidor. Debe proporcionar al


distribuidor un nmero de caso de asistencia tcnica (llame al nmero
de telfono indicado anteriormente para obtenerlo) a fin de completar
el proceso de devolucin.

Fuera de
Estados Unidos

Pngase en contacto con el representante local de


Rockwell Automation para obtener informacin sobre el
procedimiento de devolucin.

Publicacin 1756-RM003K-ES-P Julio 2008 699


Reemplaza la publicacin 1756-RM003I-ES-P Enero de 2007

Copyright 2008 Rockwell Automation, Inc. Todos los derechos reservados. Impreso en EE.UU.

Contraportada

Instrucciones generales de los controladores Logix5000

Manual de referencia

También podría gustarte