138
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

MicroLogix 1100_3

Embed Size (px)

DESCRIPTION

funciones del micrologix 1100

Citation preview

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.

Instrucciones de matriz (Archivo/misceláneas) (PID, PTO, PWM, LCD)