Está en la página 1de 8

27/6/2021 PRIMEROS PASOS CON TEXTO ESTRUCTURADO – (ST) STRUCTURED TEXT (Parte 1)

PRIMEROS PASOS CON TEXTO ESTRUCTURADO – (ST) STRUCTURED TEXT (Parte 1)


Imprimir

Detalles
Categoría de nivel principal o raíz: AUTÓMATAS
Visto: 38335

1.- Introducción
Este articulo es la primera parte de una serie de dos.
En el control industrial se utiliza la norma estándar internacional IEC 61131-3 que define los lenguajes
de programación de los Controladores Lógicos Programables (PLC). Uno de ellos es el Texto
Estructurado (Structured Text - ST) que es un lenguaje textual de alto nivel similar a PASCAL.
Un programa en ST se compone de declaraciones. Hay dos tipos de declaraciones: de asignación,
para asignar un valor a una variable y de control, como sentencias de selección y sentencias de
repetición.
Las declaraciones se componen de los siguientes elementos:
Variables, Constantes, Operadores y Funciones.
 
2.- Composición del Texto Estructurado
Operador de asignación:
El operador de asignación es := y asigna el valor de la expresión de la derecha a la variable de la
izquierda. Se utiliza para establecer valores iniciales, almacenar resultados de cálculo e incrementar las
variables.
Ejemplos:
A := 4 Asignamos a A el valor 4.
B := 2 * C  Asignamos a B el doble del valor de C.
D := E Asignamos a D el valor de E.
F := TRUE Asignamos a F el valor “cierto” (1 lógico)(on).
G := FALSE Asignamos a G el valor “falso” (0 lógico)(off).
 
Operador de comparación:
El operador de comparación es = no confundir el operador de asignación, con el de comparación.
Ejemplos:
A = 4 comparamos el valor de A con 4.
B = 2 * C comparamos el valor de B con el doble del valor de C.
Colores usados en el código
 El CX-Programmer muestra automáticamente texto en los colores siguientes:
Palabras reservadas:   Azul
Comentarios:             Verde
Errores:                       Rojo
Resto de cosas:         Negro
 Los colores NO los podemos personalizar. 
 
(* Ejemplo *)
a := a AND NOT b;
 
(* Selección *)
IF a = TRUE THEN
a := a AND B;
valor := (a+b) *15 +16#FF;
d := ABS (valor);
https://www.portalelectrozona.com/menuseccionplcomron/8-categoriacursoautomata/160-articulocableadodelautomata-3?tmpl=component&print=1&la… 1/8
27/6/2021 PRIMEROS PASOS CON TEXTO ESTRUCTURADO – (ST) STRUCTURED TEXT (Parte 1)

END_IF;
 Delimitador de instrucciones:
 Las declaraciones de asignación y control deben acabar siempre con un delimitador de punto y coma (
; ), no se pueden completar simplemente usando un retorno de carro.
Ejemplos:
 
(* Ejemplo 1 *)
A := A + B;
 
(* Ejemplo 2 *)
IF C = TRUE THEN
C := C AND B;
END_IF;
 
No se puede usar un delimitador dentro de una sentencia ya que se producirá un error de sintaxis.
Ejemplo:
(* Ejemplo *)     MAL 
IF C = TRUE ; THEN
C := C AND B;
END_IF;
 
 Comentarios:
 Los comentarios se encierran entre paréntesis y asteriscos (* y *). Se puede usar cualquier carácter
dentro del comentario excepto paréntesis y asteriscos. Los comentarios pueden comprender varias
líneas. No se admite anidamiento dentro de los comentarios.
 
Ejemplos:
(*Este es un ejemplo de comentario válido*)
(*(*Este es un ejemplo de comentario no válido*)*) 
 
Espacios, Retornos de Carro y Tabulaciones:
 Se pueden utilizar cualquier número de espacios, retornos de carro y tabulaciones en cualquier lugar
dentro de las sentencias. Se recomienda usarlos entre palabras reservadas y ecuaciones para facilitar
su mejor comprensión.
 No podemos utilizar espacios, retornos de carro y tabulaciones dentro de palabras reservadas,
