Se puede decir que fué la primera vez que vi la necesidad de utilizar VBA de manera que mi trabajo fuera menos aburrido. Era un nuevo trabajo en una vieja empresa y, entre muchas otras tareas, debía extraer diariamente los datos de consumos eléctricos de manera que se supieran diariamente los ratios de consumo por unidades fabricadas.
La instalación de registro de consumos constaba de una serie de equipos registradores, un sistema de conexión con convertidores de 485 a Ethernet y un servidor – PC – donde se almacenaban los datos. El funcionamiento del sistema era más que correcto, había datos disponibles de todo tipo: tensión, intensidad, potencia, energía, distorsión, armónicos, de fases, entre fases, entre fase y neutro, etc todo lo que pueda uno necesitar.
Sólo le pondré un pero, su intervalo de actualización era cada 10 minutos, obviamente es de entender que el sistema tendrá sus límites y que almacenar tal cantidad de información cada segundo no sería sencillo para el equipo y mucho menos bucear después en ella, no era un sistema de diagnóstico de averías ya que nos falta mucha resolución simplemente era un control de consumos y cumplía con su cometido de manera excelente.
Para extraer y tratar los datos tenía el Power Studio Scada un software de Circutor que almacenaba los datos y además nos permitía visualizarlos en un entorno muy completo, pero no era exactamente lo que necesitaba. Los datos al final iban a un excel, donde se cotejaban con las fabricaciones y acababan en algún frame de PowerPoint para poder ver los ratios de kWh por unidad, es precisamente la unión de estos datos lo que requería en mayor o menor medida mi intervención.
Lo que empecé haciendo era simplemente utilizar la herramienta de exportación de Power Studio Scada, esos datos en mayor o menor medida tenía que tratarlos y darles algún tipo de formato además de generar algún gráfico, y con la tontería, la faena me acababa llevando más de media hora diaria así que decidí programarme algo de modo que pulsando un solo botón se me generase automáticamente el informe que necesitaba ¿Por qué narices tengo que perder yo media hora teniendo una máquina que está para eso?
Busqué la manera de obtener los datos en bruto y tratarlos yo mismo, por entonces la documentación del sistema Circutor no era muy completa (desconozco si ha mejorado en la actualidad ya que hace tiempo que ya no trabajo con él) lógicamente había una base de datos pero fui incapaz de acceder a ella de la manera sencilla (con un conector ODBC) desconocía completamente el tipo de base de datos de que se trataba y mis conocimientos no daban para más.
Revisando el manual del software (en la página 21) acabé encontrando una manera de extraer los datos, un poco enrevesada pero fue la única manera que vi viable.
PowerStudio proporciona una serie de servicios XML para posibilitar, en ciertos aspectos, la comunicación con otras aplicaciones. (apéndice 3 – Servicios XML)
Básicamente se trataba de hacer llamadas a una URL determinada con ciertas variables para obtener lo que necesitaba. Algo de este estilo:
"http://192.168.1.54:8080/services/user/records.xml?var=" & Dispositivo & "." & vari & "?begin=" & FechaInicio & "?end=" & FechaFin & "?period=ALL"
En el próximo post explicaré como integré esta llamada para obtener los datos.