Un Simulador Del Lenguaje IL Del Estándar IEC 61131-3 Como Apoyo A La .

Transcription

Un simulador del lenguaje IL del estándar IEC 61131-3 comoapoyo a la asignatura de Automática IndustrialRodrigo García Puente, César García-Osorio, Angel Peña PeñaUniversidad de BurgosAvda. Cantabría s/n, 09006, Burgosrodrigo.garcia.puente@gmail.com, cgosorio@ubu.es, appena@ubu.esResumenLos Autómatas Programables Industriales oControladores Lógicos Programables (enadelante, PLCs, del término inglés ProgrammableLogic Controllers), son dispositivos electrónicosmuy usados en el mundo de la automatizaciónindustrial. La programación de los autómatas serealiza con software desarrollados por losfabricantes propios dispositivos. La mayoría deestos entornos son propietarios y requieren el pagode una costosa licencia. Esto supone unadificultad no sólo para la migración de sistemas enla industria sino también para la docencia delfuncionamiento de dichos sistemas.En el año 1990 un grupo de trabajo de laComisión Electrotécnica Internacional (IEC)definió el estándar IEC 61131, que es el primerpaso para la estandarización de los autómatasprogramables y sus periféricos.En este recurso docente se presenta unsoftware que permite la edición, validación ysimulación de programas para PLCs, en concreto,para programas escritos en lenguaje Lista deInstrucciones (Instruction List, en adelante, IL)dentro del estándar IEC 61131-3, un lenguaje muyparecido al lenguaje ensamblador.El software desarrollado lleva a cabo elanálisis léxico y sintáctico de dicho lenguaje.Además, presenta una interfaz de usuario parapresentar los resultados de la simulación de losprogramas escritos en IL.1. IntroducciónLos PLCs son computadores diseñadosespecíficamente para la tarea de control deprocesos industriales discretos y analógicos. Estáncompuestos por una unidad central de proceso yde entradas y salidas para interactuar con elentorno industrial.El diseño de los autómatas es modular parapoder disponer del número de entradas y salidasnecesarias para cada aplicación en particular. Losmódulos se conectan a un bus que los comunicacon la unidad central de proceso. Existen módulos(cartas) de entradas y salidas tanto digitales comoanalógicas, dependiendo de la aplicación que setrate. Si el autómata se va a dedicar al control deprocesos discretos se añaden módulos de entradasy salidas discretas (8 ó 16 bits). Si el autómata seva a dedicar al control de procesos continuos seañaden módulos de entradas y salidas ógico/digital y digital/analógico.La programación de los autómatas se realizaen alguno de los múltiples lenguajes queproporciona el fabricante del mismo. Sonlenguajes de programación en modo texto ográficos propietarios del fabricante. Tambiénexisten una serie de lenguajes de programaciónespecificados en el estándar IEC-61131-3. Esteestándar se desarrolló para unificar laprogramacióndeautómatas,puesconanterioridad, cada vez que se cambiaba defabricante había que aprender su lenguajepropietario. Ahora los entornos de programaciónque vienen con los autómatas soportan loslenguajes del estándar.1.1. El estándar IEC 61131El año 1990 un grupo de trabajo de la lElectrotechnical Comisión; IEC) definió elestándar IEC 61131 [3], que supone el primerpaso hacia la estandarización de los autómatasprogramables y sus periféricos.

