MicroLogix 1100_3
-
Upload
alfredokpu -
Category
Documents
-
view
61 -
download
1
description
Transcript of MicroLogix 1100_3
MicroLogix 1100
Protocolo de comunicación: Ethernet/IP
a) Asignar IP a nuestra PC que en este caso tiene un sistema operativo Windows
XP.
Pasos:
1.- Primeramente nos dirigimos a inicio y damos clic, se desplegará un menú donde
aparecerá configuración y seleccionamos con un clic conexiones de red, vea figura
1; se desplegara una ventana con el nombre de las conexiones de red que existen
figura 2, nos posicionamos en el icono, damos clic secundario y nos dirigimos en
donde dice propiedades.
Figura 1
Figura 2
2.- Se desplegará una nueva ventana la cual lleva por nombre propiedades de
conexión, seleccionamos la opción donde dice Protocolo Internet (TCP/IP) y a
continuación oprimimos propiedades.
Figura 3
3.-Nos saldrá nuevamente otra venta donde finalmente le asignamos la IP a nuestra
PC, que en este caso tiene dirección IP: 192.168.30.25 y una Máscara de subred que
se genera por default con la numeración: 255.255.255.0, finalmente damos aceptar
Figura 4
b) Asignar IP a nuestro PLC MicroLogix 1100
Pasos:
1.- Nos dirigimos a inicio y damos clic, se desplegará un menú donde aparecerá
Programas, vamos a la carpeta de Rockwell Software, ahora pasamos a la carpeta
BOOTP-DHCP Server y damos clic en BOOTP-DHCP Server como se muestra en la
figura 5.
Figura 5
2.- Se desplegara una ventana la cual lleva por nombre BOOTP/DCHP, como se
puede observar en la figura 6, en la pestaña Ethernet Addres (MAC), que es la MAC
que tiene nuestro PLC MicroLogix 1100, damos doble clic y nos desplegara otra
ventana que se llama New Entry, ver figura 7, aquí es el lugar donde le vamos asignar
una IP al PLC, es importante que esta IP tenga la misma estructura que la de la PC a
excepción de la última cifra esta debe de ser diferente, recordemos que la dirección IP
de nuestra PC es: 192.168.30.25, así pues la IP de PLC entonces será 192.168.30.15,
como se muestra en la figura 8.
Figura 6
Figura 7
Figura 8
3.- Presionamos OK en la ventana New Entry, y ahora observamos que en la ventana
BOOTP/DHCP Server en la parte de Relation List, en las pestañas Type, IP Address,
aparece BOOTP y la dirección 192.168.30.15 que fue la q le asignamos al PLC esto
quiere decir que se le asigno una IP satisfactoriamente al PLC, ver figura 9 .
Figura 9
Instrucciones de bits (XIC, XIO, OTE, OTL, OTU, ONS, OSR, OSF)
Introducción Use las instrucciones de bits (tipo relé) para monitorear y controlar el estado de los bits
Si desea Use esta instrucción Disponible en estos lenguajes
Habilitar salidas cuando se establece un bit
XIC lógica de escalera de relés texto estructurado(1)
Habilitar salidas cuando se borra un bit.
XIO lógica de escalera de relés texto estructurado(1)
establecer un bit OTE lógica de escalera de relés texto estructurado(1)
establecer un bit (retentivo)
OTL lógica de escalera de relés texto estructurado(1)
borrar un bit (retentivo) OTU lógica de escalera de relés texto estructurado(1)
habilitar salidas por un escán cada vez que el renglón se hace verdadero
ONS lógica de escalera de relés texto estructurado(1)
establecer un bit por un escán cada vez que el renglón se hace verdadero
OSR lógica de escalera de relés
establecer un bit por un escán cada vez que el renglón se hace falso
OSF lógica de escalera de relés
(1) No hay una instrucción equivalente en texto estructurado. Use otra programación en texto estructurado para lograr el mismo resultado. Vea la descripción de la instrucción
Examinar si está cerrado (XIC)
La instrucción XIC examina el bit de datos para determinar si está establecido.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción
bit de datos BOOL Tag bit que se va a probar
Texto estructurado
El texto estructurado no tiene una instrucción XIC, pero usted puede lograr los mismos resultados usando una construcción IF...THEN. IF data_bit THEN <statement>; END_IF;
Descripción La instrucción XIC examina el bit de datos para determinar si está establecido
Identificación de estado aritmético:
No afectados
Condiciones de fallo:
ninguna
Ejecución
Condición Acción de lógica de escalera de relé preescán La condición de salida de renglón se establece
como falsa
condición de entrada de renglón es falsa La condición de salida de renglón se establece como falsa.
post-escán La condición de salida de renglón se establece como falsa.
Condición de entrada de
renglón es verdadera
Examinar bit
de datos
Bit de datos =0
La condición de salida de
renglón se establece como
falsa
La condición de salida de
renglón se conoce como
verdadera
fin
Bit de datos =1
Ejemplo 1: Si se establece limit_switch_1, esto habilita la siguiente instrucción (la condición de salida de renglón es verdadera). Lógica de escalera de relés
Texto estructurado IF limit_switch THEN
<statement>;
END_IF;
Examinar si está abierto (XIO)
La instrucción XIO examina el bit de datos para determinar si está borrado.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción
bit de datos BOOL Tag bit que se va a probar
Texto estructurado
El texto estructurado no tiene una instrucción XIO, pero usted puede lograr los mismos resultados usando una construcción IF...THEN. IF NOT data_bit THEN <statement>; END_IF;
Descripción La instrucción XIO examina el bit de datos para determinar si está borrado
Identificación de estado aritmético:
No afectados
Condiciones de fallo:
Ninguna
Ejecución
Condición Acción de lógica de escalera de relé preescán La condición de salida de renglón se establece
como falsa
condición de entrada de renglón es falsa La condición de salida de renglón se establece como falsa.
Condición de entrada de
renglón es verdadera
Examinar bit
de datos
Bit de datos =0
La condición de salida de
renglón se establece como
verdadera
La condición de salida de
renglón se conoce como
falsa
fin
Bit de datos =1
post-escán La condición de salida de renglón se establece como falsa.
Ejemplo 1: Si se borra limit_switch_2, esto habilita la siguiente instrucción (la condición de salida de renglón es verdadera). Lógica de escalera de relés
Texto estructurado IF NOT limit_switch_2 THEN
<statement>;
END_IF;
Ectivacion de salida (OTE)
La instrucción OTE establece o barra el bit de datos.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción
bit de datos BOOL Tag bit que se va a establecer o borrar
Texto estructurado
El texto estructurado no tiene una instrucción OTE, pero usted puede
lograr los mismos resultados usando una asignación no retentiva.
data_bit [:=] BOOL_expression;
Descripción Cuando se habilita la instrucción OTE, el controlador establece el bit
de datos. Cuando se inhabilita la instrucción OTE, el controlador
borra el bit de datos
Identificación de estado aritmético:
No afectados
Condiciones de fallo:
Ninguna
Ejecución
Condición Acción de lógica de escalera de relé preescán El bit de datos se borra.
La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa El bit de datos se borra. La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es verdadera
El bit de datos se establece. La condición de salida de renglón se establece como verdadera
post-escán El bit de datos se borra. La condición de salida de renglón se establece como falsa.
Condición de entrada de
renglón es verdadera
bit que se va
a establecer
o borrar
Examinar bit
de datos
Bit de datos =0
La condición de salida de
renglón se establece como
falsa
La condición de salida de
renglón se conoce como
verdadera
fin
Bit de datos =1
El bit de datos se
borra.
Bit de datos =0
Bit de datos =1
El bit de datos se borra. La condición de salida
de renglón se establece
como falsa.
El bit de datos se establece. La condición de salida
de renglón se establece
como verdadera.
Ejemplo: Cuando se establece switch, la instrucción OTE establece (activa) light_1. Cuando se borra
switch, la instrucción OTE borra (desactiva) light_1.
Lógica de escalera de relés
Texto estructurado light_1 [:=] switch;
Ectivacion de salida (OTL)
La instrucción OTL establece (enclava) el bit de datos.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción
bit de datos BOOL Tag bit que se va a establecer
Texto estructurado
El texto estructurado no tiene una instrucción OTL, pero usted puede
lograr los mismos resultados usando una construcción IF...THEN y
una asignación. IF BOOL_expression THEN
data_bit := 1;
END_IF;
Descripción Cuando se habilita, la instrucción OTL establece el bit de datos. El
bit de datos permanece establecido hasta que es borrado,
generalmente por una instrucción OTU. Cuando se inhabilita, la
instrucción OTL no cambia el estado del bit de datos
Identificación de estado aritmético:
No afectados
Condiciones de fallo:
Ninguna
Ejecución
Condición Acción de lógica de escalera de relé preescán El bit de datos no se modifica.
La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa El bit de datos no se modifica. La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es verdadera
El bit de datos se establece. La condición de salida de renglón se establece como verdadera
post-escán . El bit de datos no se modifica. La condición de salida de renglón se establece como falsa.
Condición de entrada de
renglón es verdadera
bit que se va
a establecer
Examinar bit
de datos
Bit de datos =0
La condición de salida de
renglón se establece como
falsa
La condición de salida de
renglón se conoce como
verdadera
fin
Bit de datos =1
El bit de datos no
se modifica.
Bit de datos =0
Bit de datos =1
El bit de datos no se modifica. La condición de salida de
renglón se establece como
falsa.
El bit de datos se establece. La condición de salida
de renglón se establece
como verdadera.
Ejemplo: Cuando se habilita, la instrucción OTL establece light_2. Este bit de datos
permanece establecido hasta que es borrado, generalmente por una instrucción OTU.
Lógica de escalera de relés
Texto estructurado IF BOOL_expression THEN
light_2 := 1;
END_IF;
Desenclavamiento de salida (OTU)
La instrucción OTU borra (desenclava) el bit de datos.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción
bit de datos BOOL Tag bit que se va a borrar
Texto estructurado
El texto estructurado no tiene una instrucción OTU, pero usted
puedelograr los mismos resultados usando una construcción
IF...THEN y una asignación. IF BOOL_expression THEN
data_bit := 0;
END_IF;
Descripción Cuando se habilita, la instrucción OTU borra el bit de datos. Cuando
se inhabilita, la instrucción OTU no cambia el estado del bit de datos
Identificación de estado aritmético:
No afectados
Condiciones de fallo:
Ninguna
Ejecución
Condición Acción de lógica de escalera de relé preescán El bit de datos no se modifica.
La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa El bit de datos no se modifica. La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es verdadera
El bit de datos se borra. La condición de salida de renglón se establece como verdadera
post-escán . El bit de datos no se modifica. La condición de salida de renglón se establece como falsa.
bit que se va
a borrar
Examinar bit
de datos
Bit de datos =0
La condición de salida de
renglón se establece como
falsa
La condición de salida de
renglón se conoce como
verdadera
fin
Bit de datos =1
El bit de datos no
se modifica.
Bit de datos =0
Bit de datos =1
El bit de datos no se modifica. La condición de salida de
renglón se establece como
falsa.
El bit de datos se establece. La condición de salida
de renglón se establece
como verdadera.
Condición de entrada de
renglón es verdadera
Ejemplo: Cuando se habilita, la instrucción OTU borra light_2.
Lógica de escalera de relés
Texto estructurado IF BOOL_expression THEN
light_2 := 0;
END_IF;
Un impulso (ONS) La instrucción ONS habilita o inhabilita el resto del renglón,
dependiendo del estado del bit de almacenamiento
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción storage bit BOOL Tag bit de almacenamiento
interno almacena la condición de entrada del renglón desde la última vez que se ejecutó la instrucción
Texto estructurado
El texto estructurado no tiene una instrucción ONS, pero usted
puede lograr los mismos resultados usando una construcción
IF...THEN. IF BOOL_expression AND NOT storage_bit THEN
<statement>;
END_IF;
storage_bit := BOOL_expression;
Descripción Cuando se habilita y el bit de almacenamiento se borra, la
instrucción ONS habilita el resto del renglón. Cuando se inhabilita o
cuando el bit de almacenamiento se establece, la instrucción ONS
inhabilita el resto del renglón.
Identificación de estado aritmético:
No afectados
Condiciones de fallo:
Ninguna
Ejecución
Condición Acción de lógica de escalera de relé preescán El bit de almacenamiento se establece para evitar
una activación no válida durante el primer escán. La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa El bit de almacenamiento se borra. La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es verdadera
post-escán El bit de almacenamiento se borra. La condición de salida de renglón se establece como falsa.
Examinar el bit de
almacenamiento
el bit de almacenamiento
se establece la condición
de salida de renglón se
establece como
verdadera
El bit de almacenamiento
permanece establecido la
condición de salida de
renglón se establece como
falsa
fin
bit de
almacenamiento=0
bit de
almacenamiento=1
Ejemplo: Normalmente una instrucción ONS está precedida por una instrucción de entrada, porque la
instrucción ONS se escanea cuando ésta se habilita y cuando se inhabilita para que funcione
correctamente. Una vez que la instrucción ONS se habilita, la condición de entrada de renglón
debe borrarse, o el bit de almacenamiento debe borrarse para que la instrucción ONS se habilite
nuevamente.
En todo escán en que limit_switch_1 se borra o storage_1 se establece, este renglón no tiene
efecto. En todo escán en que limit_switch_1 se establece y storage_1 se borra, la instrucción
ONS establece storage_1 y la instrucción ADD incrementa sum en 1.
Siempre que limit_switch_1 permanezca establecido, sum permanece con el mismo valor.
limit_switch_1 debe cambiar de borrado a establecido nuevamente para que se incremente sum
nuevamente.
Texto estructurado IF limit_switch_1 AND NOT storage_1 THEN
sum := sum + 1;
END_IF;
storage_1 := limit_switch_1;
Un impulso en flanco ascendente (OSR)
La instrucción OSR establece o borra el bit de salida, dependiendo
del estado del bit de almacenamiento.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción storage bit BOOL tag bit de almacenamiento
interno almacena la condición de entrada del renglón desde la última vez que se ejecutó la instrucción
output bit BOOL tag bit que se va a establecer
Descripción Cuando se habilita y el bit de almacenamiento está borrado, la
instrucción OSR establece el bit de salida. Cuando se habilita y el bit
de almacenamiento está establecido o cuando se inhabilita, la
instrucción OSR borra el bit de salida.
Identificación de estado aritmético:
No afectados
Condiciones de fallo:
Ninguna
Ejecución
Condición Acción de lógica de escalera de relé preescán El bit de almacenamiento se establece para evitar
una activación no válida durante el primer escán. El bit de salida se borra. La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa El bit de almacenamiento se borra. El bit de salida no se modifica. La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es verdadera
post-escán El bit de almacenamiento se borra. La condición de salida de renglón se establece como falsa.
Ejemplo: Cada vez que limit_switch_1 cambia de borrado a establecido, la instrucción OSR establece
output_bit_1 y la instrucción ADD incrementa sum en 5. Siempre que limit_switch_1
permanezca establecido, sum permanece con el mismo valor. El limit_switch_1 debe cambiar de
borrado a establecido nuevamente para que sum se incremente nuevamente. Usted puede usar
output_bit_1 en varios renglones para activar otras operaciones.
Examinar el bit de
almacenamiento
el bit de almacenamiento se
establece
el bit de salida se establece la
condición de salida de renglón
se establece como
verdadera
el bit de almacenamiento
permanece establecido el
bit de salida se borra la
condición de salida de
renglón se establece como
verdadera
fin
bit de
almacenamiento=0
bit de
almacenamiento=1
Un impulso en flanco descendente (OSR)
La instrucción OSF establece o borra el bit de salida dependiendo
del estado del bit de almacenamiento.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción storage bit BOOL tag bit de almacenamiento
interno almacena la condición de entrada del renglón desde la última vez que se ejecutó la instrucción
output bit BOOL tag bit que se va a establecer
Descripción Cuando se inhabilita y el bit de almacenamiento está establecido, la
instrucción OSF establece el bit de salida. Cuando se inhabilita y el
bit de almacenamiento está borrado o cuando se habilita, la
instrucción OSF borra el bit de salida.
Identificación de estado aritmético:
No afectados
Condiciones de fallo:
Ninguna
Ejecución
Condición Acción de lógica de escalera de relé preescán El bit de almacenamiento se borra para evitar una
activación no válida durante el primer escán. El bit de salida se borra. La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
condición de entrada de renglón es verdadera
El bit de almacenamiento se establece. El bit de salida se borra. La condición de salida de renglón se establece como verdadera.
post-escán Nótese que la condición de entrada del renglón es falsa arriba.
Examinar el bit de
almacenamiento
el bit de almacenamiento
permanece borrado el bit de
salida se borra la condición de
salida de renglón se establece
como falsa
el bit de almacenamiento
se borra el bit de salida se
establece la condición de
salida de renglón se
establece como falsa
fin
bit de
almacenamiento=0
bit de
almacenamiento=1
Ejemplo: Cada vez que limit_switch_1 cambia de establecido a borrado, la instrucción OSF establece
output_bit_2 y la instrucción ADD incrementa sum en 5. Siempre que limit_switch_1
permanezca borrado, sum permanece con el mismo valor. El limit_switch_1 debe cambiar de
establecido a borrado nuevamente para que sum se incremente nuevamente. Usted puede usar
output_bit_2 en varios renglones para activar otras operaciones.
Instrucciones de temporizador y contador (TON, TOF, RTO, CTU, CTD, RES)
Introducción Los temporizadores y contadores controlan operaciones en
base a tiempo o número de eventos.
Si desea Use esta instrucción Disponible en estos lenguajes
establecer el tiempo durante el cual un temporizador está habilitado
TON lógica de escalera de relés
establecer el tiempo durante el cual un temporizador está inhabilitado
TOF lógica de escalera de relés
acumular tiempo RTO lógica de escalera de relés
conteo progresivo CTU lógica de escalera de relés
conteo regresivo CTD lógica de escalera de relés
restablecer un temporizador o un contador
RES lógica de escalera de relés
Temporizador de retardo a la conexión (TON)
La instrucción TON es un temporizador no retentivo que acumula el
tiempo cuando la instrucción está habilitada (la condición de entrada
del renglón es verdadera)..
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Timer TIMER tag Estructura de
temporizador
Preset DINT inmediato bit que se va a establecer
Acum DINT inmediato el tiempo en ms contado por el temporizador el valor inicial es típicamente 0
Estructura TIMER
Mnemónico Tipo de datos Descripción
.EN BOOL El bit de habilitación indica que la instrucción TON está habilitada
.TT BOOL El bit de temporización indica que se está ejecutando una operación de temporización
.DN BOOL El bit de efectuado se establece cuando .ACC ≥.PRE.
.PRE DINT El valor de preajuste especifica el valor (en unidades de 1 ms) al que debe llegar el valor acumulado para que la 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 TON.
Descripción:
La instrucción TON acumula tiempo hasta que:
la instrucción TON se inhabilita
.ACC ≥.PRE
La base de tiempo siempre es 1 ms. Por ejemplo, en un temporizador
de 2 segundos, introduzca 2000 como valor .PRE.
Cuando se inhabilita la instrucción TON, se borra el valor .ACC
Un temporizador se ejecuta restando la hora de su último escán de la hora actual:
ACC = ACC + (current_time - last_time_scanned)
Después de que se actualiza el ACC, el temporizador establece
last_time_scanned = current_time. Esto deja el temporizador listo para el siguiente
escán.
Importante:
Asegúrese de escanear el temporizador por lo menos cada 69 minutos mientras
se ejecuta.
De no hacerse, el valor ACC no será correcto. El valor last_time_scanned tiene un rango de hasta 69 minutos. El cálculo
del temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso de 69 minutos. Si esto sucede, el valor ACC no será correcto. Durante la ejecución de un temporizador, escanéelo dentro de un lapso no mayor de 69 minutos si lo coloca en una:
subrutina
sección de código comprendida entre las instrucciones JMP y LBL
diagrama de función secuencial (SFC)
evento o tarea periódica
rutina de estado de una fase
Indicadores de estado aritmético:
no afectados
Condiciones de fallo: Ocurrirá un fallo mayor si
Tipo de fallo Código de fallo
.PRE < 0 4 34
.ACC<0 4 34
Ejecución
Condición Acción de lógica de escalera de relés
Preescan Los bits .EN, .TT y .DN se borran. El valor .ACC se borra. La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
Los bits .EN, .TT y .DN se borran. El valor .ACC se borra. La condición de salida de renglón se establece como falsa.
La condición de entrada de renglón es verdadera
Examine el bit .DN
Examine el bit
.EN
El bit .TT se establece
.ACC=.ACC+(current_time-
last_time)
Last_time=current_time
El valor .ACC
retorna al valor
inicial
.ACC=2147483647
El bit .EN se establece
El bit .TT se establece
Last_time=current_time
Examine .ACC
.DN se establece
el bit .TT se borra
el bit .EN se
establece
La condición de
salida se
establece como
verdadera
Fin
Bit .DN=1
Bit .DN=0
Bit .EN=0
.ACC≥
.PRE
.ACC <
.PRE
no
si
Bit .EN=1
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo: Cuando limit_switch_1 se establece, light_2 se enciende por 180 ms.
(timer_1 está temporizando). Cuando timer_1.acc llega a 180, light_2 se apaga y light_3 se
enciende. Light_3 permanece encendida hasta que se inhabilita la instrucción TON. Si
limit_switch_1 se borra mientras que timer_1 está temporizando light_2 se apaga.
Temporizador de retardo a la desconexión (TOF)
La instrucción TOF es un temporizador no retentivo que acumula el
tiempo cuando la instrucción está habilitada (la condición de entrada
del renglón es falsa).
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Timer TIMER tag Estructura de
temporizador
Preset DINT inmediato Periodo de retardo (acumulación del tiempo)
Acum DINT inmediato el tiempo en ms que conto el temporizador, el valor inicial es típicamente 0
Estructura TIMER
Mnemónico Tipo de datos Descripción
.EN BOOL El bit de habilitación indica que la instrucción TOF está habilitada.
.TT BOOL El bit de temporización indica que se está ejecutando una operación de temporización.
.DN BOOL El bit de efectuado se borra cuando .ACC ≥.PRE.
.PRE DINT El valor de preajuste especifica el valor (en unidades de 1 ms) al que debe llegar el valor acumulado para que la instrucción borre el bit .DN.
.ACC DINT El valor acumulado especifica el número de milisegundos que han transcurrido desde que se habilitó la instrucción TOF.
Descripción:
La instrucción TOF acumula tiempo hasta que:
la instrucción TOF se inhabilita
.ACC .PRE
La base de tiempo siempre es 1 ms. Por ejemplo, en un temporizador
de 2 segundos, introduzca 2000 para el valor .PRE.
Cuando se inhabilita la instrucción TOF, se borra el valor .ACC.
Un temporizador se ejecuta restando la hora de su último escán de la hora actual:
ACC = ACC + (current_time - last_time_scanned)
Después de que se actualiza el ACC, el temporizador establece
last_time_scanned = current_time. Esto deja el temporizador listo para el siguiente
escán.
Importante:
Asegúrese de escanear el temporizador por lo menos cada 69 minutos mientras
se ejecuta.
De no hacerse, el valor ACC no será correcto.
El valor last_time_scanned tiene un rango de hasta 69 minutos. El cálculo del
temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso
de 69 minutos. Si esto sucede, el valor ACC no será correcto.
Durante la ejecución de un temporizador, escanéelo dentro de un lapso no mayor de
69 minutos si lo coloca en una:
• Subrutina
• Sección de código comprendida entre las instrucciones JMP y LBL
• Diagrama de función secuencial (SFC)
• Evento o tarea periódica
• Rutina de estado de una fase
Indicadores de estado aritmético:
no afectados
Condiciones de fallo:
Ocurrirá un fallo mayor si
Tipo de fallo Código de fallo
.PRE < 0 4 34
.ACC<0 4 34
Ejecución
Condición Acción de lógica de escalera de relés
Preescan Los bits .EN, .TT y .DN se borran. El valor .ACC se establece para coincidir con el valor .PRE. La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
Examine el bit .DN
Examine el bit
.EN
El bit .TT se establece
.ACC=.ACC+(current_time-
last_time)
last_time=current_time
El valor .ACC
retorna al valor
inicial
.ACC=2147483647
El bit .EN se establece
El bit .TT se establece
last_time=current_time
Examine .ACC
.DN se borra
el bit .TT se borra
el bit .EN se borra
La condicion de
salida de renglon
se establece como
falsa
Fin
Bit .DN=0
Bit .DN=1
Bit .EN=1
.ACC≥ .PRE
.ACC < .PRE
no
si
Bit .EN=0
a condición de entrada de renglón es verdadera
Los bits .EN, .TT y .DN se establecen. El valor .ACC se borra. La condición de salida de renglón se establece como verdadera.
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo: Cuando limit_switch_2 se borra, light_2 se enciende durante 180 ms (timer_2 está
temporizando). Cuando timer_2.acc llega a 180, light_2 se apaga y light_3 se enciende. Light_3
permanece encendida hasta que se habilita la instrucción TOF. Si limit_switch_2 se establece
mientras que timer_2 está temporizando light_2 se apaga.
Temporizador retentivo activado (RTO)
La instrucción RTO es un temporizador retentivo que acumula
tiempo cuando la instrucción está habilitada.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Timer TIMER tag Estructura de
temporizador
Preset DINT inmediato Periodo de retardo (acumulación del tiempo)
Acum DINT inmediato el tiempo en ms que conto el temporizador, el valor inicial es típicamente 0
Estructura TIMER
Mnemónico Tipo de datos Descripción
.EN BOOL El bit de habilitación indica que la instrucción RTO está habilitada.
.TT BOOL El bit de temporización indica que se está ejecutando una operación de temporización.
.DN BOOL El bit de efectuado indica que .ACC ≥.PRE.
.PRE DINT El valor de preajuste especifica el valor (en unidades de 1 ms) al que debe llegar el valor acumulado para que la 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 RTO.
Descripción:
La instrucción RTO acumula tiempo hasta que se inhabilita. Cuando
la instrucción RTO se inhabilita, retiene su valor .ACC. Usted debe
borrar el valor .ACC, normalmente con una instrucción RES que
referencia la misma estructura TIMER.
La base de tiempo siempre es 1 ms. Por ejemplo, en un temporizador de
2 segundos, introduzca 2000 para el valor .PRE.
Un temporizador se ejecuta restando la hora de su último escán de la hora actual:
ACC = ACC + (current_time - last_time_scanned)
Después de que se actualiza el ACC, el temporizador establece
last_time_scanned = current_time. Esto deja el temporizador listo para el siguiente
escán.
Importante:
Asegúrese de escanear el temporizador por lo menos cada 69 minutos mientras se ejecuta. De no hacerse, el valor ACC no será correcto.
El valor last_time_scanned tiene un rango de hasta 69 minutos. El cálculo
del temporizador regresa al valor inicial si usted no escanea el temporizador en un lapso de 69 minutos. Si esto sucede, el valor ACC no será correcto. Durante la ejecución de un temporizador, escanéelo dentro de un lapso no mayor de 69 minutos si lo coloca en una:
subrutina
sección de código comprendida entre las instrucciones JMP y LBL
diagrama de función secuencial (SFC)
evento o tarea periódica
rutina de estado de una fase
Indicadores de estado aritmético:
no afectados
Condiciones de fallo:
Ocurrirá un fallo mayor si
Tipo de fallo Código de fallo
.PRE < 0 4 34
.ACC<0 4 34
Ejecución
Condición Acción de lógica de escalera de relés
Preescan Los bits .EN, .TT y .DN se borran. El valor .ACC no se modifica. La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
Los bits .EN y .TT se borran. El bit .DN no se modifica. El valor .ACC no se modifica. La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
Examine el bit .DN
Examine el bit
.EN
El bit .TT se establece
.ACC=.ACC+(current_time-last_time)
last_time=current_time
El valor .ACC
retorna al valor
inicial
.ACC=2147483647
El bit .EN se establece
El bit .TT se establece
last_time=current_time
Examine .ACC
.DN se borra
el bit .TT se borra
el bit .EN se borra
La condición de
salida de renglón
se establece como
verdadera
Fin
Bit .DN=1
Bit .DN=0
Bit .EN=0
.ACC≥ .PRE
.ACC < .PRE
no
si
Bit .EN=1
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo: Cuando limit_switch_1 se establece, light_1 se enciende por 180 ms(timer_2 está
temporizando). Cuando timer_3.acc llega a 180, light_1 se apaga y light_2 se enciende. Light_2
permanece hasta que timer_3 se restablece. Si limit_switch_2 se borra mientras que timer_3 está
temporizando light_1 permanece encendida. Cuando limit_switch_2 se establece, la instrucción
RES restablece timer_3 (borra los bits de estado y el valor .ACC).
Conteo progresivo (CTU)
La instrucción CTU cuenta progresivamente.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Counter COUNTER tag Estructura de contado
Preset DINT inmediato valor superior hasta donde contar
Acum DINT inmediato número de veces que contó el contador el valor inicial es típicamente 0
Estructura COUNTER
Mnemónico Tipo de datos Descripción
.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, por lo que el contador regresa a -2,147,483,648 y comienza nuevamente el conteo progresivo
.UN BOOL El bit de underflow indica que el contador excedió el límite inferior de -2,147,483,648, por lo que el contador regresa a 2,147,483,647 y comienza nuevamente el conteo regresivo.
.PRE DINT El valor de preajuste especifica el valor al que debe llegar el valor acumulado para que la instrucción establezca el bit .DN.
.ACC DINT El valor acumulado especifica el número de transiciones que contó la instrucción.
Descripción:
Cuando se habilita y el bit .CU se borra, la instrucción CTU
incrementa el contador en uno. Cuando se habilita y el bit .CU se
establece, o cuando se inhabilita, la instrucción CTU retiene su valor
.ACC.
El valor acumulado continúa incrementándose, incluso después de que se establece el bit .DN.
Para borrar el valor acumulado, use una instrucción RES que referencie la estructura de
contador o escriba 0 en el valor acumulado.
Indicadores de estado aritmético:
no afectados
Condiciones de fallo: ninguna
Ejecución
Condición Acción de lógica de escalera de relés
Preescan El bit .CU se establece para evitar incrementos no válidos durante el primer escán del programa. La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
El bit .EN se borra. La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
Examine el bit
.CU
Examine el bit
.UN
El bit . CU se
establece
.ACC=.ACC+1
El valor .ACC
retorna al valor
inicial
Examine el bit
.OV
Examine .ACC
Examine el bit
.UN
El bit .OV se
establece
El bit . DN se
borra
El bit .UN se borra
El bit .DN se borra
El bit .OV se borra
El bit .DN se
establece
La condicion de
salida de renglon
se establece como
verdadera
fin
Bit .CU=0
Bit .CU=1
Bit .UN=0
Bit .UN=1Bit .OV=1
Bit .OV=0
SI
NO
El bit .UN=1
El bit .UN=0
.ACC≥.PRE
.ACC<PRE
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo: Después de que limit_switch_1 cambia de inhabilitado a habilitado 10 veces, el bit
.DN se establece y light_1 se enciende. Si limit_switch_1 continúa cambiando de inhabilitado a
habilitado, counter_1 continúa incrementando su conteo y el bit .DN permanece establecido.
Cuando limit_switch_2 se habilita, la instrucción RES restablece counter_1 (borra el bit de
estado y el valor .ACC) y light_1 se apaga.
Conteo regresivo (CTD)
La instrucción CTD cuenta regresivamente..
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Counter COUNTER tag Estructura de contado
Preset DINT inmediato valor inferior hasta donde contar
Acum DINT inmediato número de veces que contó el contador el valor inicial es típicamente 0
Estructura COUNTER
Mnemónico Tipo de datos Descripción
.CU BOOL El bit de habilitación de conteo regresivo indica que la instrucción CTD está habilitada.
.DN BOOL El bit de efectuado indica que .ACC ≥.PRE.
.OV BOOL El bit de overflow indica que el contador excedió el límite superior de 2,147,483,647, por lo que el contador regresa a -2,147,483,648 y comienza nuevamente el conteo progresivo
.UN BOOL El bit de underflow indica que el contador excedió el límite inferior de -2,147,483,648, por lo que el contador regresa a 2,147,483,647 y comienza nuevamente el conteo regresivo.
.PRE DINT El valor de preajuste especifica el valor al que debe llegar el valor acumulado para que la instrucción establezca el bit .DN.
.ACC DINT El valor acumulado especifica el número de transiciones que contó la instrucción.
Descripción:
La instrucción CTD normalmente se usa con una instrucción CTU
que referencia la misma estructura de contador.
Cuando se habilita y el bit .CD se borra, la instrucción CTD
decrementa el contador en uno. Cuando se habilita y el bit .CD se
establece, o cuando se inhabilita, la instrucción CTD retiene su valor
.ACC.
El valor acumulado continúa decrementándose, aun después de que se establece el bit .DN. Para
borrar el valor acumulado, use una instrucción RES que referencie la estructura de contador o
escriba 0 en el valor acumulado.
Indicadores de estado aritmético:
no afectados
Condiciones de fallo: ninguna
Ejecución
Condición Acción de lógica de escalera de relés
Preescan El bit .CD se establece para evitar decrementos no válidos durante el primer escán del programa. La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
El bit .CD se borra. La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
Examine el bit
.CD
Examine el bit
.UN
El bit . CD se
establece
.ACC=.ACC-1
El valor .ACC
retorna al valor
inicial
Examine el bit
.OV
Examine .ACC
Examine el bit
.OV
El bit .UN se
establece
El bit . DN se
borra
El bit .UN se borra
El bit .DN se borra
El bit .OV se borra
El bit .DN se
establece
La condicion de
salida de renglon
se establece como
verdadera
fin
Bit .CD=0
Bit .CD=1
Bit .UN=0
Bit .UN=1Bit .OV=1
Bit .OV=0
SI
NO
El bit .OV=1
El bit .OV=0
.ACC≥.PRE
.ACC<PRE
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo: Un transportador lleva partes a una zona de almacenamiento intermedio. Cada vez
que entra una parte, limit_switch_1 se habilita y counter_1 se incrementa en 1. Cada vez que
sale una parte, limit_switch_2 se habilita y counter_1 se decrementa en 1. Si hay 100 partes en
la zona de almacenamiento intermedio (counter_1.dn se establece), conveyor_a se activa y
detiene el transportador para que no lleve más partes hasta que la zona de almacenamiento
intermedio tenga espacio para más partes.
Restablecer (RES)
La instrucción RES restablece una estructura TIMER, COUNTER o
CONTROL.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Estructura
TIMER tag
Estructura que se va a establecer
CONTROL
COUNTER
Descripción:
Cuando se habilita, la instrucción RES borra estos elementos
Cuando se usa una instrucción RES para
La instrucción borra
TIMER El valor .ACC
Los bits de estado de control
COUNTER El valor .ACC
Los bits de estado de control
CONTROL El valor .POS
Los bits de estado de control
Atención
Puesto que la instrucción RES borra el valor .ACC, el bit .DN y el bit .TT, no use la instrucción RES para restablecer un temporizador TOF.
Indicadores de estado aritmético:
no afectados
Condiciones de fallo: ninguna
Ejecución
Condición Acción de lógica de escalera de relés
Preescan La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
La instrucción RES restablece la estructura especificada. La condición de salida de renglón se establece como verdadera.
Post-escan La condición de salida de renglón se establece como falsa.
Instrucciones de entrada/salida (MSG)
Introducción Las instrucciones de entrada/salida leen o escriben datos desde
o hacia el controlador, o un bloque de datos desde o hacia otro
módulo en otra red.
Si desea Use esta instrucción Disponible en estos lenguajes
enviar datos desde o hacia otro módulo
MSG lógica de escalera de relés texto estructurado
Mensaje (MSG) La instrucción MSG lee o escribe asíncronamente un bloque de datos
en otro módulo de una red.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Mensaje Control
MESSAGE tag
Estructura de mensaje
Atención
Si usted revisa los bits de estado más de una vez El controlador cambia los bits DN, ER, EW y ST de manera asíncrona con el escán de la lógica. Use una copia de los bits si los verifica en más de un lugar en la lógica. De lo contrario, los bits pueden cambiar durante el escán y la lógica no funcionará según lo esperado. Una manera de hacer una copia es usar la palabra FLAGS. Copie la palabra FLAGS a otro tag y verifique los bits en la copia.
Importante
No cambie los siguientes bits de estado de una instrucción MSG: DN
EN
ER
EW
ST
No cambie esos bits por sí mismos ni como parte de la palabra FLAGS. Si lo hace, el controlador puede sufrir un fallo no recuperable. El controlador borra el proyecto de su memoria cuando sufre un fallo no recuperable.
Mnemónico Tipo de datos Descripcion
.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: No cambie los bits EW, ER, DN ni ST del
miembro FLAGS. Por ejemplo, no borre toda la palabra FLAGS. El controlador ignora el cambio y usa los valores de los bits almacenados internamente.
.ERR
Instrucciones de comparación (EQU, GEQ, GRT, LEQ, LES, LIM, MEQ, NEQ)
Introducción Las instrucciones de comparación le permiten comparar los
valores usando una expresión o una instrucción de
comparación específica.
Si desea Use esta instrucción Disponible en estos lenguajes
probar si dos valores son iguales
EQU lógica de escalera de relés texto estructurado(2)
bloque de funciones probar si un valor es mayor o igual que un segundo valor
GEQ lógica de escalera de relés texto estructurado(1)
bloque de funciones determinar si un valor es mayor que otro valor
GRT lógica de escalera de relés texto estructurado(1)
bloque de funciones probar si un valor es menor o igual que un segundo valor
LEQ lógica de escalera de relés texto estructurado(1)
bloque de funciones determinar si un valor es menor que otro valor
LES lógica de escalera de relés texto estructurado(1)
bloque de funciones determinar si un valor se encuentra entre otros dos valores
LIM lógica de escalera de relés texto estructurado(1)
bloque de funciones pasar dos valores a través de una máscara y determinar si son iguales
MEQ lógica de escalera de relés texto estructurado(1)
bloque de funciones
determinar si un valor diferente a otro valor
NEQ lógica de escalera de relés texto estructurado(1)
bloque de funciones (1) No hay una instrucción equivalente en texto estructurado. Use otra programación en texto estructurado para lograr el mismo resultado. Vea la descripción de la instrucción.
Usted puede comparar valores de diferentes tipos de datos como, por ejemplo, valores de punto
flotante (coma flotante) y valores enteros. Para las instrucciones de lógica de escalera de relés,
los tipos de datos que aparecen en negrita indican tipos de datos óptimos. Las instrucciones se
ejecutan más rápidamente y requieren menos memoria si todos los operandos de instrucción
usan el mismo tipo de datos óptimos, típicamente DINT o REAL.
Igual a (EQU) La instrucción EQU determina si Source A es igual a Source B.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Source A SINT
INT
DINT REAL Cadena
Inmediato Tag
Valor que se compara con Source B
Source B SINT INT
DINT REAL Cadena
Inmediato Tag
valor que se compara con Source A
Si usted introduce un tag SINT o INT, el valor se convierte en un
valor DINT mediante extensión de signo.
Los valores REAL pocas veces son absolutamente iguales. Si
necesita determinar la igualdad de dos valores REAL, use la
instrucción LIM.
Los tipos de datos de cadena son:
– tipo de datos STRING predeterminado
– cualquier tipo de datos nuevo que usted cree
Para probar los caracteres de una cadena, introduzca un tag de
cadena tanto para Source A como para Source B.
Texto estructurado Use el signo igual “” como operador dentro de una expresión. Esta
expresión evalúa si sourceA es igual que sourceB.
IF sourceA = sourceB THEN
<statements>;
Descripción:
Use la instrucción EQU para comparar dos números o dos cadenas
de caracteres ASCII. Cuando usted compara las cadenas:
Las cadenas son iguales si sus caracteres coinciden.
Los caracteres ASCII permiten distinguir mayúsculas de
minúsculas. La “A” mayúscula ($41) es diferente a la “a” minúscula
($61).La ventaja de la instrucción CMP es que le permite introducir
expresiones complejas en una sola instrucción.
Indicadores de estado aritmético:
No afectados.
Condiciones de fallo: ninguna
Ejecución
Condición Acción
Preescan La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
Source A = Sorce B
La condición de salida de renglón
se establece como verdadera
Si
La condición de salida de renglón
se establece como falsa
fin
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplos: Si value_1 es igual a value_2, establezca light_a. Si value_1 es diferente de
value_2, borre light_a.
Lógica de escalera de relés
Texto estructurado light_a := (value_1 = value_2);
Mayor o Igual que (GEQ)
La instrucción GEQ determina si Source A es mayor o igual que
Source B.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Source A SINT
INT
DINT REAL Cadena
Inmediato Tag
Valor que se compara con Source B
Source B SINT INT
DINT REAL Cadena
Inmediato Tag
valor que se compara con Source A
Si usted introduce un tag SINT o INT, el valor se convierte en un
valor DINT mediante extensión de signo.
Los valores REAL pocas veces son absolutamente iguales. Si
necesita determinar la igualdad de dos valores REAL, use la
instrucción LIM.
Los tipos de datos de cadena son:
– tipo de datos STRING predeterminado
– cualquier tipo de datos nuevo que usted cree
Para probar los caracteres de una cadena, introduzca un tag de
cadena tanto para Source A como para Source B.
Texto estructurado Use los signos mayor que e igual “>” adyacentes como operador
dentro de una expresión. Esta expresión evalúa si sourceA es mayor
o igual que sourceB.
IF sourceA >= sourceB THEN
<statements>;
Descripción:
La instrucción GEQ determina si Source A es mayor o igual que
Source B.
Cuando usted compara las cadenas:
Los valores hexadecimales de los caracteres determinan si una
cadena es mayor o menor que otra cadena. Para obtener el código
hexadecimal de un carácter, remítase a la contraportada de este
manual.
Cuando las dos cadenas se clasifican como en un directorio
telefónico, el orden de las cadenas determina cuál es mayor.
Indicadores de estado aritmético:
No afectados.
Condiciones de fallo: ninguna
Ejecución
Condición Acción lógica de escalera de relés
Preescan La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
Source A Sorce B
La condición de salida de renglón
se establece como verdadera
Si
No
La condición de salida de renglón
se establece como falsa
fin
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo: Si value_1 es mayor o igual que value_2, establezca light_b. Si value_1 es menor
que value_2, borre light_b.
Lógica de escalera de relés
Texto estructurado light_b := (value_1 >= value_2);
Mayor que (GRT) La instrucción GRT determina si Source A es mayor que Source B.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Source A SINT
INT
DINT REAL Cadena
Inmediato Tag
Valor que se compara con Source B
Source B SINT INT
DINT REAL Cadena
Inmediato Tag
valor que se compara con Source A
Si usted introduce un tag SINT o INT, el valor se convierte en un
valor DINT mediante extensión de signo.
Los tipos de datos de cadena son:
– tipo de datos STRING predeterminado
– cualquier tipo de datos nuevo que usted cree
Para probar los caracteres de una cadena, introduzca un tag de
cadena tanto para Source A como para Source B.
Texto estructurado Use el signo mayor que “>” como un operador dentro de una
expresión. Esta expresión evalúa si sourceA es mayor que sourceB.
IF sourceA > sourceB THEN
<statements>;
Descripción:
La instrucción GRT determina si Source A es mayor que Source B.
Cuando usted compara cadenas:
Los valores hexadecimales de los caracteres determinan si una
cadena es mayor o menor que otra cadena. Para obtener el código
hexadecimal de un carácter, remítase a la contraportada de este
manual.
Cuando las dos cadenas se clasifican como en un directorio
telefónico, el orden de las cadenas determina cuál es mayor.
Indicadores de estado aritmético:
No afectados.
Condiciones de fallo: ninguna
Ejecución
Condición Acción lógica de escalera de relés
Preescan La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
Sourse A >
Sourse B
La condición de
salida de renglón
se establece como
verdadera
Si
no
La condición de
salida de renglón
se establece como
falsa
Fin
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo: Si value_1 es mayor que value_2, establezca light_1. Si value_1 es menor o igual
que value_2, borre light_1.
Lógica de escalera de relés
Texto estructurado light_1 := (value_1 > value_2);
Menor o igual que (LEQ)
La instrucción LEQ determina si Source A es menor o igual que
Source B.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Source A SINT
INT
DINT REAL Cadena
Inmediato Tag
Valor que se compara con Source B
Source B SINT INT
DINT REAL Cadena
Inmediato Tag
valor que se compara con Source A
Si usted introduce un tag SINT o INT, el valor se convierte en un
valor DINT mediante extensión de signo.
Los tipos de datos de cadena son:
– tipo de datos STRING predeterminado
– cualquier tipo de datos nuevo que usted cree
Para probar los caracteres de una cadena, introduzca un tag de
cadena tanto para Source A como para Source B.
Texto estructurado Use los signos menor que e igual “<” adyacentes como operador
dentro de una expresión. Esta expresión evalúa si sourceA es menor
o igual que sourceB.
IF sourceA <= sourceB THEN
<statements>;
Descripción:
La instrucción LEQ determina si Source A es menor o igual que
Source B.
Cuando usted compara las cadenas:
Los valores hexadecimales de los caracteres determinan si una
cadena es mayor o menor que otra cadena. Para obtener el código
hexadecimal de un carácter, remítase a la contraportada de este
manual.
Cuando las dos cadenas se clasifican como en un directorio
telefónico, el orden de las cadenas determina cuál es mayor.
Indicadores de estado aritmético:
No afectados.
Condiciones de fallo: ninguna
Ejecución
Condición Acción lógica de escalera de relés
Preescan La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
Sourse A <=
Sourse B
La condición de
salida de renglón
se establece como
verdadera
Si
no
La condición de
salida de renglón
se establece como
falsa
Fin
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo: Si value_1 es menor o igual que value_2, establezca light_2. Si value_1 es mayor
que value_2, borre light_2.
Lógica de escalera de relés
Texto estructurado light_2 := (value_1 <= value_2);
Menor que (LES) La instrucción LES determina si Source A es menor que Source B.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Source A SINT
INT
DINT REAL Cadena
Inmediato Tag
Valor que se compara con Source B
Source B SINT INT
DINT REAL Cadena
Inmediato Tag
valor que se compara con Source A
Si usted introduce un tag SINT o INT, el valor se convierte en un
valor DINT mediante extensión de signo.
Los tipos de datos de cadena son:
– tipo de datos STRING predeterminado
– cualquier tipo de datos nuevo que usted cree
Para probar los caracteres de una cadena, introduzca un tag de
cadena tanto para Source A como para Source B.
Texto estructurado Use el signo menor que “<” como un operador dentro de una
expresión. Esta expresión evalúa si sourceA es menor que sourceB.
IF sourceA < sourceB THEN
<statements>;
Descripción:
La instrucción LES determina si Source A es menor que Source B.
Cuando usted compara las cadenas:
Los valores hexadecimales de los caracteres determinan si una
cadena es mayor o menor que otra cadena. Para obtener el
código hexadecimal de un carácter, remítase a la contraportada
de este manual.
Cuando las dos cadenas se clasifican como en un directorio
telefónico, el orden de las cadenas determina cuál es mayor.
Indicadores de estado aritmético:
No afectados.
Condiciones de fallo: ninguna
Ejecución
Condición Acción lógica de escalera de relés
Preescan La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
Sourse A <
Sourse B
La condición de
salida de renglón
se establece como
verdadera
Si
no
La condición de
salida de renglón
se establece como
falsa
Fin
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo: Si value_1 es menor que value_2, establezca light_3. Si value_1 es mayor o igual
que value_2, borre light_3.
Lógica de escalera de relés
Texto estructurado light_3 := (value_1 < value_2);
Limite (LIM) La instrucción LIM determina si el valor de prueba se encuentra
dentro del rango de los límites inferior y superior.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Low limit SINT
INT
DINT REAL
Inmediato Tag
Valor del limite inferior
Un tag SINT o INT se convierte en un valor DINT mediante extensión de signo.
Test SINT INT
DINT REAL
Inmediato Tag
Valor que se prueba
Un tag SINT o INT se convierte en un valor DINT mediante extensión de signo.
High limit
SINT INT DINT REAL
inmediato Tag
Valor del limite superior
Un tag SINT o INT se convierte en un valor DINT mediante extensión de signo.
Texto estructurado El texto estructurado no cuenta con la instrucción LIM, pero se
pueden lograr los mismos resultados usando texto estructurado.
IF (LowLimit <= HighLimit AND
(Test >= LowLimit AND Test <= HighLimit)) OR
(LowLimit >= HighLimit AND
(Test <= LowLimit OR Test >= HighLimit)) THEN
<statement>;
END_IF;
Descripción:
La instrucción LIM determina si el valor de prueba se encuentra
dentro del rango de los límites inferior y superior.
Si es límite inferior y el valor de
prueba es La condición de salida de renglón se establece como
≤ Limite superior igual a o está entre los límites
verdadera
diferente o está fuera de los límites
falsa
≥ Limite superior igual a o está fuera de los límites
Verdadera
diferente o está dentro de los límites
falsa
Los números enteros con signo saltan (“roll over”) del número positivo máximo al número
negativo máximo cuando se establece el bit más significativo. Por ejemplo, en los números
enteros de 16 bits (tipo INT), el número entero positivo máximo es 32,767, el cual se representa
en hexadecimal como 16#7FFF (todos los bits del 0 al 14 están en uno). Si usted incrementa
dicho número en uno, el resultado es 16#8000 (el bit 15 se pone en uno). Para enteros con signo,
el hexadecimal 16#8000 es igual a -32,768 en decimal. Incrementar desde este punto hasta que
los 16 bits se pongan en uno, termina en 16#FFFF, que es igual a -1 en decimal.
Esto puede mostrarse como línea circular de números (vea los siguientes diagramas). La
instrucción LIM comienza en el límite inferior e se va incrementando en sentido horario hasta
llegar al límite superior. Cualquier valor de prueba que se encuentre en el rango en sentido
horario desde el límite inferior al límite superior establece en verdadera la condición de salida
del renglón. Cualquier valor de prueba que se encuentre en el rango en sentido horario desde el
límite superior al límite inferior establece en falsa la condición de salida del renglón.
Indicadores de estado aritmético:
No afectados.
Condiciones de fallo: ninguna
Ejecución
Condición Acción lógica de escalera de relés
Preescan La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
Evaluar el
limite
La condición de
salida de renglón
se establece como
verdadera
La
comparación
es verdadera
La comparación
es falsa
La condición de
salida de renglón
se establece como
falsa
Fin
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo 1: Límite inferior Límite superior: Cuando 0 ≤value ≥100, establezca light_1.
Si value < 0 or value > 100, borre light_1.
Lógica de escalera de relés
Texto estructurado IF (value <= 100 AND(value >= 0 AND value <= 100)) OR
(value >= 100 AND value <= 0 OR value >= 100)) THEN
light_1 := 1;
ELSE
light_1 := 0;
END_IF;
Ejemplo 2: Límite inferior Límite superior:
Cuando value ≥0 o value ≤100, establezca light_1. Si value < 0 o value > -100, borre light_1.
Lógica de escalera de relés
Texto estructurado IF (0 <= -100 AND value >= 0 AND value <= -100)) OR
(0 >= -100 AND(value <= 0 OR value >= -100)) THEN
light_1 := 1;
ELSE
light_1 := 0;
END_IF;
Mascara igual que (MEQ)
La instrucción MEQ pasa los valores Source y Compare por una
máscara y compara los resultados.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Source SINT
INT
DINT
Inmediato Tag
Valor que se compara con Compare
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros.
Mask SINT INT
DINT
Inmediato Tag
define qué bits se deben bloquear o pasar
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros.
Compare
SINT INT DINT
inmediato Tag
Valor del limite superior
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros.
Texto estructurado El texto estructurado no cuenta con la instrucción MEQ, pero se
pueden lograr los mismos resultados usando texto estructurado.
IF (Source AND Mask) = (Compare AND Mask) THEN
<statement>;
END_IF;
Descripción:
Un número “1” en la máscara significa que se pasa el bit de datos.
Un número “0” en la máscara significa que se bloquea el bit de
datos.
Normalmente, los valores Source, Mask y Compare son del mismo
tipo de datos.
Si mezcla tipos de datos enteros, la instrucción llena con ceros los
bits superiores de los tipos de datos enteros menores para que tengan
el mismo tamaño que el tipo de datos mayores.
Introducción de un valor de máscara inmediato Cuando usted introduce una máscara, el software de programación
cambia de manera predeterminada a valores decimales. Si desea
introducir una máscara usando otro formato, preceda el valor con el
prefijo correcto.
Prefijo Descripcion
16# Hexadecimal
Por ejemplo; 16#0F0F
8# Octal
Por ejemplo; 8#16
2# Binario
Por ejemplo; 2#00110011
Indicadores de estado aritmético:
No afectados.
Condiciones de fallo: ninguna
Ejecución
Condición Acción lógica de escalera de relés
Preescan La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
Origen
enmascarado=
comparacion
enmascarada
La condición de
salida de renglón
se establece como
verdadera
si
no
La condición de
salida de renglón
se establece como
falsa
Fin
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo 1: Si value_1 enmascarado es igual a value_2 enmascarado, establezca light_1. Si
value_1 enmascarado es diferente de value_2 enmascarado, borre light_1. Este ejemplo muestra
que los valores enmascarados son iguales. Un número 0 en la máscara impide que la instrucción
compare el bit (representado por x en el ejemplo).
Lógica de escalera de relés
Texto estructurado light_1 := ((value_1 AND mask_1)=(value_2 AND mask_2));
Ejemplo 2: Si value_1 enmascarado es igual a value_2 enmascarado, establezca
light_1. Si value_1 enmascarado es diferente de value_2 enmascarado, borre light_1. Este
ejemplo muestra que los valores enmascarados son diferentes. Un número 0 en la máscara
impide que la instrucción compare el bit (representado por x en el ejemplo)
Lógica de escalera de relés
Texto estructurado IF (0 <= -100 AND value >= 0 AND value <= -100)) OR
(0 >= -100 AND(value <= 0 OR value >= -100)) THEN
light_1 := 1;
ELSE
light_1 := 0;
END_IF;
Diferente de (NEQ) La instrucción NEQ determina si Source A es diferente de Source
B.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Source A SINT
INT
DINT REAL Cadena
Inmediato Tag
Valor que se compara con Source B
Source B SINT INT
DINT REAL Cadena
Inmediato Tag
valor que se compara con Source A
Si usted introduce un tag SINT o INT, el valor se convierte en un
valor DINT mediante extensión de signo.
Los tipos de datos de cadena son:
– tipo de datos STRING predeterminado
– cualquier tipo de datos nuevo que usted cree
Para probar los caracteres de una cadena, introduzca un tag de
cadena tanto para Source A como para Source B.
Texto estructurado Use los signos menor que y mayor que “<>” juntos como operador
dentro de una expresión. Esta expresión evalúa si sourceA es
diferente de sourceB.
IF sourceA <> sourceB THEN
<statements>;
Descripción:
La instrucción NEQ determina si Source A es diferente de Source B.
Cuando usted compara las cadenas:
Las cadenas son diferentes si algunos de sus caracteres no
coinciden.
Los caracteres ASCII permiten distinguir mayúsculas de
minúsculas. Una “A” mayúscula ($41) es diferente a una “a”
minúscula ($61).
Indicadores de estado aritmético:
No afectados.
Condiciones de fallo: ninguna
Ejecución
Condición Acción lógica de escalera de relés
Preescan La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
Sourse A =
Sourse B
La condición de
salida de renglón
se establece como
verdadera
Si
no
La condición de
salida de renglón
se establece como
falsa
Fin
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo: Si value_1 es diferente de value_2, establezca light_4. Si value_1 es igual a
value_2, borre light_4.
Lógica de escalera de relés
Texto estructurado light_4 := (value_1 <> value_2);
Instrucciones de cálculo/matemáticas (ADD, SUB, MUL, DIV, SQR, NEG)
Introducción Las instrucciones de cálculo/matemáticas evalúan las
operaciones aritméticas usando una expresión o una
instrucción aritmética específica.
Si desea Use esta instrucción Disponible en estos lenguajes
Sumar valores ADD lógica de escalera de relés texto estructurado(2)
bloque de funciones Restar valores SUB lógica de escalera de relés
texto estructurado(1)
bloque de funciones Multiplicar valores MUL lógica de escalera de relés
texto estructurado(1)
bloque de funciones Dividir valores DIV lógica de escalera de relés
texto estructurado(1)
bloque de funciones Calcular la raíz cuadrada de un valor
SQR lógica de escalera de relés texto estructurado(1)
bloque de funciones Tomar el signo opuesto a un valor
NEG lógica de escalera de relés texto estructurado(1)
bloque de funciones
Usted puede mezclar diferentes tipos de datos, pero puede producirs
pérdida de exactitud y error de redondeo, y la instrucción requerirá más
tiempo para ejecutarse. Verifique el bit S:V para determinar si se
truncó el resultado.
Para las instrucciones de lógica de escalera de relés, los tipos de datos
que aparecen en negrita indican tipos de datos óptimos. Las
instrucciones se ejecutan más rápidamente y requieren menos
Sumar (ADD) La instrucción ADD suma Source A con Source B y coloca el
resultado en Destination.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Source A SINT
INT
DINT REAL
Inmediato Tag
Valor que se suma a Source B
Source B SINT INT
DINT REAL
Inmediato Tag
valor que se suma a Source A
Destination SINT INT DINT REAL
Tag Tag para almacenar el resultado
Texto estructurado Use el signo más “” como operador dentro de una expresión. Esta
expresión suma sourceA a sourceB y almacena el resultado en dest..
dest := sourceA + sourceB;
Descripción:
La instrucción ADD suma Source A con Source B y coloca el
resultado en Destination.
Indicadores de estado aritmético:
Los indicadores de estado aritmético son
afectados..
Condiciones de fallo: ninguna
Ejecución
Condición Acción lógica de escalera de relés
Preescan La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
Destination = Source A + Source B La condición de salida de renglón se establece como verdadera.
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo: Sume float_value_1 a float_value_2 y coloque el resultado en add_result.
Lógica de escalera de relés
Texto estructurado add_result := float_value_1 + float_value_2;
Restar (SUB) La instrucción SUB resta Source B de Source A y coloca el
resultado en Destination.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Source A SINT
INT
DINT REAL
Inmediato Tag
Valor del cual restar Source B
Source B SINT INT
DINT REAL
Inmediato Tag
valor que se resta a Source A
Destination SINT INT DINT REAL
Tag Tag para almacenar el resultado
Texto estructurado Use el signo menos “” como operador en una expresión. Esta
expresión resta sourceB de sourceA y almacena el resultado en
dest.dest := sourceA - sourceB;
Descripción:
La instrucción SUB resta Source B de Source A y coloca el
resultado en Destination.
Indicadores de estado aritmético:
Los indicadores de estado aritmético son
afectados.
Condiciones de fallo: ninguna
Ejecución
Condición Acción lógica de escalera de relés
Preescan La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
Destination = Source A - Source B La condición de salida de renglón se establece como verdadera.
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo: Reste float_value_2 de float_value_1 y coloque el resultado en subtract_result. Lógica de escalera de relés
Texto estructurado subtract_result := float_value_1 - float_value_2;
Multiplicar (MUL) La instrucción MUL multiplica Source A por Source B y coloca el
resultado en Destination.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Source A SINT
INT
DINT REAL
Inmediato Tag
Valor del multiplicando
Source B SINT INT
DINT REAL
Inmediato Tag
Valor del multiplicando
Destination SINT INT DINT REAL
Tag Tag para almacenar el resultado
Texto estructurado Use el signo de multiplicación “*” como operador en una expresión.
Esta expresión multiplica sourceA por sourceB y almacena el
resultado en dest.
Dest := sourceA * sourceB;
Descripción:
La instrucción MUL multiplica Source A por Source B y coloca el
resultado en Destination.
Indicadores de estado aritmético:
Los indicadores de estado aritmético son
afectados.
Condiciones de fallo: ninguna
Ejecución
Condición Acción lógica de escalera de relés
Preescan La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
Destination = Source A * Source B La condición de salida de renglón se establece como verdadera.
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo: Multiplique float_value_1 por float_value_2 y coloque el resultado en
multiply_result. Lógica de escalera de relés
Texto estructurado multiply_result := float_value_1 float_value_2;
Dividir (DIV) La instrucción DIV divide Source A entre Source B y coloca el
resultado en Destination.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Source A SINT
INT
DINT REAL
Inmediato Tag
Valor del dividendo
Source B SINT INT
DINT REAL
Inmediato Tag
Valor del divisor
Destination SINT INT DINT REAL
Tag Tag para almacenar el resultado
Texto estructurado Use el signo de dividir “” como operador en una expresión. Esta
expresión divide sourceA entre sourceB y almacena el resultado en
dest. Dest := sourceA / sourceB;
Descripción:
Si el destino no es un tipo REAL, la instrucción maneja la porción
fraccionaria del resultado de la siguiente manera:
Si Source A Entonces la
opción
fraccionaria
del resultado
ejemplo
y Source B no son REAL
Se trunca
Source A
DINT
5
Source B
DINT
3
Destination DINT 1
o Source B es REAL
Se redondea
Source A
REAL
5.0
Source B DINT 3
Destination DINT 2
Si Source B (el divisor) es cero:
se produce un fallo menor
– Tipo 4: fallo del programa
– Código 4: overflow aritmético
el destino se establece de la siguiente manera:
Indicadores de estado aritmético:
Los indicadores de estado aritmético son
afectados.
Condiciones de fallo: Se produce un
fallo menor
si
Tipo de fallo Código de
fallo
El divisor es
cero
4 4
Ejecución
Condición Acción lógica de escalera de relés
Preescan La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
Destination = Source A / Source B La condición de salida de renglón se establece como verdadera.
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo: Dividir float_value_1 entre float_value_2 y coloque el resultado en divide_result. Lógica de escalera de relés
Texto estructurado divide_result := float_value_1 / float_value_2
Ejemplo 2: Las instrucciones DIV y MOV funcionan juntas para dividir dos enteros,
redondear el resultado y colocarlo en un tag de número entero:
La instrucción DIV divide dint_a entre dint_b.
Para redondear el resultado, Destination es un tag REAL. (Si el destino fuera un tag entero
(SINT, INT o DINT), la instrucción truncaría el resultado).
La instrucción MOV traslada el resultado redondeado (real_temp) de la DIV a
divide_result_rounded.
Puesto que divide_result_rounded es un tag DINT, el valor de
real_temp se redondea y se coloca en el destino DINT.
Lógica de escalera de relés
Raíz cuadrada (SQR)
La instrucción SQR calcula la raíz cuadrada de Source y coloca el
resultado en Destination.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Source SINT
INT
DINT REAL
Inmediato Tag
Valor del multiplicando
Destination SINT
INT DINT REAL
Tag Tag para almacenar el resultado
Texto estructurado Use SQRT como función. Esta expresión calcula la raíz cuadrada de
source y almacena el resultado en dest. dest := SQRT(source);
Descripción:
Si Destination no es REAL, la instrucción maneja la porción
fraccionaria del resultado de la siguiente manera:
Si Source es negativo, la instrucción toma el valor absoluto de
Source antes de calcular la raíz cuadrada.
Indicadores de estado aritmético:
Los indicadores de estado aritmético son
afectados.
Condiciones de fallo: ninguna
Ejecución
Condición Acción lógica de escalera de relés
Preescan La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
Destination = √ source La condición de salida de renglón se establece como verdadera.
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo: Calcule la raíz cuadrada de value_1 y coloque el resultado en
sqr_result.
Lógica de escalera de relés
Texto estructurado sqr_result := SQRT(value_1);
Cambiar signo (NEG)
La instrucción NEG cambia el signo de Source y coloca el resultado
en Destination..
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Source SINT
INT
DINT REAL
Inmediato Tag
Valor del multiplicando
Destination SINT
INT DINT REAL
Tag Tag para almacenar el resultado
Texto estructurado Use el signo menos “” como operador en una expresión. La
expresión cambia el signo de source y almacena el resultado en dest.
dest := -source;
Descripción:
Si usted cambia el signo de un valor negativo, el resultado es
positivo.
Si usted cambia el signo de un valor positivo, el resultado es
negativo.
.
Indicadores de estado aritmético:
Los indicadores de estado aritmético son
afectados.
Condiciones de fallo: ninguna
Ejecución
Condición Acción lógica de escalera de relés
Preescan La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
Destination = 0 -source La condición de salida de renglón se establece como verdadera.
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo: Cambie el signo de value_1 y coloque el resultado en negate_result.
Lógica de escalera de relés
Texto estructurado negate_result := -value_1;
Instrucciones de movimiento/lógicas (MOV, MVM, AND, OR, XOR, NOT, CLR) Introducción Usted puede mezclar diferentes tipos de datos, pero puede
producirse pérdida de exactitud y error de redondeo, y la
instrucción requiere más tiempo para ejecutarse. Verifique el
bit S:V para determinar si se truncó el resultado.
Para las instrucciones de lógica de escalera de relés, los tipos
de datos que aparecen en negrita indican tipos de datos
óptimos. Las instrucciones se ejecutan más rápidamente y
requieren menos memoria si todos los operandos de
instrucción usan el mismo tipo de datos óptimos, típicamente
DINT o REAL.
Las instrucciones de movimiento modifican y mueven bits.
Si desea Use esta instrucción Disponible en estos lenguajes
Copiar un valor MOV lógica de escalera de relés texto estructurado(2)
Copiar una parte especifica de un numero entero
MVM lógica de escalera de relés texto estructurado(1)
operación Y a nivel de bits AND lógica de escalera de relés
texto estructurado(1)
operación O a nivel de bits OR lógica de escalera de relés
texto estructurado(1)
operación O exclusivo a nivel de bits
XOR lógica de escalera de relés texto estructurado(1)
operación NOT a nivel de bits NOT lógica de escalera de relés
texto estructurado(1)
Borrar un valor CLR lógica de escalera de relés
texto estructurado(1)
Texto estructurado solamente.
Mover (MOV) La instrucción MOV copia Source en Destination. Source no
cambia.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Source SINT
INT
DINT REAL
Inmediato Tag
Valor a mover (copiar)
Destination SINT
INT DINT REAL
Tag Tag para almacenar el resultado
Texto estructurado Use una asignación “:=” con una expresión. Esta asignación mueve
el valor de source a dest.
dest :=source;
Descripción:
La instrucción MOV copia Source en Destination. Source no
cambia.
.
Indicadores de estado aritmético:
Los indicadores de estado aritmético son
afectados.
Condiciones de fallo: ninguna
Ejecución
Condición Acción lógica de escalera de relés
Preescan La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
La instrucción copia Source en Destination. La condición de salida de renglón se establece como verdadera.
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo: Mueva los datos en value_1 a value_2.
Lógica de escalera de relés
Texto estructurado value_2 := value _1;
Mover con mascara (MVM)
La instrucción MVM copia Source a un Destination y permite
enmascarar porciones de los datos.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Source SINT
INT
DINT REAL
Inmediato Tag
Valor a mover
Mask SINT INT
DINT REAL
Inmediato Tag
Que bits se bloquean o se pasan
Destination SINT INT DINT REAL
Tag Tag para almacenar el resultado
Texto estructurado Esta instrucción está disponible en texto estructurado como MVMT.
O puede combinar lógica a nivel de bits dentro de una expresión y
asignar el resultado al destino. Esta expresión realiza un movimiento
con máscara en Source.
dest := (Dest AND NOT (Mask))
OR (Source AND Mask);
Descripción:
La instrucción MVM usa una máscara para pasar o bloquear bits de
datos de Source. Un número “1” en la máscara significa que se pasa
el bit de datos. Un número “0” en la máscara significa que se
bloquea el bit de datos.
Si mezcla diferentes tipos de datos enteros, la instrucción llena con
ceros los bits superiores de los tipos de datos enteros menores para
que tengan el mismo tamaño que el tipo de datos mayor.
prefijo Descripción
16# Hexadecimal
Por ejemplo; 16#0F0F
8#
Octal
Por ejemplo 8#16
2# Binario
por ejemplo; 2#00110011
Indicadores de estado aritmético:
Los indicadores de estado aritmético son
afectados.
Condiciones de fallo: ninguna
Ejecución
Condición Acción lógica de escalera de relés
Preescan La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
La instrucción pasa Source a través de la máscara y copia el resultado en Destination. Los bits sin máscara en Destination permanecen sin ningún cambio. La condición de salida de renglón se establece como verdadera.
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo: Copie datos de value_a a value_b, mientras permite que los datos sean
enmascarados (un 0 enmascara los datos en value_a).
Lógica de escalera de relés
Texto estructurado value_b := (value_b AND NOT (mask_2)) OR
(value_a AND mask_2);
Borrar (CLR) La instrucción CLR borra (pone en cero) todos los bits de
Destination.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción
Destination SINT
INT DINT REAL
Tag Tag para almacenar el resultado
Texto estructurado El texto estructurado no cuenta con la instrucción CLR. En lugar de
ello, asigne 0 al tag que desea borrar. Esta declaración de asignación
borra dest.
dest := 0;
Descripción:
La instrucción CLR borra todos los bits de Destination.
.
Indicadores de estado aritmético:
Los indicadores de estado aritmético son
afectados.
Condiciones de fallo: ninguna
Ejecución
Condición Acción lógica de escalera de relés
Preescan La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
La instrucción borra Destination. La condición de salida de renglón se establece como verdadera.
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo: Ponga en cero todos los bits de value.
Lógica de escalera de relés
Texto estructurado value := 0;
Y a nivel de bits (AND)
La instrucción AND realiza una operación Y a nivel de bits usando
los bits en Source A y Source B, y coloca el resultado en
Destination.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Source A SINT
INT
DINT
Inmediato Tag
valor con que se realiza la operación Y con Source B
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros.
Source B SINT INT
DINT
Inmediato Tag
valor con que se a realiza la operación AND con Source A
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros.
Destination SINT INT DINT
Tag Tag para almacenar el resultado
Texto estructurado Use AND o el signo “&” como operador dentro de una expresión.
Esta expresión evalúa sourceA AND sourceB..
dest := sourceA AND sourceB
Descripción:
Una vez habilitada, la instrucción evalúa la operación AND:
Si mezcla diferentes tipos de datos enteros, la instrucción llena con
ceros los bits superiores de los tipos de datos enteros menores para
que tengan el mismo tamaño que el tipo de datos mayor.
Indicadores de estado aritmético:
Los indicadores de estado aritmético son
afectados.
Condiciones de fallo: ninguna
Ejecución
Condición Acción lógica de escalera de relés
Preescan La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
La instrucción realiza una operación Y a nivel de bits. La condición de salida de renglón se establece como verdadera.
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo: Cuando se habilita, la instrucción AND realiza una operación Y a nivel de bits en
SourceA y SourceB y coloca el resultado en Dest
Lógica de escalera de relés
Texto estructurado value_result_and := value_1 AND value_2;
O a nivel de bits (OR)
La instrucción OR realiza una operación O a nivel de bits usando los
bits en Source A y Source B, y coloca el resultado en Destination.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Source A SINT
INT
DINT
Inmediato Tag
valor con que se realiza la operación O con Source B
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros.
Source B SINT INT
DINT
Inmediato Tag
valor con que se realiza la operación O con Source A
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros.
Destination SINT INT DINT
Tag Tag para almacenar el resultado
Texto estructurado Use OR como operador dentro de una expresión. Esta expresión
evalúa sourceA OR sourceB.
dest := sourceA OR sourceB
Descripción:
Una vez habilitada, la instrucción evalúa la operación O::
Si mezcla diferentes tipos de datos enteros, la instrucción llena con
ceros los bits superiores de los tipos de datos enteros menores para
que tengan el mismo tamaño que el tipo de datos mayor.
Indicadores de estado aritmético:
Los indicadores de estado aritmético son
afectados.
Condiciones de fallo: ninguna
Ejecución
Condición Acción lógica de escalera de relés
Preescan La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
La instrucción realiza una operación O a nivel de bits. La condición de salida de renglón se establece como verdadera.
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo: Cuando se habilita, la instrucción OR realiza una operación O a nivel
de bits en SourceA y SourceB y coloca el resultado en Dest.
Lógica de escalera de relés
Texto estructurado value_result_or := value_1 OR value_2;
O exclusivo a nivel de bits (XOR)
La instrucción XOR realiza una operación O exclusivo a nivel de
bits usando los bits en Source A y Source B, y coloca el resultado en
Destination..
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Source A SINT
INT
DINT
Inmediato Tag
valor con que se realiza la operación XOR con Source B
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros.
Source B SINT INT
DINT
Inmediato Tag
valor con que se realiza la operación XOR con Source A
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros.
Destination SINT INT DINT
Tag Tag para almacenar el resultado
Texto estructurado Use XOR como operador dentro de una expresión. Esta expresión
evalúa sourceA XOR sourceB.
dest := sourceA XOR sourceB
Descripción:
Una vez habilitada, la instrucción evalúa la operación XOR:
Si mezcla diferentes tipos de datos enteros, la instrucción llena con
ceros los bits superiores de los tipos de datos enteros menores para
que tengan el mismo tamaño que el tipo de datos mayor.
Indicadores de estado aritmético:
Los indicadores de estado aritmético son
afectados.
Condiciones de fallo: ninguna
Ejecución
Condición Acción lógica de escalera de relés
Preescan La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
La instrucción realiza una operación O a nivel de bits. La condición de salida de renglón se establece como verdadera.
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo: Cuando se habilita, la instrucción AND realiza una operación O exclusivo a nivel
de bits en SourceA y SourceB y coloca el resultado en el tag de destino.
Lógica de escalera de relés
Texto estructurado value_result_xor := value_1 XOR value_2;
NO a nivel de bits (NOT)
La instrucción NOT realiza un NO a nivel de bits usando los bits en
Source y coloca el resultado en Destination.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Source A SINT
INT
DINT
Inmediato Tag
valor con que se realiza la operación XOR con Source B
Un tag SINT o INT se convierte en un valor DINT mediante un relleno con ceros.
Destination SINT INT DINT
Tag Tag para almacenar el resultado
Texto estructurado Use NOT como operador dentro de una expresión. Esta expresión
evalúa source con la operación NOT.
dest := NOT source
Descripción:
Una vez habilitada, la instrucción evalúa la operación NO:
Si mezcla diferentes tipos de datos enteros, la instrucción llena con
ceros los bits superiores de los tipos de datos enteros menores para
que tengan el mismo tamaño que el tipo de datos mayor.
Indicadores de estado aritmético:
Los indicadores de estado aritmético son
afectados.
Condiciones de fallo: ninguna
Ejecución
Condición Acción lógica de escalera de relés
Preescan La condición de salida de renglón se establece como falsa.
condición de entrada de renglón es falsa
La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
La instrucción realiza una operación NO a nivel de bits.
La condición de salida de renglón se establece como verdadera.
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo: Cuando se habilita, la instrucción NOT realiza una operación NO a nivel de bits en
Source y coloca el resultado en Dest.
Lógica de escalera de relés
Texto estructurado value_result_not := NOT value_1;
Instrucciones de secuenciador (SQO, SQL)
Introducción No se toma ninguna acción. Las instrucciones de secuenciador
monitorean operaciones uniformes y repetibles..
Si desea Use esta instrucción Disponible en estos lenguajes
Establecer condiciones de salida para el siguiente paso
SQO lógica de escalera de relés
Cargar condiciones de referencia en matrices de secuenciador
SQL lógica de escalera de relés
Para las instrucciones de lógica de escalera de relés, los tipos de datos que aparecen en letras
negritas indican tipos de datos óptimos. Las instrucciones se ejecutan más rápidamente y
requieren menos memoria si todos los operandos de instrucción usan el mismo tipo de datos
óptimos, típicamente DINT o REAL.
Secuenciador de salida (SQO)
La instrucción SQO establece condiciones de salida para el siguiente
paso de una pareja de instrucciones SQO/SQI de secuencia.
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Array DINT
Tag de matriz
matriz de secuenciador especifica el primer elemento de la matriz de secuenciador no use CONTROL.POS en el subíndice
Mask SINT INT DINT
Tag inmediato
Que bits se bloquean o se pasan
Destination DINT
tag datos de salida provenientes de la matriz de secuenciador
Control CONTROL tag estructura de control para la operación normalmente, se usa el mismo CONTROL que para las instrucciones SQI y SQL
Length DINT inmediato número de elementos en la matriz (tabla de secuenciador) que se va a establecer como salida
Position Dint inmediato posición actual en la matriz el valor inicial es típicamente 0
Estructura de control
Mnemonico Tipo de datos descripción
.EN BOOL El bit de habilitación indica que la instrucción SQO está
habilitada.
.DN BOOL El bit de efectuado se establece cuando todos los elementos especificados se han transferido a Destination.
.ER BOOL El bit de error se establece cuando .LEN ≤0, .POS < 0, o
.POS > .LEN.
.LEN DINT La longitud especifica el número de pasos en la matriz de
secuenciador
.PDS DINT La posición identifica el elemento que el controlador está
manipulando actualmente.
Descripción:
Cuando se habilita, la instrucción SQO incrementa la posición,
transfiere los datos en la posición a través de la máscara (Mask) y
almacena el resultado en Destination. Si .POS > .LEN, la instrucción
da la vuelta hasta el comienzo de la matriz de secuenciador y
continúa con .POS = 1.
Normalmente, se usa la misma estructura de CONTROL que para
las instrucciones SQI y SQL.
La instrucción SQO realiza la operación en memoria contigua.
Introduzca un valor de máscara inmediato.
Cuando usted introduce una máscara, el software de programación
cambia de manera predeterminada a valores decimales. Si desea
introducir una máscara usando otro formato, preceda el valor con el
prefijo correcto.
prefijo Descripción
16# Hexadecimal Por ejemplo; 16#0F0F
8# Octal Por ejemplo; 8#16
2# Binario Por ejemplo; 2#00110011
Indicadores de estado aritmético:
No afectados
Condiciones de fallo: ninguna
Ejecución
Condición Acción lógica de escalera de relés
Preescan El bit .EN se establece para impedir una carga falsa cuando se inicia el escán del programa. La condición de salida de renglón se establece
como falsa.
condición de entrada de renglón es falsa
La condición de salida de renglón se establece como falsa.
a condición de entrada de renglón es verdadera
.LEN ≤ 0 o
.POS < 0
.POS = .LEN
Examine el
bit .EN
.POS ≥ .LEN
El valor .POS
retorna al valor
inicial
Examine el bit
.UN
.POS=1
.POS =.POS+1
El bit .EN se establece
El bit .ER se borra
El bit .DN se borra
El bit .DN se
establece
El bit .ER se
establece
fin
no
si
si
no
El bit .DN se establece
.EN=0
.EN=1
no
si
si
no
no
si
Ir a
error
error
.POS > .LEN
Destination = (Destination AND
(NOT(Mask)))
OR (Array[control.POS] AND Mask)
la condicion de salida de
renglon se establece como
verdadera
si
no
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo: Cuando se habilita, la instrucción SQO incrementa la posición, pasa los datos en esa
posición en array_dint a través de la máscara y almacena el resultado en value_1.
Un número 0 en la máscara significa que el bit no se compara (designado por xxxx en este
ejemplo).
Uso de SQI con SQO Si usted empareja una instrucción SQI con una instrucción SQO, asegúrese de que ambas
instrucciones usen los mismos valores de Control, Length y Position.
Restablecimiento de la posición de SQO Cada vez que el controlador cambia del modo de programación al modo de marcha, la
instrucción SQO borra (inicializa) el valor .POS. Para restablecer .POS al valor de inicialización
(.POS = 0), use una instrucción RES a fin de borrar el valor de posición. Este ejemplo usa el
estado del bit de primer escán para borrar el valor .POS.
Carga de secuenciador (SQL)
La instrucción SQL carga condiciones de referencia en una matriz
de secuenciador
Operandos:
Lógica de escalera de relés
Operando Tipo Formato Descripción Array DINT
Tag de matriz
matriz de secuenciador especifica el primer elemento de la matriz de secuenciador no use CONTROL.POS en el subíndice
Mask SINT INT DINT
Tag inmediato
datos de entrada que se van a cargar en la matriz de secuenciador
Control CONTROL tag estructura de control para la operación normalmente, se usa el mismo CONTROL que para las instrucciones SQI y SQL
Length DINT inmediato número de elementos en la matriz (tabla de secuenciador) que se va a establecer como salida
Position Dint inmediato posición actual en la matriz el valor inicial es típicamente 0
Estructura de control
Mnemonico Tipo de datos descripción
.EN BOOL El bit de habilitación indica que la instrucción SQO está habilitada.
.DN BOOL El bit de efectuado se establece cuando todos los elementos especificados se han transferido a Destination.
.ER BOOL El bit de error se establece cuando .LEN ≤0, .POS < 0, o .POS >
.LEN.
.LEN DINT La longitud especifica el número de pasos en la matriz de
secuenciador
.PDS DINT La posición identifica el elemento que el controlador está
manipulando actualmente.
Descripción:
Cuando se habilita, la instrucción SQL incremente la siguiente
posición en la matriz de secuenciador y carga el valor de Source en
dicha posición. El bit .DN se establece, o si .POS ≥.LEN, la
instrucción establece .POS=1.
Normalmente, se usa la misma estructura de CONTROL que para
las instrucciones SQI y SQO.
Importante
Usted debe probar y confirmar que la instrucción no cambie datos que usted no desea que cambien. La instrucción SQL realiza la operación en memoria contigua. En algunos casos, la instrucción carga datos más allá de la matriz en otros miembros del tag. Esto sucede si la longitud es excesiva y el tag es de un tipo de datos definido por el usuario.
Indicadores de estado aritmético:
No afectados
Condiciones de fallo:
Ejecución
Condición Acción lógica de escalera de relés
Preescan El bit .EN se establece para impedir una carga falsa cuando se inicia el escán del programa. La condición de salida de renglón se establece como
falsa.
condición de entrada de renglón es falsa
El bit .EN se borra. La condición de salida de renglón se establece como
falsa.
a condición de entrada de renglón es verdadera
.LEN ≤ 0 o
.POS < 0
.POS = .LEN
Examine el
bit .EN
.POS ≥ .LEN
El valor .POS
retorna al valor
inicial
.POS =.LEN
.POS=1
.POS =.POS+1
El bit .EN se establece
El bit .ER se borra
El bit .DN se borra
El bit .DN se
establece
El bit .ER se
establece
fin
no
si
si
no
El bit .DN se establece
.EN=0
.EN=1
no
si
si
no
no
si
Ir a
error
error
.POS > .LEN
la condicion de salida de
renglon se establece como
verdadera
si
no .LEN > tamaño
de la matriz
si
noFallo
mayor
Array[control.POS] = Source
Post-escan La condición de salida de renglón se establece como falsa.
Ejemplo: Una vez habilitada, la instrucción SQL carga value_3 en la próxima
posición en la matriz de secuenciador la cual es array_dint[5] en este ejemplo.