11/02/2009 IEC 61131-3. 11 de febrero de 2009 Antonio Cambronero, Product Engineer OMRON Electronics Iberia S.A.U. IEC 61131-3 ( Programación en ST )



Documentos relacionados
IEC Programación en ST (Structured Text)

Contenido de la Presentación

LENGUAJE ST. (Structured Text) ST (Structured Text): 5to lenguaje definido en la norma IEC

Ejecución de programas

IEC Programación de FB (Functión Block)

Lección 2 Introducción al lenguaje C

Tema 2. Tipos predefinidos

Apunte Laboratorio ALPI - El lenguaje de programación Pascal

JavaScript Básico. Elementos Básicos: Comentarios: Literales: Valores que puede tomar una variable o una constante.

FUNCIONAMIENTO DIGITAL DE UN SISTEMA. EL SISTEMA BINARIO. Sistema Digital. Fr. Casares. Sistema Digital. Sistema Digital

Comprender las diferencias entre tipos de datos primitivos similares, y aprender a elegir el tipo más conveniente en cada caso.

Programación Declarativa. Ingeniería Informática Cuarto curso. Primer cuatrimestre. Escuela Politécnica Superior de Córdoba Universidad de Córdoba

PROGRAMACION PARAMETRICA LENGUAJE DE ALTO NIVEL. MILTRONICS CNC MACHINES Control Centurion 7. Ing. Roberto Spicacci

Tipos de Datos en C. Palabras reservadas en C

III. Generación de Código orientado a objetos

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL.

Programación Declarativa. Ingeniería Informática Cuarto curso. Primer cuatrimestre. Escuela Politécnica Superior de Córdoba Universidad de Córdoba

Máster universitario en automatización de procesos industriales

Operadores aritméticos. / División operando enteros o reales si operandos son entero resultado es entero. Resto de caso resultado real

PHP: Lenguaje de programación

Tema 2. El lenguaje JAVA

PLCopen / IEC

Java. Introducción a la Programación Orientada a Objetos

Texto estructurado (ST)

Capítulo 2: Introducción al lenguaje.

Un calculadora avanzada... y algo más!

Informática PRÀCTICA 9 Curs Práctica Nº 9: Rango y precisión de representación de números en el ordenador.

Expresiones Lógicas y Operadores sobre Bits

Elementos de un programa en C

Principios de Computadoras II

GLOSARIO DE MICROSOFT VISUAL BASIC (HAZ CLIC EN LA OPCION DEL MENU Y ACCEDERAS RAPIDAMENTE)

Programación con Octave/Octave-UPM (I)

Curso de Programación Avanzada en C

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

LENGUAJE. Tema 2 Elementos de un programa

DESCRIPCIÓN DEL LENGUAJE DE PROGRAMACIÓN P-0

Datos y tipos de datos

Módulo. = Asignación = = Comp. de igualdad!= Com. de desigualdad <= Comp. menor o igual >= Comp. mayor o igual AND lógico OR lógica.

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Tema 2. El lenguaje de programación Java (Parte 1)

Datos Elementales y formato de un programa en Java

Informática. JavaScript: Lenguaje de programación. Fco J. Martín Mateos Carmen Graciani

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)

JavaScript: Lenguaje de programación

GUÍA BÁSICA DE SCHEME v.4

Tipos de datos y operadores en C++

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN

Fundamentos de Programación

Lenguaje de Programación: C++ Repaso de Material C++

GENERACIÓN DE CÓDIGO ORIENTADO A OBJETOS

Variables - Tipos de Datos - Operadores - Precedencia

El lenguaje C. 1. Identificadores, constantes y variables

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

Funciones & Estructuras de control

Características de JavaScript

Programación 1 Tema 3. Información, datos, operaciones y expresiones

LENGUAJE FORTRAN. FUNCIONES Y SUBRUTINAS

Lenguajes de Inteligencia Artificial Segundo curso. Primer cuatrimestre

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

Los parámetros: son los campos que se comunican a los métodos de los objetos.

4. Operadores Operador asignación

PROGRAMACIÓN EN C#.NET Módulo 3 Instrucciones fundamentales. Ing. Bruno López Takeyas

Tipos de datos y Operadores Básicos

GUÍA DE TRABAJO N 1 C# Ing. Néstor Raúl Suarez Perpiñan Página 1 de 13

Manual de turbo pascal

Lenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006

Programa Java. El lenguaje de programación Java. Comentarios. Programa Java. Palabras reservadas. Identificadores

Tipos y Estructuras de Control. Dpto. de Ciencias e Ingeniería de la Computación UNIVERSIDAD NACIONAL DEL SUR

