Lenguaje de programación SFC: Lenguaje gráfico Programa bien estructurado Consiste en pasos y transiciones Los pasos contienen programas en cada lenguaje estándar No tiene ningún lenguaje análogo El primer nivel de la estructura en el SFC es la red de trabajo, compuesta por elementos llamados pasos y transiciones. Un paso puede ser bien activo o inactivo. Cuando esta activo, las instrucciones asociadas se ejecutan hasta que el paso se vuelve inactivo. En STEP 7 este lenguaje se denomina lenguaje gráfico de programación (S7-GRAPH) – ver la figura. 12 Fig.5
Lenguaje de programación LD Lenguaje gráfico, que pueden soportar casi todos los PLCs LD es una conexión gráfica entre variables Booleanas, comparable a los antiguos controles de tipo relé y representa el flujo de energía en los diagramas de circuitos eléctricos. Este lenguaje de programación se utiliza para la mayoría de las señales Booleanas. Los denominados buses o relés rodean una red LD por la izquierda y por la derecha. Para el bus de la izquierda, suministrado con la señal lógica “1”, “la energía” llega a todos los elementos conectados. Dependiendo de su condición, los elementos dejan ir la energía hasta los siguientes elementos o interrumpen el flujo. Prácticamente no se utiliza para trabajar con variables analógicas. En STEP 7 este lenguaje se conoce como LAD (Ladder Logic). La Fig.6 inferior muestra un ejemplo de un programa LAD, y más adelante se muestran también otros ejemplos. 13 Fig.6
Sistema de programación CoDeSys CoDeSys (SIStema de D?sarrollo COntrolado) es un entrono de desarrollo de programas de PLC, creado por la empresa Alemana 3S GmbH (1994 ?.). Desde 2012 se ha escrito como CODESYS (http://en.wikipedia.org/wiki/CoDeSys ) CODESYS permite el funcionamiento de los PLC producidos por las empresas como IFM, OVEN y otras muchas. Se instala por medio de un PC, con la ayuda de interfaces en serie normales (RS232), interfaz CAN-PC (ej. EC2070). Soporta tres funciones básicas: Establecer todos los parámetros del PLC en cuestión. Programar un PLC en uno de los lenguajes estándar, definido por la IEC 61131-3: Lista de instrucciones (IL), diagrama de función secuencial (SFC), diagrama de funciones por bloques (FBD) diagrama de lógica en escalera (LD) o texto estructurado (ST); Testeando y ajustando los programas creados. Diagnostico/visualización de los datos recibidos en el controlador. Contiene una librería de funciones integrada: El sistema se descarga de manera gratuita. 14
Relación entre CODESYS y un PLC PLC Fábrica CODESYS Respuesta Pregunta E/S s 15 Fig.7
16 Reglas para la programación en PLCs Retorno a la función de llamada Llamar la atención utilizando ciclos (para tener en cuenta el tiempo de ejecución) Incrementar el interés hacia el uso de índices para los matrices y punteros Programa PLC Entrada Salida 16 Fig.8
Estructura de un programa de un PLC Projecto POUs Variables globales Estructuras Declaraciones Código 17 Fig. 9
18 ¿Qué es POU? En la IEC 61131-3 los bloques, que constituyen los programas y los proyectos, se denominan Unidades Organizativas de los Programas, POU. Los tres tipos de POU, declarados por el estándar, son Función (FUN), Bloque funcional (FB) y Programa (PROG). La función es POU, y puede tener parámetros fijados (argumentos) pero no tiene variables estáticas, ej. no tiene memoria – siempre se proporcionan los mismos valores de salida con los mismos parámetros de entrada. El bloque funcional tiene variables estáticas (memoria). Sus salidas siempre dependen de la condición de sus variables tanto internas como externas, cuyos valores permanecen iguales entre las ejecuciones individuales del bloque funcional. Estos son también los bloques principales para generar un programa de PLC. El programa es de tipo POU, como el programa principal. Un elevado número de programas principales puede ejecutarse simultáneamente en los PLCs multitareas. 18
Datos y direcciones CoDeSys suporta tres métodos de declaraciones: Validez: local (1 POU) o global (todas POU) texto, tabular y automática Tipos de variables, fijadas a su dirección: A un área de entrada, a un área de salida, a marcadores de área 19
Sintaxis de las variables, fijadas a las direcciones Se designan con ‘%’ Prefijos para el area: I – entrada Q – salida M – marcador Tamaño: X – un solo bit B – un byte (8 bits) W – una palabra (16 bits) D – una palabra doble (32 bits) Ejemplos: %IW215 %QX1.1 %MD48 20
Tipos de datos estándar (1) El estándar IEC 61131-3 define una multitud de tipos de datos estandarizados, denominados tipos de datos elementales. Se caracterizan por tener muchos bits, y un rango de valores admisible. Además, el usuario define los tipos de datos que pueden crearse y utilizarse analógicamente. Son muy similares a los lenguajes utilizados en niveles elevados como C/C++ y PASCAL: BOOL – una variable Booleana (8 bits, valores: VERDADERO, FALSO); SINT – ENTero CORto (8 bits, valores: -128 ÷ 127); INT – ENTero (16 bits, valores: -32768 ÷ 32767); DINT – ENTero DOble (32 bits, valores: -2147483648 ÷ 2147483647); USINT – ENTero CORto Sin designar (8 bits, valores: 0 ÷ 255); UINT – ENTero Sin designar (16 bits, valores: 0 ÷ 65535); UDINT – ENTero Doble Sin designar (32 bits, valores: 0 ÷ 4294967295); BYTE – un byte (8 bits, bit-direccionables, valores: 0 ÷ 255); WORD – una palabra (16 bits, bit-direccionables, valores: 0 ÷ 65535); DWORD – una palabra doble (32 bits, bit-direccionables, valores : 0 ÷ 4294967295); 21
22 Tipos de datos estándar(2) REAL- numeros con punto flotante (32 bits, valores: 1.175494351e-38 ÷ 3.402823466e+38; LREAL – REAL Largo, números con punto flotante (64 bits, valores: 2.2250738585072014e-308 ÷ 1.7976931348623158e+308); STRING – variables de texto (sin tamaño límite); Ejemplo: strText: STRING(35):= ‘Hola mundo!’; TIME – variables de tiempo (tamaño y valores como para los de tipo DWORD); Ejemplo: tTime: TIME:= t#14ms tTime1: TIME:= t#12h34m15s TOD – Tiempo De Día (tamaño y valores como para los de tipo DWORD); DATE – variables de fechas (tamaño y valores como para los de tipo DWORD); Ejemplo: dDate: DATE:= d#1972-03-29; DT – Fecha y Tiempo (tamaño y valores como para los de tipo DWORD). 22
23 Operaciones en CoDeSys asignación; operaciones de tipo Booleano; operaciones analógicas; comparaciones; selección; conversión de tipo; operaciones con números reales; desplazamientos de bits; operaciones especiales.
En las siguientes diapositivas se proporcionan ejemplos de algunas operaciones en ciertos lenguajes de PLC estándar.
Operación de asignación IL: LD, LDN, ST, STN, S, R ST: A := B; FBD: A B A C A D
LD: S ( ) (/) SALIDA 1 SALIDA 2 (S) SALIDA 3 (R) SALIDA 4 IN
Operaciones Booleanas AND, OR, XOR y NOT Las operaciones AND, OR y XOR pueden ser ejecutadas para un número ilimitado de entradas. Cuando se aplican a datos de tipo BOOL, el resultado puede ser o VERDADERO o FALSO. Cuando se aplican a datos del tipo BYTE, WORD, DWORD, el resultado se obtiene tras una ejecución bit a bit de la operación correspondiente. Ejemplo en IL: Var1: BYTE; LD 2#10010011 AND 2#10001010 ST Var1 (* El resultado es 2#10000010 *)
Operaciones analógicas: IL,FBD,LD ST ADD + SUB – MUL * DIV / MOD MOD
Estas operaciones pueden realizarse con cualquier tipo de datos, excepto los Booleanos.
27 Comparación IL,FBD,LD ST EQ = NE <> GE >= GT > LE <= LT < Estas operaciones pueden realizarse con cualquier tipo de datos, excepto los Booleanos.
28 Operaciones con números reales: ABS – valor absoluto SQRT – raíz cuadrada LN – logaritmo neperiano LOG – logaritmo decimal EXP – función exponencial (eX) SIN, COS, TAN, ASIN, ACOS, ATAN – funciones trigonométricas EXPT – función exponencial de una variable, relacionada con otra variable (XY)
29 Desplazamiento de bits SHL (DESplazamiento a la Izquierda)
SHR (DESplazamiento a la Derecha)
ROL (Rotación a la Izquierda)
ROR (Rotación a la Derecha) a d c b e h g f b e d c f 0 h g a a d c b e h g f b e d c f a h g a d c b e h g f 0 c b a d g f e h a d c b e h g f h c b a d g f e
30 Llamada a varios tipos de POU
Página anterior | Volver al principio del trabajo | Página siguiente |