You are on page 1of 14

1.

Introduccin
Desde los inicios del tiempo y particularmente enmarcados dentro del contexto de procesos industriales, cientficos de todo el mundo han trabajado para lograr que los procesos de manufactura sean cada vez ms efectivos y ms eficientes. Con esta meta se han desarrollado nuevos instrumentos para lograr alcanzar este mejoramiento continuo. Al referirnos a herramientas estas abarcan dispositivos de todo tipo y por su puesto programas que acompaan manejan y dan valor agregado a los mismos. En este articulo nos centraremos particularmente en un dispositivo que causo gran revolucin en los procesos industriales como son los PLCs y en el software asociado a ellos. Los PLCs (Programming Logic Controllers) o tambin conocidos como autmatas industriales nos ofrecen amplias posibilidades para la automatizacin, debido a que nos permiten controlar automticamente cualquier proceso o desarrollo industrial[SIE01]. Estos procesos no solo son controlados por dispositivos de hardware sino tambin por dispositivos de software y es all donde entran a jugar un papel sumamente importante los SCADA (Supervisionary Control And Data Adquisition ) que como su nombre lo dice, son aplicaciones de software que nos ayudan y facilitan el control y la supervisin de esos mismos procesos[ENE01]. Luego de aprender ms en detalle sobre estos dos aspectos mencionados anteriormente consideramos necesario permitir que el lector tenga la oportunidad de aprender un poco ms sobre la programacin concurrente. Que si bien no necesariamente debe estar asociada al termino SCADA, se convierte entonces en una oportunidad de asociarla y descubrir los beneficios que una programacin, que permite modelar el mundo como realmente es, nos brinda[SCH01].

2. PLC (Programming Logic Controller )


Es un equipo electrnico capaz de ejecutar un programa cclicamente o un computador industrial en miniatura que contienen hardware y software que es usado para desarrollar funciones de control [MAL99]. Un PLC es puede ser al mismo tiempo un AFD, un agente de estados finitos determinsticos, que como su nombre lo dice es un agente que puede cambiar de estado, y cada estado depende exclusivamente del estado anterior y de la ocurrencia de un evento determinado, por lo tanto su comportamiento es determinstico. Al pensar en

PLCs como unos AFDs, es necesario que tambin tengamos claros los pasos que estos siguen dentro de cualquier proceso de automatizacin industrial para que el sistema funcione[ACT01]. 1. 2. 3. 4. 5. Alimentacin principal del sistema Entradas Tratamiento de esos datos Salidas Variacin real sobre la instalacin o el proceso

Al mismo tiempo existe una interaccin hombre-mquina que permite modificar el proceso si este as lo requiere.

2.1 Componentes bsicos de un PLC


Estos dispositivos estn conformados principalmente por una CPU y la interface de Entrada/Salida. Esta ltima est conectada a dispositivos de campo como: sensores, switches etc. Debido a sus componentes opcionales estos se pueden clasificar en dos tipos; los compactos que son conocidos en el mercado como nanoautmatas, permiten programar hasta 48 E/S. Son potentes en el marco de programacin y comunicaciones con equipos externos. Los modulares son diseados para aplicaciones pequeas pero disponen desde clculos matemticos bsicos y muchas otras funciones, la diferencia con los anteriores es que a estos se les puede agregar mdulos para aumentar su capacidad de trabajo [AUT01]. Los PLCs se componen de un chasis principal, donde estn alojados los diferentes mdulos que pueden ser entradas y salidas adicionales o dispositivos para comunicacin con otros autmatas, los cuales son limitados dependiendo de la capacidad de la CPU, pues estas permiten manejar cierto nmero de mdulos dependiendo del modelo. Un mismo autmata puede tener diferentes tipos de chasis, fuentes, etc. Se debe tener por lo menos una fuente de alimentacin una CPU y unos mdulos conectados por un bus, que casi siempre es serie para propsitos de comunicacin [PLC01]. Como un concepto adicional importante para recordar esta el tiempo de ciclo en un PLCs, que es el tiempo en que los perifricos del autmata tardan en realizar un ciclo completo, es

decir desde que lee las entradas hasta que escribe las salidas y se utiliza para funciones de control sobre el proceso que se esta realizando.

