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

Post on 12-Mar-2018

215 views 2 download

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

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

Introducción

IEC 61131-3 ( Programación en ST )

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.

4

Elementos de un programa en ST

Parte declarativa

Parte ejecutiva

Reglas de sintaxis

IEC 61131-3 ( Programación en ST )

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.

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

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;

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;

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;

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;

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)

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;

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)

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

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

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)

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 (<>)

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

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

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;

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;

24

Colores usados en el código.

Palabras reservadas: Azul

Comentarios: Verde

Errores: Rojo

Resto de cosas: Negro

Los colores NO pueden ser

personalizados.

Sentencias de control

IEC 61131-3 ( Programación en ST )

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;

27

Sentencia IF (condición simple)

Sintaxis de la declaración:

IF <condition> THEN

<expression_1>;

ELSE

<expression_2>;

END_IF;

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;

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;

30

Sentencia IF (múltiple condiciones)

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;

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

33

Sentencia CASE

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;

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).

36

Sentencia FOR

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;

38

Sentencia WHILE

• Ejecuta una serie de instrucciones siempre que una condición

dada sea True.

• Sintaxis:

WHILE <expression> DO

<statement-list>;

END_WHILE;

39

Sentencia WHILE

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;

41

Sentencia REPEAT

• Ejecuta una serie de instrucciones hasta que una condición sea

True.

• Sintaxis:

REPEAT

<statement-list>;

UNTIL <expression> END_REPEAT;

42

Sentencia REPEAT

43

Sentencia REPEAT (Ejemplos)

A:=1;

TOTAL:=0;

REPEAT

TOTAL:=TOTAL+A;

A:=A+1;

UNTIL A>10 END_REPEAT;

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;

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;

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 )

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 )

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)

Librería de Funciones

IEC 61131-3 ( Programación en ST )

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.

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

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

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

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

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

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

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

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

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.

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.

Restricciones

IEC 61131-3 ( Programación en ST )

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.

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.

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

Antonio Cambronero Berlanga

Product Engineer

Omron Electronics Iberia, S.A.