CURSO DE PLC LENGUAJES DE PROGRAMACIÓN Lista de Instrucciones (IL) 1 Objetivo de la Lección Presentar el lenguaje de Lista de Instrucciones IL. Lista de Temas Instrucciones IL Instrucciones de Bit Instrucción AND Instrucción OR Asignación Simple Instrucciones de Retención Instrucciones de Palabra y Byte Instrucción AND Instrucción NAND Instrucción OR Instrucción NOR Instrucción EXOR Instrucción EXNOR Instrucción de Comparación Instrucciones de Carga y Transferencia Instrucciones para Temporizadores Instrucciones para Contadores Instrucciones Aritméticas Instrucciones de Control de Flujo LENGUAJE DE LISTA DE INSTRUCCIONES El programa se realiza por medio de la escritura de instrucciones predefinidas por el lenguaje. Sintaxis del Lenguaje: SINTAXIS DE LAS INSTRUCCIONES OPERANDO ATRIBUTO FUENTE DESTINO COMENTARIO OPP OPA SRC DEST Coment CURSO DE PLC LENGUAJES DE PROGRAMACIÓN Lista de Instrucciones (IL) 2 Cada instrucción se divide en cinco campos: 1. Operando (sintaxis OPP): Indica que hace la instrucción. 2. Atributo del Operando (sintaxis OPA): Indica el formato de datos sobre el cual se opera: Bit, Byte, Word. 3. Fuente (sintaxis SRC): fuente de información. 4. Destino (sintaxis DEST): lugar en donde se produce el resultado de la instrucción, siempre se antecede con una coma. 5. Comentario (sintaxis coment): campo opcional que permite escribir un comentario para clarificar la instrucción, el procesador no lo tiene en cuenta; siempre se inicia con punto y coma. Instrucciones IL: A continuación se hace una descripción de las instrucciones IL más comunes: • Instrucciones de Bit: Este tipo de instrucciones evalúa los bits de la fuente consecutivamente en cada sentencia. • Instrucción AND: Se realiza por medio del operando A. El complemento de la entrada (equivalente a un contacto normal cerrado) se realiza por medio del operando AN. Cada instrucción se forma con el Operando y la fuente. Ejemplo: A A AN AN • I0.0 I0.1 I0.1 I0.1 ; Desempeña I0.0 AND I0.1 ; I0.0 AND (NOT I0.1) ; (NOT I0.0) AND (NOT I0.1) Instrucción OR: El operando es O; la instrucción se conforma agregando la fuente; para negar la entrada se usa ON. La primera sentencia o instrucción es AND cuando se requiere realizar una función OR. Ejemplos: A I0.0 O I0.1 ;I0.0 ; I0.0 OR I0.1 CURSO DE PLC LENGUAJES DE PROGRAMACIÓN Lista de Instrucciones (IL) • A ON I0.0 I0.1 ;I0.0 ;I0.0 OR AN ON I0.0 I0.1 ;NOT I0.0 ;(NOT I0.0) OR 3 (NOT I0.1) (NOT I0.1) Asignación Simple: El operando es igual (=);la fuente le sigue a la operando. Ejemplo: A I0.0 AN I0.1 ; I0.0 AND (NOT I0.1) A I0.2 ; I0.0 AND (NOT I0.1) AND I0.2 = Q0.0 ; Q0.0 = I0.0 AND (NOT I0.1) AND I0.2 • Instrucciones de retención de bit: Instrucciones de puesta a uno S y puesta a cero R. La sintaxis de la instrucción se compone de: operando y fuente. Ejemplo: En la tabla a continuación, se presentan un conjunto de instrucciones IL y su equivalente FBD. Instrucción AND Lenguaje FBD IL A A R I0.0 I0.1 Q0. OR 0 A O ON = I0.0 I0.1 I0.1 Q0. EXOR 0 A AN ON A = I0.0 I0.1 I0.0 I0.1 CURSO DE PLC LENGUAJES DE PROGRAMACIÓN Lista de Instrucciones (IL) 4 Q0. NAND 0 AN ON = NOR 0 AN AN S I0.0 I0.1 Q0. I0.0 I0.1 Q0. 0 • Instrucciones de Palabra y Byte: En estas instrucciones tanto la fuente como el destino tienen formato de byte o palabra esto se diferencia al escribir W para palabra y B para byte en el atributo del operando. El resultado de la instrucción se carga en el registro destino. • Instrucción AND: El operando es A y la operación AND se realiza bit a bit entre fuente y destino. Ejemplo: A W B,C ; AND entre registro B y registro C, formato de 16 bits. El resultado se guarda en el registro C. A B en B. • 10,B ; AND entre registro B y el número 10, el resultado se guarda Instrucción NAND: Realiza la operación NAND entre la fuente y el destino el resultado se guarda en el destino. El operando es AN. Tenga en cuenta que la instrucción AN de bit es distinta a la AN de palabra: la AN de bit niega la entrada, mientras que aquí se está negando el resultado de la AND. Ejemplo: • AN W guarda en C. 7,C ;NAND entre el registro C y el número 7, el resultado se AN B,C ;NAND entre los resgistro B y C. El resultado en C. W Instrucción OR: Realiza la operación OR entre la fuente y el destino, el resultado se almacena en el registro de destino. CURSO DE PLC LENGUAJES DE PROGRAMACIÓN Lista de Instrucciones (IL) Ejemplo: O • W W B,C ; C = NOT ( B OR C ) Instrucción EXOR: Realiza la EXOR entre el registro fuente y el de destino, en este ultimo es almacenado en el resultado. Ejemplo: XO • B,C. Instrucción NOR: Efectúa la NOR entre el registro fuente y el registro destino, el resultado se almacena en el registro destino. Ejemplo: ON • 5 W B,C ; C= B EXOR C Instrucción EXNOR: Realiza la EXNOR entre el registro fuente y el de destino, el resultado se almacena en el registro destino. Ejemplo: XON W B,C ; C= B EXOR C En la siguiente tabla se ejemplifican algunos casos de las instrucciones presentadas: Función Lógica AND NAND OR NOR EXOR EXNOR • Registro B Registro C 1111 0000 1100 11 00 1010 1010 1010 1010 1010 1010 1010 1010 1010 1010 1010 1010 0100 0101 0110 0111 0100 0101 0110 0111 0000 0000 1111 0000 1111 0000 0000 1111 1111 1111 1111 0000 1111 1111 1111 0000 1001 1010 1011 1100 1001 1010 1011 1100 Instrucción A W B, C AN W B, C O W B, C ON W B, C XO W B, C XON W B, C Resultado 0000 0000 1100 0000 0101 1111 1111 0101 1111 1111 1111 1010 0000 0000 0000 0101 1101 1111 1101 1011 0010 0000 0010 0100 Instrucción de Comparación: Compara el destino con la fuente, el resultado de la comparación se deduce de el estado de las banderas. El operando es CPLA. En realidad, la comparación resta el operando destino menos el fuente, sin cargar el resultado. Las banderas son bits indicadores de la CPU asociados a su ALU, en la siguiente tabla se listan las banderas que se encuentran en un PLC típico. CURSO DE PLC LENGUAJES DE PROGRAMACIÓN Lista de Instrucciones (IL) Bander a CY=1 CY=0 O=1 O=0 Z=1 Z=0 V= 1 V= 0 N=1 N=0 6 Símbolo Instrucción Nombre y Función de la de la para consultar Bandera Bandera la Bandera Acarreo, se carga con el A CY acarreo de la última operación aritmética C realizada. AN CY CY= 1: Hubo acarreo. CY= 0: No hubo acarreo. Sobreflujo, Indica si la A O última operación realizada tuvo un desbordamiento. O O= 1: Hubo desbordamiento. AN O O= 0: No hubo desbordamiento. Cero, Indica si el último A Z resultado fue igual a cero. Z= 1: El resultado fue Z cero. AN Z Z= 0: El resultado fue distinto de cero. Verdadero, Almacena el resultado de la última instrucción de bit realizada. V V= 1: El resultado fue verdadero. V= 0: El resultado fue falso. Negativo, indica el signo A N del último resultado. N= 1: El resultado es N negativo. AN N N= 0: El resultado es positivo. Lo anterior quiere decir que primero se hace la comparación y después se consultan las banderas para determinar cual es la relación de magnitud entre los valores comparados. CURSO DE PLC LENGUAJES DE PROGRAMACIÓN Lista de Instrucciones (IL) 7 A continuación, se presentan las equivalencias en lenguaje IL de los bloques comparadores del lenguaje FBD. Relación M0 = 28 M0 < > 28 M0 > 28 M0 >= 28 M0 < 28 MO <= 28 • L L CPLA A = L L CPLA AN = L L CPLA AN AN = L L CPLA AN = L L CPLA A = L L CPLA A O = IL W W W W W W W W W W W W W W W W W W FBD M0,A 28,B B,A Z Q0.0 M0,A 28,B B,A Z Q0.0 M0,A 28,B B,A N Z Q0.0 M0,A 28,B B,A N Q0.0 M0,A 28,B B,A N Q0.0 M0,A 28,B B,A N Z Q0.0 Instrucciones de Carga y Transferencia: Son utilizadas para copiar el contenido de la fuente en el destino. La diferencia entre Carga y Transferencia reside en que con la carga el destino es siempre un registro de la CPU y en la Transferencia el la fuente es siempre un registro de la CPU. CURSO DE PLC LENGUAJES DE PROGRAMACIÓN Lista de Instrucciones (IL) 8 Ejemplo: L W 10,B ; carga el número 10 en el registro B. T W B,M0 ; carga en M0 el contenido del registro B. • Instrucciones para Temporizadores: Se dividen en tres grupos: Definición e inicio del temporizador, Reposición y Detención. Existe un Operando específico de definición e inicio para cada tipo de temporizador (Vea la tabla siguiente), por el contrario, los Operandos de Reposición (RT) y Detención (TH) son comunes para todos los tipos de temporizadores. TIPO DE TEMPORIZADOR Impulso Impulso Memorizado Retardo de Conexión Retardo de Conexión Memorizado Retardo de Desconexión SP SPE SR EJEMPLO DE LA SINTAXIS DE LA INSTRUCCIÓN SP A, T1 SPE A, T1 SR A, T1 SRE SRE A, T1 OPERANDO SF SF A, T1 Ejemplo: Analice las instrucciones IL necesarias para desarrollar el temporizador equivalente en FBD. TIPO DE TEMPORIZAD OR Impulso IL A I0.0 L W t#20s,A SP A,T1 A I0.1 TH T1 A I0.2 RT T1 L W T1,A A T1 = Q0.0 FBD CURSO DE PLC LENGUAJES DE PROGRAMACIÓN Lista de Instrucciones (IL) Impulso Memorizado Retardo de Conexión Retardo de Conexión Memorizado Retardo de Desconexión A I0.0 L W t#20s,A SPE A,T1 A I0.1 TH T1 A I0.2 RT T1 L W T1,A A T1 = Q0.0 A I0.0 L W t#20s,A SR A,T1 A I0.1 TH T1 A I0.2 RT T1 L W T1,A A T1 = Q0.0 A I0.0 L W t#20s,A SRE A,T1 A I0.1 TH T1 A I0.2 RT T1 L W T1,A A T1 = Q0.0 A I0.0 L W t#20s,A SF A,T1 A I0.1 TH T1 A I0.2 RT T1 L W T1,A A T1 9 CURSO DE PLC LENGUAJES DE PROGRAMACIÓN Lista de Instrucciones (IL) = • 10 Q0.0 Instrucciones para Contadores: Los operandos son: ¾ Definición Contador (SCY). ¾ Conteo Ascendente (CU). ¾ Conteo Descendente (CD). ¾ Reponer Contador (RCY). Ejemplo: En la tabla se muestran ejemplos de la sintaxis de las instrucciones. IL A CU A CD A L SC A RC L T L A = • W W W W FBD I0.0 C1 I0.1 C1 I0.2 100,A A,C1 I0.3 C1 C1,A A,M0 C1,A C1 Q0.0 Instrucciones Aritméticas: El resultado de las operaciones aritmética se obtiene en formato de palabra o byte. La fuente y el destino son siempre registrados en la CPU. Las operaciones son: ¾ ¾ ¾ ¾ ¾ ¾ Suma. Suma con Acarreo. Resta. Resta con Préstamo. Multiplicación. División. CURSO DE PLC LENGUAJES DE PROGRAMACIÓN Lista de Instrucciones (IL) Ejemplo: Operación Suma Suma con Acarreo Resta Operand o Ejemplo Descripción ADD B B,A ADD W B,A ADC B C,A ADC W C,A SUB B D,A SUB W B,A ADD ADC SUB 11 CURSO DE PLC LENGUAJES DE PROGRAMACIÓN Lista de Instrucciones (IL) Operación Resta con Préstamo Multiplicación División Operand o Ejemplo Descripción SBB B C,A SBB W D,A MUL B D,A MUL W B,A DIV B D,A DIV W C,A SBB MUL DIV 12 CURSO DE PLC LENGUAJES DE PROGRAMACIÓN Lista de Instrucciones (IL) • 13 Instrucciones de Control de Flujo: Son de salto y llamada. ¾ Instrucciones de Salto: Se conforman con Operando y Destino. El Destino es el símbolo que representa el lugar donde se debe saltar, si la condición de salto se cumple. En la tabla se relacionan las diversas instrucciones de salto y las condiciones a las que obedecen. Tipo de Salto Operando Incondicional Si Verdadero Si Falso Si Carry Si No hay Carry Si Sobreflujo Si No hay Sobreflujo Si Negativo Si Positivo Si es cero Si es Diferente de cero Si Mayor que (aritmética complemento a 2 con signo) Si Menor Que o Cero (aritmética complemento a 2 con signo) Menor Que o Cero (aritmética sin signo) Mayor Que (aritmética sin signo) JP JPC JPCI JPCY JPCN JPO JPON JPM JPP JPZ JPN JPAG JPMZ Condición de Banderas V= 1 V= 0 CY= 1 CY= 0 O= 1 O= 0 N= 1 N= 0 Z= 1 Z= 0 Z=0 y ((O=0 y N=0) o N=1)) (Z=1 o N=1) y (O=0 y (N=0 o O=1)) JPLG Z=0 y CY=0 JPCZ Z=1 o CY= 1 ¾ Instrucciones de Llamada: Llamadas de Módulo: Son incondicional CM ó condicional CMC. El campo de destino contiene el nombre del módulo de programa al cual se llama. A este grupo agregamos las instrucciones de fin de módulo, nombradas también de retorno. Si un módulo de programa fue llamado por otro, termina con una instrucción de fin de módulo. Ejemplo: CM CMC EM EMC FC0 FC0 ; llama incondicionalmente al módulo FC0 ; llama al módulo FC0 sólo si V=1 (verdadero) ; retorna de manera incondicional ; retorna si V=1 (verdadero) CURSO DE PLC LENGUAJES DE PROGRAMACIÓN Lista de Instrucciones (IL) Ejemplo de Aplicación: Escriba la solución al problema del Elevador de Piezas, visto en una lección anterior, en lenguaje IL. ;AVANCE A A A S -S0 -S1 -S3 -Y1 AN A A S -M0_0 -S2 -S3 -Y2 ;BIT DE ESTADO A S -S4 -M0_0 A A R -S1 -S3 -M0_0 ;RETROCESO A A A R -M0_0 -S2 -S3 -Y1 A R EM -S4 -Y2 14 CURSO DE PLC LENGUAJES DE PROGRAMACIÓN Lista de Instrucciones (IL) 15 Compárela ahora con la solución en lenguaje de contactos: Reflexiones Sobre lo Visto: El lenguaje IL permite un mayor acceso a los recursos del sistema; basándose en él puede hacer uso de las operaciones aritméticas, lo anterior no era posible en los 3 lenguajes estudiados previamente. Aquí sólo se han presentado las instrucciones IL más importantes. Sin embargo, consideramos que forman una base sólida para la comprensión del lenguaje; el estudiante podrá hacer una profundización de conocimientos al estudiar el lenguaje para el tipo de PLC que disponga a mano.