604RecursosSe creó como un compendio y continuaciónde otros muchos estándares internacionales1. A lolargo de la década de los 90 esta norma fueampliada hasta llegar a ser lo que es hoy, undocumento dividido en 5 partes diferentes,incluyendo los lenguajes de programación que sedeben utilizar:!!!!!Parte 1: Vista general.Parte 2: Hardware.Parte 3: Lenguajes de programación.Parte 4: Guías de usuario.Parte 5: Comunicación.y está basado en la representación gráficade la lógica de relés." Diagrama de Bloques Funcionales oFunctionBlockDiagram(FBD):ampliamente utilizado en Europa y muycomún en aplicaciones que implican flujode información o datos entre componentesde control. Las funciones y bloquesfuncionales aparecen como circuitosintegrados.En la Figura 1 se puede visualizar un mismoprograma representado en 4 de los 5 lenguajes quedefine el estándar.La parte 3 del estándar, IEC 61131-3, es la basepara estandarizar los lenguajes de programaciónen la automatización industrial. El estándar definecinco lenguajes de programación normalizados.Esto significa que su sintaxis y semántica ha vas.El estándar distingue dos lenguajes de tipotextual y otros tres de tipo gráfico:! Textuales o literales:" Lista de Instrucciones o Instruction List(IL): es similar a un lenguaje ensambladorbasado en un acumulador simple." Texto Estructurado o Structured Text (ST):es un lenguaje de alto nivel con orígenes enAda, Pascal y C. Puede ser utilizado paracodificarexpresionescomplejaseinstrucciones anidadas.! Gráficos:" DiagramaFuncionalSecuencialoSequential Function Chart (SFC): describegráficamente el comportamiento secuencialde un programa de control. Ayuda aestructurar la organización interna de unprograma, y a descomponer un problema enpartes manejables, cada una de las cualespuede se programada en el resto delenguajes que define el estándar." Diagrama de Contactos o Ladder Diagram(LD): tiene sus orígenes en Estados Unidos1IEC 50, IEC 559, IEC 617-12, IEC 617-13, IEC 848,ISO/AFNOR, ISO/IEC 646, ISO 8601, ISO 7185 e ISO7498.Figura 1. Un mismo programa en los 4 lenguajesdel estándar IEC 61131-3.2. MotivaciónEl simulador de PLC para el lenguaje IL delestándar IEC 61131-3 se ha desarrollado para lasprácticas de la asignatura Automatización yRegulación de Procesos de 3º curso de IngenieríaTécnica Industrial, especialidad Mecánica, de laUniversidad de Burgos. Los conocimientosimpartidos en esta asignatura son transversalespara esta especialidad. El plan de estudios de latitulación no esta diseñado para que sus egresadosse dediquen al control de procesos en su vidaprofesional. En las empresas, las tareas desintonización de controladores PID y deprogramación de autómatas son realizadas por lostitulados en la rama de Electrónica.La asignatura Automatización y Regulaciónde Procesos es una asignatura obligatoria de seiscréditos. Dos terceras partes del periodo lectivo dela asignatura se dedican a la teoría de control

