Instrucciones básicas en lenguaje AWL
El lenguaje AWL es de tipo texto, utiliza el Algebra de Boole como explicamos en la entrada de Lenguajes de programación de autómatas, hace uso de la lógica booleana y instrucciones nemónicas.
En esta serie de entradas dedicada al lenguaje IL explicaremos y aprenderemos las instrucciones del lenguaje usadas según la norma DIN- EN61131-3 y las variaciones de los diferentes fabricantes
Instrucciones básicas en Lenguaje AWL
Los contactos se representan mediante la operación lógica con la que se conectan al circuito. Si el contacto es abierto, se coloca solo la orden de la operación lógica y si es cerrado, se añade a dicha operación lógica una N de negación
Instrucción AND ( Y )
La designación alemana es UND ( U) y la inglesa es AND (A)
Formato: U <bit>
Operando | Tipo de dato | Área de memoria |
bit | BOOL | E, A, M, L, D, T, Z |


Como podemos ver en las imágenes anteriores tenemos el equivalente de Ladder en awl , dispones de un botón de stop normalmente cerrado( NC ) en serie con un botón de start normalmente abierto (NA) para el control de un motor.
vamos a simular el ejemplo en TIA PORTAL, el estado inicial como podemos ver en la siguiente imagen, el motor estará parado, debido a que no hemos pulsado el botón start


Si ahora pulsamos el botón Start, provocara que el RLO que viene con un 1 ponga el motor a 1 y esta se active


Como podemos ver activamos el motor al pulsar el botón Start
Instrucción Or ( O )
la instrucción OR realiza la operación lógica OR entre el RLO y el operando que aparece en la instrucción O
Formato: O <bit>
Operando | Tipo de dato | Área de memoria |
bit | BOOL | E, A, M, L, D, T, Z |
Vamos a ver un ejemplo sencillo en TIA PORTAL, por ejemplo un enclavamiento de un motor con un botón de paro y uno de marcha

Ahora vamos a activar el motor con el botón de Start y vemos como se enclava el motor y si soltamos el botón de Star, el motor sigue en marcha.

Ahora solo nos queda pulsar el boton de Stop para parar el motor y volver al estado inicial

Asignación (= )
Esta instrucción permite activar el bit de un operando indicado. Si el resultado lógico de la Rama ( RLO) en la entrada de la bobina es 1 , el operando indicado adopta el estado lógico 1. Si el estado lógico de la entrada de la bobina es 0 , el bit del operando indicado se pone a 0.
Como hemos visto en los ejemplos anteriores asignamos la operación lógica al motor con la instrucción asignación (=).
El RLO es el bit interno de la CPU que se afecta por las operaciones lógicas. Inicialmente y después de cada asignación el RLO es 1. El RLO es 1. El RLO se ve afectando por las operaciones lógicas y en la asignación, El RLO se copia en el destino.
Es importante destacar que NUNCA se puede repetir dos asignaciones iguales, es decir que si ya existe una asignación a la salida A=0.0, de deberá haber otra asignación a la misma salida.
RLO
Es el registro de estado que nos indica el valor lógico del programa después de cada operación lógica al ejecutar órdenes que modifican el valor de este bit. Al iniciar un programa , El RLO tendrá el valor de la primera orden que lo modifique.
Otras instrucciones con el RLO
- NOT : Invierte el valor de RLO
- SET : pone a uno el estado de RLO
- CLR: pone a cero el RLO
- SAVE: almacena el RLO en el registro de estado. Puede volver a leerse con la instrucción BR.
Los parentesis
El uso de los parentesis sirve para programar circuitos mas complejos. Al Abrir el parentesis, se indica la operación que realizara
- U(
- UN(
- O(
- ON(
Cada una de estas instrucciones llevarán un cierre de paréntesis
Cuando se abre un paréntesis, el estado del RLO que hay justo antes del paréntesis se guarda en memoria. A partir de este punto el RLO es una primera consulta, es decir se reinicia. Cuando se cierra, hace la operación que indica el paréntesis con el RLO guardado en memoria.

U E0.1
O(. // AQUI EL VALOR DE RLO SE GUARDA EN MEMORIA
U E0.0
U E0.2
) // EL RESULTADO DEL RLO DEL PARENTESIS SE PONE EN PARALELO CON EL ANTERIOR RLO GUARDADO
= A0.0