Programación 1 Tema 5. Instrucciones simples y estructuradas

Características de Lenguajes de Scripts

Números enteros (cortos, largos y sin signo) Números reales (precisión simple y doble) Carácter y cadenas de caracteres. Lógicos.

Estatutos de Control C# Estatutos de Decisión (Selección)

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

Constantes. Las constantes no cambian durante la ejecucion de un programa en C++, en C++ existen 4 tipos de constantes:

Operadores. Java es un lenguaje rico en operadores, que son casi idénticos a los de C/C++.

Sintaxis de C Ing. Jose Maria Sola Dr. Oscar Ricardo Bruno

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)

CLIPS Definición de funciones

Una expresión es una combinación de uno o más operandos y operadores para obtener un resultado.

Instituto Tecnológico de Celaya

Datos y tipos de datos

Introducción a Java 10/02/2011. Tokens. Juan Manuel Fernández Peña Curso Rev Tokens. Tokens

Componentes Básicos. InCo. InCo Componentes Básicos 1 / 28

TEMA 02 TIPOS, OPERADORES Y EXPRESIONES

CONTROLADORES Control Lógico Programable (PLC)

SENA Distrito Capital Centro de Electricidad, Electrónica y Telecomunicaciones ADSI - Ing. Espec. Javier Vaquiro

Práctica 3 mtp. metodoloxía e tecnoloxía da programación. Presentar detalles básicos sobre la sintaxis del lenguaje de programación Java.

Introducción a PL/SQL

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

Curso Informática Lección 3. Tipos de datos, constantes y variables

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Programación I Teoría I.

Introducción a Python. Cecilia Manzino

Curso de PHP. Tema 2: Lenguaje PHP básico

Programación.Net Lenguaje C#

Estructura de Datos Unidad 1: Repaso del Lenguaje Java

3.3 Conceptos Básicos del Lenguaje Java

Transcripción:

IEC 61131-3 Programación en ST (Structured Text) 11 de febrero de 2009 Antonio Cambronero, Product Engineer OMRON Electronics Iberia S.A.U. IEC 61131-3 ( Programación en ST ) Introducción 1

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. 3 Elementos de un programa en ST Parte declarativa Parte ejecutiva 4 2

IEC 61131-3 ( Programación en ST ) Reglas de sintaxis 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. NOTA: Tener siempre en cuenta la precedencia de los operadores 6 Ejemplos: 2.0 * 3.1415 * radio ABS( temp ) / presion Valvula1 AND NOT Valvula2 3

La instrucción de asignación 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 Se escribe la expresión Se evalúa el resultado Se asigna a la variable 7 Delimitadores Cualquier sentencia debe acabar siempre con un delimitador ( ; ) (* ------ Asignación ------*) a := a AND NOT b; (*------ Seleccción Simple ------*) IF a = TRUE THEN a := a AND b; END_IF; No usar un delimitador dentro de una sentencia (*------ Selección Simple ------*) IF a = TRUE ; THEN a := a AND b; END_IF; 8 4

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; 9 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. (* ------ Asignación ------*) a := a AND NOT b; (*------ Selección Simple ------*) IF a = TRUE THEN a := a AND b; END_IF; Siempre usarlos entre palabras reservadas y variables. 10 5

Mayúsculas y Minúsculas Uso indistinto de mayúsculas / minúsculas en cualquier sentencia o nombre de variable (*------ Selección Simple ------*) IF A = TRUE THEN A := A AND B; END_IF; (*------ Seleccción Simple ------*) if a = true then = a := a and b; endif; 11 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) 12 6

Constantes Numéricas Los valores numéricos se pueden expresar en... - Decimal (sin prefijo) : 128 - Hexadecimal : 16#4D2 - Octal : 8#1355 - Binario : 2#10010010 (*------ Seleccción Simple ------*) if chico_a = true then a := 10; b := 16#A; c := 8#12; d := 2#1010; endif; 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 13 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) 7

Tipos de datos (I) Símbolo Contenido Tamaño BOOL Datos de bit 1 0 (falso), 1 (verdadero) INT Entero 16-32.768 a +32.767 Rango de valores 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 15 Símbolo Tipos de datos (II) 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 10 308 a 2.22507385850720 10 308, 0, 2.22507385850720 10 308 a 1.79769313486232 10 308 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 16 8

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) 17 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 (<>) 18 9

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 < > <= >= 19 Comparaciones BOOL, INT, DINT, LINT, UINT, UDINT, ULINT, WORD, DWORD, LWORD, REAL, LREAL = < > Igualdad / Desigualdad BOOL, INT, DINT, LINT, UINT, UDINT, ULINT, WORD, DWORD, LWORD, REAL, LREAL 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 6 7 8 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 20 10

