El editor Lista de instrucciones (IL) es un editor de tablas. La estructura de red de los programas FBD o LD también se representa en un programa IL. Básicamente, una red es suficiente en un programa IL, pero teniendo en cuenta el cambio entre FBD, LD e IL también puede utilizar redes para la estructuración de un programa IL.
Para activar el lenguaje de implementación IL para EcoStruxure Machine Expert, vaya al cuadro de diálogo Herramientas > Opciones, categoría Editor FBD, LD e IL, ficha IL.
Información sobre herramientas
La información sobre herramientas contiene información sobre las variables o los parámetros del módulo.
Consulte Trabajo en el editor FBD y LD.
Inserción y organización de los elementos
oLos comandos para trabajar en el editor están disponibles en el menú IL, FBD, LD. Los comandos de uso frecuente también están disponibles en el menú contextual.
oLas unidades de programación que sean elementos se insertan cada una en la posición actual del cursor a través de los comandos Insertar, disponibles en el menú IL, FBD, LD.
oEs posible arrastrar un elemento de Red desde herramientas hasta la flecha hacia arriba o hacia abajo de la parte izquierda del editor. Se creará una nueva red encima o debajo del elemento existente.
oPuede utilizar los comandos para cortar, copiar, pegar y eliminar disponibles en el menú Editar para organizar los elementos.
oConsulte también algo de información sobre el lenguaje de programación Lista de instrucciones - IL.
oLos operadores con funcionalidad EN/ENO sólo se pueden insertar dentro del editor FBD y LD.
En este capítulo se describe cómo se estructura el editor de tablas, cómo se puede navegar en el editor y cómo utilizar operandos complejos, llamadas y saltos.
Estructura del editor de tablas IL
Editor de tablas IL
Cada línea de programa está escrita en una fila de la tabla, estructurada en campos por las columnas de la tabla:
Columna |
Contiene... |
Descripción |
---|---|---|
1 |
operador |
Este campo contiene el operador IL (LD, ST, CAL, AND, OR, etc.) o un nombre de función. En caso de una llamada de bloque de funciones, los parámetros respectivos también se especifican aquí. Introduzca el campo de prefijo := o =>. Para obtener más información, consulte Modificadores y operadores en IL. |
2 |
operando |
Este campo contiene exactamente un operando o un símbolo de salto. Si se necesita más de un operando (operadores múltiples o extensibles AND A, B, C, o llamadas a funciones con varios parámetros), escríbalos en las siguientes líneas y deje el campo del operador vacío. En este caso, añada una coma de separación de parámetros. En el caso de un bloque de funciones, programa o llamada de acción, añada los paréntesis de apertura o cierre correspondientes. |
3 |
dirección |
Este campo contiene la dirección del operando como se define en la parte de declaración. No se puede editar este campo. Utilice la opción Mostrar dirección de símbolo para activarlo o desactivarlo. |
4 |
comentario de símbolo |
Este campo contiene el comentario definido para el operando en la parte de declaración. No se puede editar este campo. Utilice la opción Mostrar dirección de símbolo para activarlo o desactivarlo. |
5 |
comentario de operandos |
Este campo contiene el comentario de la línea actual. Es editable y se puede activar o desactivar mediante la opción Mostrar comentario de operandos. |
oTeclas de flecha ARRIBA y ABAJO: desplazamiento al campo por encima o por debajo.
oTAB: desplazamiento dentro de una línea al campo de la derecha.
oMAYÚS+TAB: desplazamiento dentro de una línea al campo de la izquierda.
oESPACIO: abre el campo seleccionado para su edición. Como alternativa, realiza una pulsación del ratón sobre el campo. Si procede, el asistente Accesibilidad estará disponible a través del botón ... Puede cerrar un campo de edición abierto presionando INTRO, lo que confirma las entradas actuales, o presionando ESC para cancelar las entradas realizadas.
oCTRL+INTRO: introduce una nueva línea debajo de la actual.
oSUPR: borra la línea actual, o sea, donde haya seleccionado actualmente cualquier campo.
oCortar, Copiar, Pegar: para copiar 1 o varias líneas, seleccione al menos 1 campo de la línea o líneas y ejecute el comando Copiar. Para cortar una línea, utilice el comando Cortar. Pegar insertará las líneas copiadas o cortadas previamente antes de la línea donde actualmente se ha seleccionado un campo. Si no se ha seleccionado ningún campo, se insertarán en el extremo de la red.
oCTRL+INICIO desplaza hasta el principio del documento y marca la primera red.
oCTRL+FIN desplaza hasta el final del documento y marca la última red.
oRE PÁG desplaza hacia arriba 1 pantalla y marca el rectángulo superior.
oAV PÁG desplaza hacia abajo 1 pantalla y marca el rectángulo superior.
Operandos múltiples (operadores extensibles)
Si el mismo operador se utiliza con varios operandos, se pueden emplear 2 formas de programación:
oLos operandos se introducen en las líneas siguientes, separados por comas, por ejemplo:
LD 7
ADD 2,
4,
7
ST iVar
oLa instrucción se repite en las líneas siguientes, por ejemplo:
LD 7
ADD 2
ADD 4
ADD 7
ST iVar
Si se va a utilizar un operando complejo, escriba antes un paréntesis de apertura y, a continuación, utilice las siguientes líneas para los componentes particulares del operando. Por debajo de ellos, en una línea distinta, introduzca el paréntesis de cierre.
Ejemplo: Rotación de una cadena de 1 carácter en cada ciclo.
Código ST correspondiente:
stRotate := CONCAT(RIGHT(stRotate, (LEN(stRotate) - 1)), (LEFT(stRotate, 1)));
LD stRotate
RIGHT( stRotate
LEN
SUB 1
)
CONCAT( stRotate
LEFT 1
)
ST stRotate
Introduzca el nombre de la función en el campo del operador. Proporcione el parámetro de entrada (primero) como operando en una operación LD precedente. Si hay más parámetros, proporcione el siguiente en la misma línea de la del nombre de la función. Puede añadir más parámetros en esta línea, separados por comas o en líneas posteriores.
El valor de retorno de la función se almacenará en el acumulador. Se aplica la siguiente restricción relativa a la norma IEC.
NOTA: No es posible una llamada de función con varios valores de retorno. Sólo se puede utilizar 1 valor de retorno para una operación subsiguiente.
Ejemplo: Se llama a la función GeomAverage, que contiene 3 parámetros de entrada. El primer parámetro lo proporciona X7 en una operación precedente. El segundo, 25, lo proporciona el nombre de la función. El tercero lo proporciona la variable tvar, en la misma línea o en la siguiente. El valor de retorno se asigna a la variable Ave.
Código ST correspondiente:
Ave := GeomAverage(X7, 25, tvar);
Llamada de función en IL:
LD X7
GeomAverage 25
tvar
ST Ave
Llamadas de bloque de funciones y llamadas de programa
Utilice el operador CAL- o CALC. Introduzca el nombre de la instancia del bloque de funciones o el nombre del programa en el campo de operando (segunda columna), seguido de un paréntesis de apertura. Introduzca los parámetros de entrada en una de las siguientes líneas:
Campo del operador: nombre del parámetro
Campo de prefijo:
o:= para los parámetros de entrada
o=> para los parámetros de salida
Campo de operando: parámetro actual
Campo de sufijo:
o, si siguen otros parámetros
) después del último parámetro
o() en caso de llamadas sin parámetros
Ejemplo: Llamada de POUToCAll con 2 parámetros de entrada y 2 parámetros de salida.
Código ST correspondiente:
POUToCall(Counter := iCounter, iDecrement:=2, bError=>bErr, wError=>wResult);
Llamada de programa en IL con los parámetros de entrada y de salida:
No es necesario utilizar todos los parámetros de un bloque de funciones o de un programa.
NOTA: No se pueden utilizar expresiones complejas. Éstas se deben asignar a la entrada del bloque de funciones o programa antes de la instrucción de llamada.
Para realizarse como un bloque de funciones o una llamada de programa, el nombre de la acción se va a añadir al nombre de la instancia o del programa.
Ejemplo: Llamada de acción ResetAction.
Código ST correspondiente:
Inst.ResetAction();
Llamada de acción en IL:
CAL Inst.ResetAction()
Para realizarse como una llamada de función, el nombre de la instancia con el nombre de método anexado se introducirá en la primera columna (operador).
Ejemplo: Llamada de método Home.
Código ST correspondiente:
Z := IHome.Home(TRUE, TRUE, TRUE);
Llamada de método en IL:
LD TRUE
IHome.Home TRUE
TRUE
ST Z
Un salto se programa con JMP en la primera columna (operador) y un nombre de etiqueta en la segunda columna (operando). La etiqueta se ha de definir en la red de destino en el campo etiqueta.
La lista de instrucciones que precede al salto incondicional tiene que terminar con uno de los siguientes comandos: ST, STN, S, R, CAL, RET u otro JMP.
Este no es el caso de un salto condicional . La ejecución del salto depende del valor cargado.
Ejemplo: Instrucción de salto condicional; en caso de que bCallRestAction sea TRUE, el programa debe saltar a la red marcada con Cont.
Instrucción de salto condicional en IL:
LDN bCallResetAction
JMPC Cont