2.2 Programacin de PLCs


Para programar un PLC se utiliza software como Grafcet y otros de los cuales hablaremos ms adelante que corren en sistemas operativos muy usados hoy en da como Windows y Linux. Sin embargo todava se utilizan pequeas consolas llamadas pockets, las cuales resultan ms econmicas que tener un PC dedicado a la programacin de estos dispositivos exclusivamente y cuando solo la modificacin de datos es necesaria las consolas son de gran utilidad. Sin embargo, estas son muy limitantes debido a que se puede utilizar ms que todo para PLCs pequeos de hasta 48 E/S; para PLCs ms grandes la programacin se vuelve mucho mas complicada, ya que normalmente estas consolas permiten visualizar solamente un par de lneas de cdigo al tiempo [UTP01]. Debido a que existen un sinnmero de PLCs de diferentes marcas y cada uno se programa de forma especfica se han diseado programas estndar como Texto Estructurado y Lista de Instrucciones que permiten programar de una forma muy amigable diversos tipos de PLCs especificando luego de programar el tipo de PLC al cual se quiere programar y este software convierte el programa al cdigo correspondiente del PLC [ADV01]. Algunos tipos de software para programacin de PLCs son: Grfico secuencial de funciones (Grafcet): Este es un lenguaje grfico que brinda una representacin en forma de diagrama de las diferentes secuencias del programa[GRA01]. Lista de instrucciones (IL o AWL): Este lenguaje de bajo nivel, parecido a ensamblador. Con IL solo se permite una operacin por lnea (ej. Cambiar el valor de un registro). Este lenguaje solo es adecuado como es de suponerse para aplicaciones no muy grandes y para optimizar partes de un programa[AUT01]. Texto estructurado (Structured Text o ST): Es un lenguaje de alto nivel con sintaxis parecida a PASCAL. El ST es empleado para realizar rpidamente sentencias largas que manejen variables de diferentes tipos de datos, que

