Texto Estructurado (TE)
El Texto Estructurado (TE) es un lenguaje de programación definido por la norma IEC 61131-3. Es un lenguaje textual, similar a lenguajes de alto nivel como Pascal y C, que permite escribir programas de forma clara y organizada. Permite asignaciones, llamadas a bloques de función y, según el hardware utilizado, sentencias condicionales y de bucle. Su sintaxis simple facilita su comprensión y ofrece al programador mayor flexibilidad que la programación en escalera, especialmente en tareas que implican operaciones lógicas y matemáticas detalladas.
Elementos de Texto Estructurado - Expresión
Las expresiones son estructuras que, al evaluarse, dan como resultado un valor de un tipo de dato específico. Se componen de operadores y operandos. Los operandos pueden ser literales, variables, llamadas a funciones o métodos con retornos, instancias de bloques de función con resultados o incluso otras expresiones. Los operadores son símbolos que representan operaciones aritméticas, lógicas o funcionales, y se aplican según el tipo de dato y siguen reglas de prioridad específicas.
Elementos de Texto Estructurado - Asignación
La asignación reemplaza el valor actual de una variable con el resultado de evaluar una expresión. Consiste en una variable a la izquierda, seguida del operador de asignación :=, la expresión a evaluar y, finalmente, el punto y coma ; que finaliza la sentencia.
Ejemplo
A continuación, se muestran cinco ejemplos diferentes de asignación en Texto Estructurado.
VAR
A : REAL;
B : REAL;
END_VAR
B := 10; // Atribuição do valor de um literal.
A := B; // Atribuição do valor de uma variável.
A := (B + 5); // Atribuição do valor resultante de uma operação.
A := FB_POW(B, 2); // Atribuição do valor resultante de uma função.
Elementos de Texto Estructurado - Comparación
La comparación devuelve un valor booleano como resultado. Debe constar de un operando a la izquierda, seguido de un operador de comparación y, a continuación, un segundo operando a la derecha. El resultado de la comparación se puede asignar a una variable.
Ejemplo
El siguiente ejemplo muestra una comparación que comprueba si un operando es mayor o igual que otro.
VAR
A : INT;
B : INT;
END_VAR
B := A >= 0;
Elementos de Texto Estructurado - Llamadas
En Texto Estructurado, existen dos tipos principales de llamadas: llamadas a funciones y llamadas a bloques de funciones.
1 - Llamada a Función
Las funciones se llaman mediante una sentencia que consta del nombre de la función seguido de una lista de parámetros entre paréntesis. Devuelven un valor directamente, que puede asignarse a una variable.
Ejemplo
El siguiente ejemplo muestra el uso de la función para calcular la raíz cuadrada de un operando.
VAR
A : REAL;
B : REAL := 81;
END_VAR
A := FB_SQRT(B, 2);
Al final de la ejecución del código, el valor de A será 9.0.
2 - Llamada a Bloque de Función
Los bloques de función se llaman mediante el nombre de la instancia del bloque, seguido de una lista de parámetros entre paréntesis. El estado interno del bloque se mantiene entre ejecuciones y se puede acceder a los valores de salida a través de sus atributos.
Ejemplo
El siguiente ejemplo demuestra el uso de un bloque de función de contador incremental (FB_CTU) en Texto Estructurado. El contador se utiliza para contar pulsos de una entrada digital (DI1) y activar una salida (DO1) cuando se alcanza un valor predefinido (30).
VAR
PRESET : UINT := 30;
COUNT : UINT;
CTU_INST_0 : FB_CTU;
END_VAR
CTU_INST_0.CU := DI1;
CTU_INST_0(R := DI2, PV := PRESET);
COUNT := CTU_INST_0.CV;
DO1 := CTU_INST_0.Q;