Aplicaciones en Tiempo Real Utilizando VB y VBA
Alfredo Espinosa Reza José Alfredo Sánchez López
Gerencia de Supervisión de Procesos Instituto de Investigaciones Eléctricas
Av. Reforma 113, Col. Palmira, 62490 Temixco, Morelos, México Tel. 777-3183811 Ext. 7159, 7562
http://www.iie.org.mx, e-mail: [email protected] [email protected]
Resumen
Actualmente existen en el mercado de tecnologías de información (TI), diversos programas y paquetes para el desarrollo y personalización de aplicaciones de supervisión y control de plantas industriales. Todas ellas tienen como características comunes, la facilidad de uso, ambiente gráfico, flexibilidad y precio alto, entre otras.
Cuando se requiere desarrollar un prototipo rápido de alguna aplicación en tiempo real para supervisión o control de un proceso industrial, es necesario adquirir licencias costosas de software especializado, o bien, considerar el desarrollo mediante algún lenguaje de programación de medio o alto nivel.
En este artículo se propone el uso de herramientas estándar, amigables y visuales para el desarrollo de prototipos y aplicaciones completas con desempeño en tiempo real, tales como Visual Basic (VB) o Visual Basic for Applications (VBA) que está embebida en la suite de herramienta de oficina
1. Introducción
Durante mucho tiempo, el desarrollo de sistemas para supervisión de procesos en tiempo real estuvo limitado a sistemas operativos multitareas y lenguajes de programación optimados para ello, tales como VMS, QNX, UNIX y lenguajes como WatcomC, ANSI C, FORTRAN, entre otros, así como a plataformas especializadas para estas funciones como Habitat, RealFlex, CDCI, entre otras. [5][6][7] Posteriormente, evolucionaron los lenguajes de programación orientada a objetos y programación orientada a eventos en el ambiente gráfico de Windows, tales como Visual C, Visual Basic, Visual J, etcétera, cada uno con ventajas y desventajas para desarrollo de aplicaciones tiempo real.
Visual Basic (VB) es un lenguaje para el desarrollo de aplicaciones con interfaz gráfica de usuario
(GUI) para la plataforma Windows de 32 bits. VB evolucionó del lenguaje BASIC (Beginners All-Purpose Symbolic Code) original y es utilizado por más programadores que ningún otro lenguaje en la historia de la informática. [2]
Originalmente el compilador de VB generaba código mucho menos eficiente que su más cercano competidor Visual C, con una relación de eficiencias de aproximadamente 6 a 1. Actualmente, las mejoras incluidas en el compilador de VB permiten escribir programas que pueden compararse en eficiencia a los correspondientes de Visual C, a una relación de 2 a 1 aproximadamente.
La popularidad de VB ha llegado al grado de que las herramientas estándar de oficina tales como procesadores de texto, bases de datos y hojas de cálculo, entre otras, incluidas en la suite Microsoft
Office, incluyen un editor e interprete de código VB, adaptado a los objetos y propiedades de cada
paquete, este lenguaje es conocido como Visual Basic for Applications (VBA) e incluye todas las características básicas del VB normal. Realizando una adecuada combinación de código VB y herramientas de análisis, generación de gráficas e informes mediante VBA, es posible desarrollar de manera muy rápida y fácil, aplicaciones que pueden tener el desempeño tiempo real “soft” requerido para sistemas de supervisión y control de procesos industriales.
2. Desarrollo
Un sistema de supervisión y/o control de procesos en tiempo real “soft”, requiere de tiempos de respuesta similares a los del proceso real, sin llegar al extremo estricto de respuesta “inmediata”. Los retrasos o tiempos muertos de la aplicación dentro del un rango delimitado, son aceptados. En este artículo, se considera que un tiempo de respuesta del orden de 1 segundo es aceptable.
La facilidad de programación y poder del lenguaje VB, unido a la gran distribución y aceptación de
Microsoft Office, puede ser aprovechada para desarrollo de aplicaciones que normalmente podrían
resultar difíciles de desarrollar o distribuir.
A continuación se describe el desarrollo de una aplicación de supervisión y control en tiempo real de un proceso simulado de una planta Termoeléctrica [1], utilizando técnicas de programación VB y VBA.
El modelo del proceso y el modelo del control del proceso se desarrolló mediante objetos ActiveX codificados y compilados con VB. La interfase gráfica de usuario se desarrolló con VBA de
Microsoft Excel, todo el conjunto se encuentra integrado en un libro de Excel, incluyendo gráficas de
cada variable monitoreada y/o controlada, con tendencias en tiempo real y menú de opciones para el usuario. Este conjunto que conforma la aplicación completa, puede ser compilada en un archivo ejecutable mediante la versión Developer Edition de Microsoft Office para ser distribuida como un prototipo autosoportado de un sistema de monitoreo y/o control en tiempo real con interfaz gráfica de usuario, sin el riesgo de que la propiedad intelectual del diseño y desarrollo sea plagiada, además de incluir la posibilidad de que la aplicación sea ejecutada sin la necesidad de que el paquete
Microsoft Excel esté instalado en la computadora en la que sea presentada la aplicación.
La figura 1 muestra la estructura de los componentes que conforman la aplicación desarrollada.
Figura 1: Estructura de la aplicación tiempo real.
MS Excel
Modelo de control del proceso
Interfaz de usuario (control de eventos, menú, opciones, gráficas y reportes) en Excel y
VBA Modelo del proceso
Control ActiveX
Se utilizó un proceso simplificado de un sistema de generación termoeléctrica que permitiera ejemplificar la técnica y demostrar su capacidad de operación en tiempo real. El proceso simulado consta de 14 modelos reducidos con un sistema de control de 3 variables manipuladas y 3 variables controladas [1].
El arreglo del proceso puede ser representado por 7 etapas principales que incluye el ciclo termodinámico del fluido (agua-vapor) en el generador de vapor, el cual da inicio en el economizador y finaliza en los sobrecalentadores. Dentro de este ciclo se observan las variables manipuladas de flujo de agua (W), flujo de combustible (F) y posición de la válvula gobernadora (V), y las variables controladas como temperatura de vapor (To), presión de vapor (P) y energía generada (L). La figura 2 muestra el arreglo del proceso en un diagrama representativo.
Figura 2: Diagrama esquemático del generador de vapor.
El modelo de control del proceso corresponde a la implantación práctica de la técnica de control predictivo DMC (Dynamic Matrix Control) para procesos industriales [1].
Ambos modelos, el del proceso y el del control del proceso, están programados y compilados con VB en un control tipo ActiveX con una interfaz gráfica que permite observar el valor de las variables críticas del proceso (ver figura 3). Además, el desarrollo de controles ActiveX permite incorporar interfaces de datos a los componentes, de tal forma, que la información procesada pueda ser accedida por otros componentes.
Una vez desarrollados los modelos e integrados dentro de un control ActiveX, se genera un archivo estándar con extensión .OCX, el cual es autosoportado, es decir que puede operar de manera independiente en cualquier aplicación que acepte contenedores de controles de tecnología ActiveX. El control ActiveX es transportable entre plataformas de software y se puede utilizar con lenguajes como Visual C, Visual Java, Visual Basic, y con herramientas como Fox Pro, Word, Access, Excel, etc. Así mismo, las herramientas de software comerciales para desarrollo de aplicaciones en tiempo real aceptan esta tecnología, tales como LookOut, LabView, Cimplicity, InTouch, entre otras. [8][9][10][11]
El navegador de Internet Microsoft Internet Explorer, también es un contenedor de controles ActiveX, así que ésta aplicación también puede ser publicada como una página Web en la red para su monitoreo y/o control remoto a través de Internet.
Figura 3: Interfaz gráfica del control ActiveX del modelo del proceso para visualización de variables críticas.
Por su amplia aceptación, el control ActiveX puede ser integrado como parte de una aplicación mayor, o bien, desarrollar la aplicación en tiempo real completa, basados en los resultados de los modelos incluidos. Para nuestro caso, el control ActiveX se integró dentro de una hoja de cálculo de un libro de trabajo de Microsoft Excel versión 2000.
Se eligió esta aplicación por ser altamente aceptada y distribuida como herramienta de oficina, pero al incluir un interprete de código Visual Basic for Applications, su poder de aplicación y complejidad de procesos soportados, puede crecer a niveles insospechados para la mayoría de los usuarios finales. Otra característica muy importante de Microsoft Excel es su facilidad y flexibilidad para generar gráficas de tendencia de una manera natural, ínter construida y eficiente; características requeridas para observar el comportamiento de las variables del proceso industrial a través del tiempo.
Con el control ActiveX incluido en un libro de trabajo y con las gráficas de tendencias del propio
Microsoft Excel, se tiene la posibilidad de ensamblar el prototipo de la aplicación en tiempo real,
incluyendo controles del proceso, interfaz de usuario, gráficas de tendencia, botones de opciones, código de control de evento para procesamiento de alarmas, capacidad de registro o bitácoras de operación, registro histórico de variables, visualización en tiempo real y publicación dinámica en Web.
La figura 4 muestra una de las pantallas de la aplicación tiempo real ensamblada mediante tecnología VB y VBA dentro de una hoja de cálculo de Microsoft Excel.
Figura 4: Prototipo de la aplicación tiempo real desarrollada con VB y VBA.
Esta aplicación se puede ampliar al nivel requerido para incluir funciones más complejas como adquisición de datos, registro histórico en una base de datos industrial, registro de eventos, procesamiento de alarmas, cálculo y control de nivel críticos del proceso, bitácora de accesos, etcétera, pero el desarrollo de un prototipo que incluya las funciones básicas de una aplicación en tiempo real para monitoreo y/o control de proceso industriales como la mostrada en este artículo, se puede desarrollar en cuestión de días y sin la necesidad de adquirir herramientas costosas que eleven el costo final del proyecto completo.
En nuestro caso, la parte más compleja del prototipo son los modelos del proceso y del control predictivo. Sin embargo, la interfase de usuario, las gráficas históricas, las gráficas de tendencias en tiempo real, el procesamiento de evento y los botones de opciones, se pueden integrar en sólo unos días, dependiendo de la complejidad requerida y de la habilidad del programador.
3. Resultados
Visual Basic es uno de los lenguajes de programación más conocido por los desarrolladores de software en el mundo. La combinación de tecnologías, lenguajes, paquetería disponible y habilidades, permite desarrollar aplicaciones estándar, reutilizables y distribuibles para fines de aplicaciones tipo prototipo para demostraciones rápidas a usuarios finales, o bien para la integración de aplicaciones completas que satisfagan todas las necesidades funcionales de una aplicación con desempeño en tiempo real.
El prototipo desarrollado para este artículo, considera del modelo de la planta termoeléctrica, 8 variables críticas para monitoreo y control en tiempo real, las cuales son procesadas con el modelo de control predictivo de matriz dinámica incluido en control ActiveX y desplegadas en tiempo real en una hoja de cálculo de Excel, considerando gráficas de tendencia de cada una y monitoreo de las acciones del usuario en la interfaz gráfica desarrollada.
Este sistema fue validado en una PC Pentium III a 450 MHz con 128 MB de RAM, utilizando
Microsoft Excel 2000 con el sistema operativo Microsoft Windows 98 SE.
El tiempo de refresco de variables se estableció en el modelo en un segundo; el tiempo de refresco de valores en la aplicación es idéntico, sin tiempos muertos introducidos por las funciones propias incluidas, respetando íntegramente el nivel de tiempo real establecido en el modelo. Esto es, que en un segundo, el sistema desarrolla los cálculos requeridos por el modelo del proceso, el análisis en tiempo real del modelo de control de matriz dinámica, el procesamiento en tiempo real de variables, el monitoreo de las variables críticas, el registro histórico y despliegue de tendencias, el control de la interfaz gráfica de usuario y el manejo gráfico y de mensajes del sistema operativo.
4. Conclusiones
El desarrollo realizado establece las bases para evaluar modelos de procesos a través de interfaces gráficas fáciles de construir, aprovechando las ventajas de componentes intrínsecos de herramientas para automatización de tareas (VBA). Además, debido a la naturaleza de los componentes (intercambio de datos a través de interfaces), es posible implantar aplicaciones para evaluar algoritmos de control en procesos industriales.
En este tipo de aplicaciones, la interfaz gráfica desarrollada en VBA puede ser utilizada para monitoreo de otros procesos, sustituyendo el componente ActiveX del modelo del proceso con una interfaz de comunicaciones al proceso, como se muestra en la figura 5.
Figura 5: Aplicación en tiempo real para procesos simulados y procesos reales.
El empleo de herramientas de automatización de tareas como lo es Excel en la supervisión de procesos, permite explotar los recursos de graficación y análisis numérico que proporciona la herramienta. Es posible crear gráficas de tendencias, manipulación automática de datos y presentación gráfica y numérica del estado de los procesos.
Agradecimientos
Los autores agradecen al Dr. Alejandro Villavicencio Ramírez, Gerente de Supervisión de Procesos del Instituto de Investigaciones Eléctricas, por el apoyo brindado para la revisión de éste artículo.
Referencias
[1] J.A. Rovnak, Dr. R. Corlis, “Dynamic Matrix Based Control of Fossil Power Plants”, IEEE Transactions on Energy Conversion, Vol. 6, No.2, June 1991.
[2] “Microsoft Visual Basic 6.0, Manual del programador”, Microsoft Press 1998.
[3] Reed Jacobson, “Microsoft Excel 2000, Visual Basic for Applications”, Microsoft Press 1999. Modelo del proceso Aplicación de Supervisión en Tiempo Real PC Interfaz de comunicaciones Aplicación de Supervisión en Tiempo Real PC
Proceso Real
Sistema con un proceso simulado[4] Ari Bixhorn, “Microsoft Visual Basic para Aplicaciones y Windows DNA 2000”, Microsoft Corporation, Diciembre de 1999.
(http://www.microsoft.com/latam/msdn/articulos/2000/01/art03/)
[5] “HABITAT Database Management”, GE Nuclear Energy, 1991, General Electric Company. [6] “Real Flex: True realtime, multiprocessing, PC-based software package for SCADA and
process control applications”, DATAC Technologies LTD. (http://www.realflex.com/frames.htm)
[7] “CDCI Software”, GE Nuclear Energy, 1992, General Electric Company.
[8] “Lookout: Easy-to-use Web-enabled human machine interface (HMI) and SCADA software system”, National Instruments Corporation.
(http://www.ni.com), (http://sine.ni.com/apps/we/nioc.vp?cid=1024&lang=US)
[9] “LabView: Rapid graphical application development of Measurement and Automation Software”, National Instruments Corporation.
(http://www.ni.com), (http://sine.ni.com/apps/we/nioc.vp?cid=1380&lang=US)
[10] “CIMPLICITY: Powerful, Easy-to-Use Monitoring and Control Software”, GE-FANUC Automation Software, General Electric Company.
(http://www.cimplicity.com), (http://www.geindustrial.com/cwc/gefanuc/software.html) [11] “Manufacturing Management Information (MMI) System, FactorySuite”, Wonderware
Corporation.