Sei sulla pagina 1di 7

PLC sobre Linux

Esta info fue recopilada con la ayuda de Oscar Brites Controlador lgico programable Los PLC (Programmable Logic Controller en sus siglas en ingls) son dispositivos electrnicos muy usados en Automatizacin Industrial. Su historia se remonta a finales de la dcada de 1960 cuando la industria busc en las nuevas tecnologas electrnicas una solucin ms eficiente para reemplazar los sistemas de control basados en circuitos elctricos con rels, interruptores y otros componentes comnmente utilizados para el control de los sistemas de lgica combinacional. Los PLC actuales pueden comunicarse con otros controladores y computadoras en redes de rea local, y son una parte fundamental de los modernos sistemas de control distribuido. Los PLC con forma de rack tienen mdulos con procesadores y con mdulos de E/S separados y opcionales, que pueden llegar a ocupar varios racks. Entre ellos podemos destacar: Entradas Digitales Salidas Digitales Entradas Analgicas Salidas Analgicas Mdulos de Aplicacin Especficas: Reguladores PID Enconders Buses de campo. Comunicaciones industriales Las docenas de lneas de productos de idntica funcionalidad pero incompatibles entre ellos, limitan a los clientes a la solucin propietaria de determinado vendedor.

PC Industriales Son sistemas electrnicos constituidos por un computador de propsito general adecuadamente diseado y montado para poder trabajar en un entorno de un proceso industrial continuo o discreto y soportar las condiciones ambientales adversas (polvo, temperaturas, interferencias electromagnticas, vibraciones, etc.). Sistemas Operativos de Tiempo Real Es un sistema operativo que ha sido desarrollado para aplicaciones de tiempo real. Como tal, se le exige correccin en sus respuestas bajo ciertas restricciones de tiempo. Si no las respeta, se dir que el sistema ha fallado. Para garantizar el comportamiento correcto en el tiempo requerido se necesita que el sistema sea predecible (determinista), algunas caractersticas son: No utiliza mucha memoria Cualquier evento en el soporte fsico puede hacer que se ejecute una tarea Multi-arquitectura (puertos de cdigo para otro tipo de UCP) Muchos tienen tiempos de respuesta predecibles para eventos electrnicos. SOFT - PLC La limitada utilizacin del PC industrial como un sistema de control de proceso est relaciona, en buena medida, con la tradicional resistencia al cambio, con cierta "fama"

de inestabilidad de ciertos sistemas operativos del mbito oficinista en el contexto empresarial y con la falta de conocimiento que el personal de automatizacin tiene de lenguajes de programacin de alto nivel. Para paliar este problema, algunos fabricantes proponen la combinacin de un Sistema Operativo de Tiempo Real (RTOS) con programas Soft-PLC que emulan por software el comportamiento de un PLC. Este SOFT-PLC es una arquitectura abierta que respeta el estndar IEC 61131 3, dicho software permite transformar una PC, tanto industrial como comn, en un PLC. Generalidades del proyecto PLC Linux Cuando hablamos de PLC en Linux, nos referimos tpicamente al autmata entero: componentes de hardware, sistemas, y software de uso corriente. En general, el hardware consiste en una CPU, puertos de entrada/salida y algn dispositivo de entrada/salida analgico o digital directo. El soporte lgico garantiza que, una vez corriendo, el PLC repite eternamente una secuencia de instrucciones de control (software de uso), que puede ser modificado en lnea o fuera de ella por un sistema de programacin al que est conectado. Desde el punto de vista del programador, un PLC tradicional es visto como un solo proceso que corre en la PC. En el contexto que nos ocupa, destacamos la existencia de la versin en tiempo real denominada RTLinux. Este se sita entre el hardware y el propio sistema operativo, creando una mquina virtual para que Linux pueda seguir funcionando. RTLinux es el encargado de gestionar las interrupciones y del acceso al hardware. Las tareas de tiempo real comparten el mismo espacio de memoria que el ncleo y se ejecutan con todos los privilegios; es decir, pueden ejecutar cualquier instruccin del procesador y tienen acceso a las entradas/salidas. Las tareas tienen prioridades fijas y pueden hacerse peridicas, compartir recursos mediante FIFOs o memoria compartida, sincronizarse etc, lo que representa una serie de capacidades tpicas de los sistemas operativos de tiempo real. De forma sucinta, podemos considerar que Linux es la tarea de ms baja prioridad, que slo se ejecutar cuando no haya una tarea de tiempo real preparada. De esta forma, podemos mantener todas las aplicaciones tpicas de Linux en una capa superior. Implementacin En la primera versin, la aplicacin se ejecuta desde la lnea de comandos. El usuario introduce introduce la informacin acerca de los siguientes aspectos: La configuracin SW La configuracin HW Los programas en la lista en la lista de instrucciones asociadas a cada tarea. Las caractersticas de las tareas.

