Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text...

63
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

Transcript of Programación en ST - Automatización Industrial - … ¿qué es y para que sirve Structured Text...

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

¡¡¡ Gracias por la atención !!!

Antonio Cambronero Berlanga

Product Engineer

Omron Electronics Iberia, S.A.