Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Autómatas Programables: Introducción al Estándar IEC-61131 IEC-61131 Felipe Mateos Martín IEC-61131 Presentación, Oct. 2006 1 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática La Norma IEC-61131 se refiere a: • Los autómatas programables (AP ó PLC´s) y a sus periféricos correspondientes, tales como: - Los equipos de programación y depuración (PADT´s) - Los equipos de ensayo (TE´s) - Los interfaces hombre-máquina (MMI´s) Esta norma no trata del sistema automatizado, del cual el autómata programable es un componente básico. PADT: Programming And Debugging Tool TE: Test Equipment MMI: Man-Machine Interface IEC-61131 Presentación, Oct. 2006 2 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática La finalidad de esta Norma IEC-61131 es: • Definir e identificar las características principales que se refieren a la selección y aplicación de los PLC´s y sus periféricos. • Especificar los requisitos mínimos para las características funcionales, las condiciones de servicio, los aspectos constructivos, la seguridad general y los ensayos aplicables a los PLC´s y sus periféricos. • Definir los lenguajes de programación de uso más corriente, las reglas sintácticas y semánticas, el juego de instrucciones fundamental, los ensayos y los medios de ampliación y adaptación de los equipos. • Dar a los usuarios una información de carácter general y unas directrices de aplicación. • Definir las comunicaciones entre los PLC´s y otros sistemas. IEC-61131 Presentación, Oct. 2006 3 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Partes de la Norma IEC 61131: Parte 1: Información general Parte 2: Especificaciones y ensayos de los equipos Parte 3: Lenguajes de programación Parte 4: Guías de usuario (TR) Parte 5: Comunicaciones Parte 7: Fuzzy Control Parte 8: Guías de programación (TR) IEC-61131 Presentación, Oct. 2006 4 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Partes de la Norma IEC 61131: Parte 1: Información general Parte 2: Especificaciones y ensayos de los equipos Parte 3: Lenguajes de programación Parte 4: Guías de usuario (TR) Parte 5: Comunicaciones Parte 7: Fuzzy Control Parte 8: Guías de programación (TR) IEC-61131 Presentación, Oct. 2006 5 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 1: Información General Objetivos • Se dan las definiciones y un glosario de los términos utilizados en esta norma. • Se identifican las principales características de los sistemas de autómatas programables. IEC-61131 Presentación, Oct. 2006 6 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 1: Información General Definiciones Programación de aplicación, lista de asignaciones, sistema automatizado, disponibilidad, BCD, datos booleanos, bus, componente, conexión/desconexión, lista de referencia cruzada, equipo de comunicación de datos (DCE), equipo terminal de datos (DTE), ejecución, parada de seguridad, imagen de entrada/salida, entrada, instrucción, fallo interno, diagrama de escalera , lenguaje (FBD, IL, LD, ST, SFC), sistema de control lógico, procesador principal (MPU), interface hombre-máquina (MMI), tiempo medio entre fallos (MTBF), red, en línea, salida, programa, periférico, barras de corriente, autómata programable (AP ó PLC), equipo de programación y puesta a punto (PADT), estación de entrada/salida remota (RIOS), reinicio, sistema de control secuencial, transmisión de datos en serie, soporte lógico (software), salida en modo fuente/sumidero, equipo de ensayo (TE), tiempo (retardo, ejecución, respuesta, exploración, transferencia), temporizador (de retardo de conexión/desconexión), programa de usuario, perro guardián, bit, byte, palabra… GLOSARIO… IEC-61131 Presentación, Oct. 2006 7 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 1: Información general Estructura funcional de un sistema de autómata programable • • • • • Función de tratamiento de la señal. Función de interfaz con los sensores y actuadores. Función de comunicación. Función de interfaz hombre-máquina. Funciones de programación, puesta a punto, ensayo y documentación. • Funciones de alimentación de corriente IEC-61131 Presentación, Oct. 2006 8 Entornos Integrados de Automatización Funciones de interfaz hombre-máquina Funciones de comunicación Funciones de program., puesta a punto y ensayo Ingeniería de Sistemas y Automática Operador Programador Funciones de tratamiento Sistema Sistema operativo operativo Acometida de la red Funciones de alimentación corriente Ejecucióndel del Ejecución programa programa Conjuntode de Conjunto instrucciones instrucciones Memoriade de Memoria programa programa Memoria de Memoria de datos datos Parte 1: Información general Estructura funcional de un sistema de autómata programable Funciones de interfaz con sensores y actuadores IEC-61131 Presentación, Oct. 2006 Máquina/proceso 9 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 1: Información general Estructura funcional de un sistema de autómata programable Función de interfaz con los sensores y actuadores Unidad de tratamiento Alimentación Tiposde de Tipos señalesde deE/S E/S señales • Binarias • Digitales • Analógicas • Etc. Característicasdel del Características sistemasde deE/S E/S sistemas • Tratamiento • Conversión • Aislamiento Máquina/proceso IEC-61131 Presentación, Oct. 2006 10 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 1: Información general Estructura funcional de un sistema de autómata programable Función de interfaz hombre-máquina (MMI) Informaciónde de Información estado,valores valores estado, Operador Consignas, Consignas, ajustes ajustes IEC-61131 Presentación, Oct. 2006 11 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 1: Información general Estructura funcional de un sistema de autómata programable Funciones de programación, puesta a punto, ensayo y documentación Programación Programación Arranquedel del Arranque sistema sistema automatizado automatizado Programador Documentación Documentación archivado yyarchivado IEC-61131 Presentación, Oct. 2006 12 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 1: Información general Disponibilidad y fiabilidad, es responsabilidad del usuario en cuanto a: • Arquitectura del sistema automatizado. Redundancias, tolerancia a fallos, funciones de diagnóstico. • Arquitectura del sistema del autómata programable, por ejemplo, estructura modular con autodiagnóstico • Diseño, ensayo y mantenimiento del programa de aplicación. Incluir funciones de diagnóstico de la ejecución, análisis y detección de averías. • Condiciones de instalación y servicio. Mejorar las condiciones de trabajo y del entorno. IEC-61131 Presentación, Oct. 2006 13 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 1: Información general Características ergonómicas • Generales. Uso eficaz del sistema del AP y sus periféricos, reducción de errores, fatiga y riesgo para el operario. • Indicadores de estado, para CPU´s, fuentes de alimentación y el sistema de E/S. • Pantallas y teclados. Visibilidad, disposición, confirmaciones, ... • Otras recomendaciones. Ventiladores, acabado superficial, aristas vivas, portabilidad. IEC-61131 Presentación, Oct. 2006 14 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 1: Información general Definiciones de “soporte Físico” (Hardware) de un sistema AP Procesador principal Estaciones de E/S remota Periféricos permanentes Periféricos no-conectables en línea Periféricos conectables en línea NO TRANSPORTABLE Procesador principal Estaciones de E/S remota . . . . TRANSPORTABLE . . . . . . . . . PORTÁTIL . . . . . . . . Autómata programable Instalación permanente Pariféricos Instalación NO-permanente Sistema del autómata programable (Sistema AP) IEC-61131 Presentación, Oct. 2006 15 Procesador principal Entornos Integrados de Automatización Estación de E/S remota Periféricos (permanentes/ NOpermanentes) Sistema del autómata programable (AP) Ingeniería de Sistemas y Automática Parte 1: Información general Esquema de interfaz Entradas digitales y analógicas Módulos Módulos desalidas salidas de Memoria(s) Memoria(s) unidad(es) yyunidad(es) detratamiento tratamiento de Salidas digitales y analógicas Módulos Módulos de entradas de entradas Transmisión serie, etc.: ordenadores, impresoras Módulos Módulos decomunicacomunicade ción ción IEC-61131 Presentación, Oct. 2006 Fuente de alimentación Acometida de la red Límite de la norma 16 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Partes de la Norma IEC 61131: Parte 1: Información general Parte 2: Especificaciones y ensayos de los equipos Parte 3: Lenguajes de programación Parte 4: Guías de usuario (TR) Parte 5: Comunicaciones Parte 7: Fuzzy Control Parte 8: Guías de programación (TR) IEC-61131 Presentación, Oct. 2006 17 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 2: Especificaciones y ensayos de los equipos Objetivos En esta parte se especifican: • Los requisitos eléctricos, mecánicos y funcionales para los autómatas programables y los periféricos correspondientes, así como las condiciones de servicio, almacenamiento y transporte aplicables. • La información que ha de suministrar el fabricante. • Los métodos y procedimientos de ensayo que han de utilizarse para la comprobación del cumplimiento de los requisitos por parte de los autómatas programables y sus periféricos. IEC-61131 Presentación, Oct. 2006 18 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 2: Especificaciones y ensayos de los equipos Definiciones Parte accesible, batería, circuito o equipo (clase I, II, III), factor de cobertura, línea de fuga, tierra, inmunidad, entrada/salida digital, aislamiento, alimentación de red, procesador principal (MPU), microentorno, salida a prueba de cortocircuitos, categoría de sobretensión, grado de contaminación, conector desmontable, temperatura (aire ambiente), ensayo, cableado (interno, externo), ... IEC-61131 Presentación, Oct. 2006 19 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 2: Especificaciones y ensayos de los equipos Condiciones de servicio y requisitos del entorno físico Es responsabilidad del usuario que no se rebasen las condiciones de servicio: • Condiciones de servicio normales. O Condiciones del entorno físico: temperatura, humedad, contaminación, inmunidad a la corrosión, altitud. O Condiciones de servicio y requisitos eléctricos: alimentaciones, ruido eléctrico, sobretensiones, etc. O Condiciones de servicio y requisitos mecánicos: Vibraciones, choque, caída libre. • Condiciones de servicio especiales. Polvo, humo, partículas radiactivas, vapores, sales, insectos, pequeños animales, etc. • Requisitos para el transporte y almacenaje: temperatura, presión atmosférica, humedad relativa. IEC-61131 Presentación, Oct. 2006 20 Procesador principal Entornos Integrados de Automatización Estación de E/S remota Periféricos (permanentes/ NOpermanentes) Sistema del autómata programable (AP) Ingeniería de Sistemas y Automática Parte 2: Especificaciones y ensayos de los equipos Requisitos eléctricos Esquema típico de un sistema AP Entradas digitales y analógicas Módulos Módulos desalidas salidas de Memoria(s) Memoria(s) unidad(es) yyunidad(es) detratamiento tratamiento de Salidas digitales y analógicas Módulos Módulos de entradas de entradas Transmisión serie, etc.: ordenadores, impresoras Módulos Módulos decomunicacomunicade ción ción IEC-61131 Presentación, Oct. 2006 Fuente de alimentación Acometida de la red Límite de la norma 21 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 2: Especificaciones y ensayos de los equipos Requisitos eléctricos • Alimentación de corriente alterna (c.a.) y continua (c.c.). • E/S digitales. • E/S analógicas. • Interfaces de comunicación. • Procesador(es) principal(es) y memoria(s) del sistema AP. • Estaciones de entrada/salida remota (RIOS). • Periféricos: PADT, TE, MMI. • Inmunidad al ruido y ruido emitido. • Propiedades dieléctricas. • Autodiagnósticos y diagnósticos. IEC-61131 Presentación, Oct. 2006 22 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 2: Especificaciones y ensayos de los equipos Requisitos mecánicos • Protecciones contra el riesgo de choque eléctricos. • Requisitos de distancias en el aire y líneas de fuga. • Requisitos de inflamabilidad para materiales aislantes. • Envolvente. • Requisitos mecánicos de los materiales de conexión.. • Disposiciones para la tierra de protección. • Tierra funcional. • Cables y conectores de interconexión. • Conexión/desconexión de unidades desmontables. • Requisitos de la batería. • Marcado e identificación. IEC-61131 Presentación, Oct. 2006 23 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 2: Especificaciones y ensayos de los equipos Información que debe facilitar el fabricante El fabricante deberá facilitar a los usuarios la información necesaria para la aplicación, proyecto, instalación, puesta en marcha, funcionamiento y mantenimiento del sistema de autómata programable. Adicionalmente el fabricante puede ocuparse de la formación del usuario. • Tabla resumen con la información que se debe facilitar. • Tipo y contenido de la información escrita: Catálogos y hojas de características, manuales de usuario, documentación técnica. • Información relativa al cumplimiento de esta norma. • Información relativa a la fiabilidad. • Información relativa a la seguridad. IEC-61131 Presentación, Oct. 2006 24 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 2: Especificaciones y ensayos de los equipos Ensayos y verificaciones • Se define como ha de verificarse la conformidad del autómata programable y sus periféricos correspondientes con los requisitos fijados en las partes 1 y 2 de la norma. • Estos ensayos NO se refieren a los métodos de aplicación de los AP para cumplir con los requisitos del sistema automatizado. • Se dividen en ensayos de tipo y ensayos de rutina. IEC-61131 Presentación, Oct. 2006 25 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 2: Especificaciones y ensayos de los equipos Ensayos y verificaciones • Ensayos de tipo • Equipos a ensayar. • Procedimientos de verificación. • Condiciones generales para los ensayos. • Ensayos climáticos, mecánicos y eléctricos. • Verificación de las características de la alimentación de c.a. y c.c. • Verificación de las características de entrada/salida. • Verificación de las características del procesador principal. • Verificación de las estaciones de E/S remotas. • Verificación de las características de los periféricos. • Verificación del autodiagnóstico y diagnóstico. • Ensayos de rutina • Ensayo estándar de rigidez dieléctrica • Ensayo de continuidad de la tierra de protección. IEC-61131 Presentación, Oct. 2006 26 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Partes de la Norma IEC 61131: Parte 1: Información general Parte 2: Especificaciones y ensayos de los equipos Parte 3: Lenguajes de programación Parte 4: Guías de usuario (TR) Parte 5: Comunicaciones Parte 7: Fuzzy Control Parte 8: Guías de programación (TR) IEC-61131 Presentación, Oct. 2006 27 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Objeto y campo de aplicación • Definir los lenguajes de programación de uso más corriente, las reglas sintácticas y semánticas, el juego de instrucciones fundamental, los ensayos y los medios de ampliación y adaptación de los equipos. Es el interface entre el programador y el sistema de control IEC-61131 Presentación, Oct. 2006 28 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Definiciones Tiempo absoluto, vía de acceso, acción, argumento, matriz, asignación, bloque funcional biestable, cadena de bits, cuerpo, llamada, cadena de caracteres, comentario, compilar, tipo de datos, declaración, delimitador, doble palabra, flanco ascendente/descendente, función, diagrama de bloques funcionales, direccionamiento, valor, parámetro de entrada, instancia, literal entero, palabra clave, etiqueta, real largo, temporizador con retardo de conexión/desconexión, parámetro de salida, sentido de corriente, unidad de organización de programa, recurso, tarea, retorno, etapa, secuencia, transición, representación simbólica, etc... IEC-61131 Presentación, Oct. 2006 29 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación El estándar IEC-61131 Elementos comunes Lenguajes de programación IEC-61131 Presentación, Oct. 2006 30 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Elementos comunes • • • • • • • Tipos de datos y variables Modelo de software Modelo de comunicación de datos Modelo de programación Unidades de organización del programa Gráfico Funcional Secuencial (SFC) Elementos de configuración Lenguajes de programación • • • • Lista de instrucciones (IL) Texto estructurado (ST) Diagrama de bloques funcionales (FBD) Diagrama de contactos (LD) IEC-61131 Presentación, Oct. 2006 31 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Elementos comunes. Tipos de datos y variables • Tipos de datos: booleanos, enteros, reales, byte, palabra, cadenas de caracteres, fecha, hora_del_día, canal analógico de entrada, ..., tipos de datos derivados (creados por el usuario). BOOL, INT, REAL, BYTE, WORD, STRING DATE, TIME_OF_DAY, ... ¿Qué es esto? 01010101 10101010 • Variables. Asignan direcciones del hardware: E/S , memoria y datos. Locales o globales. Hacen la programación independiente del hardware. IEC-61131 Presentación, Oct. 2006 32 Parte 3: Lenguajes de programación Entornos Integrados de Automatización Elementos comunes. Modelo de software Ingeniería de Sistemas y Automática Configuración Recurso Recurso Tarea Programa Tarea Tarea Tarea Programa Programa Programa F FB FB FB FB Variables globales y representadas directamente Vías de acceso Función IEC-61131 Presentación, Oct. 2006 de comunicación (IEC 61131-5) 33 Parte 3: Lenguajes de programación Modelo de software. PLC convencional. Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Configuración Recurso Tarea Programa Recurso Tarea Tarea Tarea Programa Programa Programa F FB FB FB FB Variables globales y representadas directamente Vías de acceso Función IEC-61131 Presentación, Oct. 2006 de comunicación (IEC 61131-5) 34 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Modelo de comunicación de variables (I) • Flujo de datos dentro de un programa Programa A FB2 FB1 FB_X FB_Y a IEC-61131 Presentación, Oct. 2006 b 35 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Modelo de comunicación de variables (II) • Comunicación mediante variables globales Configuración C Programa A Programa B VAR_EXTERNAL x: BOOL; END_VAR VAR_EXTERNAL x: BOOL; END_VAR FB1 FB2 FB_X a IEC-61131 Presentación, Oct. 2006 x VAR_GLOBAL x: BOOL; END_VAR FB_Y x b 36 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Modelo de comunicación de variables (III) • Bloques funcionales de comunicación Configuración C Configuración D Programa A Programa B send1 FB1 SD1 rcv1 RD1 FB2 FB_X FB_Y b a IEC-61131 Presentación, Oct. 2006 37 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Modelo de programación Elementos de los lenguajes de programación de un AP • Tipos de datos derivados • Unidades de organización de programa, POU´s Funciones Bloques funcionales Programas • Elementos del diagrama secuencial (SFC) • Elementos de configuración Variables globales Recursos Tareas Vias de acceso IEC-61131 Presentación, Oct. 2006 Fig. 2c- Bloques funcionales de comunicación Programa de aplicación 38 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Elementos comunes • • • • • • • Tipos de datos y variables Modelo de software Modelo de comunicación de datos Modelo de programación Unidades de organización del programa Gráfico Funcional Secuencial (SFC) Elementos de configuración Lenguajes de programación • • • • Lista de instrucciones (IL) Texto estructurado (ST) Diagrama de bloques funcionales (FBD) Diagrama de contactos (LD) IEC-61131 Presentación, Oct. 2006 39 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Unidades de organización del programa (POU´s) Programas Funciones Bloques funcionales IEC-61131 Presentación, Oct. 2006 40 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Unidades de organización de programas, POU´s. Programa de aplicación INPUT OUTPUT IN_OUT EXTERNAL FUNCTION_BLOCK PROGRAM Type Type Local Local GLOBAL INPUT FUNCTION Type IEC-61131 Presentación, Oct. 2006 Local 41 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación POU´s. Funciones • Una función se define como una unidad de organización del programa que al ser ejecutada suministra exactamente un elemento de datos y cuya invocación se puede utilizar en lenguajes literales como operando en una expresión. Ejemplo: X := SIN(Y)+ COS(Z) • Las funciones no deben contener ninguna información de estado interno, es decir, que la invocación de una función con los mismos argumentos (parámetros de entrada) debe suministrar siempre el mismo valor (salida). IEC-61131 Presentación, Oct. 2006 42 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación POU´s. Funciones. • Funciones estándar: ADD, SQRT, SIN, COS, MIN, MAX, AND, OR, etc… • Funciones definidas por el usuario (ejemplo): FUNCTION Simple: REAL VAR_INPUT A, B : REAL; C : REAL:= 1.0; END_VAR Simple := A*B/C; END_FUNCTION IEC-61131 Presentación, Oct. 2006 Nombre Declaración de variables Cuerpo de la función 43 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación POU´s. Bloques funcionales, FB´s • Un bloque funcional es una unidad de organización del programa que al ser ejecutada suministra uno o más valores. Existe la posibilidad de crear múltiplos (copias) de un bloque funcional, denominadas instancias. • Cada instancia llevará asociado un identificador (el nombre de la instancia) y una estructura de datos que contenga sus variables de salida e internas. • Todos los valores de las variables de salida e internas deberán persistir de una ejecución del bloque funcional al siguiente, por lo que la llamada de un mismo bloque funcional con los mismos argumentos (parámetros de entrada) no tiene por qué dar siempre los mismos valores de salida. IEC-61131 Presentación, Oct. 2006 44 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación POU´s. Bloques funcionales. Ejemplo. Histeresis REAL XIN1 REAL XIN2 REAL EPS Q Q 1 0 EPS EPS BOOL FUNCTION_BLOCK Histeresis VAR_INPUT XIN1, XIN2: REAL; EPS: REAL; (* Banda de histéresis *) END_VAR VAR_OUTPUT Q: BOOL := 0 END_VAR IF Q THEN IF XIN1<(XIN2-EPS) THEN Q:=0 (* XIN decreciendo *) END_IF; ELSEIF XIN1>(XIN2+EPS) THEN Q:=1; (* XIN creciendo *) END_IF END_FUNCTION_BLOCK XIN2 IEC-61131 Presentación, Oct. 2006 45 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Unidades de organización del programa (POU´s). • Las funciones • Los bloques funcionales • Los programas Los programas son “un conjunto lógico de todos los elementos y construcciones del lenguaje de programación que son necesarios para el tratamiento de señal previsto que se requiere para el control de una máquina o proceso mediante el sistema de autómata programable”. IEC-61131 Presentación, Oct. 2006 46 Parte 3: Lenguajes de programación POU´s. Programas Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Configuración Recurso Tarea Programa Recurso Tarea Tarea Tarea Programa Programa Programa F FB FB FB FB Variables globales y representadas directamente Vías de acceso Función IEC-61131 Presentación, Oct. 2006 de comunicación PLC convencional . (IEC 61131-5) 47 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación POU´s. Programas. • Flujo de datos dentro de un programa Programa A FB1 FB2 • Comunicación entre programas: * en la misma configuración (variables globales), o * en configuraciones distintas (vías de acceso, comunicaciones) Programa A IEC-61131 Presentación, Oct. 2006 Programa B 48 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Elementos comunes • • • • • • • Tipos de datos y variables Modelo de software Modelo de comunicación de datos Modelo de programación Unidades de organización del programa Gráfico Funcional Secuencial (SFC) Elementos de configuración Lenguajes de programación • • • • Lista de instrucciones (IL) Texto estructurado (ST) Diagrama de bloques funcionales (FBD) Diagrama de contactos (LD) IEC-61131 Presentación, Oct. 2006 49 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Sequential Function Chart, SFC • SFC describe el comportamiento secuencial del programa de control. Deriva de las Redes de Petri y Grafcet (CEI 848). Grafcet Grafcet Documentación Documentación IEC-61131 SFC SFC Conjuntode deelementos elementos Conjunto decontrol controlde deejecución ejecución de deuna unaPOU POU de • Permite dividir el problema en partes • Facilita el rápido diagnóstico de problemas y las tareas de mantenimiento IEC-61131 Presentación, Oct. 2006 50 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Sequential Function Chart, SFC • SFC consiste en un conjunto de etapas (STEP´s) en los cuales se realizan una serie de acciones (ACTION BLOCK´s) y unas transiciones (TRANSITION´s) que permite la evolución de una etapa(s) a la(s) siguiente(s). “a” Paso 1 N Llena “b” “c” “d” Transition 1 Etapa 2 S Vacia Transition 2 Step 3 IEC-61131 Presentación, Oct. 2006 Bloque de acción “a” Cualificador “b” Nombre de la acción “c” Indicador booleano “d” Acción en LD, FBD, ST ó IL 51 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Sequential Function Chart, SFC Permite secuencias alternativas y simultáneas Etapa 1 Transición 1a Etapa2a S Mezcla IEC-61131 Presentación, Oct. 2006 Llenar Transición 1b Etapa2b Transición 2a Ejemplo de secuencias alternativas N S Vaciar Transición 2b Etapa3 52 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Elementos comunes • • • • • • • Tipos de datos y variables Modelo de software Modelo de comunicación de datos Modelo de programación Unidades de organización del programa Gráfico Funcional Secuencial (SFC) Elementos de configuración Lenguajes de programación • • • • Lista de instrucciones (IL) Texto estructurado (ST) Diagrama de bloques funcionales (FBD) Diagrama de contactos (LD) IEC-61131 Presentación, Oct. 2006 53 Parte 3: Lenguajes de programación Entornos Integrados de Automatización Elementos comunes. Modelo de software Ingeniería de Sistemas y Automática Configuración Recurso Recurso Tarea Programa Tarea Tarea Tarea Programa Programa Programa F FB FB FB FB Variables globales y representadas directamente Vías de acceso Función IEC-61131 Presentación, Oct. 2006 de comunicación (IEC 61131-5) 54 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Elementos de configuración. Una configuración se compone de: RECURSOS TAREAS VARIABLES GLOBALES VIAS DE ACCESO Veamos esto con un ejemplo .... IEC-61131 Presentación, Oct. 2006 55 Entornos Integrados de Automatización CONFIGURATION CELL_1 RESOURCE STATION_2 RESOURCE STATION_1 TASK SLOW_1 TASK FAST_1 P1 TASK PER_2 TASK INT_2 P1 P2 PROGRAM F Ingeniería de Sistemas y Automática P4 PROGRAM F PROGRAM G out1 y1 x1 x2 FB1 FB2 A y1 y2 B b1 b2 SLOW_1 FAST_1 x1 x2 FB1 C c1 FB2 D d1 y2 PER_2 HOUT1 PER_2 SLOW_1 %IX1.1 y1 PROGRAM H z1 w INT_2 z2 %QW5 VARIABLES GLOBALES Y REPRESENTADAS DIRECTAMENTE BAKER ABLE CHARLIE DOG GAMMA VIAS DE ACCESO Ejemplo Configuración IEC-61131 Presentación, Oct. 2006 Comunicación ALPHA BETA 56 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Ejemplo de configuración... Declaraciones de bloques funcionales y parámetros FUNCTION_BLOCK A VAR_OUTPUT y1:UINT; y2:BYTE; END_VAR END_FUNCTION_BLOCK FUNCTION_BLOCK B VAR_INPUT b1:UINT; b2:BYTE; END_VAR END_FUNCTION_BLOCK FUNCTION_BLOCK C VAR_OUTPUT c1:BOOL; END_VAR FUNCTION_BLOCK D VAR_INPUT d1:BOOL; END_VAR VAR_OUTPUT y2:INT; END_VAR END_FUNCTION_BLOCK END_FUNCTION_BLOCK PROGRAM F VAR_INPUT x1: BOOL; x2: UINT; END_VAR VAR_OUTPUT y1: BYTE; END_VAR END_PROGRAM PROGRAM G VAR_OUTPUT out1: UINT; END_VAR VAR_EXTERNAL z1: BYTE; END_VAR VAR FB1: A; FB2: B; END_VAR FB1(...); out1 := FB1.y1; z1 := FB1.y2; FB2(b1 := FB1.y1) ; b2 := FB1.y2); END_PROGRAM PROGRAM H VAR_OUTPUT HOUT1: INT; END_VAR VAR FB1: C; FB2: D; END_VAR FB1(...); FB2(d1 := FB1.c1) ; HOUT1 := FB2.y2; END_PROGRAM IEC-61131 Presentación, Oct. 2006 57 Entornos Integrados de Automatización Parte 3: Lenguajes de programación Ejemplo de configuración... Configuraciones, recursos, variables Ingeniería de Sistemas y Automática CONFIGURATION CELL_1 CONFIGURATION CELL_1 VAR_GLOBAL w : UINT; END_VAR VAR_GLOBAL w : UINT; END_VAR RESOURCE STATION_1 ON PROCESSOR TYPE_1 RESOURCE STATION_1 ON PROCESSOR TYPE_1 VAR_GLOBAL z1 : BYTE ; END_VAR VAR_GLOBAL z1 : BYTE ; END_VAR TASK SLOW_1(INTEGRAL := t#20ms, PRIORYTY := 2) ; TASK SLOW_1(INTEGRAL := t#20ms, PRIORYTY := 2) ; TASK FAST_1(INTERVAL := t#10ms, PRIORYTY := 1) ; TASK FAST_1(INTERVAL := t#10ms, PRIORYTY := 1) ; PROGRAM P1 WITH SLOW_1 ; PROGRAM P1 WITH SLOW_1 ; F(x1 := %IX1.1) ; F(x1 := %IX1.1) ; PROGRAM P2 : G(out1 => w, PROGRAM P2 : G(out1 => w, FB1 WITH SLOW_1, FB1 WITH SLOW_1, FB2 WITH FAST_1) ; FB2 WITH FAST_1) ; END_RESOURCE END_RESOURCE RESOURCE STATION_2 ON PROCESSOR TYPE_2 RESOURCE STATION_2 ON PROCESSOR TYPE_2 VAR_GLOBAL z2 : BOOL ; VAR_GLOBAL z2 : BOOL ; AT %QW5 : INT ; AT %QW5 : INT ; END_VAR END_VAR TASK PER_2(INTERVAL := t#50ms, PRIORITY := 2) ; TASK PER_2(INTERVAL := t#50ms, PRIORITY := 2) ; TASK INT_2(SINGLE := z2, PRIORITY := 1) ; TASK INT_2(SINGLE := z2, PRIORITY := 1) ; PROGRAM P1 WITH PER2 : PROGRAM P1 WITH PER2 : F(x1 := z2, x2 := w) ; F(x1 := z2, x2 := w) ; PROGRAM P4 WITH INT 2 : PROGRAM P4 WITH INT 2 : H(HOUT1 => %QW5, H(HOUT1 => %QW5, FB1 WITH PER_2) ; FB1 WITH PER_2) ; END_RESOURCE END_RESOURCE VAR_ACCESS VAR_ACCESS ABLE : STATION_1.%IX1.1 : BOO READ_ONLY ; ABLE : STATION_1.%IX1.1 : BOO READ_ONLY ; BAKER : STATION_1.P1.X2 : BOO READ_ONLY ; BAKER : STATION_1.P1.X2 : BOO READ_ONLY ; CHARLIE : STATION_1.z1 : BOO READ_ONLY ; CHARLIE : STATION_1.z1 : BOO READ_ONLY ; DOG :w : BOO READ_ONLY ; DOG :w : BOO READ_ONLY ; ALPHA : STATION_2.P1.y1 : BOO READ_ONLY ; ALPHA : STATION_2.P1.y1 : BOO READ_ONLY ; BETA : STATION_2.P4.HOUT1 : BOO READ_ONLY ; BETA : STATION_2.P4.HOUT1 : BOO READ_ONLY ; GAMMA : STATION_2.z2 : BOO READ_ONLY ; GAMMA : STATION_2.z2 : BOO READ_ONLY ; END_VAR END_VAR END_CONFIGURATION END_CONFIGURATION IEC-61131 Presentación, Oct. 2006 58 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Elementos de configuración. Tareas. Tarea es un elemento de control de ejecución que es capaz de iniciar la ejecución de un conjunto de POU´s: programas y bloques funcionales, cuyas instancias están en la declaración de los programas. RESOURCE STATION_1 TASK SLOW_1 P1 TASK FAST_1 P2 PROGRAM F PROGRAM G FB1 FB2 SLOW_1 FAST_1 Las tareas son habilitadas implícitamente cuando está habilitado el recurso al que están asociadas. SLOW_1 IEC-61131 Presentación, Oct. 2006 59 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Elementos de configuración. Tareas. Existen dos modos de control de la ejecución de tareas: • Por evento: Ejecución por flanco ascendente de la entrada SINGLE • Por tiempo: Ejecución periódica según la entrada INTERVAL.. Nom_task PRIORITY establece la prioridad de las tareas ( 0 - máxima) Varios POU´s pueden estar asociados a la misma tarea. No pueden existir tareas a la vez por evento y temporizadas.. IEC-61131 Presentación, Oct. 2006 TASK SINGLE BOOL TIME INTERVAL UINT PRIORITY 60 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación El estándar IEC-61131 Elementos comunes Lenguajes de programación IEC-61131 Presentación, Oct. 2006 61 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación 4 Lenguajes de programación • Lenguajes gráficos Diagrama de escalera (“Ladder Diagram”, LD) Diagrama de Bloques Funcionales (”Function Block Diagram, FBD) • Lenguajes literales Lista de instrucciones (“Instruction List”, IL) Texto estructurado (“Structured Text”, ST) La selección del lenguaje de programación depende de la experiencia del programador, de la aplicación concreta, del nivel de definición de la aplicación, de la estructura del sistema de control y del grado de comunicación con otros departamentos de la empresa... IEC-61131 Presentación, Oct. 2006 62 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática S_01 S_02 S_01 S_03 Manual ( ) LD Start S_01 SFC Paso_1 Transición_02 Paso_2 Programación con lenguajes conocidos de PLC ... y lenguaje de alto nivel IL LD Entrada_Manual OR Entrada_Automática AND Desbloqueo ST Funcionamiento LD Entrada_01 Transición_Fin IF Data = "EOF" THEN FOR Index:=1 TO 128 DO X:=Read_Data(Datenfeld[index]); IF X > 2500 THEN Alarma:=TRUE; END_IF; END_FOR; END_IF; ST IEC-61131 Presentación, Oct. 2006 S_01 XOR S_02 S_03 Tiempo_01 TON Lámpara T#12s400ms FBD Tiempo actual 63 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Lenguaje Gráficos (LD y FBD) Características comunes: • Los elementos del lenguaje gráfico se representan mediante caracteres ISO/CEI 646 o elementos gráficos o semigráficos. • Una red es un conjunto de elementos gráficos interconectados, que debe ser identificada (un número, p.e.). • Reglas de evaluación de redes. Vías de realimentación. • Posibilidad de saltos y retornos (condicionales e incondicionales). S_01 S_02 S_01 Manual ( ) S_01 S_03 LD XOR S_02 S_03 Tiempo_01 TON Lámpara T#12s400ms FBD IEC-61131 Presentación, Oct. 2006 Tiempo actual 64 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Diagrama de escalera (“Ladder Diagram”, LD) Características: • • • • Barras de alimentación. Elementos de enlace y estados: flujo de energía. Contactos, bobinas y bloques funcionales Orden de evaluación de las redes. Ejemplo: MAN S_0 Lma KMB FCS EM IEC-61131 Presentación, Oct. 2006 65 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Diagrama de Bloques funcionales (FBD) Características: • La representación es coherente con la Norma CEI 617-12. • Las salidas de los bloques funcionales no se conectarán entre sí (se precisa bloque “OR”). • La evaluación de una red estará terminada antes de la siguiente. Ejemplo: Start EMER AND TON T#4s400ms IEC-61131 Presentación, Oct. 2006 IN Q PT ET KM V_temp 66 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Lenguaje Literales (IL y ST) Características comunes: • La representación de literales. • Los siguientes elementos de estructuración de las POU´s: TYPE ... END_TYPE VAR ... END_VAR VAR_INPUT ... END_VAR VAR_OUTPUT ... END_VAR VAR_IN_OUT... END_VAR VAR_EXTERNAL .. END_VAR FUNCTION ... END_FUNCTION FUNCTION_BLOCK ... END_FUNCTION_BLOCK PROGRAM .. END_PROGRAM STEP ... END_STEP TRANSIION ... END_TRANSITION ACTION ... END_ACTION IEC-61131 Presentación, Oct. 2006 LD Entrada_Manual OR Entrada_Automática AND Desbloqueo ST Funcionamiento LD IL Entrada_01 IF Data = "EOF" THEN FOR Index:=1 TO 128 DO X:=Read_Data(Datenfeld[index]); IF X > 2500 THEN Alarma:=TRUE; END_IF; END_FOR; END_IF; ST 67 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Lista de Instrucciones (“Instruction List”, IL) Características: • Instrucciones: Etiqueta Operador Operando START: LD ANDN ST Arranque %MX5 SALIDA Comentario (*Pulsar botón *) (* No inhibidor *) (* Conecta calefactor *) • Operadores: LD, ST, S, R, AND, OR, XOR, ADD, SUB, MUL, DIV, GT, GE, EQ, NE, LE, LT, JMP, CAL, RET, ) • Funciones y bloques funcionales. Se coloca el nombre en el campo del operando y los parámetros, si los lleva, en entre paréntesis. Se emplea la operación CAL. IEC-61131 Presentación, Oct. 2006 68 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Texto estructurado (“Structured Text”, ST) Características: • Similar al Pascal. Alto nivel, estructurado en bloques. • Expresiones:Es una construcción sintáctica que al se evaluada proporciona un valor. Está compuesta por operadores y operandos. La evaluación se efectúa según una tabla de prioridades. • Sentencias: De asignación (:=), De control del flujo del programa: llamada a bloque funcional, RETURN De selección: IF, CASE De iteración: FOR, WHILE, REPEAT, EXIT IEC-61131 Presentación, Oct. 2006 69 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Texto estructurado (“Structured Text”, ST) Ejemplo: IF Dato = “EOF” THEN FOR indice:=1 TO 128 DO x:= Read_dato(Canal[indice); IF x>2500 THEN Alarma:=TRUE; END_IF; END_FOR; END_IF IEC-61131 Presentación, Oct. 2006 70 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Entornos de programación Muchos de ellos ofrecen: g g g g g g Pantallas de programación gráfica Soporte para múltiples ventanas Operaciones con el ratón Menús desplegables Ayuda en línea Verificación del software durante el diseño IEC-61131 Presentación, Oct. 2006 71 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Características claves de la calidad IEC 61131-3 Software Estructurado - a través de configuraciones, Recursos y Unidades de Organización de Programa (POUs). Tipeado de Datos - a través de lenguajes que restringen las operaciones a los tipos de datos adecuados. Control de la Ejecución - a través del uso de Tareas. Comportamiento Secuencial Complejo - a través de los Esquemas Funcional Secuencial. Encapsulación del Software - a través del uso de POUs, estructuras y tipos de datos complejos. IEC-61131 Presentación, Oct. 2006 72 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Beneficios del estándar para los usuarios Discrete Mnf Control de procesos ¿Usted ? Integrador de sistemas Instalación Educación Programación Mantenimiento IEC-61131 Presentación, Oct. 2006 73 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Parte 3: Lenguajes de programación Beneficios del estándar para los usuarios g Reduce el gasto en recursos humanos: formación, depuración, mantenimiento, ... g Evita fuentes habituales de problemas por su flexibilidad y reusabilidad. g Técnicas de programación adecuadas a todos los sectores. g Combinación de elementos y modos de representación. g Incrementa la conectividad y comunicacón entre departamentos y compañias. IEC-61131 Software Library FunctionBlock "Heating" Function "LIMIT" Function "TEST" IEC-61131 Presentación, Oct. 2006 Function Block "Turning" FunctionBlock "Feeding" 74 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática El estándar es una realidad en papel, y ahora ... IEC-61131 Presentación, Oct. 2006 75 Entornos Integrados de Automatización Ingeniería de Sistemas y Automática Han creado el problema de la gallina y el huevo: USUARIOS n Ven los beneficios del estándar, pero necesitan productos adecuados que cubran sus necesidades IEC-61131 Presentación, Oct. 2006 VS. PROVEEDORES n La demanda debe ser capaz de cubrir los gastos en investigación y desarrollode los productos 76