Esta informacin se almacena en un fichero de configuracin, utilizado por el gestor de la aplicacin. Tambin se posibilita la edicin directa de dicho fichero. A partir de este fichero de configuracin, el gestor comprueba la coherencia (por ejemplo, que no intentamos acceder a un bit de entrada que no est presente en el hardware escogido), y compila los programas asociados en lista de instrucciones. La salida son programas en cdigo C que contienen las funciones a realizar dentro de cada ciclo de una tarea del autmata y el fichero necesario en el paso final de compilacin habitual en Linux (Makefile). Este fichero Makefile hace referencia a una serie de ficheros patrn, predefinidos, as como a los ficheros especficos generados por el gestor. Se ha decidido que el compilador de lista de instrucciones obtenga como salida directamente cdigo C, de similar manera a como se ha realizado en casos precedentes encontrados en la literatura. Esta es la solucin que proporciona una ejecucin posterior ms rpida. No obstante, uno de los ficheros intermedios de la compilacin contiene cdigos de operacin y operandos, que podran ser llevados a memoria e interpretados en tiempo de ejecucin si se prefiere esta alternativa. El programa final para RTLinux es en realidad un mdulo insertable en el kernel de Linux. En el inicio del mdulo se crean los hilos (cada uno asociado a una tarea peridica del autmata), se solicitan las interrupciones (tareas por eventos) y puertos de E/S dependiendo del hardware, y se asignan las zonas de memoria para los objetos del lenguaje (imagen de entrada/salida, memoria y bloques funcionales). Al terminar el mdulo, se liberan todos los recursos. Por ejemplo, la estructura de una tarea peridica, que se encuentra en un fichero patrn, es sencilla: void *task1 (void *arg) { struct sched_param p; p.sched_priority = 2; pthread_setschedparam (pthread_self(), \ SCHED_FIFO, &p); pthread_make_periodic_np (pthread_self(),\ gethrtime(), \ PERIOD1); while (1) {

pthread_wait_np (); /* Read physical inputs */ update_input_image(); /* Execute user program */ do_plc_program[0](); /* Set physical outputs */ update_output(); } return 0; } La tarea se marca a s misma como de prioridad 2 en este ejemplo, (en nuestra implementacin, la tarea de menor periodo sera la ms prioritaria), y con la poltica del planificador SCHED_FIFO, la nica posible en RTLinux. Despus se hace peridica, con periodo denominado PERIOD1, a travs de pthread_make_periodic_np, una funcin no definida en POSIX. Con pthread_wait_np, se suspende la ejecucin del thread hasta el prximo periodo. En cada periodo se ejecuta el clsico ciclo del autmata. Las funciones update_input_image y update_output dependen del hardware y estn definidas en un fichero externo, realizado a priori. La primera actualiza la imagen de entradas, mientras que la segunda copia la imagen de las salidas en la salida fsica. El gestor de la aplicacin las har visibles a travs del Makefile. La funcin do_plc_program[0] est definida en un fichero externo generado tras la compilacin de los programas de lista de instrucciones, y es el que ejecutar realmente el programa introducido por el usuario, accediendo a la imagen de entradas, salidas, bits de memoria internos y bloques funcionales, cada uno con su espacio de memoria compartida. El Makefile generado por el gestor permite compilar todos los ficheros adecuados conjuntamente. Una aplicacin en Linux (baja prioridad) permite obtener informacin de las tareas, objetos del sistema (entradas, salidas, etc) a travs de la memoria compartida, para realizar una supervisin del trabajo del autmata. OpenPCS El entorno de programacin OpenPCS es un framework abierto basado en el Active Document Server Technology(una versin especial del active X controls).Esto permite una fcil integracin con cualquier herramienta especifica de un fabricante(OEM) OpenPCS es un producto, que sigue el concepto moderno de software de cdigo abierto.

Se compra el software de Infoteam una vez y entonces se puede vender junto con el hardware de forma gratuita. SmartPLC El smartPlc es el runtime de OpenPCS, es un SoftPLC compatible con IEC 61131-3 Esta maquina vitual se ejecuta en UCODE, un codigo universal, independiente que emula un PLC. Dado que existe una amplia gama de distintos sistemas, el objetivo fue implementar un kernel runtime portable, el cual puede ser fcilmente adaptable a cualquier controlador y sistema operativo.Esta escrito en ANSI c,permitiendo de esta manera una alta portabilidad. Corre en forma nativa para WinCE , MS C.NET y XP Embedded en procesadores de 8 a 64 bit. Pero como esta escrito en ansi c ,puede correr en linux con pequeas modificaciones. http://www.infoteam.de/ CoDeSys CoDeSys es un entorno de desarrollo para la programacin de controladores conforme con el estndar industrial internacional IEC 61131-3. El trmino CoDeSys es un acrnimo y significa Sistema de Desarrollo de Controladores. Ms 200 fabricantes de dispositivos de diferentes sectores industriales ofrecen sus dispositivos de automatizacin inteligente programable con la interfaz de programacin CoDeSys. En consecuencia, miles de usuarios finales en todo el mundo emplean CoDeSys para su trabajo diario en todo tipo de tareas de automatizacin. Hoy en da, CoDeSys es la herramienta de desarrollo basada en IEC 61131-3 ms extendida en Europa. Codesys sp run time system El run time convierte cualquier sistema embebido o basado en pc en un dispositivo considerado por el estndar IEC 61131-3 como un PLC. La aplicacin del run time es realizada por el fabricante del dispositivo de automatizacin que es asistida por el 3S-Smart Software Solutions. El usuario final no participa en este proceso. Entre las familias de cpu que soportan al Codesy sp run time se encuentran: Infineon SAB80C167 family Infineon TriCore ARM based CPU Renesas SH 2/3/4 Motorola ColdFire

PowerPC Intel 80186/80x86/Pentium x MIPS Analog Devices BlackFin Altera NiosII http://www.3s-software.com/ CoDeSys Automation Alliance (CAA) La CoDeSys Automation Alliance (CAA) es una alianza internacional de fabricantes que ofrecen dispositivos de automatizacin programables con CoDeSys. El Principal objetivo de la CAA es ofrecer un conjunto de dispositivos para diferentes tareas industriales con un nico instrumento de programacin, CoDeSys. La plena interoperabilidad y el intercambio de datos a nivel de aplicacin estn garantizados por las empresas del CAA que se renen en talleres peridicos para seguir el proceso de normalizacin. http://www.automation-alliance.com/

Fuente: Mario Alberto Piz / 27 de noviembre de 2008 / http://mariopiz.blogspot.com/

Potrebbero piacerti anche