Manual Referencia de Programacion Logix5000 PDF
Manual Referencia de Programacion Logix5000 PDF
Manual Referencia de Programacion Logix5000 PDF
Notas:
Controladores Logix 1
Controladores de la familia Logix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1
Controladores ControlLogix (1756-Lx, -LxMx) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-2
Controladores CompactLogix (1769-Lxx) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4
Controladores FlexLogix (1794-L33, -L34) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-8
Controladores SoftLogix5800 (1789-L10, -L30, -L60) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-10
PowerFlex 700S con DriveLogix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-12
Comparación de controladores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-14
Seleccionar el modo operativo del controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-17
Memoria no volátil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-18
Crear un proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-20
Organizador del controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-21
Tareas del controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-22
Tags del controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-26
Aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-29
Seleccionar un lenguaje de programación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-30
Texto estructurado 3
Sintaxis del texto estructurado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1
Asignaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4
Expresiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6
Cómo determinar el orden de ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-12
Instrucciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13
Construcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-15
Comentarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-25
Forzados 8
Elementos que se pueden forzar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-1
Forzado de E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-4
Efectuar paso a paso en una transición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-7
Forzar un SFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-7
Estructuras de datos 10
Estructuras comunes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-1
Conjunto de instrucciones 11
SoftLogix5800
Control basado en PC de alto
PowerFlex 700S con DriveLogix rendimiento
Una solución integrada para control y
variadores
FlexLogix
Aplicaciones de
control pequeñas a
medianas que usan
FLEX I/O CompactLogix
Compact I/O y control para
aplicaciones más simples
verde fijo El controlador se está comunicando con todos los dispositivos en su configuración de E/S.
verde Uno o más dispositivos en la configuración de E/S del controlador no responden.
parpadeante
rojo parpadeante El chasis está defectuoso. Reemplace el chasis.
FORCE apagado No hay tags que contengan valores de forzados.
Los forzados de E/S están inactivos (inhabilitados).
ámbar fijo Los forzados de E/S están activos (habilitados).
Pueden o no existir valores de forzados de E/S.
ámbar Una o más direcciones de entrada o salida han sido forzadas al estado activado o desactivado, pero lo
parpadeante forzados no se han habilitado
RS232 apagado No hay actividad.
verde fijo recibiendo o transmitiendo datos
verde fijo El controlador se está comunicando con todos los dispositivos en su configuración de E/S.
verde Uno o más dispositivos en la configuración de E/S del controlador no responden.
parpadeante
rojo parpadeante El controlador no se esta comunicando con ningún dispositivo.
El controlador está en fallo.
verde fijo El controlador se está comunicando con todos los dispositivos en su configuración de E/S.
verde Uno o más dispositivos en la configuración de E/S del controlador no responden.
parpadeante
rojo parpadeante Se detectó un error de chasis virtual. Comuníquese con su representante de Rockwell Automation o
distribuidor regional.
FRC apagado No hay tags que contengan valores de forzados.
Los forzados de E/S están inactivos (inhabilitados).
verde Por lo menos un tag contiene un valor forzado de E/S.
parpadeante Los valores forzados de E/S están inactivos (inhabilitados).
verde fijo Los forzados de E/S están activos (habilitados).
Pueden o no existir valores de forzados de E/S.
verde fijo El controlador se está comunicando con todos los dispositivos en su configuración de E/S.
verde Uno o más dispositivos en la configuración de E/S del controlador no responden.
parpadeante
rojo parpadeante No se pueden realizar las conexiones de E/S requeridas, el controlador está en el modo Marcha.
Comparación de controladores
Características comunes 1756 ControlLogix 1769 CompactLogix 1789 SoftLogix 1794 FlexLogix PowerFlex 700S con
DriveLogix
tareas del controlador • 32 tareas (sólo 1 continua) • 1769-L35E: 8 tareas • 32 tareas (sólo 1 continua) • 8 tareas (sólo 1 continua) • 8 tareas (sólo 1 continua)
• continua • tareas de evento: acepta todos • 1769-L32E: 6 tareas • tareas de evento: • tareas de evento: • tareas de evento:
• periódico los disparos de evento. • 1769-L31: 4 tareas compatible con todos los compatible con disparo de compatible con tag
• evento • 1769-L20, -L30: 4 tareas disparos de evento, más tag consumido y con la consumido, ejes y disparos
• sólo 1 tarea puede ser eventos Windows y de instrucción EVENT de evento de movimiento
continua salida
• tareas de evento:
compatible con disparo de
tag consumido y con la
instrucción EVENT
memoria del usuario 1756-L55M12 750 Kbytes 1769-L20 64 Kbytes 1789-L10 2 Mbytes 1794-L33 64 Kbytes 256 Kbytes
1756-L55M13 1.5 Mbytes 1769-L30 256 Kbytes 3 ranuras 1794-L34 512 Kbytes 768 Kbytes con expansión
1756-L55M14 3.5 Mbytes 1769-L31 512 Kbytes ningún de memoria movimiento
1756-L55M16 7.5 Mbytes 1769-L32E 750 Kbytes 1789-L30 64 Mbytes
1756-L55M22 750 Kbytes 1769-L35E 1.5 Mbytes 5 ranuras
1756-L55M23 1. 5 Mbytes 1789-L60 64 Mbytes
1756-L55M24 3.5Mbytes 16 ranuras
1756-L60M03SE 750 Kbytes
1756-L61 2 Mbytes
1756-L62 4 Mbytes
1756-L63 8 Mbytes
Características comunes 1756 ControlLogix 1769 CompactLogix 1789 SoftLogix 1794 FlexLogix PowerFlex 700S con
DriveLogix
memoria de usuario no volátil 1756-L55M12 ninguno 1769-L20 sí ninguna 1794-L33 sí sí (memoria de expansión)
1756-L55M13 ninguno 1769-L30 sí 1794-L34/B sí
1756-L55M14 ninguno 1769-L31 CompactFlash
1756-L55M16 ninguno 1769-L32E CompactFlash
1756-L55M22 sí 1769-L35E CompactFlash
1756-L55M23 sí
1756-L55M24 sí
1756-L60M03SE CompactFlash
1756-L61 CompactFlash
1756-L62 CompactFlash
1756-L63 CompactFlash
puertos de comunicación • 1 puerto RS232 en serie • 1769-L20: 1 puerto RS-232 depende de la computadora • 1 puerto RS-232 en serie • 1 puerto RS-232 en serie
incorporados (DF1 ó ASCII) en serie (DF1 ó ASCII) personal (DF1 ó ASCII) (DF1 ó ASCII)
• 1769-L30, -L31: 2 puertos • 2 ranuras para tarjetas de • 1 ranura para tarjetas de
RS-232 (uno DF1 solamente, comunicación 1788 comunicación 1788
el otro DF1 ó ASCII)
• 1769-L32E, -L35E: 1 puerto
EtherNet/IP y 1 puerto
RS-232 en serie (DF1 ó
ASCII)
redundancia compatible con redundancia total no aplicable no aplicable copia de seguridad (backup) no aplicable
vía DevciceNet
Características comunes 1756 ControlLogix 1769 CompactLogix 1789 SoftLogix 1794 FlexLogix PowerFlex 700S con
DriveLogix
E/S nativas ControlLogix I/O 1756 1769 Compact I/O ninguna 1794 FLEX I/O 1794 FLEX I/O
1797 FLEX Ex I/O 1797 FLEX Ex I/O
control de movimiento simple motor paso a paso motor paso a paso motor paso a paso motor paso a paso motor paso a paso
servo vía DeviceNet servo vía DeviceNet servo vía DeviceNet servo vía DeviceNet servo vía DeviceNet
variador de CA analógico variador de CA analógico variador de CA analógico variador de CA analógico variador de CA analógico
control de movimiento integrado SERCOS Interface no aplicable SERCOS Interface no aplicable 1 servo total
interface analógica interface analógica 1 eje de retroalimentación
interface hidráulica
interface SSI
opciones de montaje y/o chasis 1756 montaje en panel ninguna montaje en panel incorporado en el
instalación riel DIN riel DIN PowerFlex 700S
Lenguajes de programación • lógica de escalera de relé • lógica de escalera de relé • lógica de escalera de relé • lógica de escalera de relé • lógica de escalera de relé
• texto estructurado • texto estructurado • texto estructurado • texto estructurado • texto estructurado
• Bloque de función • Bloque de función • Bloque de función • Bloque de función • Bloque de función
• diagrama de funciones • diagrama de funciones • diagrama de funciones • diagrama de funciones • diagrama de funciones
secuenciales secuenciales secuenciales secuenciales secuenciales
• rutinas externas (DLL de
Windows desarrolladas con
C/C++)
Use la llave ubicada en el panel frontal del controlador para seleccionar el modo.
Memoria no volátil
Los siguientes controladores tienen memoria no volátil para el almacenamiento de proyectos.
Tipo de controlador: Número de catálogo: Revisión de firmware:
(1)
Requiere una tarjeta de memoria 1784-CF64 Industrial CompactFlash.
En propiedades del controlador, usted selecciona guardar/cargar un proyecto a/desde la memoria no volátil.
El proyecto que actualmente está en la memoria no volátil del El proyecto que actualmente está en la memoria de usuario (RAM) del
controlador (si hay un proyecto allí). controlador.
Crear un proyecto
En el software RSLogix 5000, seleccione File → New.
Tarea continua
Tarea
Programa
Rutina
Tarea periódica
Rutina principal
Tarea: Definición:
tarea continua La tarea continua se ejecuta en el segundo plano. Cualquier tiempo de CPU no asignado a otras operaciones (tales tareas
de control de movimiento, comunicaciones y tareas periódicas o de evento) se puede usar para ejecutar los programas
dentro de la tarea continua.
• La tarea continua se ejecuta todo el tiempo. Cuando la tarea continua realiza un escán completo, se reinicia inmediatamente.
• Un proyecto no requiere una tarea continua. Si se usa, sólo puede haber una tarea continua.
tarea periódica Una tarea periódica realiza una función según un régimen específico.
• Cada vez que expira el tiempo de la tarea periódica, la tarea periódica interrumpe cualquier tarea de menor prioridad, se ejecuta una vez
y luego devuelve el control en el lugar donde se interrumpió la tarea previa.
• El período de tiempo se puede configurar de 1 ms a 2000 s. El valor predeterminado es 10 ms. El rendimiento de las tareas periódicas
depende del tipo de controlador Logix y de la lógica en la tarea.
Usted asigna un nivel de prioridad (1 es el más alto, 15 es el más bajo) a cada tarea periódica:
• La tarea de mayor prioridad interrumpe a todas las tareas de menor prioridad.
• Una tarea de mayor prioridad puede interrumpir una tarea de menor prioridad múltiples veces.
• Las tareas que tienen la misma prioridad se ejecutan según una base de segmento de tiempo a intervalos de 1 ms.
tarea de evento Una tarea de evento realiza una función sólo cuando ocurre un evento (desencadenador) específico. Cada vez que ocurre el
desencadenador de la tarea de evento, la tarea de evento interrumpe cualquier tarea de menor prioridad, se ejecuta una
vez y luego devuelve el control en el lugar donde se interrumpió la tarea previa.
Los desencadenadores o disparos disponibles son cambio de estado de datos del módulo de entrada, tag consumido,
registro de eje 1 ó 2, observación de eje, ejecución de grupo de control de movimiento, instrucción EVENT.
Una tarea puede tener hasta 32 programas distintos y cada uno consta de sus propias rutinas ejecutables y tags de programas cubiertos. Una vez activada una
tarea, todos los programas asignados a la tarea se ejecutan en el orden en que se agrupan. Los programas pueden aparecer solamente una vez en el Controller
Organizer y no pueden ser compartidos por múltiples tareas.
Cuando se activa una tarea, los programas programados dentro de la tarea se ejecutan hasta completarse, desde el primero al último. Cada programa contiene
tags del programa, una rutina principal, otras rutinas y una rutina de fallo opcional. Cuando un programa se ejecuta, su rutina principal se ejecuta primero.
Use la rutina principal para llamar (ejecutar) otras rutinas (subrutinas). Para llamar a otra rutina dentro del programa, use una instrucción Jump to Subroutine
(JSR).
(1)
Requiere un módulo de E/S 1756 ó un backplane virtual.
(2) Un controlador SoftLogix5800 produce y consume tags mediante una red ControlNet solamente.
Para usar un módulo de entrada para activar una tarea de evento, el módulo debe ser compatible con activación de tarea de evento. Si el módulo está en un
lugar remoto, los módulos de comunicación asociados también deben ser compatibles con activación de evento. Estos módulos pueden activar una tarea de
evento.
Categoría Módulo Categoría Módulo Categoría Módulo
1756 discreto 1756-IA8D 1756 analógico 1756-IF16 1756 de comunicación 1756-CNB/A, -CNB/B,
-CNB/D
1756-IA16, -IA16I 1756-IF4FXOF2F/A 1756-CNBR/A, -CNBR/B,
-CNBR/D
1756-IA32 1756-IF6CIS 1756-DNB
1756-IB16, -IB16D, -IB16I 1756-IF6I 1756-ENBT/A
1756-IB16ISOE 1756-IF8 1756-SYNCH/A
1756-IB32/A, -IB32/B 1756-IR6I 1756 genérico 1756-MODULE
1756-IC16 1756-IT6I SoftDNB 1784-PCIDS/A
1756-IG16 1756-IT6I2 1789 genérico 1789-MODULE
1756-IH16I, -IH16ISOE 1756 especial 1756-CFM/A
1756-IM16I 1756-HSC
1756-IN16 1756-PLS/B
1756-IV16/A
1756-IV32/A
Crear un tag
En el menú Logic, seleccione Edit Tags.
Los tags se pueden configurar para comunicarse directamente con otros controladores:
Para: Use un:
enviar datos por el backplane y la red ControlNet a un intervalo especificado tag producido
recibir datos de otro controlador por el backplane o la red ControlNet a un intervalo tag consumido
especificado
Aliases
Un tag de alias le permite crear un tag que representa otro tag.
• Ambos tags comparten el (los) mismo(s) valor(es).
• Cuando el (los) valor(es) de uno de los tags cambia(n), el otro tag también refleja el cambio.
La (C) indica que el tag está dentro del alcance del controlador.
Notas:
INICIO
FIN continúa
INICIO
FIN
continúa
divergencia de bifurcación de simultánea Inicie una bifurcación de simultánea. Use el botón de nueva ruta para añadir rutas a la estructura
de la bifurcación.
elementos de convergencia de SFC Termine la bifurcación actual. Seleccione el último paso de cada ruta en la bifurcación y luego
presione este botón.
Una bifurcación simultánea termina con una línea horizontal doble y sin transición. Una
bifurcación de selección termina con una transición para cada ruta y una sola línea horizontal.
bifurcación de extensión Añada una ruta a una bifurcación. Haga clic en el primer paso de la ruta que está a la izquierda de
donde desea añadir la nueva ruta y luego presione este botón.
paro Termine una ruta en una bifurcación sin hacer conexión a otros elementos del SFC.
cuadro de texto Cree un cuadro de texto. Una vez que aparece el cuadro de texto, usted puede hacer clic y
arrastrar y colocar el cuadro de texto en el lugar que desea. Haga doble clic en el cuadro de texto
para añadir texto.
Estructura SFC_STEP
Miembro: Tipo de datos: Detalles:
T DINT Cuando un paso se activa, el valor del temporizador (T) se restablece y luego comienza a contar progresivamente en
milisegundos. El temporizador continúa contando progresivamente hasta que el paso se desactiva, independientemente del valor
preseleccionado (PRE).
PRE DINT Introduzca el tiempo en el miembro preseleccionado (PRE). Cuando el temporizador (T) llega al valor preseleccionado, el bit de
efectuado (DN) se activa y permanece activado hasta que el paso vuelva a activarse.
Como opción, introduzca una expresión numérica que calcule el tiempo durante la ejecución.
DN BOOL Cuando el temporizador (T) llega al valor preseleccionado (PRE), el bit de efectuado (DN) se activa y permanece activado hasta
que el paso vuelva a activarse.
LimitLow DINT Introduzca el tiempo en el miembro LimitLow (milisegundos).
• Si el paso se desactiva antes que el temporizador (T) llegue al valor de LimitLow, se activa el bit AlarmLow.
• El bit AlarmLow permanecerá activado hasta que usted lo restablezca.
• Para usar esta función de alarma, active (seleccione) el bit AlarmEnable (AlarmEn).
AlarmEn BOOL Para usar los bits de alarma, active (seleccione) el bit AlarmEnable (AlarmEn).
AlarmLow BOOL Si el paso se desactiva antes que el temporizador (T) llegue al valor de LimitLow, se activa el bit AlarmLow.
• Este bit permanecerá activado hasta que usted lo restablezca.
• Para usar esta función de alarma, active (seleccione) el bit AlarmEnable (AlarmEn).
LimitHigh DINT Introduzca el tiempo en el miembro LimitHigh (milisegundos).
• Si el temporizador (T) llega al valor de LimitHigh, se activará el bit AlarmHigh.
• El bit AlarmHigh permanecerá activado hasta que usted lo restablezca.
• Para usar esta función de alarma, active (seleccione) el bit AlarmEnable (AlarmEn).
AlarmEn BOOL Para usar los bits de alarma, active (seleccione) el bit AlarmEnable (AlarmEn).
Estructura SFC_ACTION
Miembro: Tipo de datos: Detalles:
Q BOOL El estado del bit Q depende de si la acción es una acción booleana o una acción no booleana:
Si la acción es: Entonces el bit Q está:
booleana activado (1) durante todo el tiempo que la acción está activa, incluyendo el último
escán de la acción
no booleana activado (1) mientras la acción está activa, pero
desactivado (0) en el último escán de la acción
Si va a usar un bit para determinar cuándo está activa una acción, use el bit Q.
A BOOL El bit A está activado todo el tiempo que la acción está activa.
T DINT Cuando una acción activa, el valor del temporizador (T) se restablece y luego comienza a contar progresivamente en
milisegundos. El temporizador continúa contando progresivamente hasta que la acción se desactiva, independientemente del
valor preseleccionado (PRE).
PRE DINT Introduzca el tiempo límite o el retardo en el miembro preseleccionado (PRE). La acción comienza o se detiene cuando el
temporizador (T) llega al valor preseleccionado.
Count DINT Esto no es un conteo de escanes de la acción.
• El conteo incrementa cada vez que se activa la acción.
• Se incrementa nuevamente sólo después que la acción se desactiva y se vuelve a activar.
• El conteo se restablece sólo si usted configura el SFC para que se reinicie en el paso inicial. Con esa configuración, se
restablece cuando el controlador cambia del modo Programa al modo Marcha.
Status DINT Para este miembro: Use este bit:
Q 30
A 31
Calificadores de acción
Si desea que la acción: Y: Asigne este Lo cual significa:
calificador:
comience cuando el paso se active se detenga cuando el paso se desactive N No almacenado
(predeterminado)
se ejecute sólo una vez P1 Pulso (flanco
ascendente)
se detenga antes de que se desactive el paso o cuando se desactive el L Tiempo limitado
paso
permanezca activa hasta que una acción Reset desactive esta acción S Almacenado
permanezca activa hasta que una acción Reset desactive esta acción SL Almacenado y tiempo
o caduque un tiempo específico, aunque el paso se desactive limitado
comience un tiempo específico después que el paso se active y el paso se detenga cuando el paso se desactive D Retardo de tiempo
continúe activo
permanezca activa hasta que una acción Reset desactive esta acción DS Retardado y
almacenado
comience un tiempo específico después que el paso se active, aunque el permanezca activa hasta que una acción Reset desactive esta acción SD Almacenado y retardo
paso se desactive antes de este tiempo de tiempo
se ejecute una vez cuando el paso se active se ejecute una vez cuando el paso se desactive P Pulso
comience cuando el paso se desactive se ejecute sólo una vez P0 Pulso (flanco
descendente)
desactive (restablezca) una acción almacenada: R Reset
• S Almacenado
• SL Almacenado y tiempo limitado
• DS Retardado y almacenado
• SD Almacenado y retardo de tiempo
Estructura SFC_STOP
Miembro: Tipo de Detalles:
datos:
X BOOL • Cuando el SFC llega al paro, el bit X se activa.
• El bit X se restablece si usted configura los SFC para que se reinicien en el paso inicial y el controlador cambia del
modo Programa al modo Marcha.
• En un SFC anidado, el bit X también se restablece si usted configura los SFC para restablecimiento automático, y el SFC
sale del paso que llama al SFC anidado.
Reset BOOL Una instrucción SFC Reset (SFR) restablece el SFC en un paso o paro que la instrucción especifica.
• El bit de restablecimiento indica a cuál paso o paro irá el SFC para comenzar la ejecución nuevamente.
• Una vez que el SFC se ejecuta, el bit de restablecimiento se restablece.
Count DINT Esto no es un conteo de escanes del paro.
• El conteo incrementa cada vez que se activa el paro.
• Se incrementa nuevamente sólo después que el paro se desactiva y se vuelve a activar.
• El conteo se restablece sólo si usted configura el SFC para que se reinicie en el paso inicial. Con esa configuración, se
restablece cuando el controlador cambia del modo Programa al modo Marcha.
Status DINT Para este miembro: Use este bit:
Reset 22
X 31
usar la opción de restablecimiento automático para restablecer datos después de salir de un paso
solamente establecer un bit y programar otra lógica para monitorear el bit a fin de determinar cuándo ejecutar. acción booleana
Notas:
Las instrucciones no se pueden usar en expresiones. Las funciones sólo se pueden usar en expresiones.
Introducir espacios en la sintaxis del texto estructurado es opcional. Los espacios no tienen efecto en la ejecución del texto estructurado. Por ejemplo, estas
dos instrucciones se ejecutan de la misma manera:
Tag_B:=Tag_A
Tag_B := tag_a
Asignaciones
Use una asignación para cambiar el valor almacenado en un tag. Una asignación tiene esta sintaxis:
tag := expression ;
donde:
Componente: Descripción:
tag representa el tag que obtiene el nuevo valor
el tag debe ser BOOL, SINT, INT, DINT o REAL
:= es el símbolo de la asignación
expresión representa el nuevo valor que se va a asignar al tag
Si el tag es este tipo de datos: Use este tipo de expresión:
BOOL expresión BOOL
SINT DINT expresión numérica
INT REAL
; finales de asignación
El tag retiene el valor asignado hasta que otra asignación cambia el valor.
donde:
Componente: Descripción:
tag representa el tag que obtiene el nuevo valor
el tag debe ser BOOL, SINT, INT, DINT o REAL
[:=] es el símbolo de la asignación no retentiva
expresión representa el nuevo valor que se va a asignar al tag
Si el tag es este tipo de datos: Use este tipo de expresión:
BOOL expresión BOOL
SINT DINT expresión numérica
INT REAL
; finales de asignación
Expresiones
Una expresión es una comparación, una ecuación o un nombre de tag. Para escribir una expresión, use cualquiera de los siguientes:
• el nombre del tag que almacena el valor (variable)
• el número que usted introduce directamente en la expresión (valor inmediato)
• funciones, tales como: ABS, TRUNC
• operadores, tales como: +, –, <, >, And, Or
Expresión BOOL: Una expresión que produce ya sea el valor BOOL de 1 (verdadero) o 0 (falso).
• Una expresión booleana usa tags bool, operadores de relación y operadores lógicos para comparar valores y verificar si las condiciones son
verdaderas o falsas. Por ejemplo, tag1>65.
• Una expresión booleana simple puede ser un tag BOOL simple.
• Normalmente se usan expresiones booleanas para condicionar la ejecución de la lógica.
Expresión numérica: Una expresión que calcula un valor entero o de punto flotante (coma flotante).
• Una expresión numérica usa operadores aritméticos, funciones aritméticas y operadores de bit. Por ejemplo, tag1+5.
• Generalmente se anida una expresión dentro de una expresión booleana. Por ejemplo, (tag1+5)>65.
Operadores aritméticos
Los operadores aritméticos calculan valores nuevos.
Funciones aritméticas
Las funciones aritméticas realizan operaciones matemáticas. Especifique una constante, un tag no booleano o una expresión para la función.
Operadores de relación
Los operadores de relación comparan dos valores o cadenas para proporcionar un resultado verdadero o falso. El resultado de una operación de relación es
un valor BOOL:
Operadores lógicos
Los operadores lógicos permiten verificar si múltiples condiciones son verdaderas o falsas. El resultado de una operación lógica es un valor BOOL:
Operadores de bit
Los operadores a nivel de bit manipulan los bits dentro de un valor basado en dos valores.
Orden: Operación:
1. ()
2. función (…)
3. **
4. − (cambiar signo)
5. NOT
6. *, /, MOD
7. +, – (restar)
8. <, <=, >, >=
9. =, <>
10. &, AND
11. XOR
12. OR
Instrucciones
Los comandos de texto estructurado también pueden ser instrucciones. Vea la tabla de ubicación al comienzo de este manual para obtener una lista de las
instrucciones disponibles en texto estructurado. Una instrucción de texto estructurado se ejecuta cada vez que se escanea. Una instrucción de texto
estructurado dentro de una construcción se ejecuta cada vez que las condiciones de la construcción son verdaderas. Si las condiciones de la construcción son
falsas, los comandos dentro de la construcción no se escanean. No hay condición de renglón ni transición de estado que active la ejecución.
Esto es diferente de las instrucciones de bloque de función que usan EnableIn para activar la ejecución. Las instrucciones de texto estructurado se ejecutan
como si EnableIn estuviera siempre establecido.
Esto también es diferente de las instrucciones de lógica de escalera de relé que usan la condición de entrada de renglón para activar la ejecución. Algunas
instrucciones de lógica de escalera de relé sólo se ejecutan cuando la condición de entrada de renglón cambia de falso a verdadero. Estas son instrucciones
de lógica de escalera de relé transitorias. En texto estructurado, las instrucciones se ejecutarán cada vez que se escaneen, a menos que usted condicione
previamente la ejecución de la instrucción de texto estructurado.
Por ejemplo, la instrucción ABL es una instrucción transitoria en la lógica de escalera de relé. En este ejemplo, la instrucción ABL sólo se ejecuta en un
escán cuando tag_xic cambia de restablecido a establecido. La instrucción ABL no se ejecuta cuando tag_xic permanece establecido ni cuando tag_xic se
restablece.
END_IF;
La instrucción ABL se ejecutará en cada escán que tag_xic esté establecido, no sólo cuando tag_xic cambie de restablecido a establecido.
Si desea que la instrucción ABL se ejecute sólo cuando tag_xic cambia de restablecido a establecido, tiene que condicionar la instrucción de texto
estructurado. Use captación de un impulso para activar la ejecución.
osri_1.InputBit := tag_xic;
OSRI(osri_1);
IF (osri_1.OutputBit) THEN
ABL(0,serial_control);
END_IF;
Construcciones
Las construcciones pueden programarse de manera simple o anidadas dentro de otras construcciones.
IF...THEN
Use IF…THEN para hacer algo si o cuando ocurran condiciones específicas. La sintaxis es:
IF bool_expression1 THEN
<statement >; comandos que se ejecutan cuando
bool_expression1 es verdadero
.
.
.
opcional ELSIF bool_expression2 THEN
<statement >; comandos que se ejecutan cuando
bool_expression2 es verdadero
.
.
.
opcional ELSE
<statement>; comandos que se ejecutan cuando
ambas expresiones son falsas
.
.
.
END_IF;
CASE...OF
Use CASE para seleccionar qué hacer basado en un valor numérico. La sintaxis es:
CASE numeric_expression OF
especifique la cantidad de selector1 : <statement>; comandos a ejecutar cuando
valores de selector alternativos . numeric_expression = selector1
(rutas) que necesite .
.
selector2 : <statement>; comandos a ejecutar cuando
. numeric_expression = selector2
.
.
selector3 : <statement>; comandos a ejecutar cuando
. numeric_expression = selector3
.
.
opcional ELSE
END_CASE;
FOR…DO
Use el lazo FOR…DO para hacer algo un número de veces específico antes de hacer algo diferente. La sintaxis es:
END_FOR;
Los siguientes diagramas muestran cómo se ejecuta un lazo FOR...DO y cómo un comando EXIT deja el lazo anticipadamente.
¿Efectuado x sí ¿Efectuado x sí
número de veces? número de veces?
no no
comando 1 comando 1
comando 2 comando 2
comando 3 comando 3
comando 4 comando 4
… …
¿Salir? sí
resto de la rutina
no
resto de la rutina
El lazo FOR…DO se ejecuta un número específico de veces. Para detener el lazo antes que el conteo llegue al último valor, use
un comando EXIT.
WHILE…DO
Use el lazo WHILE…DO para continuar haciendo algo, siempre que ciertas condiciones sean verdaderas. La sintaxis es:
WHILE bool_expression1 DO
<statement>; comandos que se ejecutan mientras
bool_expression1 es verdadero
opcional IF bool_expression2 THEN
EXIT; Si existen condiciones cuando usted desea salir del
lazo anticipadamente, use otros comandos, tales
END_IF; como una construcción IF...THEN, para condicionar un
comando EXIT.
END_WHILE;
Los siguientes diagramas muestran cómo se ejecuta un lazo WHILE...DO y cómo un comando EXIT deja el lazo anticipadamente.
falso falso
expresión BOOL expresión BOOL
verdadero verdadero
comando 1 comando 1
comando 2 comando 2
comando 3 comando 3
comando 4 comando 4
… …
¿Salir? sí
resto de la rutina
no
resto de la rutina
Mientras que bool_expression es verdadero, el controlador Para detener el lazo antes de que las condiciones sean
ejecuta sólo los comandos dentro del lazo WHILE…DO. verdaderas, use un comando EXIT.
REPEAT…UNTIL
Use el lazo REPEAT…UNTIL para continuar haciendo algo hasta que las condiciones sean verdaderas. La sintaxis es:
REPEAT
<statement>; comandos que se ejecutan mientras
bool_expression1 es falso
opcional IF bool_expression2 THEN
EXIT; Si existen condiciones cuando usted desea salir del
lazo anticipadamente, use otros comandos, tales
END_IF; como una construcción IF...THEN, para condicionar un
comando EXIT.
UNTIL bool_expression1
END_REPEAT;
Los siguientes diagramas muestran cómo se ejecuta un lazo REPEAT...UNTIL y cómo un comando EXIT deja el lazo anticipadamente.
comando 1 comando 1
comando 2 comando 2
comando 3 comando 3
comando 4 comando 4
… …
¿Salir? sí
verdadero
expresión BOOL
no
falso
verdadero
expresión BOOL
resto de la rutina
falso
resto de la rutina
Mientras que bool_expression es falso, el controlador Para detener el lazo antes de que las condiciones sean falsas, use
ejecuta sólo los comandos dentro del lazo REPEAT…UNTIL. un comando EXIT.
Comentarios
Para añadir comentarios al texto estructurado:
Para añadir un comentario: Use uno de estos formatos:
en una sola línea //comment
al final de una línea de texto estructurado (*comment*)
/*comment*/
dentro de una línea de texto estructurado (*comment*)
/*comment*/
que abarque más de una línea (*start of comment . . . end of comment*)
Notas:
conector de cable de
salida (OCON)
OREF Añadir una referencia de salida para enviar un valor a un tag o dispositivo de salida.
ICON Añadir conectores de cables de entrada y salida. Use conectores de cables para transferir datos
entre bloques de función cuando éstos están:
• bastante separados en la misma hoja
• en hojas diferentes dentro de la misma rutina
OCON
Usar conectores de cable para dispersar datos a varios puntos en la rutina, asignando un OCON a
múltiples ICON.
instrucción Seleccionar un bloque de función específico para realizar una operación con un valor o valores de
entrada y producir un valor o valores de salida
Usar las fichas ubicadas en la parte inferior de la barra de herramientas para mostrar otros
bloques de función.
Enclavamiento de datos
Condición: Ejemplo:
Si usted usa una IREF para especificar datos de entrada para una instrucción de bloque de función, los datos en la
IREF se enclavan para el escán de la rutina del bloque de función. La IREF enclava datos desde los tags cubiertos por
el programa y tags cubiertos por el controlador. El controlador actualiza todos los datos IREF al comienzo de cada
escán. IREF
En este ejemplo, el valor de tagA se almacena al comienzo de la ejecución de la rutina. El valor almacenado se usa
cuando se ejecuta Block_01. El mismo valor almacenado también se usa cuando se ejecuta Block_02. Si el valor de
tagA cambia durante la ejecución de la rutina, el valor almacenado de tagA en IREF no cambia hasta la siguiente
ejecución de la rutina. tagA Block_01
Block_02
Condición: Ejemplo:
Este ejemplo es igual al anterior. El valor de tagA se almacena sólo una vez al comienzo de la ejecución de la rutina.
La rutina usa este valor almacenado en toda la rutina.
tagA
Block_01
tagA
Block_02
Puede usar el mismo tags en múltiples IREF y un OREF en la misma rutina. Puesto que los valores de los tags en las
IREF se enclavan en cada escán en toda la rutina, todas las IREF usarán el mismo valor, aunque una OREF obtenga un
valor de tag diferente durante la ejecución de la rutina. En este ejemplo, si tagA tiene un valor de 25.4 cuando la
rutina comienza a ejecutar este escán, 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 escán. El nuevo valor de tagA de 50.9 no
será usado por ninguna IREF en esta rutina hasta el comienzo del siguiente escán.
Orden de ejecución
El software de programación RSLogix 5000 determina automáticamente el orden de ejecución de los bloques de función en una rutina cuando usted:
• verifica una rutina de bloque de función
• verifica un proyecto que contiene una rutina de bloque de función
• descarga un proyecto que contiene una rutina de bloque de función
El orden de ejecución se define cableando bloques de función juntos e indicando el flujo de datos de los cables de retroalimentación, si es necesario.
Si los bloques de función no están cableados juntos, no importa cuál bloque se ejecuta primero. No existe un flujo de datos entre los bloques.
Si usted cablea los bloques de manera secuencial, el orden de ejecución va de entrada a salida. Las entradas de un bloque requieren que los datos estén
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 a las entradas del bloque 3.
1 2 3
El orden de ejecución se relaciona sólo a los bloques que están cableados juntos. El siguiente es un buen ejemplo porque los dos grupos de bloques no están
cableados juntos. Los bloques dentro de un grupo específico se ejecutan en el orden apropiado en relación con los bloques de dicho grupo.
1 3 5
2 4 6
Resolución de un lazo
Para crear un lazo de retroalimentación 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 tanto el orden de ejecución no es importante.
Si hay un grupo de bloques en un lazo, el controlador no puede determinar cuál bloque debe ejecutarse primero. En otras palabras, no puede resolver el lazo.
? ? ?
Para identificar cuál bloque debe ejecutarse primero, marque el cable de entrada que crea el lazo (el cable de retroalimentación) con el indicador Assume Data
Available . En el siguiente ejemplo, el bloque 1 usa la salida del bloque 3 que se produjo en la ejecución previa de la rutina.
1 2 3
El indicador Assume Data Available define el flujo de datos dentro del lazo. La flecha indica que el dato sirve como entrada para el primer bloque en el lazo.
No marque todos los cables de un lazo con el indicador Assume Data Available.
Esto es correcto Esto no es correcto
El controlador no puede resolver el lazo porque los cables usan el indicador Assume
1 2 Data Available.
? ?
2 1
Resumen
En resumen, una rutina de bloque de función se ejecuta en este orden:
1. El controlador enclava todos los valores de datos en IREF.
2. El controlador ejecuta los otros bloques de función en el orden determinado según su cableado.
3. El controlador escribe salidas en OREF.
Entrada: Descripción:
.ProgProgReq Una petición del programa para ir a control de programa.
.ProgOperReq Una petición del programa para ir a control de operador.
.OperProgReq Una petición del operador para ir a control de programa.
.OperOperReq Una petición del operador para ir a control de operador.
Para determinar si una instrucción está en control de programa o de operador, examine la salida ProgOper. Si ProgOper está establecido, la instrucción está
en control de programa; Si ProgOper está restablecido, la instrucción está en control de operador.
Control: Descripción:
programa Las entradas de petición de programa tienen precedencia sobre las entradas de petición de operador. Esto proporciona la capacidad de
usar las entradas ProgProgReq y ProgOperReq para “bloquear” una instrucción en un control deseado.
El establecer constantemente ProgProgReq puede “bloquear” la instrucción en control de programa. Esto es útil para las secuencias de
puesta en marcha automática cuando usted desea que el programa controle la acción de la instrucción sin preocuparse de que un
operador tome control accidentalmente de la instrucción. En este ejemplo el programa establece la entrada ProgProgReq durante la
puesta en marcha y luego restablece la entrada ProgProgReq una vez que concluye la puesta en marcha. Una vez que se restablece la
entrada ProgProgReq, la instrucción permanece en control de programa hasta que recibe una petición de cambiar. Por ejemplo, el
operador podría establecer la entrada OperOperReq desde la carátula para asumir el control de esa instrucción.
Las entradas de petición de programa normalmente no son restablecidas por la instrucción porque éstas normalmente están cableadas
como entradas en la instrucción. Si la instrucción establece estas entradas, la entrada sería establecida nuevamente por la entrada
cableada. Pueden haber situaciones en las que usted desee usar otra lógica para establecer las peticiones del programa de manera tal
que desee que las peticiones del programa sean restablecidas por la instrucción. En este caso puede establecer la entrada
ProgValueReset y la instrucción siempre restablecerá las entradas de petición del modo programa cuando ésta se ejecute.
operador Las entradas de petición de operador a una instrucción siempre son restablecidas por la instrucción cuando ésta se ejecuta. Esto permite
que las interfaces de operador funcionen con estas instrucciones simplemente estableciendo el bit de petición del modo deseado. No es
necesario programar la interface de operador para restablecer los bits de petición.
El control de operador tiene precedencia sobre el control de programa si ambos bits de petición de entrada están establecidos. Por
ejemplo, si ProgProgReq y ProgOperReq están establecidos, la instrucción pasa a control de operador.
bifurcaciones
No hay un límite del número de niveles de bifurcación en paralelo que usted puede introducir. La figura siguiente muestra una bifurcación en paralelo con
cinco niveles. El renglón principal es el primer nivel de bifurcación, seguido por cuatro bifurcaciones adicionales.
Se pueden anidar las bifurcaciones hasta en 6 niveles. La figura siguiente muestra una bifurcación anidada. La instrucción de salida inferior se encuentra en
una bifurcación anidada que tiene tres niveles.
un nivel de bifurcación No hay un límite del número de niveles de bifurcación en paralelo que usted puede introducir.
Se pueden anidar las bifurcaciones hasta en 6 niveles.
instrucción Instrucción de entrada: Una instrucción que verifica, compara o examina condiciones
específicas de la máquina o proceso.
Instrucción de salida: Una instrucción que realiza una acción, tal como encender un
dispositivo, apagar un dispositivo, copiar datos o calcular un valor.
Usar las fichas ubicadas en la parte inferior de la barra de herramientas para mostrar otras
instrucciones disponibles.
Condición de renglón
El controlador evalúa las instrucciones de lógica de escalera según la condición de renglón que precede a la instrucción (condición de entrada del renglón).
Sólo las instrucciones de entrada afectan la condición de entrada de renglón de instrucciones subsiguientes en el renglón.
• Si la condición de entrada del renglón a una instrucción de entrada es verdadera, el controlador evalúa la instrucción y establece la condición de
salida del renglón para que coincida con los resultados de la evaluación.
– Si la instrucción se evalúa como verdadera, la condición de salida del renglón es verdadera.
– Si la instrucción se evalúa como falsa, la condición de salida del renglón es falsa.
• Una instrucción de salida no cambia la condición de salida del renglón.
– Si la condición de entrada del renglón a una instrucción de salida es verdadera, la condición de salida del renglón se establece como verdadera.
– Si la condición de entrada del renglón a una instrucción de salida es falsa, la condición de salida del renglón se establece como falsa.
Importante: Cada vez que S:V cambia de restablecido a establecido, se genera un fallo menor (tipo 4, código 4)
el valor de destino de la instrucción es 0 S:Z
el valor de destino de la instrucción es negativo S:N
una operación aritmética causa un acarreo o un acarreo negativo que trata de usar bits que están fuera del tipo de datos S:C
éste es el primer escán normal de las rutinas en el programa actual S:FS
por lo menos se generó un fallo menor: S:MINOR
• El controlador establece este bit cuando ocurre un fallo menor debido a la ejecución del programa.
• El controlador no establece este bit por fallos menores que no están relacionados con la ejecución del programa,
como por ejemplo batería baja.
Las contraseñas de estado no distinguen entre mayúsculas y minúsculas. Debido a que los indicadores de estado pueden cambiar rápidamente, el software RSLogix 5000
no muestra el estado de los indicadores. No es posible definir un alias de tag en relación con una contraseña.
4. En la lógica, use una instrucción GSV para obtener el valor de un atributo o una instrucción SSV para establecer el valor de un atributo.
Atributos de CONTROLLER
Atributo: Tipo de datos: Instrucción: Descripción:
TimeSlice INT GSV El porcentaje de la CPU disponible que se asigna a las comunicaciones. Los valores válidos son 10-90. Este
SSV valor no puede cambiarse cuando el interruptor de llave se encuentra en la posición de marcha.
Atributos de CONTROLLERDEVICE
Atributo: Tipo de datos: Instrucción: Descripción:
DeviceName SINT[33] GSV La cadena ASCII que identifica el número de catálogo del controlador y tarjeta de memoria. El primer byte
contiene un conteo del número de los caracteres ASCII retornados en la cadena de matriz.
ProductCode INT GSV Identifica el tipo de controlador:
Valor: Significado:
3 ControlLogix5550
15 SoftLogix5860
41 FlexLogix5433
43 FlexLogix5434
48 PowerFlex 700S con DriveLogix5720
50 CompactLogix5320
51 ControlLogix5555
52 PowerFlex 700S con DriveLogix5730
Atributos de CST
Atributo: Tipo de datos: Instrucción: Descripción:
CurrentStatus INT GSV El estado actual de la hora coordinada del sistema.
Bit: Significado:
0 hardware del temporizador en fallo: El hardware del temporizador interno del dispositivo está en
un estado de fallo
1 rampa habilitada: El valor actual de los 16+
bits inferiores del temporizador aumentan al valor solicitado en lugar de ubicarse en el valor
inferior.
2 maestro de la hora del sistema: el objeto CST es el origen de la hora del maestro en el sistema
ControlLogix
3 sincronizado: un objeto de CST maestro sincroniza el CurrentValue de 64 bits del objeto CST
mediante una actualización de la hora del sistema
4 maestro de red local: el objeto CST es el origen de la hora del maestro de la red local
5 en el modo relé: el objeto CST funciona en un modo de relé de tiempo
6 se detectó un maestro duplicado: se ha detectado un maestro de hora duplicado de la red local.
Este bit siempre es 0 para los nodos dependientes del tiempo.
7 no se usa
8-9 00 = nodo dependiente del tiempo
01 = nodo maestro de tiempo
10 = nodo de relé de tiempo
11 = no se usa
10-15 no se usa
CurrentValue DINT[2] GSV El valor actual del temporizador. DINT[0] contiene los 32 bits inferiores; DINT[1] contiene los 32 bits
superiores. El origen del temporizador se ajusta para coincidir con el valor suministrado en los servicios de
actualización y la sincronización de red de comunicación local. El ajuste representa un aumento al valor
solicitado o un establecimiento inmediato en el valor solicitado, según se indica en el atributo CurrentStatus.
Atributos de DF1
Atributo: Tipo de datos: Instrucción: Descripción:
ACKTimeout DINT GSV La cantidad de tiempo necesaria para esperar una confirmación de una transmisión de mensaje (punto a
punto y maestro solamente). Los valores válidos son 0-32,767. Retardo en conteos de períodos de 20 mseg.
El valor predeterminado es 50 (1 segundo).
DiagnosticCounters INT[19] GSV Matriz de contadores diagnósticos para el variador de comunicación DF1.
Offset de palabra punto a punto DF1 esclavo DF1 maestro
0 firma (0x0043) firma (0x0042) firma (0x0044)
1 bits de módem bits de módem bits de módem
2 paquetes enviados paquetes enviados paquetes enviados
3 paquetes recibidos paquetes recibidos paquetes recibidos
4 paquetes no entregados paquetes no entregados paquetes no entregados
5 no se usa reintentos de mensajes reintentos de mensajes
6 NAK recibidos NAK recibidos no se usa
7 ENQ enviados paquetes de encuesta recibidos no se usa
8 paquetes deficientes NAK paquetes deficientes sin ACK paquetes deficientes sin ACK
9 memoria no enviada sin NAK ninguna memoria sin ACK no se usa
10 paquetes duplicados recibidos paquetes duplicados recibidos paquetes duplicados recibidos
11 caracteres deficientes recibidos no se usa no se usa
12 conteo de recuperaciones DCD conteo de recuperaciones DCD conteo de recuperaciones DCD
13 conteo de módem perdido conteo de módem perdido conteo de módem perdido
14 no se usa no se usa máximo de tiempo de escán de prioridad
15 no se usa no se usa último tiempo de escán de prioridad
16 no se usa no se usa máximo de tiempo de escán normal
17 no se usa no se usa último tiempo de escán normal
18 ENQ enviados no se usa no se usa
Atributos de FAULTLOG
Atributo: Tipo de datos: Instrucción: Descripción:
MajorEvents INT GSV Cuántos fallos mayores han ocurrido desde la última vez que se restableció este contador.
SSV
MinorEvents INT GSV Cuántos fallos menores han ocurrido desde la última vez que se restableció este contador.
SSV
Atributos de MESSAGE
Atributo: Tipo de datos: Instrucción: Descripción:
ConnectionPath SINT[130] GSV Los datos necesarios para configurar la ruta de conexión. Los dos primeros bytes (byte inferior y byte superior)
SSV representan la longitud en bytes de la ruta de conexión.
ConnectionRate DINT GSV Régimen de paquete solicitado de la conexión.
SSV
Atributos de MODULE
Atributo: Tipo de datos: Instrucción: Descripción:
EntryStatus INT GSV Especifica el estado actual de la entrada de mapa especificada. Los 12 bits inferiores se deben
enmascarar cuando se realiza una operación de comparación. Solamente los bits 12-15 son válidos.
Valor: Significado:
16#0000 Reserva: el controlador se enciende.
16#1000 Con fallo: cualquiera de las conexiones del objeto MODULE al módulo asociado entran en
fallo. No se debe usar este valor para determinar si el módulo ha entrado en fallo puesto que
el objeto MODULE sale periódicamente de este estado cuando intenta volver a conectarse al
módulo. En lugar de ello, realice una prueba para ver si hay un Estado de marcha (16#4000).
Verifique si hay un FaultCode que no sea igual a 0
para determinar si un módulo ha entrado en fallo. Una vez que han entrado en fallo, los
atributos FaultCode y FaultInfo son válidos hasta que se corrige la condición de fallo.
16#2000 Validación: el objeto MODULE está verificando la integridad del objeto MODULE antes de
establecer las conexiones al módulo.
16#3000 Conexión: el objeto MODULE inicia las conexiones al módulo.
16#4000 Se ejecuta: todas las conexiones al módulo han sido establecidas y los datos se están
transfiriendo.
16#5000 Desactivación: el objeto MODULE está en proceso de desactivar todas las conexiones al
módulo.
16#6000 Inhibido: el objeto MODULE se inhibe (el bit de inhibición 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 número que identifica un fallo del módulo, si ocurre.
FaultInfo DINT GSV Especifica información específica acerca del código de fallo del objeto MODULE.
ForceStatus INT GSV Especifica el estado de los forzados.
Bit: Significado:
0 forzados instalados (1=sí, 0=no)
1 forzados habilitados (1=sí, 0=no)
Instance DINT GSV Proporciona el número de instancia de este objeto MODULE.
Atributos de PROGRAM
Atributo: Tipo de datos: Instrucción: Descripción:
DisableFlag SINT GSV Controla la ejecución de este programa.
SSV Valor: Significado:
0 ejecución habilitada
1 ejecución inhabilitada
Instance DINT GSV Proporciona el número de instancia de este objeto PROGRAM.
Atributos de REDUNDANCY
Atributo: Tipo de datos: Instrucción: Descripción:
ChassisRedundancyState INT GSV Estado de redundancia de todo el chasis.
Valor: Significado:
16#1 encendido o indeterminado
16#2 primario con secundario calificado
16#3 primario con secundario no calificado
16#4 primario sin secundario
CompatibilityResults INT GSV Los resultados de las verificaciones de compatibilidad con el controlador homólogo.
Valor: Significado:
0 indeterminado
1 sin homólogo compatible
2 homologo totalmente compatible
KeyswitchAlarm DINT GSV Los ajustes del interruptor de llave del controlador y su homólogo coinciden o no coinciden.
Valor: Significado:
0 los interruptores de llave coinciden o no hay un homólogo presente
1 los interruptores de llave no coinciden
ModuleRedundancyState INT GSV Estado de redundancia del controlador.
Valor: Significado:
16#1 encendido o indeterminado
16#2 primario con secundario calificado
16#3 primario con secundario no calificado
16#4 primario sin secundario
16#6 primario con secundario con calificación
no hay un homólogo presente o cantidad de datos que últimamente se hubieran transferido a un homólogo
sincronizado, un homólogo no especificado en DINT
calificado está presentes
MaxDataTransferSize DINT GSV Valor máximo del atributo LastDataTransferSize. Este atributo sólo es válido en un controlador primario
SSV configurado para redundancia. Para restablecer este valor, use una instrucción SSV con un valor de origen de
0.
Atributos de ROUTINE
Atributo: Tipo de datos: Instrucción: Descripción:
Instance DINT GSV Proporciona el número de instancia de este objeto ROUTINE. Los valores válidos son 0-65,535.
Atributos de SERIALPORT
Atributo: Tipo de datos: Instrucción: Descripción:
BaudRate DINT GSV Especifica la velocidad en baudios. Los valores válidos son 110, 300, 600, 1200, 2400, 4800, 9600 y
19200 (predeterminados).
DataBits SINT GSV Especifica el número de bits de datos por carácter.
Valor: Significado:
7 7 bits de datos (ASCII solamente)
8 8 bits de datos (opción predeterminada)
Parity SINT GSV Especifica la paridad.
Valor: Significado:
0 sin paridad (sin paridad predeterminada)
1 imparidad (ASCII solamente)
2 paridad
RTSOffDelay INT GSV La cantidad de tiempo necesario para retardar la desconexión de la línea RTS después de la transmisión del
último carácter. Los valores válidos son 0-32,767. Retardo en conteos de períodos de 20 mseg. El valor
predeterminado es 0 mseg.
RTSSendDelay INT GSV La cantidad de tiempo necesario para retardar la transmisión del primer carácter de un mensaje después de
activar la línea RTS. Los valores válidos son 0-32,767. Retardo en conteos de períodos de 20 mseg. El valor
predeterminado es 0 mseg.
StopBits SINT GSV Especifica el número de bits de paro.
Valor: Significado:
1 1 bit de paro (opción predeterminada)
2 2 bits de paro (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.
Atributos de TASK
Atributo: Tipo de datos: Instrucción: Descripción:
DisableUpdateOutputs DINT GSV Habilita o inhabilita el procesamiento de salidas al final de una tarea.
SSV Valor: Significado:
0 habilita el procesamiento de salidas al final de una tarea
no cero inhabilita el procesamiento de salidas al final de una tarea
InhibitTask DINT GSV Evita que se ejecute la tarea. Si se inhibe una tarea, el controlador igualmente preescanea la tarea cuando el
SSV controlador cambia del modo programa a marcha o prueba.
Valor: Significado:
0 habilita la tarea 0 (predeterminado)
no cero inhibe (inhabilita) la tarea
Instance DINT GSV Proporciona el número de instancia de este objeto TASK. Los valores válidos 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
SSV microsegundos.
MaxInterval DINT[2] GSV El intervalo de tiempo máximo entre las ejecuciones sucesivas de la tarea. DINT[0] contiene los 32 bits
SSV inferiores del valor; DINT[1] contiene los 32 bits superiores del valor. Un valor de 0 indica 1 ó menos
ejecuciones de la tarea.
Atributos de WALLCLOCKTIME
Atributo: Tipo de datos: Instrucción: Descripción:
CSTOffset DINT[2] GSV El offset positivo del CurrentValue del objeto CST (hora coordinada del sistema; vea la
SSV página 6-7). DINT[0] contiene los 32 bits inferiores del valor; DINT[1] contiene los 32 bits
superiores del valor. Valor en µseg. 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]
SSV contiene los 32 bits superiores del valor. El valor es el número de microsegundos que han
transcurrido desde 0000 horas, 1 de enero de 1972. Los objetos CST y WALLCLOCKTIME tienen
una relación matemática con el controlador. Por ejemplo, si se suman CST CurrentValue y
WALLCLOCKTIME CTSOffset, el resultado es WALLCLOCKTIME CurrentValue.
DateTime DINT[7] GSV La fecha y hora en un formato legible.
SSV DINT[0] año
DINT[1] la representación de número entero del mes (1-12)
DINT[2] la representación de número entero del mes (1-31)
DINT[3] hora (0-23)
DINT[4] minuto (0-59)
DINT[5] segundos (0-59)
DINT[6] microsegundos (0-999,999)
(1)
Para comunicarse con tags encuestados, el controlador usa la memoria de E/S y la memoria de datos y lógica.
(2)
Los controladores 1756-L55M16 tienen una sección de memoria adicional para la lógica.
Para obtener información del controlador sobre la memoria, use una instrucción MSG:
Ficha MSG Configuration:
Para este ítem: Escriba o seleccione: Lo cual significa:
Message Type CIP Generic Ejecutar un comando del protocolo de control e información
Service Type Custom Crear un mensaje CIP Generic que no está disponible en la lista desplegable.
Service Code 3 Use el servicio GetAttributeList. Éste le permite leer información específica acerca del
controlador.
Class 72 Obtener información del objeto memoria de usuario
Instance 1 Este objeto contiene sólo 1 instancia.
Attribute 0 Valor nulo
La instrucción MSG devuelve cada valor de memoria como dos INT separados.
• El primer INT representa los 16 bits inferiores del valor.
• El segundo INT representa los 16 bits superiores del valor.
Para convertir los INT separados en un valor utilizable, use una instrucción Copy (COP), donde:
En este operando: Especifique: Lo cual significa:
Source el primer INT de la pareja de 2 elementos (16 bits Comenzar con los 16 bits inferiores
inferiores)
Destination el tag DINT en donde se va a almacenar el valor de 32 Copiar el valor al tag DINT.
bits
Length 1 Copiar 1 vez el número de bytes en el tipo de datos de destino. En este caso, la instrucción copia 4
bytes (32 bits), lo cual combina los 16 bits inferiores y superiores en un valor de 32 bits.
Si una conexión del tag consumido entra en fallo, todos los otros
IMPORTANTE tags consumidos desde el controlador remoto dejan de recibir
nuevos datos.
Enviar un mensaje
Para cada mensaje, cree un tag para controlar el mensaje:
• Cree el tag dentro del alcance del controlador.
• Use el tipo de datos MESSAGE.
• En el controlador Logix5000, use el tipo de datos DINT para enteros siempre que sea posible: Los controladores Logix5000 se ejecutan más
eficientemente y usan menos memoria cuando trabajan con enteros de 32 bits (DINT).
• Si su mensaje se dirige o proviene de un controlador PLC-5® o SLC 500™ y transfiere enteros (no REAL), use un búfer de INTs:
– Cree un búfer para los datos (alcance del controlador) usando el tipo de datos INT[x].
– Use una instrucción FAL para mover los datos entre el búfer y la aplicación.
Para enviar el mismo mensaje a múltiples controladores, reconfigure una instrucción MSG durante el tiempo de ejecución, escriba nuevos valores a los
miembros del tipo de datos MESSAGE.
Después de introducir la instrucción MSG y especificar la estructura MESSAGE, use el cuadro de diálogo Message Configuration para especificar los
detalles del mensaje.
Los detalles que usted configura dependen del tipo de mensaje que selecciona.
Cuando usted configura una instrucción MSG, configura estos detalles en la ficha Communication.
Por cada archivo al que se hace referencia en un comando PLC o SLC, haga una entrada de asignación:
Nombre MESSAGE_CONFIGURATION
Descripción Propiedades de configuración para un mensaje a otro controlador
Miembros
Nombre Tipo de datos Estilo Descripción
+ RemoteElement STRING
2. En la matriz message_config introduzca la ruta de acceso al primer controlador que recibe el mensaje.
− message_config {…}
− message_config[0] {…} Haga clic con el botón derecho del mouse y seleccione
Go to Message Path Editor.
+ message_config[0].Path
+ message_config[0].RemoteElement
3. En la matriz message_config, introduzca el nombre del tag o dirección de los datos en el primer controlador que va a recibir el mensaje.
− message_config {…}
− message_config[0] {…}
+ message_config[0].Path
+ message_config[0].RemoteElement ...
− message_config[1] {…}
+ message_config[1].Path
+ message_config[1].RemoteElement
− message_config {…}
− message_config[0] {…}
+ message_config[0].Path
+ message_config[0].RemoteElement
− message_config[1] {…}
+ message_config[1].Path
+ message_config[1].RemoteElement
Configurar el mensaje
Aunque la lógica controla el elemento remoto y la ruta de acceso para el mensaje, el cuadro de diálogo Message Properties requiere una configuración inicial.
Asegúrese de borrar la selección Cache Connections.
En esta ficha: Si usted desea: Para este ítem: Escriba o seleccione:
Configuration leer (recibir) datos desde otros Message Type el tipo de lectura que corresponde a los otros controladores
controladores
Elemento de origen tag o dirección que contiene los datos en el primer controlador
Number Of Elements 1
Destination Tag local_array[*]
Index 0
escribir (enviar) datos a otros Message Type el tipo de escritura que corresponde a los otros controladores
controladores
Source Tag local_array[*]
Index 0
Number Of Elements 1
Destination Element tag o dirección que contiene los datos en el primer controlador
Communication Access Path ruta de acceso al primer controlador
Cache Connections Borre la casilla de verificación Cache Connection. Puesto que este procedimiento
continuamente cambia la ruta de acceso al mensaje, es más eficiente borrar esta
casilla de verificación.
Ir al siguiente controlador
Reiniciar la secuencia
Notas:
continúa
Forzado de E/S
Use un forzado de E/S para realizar lo siguiente:
• anular un valor de entrada desde otro controlador (por ej., un tag consumido)
• anular un valor de entrada desde un dispositivo de entrada
• anular la lógica y especificar un valor de salida para otro controlador (por ej., un tag producido)
• anular la lógica y especificar el estado de un dispositivo de salida
El forzado aumenta el tiempo de ejecución de la lógica. A más valores forzados, más tiempo se
IMPORTANTE
requiere para ejecutar la lógica.
Los forzados de E/S son retenidos por el controlador y no por la estación de trabajo de
IMPORTANTE
programación. Los forzados permanecen igual si se desconecta la estación de trabajo de
programación.
3. Haga clic con el botón derecho del mouse en el tag y seleccione Monitor… Si es necesario, expanda el tag para mostrar el valor que desea forzar.
2. Haga clic con el botón derecho del mouse en la transición o en la ruta forzada y seleccione Step Through.
Forzar un SFC
Para anular la lógica de un SFC, existen las siguientes opciones:
Si usted fuerza a falso una transición dentro de una bifurcación simultánea, el SFC permanecerá en la bifurcación simultánea, siempre que el forzado esté
activo (instalado y habilitado).
• Para salir de una bifurcación simultánea, el último paso de cada ruta debe ejecutarse por lo menos una vez y la transición debajo de la bifurcación
debe ser verdadera.
• Al forzar una transición a falso se evita que el SFC llegue al último paso de una ruta.
• Cuando se elimina o inhabilita el forzado, el SFC puede ejecutar el resto de los pasos en la ruta.
Si usted fuerza a falso una ruta de una bifurcación simultánea, el SFC permanecerá en la bifurcación simultánea, siempre que el forzado esté activo (instalado
y habilitado).
• Para salir de una bifurcación simultánea, el último paso de cada ruta debe ejecutarse por lo menos una vez y la transición debajo de la bifurcación
debe ser verdadera.
• El forzar una ruta a falso evita que el SFC entre a una ruta y ejecute sus pasos.
• Cuando se elimina o inhabilita el forzado, el SFC puede ejecutar los pasos en la ruta.
3. Haga clic con el botón derecho del mouse en la transición o inicio de una ruta simultánea que usted desee forzar, y seleccione ya sea Force TRUE
(sólo para una transición) o Force FALSE.
Notas:
Fallos mayores
Si ocurre una condición de fallo que es suficientemente severa para que el controlador se desactive, el controlador genera un fallo mayor y detiene la
ejecución de la lógica.
1. Cree el siguiente tipo de datos definido por el usuario. Éste almacena información acerca del fallo.
Time_High DINT Decimal los 32 bits más altos del valor de sello de hora del fallo
2. Cree una rutina de fallo para borrar fallos específicos a fin de que el controlador continúe la ejecución. El lugar donde se coloca la rutina depende del
tipo de fallo que desea borrar:
3. Para borrar un fallo mayor que ocurre durante la ejecución del proyecto, use la siguiente lógica para:
• Obtener el tipo y código de fallo
1.
2.
3. 4.
1. Esta instrucción EQU verifica un tipo de fallo específico, tal como programa, E/S. En el Origen B, introduzca el valor para el tipo de fallo que
desea borrar.
2. Esta instrucción EQU verifica un código de fallo especifico. En el Origen B, introduzca el valor para el código que desea borrar.
3. Esta instrucción CLR establece en cero el valor del tipo de fallo en el tag major_fault_record.
4. Esta instrucción CLR establece en cero el valor del código de fallo en el tag major_fault_record.
1.
2.
Fallos menores
Si se produce una condición de fallo que no es lo suficiente grave para que el controlador se apague, el controlador genera un fallo menor.
• El controlador continúa ejecutándose.
• No es necesario borrar un fallo menor.
• Para optimizar el tiempo de ejecución y asegurar la precisión del programa, usted debe monitorear y corregir los fallos menores.
Para usar lógica de escalera para capturar información sobre un fallo menor:
Para determinar un/una: Haga lo siguiente:
superposición de tareas periódicas 1. Introduzca una instrucción GSV que obtenga el objeto FAULTLOG, atributo MinorFaultBits.
2. Monitoree el bit 6.
carga desde la memoria no volátil 1. Introduzca una instrucción GSV que obtenga el objeto FAULTLOG, atributo MinorFaultBits.
2. Monitoree el bit 7.
problema con el puerto en serie 1. Introduzca una instrucción GSV que obtenga el objeto FAULTLOG, atributo MinorFaultBits.
2. Monitoree el bit 9.
situación de batería débil 1. Introduzca una instrucción GSV que obtenga el objeto FAULTLOG, atributo MinorFaultBits.
2. Monitoree el bit 10.
Si utiliza un código de fallo que ya es un código de fallo predefinido, ocurrirá un fallo mayor.
Estructura COMPARE
Mnemónico: Tipo de datos: Descripción:
.EN BOOL El bit de habilitación indica que la instrucción está habilitada.
.DN BOOL El bit de efectuado se establece cuando la instrucción ha efectuado la operación en el último elemento (.POS = .LEN).
.FD BOOL El bit de encontrado se establece cada vez que la instrucción registra una desigualdad (operación uno a la vez) o después
de registrar todas las desigualdades (operación todos por escán).
.IN BOOL El bit de inhibición indica el modo de búsqueda.
0 = modo todos
1 = modo una desigualdad a la vez
.ER BOOL El bit de error se establece si .POS < 0 o .LEN < 0. La instrucción ya no se ejecuta hasta que el programa restablece el bit
.ER.
.LEN DINT La longitud especifica el número de elementos en la matriz.
.POS DINT La posición contiene la posición del elemento actual.
Estructura CONTROL
Mnemónico: Tipo de datos: Descripción:
.EN BOOL El bit de habilitación indica que la instrucción está habilitada.
.DN BOOL El bit de efectuado se establece cuando la instrucción ha efectuado la operación en el último elemento (.POS = .LEN).
.ER BOOL El bit de error se establece si la expresión genera un overflow (se establece S:V). La instrucción ya no se ejecuta hasta que
el programa restablece el bit .ER. El valor .POS contiene la posición del elemento que causó el overflow.
.LEN DINT La longitud especifica el número de elementos en la matriz.
.POS DINT La posición contiene la posición del elemento actual.
Estructura COUNTER
Mnemónico: Tipo de datos: Descripción:
.CD BOOL El bit de habilitación de conteo regresivo indica que la instrucción CTD está habilitada.
.CU BOOL El bit de habilitación de conteo progresivo indica que la instrucción 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 límite superior de 2,147,483,647. Luego el contador regresa a
–2,147,483,648 y comienza el conteo progresivo nuevamente.
.UN BOOL El bit de underflow indica que el contador excedió el límite inferior de –2,147,483,648. Luego el contador regresa a
2,147,483,647 y comienza el conteo regresivo nuevamente.
.PRE DINT El valor preseleccionado especifica el valor al que debe llegar el valor acumulado para que la instrucción establezca el
bit .DN.
.ACC DINT El valor acumulado especifica el número de transiciones que contó la instrucción.
Estructura MESSAGE
Mnemónico: Tipo de Descripción:
datos:
.FLAGS INT El miembro .FLAGS proporciona acceso a los miembros de estado (bits) en una palabra de 16 bits.
Este bit: Es este miembro:
2 .EW
4 .ER
5 .DN
6 .ST
7 .EN
8 .TO
9 .EN_CC
Importante: El restablecimiento de cualquiera de los bits de estado MSG cuando está habilitado un MSG puede interrumpir las
comunicaciones.
.ERR INT Si el bit .ER está establecido, la palabra de código de error identifica los códigos de error para la instrucción MSG.
.EXERR INT La palabra de código de error extendida especifica información adicional para algunos códigos de error.
.REQ_LEN INT La longitud solicitada especifica cuántas palabras la instrucción de mensaje intentará transferir.
.DN_LEN INT La longitud efectuada identifica cuántas palabras se transfirieron con éxito.
Estructura RESULT
Mnemónico: Tipo de datos: Descripción:
.DN BOOL El bit de efectuado se establece cuando la matriz Resultado está llena.
.LEN DINT El valor de longitud identifica el número de ubicaciones de almacenamiento en la matriz Resultado.
.POS DINT El valor de posición identifica la posición actual en la matriz Resultado.
Estructura SERIAL_PORT_CONTROL
Mnemónico: Tipo de datos: Descripción:
.EN BOOL El bit de habilitación indica que la instrucción está habilitada.
.EU BOOL El bit de cola indica que la instrucción entró a la cola ASCII.
.DN BOOL El bit de efectuado indica cuando se ha efectuado la instrucción, pero es asíncrono al escán de la lógica.
.RN BOOL El bit de ejecución indica que la instrucción se está ejecutando.
.EM BOOL El bit de vacío indica que se efectuó la instrucción, pero es síncrono al escán de la lógica.
.ER BOOL El bit de error indica cuándo la instrucción entra en fallo (errores).
.FD BOOL El bit de encontrado indica que la instrucción encontró el carácter o caracteres de terminación.
.POS DINT La posición determina el número de caracteres en el búfer hasta e incluso el primer conjunto de caracteres de terminación.
La instrucción sólo retorna este número después que encuentra el carácter o caracteres de terminación.
.ERROR DINT El error contiene un valor hexadecimal que identifica la causa del error.
Estructura STRING
Cada tipo de datos de cadena incluye estos miembros:
Nombre: Tipo de datos: Descripción: Notas:
LEN DINT número de caracteres en la cadena El LEN se actualiza automáticamente al nuevo conteo de los caracteres cuando usted:
• usa el cuadro de diálogo String Browser para introducir caracteres.
• usa las instrucciones que leen, convierten o manipulan una cadena.
El LEN muestra la longitud de la cadena actual. 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, direccione el nombre del tag. Cada elemento de la matriz
DATA contiene un carácter. Usted puede crear nuevos tipos de datos de cadena que almacenen menos o más
caracteres.
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 más caracteres.
Tenga cuidado cuando cree un nuevo tipo de datos de cadena. Si posteriormente decide cambiar el tamaño del tipo de datos de cadena, puede perder datos en cualquier tag
IMPORTANTE que actualmente use ese tipo de datos.
Si usted: Entonces:
hace un tipo de datos de cadena más pequeño • Los datos se truncan.
• LEN no se cambia.
hace un tipo de datos de cadena más grande El dato y LEN se restablecen a cero.
O BIEN
Use el tipo de datos STRING Cree un nuevo tipo de datos de cadena para
predeterminado. Éste almacena almacenar el número de caracteres definido.
hasta 82 caracteres
Estructura TIMER
Mnemónico: Tipo de datos: Descripción:
.EN BOOL El bit de habilitación indica que la instrucción está habilitada.
.TT BOOL El bit de temporización indica que una operación de temporización está en proceso.
.DN BOOL El bit de efectuado se establece cuando .ACC ≥ .PRE.
.PRE DINT El valor preseleccionado especifica el valor (unidades de 1 mseg) al que debe llegar el valor acumulado para que la instrucción
establezca el bit .DN.
.ACC DINT El valor acumulado especifica el número de milisegundos que han transcurrido desde que se habilitó la instrucción.
• Si incluye miembros que representan dispositivos de E/S, debe usar la lógica de escalera para copiar los datos entre los miembros en la estructura y
los tags de E/S correspondientes.
• Cuando use los tipos de datos BOOL, SINT o INT, coloque los miembros que usan el mismo tipo de datos en secuencia:
más eficiente menos eficiente
BOOL BOOL
BOOL DINT
BOOL BOOL
DINT DINT
DINT BOOL
Notas:
ABL no disponible ABL(Channel La instrucción ABL cuenta los caracteres en el búfer hasta e
ASCII Test for SerialPortControl); incluso el primer carácter de terminación.
Buffer Line
Character Count DINT valor inmediato muestra el número de caracteres en el búfer, incluso el primer conjunto de caracteres de terminación (lógica de escalera de
relé solamente)
no afectados ninguna
ABS dest := ABS(source); La instrucción ABS halla el valor absoluto del origen y
absolute value coloca el resultado en el destino.
afectados ninguna
Character Count DINT valor inmediato muestra el número de caracteres en el búfer (lógica de escalera de relé solamente)
no afectados ninguna
Clear Serial Port BOOL valor inmediato Para borrar el búfer y eliminar las instrucciones ARD y ARL de la cola, introduzca Sí.
Read tag
Clear Serial Port BOOL valor inmediato Para eliminar las instrucciones AWA y AWT de la cola, introduzca Sí.
Write tag
no afectados ninguna
ACS dest := ACOS(source); La instrucción ACS halla el arco coseno del valor de origen
Arc Cosine (en radianes) y almacena el resultado en el destino.
afectados ninguna
ADD dest := sourceA + sourceB; La instrucción ADD suma el origen A al origen B y coloca el
Add resultado en el destino.
afectados ninguna
no afectados ninguna
AHL no disponible AHL(Channel,ANDMask La instrucción AHl obtiene el estado de las líneas de control
ASCII Handshake ORMask, y activa o desactiva las señales DTR y RTS.
Lines SerialPortControl);
activado 1 2 activado 0 2
activado desactivado 2 1
activado 0 3
Channel Status DINT valor inmediato muestra el estado de las líneas de control (lógica de escalera de relé solamente)
afectados Type 4 Código 57 La instrucción AHL no se ejecutó porque el puerto en serie está establecido en la opción sin
handshaking.
Cambie el parámetro Control Line del puerto en serio o elimine la instrucción AHL.
AND dest := sourceA AND sourceB La instrucción AND realiza una función Y bit a bit usando
Bitwise AND los bits en los orígenes A y B y coloca el resultado en el
destino.
Source B SINT DINT valor inmediato valor en que se realiza la función Y con el origen A
INT tag
afectados ninguna
ARD no disponible ARD(Channel, La instrucción retira caracteres del búfer y los almacena en
ASCII Read Destination, el destino.
SerialPortControl);
Serial Port DINT valor inmediato muestra el número de caracteres a transferir al destino (lógica de escalera de relé solamente)
Control Length
Characters Read DINT valor inmediato durante la ejecución, muestra el número de caracteres leídos (lógica de escalera de relé solamente)
no afectados ninguna
ARL no disponible ARL(Channel, La instrucción ARL retira los caracteres especificados del
ASCII Read Line Destination, búfer y los almacena en el destino.
SerialPortControl);
Serial Port Control DINT valor inmediato muestra el número máximo de caracteres a leer si no se encuentran caracteres de terminación (lógica de escalera de relé
Length solamente)
Characters Read DINT valor inmediato durante la ejecución, muestra el número de caracteres leídos (lógica de escalera de relé solamente)
no afectados ninguna
ASN dest := ASIN(source); La instrucción ASN halla el arco seno del valor de origen
Arc Sine (en radianes) y almacena el resultado en el destino.
afectados ninguna
ATN dest := ATAN(source); La instrucción ATN halla el arco tangente del valor de
Arc Tangent origen (en radianes) y almacena el resultado en el destino.
afectados ninguna
Array SINT DINT tag de matriz hallar el promedio de los valores en este matriz especificar el primer elemento del grupo de elementos que se va a
INT REAL promediar
no use CONTROL.POS en el subíndice
Position DINT valor inmediato elemento actual en el matriz; el valor inicial es típicamente 0
no afectados Type 4 Código 20 La dimensión que se va a variar no existe para el matriz especificado
Serial Port Control DINT valor inmediato muestra el número de caracteres a enviar (lógica de escalera de relé solamente)
Length
Characters Sent DINT valor inmediato muestra el número de caracteres enviados (lógica de escalera de relé solamente)
no afectados ninguna
Source SINT DINT tag tag que contiene los caracteres a enviar:
INT cadena • para un tipo de datos de cadena, introduzca el nombre del tag.
• para una matriz SINT, INT o DINT, introduzca el primer elemento de la matriz.
Serial Port Control DINT valor inmediato número de caracteres a enviar (lógica de escalera de relé solamente)
Length
Characters Sent DINT valor inmediato muestra el número de caracteres enviados (lógica de escalera de relé solamente)
no afectados ninguna
BAND vea AND IF operandA AND operandB La instrucción BAND une lógicamente mediante AND hasta
Boolean AND THEN 8 entradas booleanas.
<statement>;
END_IF;
no afectados ninguna
BNOT vea NOT IF NOT operand THEN La instrucción BNOT complementa a una entrada booleana.
Boolean NOT <statement>;
END_IF;
no afectados ninguna
BOR vea OR IF operandA OR operandB THEN La instrucción BOR une lógicamente mediante el símbolo
Boolean OR <statement>; OR hasta 8 entradas booleanas.
END_IF;
no afectados ninguna
no afectados ninguna
BSL no disponible no disponible La instrucción BSL desplaza los bits especificados dentro de
Bit Shift Left la matriz una posición a la izquierda.
Array DINT tag de matriz matriz que se modifica; especificar el primer elemento del grupo de elementos
no use CONTROL.POS en el subíndice
no afectados ninguna
BSL no disponible no disponible La instrucción BSR desplaza los bits especificados dentro
Bit Shift Right de la matriz una posición a la derecha.
Array DINT tag de matriz matriz que se modifica; especificar el primer elemento del grupo de elementos
no use CONTROL.POS en el subíndice
no afectados ninguna
BTD vea BTDT vea BTDT La instrucción BTD copia los bits especificados desde el
Bit Field Distribute origen, desplaza los bits en la posición apropiada y escribe
los bits al destino.
Source SINT DINT valor inmediato tag que contiene los bits que se mueven
INT tag
Source Bit DINT valor inmediato número del bit (el número de bit menor de todos) desde el cual se inicia el movimiento
debe estar dentro del rango válido para el tipo de datos de origen (0-31 DINT, 0-15 INT, 0-7 SINT)
Destination SINT DINT valor inmediato tag al cual se mueven los bits
INT tag
Destination bit DINT valor inmediato el número del bit (el número de bit menor de todos) donde se inicia el copiado de los bits del origen
debe estar dentro del rango válido para el tipo de datos de destino (0-31 DINT, 0-15 INT, 0-7 SINT)
afectados ninguna
BTDT vea BTD BTDT(BTDT_tag); La instrucción BTDT primero copia el receptor al destino. La
Bit Field Distribute instrucción BTD copia los bits especificados desde el
with Target origen, desplaza los bits a la posición apropiada y escribe
los bits al destino. El receptor y el destino no cambian.
Source DINT El valor de entrada que contiene los bits que se transfieren al destino.
SourceBit DINT La posición de bit en el origen (el número de bit más bajo desde el cual se inicia
la transferencia).
DestBit DINT la posición de bit en el destino (el número de bit más bajo al cual se comienza a
copiar bits).
Target DINT valor de entrada que se transfiere al destino antes de transferir los bits del
origen.
afectados ninguna
BXOR vea XOR IF operandA XOR operandB La instrucción BXOR realiza una operación O exclusivo en
Boolean Exclusive THEN dos entradas booleanas.
XOR <statement>;
END_IF;
no afectados ninguna
CLR no disponible dest := 0; La instrucción CLR restablece todos los bits del destino.
Clear
afectados ninguna
Expresión SINT REAL valor inmediato una expresión que consiste en tags y/o valores inmediatos separados por operadores.
INT cadena tag
DINT
CONCAT no disponible CONCAT(SourceA,SourceB, La instrucción CONCAT añade caracteres ASCII al fin de una
String Concatenate Dest); cadena.
no afectados Type 4 Código 51 El valor LEN del tag de cadena es mayor que el tamaño DATA del tag de cadena.
Verifique que ninguna instrucción esté escribiendo al miembro LEN del tag de cadena y que en el valor LEN,
usted introdujo el número de caracteres que contiene la cadena.
COP no disponible COP(Source,Dest La instrucción COP copia los valores del origen al destino. El
Copy File Length); origen no se cambia.
Los datos pueden cambiar durante la operación de copiar
Destination SINT REAL tag el elemento inicial que va a ser sobrescrito por el origen
INT cadena Los operandos de origen y destino deben ser del mismo tipo, de lo contrario pueden ocurrir resultados inesperados
DINT
estructura
no afectados ninguna
COS dest := COS(source); La instrucción COS halla el coseno del valor de origen (en
Cosine radianes) y almacena el resultado en el destino.
afectados ninguna
CPS no disponible CPS(Source,Dest La instrucción CPS copia los valores del origen al destino. El
Synchronous Copy Length); origen no se cambia.
File
Los datos no pueden cambiar durante la operación de
copiar
Destination SINT REAL tag el elemento inicial que va a ser sobrescrito por el origen
INT cadena Los operandos de origen y destino deben ser del mismo tipo, de lo contrario pueden ocurrir resultados inesperados
DINT
estructura
no afectados ninguna
CPT no disponible destination := La instrucción CPT realiza las operaciones aritméticas que
Compute numeric_expresion; se definen en la expresión.
Expresión SINT DINT valor inmediato una expresión que consiste en tags y/o valores inmediatos separados por operadores.
INT REAL tag
afectados ninguna
Accum DINT valor inmediato número de veces que contó el contador; el valor inicial es típicamente 0
no afectados ninguna
Accum DINT valor inmediato número de veces que contó el contador; el valor inicial es típicamente 0
no afectados ninguna
CTUD vea CTU y CTD CTUD(CTUD_tag); La instrucción CTUD cuenta progresivamente un valor de
Count Up/Down uno cuando CUEnable cambia de restablecido a
establecido. La instrucción cuenta regresivamente un valor
de uno cuando CDEnable cambia de restablecido a
establecido.
no afectados ninguna
continúa
no afectados ninguna
continúa
no afectados ninguna
DDT no disponible no disponible La instrucción DDT compara los bits en una matriz de origen
Diagnostic Detect con los bits en una matriz de referencia para determinar
cambios de estado.
Source DINT tag de matriz matriz que se va a comparar con la referencia; no use CONTROL.POS en el subíndice
Reference DINT tag de matriz matriz que se va a comparar con el origen; no use CONTROL.POS en el subíndice
Result DINT tag de matriz matriz para almacenar los resultados; no use CONTROL.POS en el subíndice
Position DINT valor inmediato posición actual en el origen; el valor inicial es típicamente 0
Position DINT valor inmediato posición actual en el resultado; el valor inicial es típicamente 0
DEDT no disponible DEDT(DEDT_tag,storage); La instrucción DEDT realiza un retardo de una sola entrada.
DEADTIME Usted selecciona la cantidad de retardo de tiempo muerto.
afectados ninguna
DELETE no disponible DELETE(Source,Qty, La instrucción DELETE elimina los caracteres ASCII de una
String Delete Start,Dest); cadena.
Source cadena tag el tag que contiene la cadena de la cual se desea eliminar los caracteres
Quantity SINT DINT valor inmediato el número de caracteres que se desea eliminar; el inicio así como la cantidad deben ser menores o iguales al tamaño DATA
INT tag del origen.
Start SINT DINT valor inmediato la posición del primer carácter que se debe eliminar; introduzca un número entre 1 y el tamaño DATA del origen
INT tag
no afectados 4 51 El valor LEN del tag de cadena es mayor que el tamaño DATA del tag de cadena. Verifique:
• que ninguna instrucción esté escribiendo al miembro LEN del tag de cadena.
• que en el valor LEN, usted introdujo el número de caracteres que la cadena contiene.
ByPass BOOL petición para evitar el algoritmo; cuando se establece, la instrucción establece
Out = In
no afectados ninguna
DIV dest := sourceA / sourceB; La instrucción DIV divide el origen A entre el origen B y
Divide coloca el resultado en el destino.
Source SINT DINT tag el tag que contiene el valor; Si el origen es un valor REAL, la instrucción lo convierte a un valor DINT.
INT REAL
no afectados 4 51 El valor LEN del tag de cadena es mayor que el tamaño DATA del tag de cadena. Verifique:
• que ninguna instrucción esté escribiendo al miembro LEN del tag de cadena.
• que en el valor LEN, usted introdujo el número de caracteres que la cadena contiene.
4 52 La cadena de salida es mayor que el destino. Cree 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 par el destino.
DTR no disponible no disponible La instrucción DTR pasa el valor de origen a través de una
Data Transitional máscara y compara el resultado con el valor de referencia.
no afectados ninguna
no afectados ninguna
Source B SINT REAL valor inmediato valor que se prueba contra el origen A
INT cadena tag
DINT
no afectados ninguna
continúa
ProgOper BOOL indicador de control del programa/operador; se establece cuando está en control
del programa; se restablece cuando está en control del operador
Override BOOL modo Override (anular); se establece cuando la instrucción está en el modo
Override (anular)
EVENT no disponible EVENT(Task); La instrucción EVENT activa una ejecución de una tarea de
Trigger Event Task evento.
no afectados ninguna
Position DINT valor inmediato elemento actual en la matriz; el valor inicial es típicamente 0
Mode DINT valor inmediato cómo distribuir la operación; seleccione INC, TODOS o introduzca un número
Expresión SINT DINT valor inmediato una expresión que consiste en tags y/o valores inmediatos separados por operadores.
INT REAL tag
FBC no disponible no disponible La instrucción FBC compara los bits en una matriz de origen
File Bit Compare con los bits en una matriz de referencia.
Source DINT tag de matriz matriz que se va a comparar con la referencia; no use CONTROL.POS en el subíndice
Reference DINT tag de matriz matriz que se va a comparar con el origen; no use CONTROL.POS en el subíndice
Result DINT tag de matriz matriz para almacenar el resultado; no use CONTROL.POS en los subíndices
Position DINT valor inmediato posición actual en el origen; el valor inicial es típicamente 0
FIFO SINT DINT tag de matriz FIFO que se va a modificar; especificar el primer elemento FIFO
INT REAL no use CONTROL.POS en el subíndice
cadena
estructura
Control Control tag estructura de control para la operación; generalmente se usa el mismo CONTROL que el FFU asociado
Length DINT valor inmediato número máximo de elementos que FIFO puede contener a la vez
Position DINT valor inmediato la próxima ubicación en FIFO donde la instrucción carga datos; el valor inicial es típicamente 0
no afectados Type 4 Código 20 (elemento inicial + .POS) > tamaño de la matriz FIFO
FIFO SINT DINT tag de matriz FIFO que se va a modificar; especificar el primer elemento FIFO
INT REAL no use CONTROL.POS en el subíndice
cadena
estructura
Control Control tag estructura de control para la operación; generalmente se usa el mismo CONTROL que el FFL asociado
Length DINT valor inmediato número máximo de elementos que FIFO puede contener a la vez
Position DINT valor inmediato la próxima ubicación en FIFO donde la instrucción descarga datos; el valor inicial es típicamente 0
FGEN no disponible FGEN(FGEN_tag,X1,Y1,X2,Y2); La instrucción FGEN convierte una entrada basada en una
Function Generator función lineal a nivel de pieza.
Start SINT DINT valor inmediato la posición en el origen en la cual se debe iniciar la búsqueda; Introduzca un número entre 1 y el tamaño DATA del origen.
INT tag
Result SINT DINT tag el tag que almacena la posición inicial de la cadena que se debe buscar
INT
no afectados 4 51 El valor LEN del tag de cadena es mayor que el tamaño DATA del tag de cadena. Verifique:
• que ninguna instrucción esté escribiendo al miembro LEN del tag de cadena.
• que en el valor LEN, usted introdujo el número de caracteres que la cadena contiene.
4 56 El valor de inicio no es válido. Verifique que el valor de inicio es entre 1 y el tamaño DATA del origen.
FLL no disponible SIZE(destination,0 La instrucción FLL llena los elementos de una matriz con el
File Fill length); valor de origen. El origen no se cambia.
FOR position = 0 TO length-1
DO
destination[position]
:= source;
END_FOR;
Destination SINT DINT tag el elemento inicial que va a ser sobrescrito por el origen
INT REAL Los operandos de origen y destino deben ser del mismo tipo, de lo contrario pueden ocurrir resultados inesperados
estructura el método preferido de inicializar una estructura es usar la instrucción COP.
no afectados ninguna
FOR no disponible FOR count := initial_value La instrucción FOR ejecuta una rutina repetidamente.
For TO final_value BY increment
DO
<statement>;
END_FOR;
Initial value SINT DINT valor inmediato valor en que se comienza el índice
INT tag
Terminal value SINT DINT valor inmediato valor en que se detiene la ejecución de la rutina
INT tag
Step size SINT DINT valor inmediato cantidad que se añade al índice cada vez que la instrucción FOR ejecuta la rutina
INT tag
afectados ninguna
GEQ IF sourceA >= sourceB THEN La instrucción GEQ determina si el origen A es mayor o
Greater Than or <statements>; igual que el origen B.
Equal To
Source B SINT REAL valor inmediato valor que se prueba contra el origen A
INT cadena tag
DINT
no afectados ninguna
GRT IF sourceA > sourceB THEN La instrucción GRT determina si el origen A es mayor que el
Greater Than <statements>; origen B.
Source B SINT REAL valor inmediato valor que se prueba contra el origen A
INT cadena tag
DINT
no afectados ninguna
GSV no disponible GSV(ClassName, Las instrucciones GSV obtienen datos de sistema del
Get System Value InstanceName, controlador almacenados en los objetos.
AttributeName,Dest);
Instance name na nombre nombre de objeto específico cuando el objeto requiere un nombre
Attribute Name na nombre atributo del objeto; el tipo de datos depende del atributo que usted selecciona
Destination SINT DINT tag destino para los datos del atributo
INT REAL
Type 4 Código 7 el destino GSV no es suficientemente grande para retener los datos solicitados
HLL no disponible HLL(HLL_tag); La instrucción HLL limita una entrada analógica entre dos
High/Low Limit valores. Usted puede seleccionar límites alto/bajo, alto o
bajo.
Source B cadena tag la cadena que contiene los caracteres que se deben añadir
Start SINT DINT valor inmediato la posición en el origen A a la cual se deben añadir los caracteres; Introduzca un número entre 1 y el tamaño DATA del
INT tag origen.
no afectados 4 51 El valor LEN del tag de cadena es mayor que el tamaño DATA del tag de cadena. Verifique:
• que ninguna instrucción esté escribiendo al miembro LEN del tag de cadena.
• que en el valor LEN, usted introdujo el número de caracteres que la cadena contiene.
4 56 El valor de inicio no es válido. Verifique que el valor de inicio es entre 1 y el tamaño DATA del origen.
INTG no disponible INTG(INTG_tag); La instrucción INTG realiza una operación integral. Esta
Integrator instrucción está diseñada para ejecutarse en una tarea
donde el régimen de escán permanece constante.
Output tag nombre de tag tag el tag que usted desea actualizar, ya sea un tag de salida de un módulo de E/S o un tag producido.
no seleccione un miembro o elemento de un tag.
no afectados ninguna
no afectados ninguna
JMP no disponible no disponible Las instrucciones JMP y LBL saltan porciones de la lógica
Jump de escalera.
Input parameter BOOL DINT valor inmediato datos de esta rutina que desea copiar a un tag en la subrutina
SINT REAL tag • los parámetros son opcionales
INT tag de matriz • introduzca múltiples parámetros, si es necesario
estructura
Return parameter BOOL DINT tag el tag en esta rutina al cual desea copiar un resultado de la subrutina
SINT REAL tag de matriz • los parámetros son opcionales
INT • introduzca múltiples parámetros, si es necesario
estructura
Input count SINT DINT valor inmediato número de parámetros de entrada (texto estructurado solamente)
INT REAL
afectados 4 31 • la instrucción JSR tiene menos parámetros de entrada que la instrucción SBR
• la instrucción RET tiene menos parámetros de retorno que la instrucción JSR
• la rutina principal contiene una instrucción RET
Parameter BOOL DINT valor inmediato datos de esta rutina que desea copiar a una variable en la rutina externa
SINT REAL tag • los parámetros son opcionales
INT tag de matriz • introduzca múltiples parámetros, si es necesario
estructura • puede tener hasta 10 parámetros
Return parameter BOOL DINT tag el tag en esta rutina al cual desea copiar un resultado de la rutina externa
SINT REAL • El parámetro de retorno es opcional
INT • Sólo puede tener un parámetro de retorno
no afectados ninguna
LBL no disponible no disponible Las instrucciones JMP y LBL saltan porciones de la lógica de
Label escalera.
Label name na nombre la ejecución salta a la instrucción LBL con el nombre de etiqueta al cual se hizo referencia
LDL2 no disponible LDL2(LDL2_tag); La instrucción LDL2 proporciona un filtro con una pareja de
Second-Order polos y una pareja de ceros. La frecuencia y amortiguación
Lead Lag de las parejas de polos y ceros son ajustables. Las parejas
de polos o ceros puede ser compleja (amortiguación menor
que unidad) o real (amortiguación mayor o igual que
unidad).
LEQ IF sourceA <= sourceB THEN La instrucción LEQ determina si el origen A es menor que o
Less than or equal <statements>; igual al origen B.
to
Source B SINT REAL valor inmediato valor que se prueba contra el origen A
INT cadena tag
DINT
no afectados ninguna
LES IF sourceA < sourceB THEN La instrucción LES determina si el origen A es menor que el
Less Than <statements>; origen B.
Source B SINT REAL valor inmediato valor que se prueba contra el origen A
INT cadena tag
DINT
no afectados ninguna
LIFO SINT DINT tag de matriz LIFO que se modifica; especificar el primer elemento de LIFO
INT REAL no use CONTROL.POS en el subíndice
cadena
estructura
Control Control tag estructura de control para la operación; generalmente se usa el mismo CONTROL que el LFU asociado
Length DINT valor inmediato número máximo de elementos que LIFO puede contener a la vez
Position DINT valor inmediato la próxima ubicación en LIFO donde la instrucción carga datos; el valor inicial es típicamente 0
no afectados Tipo 4 Código 20 (elemento inicial + .POS) > tamaño de la matriz LIFO
LIFO SINT DINT tag de matriz LIFO que se modifica; especificar el primer elemento de LIFO
INT REAL no use CONTROL.POS en el subíndice
cadena
estructura
Control Control tag estructura de control para la operación; generalmente se usa el mismo CONTROL que el LFL asociado
Length DINT valor inmediato número máximo de elementos que LIFO puede contener a la vez
Position DINT valor inmediato la próxima ubicación en LIFO donde la instrucción descarga datos; el valor inicial es típicamente 0
High Limit SINT DINT valor inmediato valor del límite superior
INT REAL tag
no afectados ninguna
afectados ninguna
LOG dest := LOG(source); La instrucción LOG halla el logaritmo base 10 del origen y
Log Base 10 almacena el resultado en el destino.
afectados ninguna
Source cadena tag el tag que contiene los caracteres que usted desea convertir a minúsculas
no afectados ninguna
no afectados ninguna
MAFR no disponible MAFR(Axis,MotionControl); La instrucción MAFR borra todos los fallos de control de
Motion Axis Fault movimiento del eje. Éste es el único método de borrar los
Reset fallos de control de movimiento del eje.
no afectados ninguna
continúa
MAG Direction UINT32 valor inmediato dirección relativa en que el eje esclavo sigue al eje maestro:
Motion Axis Gear tag • 0 = el eje esclavo se mueve en la misma dirección que el eje maestro
(continúa) • 1 = el eje esclavo se mueve en la dirección opuesta a su dirección actual
• 2 = el eje esclavo se mueve en dirección opuesta a la actual o previa
• 3 = el eje esclavo continúa en su dirección actual o previa
Ratio REAL valor inmediato valor Real con signo que establece la relación de transmisión en unidades de usuario esclavo por unidad de usuario maestro
tag
Master Reference BOOL valor inmediato referencia de posición de maestro: 0 = posición actual, 1 = posición de comando
Accel rate BOOL valor inmediato la velocidad de aceleración del eje esclavo en % o unidades de aceleración
tag
Accel units DINT valor inmediato unidades usadas para mostrar el valor de aceleración: 0 = unidades por seg.2; 1 =% de aceleración máxima
no afectados ninguna
MAH no disponible MAH(Axis,MotionControl); La instrucción MAH hace que un eje vuelva a la posición
Motion Axis Home inicial.
no afectados ninguna
Diagnostic test UDINT valor inmediato prueba para que el módulo de control de movimiento ejecute:
• 0 = prueba de conexión de motor/encoder
• 1 = prueba de conexión de encoder
• 2 = prueba de marcador de encoder
no afectados ninguna
Direction UDINT valor inmediato dirección del impulso: 0 = impulso de avance; 1 = impuso de retroceso
tag
Speed REAL valor inmediato la velocidad de movimiento del eje en % o en unidades de velocidad
tag
Speed units UDINT valor inmediato unidades de ingeniería para el valor de velocidad: 0 = unidades por seg.; 1 =% de velocidad máxima
continúa
MAJ Accel units UDINT valor inmediato unidades de ingeniería para el valor de aceleración: 0 = unidades por seg.2; 1 =% de aceleración máxima
Motion Axis Jog
(continúa) Accel rate REAL valor inmediato la velocidad de aceleración del eje en % o unidades de aceleración
tag
Decel rate REAL valor inmediato o la velocidad de desaceleración del eje en % o unidades de desaceleración
tag
Decel units UDINT valor inmediato unidades de ingeniería para el valor de desaceleración: 0 = unidades por seg.2; 1 =% de desaceleración máxima
Profile UDINT valor inmediato seleccione el perfil de velocidad para ejecutar el movimiento por impulso: 0 = trapezoidal; 1 = Curva S
Merge UDINT valor inmediato instruye al control de movimiento que cambie el movimiento actual de todos los ejes
Merge speed UDINT valor inmediato determina si la velocidad es el valor de velocidad especificado de esta instrucción o la velocidad actual del eje:
• 0 = valor programado en el campo de velocidad
• 1 = velocidad actual del eje
no afectados ninguna
Move type UDINT valor inmediato o tipo de operación de control de movimiento: 0 = Movimiento absoluto; 1 = Movimiento incremental; 2 = Movimiento rotativo
tag de ruta más corta;
3 = Movimiento rotativo positivo; 4 = Movimiento rotativo negativo; 5 = Offset de maestro absoluto; 6 = Offset de maestro
incremental
Position/Distance REAL valor inmediato valor de posición de comando absoluto al cual moverse, o para movimiento incremental, el valor de la distancia desde donde
tag moverse de la posición de comando actual.
Speed REAL valor inmediato la velocidad de movimiento del eje en % o en unidades de velocidad.
tag
continúa
MAM Speed Units BOOL valor inmediato unidades para el valor de velocidad: 0 =unidades por seg.; 1 =% de velocidad máxima
Motion Axis Move
(continúa) Accel rate REAL valor inmediato o la velocidad de aceleración del eje en % o unidades de aceleración
tag
Accel units BOOL valor inmediato unidades para el valor de aceleración: 0 = unidades por seg.2; 1 =% de aceleración máxima
Decel rate REAL valor inmediato o la velocidad de desaceleración del eje en % o unidades de desaceleración
tag
Decel units BOOLEAN valor inmediato unidades para el valor de desaceleración: 0 = unidades por seg.2; 1 =% de aceleración máxima
Profile UDINT valor inmediato perfil de velocidad a ejecutar para el movimiento: 0 = trapezoidal; 1 = Curva S
Merge BOOL valor inmediato instruye al control de movimiento que cambie el movimiento actual de todos los ejes, independientemente de las
instrucciones de control de movimiento actualmente en proceso, a un movimiento puro definido por esta instrucción.
Merge speed DINT valor inmediato determina si la velocidad del perfil de movimiento va a ser valor de velocidad especificado de esta instrucción o la velocidad
actual del eje:
• 0 = valor programado en el campo de velocidad
• 1 = velocidad actual del eje
no afectados ninguna
continúa
MAOC Output DINT tag 32 bits de salida que se establecen o restablecen en base a la leva de salida especificada
Motion Arm
Output Cam Input DINT tag 32 bits de entrada que pueden usarse como bits de habilitación, dependiendo de la leva de salida especificada
(continúa)
Output Cam OUTPUT_CAM tag de matriz matriz de elementos de OUTPUT_CAM
Cam Start SINT DINT valor inmediato la posición de arranque de leva con la posición final de leva definen los límites izquierdo y derecho del rango de la leva de
Position INT REAL tag salida
Cam End Position SINT DINT valor inmediato la posición final de leva con la posición de arranque de leva definen los límites izquierdo y derecho del rango de la leva de
INT REAL tag salida
Execution Mode UINT32 valor inmediato modo de ejecución: una vez (0); continuo (1); persistente (2)
Execution UINT32 valor inmediato cuándo activar la leva de salida: 0 = inmediato; 1 = pendiente; 2 = avance solamente; 3 = retroceso solamente;
Schedule 4 = bidireccional
Axis Arm Position SINT DINT valor inmediato posición del eje donde la leva de salida se activa cuando el programa de ejecución está establecido en avance solamente,
INT REAL tag retroceso solamente o bidireccional, y el eje se mueve en la dirección especificada
Cam Arm Position SINT DINT valor inmediato posición de leva asociada con la posición de activación del eje cuando la leva de salida se activa
INT REAL tag
Reference UINT32 valor inmediato determina si la leva de salida se conecta a 0 = posición actual, 1 = posición de comando
no afectados ninguna
Master axis AXIS_FEEDBACK tag eje que el eje esclavo sigue de acuerdo con el perfil de levas
AXIS_CONSUME
AXIS_VIRTUAL
AXIS_GENERIC
AXIS_SERVO
AXIS_SERVO_
DRIVE
continúa
MAPC Direction UINT32 valor inmediato dirección relativa del eje esclavo: la misma, opuesta, retroceso o sin cambio
Motion Axis tag
Position Cam
(continúa) Cam Profile CAM_PROFILE matriz matriz de perfil de levas calculado, usado para establecer la relación de posición de maestro/esclavo
Slave Scaling REAL valor inmediato escala la distancia total cubierta por el eje esclavo a través del perfil de levas
tag
Master Scaling REAL valor inmediato escala la distancia total cubierta por el eje maestro a través del perfil de levas
tag
Execution Mode UINT32 valor inmediato determina si se ejecuta el perfil de levas: 0 = una vez, 1 = continuo, 2 = persistente
Execution UINT32 valor inmediato método para ejecutar el perfil de levas: 0 = inmediato, 1 = pendiente, 2 = avance solamente, 3 = retroceso solamente,
Schedule 4 = bidireccional
Master Lock REAL valor inmediato posición absoluta del eje maestro donde el eje esclavo se enclava al eje maestro.
Position tag
Cam Lock Position REAL valor inmediato ubicación de inicio en el perfil de leva
tag
Master Reference UINT32 valor inmediato referencia de posición de maestro: 0 = posición actual, 1 = posición de comando
Master Direction UINT32 valor inmediato dirección del eje maestro que genera movimiento de esclavo de acuerdo con el perfil de levas: bidireccional (0), avance
solamente (1), retroceso solamente (2)
no afectados ninguna
Trigger condition BOOL valor inmediato activación de transición de entrada de registro: 0 = en flanco positivo, 1 = en flanco negativo
Windowed BOOL valor inmediato determina si el registro estará dentro de los límites, es decir si la posición de registro calculada debe estar dentro de los
registration límites de posición mínimo y máximo
Minimum position REAL valor inmediato o la posición de registro debe ser mayor que el límite mínimo de posición.
tag
Maximum REAL valor inmediato o la posición de registro debe ser menor que el límite máximo de posición.
position tag
Input Number UINT32 1ó2 entrada de registro: 1 = Posición de registro 1, 2 = Posición de registro 2
no afectados ninguna
Stop type UNIT32 valor inmediato determina el proceso del control de movimiento: 0 = parar todo el movimiento; 1 = parar el movimiento por impulsos;
2 = parar el movimiento; 3 = parar la sincronización digital; 4 = parar el regreso a la posición inicial;
5 = parar el ajuste; 6 = parar la prueba; 7 = parar las levas de posición; 8 = parar las levas de tiempo; 9 = parar un movimiento
de offset maestro
Change decel BOOL valor inmediato se establece para habilitar el uso del valor de deceleración en lugar de la velocidad máxima de desaceleración actual
configurada.
Decel rate REAL valor inmediato la velocidad de desaceleración del eje en % o unidades de desaceleración
tag
Decel units BOOL valor inmediato unidades de ingeniería para el valor de desaceleración: 0 = unidades por seg.2; 1 =% del máximo
no afectados ninguna
no afectados ninguna
no afectados ninguna
Direction UINT32 valor inmediato dirección relativa del eje esclavo al eje maestro: la misma, opuesta, retroceso o sin cambio
tag
Distance Scaling REAL valor inmediato escala la distancia total cubierta por el eje a través del perfil de levas
tag
continúa
MATC Time scaling REAL valor inmediato escala el intervalo de tiempo cubierto por el perfil de levas
Motion Axis tag
Time Cam
(continúa) Execution Mode UINT32 valor inmediato cómo se comporta el movimiento de levas cuando el tiempo pasa más allá del punto final del perfil de levas: una vez (0),
continuo (1)
Execution UNIT32 valor inmediato método para ejecutar el perfil de levas: 0 = inmediato, 1 = pendiente
Schedule
no afectados ninguna
storage REAL matriz retiene las muestras de promedio en movimiento. esta matriz debe ser por lo menos tan grande como NumberOfSamples.
weight REAL matriz (opcional) usado para promedios ponderados; esta matriz debe ser por lo menos tan grande como NumberOfSamples.
el elemento [0] se usa para la muestra más nueva; el elemento [n] se usa para la muestra más antigua
Trigger condition BOOL valor inmediato condición de activación de evento de control: 0 = avance; 1 = retroceso
no afectados ninguna
Speed Units SINT DINT valor inmediato 0 = unidades por segundo; 1 = % del máximo
INT
no afectados ninguna
Motion type SINT DINT valor inmediato tipo de movimiento: 0 = absolute; 1 = incremental
INT tag
no afectados ninguna
Start Slope REAL valor inmediato condición límite para la pendiente inicial del perfil
tag
End slope REAL valor inmediato condición límite para la pendiente final del perfil
tag
no afectados ninguna
Motion type UDINT valor inmediato perfil de movimiento a cambiar: 0 = movimiento por impulsos; 1 = movimiento
Speed REAL valor inmediato nueva velocidad de movimiento del eje en % o en unidades de velocidad
tag
continúa
MCD Change accel BOOL valor inmediato determina si se habilita un cambio de aceleración
Motion Change
Dynamics Accel rate REAL valor inmediato la velocidad de aceleración del eje en % o unidades de aceleración
(continúa) tag
Decel rate REAL valor inmediato la velocidad de desaceleración del eje en % o unidades de desaceleración
tag
Speed units BOOL valor inmediato unidades usadas para mostrar el valor de velocidad: 0 = unidades por seg.; 1 =% de velocidad máxima
Accel units BOOL valor inmediato unidades usadas para mostrar el valor de aceleración: 0 = unidades por seg.2; 1 =% de aceleración máxima
Decel units BOOL valor inmediato unidades usadas para mostrar el valor de desaceleración: 0 = unidades por seg.2; 1 =% de aceleración máxima
no afectados ninguna
Motion type SINT DINT valor inmediato tipo de movimiento: 0 = absolute; 1 = incremental
INT tag
no afectados ninguna
MCR no disponible no disponible La instrucción MCR, usada en parejas, crea una zona de
Master Control programa que puede inhabilitar todos los renglones dentro
Reset de las instrucciones MCR.
no afectados ninguna
MCS no disponible MCS(CoordinateSystem, La instrucción MCS inicia un paro controlado del perfil de
Motion MotionControl,StopType); movimiento coordinado.
Coordinated Stop
Stop Type SINT DINT valor inmediato tipo de paro: 2 = movimiento coordinado
INT
no afectados ninguna
no afectados ninguna
no afectados ninguna
MCSV no disponible MCSV(MotionControl, La instrucción MCSV calcula el valor del esclavo, el valor de
Motion Calculate CamProfile,MasterValue, pendiente y la derivada de la pendiente para un perfil de
Slave Value SlaveValue,SlopValue, levas y valor de maestro dados.Como extensión a la
SlopeDerivative
funcionalidad de levas de tiempo y posición suministra los
valores esenciales para la recuperación de fallos durante
operaciones de levas
Cam Profile CAM_PROFILE matriz define el perfil de levas usado para calcular los valores de esclavos
Master value SINT DINT valor inmediato o valor a lo largo del eje maestro del perfil de levas usado para calcular los valores de esclavos
INT REAL tag
Slave value REAL tag valor a lo largo del eje esclavo del perfil de levas con el maestro en el valor de maestro especificado
Slope value REAL tag primera derivada del valor a lo largo del eje esclavo del perfil de levas con el maestro en el valor de maestro especificado
Slope derivative REAL tag segunda derivada del valor a lo largo del eje esclavo del perfil de levas con el maestro en el valor de maestro especificado
no afectados ninguna
no afectados ninguna
MDO no disponible MDO(Axis,MotionControl, La instrucción MDO funciona en conjunto con los módulos
Motion Direct Drive DriveOutput,DriveUnits); de control de movimiento compatibles con una interface de
On servodrive analógica externa. La instrucción MDO activa la
función Drive Enable del módulo, habilitando el servodrive
externo, y también establece el voltaje de salida del
servomódulo del drive al nivel de voltaje especificado.
Drive Output REAL tag voltaje de salida en % del límite de salida del servo o en voltios
Drive Units BOOL tag unidades del valor de salida del variador: 0 = volts, 1 = %
no afectados ninguna
Execution Target SINT DINT valor inmediato leva de salida del conjunto conectado al eje especificado:
INT tag • 0...8 – Levas de salida ejecutadas en el controlador Logix.
• 9...31 – Reservado para uso futuro.
Disarm Type DINT valor inmediato levas(s) de salida que van a desactivarse: 0 = todas, 1 = específica
no afectados ninguna
Input Number UINT32 1ó2 entrada de registro: 1 = Posición de registro 1, 2 = Posición de registro 2
no afectados ninguna
no afectados ninguna
MEQ IF (Source AND Mask) = La instrucción MEQ pasa los valores de origen y
Mask Equal To (Compare AND Mask) THEN comparación a través de una máscara y compara los
<statement>; resultados.
END_IF;
Mask SINT DINT valor inmediato define qué bloques se deben bloquear o pasar
INT tag
Compare SINT DINT valor inmediato valor que se prueba contra el origen
INT tag
no afectados ninguna
Stop Mode UDINT valor inmediato cómo se paran los ejes en el grupo: 0 = programado, 1 = paro rápido, 2 = inhabilitación rápida
no afectados ninguna
MGSD no disponible MGSD(Group,MotionControl); La instrucción MGSD fuerza todos los ejes del grupo
Motion Group designado al estado de desactivación.
Shutdown
no afectados ninguna
no afectados ninguna
MGSR no disponible MGSR(Group,MotionControl); La instrucción MGSR cambia un grupo de ejes del estado de
Motion Group operación desactivada al estado de operación de ejes
Shutdown Reset listos.
no afectados ninguna
Quantity SINT DINT valor inmediato el número de caracteres que se desea copiar; el inicio así como la cantidad deben ser menores o iguales al tamaño DATA
INT tag del origen.
Start SINT DINT valor inmediato la posición del primer carácter que se debe copiar; introduzca un número entre 1 y el tamaño DATA del origen
INT tag
no afectados Tipo 4 Código 51 El valor LEN del tag de cadena es mayor que el tamaño DATA del tag de cadena. Verifique:
• que ninguna instrucción esté escribiendo al miembro LEN del tag de cadena.
• que en el valor LEN, usted introdujo el número de caracteres que la cadena contiene.
MOD dest := sourceA MOD sourceB; La instrucción MOD divide el origen A entre el origen B y
Modulo coloca el resto en el destino.
MOV no disponible dest := source; La instrucción MOV copia el origen al destino. El origen no
Move se cambia.
Source SINT DINT valor inmediato valor que se mueve (se copia)
INT REAL tag
Destination SINT DINT tag una expresión que consiste en tags y/o valores inmediatos separados por operadores.
INT REAL
afectados ninguna
no afectados ninguna
Diagnostic test DINT valor inmediato prueba para que el módulo de control de movimiento ejecute:
• 0 = prueba de conexión de motor/encoder
• 1 = prueba de conexión de encoder
• 2 = prueba de marcador de encoder
no afectados ninguna
Type BOOL valor inmediato cómo debe funcionar la operación de redefinición: 0 = absoluto, 1 = relativo
Position select BOOL valor inmediato en qué posición realizar la operación de redefinición: 0 = posición actual, 1 = posición de comando
Position REAL valor inmediato valor a usar para cambiar la posición del eje u offset a la posición actual
tag
no afectados ninguna
MSF no disponible MSF(Axis,MotionControl); La instrucción MSF desactiva la salida del variador para el
Motion Servo Off eje especificado y para desactivar el lazo servo del eje.
Si usted ejecuta una instrucción MSF mientras que el eje se
está moviendo, el eje realiza un paro no controlado.
no afectados ninguna
no afectados ninguna
MSO no disponible MSO(Axis,MotionControl); La instrucción MSO activa el amplificador del variador para
Motion Servo On el eje especificado y para activar el lazo de control servo
del eje.
no afectados ninguna
storage REAL matriz retiene los muestreos de In; esta matriz debe ser por lo menos tan grande como NumberOfSamples.
MUL dest := sourceA * sourceB; La instrucción MUL multiplica el origen A por el origen B y
Multiply coloca el resultado en el destino.
afectados ninguna
MVM vea MVMT dest := (Dest AND NOT La instrucción MVM copia el origen a un destino y permite
Masked Move (Mask)) que se enmascaren porciones de los datos.
OR (Source AND Mask);
Destination SINT DINT tag una expresión que consiste en tags y/o valores inmediatos separados por operadores.
INT
afectados ninguna
MVMT vea MVM MVMT(MVMT_tag); La instrucción MVMT primero copia el receptor al destino.
Masked Move with La instrucción compara el origen con máscara contra el
Target destino y hace los cambios necesarios del destino. El
receptor y el destino no cambian.
Source DINT valor de entrada que se transfiere al destino según el valor de la máscara.
Mask DINT Máscara de los bits que se transfieren desde el origen al destino. Todos los bits
establecidos en uno hacen que los bits correspondientes se transfieran desde el
origen al destino. Todos los bits establecidos en cero hacen que los bits
correspondientes se transfieran desde el origen al destino.
Target DINT valor de entrada que se transfiere al destino antes de transferir los bits de origen
a través de la máscara.
afectados ninguna
NEG dest := -source; La instrucción NEG cambia el signo del origen y coloca el
Negate resultado en el destino.
afectados ninguna
NEQ IF sourceA <> sourceB THEN La instrucción NEQ determina si el origen A es diferente
Not equal to <statements>; que el origen B.
Source B SINT REAL valor inmediato valor que se prueba contra el origen A
INT cadena tag
DINT
no afectados ninguna
no afectados ninguna
NOT dest := NOT source La instrucción NOT realiza una función NO bit a bit usando
Bitwise NOT los bits en el origen y coloca el resultado en el destino.
afectados ninguna
ONS no disponible IF BOOL_expression AND NOT La instrucción ONS habilita o inhabilita el resto del renglón,
One Shot storage_bit THEN dependiendo del estado del bit de almacenamiento.
<statement>;
END_IF;
storage_bit :=
BOOL_expression;
no afectados ninguna
OR dest := sourceA OR sourceB La instrucción OR realiza una función O bit a bit usando los
Bitwise O bits en los orígenes A y B y coloca el resultado en el
destino.
Source B SINT DINT valor inmediato valor en que se realiza la función O con el origen A
INT tag
afectados ninguna
OSF vea OSFI vea OSFI La instrucción OSF establece o restablece el bit de salida
One Shot Falling dependiendo del estado del bit de almacenamiento.
no afectados ninguna
OSFI vea OSF OSFI(OSFI_tag); La instrucción OSFI establece OutputBit por un ciclo de
One Shot Falling ejecución cuando InputBit cambia de establecido a
with Input restablecido.
no afectados ninguna
OSR vea OSRI vea OSRI La instrucción OSR establece o restablece el bit de salida,
One Shot Rising dependiendo del estado del bit de almacenamiento.
no afectados ninguna
OSRI vea OSR OSRI(OSRI_tag); La instrucción OSRI establece el bit de salida por un ciclo
One Shot Rising de ejecución cuando el bit de entrada cambia de
with Input restablecido a establecido.
no afectados ninguna
OTE no disponible data_bit [:=] La instrucción OTE establece o restablece el bit de datos.
Output Energize BOOL_expression;
no afectados ninguna
OTL no disponible IF BOOL_expression THEN La instrucción OTL establece (enclava) el bit de datos.
Output Latch data_bit := 1;
END_IF;
no afectados ninguna
OTU no disponible IF BOOL_expression THEN La instrucción OTU restablece (desenclava) el bit de datos.
Output Unlatch data_bit := 0;
END_IF;
no afectados ninguna
PID no disponible PID(PID, La instrucción PID controla una variable del proceso, tal
Proportional, ProcessVariable,Tieback, como flujo, presión, temperatura o nivel.
Integral, Derivative ControlVariable,
PIDMasterLoop,
InholdBit,
InHoldValue);
Tieback SINT DINT valor inmediato (opcional) salida de una estación manual/automática que está pasando por alto la salida del controlador
INT REAL tag Introduzca 0 si no desea usar este parámetro.
Control variable SINT DINT tag valor que va al dispositivo de control final (válvula, regulador, etc.)
INT REAL Si usted está usando la banda muerta, la variable Control debe ser REAL o se forzará a 0 cuando el error esté dentro de la
banda muerta.
PID master loop PID estructura (opcional) tag PID para el PID maestro
Introduzca 0 si no desea usar este parámetro.
Inhold bit BOOL tag (opcional) estado actual del bit mantenido desde un canal de salida analógica 1756 para un reinicio sin problemas.
Introduzca 0 si no desea usar este parámetro.
Inhold value SINT DINT tag (opcional) valor de repetición de lectura de datos desde un canal de salida analógica 1756 para un reinicio sin problemas
INT REAL Introduzca 0 si no desea usar este parámetro.
continúa
continúa
continúa
MULTIPLIER DINT multiplicador; divida este valor entre 100,000 para controlar la relación de In con
respecto a Out.
SP REAL valor del punto de ajuste; debe usar las mismas unidades de ingeniería que
Position.
afectados ninguna
no afectados ninguna
RESD no disponible RESD(RESD_tag); La instrucción RESD usa las entradas Set y Reset para
Reset Dominant controlar salidas enclavadas. La entrada Reset tiene
precedencia sobre la entrada Set.
no afectados ninguna
Return parameter BOOL DINT valor inmediato datos de esta rutina que usted desea copiar al parámetro de retorno correspondiente en la instrucción JSR.
SINT REAL tag
INT tag de matriz
estructura
afectados 4 31 • la instrucción JSR tiene menos parámetros de entrada que la instrucción SBR
• la instrucción RET tiene menos parámetros de retorno que la instrucción JSR
• la rutina principal contiene una instrucción RET
ByPass BOOL petición para evitar el algoritmo; Cuando se establece, Out = In.
continúa
RampValue REAL matriz matriz de valor de rampa; introduzca un valor de rampa (tiempo en minutos) para cada segmento (0 a NumberOfSegs-1)
SoakValue REAL matriz matriz de valor de inmersión; introduzca un valor de inmersión para cada segmento (0 a NumberOfSegs-1); La matriz debe
ser por lo menos tan grande como NumberOfSegs.
SoakTime REAL matriz matriz de tiempo de inmersión; introduzca un valor de tiempo de inmersión (tiempo en minutos) para cada segmento (0 a
NumberOfSegs-1)
RTO vea RTOR vea RTOR La instrucción RTO es un temporizador retentivo que
Retentive Timer On acumula tiempo cuando la instrucción está habilitada.
Accum DINT valor inmediato número de mseg que contó el temporizador; el valor inicial es típicamente 0
no afectados ninguna
no afectados 4 51 El valor LEN del tag de cadena es mayor que el tamaño DATA del tag de cadena. Verifique:
• que ninguna instrucción esté escribiendo al miembro LEN del tag de cadena.
• que en el valor LEN, usted introdujo el número de caracteres que la cadena contiene.
4 52 La cadena de salida es mayor que el destino. Cree 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 par el destino.
Input parameter BOOL DINT tag el tag en esta rutina al cual desea copiar el parámetro de entrada correspondiente proveniente de la instrucción JSR.
SINT REAL tag de matriz
INT
estructura
afectados 4 31 • la instrucción JSR tiene menos parámetros de entrada que la instrucción SBR
• la instrucción RET tiene menos parámetros de retorno que la instrucción JSR
• la rutina principal contiene una instrucción RET
SCRV no disponible SCRV(SCRV_tag); La instrucción SCRV realiza una función de rampa con un
S-Curve régimen de curva en S añadido. El régimen de curva en S es
el máximo régimen de cambio del régimen usado para
cambiar salida a entrada mediante rampa.
SEL no disponible no disponible La instrucción SEL usa una entrada digital para seleccionar
Selector una de dos entradas.
SETD no disponible SETD(SETD_tag); La instrucción SETD usa las entradas Set y Reset para
Set Dominant controlar salidas enclavadas. La entrada Set tiene
precedencia sobre la entrada Reset.
no afectados ninguna
SFP no disponible SFP(SFCRoutineName, La instrucción SFP detiene temporalmente una rutina SFC.
Pause SFC TargetState);
SIN dest := SIN(source); La instrucción SIN halla el seno del valor de origen (en
Sine radianes) y almacena el resultado en el destino.
afectados ninguna
Source SINT DINT tag de matriz la matriz en la cual la instrucción realizará la operación
INT REAL
estructura
cadena
SIZE SINT DINT tag tag para guardar el número de elementos en la dimensión especificada de la matriz.
INT REAL
no afectados ninguna
SNEG no disponible SNEG(SNEG_tag); La instrucción SNEG usa una entrada digital para
Selected Negate seleccionar entre el valor de entrada y el negativo del valor
de entrada.
SOC no disponible SOC(SOC_tag); La instrucción SOC está designada para uso en sistemas de
Second-Order control de lazo cerrado de manera similar a la instrucción
Controller PI. La instrucción SOC proporciona un término de ganancia,
un retardo de primer orden y un avance de segundo orden.
Array DINT tag de matriz matriz de secuenciador; especificar el primer elemento de la matriz de secuenciador
no use CONTROL.POS en el subíndice
Control CONTROL tag estructura de control para la operación; normalmente, use el mismo CONTROL que para las instrucciones SQO y SQL
Length DINT valor inmediato número de elementos en la matriz (tabla de secuenciador) que se va a comparar
Position DINT valor inmediato posición actual en la matriz; el valor inicial es típicamente 0
no afectados ninguna
Array DINT tag de matriz matriz de secuenciador; especificar el primer elemento de la matriz de secuenciador
no use CONTROL.POS en el subíndice
Source SINT DINT tag datos de entrada que se van a cargar en la matriz de secuenciador
INT valor inmediato
Control CONTROL tag estructura de control para la operación; normalmente, use el mismo CONTROL que para las instrucciones SQI y SQO
Length DINT valor inmediato número de elementos en la matriz (tabla de secuenciador) que se va a cargar
Position DINT valor inmediato posición actual en la matriz; el valor inicial es típicamente 0
Array DINT tag de matriz matriz de secuenciador; especificar el primer elemento de la matriz de secuenciador
no use CONTROL.POS en el subíndice
Control CONTROL tag estructura de control para la operación; normalmente, use el mismo CONTROL que para las instrucciones SQI y SQL
Length DINT valor inmediato número de elementos en la matriz (tabla de secuenciador) que se va a establecer como salida
Position DINT valor inmediato posición actual en la matriz; el valor inicial es típicamente 0
no afectados ninguna
SQR dest := SQRT(source); La instrucción SQR calcula la raíz cuadrada del origen y
Square Root coloca el resultado en el destino.
afectados ninguna
Array SINT DINT tag de matriz matriz que se clasifica; especificar el primer elemento del grupo de elementos que se clasifica
INT REAL no use CONTROL.POS en el subíndice
Position DINT valor inmediato elemento actual en el matriz; el valor inicial es típicamente 0
afectados Tipo 4 Código 20 • La instrucción intenta obtener acceso a los datos fuera de los límites de la matriz.
• La dimensión que se va a variar no existe para el matriz especificado
SRTP no disponible SRTP(SRTP_tag); La instrucción SRTP toma la salida 0-100% de un lazo PID y
Split Range activa los contactos de salida digital de calentamiento y
Proportional enfriamiento con un pulso periódico. Esta instrucción
controla aplicaciones tales como control de temperatura de
barril en máquinas de extrusión.
Instance name na nombre nombre de objeto específico cuando el objeto requiere un nombre
Attribute Name na nombre atributo del objeto; el tipo de datos depende del atributo que usted selecciona
Source SINT DINT tag el tag que contiene los datos que desea copiar al atributo
INT REAL
Tipo 4 Código 7 el destino GSV no es suficientemente grande para retener los datos solicitados
Array SINT DINT tag de matriz hallar la desviación estándar de los valores en este matriz
INT REAL especificar el primer elemento del grupo de elementos que se usan para calcular la desviación estándar
no use CONTROL.POS en el subíndice
Length DINT valor inmediato el número de elementos de la matriz que se usan para calcular el desviación estándar
Position DINT valor inmediato elemento actual en el matriz; el valor inicial es típicamente 0
afectados Tipo 4 Código 20 La dimensión que se va a variar no existe para el matriz especificado
Destination SINT DINT tag el tag en que se almacena el valor de número entero; Si el valor de origen es un número de punto flotante (coma flotante), la
INT REAL instrucción convierte solamente la parte no fraccionaria del número (independientemente del tipo de datos de destino).
afectados Tipo 4 Código 51 El valor LEN del tag de cadena es mayor que el tamaño DATA del tag de cadena. Verifique:
• que ninguna instrucción esté escribiendo al miembro LEN del tag de cadena.
• que en el valor LEN, usted introdujo el número de caracteres que la cadena contiene.
Tipo 4 Código 53 El número de salida se encuentra fuera de los límites del tipo de datos de destino. Haga esto:
• reduzca el tamaño del valor ASCII
• use un tipo de datos mayor para el destino
afectados Tipo 4 Código 51 El valor LEN del tag de cadena es mayor que el tamaño DATA del tag de cadena. Verifique:
• que ninguna instrucción esté escribiendo al miembro LEN del tag de cadena.
• que en el valor LEN, usted introdujo el número de caracteres que la cadena contiene.
Tipo 4 Código 53 El número de salida se encuentra fuera de los límites del tipo de datos de destino. Haga esto:
• reduzca el tamaño del valor ASCII
• use un tipo de datos mayor para el destino
SUB dest := sourceA - sourceB; La instrucción SUB resta el origen B del origen A y coloca el
Subtract resultado en el destino.
Source B SINT DINT valor inmediato valor que se resta del origen A
INT REAL tag
afectados ninguna
Source INT REAL tag el tag que contiene los bytes que desea reacomodar
DINT
Order Mode na REVERSE la manera en que usted desea cambiar el orden de los bytes
WORD
HIGH/LOW
Destination INT REAL tag tag para almacenar los bytes en el nuevo orden
DINT
no afectados ninguna
TAN dest := TAN(source); La instrucción TAN halla la tangente del valor de origen (en
Tangent radianes) y almacena el resultado en el destino.
afectados ninguna
no afectados ninguna
TOF vea TOFR vea TOFR La instrucción TOF es un temporizador no retentivo que
Timer Off Delay acumula el tiempo cuando la instrucción está habilitada (la
condición de entrada del renglón es falsa).
Accum DINT valor inmediato número de mseg que contó el temporizador; el valor inicial es típicamente 0
no afectados ninguna
TON vea TONR vea TONR La instrucción TON es un temporizador no retentivo que
Timer On Delay acumula el tiempo cuando la instrucción está habilitada (la
condición de entrada del renglón es verdadera).
Accum DINT valor inmediato número de mseg que contó el temporizador; el valor inicial es típicamente 0
no afectados ninguna
continúa
TRN dest := TRUNC(source); La instrucción TRN retira (trunca) la parte fraccionaria del
Truncate origen y almacena el resultado en el destino.
afectados ninguna
UID no disponible UID(); La instrucción UID y la instrucción UIE funcionan juntas para
User Interrupt evitar que otras tareas interrumpan una cantidad pequeña
Disable UIE(); de renglones críticos.
UPDN no disponible UPDN(UPDN_tag); La instrucción UPDN suma y resta dos entradas a un valor
Up/Down acumulado.
Accumulator
Source cadena tag el tag que contiene los caracteres que usted desea convertir a mayúsculas
no afectados ninguna
XIC no disponible IF data_bit THEN La instrucción XIC examina el bit de datos para ver si está
Examine If Closed <statement>; establecido.
END_IF;
no afectados ninguna
XIO no disponible IF NOT data_bit THEN La instrucción XIO examina el bit de datos para ver si está
Examine If Open <statement>; restablecido.
END_IF;
no afectados ninguna
XOR dest := sourceA XOR sourceB La instrucción XOR realiza una función O exclusivo bit a bit
Bitwise Exclusive usando los bits en los orígenes A y B y coloca el resultado
OR en el destino.
Source B SINT DINT valor inmediato valor en que se realiza la función XOR con el origen A
INT tag
afectados ninguna
XPY dest := sourceX ** sourceY; La instrucción XPY eleva el origen A (X) a la potencia del
X to the Power of Y origen B (Y) y almacena el resultado en el destino.
Estados Unidos Comuníquese con el distribuidor. Usted debe proporcionar un número de caso de soporte al cliente (llame al número de teléfono
proporcionado anteriormente para obtenerlo) a su distribuidor para completar el proceso de devolución.
Fuera de los Estados Por favor comuníquese con el representante regional de Rockwell Automation para obtener información sobre el procedimiento de
Unidos devolución.