nombres de variables, caracteres especiales y constantes (valores numéricos).
Ejemplos:
(* Ejemplo 1 *)   →   (* Ejemplo 1 *)
A:=A+B;                     A   :=   A   +   B;
 
(* Ejemplo 2 *)      →     (* Ejemplo 2 *)
IFC=TRUE  THEN           IF  C  =  TRUE  THEN
C:=C ANDB;                            C  :=  C  AND  B;
END_IF;                         END_IF;
 
 Mayúsculas y Minúsculas:
 Es indistinto el uso de mayúsculas y minúsculas en cualquier sentencia o nombre de variable.
 Ejemplos:
(* Ejemplo 1 *)
IF  A = TRUE  THEN
https://www.portalelectrozona.com/menuseccionplcomron/8-categoriacursoautomata/160-articulocableadodelautomata-3?tmpl=component&print=1&la… 2/8
27/6/2021 PRIMEROS PASOS CON TEXTO ESTRUCTURADO – (ST) STRUCTURED TEXT (Parte 1)

A := A  AND  B;
END_IF;
 
(* Ejemplo 2 *)
if  a = true  then
a := a  and  b;
end_if;
 
Nombres de variables:
 Los caracteres siguientes no se pueden utilizar en nombres de variables:
!   "   #   \(   %   &   `   (   )   -   =   ^   ~   \   /   |   @   [   ]   {   }   ;   :   +   *   ,   <   >   .   ¿  ?
Las variables no pueden comenzar por un número (0 a 9).
No se pueden utilizar espacios en nombres de variables.
 
Prioridad entre operadores:
Las operaciones que requieran prioridad las pondremos entre paréntesis.
Ejemplo:
 
AND tiene prioridad sobre OR.
 
En  “A OR B AND C”, se dará prioridad a B AND C.
 
En  “(A OR B) AND C”, se dará prioridad a (A OR B).
 
Cadenas de Texto: 
El número máximo de caracteres alfanuméricos en una cadena de texto (tipo STRING) es de 255.
Las cadenas de texto no distinguen entre mayúsculas y minúsculas.
Una cadena de texto se tiene que poner entre comillas  →  'AAA'.
 

    Notación Descripción


‘A’  Indica la cadena de texto "A" (ASCII 41)
‘’  Indica una cadena de texto que contiene un único espacio (ASCII 20)
‘’  Indica una cadena de texto vacía
 

Un carácter \) seguido de dos dígitos numéricos se interpretan como un hexadecimal.