XIV Jornadas de Enseñanza Universitaria de la Informáticaclásica y la parte restante a la automatizaciónindustrial. En esta parte se hace una breveintroducción general a la materia y a continuaciónse dedica a la programación en el lenguaje IL. Losconocimientos impartidos de este lenguaje selimitan a operaciones lógicas, aritméticas y a laprogramación de contadores y temporizadores. Laprogramación se realiza simultáneamente en ellenguaje textual IL y en el gráfico de secuencia debloques funcionales (Grafcet) para que losalumnos adquieran los conceptos de estado y detransición de estado.La programación en el lenguaje IL se empezóa impartir en el curso 2006-07 sobre papel al nodisponer de un entorno de programación que losoportase. En el curso 2007-08 se ha vuelto aimpartir con la misma metodología por que laaplicación no ha estado disponible hasta febrerode 2008 y la asignatura se imparte en el primercuatrimestre. A partir del curso 2008-09 lasprácticas de programación en este lenguaje serealizaran utilizando el software descrito en esteartículo.En el laboratorio de Ingeniería de Sistemas yAutomática, área de conocimiento que imparteesta asignatura, se disponen de autómatasprogramables de la compañía alemana Siemensjunto con su entorno de programación Step7 v5.0.Este entorno de desarrollo es muy potente,permitiendo programar en lenguajes textualescomo AWL (equivalente al lenguaje IL) y gráficoscomo KOP (diagramas de contactos) y FUP(diagramas de bloques funcionales).El lenguaje AWL (ver Figura 2) es bastantecríptico por que utiliza nemotécnicos con el menornúmero de caracteres posible. Por ejemplo, en lanemotécnica alemana, que es la utiliza pordefecto, la letra U (UND) representa el operadorlógico AND, O (ODER) por el operador lógicoOR, E (EINGABE) por INPUT o A (AUSGABE)por OUTPUT [11].UUOUU E 0.0E 0.1E 0.2E 0.3A 0.0U (O E 1.0605O)UOO) E 1.1(E 1.2E 1.3A 1.0Figura 2. Ejemplo de programa escrito en ellenguaje AWL.El lenguaje AWL también puede utilizar lanemotécnica inglesa, A (AND), O (OR), I(INPUT) o Q (OUTPUT), haciéndolo másintuitivo a las personas con conocimientos deinglés. Sin embargo, el problema persiste por queel código en este lenguaje es difícil de leer por quesus nemotécnicos tienen extremadamente pocoscaracteres. Cuando se intenta hacerlo se hacenecesario traducir mentalmente los nemotécnicospor el operador que representan. Un programadorexperto no tiene ningún problema por suhabituación al lenguaje pero para un alumno deuna especialidad tan ajena a la programacióncomo es la de Mecánica puede dificultar suaprendizaje.Por el contrario, el lenguaje IL (ver Figura 3)dispone de nemotécnicos cuyo número decaracteres no esta limitado a uno o dos caracteres.Por ejemplo, los nemotécnicos de los operadoreslógicos AND, OR y XOR son los mismosoperadores. Esta característica del lenguaje IL lohace fácilmente legible.LDANDOR (AND)ST%I0.0%I0.1%I0.2%I0.3LDORAND (OR)ST%I1.0%I1.1%I1.2%I1.3%Q0.0%Q1.0Figura 3. Ejemplo de programa escrito en IL(equivalente al de la Figura 1).Aprenderlenguajesdeprogramaciónestandarizados es una ventaja para los alumnos.

606En el caso que durante su vida profesionalnecesiten programar un autómata, es cada vez másprobable que el fabricante soporte total oparcialmente el estándar IEC 61131-3. AllenBradley, uno de los más importantes fabricantesde autómatas del mercado, soporta el estándar IEC61131-3 desde hace varios años. Siemens haadaptado su lenguaje AWL al estándar IEC61131-3, denominándolo STL (STatement List)[9],pero sin cumplirlo estrictamente. STLcontinúa utilizando los nemotécnicos de AWLaunque en su versión en inglés.También consideramos que no es necesario unentorno de desarrollo profesional para introducir alos alumnos en la programación de autómatas alnivel requerido en esta asignatura. Con un sencilloprograma como el descrito en este artículo, en elque puedan escribir el código, validarlo yejecutarlo de forma interactiva, es más quesuficiente.3. El simulador de ILEl simulador de IL, IL Paser Simulator, se haprogramado usando Microsoft Visual Studio2005 y el lenguaje C# como entorno de desarrolloy lenguaje de programación respectivamente.Como herramienta para el análisis léxico ysintáctico se ha usado ANTLR2 [5];principalmente porque esta herramienta se integraa la perfección con el entorno de desarrollo yporque es una herramienta de análisis en continuaevaluación.Se ha diseñado la aplicación de manera quefuese similar a otros entornos de desarrollobasados en el sistema Windows (ver Figura 4).Todas las áreas que componen el entorno asícomo sus elementos son sensibles al contexto enel que se usan, esto quiere decir que los elementosde la pantalla se activarán o desactivarán enfunción de la posibilidad de uso de los mismos.A continuación se dan más detalles de todoslos elementos de la aplicación.3.1. Barra de menúsSituada en la parte superior de la ventana, permiteel acceso a todas las opciones de la aplicación a2ANTLR es una herramienta que permite generaranalizadores o intérpretes para un lenguaje dado. Es loque se denomina un compilador de compiladores.Recursostravés de varios menús que agrupan lafuncionalidad de la aplicación (ver Figura 5).Se han incorporado 5 menús: Archivo, Editar,Ver, Depurar y Ayuda. Algunas de las opcionesde menú disponen de códigos de atajos de tecladopara ejecutar la opción directamente sin acceder almenú. De igual manera, la barra de herramientaspermite también el acceso a las acciones másusuales.3.2. Barra de herramientasSituada justo debajo de la barra de menús, permiteel acceso rápido a las funciones más usuales de laaplicación a través de una serie de iconos.Permite el acceso rápido a las siguientesopciones: Nuevo proyecto o archivo, Abrirproyecto, Abrir proyecto reciente, Cerrarproyecto, Guardar, Guardar todos los archivos,Cortar, Copiar, Pegar, Deshacer y Rehacer últimaacción sobre el texto, Validar programa, ón, Siguiente instrucción, Establecer oquitar punto de interrupción y Salir.En la Figura 6 se ve la barra de herramientasde la aplicación.3.3. Árbol de proyectoSituado en la parte lateral izquierda de la pantallaprincipal, muestra la estructura de ficheros delproyecto de programa que esté abierto (si es queestá abierto algún proyecto).Cada proyecto consta de un archivo deprograma principal (extensión .plcm), el accesoa la configuración de simulación y luego trescarpetas que pueden contener de cero a n archivos,categorizados en:! Funciones (Archivos Function, con extensión.plcf),! Bloques de función (Archivos Function Block,con extensión .plcb)! Texto (Archivos Text, con extensión .plct).Toda la información del proyecto se almacena enel un archivo de proyecto (extensión .plcp). Enla Figura 7 (izquierda) se puede ver el árbol de unproyecto de ejemplo.

XIV Jornadas de Enseñanza Universitaria de la Informática3.4. Página de propiedadesSituada en la parte inferior izquierda de lapantalla, bajo el árbol de proyecto, permite lavisualización y edición de las propiedades(metadatos) de los archivos del proyecto.Únicamente se permiten editar las propiedadesnombre y descripción. Si no está seleccionadoningún archivo del proyecto, la página depropiedades se muestra vacía. Ver ejemplo en laFigura 7 (derecha).3.5. Área de edición del programaSituada en el centro de la pantalla, es el elementoque más área de la pantalla ocupa.Permite la edición de los archivos deprograma que componen el proyecto. Cada uno delos archivos de programa abiertos se representandentro de una pestaña diferente. La activaciónde una pestaña produce la selección automáticadel archivo en el árbol de proyecto (y, enconsecuencia, la visualización de sus propiedadesen la página de propiedades).Durante la edición de un archivo el usuariopuede seleccionar porciones de texto y llevar acabo las típicas operaciones de copiado, cortado ypegado. Estas accesibles a través del menú edicióno con los típicos atajos de teclado. También, esposible deshacer y rehacer las operaciones deedición y realizar búsquedas.3.6. PanelesSituados bajo el área de edición (Figura 8), sedivide en 4 subpaneles:! Análisis y resultados: Dónde se muestran losmensajes del proceso de validación y semuestran mensajes de error en caso que estosse produzcan.! Examinador de variables: Es el subpanel másinteresante. En él se muestran los cambios devalor en las variables, que tienen lugar duranteel proceso de simulación. Asimismo, semuestran los bloques de entrada, de salida yde memoria. El usuario puede utilizar loscuadro de validación (check boxes) en estosbloques para simular las distintas entradas alPLC o forzar determinadas situacionesdurante la simulación. Para configurar elnúmero de bloques de entrada y de salida, y elnúmero de bits que tendrá cada bloque, se607debe acceder a la Configuración de lasimulación (Figura 9) del programa en elmenú Depurar (Figura 5). Por defecto,cuando se crea el proyecto, se establecen unosparámetros por defecto, que son tres bloques,uno de entrada, otro para salida y otro paramemoria, y, 8 bits por bloque.! AST: En este subpanel aparece el árbol desintaxis abstracta (Abstract Syntax Tree) delprograma IL analizado.! Break Points: Muestra la lista de puntos deinterrupción que están establecidos en elprograma con la línea y la instrucción a la quecorresponde el punto de interrupción. Cuandoel programa está siendo simulado y se alcanzaun punto de interrupción en el programa, laejecución queda suspendida hasta que elusuario tome una decisión: pasar a la siguienteinstrucción, continuar o parar. Se puedeneliminar todos los puntos de interrupción delprograma directamente accediendo a la opción Depurar Eliminar todos los puntos deinterrupción, previa confirmación seráneliminados todos los puntos de interrupcióndel programa.3.7. Barra de estadoSituada en la parte inferior de la pantalla, muestrainformación adicional. Está dividida en tressecciones, la primera de ellas muestra una barra deprogreso cuando hay algún proceso en ejecución;la segunda muestra la línea en la que está situadoel cursor dentro de un archivo de programa y latercera muestra mensajes hacia el usuario.4. El proceso de simulaciónEl primer paso será abrir un proyecto ( Archivo Abrir proyecto ). Una vez abierto hay que validarel programa ( Depurar Validad programa ). Sise produce errores se mostrarán en el subpanel deanálisis de resultados. En caso contrario, estamosen disposición de iniciar la simulación. Existendos modos principales de simulación, la ejecuciónpaso a paso, o ejecución indefinida.El usuario puede establecer puntos de rupturapara detener la ejecución de la simulación y poderconsultar los valores de las variables o simular lamodificación de las entradas al PLC. Parareanudar la ejecución puede decidir continuar

608paso a paso o continuar hasta el siguiente punto deruptura.Los puntos de ruptura puede establecerse encualquier momento del proceso de ejecución en elque la simulación este detenida. También esposible deshabilitar puntos de control previos odesactivar la totalidad de los puntos de control.5. ConclusiónSe ha presentado una aplicación que permite lasimulación de programas escrito en IL. Estesimulador permite el aprendizaje de un lenguajede programación de PLCs independientemente delfabricante. Que sepamos, la única aplicación desimilares características es MatPLC3 [10], pero nise trata de un proyecto orientado a la docencia, nipresenta una interfaz gráfica.Debido a la reciente finalización de laaplicación presentada en este artículo, todavía nose ha empezado a utilizar en las prácticas. Dadoque en este momento todos los ejercicios deprogramación en IL se hacen exclusivamente con lápiz y papel parece incuestionable la granventaja que supondrá la utilización de estaherramientas. Los beneficios que aportará estesimulador están avalados por el éxito de otrasherramientas similares utilizadas como recursodocente [1, 2, 4, 6, 7, 8].En el futuro esperamos ampliar la aplicacióncon la inclusión del lenguaje ST. La parte dedeclaración de datos es común con IL y ya estapresente en la actual versión, con lo que el primerpaso en esta dirección ya esta dado.Otra idea de desarrollo futuro es la inclusiónde alguno de los lenguajes gráficos. Estoslenguajes requieren la traducción a IL como pasoprevio a su simulación, con lo que lafuncionalidad desarrollada para la presenteversión de la aplicación será punto de partidoindispensable.La herramienta descrita en este artículo puededescargarse de la siguiente página r/.Recursos[2][3][4][5][6][7][8][9]Referencias[1] Concheiro, R., Loureiro, M., Amor, M., urceforge.net/.pedagógico de un procesador. XI Jornadas deEnseñanza Universitaria de Informática,489-495, Villaviciosa de Odón (Madrid),2005.Jáuregui Vidal, A., Ruiz Vázquez, T.,Etxeberria Uztarroz, I. Simulador de unaunidad de control microprograma. XJornadas de Enseñanza Universitaria deInformática, 501-504, Alicante, 2004.John, K.-H., Tiegelkamp, M. IEC 61131-3:ProgrammingIndustrialAutomationSystems: Concepts and ProgrammingLanguages, Requirements for ProgrammingSystems, Aids to Decision-Making Tools.Springer, 2001.Moreno, L., González, E.J., Popescu, B.,Torres, J., Toledo, J., González, C.Simuladores de jerarquía de memoria en elcontexto de un proceso de investigaciónacción. XIII Jornadas de EnseñanzaUniversitaria de Informática, 393-400,Teruel, Julio 2007.Parr, T. ANTLR Reference Manual. 008).Perles, A., Martínez, J.M., Asan, H.,Alvadalejo, J., Domínguez, C. El SimuladorSimSenv en la Innovación Docente de laAsignatura Informática Industrial. VIIJornada de Enseñanza Universitaria de laInformática, 166-172, Palma de Mallorca,2001.Prieto, M., Vicente, A.J., Vargas, J.A.Simulador de dispositivos de entrada/salidaprogramables. VIII Jornadas de EnseñanzaUniversitaria de Informática, 595-598,Cáceres, 2002.Rodríguez Álvarez, M., Gómez García, A.M.,Mesas García, P., Ruiz Núñez, J.I., Prieto, A.Desarrollo de un simulador de programacióndel microprocesador Intel 8085. IX Jornadasde Enseñanza Universitaria de Informática,577-580, Cádiz, 2003.SIMATIC - Statement List (STL) for S7-300and S7-400 Programming, Siemens, sapi.dll/csfetch/18653496/AWL e.pdf?func cslib.csFetch&nodeid 18653995&forcedownload true, última visita 19/feb/2008).de Sousa, M., Carvalho, A. An IEC 61131-3compiler for the MatPLC. IEEE Conference

XIV Jornadas de Enseñanza Universitaria de la Informáticaon Emerging Technologies and FactoryAutomation, 1: 485-490, 2003.[11] TIA Manual de formación para solucionesgenerales en automatización, Siemens, module sp/a08/a08 online.pdf, última visita19/feb/2008).Figura 4. La ventana de la aplicación IL Parser Simulator.Figura 5. Barra de menús, con el menú Depurar desplegado.

610RecursosFigura 6. Barra de herramientas.Figura 7. Izquierda: Árbol de proyecto. Derecha: Página de propiedadesFigura 8. Izquierda: Árbol de proyecto. Derecha: Página de propiedadesFigura 9. Configuración de la simulación.

simulador permite el aprendizaje de un lenguaje de programación de PLCs independientemente del fabricante. Que sepamos, la única aplicación de similares características es MatPLC 3 [10], pero ni se trata de un proyecto orientado a la docencia, ni presenta una interfaz gráfica. Debido a la reciente finalización de la