![Page 1: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/1.jpg)
IEC 61131-3
Programación en ST
(Structured Text)
24 de marzo de 2013
Antonio Cambronero , Product Engineer
OMRON Electronics Iberia S.A.U.
www.infoPLC.net
![Page 2: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/2.jpg)
Introducción
IEC 61131-3 ( Programación en ST )
![Page 3: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/3.jpg)
3
¿qué es y para que sirve
Structured Text (ST)?
• Lenguaje de alto nivel (similar a
PASCAL).
• Utilizado en control industrial.
• Definido por IEC 61131-3.
• Incluye sentencias de control y
asignación.
![Page 4: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/4.jpg)
4
Elementos de un programa en ST
Parte declarativa
Parte ejecutiva
![Page 5: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/5.jpg)
Reglas de sintaxis
IEC 61131-3 ( Programación en ST )
![Page 6: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/6.jpg)
NOTA: Tener siempre en
cuenta la precedencia de
los operadores
Ejemplos:
2.0 * 3.1415 * radio
ABS( temp ) / presion
Valvula1 AND NOT Valvula2
6
Expresiones
• Son reglas para calcular un valor.
• Los tipos pueden ser: booleano, real, entero, etc.
• Los operadores pueden ser:
• Una constante
• El valor de una variable.
• El resultado de una función.
![Page 7: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/7.jpg)
7
La instrucción de asignación
Se escribe la expresión Se evalúa el resultado Se asigna a la variable
• Asigna el valor de la expresión de la derecha a la variable de la
izquierda.
• El operador de asignación es :=
• No confundir el operador de asignación, con el de comparación
• (Asignación) := (comparación) =
Ej. Cálculo longitud
longitud := 2 * pi * r
R=5, PI=3,14159
longitud := 2 * pi * r
Valor actual de la
variable...
longitud := 31.4159
![Page 8: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/8.jpg)
8
Delimitadores
Cualquier sentencia debe acabar
siempre con un delimitador ( ; )
No usar un delimitador dentro de
una sentencia
(* ------ Asignación ------*)
a := a AND NOT b;
(*------ Seleccción Simple ------*)
IF a = TRUE THEN
a := a AND b;
END_IF;
(*------ Selección Simple ------*)
IF a = TRUE ; THEN
a := a AND b;
END_IF;
![Page 9: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/9.jpg)
9
Añadir Comentarios
• Los comentarios se encierran entre paréntesis y asteriscos (* y *)
• Se puede usar cualquier carácter dentro del comentario.
• Los comentarios pueden comprender varias líneas.
(* ------ Asignación ------*)
a := a AND NOT b;
(*------ Selección Simple ------*)
IF a = TRUE THEN
a := a AND b;
END_IF;
![Page 10: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/10.jpg)
10
Espacios, Retornos de Carro y
Tabulaciones
• Se puede usar cualquier número de
estos caracteres dentro del código ST.
• Excepciones:
• Palabras reservadas, nombres de
variables, caracteres especiales,
constantes.
• Siempre usarlos entre palabras
reservadas y variables.
(* ------ Asignación ------*)
a := a AND NOT b;
(*------ Selección Simple ------*)
IF a = TRUE THEN
a := a AND b;
END_IF;
![Page 11: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/11.jpg)
11
Mayúsculas y Minúsculas
Uso indistinto de mayúsculas / minúsculas en cualquier
sentencia o nombre de variable
=
(*------ Seleccción Simple ------*)
if a = true then
a := a and b;
endif;
(*------ Selección Simple ------*)
IF A = TRUE THEN
A := A AND B;
END_IF;
![Page 12: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/12.jpg)
12
Nombres de variable
• Los siguientes caracteres no se pueden utilizar en nombres de
variables:
• ! “ # $ % & ‘ ( ) - = ^ \ | @ [ ] { } ; : + * , < >
. / ? ¿
• Los nombre de variables pueden ser de hasta 30,000 caracteres
de longitud.
• Las variables no pueden comenzar con un numero (0 a 9)
![Page 13: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/13.jpg)
13
Constantes Numéricas
Los valores numéricos se pueden expresar en...
- Decimal (sin prefijo) : 128
- Hexadecimal : 16#4D2
- Octal : 8#1355
- Binario : 2#10010010
En constantes enteras o reales, se puede usar ( _ ) para formatear el
literal, esto mejora lectura del código.
Real: 12_345.0, 1.2_345
Enteros: -1_23, 1_234_567, 2#1100_0100, 16#FF_0F
(*------ Seleccción Simple ------*)
if chico_a = true then
a := 10;
b := 16#A;
c := 8#12;
d := 2#1010;
endif;
![Page 14: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/14.jpg)
Constantes de Texto • El numero de caracteres en una variable de tipo STRING es de 1 a 255.
• Una constante de texto se pone entre comillas → 'AAA'.
• Las mayúsculas y minúsculas son discriminadas.
• Un carácter $ seguido de dos dígitos numéricos son interpretados como un
hexadecimal.
• $02 → #02 hexadecimal
• Un carácter $ seguido de una letra es interpretado como:
$$: carácter $ (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 pagina (FF) (Código ASCII: #0C)
$R ó $r: Retorno de carro (CR) (Código ASCII: #0D)
$T ó $t: Tabulación horizontal (Tab) (Código ASCII: #09)
![Page 15: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/15.jpg)
15
Tipos de datos (I)
Símbolo Contenido Tamaño Rango de valores
BOOL Datos de bit 1 0 (falso), 1 (verdadero)
INT Entero 16 -32.768 a +32.767
DINT Entero Doble 32 −2,147,483,648 a +2,147,483,647
LINT Entero Largo 64 −9,223,372,036,854,775,808 a
+9,223,372,036,854,775,807
UINT Entero sin signo 16 &0 a 65,535
UINT BCD Entero sin signo BCD WORD ( #0000 a #FFFF ) ó ( &0 a 65,535 )
UDINT Entero doble sin signo 32 &0 a 4,294,967,295
UDINT BCD Entero doble sin signo
BCD
DWORD #00000000 a #FFFFFFFF ó
&0 a 4,294,967,295
ULINT Entero largo sin signo 64 &0 a 18,446,744,073,709,551,615
ULINT BDC Entero largo sin signo
BCD
LWORD #0000000000000000 a #FFFFFFFFFFFFFFFF ó
&0 a 18,446,744,073,709,551,615
![Page 16: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/16.jpg)
16
Tipos de datos (II) Símbolo Contenido Tamaño Rango de valores
REAL Numero real 32 −3.402823 × 10 38 a −1.175494 × 10−38, 0,
+1.175494 × 10−38 a +3.402823 × 10 38
LREAL Numero real largo 64 −1.79769313486232 × 10308 a
−2.22507385850720 × 10−308 , 0,
2.22507385850720 × 10−308 a
1.79769313486232 × 10308
WORD Dato de 16-bits 16 ( #0000 a #FFFF ) ó ( &0 a 65,535 )
DWORD Dato de 32-bits 32 #00000000 a #FFFFFFFF ó
&0 a 4,294,967,295
LWORD Dato de 64-bits 64 #0000000000000000 a #FFFFFFFFFFFFFFFF
ó &0 a 18,446,744,073,709,551,615
STRING Cadena de texto Variable De 0 a 255 bytes.
FUNCTION
BLOCK
Instancia de bloque de
función
--- ---
CHANNEL Word WORD
NUMBER Constante ó numero -- No soportado en ST
![Page 17: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/17.jpg)
17
Texto estructurado.
• Funciones matemáticas soportadas:
– Suma (+)
– Resta (-)
– Multiplicación (*)
– División (/)
• Funciones de bit soportadas:
– Bitwise AND (AND o &)
– Bitwise OR (OR)
– OR Exclusiva OR (XOR)
– NOT (NOT)
![Page 18: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/18.jpg)
18
Operadores.
• Operadores soportados:
– Paréntesis ( brackets () )
– Índice de Matriz ( square brackets [ ] )
– Operador de Asignación (:=)
– Operador de Comparación Menor Que (<)
– Operador de Comparación Menor o Igual Que (<=)
– Operador de Comparación Mayor Que (>)
– Operador de Comparación Mayor o Igual Que (>=)
– Operador de Comparación Igual (=)
– Operador de Comparación Distinto Que (<>)
![Page 19: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/19.jpg)
19
Operadores Símbolo Tipo de operación Tipos de datos soportados por los operadores. Prioridad
1: alta,
11:baja
[ ] ( ) Expresión / Tablas [ índices ] 1
Función () Evaluación de una función Dependiendo de la función. 2
** Exponenciación REAL, LREAL 3
NOT Complemento BOOL, WORD, DWORD, LWORD 4
* Multiplicación INT, DINT, UINT, UDINT, ULINT, REAL, LREAL 5
/ División INT, DINT, LINT, UINT, UDINT, ULINT, REAL,
LREAL
+ - Suma / Resta INT, DINT, LINT, UINT, UDINT, ULINT, REAL,
LREAL
6
< > <=
>=
Comparaciones BOOL, INT, DINT, LINT, UINT, UDINT, ULINT,
WORD, DWORD, LWORD, REAL, LREAL
7
= < > Igualdad / Desigualdad BOOL, INT, DINT, LINT, UINT, UDINT, ULINT,
WORD, DWORD, LWORD, REAL, LREAL
8
AND & Operación Booleana AND BOOL, WORD, DWORD, LWORD 9
XOR Operación Booleana XOR BOOL, WORD, DWORD, LWORD 10
OR Operación Booleana OR BOOL, WORD, DWORD, LWORD 11
![Page 20: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/20.jpg)
20
Palabras reservadas.
– TRUE, FALSE
– IF, THEN, ELSE, ELSEIF, END_IF
– DO, WHILE, END_WHILE
– REPEAT, UNTIL, END_REPEAT
– FOR, TO, BY, END_FOR
– CASE, OF, ELSE, END_CASE
![Page 21: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/21.jpg)
22
Sentencias 1/2
Sentencia Función Ejemplo
; Final de sentencia END_IF ;
(* *) Comentario (* Comentario *)
:= Asignación A := B
IF, THEN, ELSE, ELSEIF,
END_IF
Condicional simple IF a < b THEN c := a END_IF;
CASE OF, ELSE, END_CASE Condicional compuesta CASE a OF
1: b := 1;
2: b := 2;
ELSE
b := 3;
END_CASE;
![Page 22: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/22.jpg)
23
Sentencias 2/2
Sentencia Función Ejemplo
FOR, TO, BY, DO, END_FOR Bucle con n repeticiones. FOR d := 1 TO 5
b := d * 2;
END_FOR;
WHILE, DO, END_WHILE Bucle con condición inicial. WHILE a < 15 DO
b := b + 3;
END_WHILE;
REPEAT, UNTIL, END_REPEAT Bucle con condición final. REPEAT
d := d + 1;
UNTIL d < 15
END_REPEAT;
EXIT Sale del proceso de un bucle. WHILE true
a := a + 1;
IF a > 4 THEN EXIT END_IF;
END_WHILE;
RETURN Sale del bloque de función RETURN;
![Page 23: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/23.jpg)
24
Colores usados en el código.
Palabras reservadas: Azul
Comentarios: Verde
Errores: Rojo
Resto de cosas: Negro
Los colores NO pueden ser
personalizados.
![Page 24: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/24.jpg)
Sentencias de control
IEC 61131-3 ( Programación en ST )
![Page 25: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/25.jpg)
26
Sentencia IF • Ejecuta de forma condicional un grupo de instrucciones,
dependiendo del valor de una expresión.
• Sintaxis:
IF expression1 THEN statement-list1
[ ELSIF expression2 THEN statement-list2 ]
[ ELSE statement-list3 ]
END_IF;
![Page 26: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/26.jpg)
27
Sentencia IF (condición simple)
Sintaxis de la declaración:
IF <condition> THEN
<expression_1>;
ELSE
<expression_2>;
END_IF;
![Page 27: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/27.jpg)
28
Sentencia IF (condición simple)
Sintaxis de la declaración:
IF <condition_1> THEN
IF <condition_2> THEN
<expression_1>;
ELSE
<expression_2>:
END_IF;
END_IF;
![Page 28: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/28.jpg)
29
Sentencia IF (múltiple condiciones)
Sintaxis de la declaración:
IF <condition_1> THEN <expression_1>;
ELSIF <condition_2> THEN <expression_2>;
ELSIF <condition_3> THEN <expression_3>;
...
ELSIF <condition_n> THEN <expression_n>;
ELSE
<expression_m>;
END_IF;
![Page 29: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/29.jpg)
30
Sentencia IF (múltiple condiciones)
![Page 30: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/30.jpg)
31
Sentencia IF (Ejemplos)
IF A>0 AND B>1 THEN
X:=10; Y:=20;
ELSE
X:=0; Y:=0;
END_IF;
IF A>0 THEN X:=10;
ELSIF B=1 THEN X:=1;
ELSIF B=2 THEN X:=2;
ELSE
X:=0;
END_IF;
IF A>0 THEN
X:=10;
ELSE
X:=0;
END_IF;
IF A THEN X:=10;
ELSE X:=0;
END_IF;
![Page 31: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/31.jpg)
32
Sentencia CASE
• Ejecuta uno de varios grupos de instrucciones según el valor de
una expresión.
• Sintaxis:
CASE <ecuación_entera> OF
<ecuación_entera_valor_1>: <expresión_1>;
<ecuación_entera_valor_2>: <expresión_2>;
...
<ecuación_entera_valor_n>: <expresión_n>;
ELSE
<expresión_m>;
END_CASE;
<ecuación_entera> -> INT, DINT, LINT, UINT, UDINT, ULINT
![Page 32: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/32.jpg)
33
Sentencia CASE
![Page 33: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/33.jpg)
34
Sentencia CASE (Ejemplos)
CASE A OF
1: X:=1;
2: X:=2;
3: X:=3;
ELSE
Y:=0;
END_CASE;
CASE A OF
1: X:=1;
2,5: X:=2;
6..10: X:=3;
11,12,15..20: X:=4;
ELSE
Y:=0;
END_CASE;
![Page 34: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/34.jpg)
35
Sentencia FOR
• Repite un grupo de instrucciones un número de veces
especificado.
• Sintaxis:
FOR control variable := <integer_expression1> TO <integer_expression2> [ BY <integer_expression3> ]
DO
<statement-list>;
END_FOR;
<integer_expression1> : valor inicial de la variable de control.
<integer_expression2> : valor final de la variable de control.
<integer_expression3> : incrementos de la variable de control.
<integer_expressionX> : (INT, DINT, LINT, UINT, UDINT, ULINT).
![Page 35: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/35.jpg)
36
Sentencia FOR
![Page 36: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/36.jpg)
37
Sentencia FOR (Ejemplos)
FOR i:=0 TO 100 DO
array[i]:=0;
END_FOR;
IF i=101 THEN
a:=TRUE;
ELSE
a:=FALSE;
END_IF;
FOR n:=0 TO 50 BY 5 DO
SP[n]:=100;
END_FOR;
![Page 37: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/37.jpg)
38
Sentencia WHILE
• Ejecuta una serie de instrucciones siempre que una condición
dada sea True.
• Sintaxis:
WHILE <expression> DO
<statement-list>;
END_WHILE;
![Page 38: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/38.jpg)
39
Sentencia WHILE
![Page 39: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/39.jpg)
40
Sentencia WHILE (Ejemplos)
A:=0;
WHILE A<=1000 DO
A:=A+7;
END_WHILE;
n:=1;
WHILE X<3000 DO
X:=X*2;
DATA[n]:=X;
n:=n+1;
END_WHIE;
![Page 40: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/40.jpg)
41
Sentencia REPEAT
• Ejecuta una serie de instrucciones hasta que una condición sea
True.
• Sintaxis:
REPEAT
<statement-list>;
UNTIL <expression> END_REPEAT;
![Page 41: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/41.jpg)
42
Sentencia REPEAT
![Page 42: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/42.jpg)
43
Sentencia REPEAT (Ejemplos)
A:=1;
TOTAL:=0;
REPEAT
TOTAL:=TOTAL+A;
A:=A+1;
UNTIL A>10 END_REPEAT;
![Page 43: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/43.jpg)
44
Sentencia EXIT
• Fuerza la salida de un bucle ( FOR, WHILE, REPEAT )
• Sintaxis:
FOR (WHILE, REPEAT) expression ...
IF <condition> THEN EXIT;
END_IF;
...
END_FOR (WHILE, REPEAT);
A := 10;
![Page 44: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/44.jpg)
45
Sentencia RETURN
• La operativa de RETURN depende de donde se use el programa.
• Programa ST: • Fuerza el final de la tarea ST que esta siendo ejecutada y ejecuta la siguiente
tarea.
• ST usado en SFC: • Fuerza el final de la acción que esta siendo ejecutada y ejecuta la siguiente
programa de acción o programa de transición.
• ST usado en FB: • Fuerza el final de bloque de función ST que contiene el RETURN, retorna a
el sitio donde fue llamada la FB y ejecuta la siguiente instrucción.
• Sintaxis:
RETURN;
![Page 45: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/45.jpg)
46
Llamadas a Bloques de Función
• Método 1:
• Usando este método se pasan los valores a los argumentos específicos.
• Los argumentos de las variables de entrada deben de estar al principio de
la lista, o justo después de la variable EN, si esta en la lista.
• Las variables de salida pueden ser omitidas, si los datos no son usados.
• Las especificaciones del método 2, no pueden ser usadas junto a las
especificaciones de este método, en una misma llamada a una FB.
A( B:=C, ………… , D=>E )
![Page 46: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/46.jpg)
47
Llamadas a Bloques de Función
• Método 2:
• Usando este método se pasan y reciben los valores justo en el orden en el
que se han declarado en el bloque de función.
• Los argumentos de las variables de entrada deben de estar al principio de
la lista, o justo después de la variable EN, si esta en la lista.
• Las variables de salida pueden ser omitidas si los datos no son usados,
pero deben de ser omitidas de derecha a izquierda.
• Las especificaciones del método 1, no pueden ser usadas junto a las
especificaciones de este método, en una misma llamada a una FB.
A( C, ………… , E )
![Page 47: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/47.jpg)
48
• Método 1: • Instance_FB(EN:=A, FB_IN1:=IN1, FB_IN2:=IN2, FB_IN3:=IN3,
FB_OUT1=>OUT1, FB_OUT2=>OUT2, FB_OUT3=>OUT3, ENO=>B)
• Instance_FB( FB_IN1:=IN1, FB_IN2:=IN2, FB_IN3:=IN3,
FB_OUT1=>OUT1, FB_OUT2=>OUT2, FB_OUT3=>OUT3 )
• Instance_FB(EN:=A, FB_IN1:=IN1, FB_OUT1=>OUT1, FB_IN2:=IN2,
FB_OUT2=>OUT2, FB_IN3:=IN3, FB_OUT3=>OUT3, ENO=>B)
• Método 2: • Instance_FB( IN1, IN2, IN3, OUT1, OUT2, OUT3 )
• Instance_FB( IN1, IN2, IN3, OUT1 )
• Instance_FB( IN1, IN2, IN3, OUT1, OUT3 )
Llamadas a Bloques de Función
(Ejemplos)
![Page 48: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/48.jpg)
Librería de Funciones
IEC 61131-3 ( Programación en ST )
![Page 49: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/49.jpg)
50
Funciones
Tipo de función Utilidad
Funciones numéricas Valor absoluto, funciones trigonométricas, etc…
Funciones para manejo de strings Manejo de cadenas de caracteres.
Funciones de expansión OMRON Funciones de expansión al lenguaje estándar.
Conversiones de tipos de datos Conversiones entre tipos de datos.
![Page 50: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/50.jpg)
51
Funciones numéricas (I)
Función Tipo de datos de
argumentos
Tipo de datos
devueltos
Descripción
ABS (arg) INT, DINT, LINT, UINT, UDINT,
ULINT, REAL, LREAL
INT, DINT, LINT, UINT,
UDINT, ULINT, REAL,
LREAL
Valor absoluto
SQRT (arg) REAL, LREAL REAL, LREAL Raíz cuadrada
LN (arg) REAL, LREAL REAL, LREAL Logaritmo natural: LOGe
LOG (arg) REAL, LREAL REAL, LREAL Logaritmo: LOG10
EXP (arg) REAL, LREAL REAL, LREAL Exponencial natural: earg
EXPT (arg) Base REAL, LREAL REAL, LREAL Exponencial: baseexpo
Exponente INT, DINT,
LINT, UINT,
UDINT, ULINT
![Page 51: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/51.jpg)
52
Funciones numéricas (II) Función Tipo de datos de
argumentos
Tipo de datos
devueltos
Descripción
SIN (arg) REAL, LREAL REAL, LREAL Sino
COS (arg) REAL, LREAL REAL, LREAL Coseno
TAN (arg) REAL, LREAL REAL, LREAL Tangente
ASIN (arg) REAL, LREAL REAL, LREAL Arco Seno
ACOS (arg) REAL, LREAL REAL, LREAL Arco Coseno
ATAN (arg) REAL, LREAL REAL, LREAL Arco Tangente
![Page 52: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/52.jpg)
53
Funciones para cadenas de texto (I) Función Tipo de datos de
argumentos
Tipo de datos
devueltos
Descripción
LEN (string) String STRING INT Devuelve la longitud
de un texto.
LEFT (<texto fuente>,
<numero de caracteres>)
Texto
fuente
STRING STRING Extrae caracteres de
un texto comenzando
por la izquierda. Numero de
caracteres
INT, UINT
RIGHT (<texto fuente>,
<numero de caracteres>)
Texto
fuente
STRING STRING Extrae caracteres de
un texto comenzando
por la derecha. Numero de
caracteres
INT, UINT
MID (<texto fuente>,
<numero de caracteres>,
<posición>)
Texto
fuente
STRING STRING Extrae caracteres de
un texto.
Numero de
caracteres
INT, UINT
Posición INT, UINT
La posición del primer carácter en las cadenas de texto es 1
![Page 53: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/53.jpg)
54
Funciones para cadenas de texto (II) Función Tipo de datos de
argumentos
Tipo de datos
devueltos
Descripción
CONCAT(<texto
fuente1>, <texto
fuente2>, …..) Hasta 32 argumentos
Texto
fuente
STRING STRING Une cadenas de texto.
INSERT (<texto fuente>,
<texto a insertar>,
<posición>)
Texto
fuente
STRING STRING Inserta un cadena de
texto dentro de otra.
Texto a
insertar
STRING
Posición INT, UINT
DELETE (<texto fuente>,
<numero de caracteres>,
<posición>)
Texto
fuente
STRING STRING Borra caracteres de un
cadenas de texto.
Numero de
caracteres
INT, UINT
Posición INT, UINT
La posición del primer carácter en las cadenas de texto es 1
![Page 54: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/54.jpg)
55
Funciones para cadenas de texto (III) Función Tipo de datos de
argumentos
Tipo de datos
devueltos
Descripción
REPLACE (<texto
fuente>, <texto a insertar>,
<numero de caracteres>,
<posición>)
Texto
fuente
STRING STRING Reemplaza caracteres
dentro de un cadena
de texto. Texto a
insertar
STRING
Numero de
caracteres
INT, UINT
Posición INT, UINT
FIND (<texto fuente>,
<texto a buscar>)
Texto
fuente
STRING INT Busca una cadena
dentro de otra cadena
de texto. Texto a
insertar
STRING
La posición del primer carácter en las cadenas de texto es 1
![Page 55: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/55.jpg)
56
Funciones de expansión OMRON (I) Función Tipo de datos de
argumentos
Tipo de datos
devueltos
Descripción
WRITE_TEXT (<texto a
escribir>, <Nombre del
directorio y el fichero>,
<Delimitador>,
<Parámetros>)
Texto a
escribir
STRING --- Escribe una cadena de
texto en la tarjeta de
memoria. Nombre del
directorio y
el fichero
STRING
Delimitador STRING
Parámetros INT, UINT,
WORD
![Page 56: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/56.jpg)
57
Funciones de expansión OMRON (II) Función Tipo de datos de
argumentos
Datos
devueltos
Descripción
TXD_CPU ( <texto> ) Texto STRING --- Transmite una cadena
de texto por el puerto
RS-232 de la CPU.
TXD_SCB ( <texto>,
<puerto serie> )
Texto STRING --- Transmite una cadena
de texto por un puerto
serie de la SCB. Puerto serie INT, UINT,
WORD
TXD_SCU ( <texto>,
<Numero Unidad SCU>,
<Puerto serie>, <Puerto
lógico interno> )
Texto STRING --- Transmite una cadena
de texto por un puerto
serie de la SCU. Numero
Unidad SCU
INT, UINT,
WORD
Puerto serie INT, UINT,
WORD
Puerto lógico
interno
INT, UINT,
WORD
![Page 57: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/57.jpg)
58
Funciones de expansión OMRON (III) Función Tipo de datos de
argumentos
Datos
devueltos
Descripción
RXD_CPU ( <carga>,
<numero caracteres> )
Carga STRING --- Recibe una cadena de
texto por el puerto RS-
232 de la CPU. Numero
caracteres
INT, UINT,
WORD
RXD_SCB ( <carga>,
<numero caracteres>, <puerto
serie> )
Carga STRING --- Recibe una cadena de
texto por un puerto
serie de la SCB. Numero
caracteres
INT, UINT,
WORD
Puerto serie INT, UINT,
WORD
RXD_SCU ( <carga>,
<numero caracteres>,
<numero Unidad SCU>,
<puerto serie>, <puerto lógico
interno> )
Carga STRING --- Recibe una cadena de
texto por un puerto
serie de la SCU. Numero
caracteres
INT, UINT,
WORD
Numero
Unidad SCU
INT, UINT,
WORD
Puerto serie INT, UINT,
WORD
Puerto lógico
interno
INT, UINT,
WORD
![Page 58: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/58.jpg)
59
Funciones de expansión OMRON (IV)
Función Tipo de datos
de argumentos
Tipo de datos
devueltos
Descripción
DEG_TO_RAD (arg) REAL, LREAL REAL, LREAL Devuelve la longitud de
un texto.
RAD_TO_DEG ( arg) REAL, LREAL REAL, LREAL Extrae caracteres de un
texto comenzando por la
izquierda.
![Page 59: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/59.jpg)
60
Conversión entre tipo de datos
B := from_TO_to( valor );
B := REAL_TO_INT(valor);
NOTA: Los tipos reales son redondeados
B := tipo_dato_origen_TO_STRING( valor );
B := STRING_TO _tipo_dato_destino( valor );
B := REAL_TO_STRING(valor);
B := STRING_TO _UINT(valor);
– Funciones de conversión de tipos de datos.
– Funciones de conversión de texto a números.
![Page 60: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/60.jpg)
Restricciones
IEC 61131-3 ( Programación en ST )
![Page 61: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/61.jpg)
Restricciones
– No hay limite en el anidamiento de las instrucciones IF, CASE, FOR, WHILE ó REPEAT.
– No es posible llamar a instrucciones Ladder desde el ST.
– Desde un programa ST es posible llamar a FB’s.
– Hasta 8 niveles de anidamiento, en las llamadas a FB’s.
![Page 62: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/62.jpg)
Restricciones
– Los entero solamente pueden ser asignados a variables de tipo WORD, DWORD, INT, DINT, UINT, UDINT ó ULINT.
– Los números reales solamente se pueden asignar a variables de tipo REAL ó LREAL.
– Los bits (TRUE, FALSE) pueden solamente ser asignados a variables de tipo BOOL.
– Los tipos de datos deben de estar en concordancia con el ST.
![Page 63: Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text (ST)? • Lenguaje de alto nivel (similar a PASCAL). • Utilizado en control industrial](https://reader031.vdocumento.com/reader031/viewer/2022030419/5aa5dc347f8b9ae7438e1315/html5/thumbnails/63.jpg)
¡¡¡ Gracias por la atención !!!
Antonio Cambronero Berlanga
Product Engineer
Omron Electronics Iberia, S.A.