\(02 → #02 hexadecimal
Un carácter \) seguido de una letra se interpreta como:
 
    Notación                                                       Descripción
 '$\('  Carácter de \) (signo del dollar)  (Código ASCII: #24)
 '\(''  Comilla simple  (Código ASCII: #27)
 '\)L' ó '\(l'  Final de línea (LF)  (Código ASCII: #0A)
 '\)N' ó '\(n'  Nueva línea (CR + LF)  (Código ASCII: #0D0A)
 '\)P' ó '\(p'  Final de página (FF)  (Código ASCII: #0C)
 '\)R' ó '\(r'  Retorno de carro (CR)  (Código ASCII: #0D)
https://www.portalelectrozona.com/menuseccionplcomron/8-categoriacursoautomata/160-articulocableadodelautomata-3?tmpl=component&print=1&la… 3/8
27/6/2021 PRIMEROS PASOS CON TEXTO ESTRUCTURADO – (ST) STRUCTURED TEXT (Parte 1)

 '\)T' ó '$t'  Tabulación horizontal (Tab)  (Código ASCII: #09)


 
Constantes Numéricas:
Los valores numéricos se pueden expresar en decimal, hexadecimal, octal o binario de la siguiente
forma:
Ejemplo, para el valor decimal 12:
 - Decimal (sin prefijo):         12
 - Hexadecimal:               16#C
 - Octal:                            8#14
 - Binario:                         2#1100
 
(* Ejemplo *)
IF  Z = TRUE  THEN
a := 12;
b := 16#C;
c := 8#14;
d := 2#1100;
END_IF;
 
Operadores o Funciones (de más a menos prioridad):
 

Operador Tipo de operación


 ( ) [ ]  Expresión/Tablas[índices]
 Función ()  Evaluación de una función
 **  Exponenciación
 NOT  Complemento
 *       /  Multiplicación / División
 +      -  Suma / Resta
 <  >     <=     >=  Comparaciones
 =      < >  Igualdad / Desigualdad
 AND     &  Operación Booleana AND
 XOR  Operación Booleana XOR
 OR  Operación Booleana OR
 
Sentencias o declaraciones:
 
         Sentencias o Declaraciones                       Función
 ;  Final de declaración
 (*   *)  Comentario
 :=  Asignación
 IF, THEN, ELSE, ELSIF, END_IF  Condicional simple
 CASE OF, ELSE, END_CASE  Condicional compuesta
 FOR, TO, BY, DO, END_FOR  Bucle con n repeticiones
 WHILE, DO, END_WHILE  Bucle con condición inicial
 REPEAT, UNTIL, END_REPEAT  Bucle con condición final
 EXIT  Sale del proceso de un bucle
https://www.portalelectrozona.com/menuseccionplcomron/8-categoriacursoautomata/160-articulocableadodelautomata-3?tmpl=component&print=1&la… 4/8
27/6/2021 PRIMEROS PASOS CON TEXTO ESTRUCTURADO – (ST) STRUCTURED TEXT (Parte 1)

 RETURN  Sale del bloque de función


  
3.- Sentencias de control
 Sentencia IF:
 Esta sentencia se utiliza para ejecutar una expresión cuando se cumple una condición especificada. Si
la condición no se cumple, se ejecuta una expresión diferente.
 IF se debe utilizar junto con END_IF.
 IF - Condición Simple:
Sintaxis:       
IF   < Condición >   THEN
       < Expresión_1 >;
ELSE
       < Expresión_2 >;
END_IF;
 
Diagrama de flujo:

Sintaxis:
IF < Condición_1 > THEN
       IF < Condición_2 > THEN
       < Expresión_1 >;
       ELSE
       < Expresión_2 >;
       END_IF;
END_IF;
 
 Diagrama de flujo:

https://www.portalelectrozona.com/menuseccionplcomron/8-categoriacursoautomata/160-articulocableadodelautomata-3?tmpl=component&print=1&la… 5/8
27/6/2021 PRIMEROS PASOS CON TEXTO ESTRUCTURADO – (ST) STRUCTURED TEXT (Parte 1)

 
 
IF - Condición Múltiple:
Sintaxis:
IF < Condición_1 > THEN < Expresión_1 >;
       ELSIF < Condición_2> THEN < Expresión_2 >;
       ELSIF < Condición_3> THEN < Expresión_3 >;
 
       etc…..
 
       ELSIF < Condición _n > THEN < Expresión _n >;
ELSE
                   < Expresión _m >;

Diagrama de flujo: 

https://www.portalelectrozona.com/menuseccionplcomron/8-categoriacursoautomata/160-articulocableadodelautomata-3?tmpl=component&print=1&la… 6/8
27/6/2021 PRIMEROS PASOS CON TEXTO ESTRUCTURADO – (ST) STRUCTURED TEXT (Parte 1)

Ejemplos:
IF A>0 THEN
     X:=10;
  ELSE
     X:=0;
  END_IF;
 
 
IF A THEN X:=10;
  ELSE X:=0;
END_IF;
 
 
 
IF A>0 AND B>1 THEN
     X:=10; Y:=20;
ELSE
     X:=0; Y:=0;
END_IF;
 
 
IF A>0 THEN X:=10;
https://www.portalelectrozona.com/menuseccionplcomron/8-categoriacursoautomata/160-articulocableadodelautomata-3?tmpl=component&print=1&la… 7/8
27/6/2021 PRIMEROS PASOS CON TEXTO ESTRUCTURADO – (ST) STRUCTURED TEXT (Parte 1)

ELSIF B=1 THEN X:=1;


ELSIF B=2 THEN X:=2;
ELSE
     X:=0;
END_IF;
 

 
HASTA AQUÍ LA PRIMERA PARTE
 

https://www.portalelectrozona.com/menuseccionplcomron/8-categoriacursoautomata/160-articulocableadodelautomata-3?tmpl=component&print=1&la… 8/8

También podría gustarte