pueden incluir valores analgicos y digitales (horas, fechas, contadores etc.. El lenguaje provee expresiones condicionales y bucles iterativos[MAL99]. Diagrama de contactos (ladder diagram LD): Este lenguaje utiliza un juego estandarizado de smbolos de programacin[PLC01]. Diagrama de funciones (function block diagram o FBD): Es un lenguaje grfico que permite programar elementos que aparecen como estados siendo cableados entre si de forma anloga al esquema de un circuito[RED01]. Bloques de funciones (FB's): Este es un lenguaje de bloques estndar que ejecutan algoritmos como reguladores de procesos[PLC01].

2.3 Comunicacin de PLCs


Los PLCs se pueden comunicar entren si y con otros dispositivos a travs de buses de terreno. Este es un nombre genrico dado a protocolos de comunicacin totalmente digitales para mediciones industriales y aplicaciones de control. Estos protocolos son parte fundamental en la automatizacin de procesos. Algunos Protocolos de buses de terreno son, CAN (Controller area network), WorldFIP (Factory instrumentation protocol), Interbus-S, Profibus-FMS (Filedbus Message specification)/PA (Process Automation), Profibus-DP (Decentralised Peripherie), ARNET (Attached Resource Computer Network), LON (Local Operating Network), Bitbus, SERCOS (Serial Time Communication System), JBUS, Modbus[VAR01] [TUM01][FBO01]. Cada uno de estos posee sus propias caractersticas entre ellas se pueden encontrar la deteccin y correccin de errores, mecanismos de difusin, manejo de prioridades y otras. De igual forma permiten la utilizacin de diferentes topologas como la de anillo, de bus, de rbol, de estrella o de lnea [RES99].

3. SCADAs (Supervisory Control And Data Adquisition)


Existe tambin un tipo especial de programas que sirven para efectuar funciones de adquisicin de datos control y supervisin sobre los PLCs y su nombre en el mercado es SCADA, sigla que al traducirse al espaol significan supervisin control y adquisicin de datos[BCO01].

3.1 Funcionamiento de un SCADA


Un sistema SCADA permite al operador supervisar el funcionamiento de una planta de trabajo. Este tipo de software tambin provee facilidades para el control de la misma[ENE01]. Esto se consigue a travs de la interface grfica que permite mostrar el sitio en pantalla como un grupo de imgenes o ventanas, cada parte de la planta puede ser monitoreada y controlada por medio de su propia ventana. La totalidad de la planta puede ser controlable por medio del uso de un SCADA, permitiendo la interaccin manual al mismo tiempo y brindando funciones como la de apagar toda la planta con solo presionar una tecla. Para propsitos de seguridad los SCADA ofrecen una restriccin de acceso controlada por contraseas y restriccin en comandos tambin controladas por contraseas que permiten manejar diferentes niveles de privilegio de usuarios. Debido a que los SCADA pueden llegar a controlar todos los aspectos de la planta, aquel o aquellos que lo manejen deben ser personal capacitado. La mayora de los sistemas SCADA proveen sistemas de alarmas que permite controlar cualquier tipo de anomala que suceda dentro de la planta. Tambin se pueden encontrar funcionalidades como la de poder guardar, ver y analizar datos histricos. En esta rea de software de supervisin ya se han hecho importantes avances a escala mundial, de hecho existen hoy por hoy un sin nmero de compaas que desarrollan este tipo de aplicaciones y proveen al usuario a parte de las funcionalidades mencionadas anteriormente que son comunes en la gran mayora de SCADA muchas otras como la compatibilidad con diferentes tecnologas, tales como ODBC, OPC, ActiveX, OLE, COM, DCOM, etctera. Y muchas otras caractersticas que le pueden permitir hasta mandar mensajes a travs de Internet via SMS cuando una alarma se activa y notificar as al encargado de la planta de tal suceso[ACT01].

3.2 Compaas productoras de SCADAS:


Una de las ms importantes es USDATA [USD01], desarrolladora de Factory Link, programa que provee a travs de un esquema maestro esclavo una interface con el operador, manejo y monitoreo de alarmas, manejo de datos histricos en bases de datos como Oracle o SQL, generacin de reportes,

monitoreo de procesos y capacidad de redundancia. Otra compaa tambin muy importante es Advantech que desarrolla y distribuye Fix Driver. Software que proporciona caractersticas similares al anterior[ADV01]. Adems de las anteriores compaas existen otras que desarrollan software de caractersticas similares y es necesario mencionarlas como Emation [EMA01] que produce Wizfactory e Iconics que desarrolla Genesis[ICO01].

3.3 Ventajas de un SCADA


Permiten monitorear el desempeo de un sistema desde la aplicacin a costos muy bajos. Los datos pueden ser recuperados remotamente y un operador puede controlar un equipo mecnico hidrulico o neumtico sin tener que visitar el sitio de ubicacin del mismo. Adems los gerentes pueden supervisar el proceso desde cualquier sitio. Un operador de planta puede controlar el equipo a travs de ventanas, en la mayora de casos tipo Windows que le brindan una interface grfica y una serie de comandos de control muy fciles de recordar. Las funciones de alarma pueden comunicar su condicin a travs de telfonos, beepers, radios u otros sistemas. Y permiten comunicarse con el software remotamente para solucionar problemas sin tener que ir al sitio de ubicacin de la planta. Estos sistemas proveen almacenamiento histrico de datos para comparacin con datos actuales y futuros. Se pueden utilizar PCs estndar para la interface hombre mquina. La comunicacin en red permite que esta se realice entre diferentes equipos inclusive de diferentes fabricantes. Brindando flexibilidad en la compra de nuevos equipos o la modificacin y actualizacin de los actuales[GEN01].

4. Programacin Concurrente
Es el nombre dado a notaciones de programacin y tcnicas para expresar paralelismo potencial y resolver los problemas resultantes de sincronizacin y de comunicacin[SC101].

4.1 Necesidad de una programacin concurrente


Existen varios aspectos en nuestro mundo inherentemente distribuido que hacen necesaria la programacin concurrente. En primera instancia es ms fcil modelar de una manera concurrente un sistema del mismo tipo, que hacerlo encajar dentro del paradigma secuencial que de ninguna manera esquematiza el comportamiento de ese sistema. Tambin es necesario considerar que el programar concurrentemente permite que los sistemas sean ms fcilmente escalables debido a la modularidad de su desarrollo y que tambin estos pueden ser mucho ms eficientes debido a que permiten la ejecucin en paralelo de mltiples instrucciones. La programacin concurrente es usada para modelar y simular sistemas fsicos, inclusive si esos sistemas no estn controlados directamente por un computador. La simulacin es una herramienta importante en la optimizacin de sistemas fsicos; la programacin concurrente brinda una forma natural de asignar segmentos del programa para representar objetos fsicos y por eso ayuda mucho a representar simulaciones. Se piensa que la concurrencia como un tpico avanzado mucho ms difcil que la programacin serial, por lo que necesita ser estudiado muy detenidamente y muy ampliamente, sin embargo al estudiarla ms a fondo podemos darnos cuenta que esto no es verdad y podemos entonces percibir todas las ventajas que esta nos ofrece[SC101].

4.2 Problemas implcitos en la programacin concurrente


Al programar concurrentemente y por ello compartir recursos surgen algunos problemas que necesitan ser resueltos para as aprovechar al mximo todas las ventajas que la programacin concurrente nos puede brindar. Entre los problemas ms importantes podemos mencionar algunos: La ejecucin de un de proceso que puedan afectar la informacin perteneciente a otro proceso que se ejecuta en paralelo a menos que est autorizado a hacerlo (datos compartidos). El abrazo mortal, que es el estado en el que dos transacciones se queden bloqueadas cada una esperando por recursos que esta utilizando la otra. Inanicin: Estado al que llega una transaccin cuando es seleccionada repetidamente para abortar y as evitar un abrazo mortal.

Livelock: Estado en donde una transaccin cambia continuamente de estado en respuesta a cambios en otra transaccin mientras la otra hace lo mismo, sin conseguir ningn resultado con ello[SCH89].

4.3 Mecanismos de solucin a problemas de la programacin concurrente


Existen distintos formas para solucionar estos problemas partiendo de mecanismos de bajo nivel como semforos que como obliga a los procesos a ponerse en cola y as evitar problemas con memoria compartida. Mecanismos de envo de mensajes para el mismo propsito. Hasta mecanismos de ms alto nivel como monitores que proveen ciertas operaciones internas que deben ser llamadas para poder modificar los datos asegurando as el control sobre los mismos. Se pueden nombran hablar tambin de mecanismos de sincronizacin como el rendez vouz donde un proceso no escribe hasta que el otro este listo para leer[BAR95].

4.4 Metodologa de diseo de sistemas concurrentes


Cuando se piensa en utilizar la programacin concurrente como herramienta de desarrollo es preciso hablar primero de la metodologa de diseo de sistemas concurrentes y una en particular que es ampliamente usada y define los siguientes pasos[FLE95]: Particin o Descomposicin El problema computacional se descompone en pequeas tareas pequeas que forman las unidades de concurrencia ya sea relacionando su nivel de interaccin o simplemente haciendo uso de alguna heurstica conservando siempre en mente la necesidad de eliminar redundancia en procesamiento y almacenamiento. Coordinacin Esto paso define la incorporacin de mecanismos que permitan la comunicacin y sincronizacin de tareas que se puede realizar usando el paso de mensajes o la memoria compartida. Tratando siempre de garantizar que todas las tareas tengan aproximadamente el mismo nmero de comunicaciones, que cada tarea

se comunica slo con un pequeo nmero de vecinos y que estas operaciones de comunicaciones puedan realizarse de forma simultanea Aglomeracin o Asignacin En este paso, las tareas se agrupan basadas en procesos para optimizar el rendimiento, reducir costes de desarrollo y garantizar la flexibilidad y escalabilidad. Proyeccin En este ltimo paso los procesos se asignan a los procesadores que haya disponibles de forma que se minimice los costos de comunicacin y al mismo tiempo se maximice el uso de esos procesadores, es decir que exista un buen balance.

4.5 Lenguajes de programacin concurrente


Dentro de los lenguajes para la programacin concurrente vale la pena hablar un poco de dos en especial por su gran importancia, estos son: Ada Uno de los pocos lenguajes que provee estructuras embebidas para programacin concurrente y provee herramientas para diseo de software de seguridad crtica y proyectos grandes que requieran portabilidad y mantenimiento. Por esta razn la mayora de software para aviacin esta programado en Ada que tambin fue el primer lenguaje orientado a objetos aceptado mundialmente. El lenguaje lleva este nombre en honor a Ada Byron que fue el primer programador del que se tiene registros, siendo este una mujer e hija del poeta Lord Byron [ARA]. Occam Es un lenguaje de procesamiento paralelo diseado por un equipo en INMOS en conjunto con el diseo del procesador transputer, y basado en CSP. Este lenguaje incorpora soporte para un grano muy fino, hilos de ejecucin fciles de usar y un amplio soporte de ambientes multiprocesadores. Este puede ser

usado con sistemas de memoria compartida o distribuida, y es una buena opcin cuando se requiere correccin[WOT01].

4.6 Herramientas de especificacin y verificacin de sistemas concurrentes 4.6.1 Redes de Petri


Es un modelo grfico para describir sistemas concurrentes, se puede ver como un grafo dirigido y bipartido donde las dos clases de vrtices se denominan lugares y transiciones, se permiten lados paralelos en estas redes. Al modelar una red de Petri, los lugares representan condiciones, las transiciones representan eventos y la presencia de por lo menos una ficha en un lugar indica que la condicin se cumple. En una red de Petri (P) es un lugar de entrada para la transicin T, si existe un lado dirigido que va desde el lugar P hasta la transmisin T. De igual forma se define un lugar de salida. Si todo lugar de entrada para una transmisin T tiene al menos una ficha, se dir que T es permitida. Una transicin permitida que quita una ficha a cada lugar de entrada y agrega una ficha a cada de salida se llama descarga. Una marca M para una red de Petri esta viva si al empezar en M es posible descargar cualquier transicin dada a travs de una sucesin adicional de descarga, sin importar que la sucesin de descarga ya haya sucedido. Una marca en una red de Petri es acotada si existe un entero positivo N que tiene la propiedad de que en cualquier sucesin de descarga ningn lugar recibe mas de N fichas. Ahora si una marca M esta acotada y en cualquier sucesin de descarga ningn lugar recibe mas de una ficha, se dice que M es una marca segura[UOK].

4.6.2 CSP (Communicating Sequential Processes)


Es una teora matemtica para especificar y verificar patrones de comportamiento como abrazos mortales o Livelocks que se dan durante al interaccin de objetos concurrentes. Su semntica formal y composicional esta completamente ligada con nuestra intuicin natural sobre las formas en que las cosas funcionan. Podemos ver el modelo como un grupo de componentes organizados en una capa y comunicndose con otra capa de componentes a travs de canales unidireccionales. Este modelo naci debido a la necesidad de

encapsular la informacin de tal manera que esta permanezca correcta, facilitar el diseo y poder detectar fallas antes de que estas ocurran. Entre muchas de las ventajas que este modelo brindan esta su semntica sencilla y por ende su facilidad de aplicar, sus kernel tan liviano mejorando as el rendimiento de las mquinas y el que haya software del tipo de FDR que permita verificar s el modelo esta correcto o no. El enfoque de sincronizacin que utiliza CSP es el de rende Vuez, que no permite que un proceso escriba si al mismo tiempo el otro proceso esta haciendo un leer y viceversa, como estas acciones en teora se deben realizar en paralelo estas deberan ser no bloqueantes[WOT01].

4.6.2.1 JCSP (Java communicating sequential processes)


Java tambin desarrolla su propia implementacin basada en el lgebra de CSP, orientada a la concurrencia de procesos. No se requiere conocimientos avanzados en matemticas para usar esta herramienta. Al contrario permite una simplificacin en el diseo que la concurrencia genera. JCSP brinda la capacidad a travs de bibliotecas completas de desarrollar programas de funcionalidad compleja sobre capas de procesos de comunicacin. Con esta implementacin el modelo CSP aparece soportado por las aplicaciones multihilo de Java. Los Procesos interactuan solamente a travs de la primitivas de sincronizacin de CSP como channels, CALL channels, timers, crews, barriers, buckets o otros modos bien definidos de accesos a objetos pasivos. Dos procesos no invocan procesos de si mismos. Estos procesos pueden corren en forma secuencial o paralela. Existen tambin en el mercado aplicaciones que nos permiten verificar computacionalmente modelos especificados con CSP y una de las ms sobresalientes es FDR [UOK].

4.6.2.1 FDR (Failures-Divergence Refinement)


Permite la verificacin de muchas de las propiedades de sistemas de estados finitos y la investigacin de sistemas que no pasan ese tipo de verificaciones. Esta basado en la teora de CSP. Fue desarrollado en la universidad de Oxford.

Su mtodo de probar si una propiedad se cumple es el de probar el refinamiento de un sistema de transicin que captura la propiedad a travs de la mquina candidato. Tambin permite verificar el determinismo de una mquina de estados y esto es usado primordialmente para corroborar propiedades de seguridad [FOS].

5. Conclusiones
Los PLCs representan un gran avance en al industria de la automatizacin industrial, pues con ellos se logra controlar procesos antes muy difciles de manejar. Los SCADAs brindan una serie de caractersticas que los hace necesarios en una planta para supervisin de procesos que de otra manera serian muy difciles de seguir debido a su tamao. La programacin concurrente facilita la implantacin de aplicaciones escalables y flexibles, debido a que permite modelar el mundo como realmente es. Si bien esta trae consigo algunos problemas, existen mecanismos de control para los mismos y al contrario existe hoy en da una gran cantidad de lenguajes y aplicaciones que facilitan la implantacin de aplicaciones a usando la programacin concurrente y otras que permiten la verificacin de la misma.

6. Referencias

[AUT01] Pgina de Autmatas, "www.automatas.org" Septiembre 21 de 2001. [USD01] Pgina de United States Data Corporation, www.usdata.com Septiembre 21 de 2001. [ADV01] Pgina de Advatech corporation, www.advatech.com Septiembre 21 de 2001

[SCH89] Schiper, Andre, Concurrent Programming, London : North Oxford Academic, 1989 [ARA] Pgina de la asociacin de recursos de Ada www.adaic.com Noviembre 15 de 2001. [FOS] Pgina de formal systems www.formal.demon.co.uk, Noviembre 23 de 2001. [UOK] Pgina de la universidad de Kent www.cs.ukc.ac.uk Noviembre 25 de 2001. [RES99] Rseaux de terrain, Edition HERMES Paris 1999 [IAI01] Pgina de Industrial Automation www.abpubs.demon.co.uk Septiembre 21 de 2001. INSIDER

[MAL99] Controladores lgicos y autmatas programables, segunda edicin, Enrique Maldonado, 1999. [BAR95] Concurrent Programming, Alwyn Barry, 1995. [FLE95] ML with concurrency: design analysis implementation, and application, Flemming Nielson, 1995. [GRA01] Pgina de Grafset www.lurpa.ens-cachan.fr, Noviembre 23 de 2001. [EMA01] Pgina de Emation, www.emation.com, Noviembre 23 de 2001. [ICO01] Pgina de Iconics www.iconics.com, Noviembre 23 de 2001. [GEN01] Pgina de Garver engineers www.garverinc.com, Septiembre 12 de 2001. [ENE01] Pgina de Energenecs www.energenecs.com, Septiembre 15 de 2001. [BCO01] Pgina de Borde communications www.neal-and-massy.com, Septiembre 10 de 2001. [VAR01] Pgina de Varcol, Electrical services limited, www.varcol.co.uk, Noviembre 15 de 2001. [SIE01] Pgina de Siemens www.ca.landisstaefa.com, Diciembre 1 de 2001. [ACT01] Pgina de Actron www.actron.se, Diciembre 1 de 2001. [PLC01] Pgina de PLCS www.plcs.net, Diciembre 1 de 2001.

[UTP01] Pgina de la universidad tecnolgica de panama www.fim.utp.ac.pa Noviembre 20 de 2001. [WOT01] Pgina de Parallel systems Noviembre 20 de 2001 engineering, wotug.ukc.ac.uk,

[SC101] On concurrent programming, Schneider Fred, 1997. [TUM01] Pgina de la Universidad tcnica de Munchen, www.lpr.etechnik.tu-muenchen.de, Septiembre 28 de 2001. [FBO01] Pgina de la organizacin de Filedbus www.fieldbus.org, Octubre 25 de 2001. [RED01] Pgina de Redeya eya.swin.net Noviembre 20 de 2001.

You might also like