Texto Estructurado (ST)
Texto Estructurado es un lenguaje de programación definido por la norma IEC 61131-3, similar a otros de alto nivel como Pascal y C, que permite escribir programas de manera clara y organizada. Con él, es posible realizar asignaciones, llamar bloques de funciones y, dependiendo del equipo utilizado, ejecutar instrucciones condicionales y de repetición. Su sintaxis sencilla facilita la comprensión y ofrece al programador mayor flexibilidad en comparación con Ladder, especialmente en tareas que implican lógica detallada y operaciones matemáticas.
Elementos del texto estructurado - Expresión
Las expresiones son estructuras que, al ser evaluadas, resultan en un valor de un tipo de dato específico. Están formadas por operadores y operandos. Los operandos pueden ser literales, variables, llamadas a funciones o métodos con valor de retorno, instancias de bloques de funciones 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, siguiendo reglas específicas de prioridad.
Elementos del texto estructurado - Asignación
La asignación actualiza el valor de una variable con el resultado obtenido al evaluar una expresión. La sintaxis consiste en una variable en el lado izquierdo, seguida del operador de asignación ':=', la expresión a evaluar y un punto y coma ';' para terminar la instrucción.
Ejemplos
A continuación, se pueden observar cinco ejemplos diferentes de asignación en Structured Text.
VAR A : REAL; B : REAL; END_VAR
B := 10; //Asignar el valor de un literal.
A := B; //Asignar el valor de una variable.
A := (B + 5); //Asignación del valor resultante de una operación.
A := FB_POW(B, 2); //Asignación del valor resultante de una función.
|
|---|
Elementos del texto estructurado - Comparación
Una comparación devuelve un valor booleano como resultado. Debe consistir en un operando a la izquierda, seguido de un operador de comparación y luego un segundo operando a la derecha. El resultado de la comparación puede asignarse a una variable.
Ejemplos
El siguiente ejemplo muestra una comparación que verifica si un operando es mayor o igual que otro.
VAR A : INT; B : INT; END_VAR
B := A >= 0;
|
Elementos del texto estructurado - Llamadas
En Texto Estructurado, existen dos tipos principales de llamadas: llamadas a funciones y llamadas a bloques de funciones.
1 - Llamada de función
Las funciones se llaman mediante una instrucción compuesta por el nombre de la función seguido de una lista de parámetros entre paréntesis. Devuelven un valor directamente, el cual puede ser asignado a una variable.
Ejemplos
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 - Llamadas a bloques de funciones
Los bloques de función se invocan utilizando el nombre de la instancia del bloque, seguido de una lista de parámetros entre paréntesis. El estado interno del bloque se conserva entre ejecuciones y se puede acceder a los valores de salida a través de sus atributos.
Ejemplos
El siguiente ejemplo demuestra el uso de un bloque de función de contador creciente (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 : UNIT; 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;
|