Tipos de Datos Símbolo Tipo de dato Nº de bits BOOL Booleano 1 INT Entero (Integer) 16 UINT Entero sin Signo (Unsigned Integer) 16 DINT Entero Doble (Doble Integer) 32 UDINT Entero Doble sin Signo (Unsigend Doble Integer) 32 LINT Entero Largo (Long Integer) 64 ULINT Entero Largo sin Signo (Unsigned Long Integer) 64 WORD Secuencia de bit de 16 bits 16 DWORD Secuencia de bit de 32 bits 32 LWORD Secuencia de bit de 64 bits 64 REAL Numero real. 32 LREAL Número real largo 64 STRING Cadena de texto Max. 255 car. 21 Sentencias 1/2 Sentencia Función ; Final de sentencia END_IF ; Ejemplo (* *) Comentario (* Comentario *) := Asignación A := B IF, THEN, ELSE, ELSEIF, END_IF Condicional simple CASE OF, ELSE, END_CASE Condicional compuesta CASE a OF 1: b := 1; 2: b := 2; ELSE b := 3; END_CASE; IF a < b THEN c := a END_IF; 22 11

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; 23 Colores usados en el código. Palabras reservadas: Comentarios: Errores: Resto de cosas: Azul Verde Rojo Negro Los colores NO pueden ser personalizados. 24 12

IEC 61131-3 ( Programación en ST ) Sentencias de control 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; 26 13

Sentencia IF (condición simple) Sintaxis de la declaración: IF <condition> THEN <expression_1>; ELSE <expression_2>; END_IF; 27 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; 28 14

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; 29 Sentencia IF (múltiple condiciones) 30 15

Sentencia IF (Ejemplos) IF A>0 THEN X:=10; ELSE X:=0; END_IF; IF A THEN X:=10; ELSE X:=0; END_IF; IF A>0 AND B>1 THEN X:=10; Y:=20; ELSE X:=0; Y:=0; END_IF; IF A>0 THEN X:=10; ELSIF B=1 THEN X:=1; ELSIF B=2 THEN X:=2; ELSE X:=0; END_IF; 31 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; 32 <ecuación_entera> -> INT, DINT, LINT, UINT, UDINT, ULINT 16

Sentencia CASE 33 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; 34 17

Sentencia FOR 35 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). Sentencia FOR 36 18

Sentencia FOR (Ejemplos) FOR i:=0 TO 100 DO array[i]:=0; END_FOR; FOR n:=0 TO 50 BY 5 DO SP[n]:=100; END_FOR; IF i=101 THEN a:=true; ELSE a:=false; END_IF; 37 Sentencia WHILE Ejecuta una serie de instrucciones siempre que una condición dada sea True. Sintaxis: WHILE <expression> DO <statement-list>; END_WHILE; 38 19

Sentencia WHILE 39 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; 40 20

Sentencia REPEAT Ejecuta una serie de instrucciones hasta que una condición sea True. Sintaxis: REPEAT <statement-list>; UNTIL <expression> END_REPEAT; 41 Sentencia REPEAT 42 21

Sentencia REPEAT (Ejemplos) A:=1; TOTAL:=0; REPEAT TOTAL:=TOTAL+A; A:=A+1; UNTIL A>10 END_REPEAT; 43 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; 44 22

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. 45 Sintaxis: RETURN; 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 ) 46 23

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. 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 ) 47 Llamadas a Bloques de Función (Ejemplos) 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 ) 48 24

IEC 61131-3 ( Programación en ST ) Librería de Funciones Funciones Tipo de función Funciones numéricas Funciones para manejo de strings Funciones de expansión OMRON Conversiones de tipos de datos Utilidad Valor absoluto, funciones trigonométricas, etc Manejo de cadenas de caracteres. Funciones de expansión al lenguaje estándar. Conversiones entre tipos de datos. 50 25

