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

Upload: trinhtu

Post on 12-Mar-2018

215 views

Category:

Documents


2 download

TRANSCRIPT

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.