![]()
En este apartado veremos las principales instrucciones de este
lenguaje de programación. Por supuesto existe un juego amplísimo de
instrucciones con muy variadas e interesantes utilidades, pero nos vamos a
limitar a conocer las más básicas y utilizadas, lo que nos basta para realizar
algunos ejemplos sencillos. En cualquier manual de programación de autómatas
podrás encontrar todas las instrucciones existentes para todo tipo de
autómatas.
Vamos a referenciar las instrucciones por sus nemónicos. La mayoría de
las instrucciones tienen asociados uno ó más operandos que indican ó
suministran los datos sobre los que se ha de ejecutar cada instrucción, Estos
suelen ser direcciones de canales o valores constantes, toda instrucción
necesita uno o más canales de memoria.
La mayoría de las instrucciones están disponibles en forma
diferenciada y en forma no diferenciada, distinguiéndose las primeras por un
símbolo de arroba (@) delante del nemónico de la instrucción. Una instrucción
no diferenciada se ejecuta cada vez que es escaneada siempre que su condición
de ejecución sea ON, mientras que una instrucción diferenciada se ejecuta sólo
una vez después de que su condición de ejecución pase de OFF a ON. Si la
condición de ejecución no ha cambiado o ha cambiado de ON a OFF desde la última
vez que fue escaneada la instrucción,
ésta no se ejecutará.

Estas seis instrucciones básicas corresponden a las condiciones de ejecución en un diagrama de relés. Cada una de esta instrucciones y cada dirección de bit se puede utilizar tantas veces como sea necesario, no existe un número limitado ni restricciones en el orden en el que se deben utilizar mientras no se exceda la capacidad del PLC. Las combinaciones de estas condiciones determinan la ejecución o no de las siguientes instrucciones:

OUT y OUT NOT se utilizan para controlar el estado del bit designado de acuerdo con la condición de ejecución. OUT pone a ON el bit designado A para una condición de ejecución ON y lo pone a OFF para una condición de ejecución OFF. OUT NOT pone a ON el bit designado para una condición de ejecución OFF y lo pone a OFF para una condición de ejecución ON.

SET pone el bit operando a ON cuando la condición de ejecución es ON y
no afecta al estado del bit operando cuando la condición es OFF. RESET pone a
OFF el bit operando cuando la condición de ejecución es ON y no afecta al
estado del bit operando cuando la ejecución es OFF.

DIFU y DIFD se utilizan para poner a ON el bit designado durante sólo un ciclo de scan. Estas instrucciones se utilizan cuando no hay disponibles instrucciones diferenciadas y se desea la ejecución de una instrucción sólo en un scan. (El programa se ejecuta contínuamente ya que es cíclico. Un scan es una sola pasada a ese programa). Son útiles a la hora de simplificar la programación. Llevan un contacto asociado que se pone a ON durante solo un scan.

IL se utiliza siempre junto a ILC para crear enclavamientos en el
programa. Si la condición de ejecución de IL es ON el programa se ejecutará
como está escrito, con una condición de ejecución ON para cada instrucción que
haya entre IL e ILC. Si la condición de ejecución de IL es OFF no se ejecutarán
las instrucciones que hay entre IL e ILC.

El rango de V es de 000.0 a 999.9, sin escribir el punto decimal y N
define el número de contador. Un temporizador se activa cuando su condición de
ejecución se pone a ON y se resetea de nuevo al valor V cuando la condición de
ejecución se pone a OFF. Existe un contacto asociado que se pone a ON cuando el
temporizador termina la cuenta y este contacto asociado será condición de
ejecución de cualquier otra instrucción. Los temporizadores se resetean cuando
están enclavados entre IL e ILC.

CNT se utiliza para descontar a partir del valor V cuando su condición de ejecución pasa de ON a OFF. Se resetea cuando su contacto de reset se pone a ON. También tiene un contacto asociado que se pone a ON cuando el contador termina de contar el valor V que sirve de condición de ejecución para cualquier otra instrucción. Los contadores no se resetean cuando se encuentran enclavados entre IL e ILC.

Estas son las llamadas instrucciones de transferencia de datos más
importantes:
MOV copia el contenido del canal S al canal D cuando su condición de
ejecución es ON. S puede ser un canal ó un direccionamiento inmediato ( un valor precedido del símbolo #
).
XFER copia los contenidos de los canales S, S+1, S+2,..., S+N a los
canales D, D+1, D+2,..., D+N. N tiene que estar en código BCD.
BSET copia el contenido del canal S a todos los canales existentes
entre St y E. S también puede ser un direccionamiento inmediato.
XCHG intercambia el contenido de los canales S y T.