Funciones numéricas (I) Función ABS (arg) Tipo de datos de argumentos INT, DINT, LINT, UINT, UDINT, ULINT, REAL, LREAL Tipo de datos devueltos INT, DINT, LINT, UINT, UDINT, ULINT, REAL, LREAL Descripción Valor absoluto SQRT (arg) REAL, LREAL REAL, LREAL Raíz cuadrada LN (arg) REAL, LREAL REAL, LREAL Logaritmo natural: LOG e LOG (arg) REAL, LREAL REAL, LREAL Logaritmo: LOG 10 EXP (arg) REAL, LREAL REAL, LREAL Exponencial natural: e arg EXPT (arg) Base REAL, LREAL REAL, LREAL Exponencial: base expo Exponente INT, DINT, LINT, UINT, UDINT, ULINT 51 Función Funciones numéricas (II) Tipo de datos de argumentos Tipo de datos devueltos SIN (arg) REAL, LREAL REAL, LREAL Sino Descripción 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 52 26

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>) RIGHT (<texto fuente>, <numero de caracteres>) MID (<texto fuente>, <numero de caracteres>, <posición>) Texto fuente Numero de caracteres Texto fuente Numero de caracteres Texto fuente Numero de caracteres Posición STRING STRING Extrae caracteres de un texto comenzando INT, UINT por la izquierda. STRING STRING Extrae caracteres de un texto comenzando INT, UINT por la derecha. STRING STRING Extrae caracteres de un texto. INT, UINT INT, UINT La posición del primer carácter en las cadenas de texto es 1 Funciones para cadenas de texto (II) Función CONCAT(<texto fuente1>, <texto fuente2>,..) Hasta 32 argumentos INSERT (<texto fuente>, <texto a insertar>, <posición>) Tipo de datos de argumentos Texto fuente Texto fuente Texto a insertar Posición Tipo de datos devueltos Descripción STRING STRING Une cadenas de texto. STRING STRING Inserta un cadena de texto dentro de otra. STRING INT, UINT DELETE (<texto fuente>, <numero de caracteres>, <posición>) Texto fuente Numero de caracteres Posición STRING STRING Borra caracteres de un cadenas de texto. INT, UINT INT, UINT 54 La posición del primer carácter en las cadenas de texto es 1 27

Funciones para cadenas de texto (III) Función REPLACE (<texto fuente>, <texto a insertar>, <numero de caracteres>, <posición>) Tipo de datos de argumentos Texto fuente Texto a insertar Numero de caracteres Posición Tipo de datos devueltos Descripción STRING STRING Reemplaza caracteres dentro de un cadena STRING de texto. INT, UINT INT, UINT FIND (<texto fuente>, <texto a buscar>) ) Texto fuente Texto a insertar STRING INT Busca una cadena dentro de otra cadena STRING de texto. 55 La posición del primer carácter en las cadenas de texto es 1 Funciones de expansión OMRON (I) Función WRITE_TEXT (<texto a escribir>, <Nombre del directorio y el fichero>, <Delimitador>, <Parámetros>) Tipo de datos de argumentos Texto a escribir Nombre del directorio y el fichero Delimitador Tipo de datos devueltos Descripción STRING --- Escribe una cadena de texto en la tarjeta de STRING memoria. STRING Parámetros INT, UINT, WORD 56 28

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> ) TXD_SCU ( <texto>, <Numero Unidad SCU>, <Puerto serie>, <Puerto lógico interno> ) Texto STRING --- Transmite una cadena de texto por un puerto Puerto serie INT, UINT, WORD serie de la SCB. Texto STRING --- Transmite una cadena de texto por un puerto Numero INT, UINT, Unidad SCU WORD serie de la SCU. Puerto serie Puerto lógico interno INT, UINT, WORD INT, UINT, WORD 57 Funciones de expansión OMRON (III) Función Tipo de datos de argumentos Datos devueltos Descripción RXD_CPU ( <carga>, Carga STRING --- Recibe una cadena de <numero caracteres> ) texto por el puerto RS- Numero INT, UINT, caracteres WORD 232 de la CPU. 58 RXD_SCB ( <carga>, <numero caracteres>, <puerto serie> ) Carga STRING --- Recibe una cadena de texto por un puerto Numero INT, UINT, caracteres WORD serie de la SCB. Puerto serie INT, UINT, WORD RXD_SCU ( <carga>, Carga STRING --- Recibe una cadena de <numero caracteres>, texto por un puerto Numero INT, UINT, <numero Unidad SCU>, caracteres WORD serie de la SCU. <puerto serie>, <puerto lógico interno> ) Numero Unidad SCU Puerto serie Puerto lógico interno INT, UINT, WORD INT, UINT, WORD INT, UINT, WORD 29

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 Convierte de grados a radianes. RAD_TO_DEG ( arg) REAL, LREAL REAL, LREAL Convierte de radianes a grados. 59 Conversión entre tipo de datos Funciones de conversión de tipos de datos. B := from_to_to( valor ); B := REAL_TO_INT(valor); NOTA: : Los tipos reales son redondeados Funciones de conversión de texto a números. B := tipo_dato_origen_to_string( valor ); B := STRING_TO _tipo_dato_destino( valor ); B := REAL_TO_STRING(valor); B := STRING_TO _UINT(valor); 60 30

IEC 61131-3 ( Programación en ST ) Restricciones 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. 31

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