Hola a todos, resulta que tengo un cliente que cuenta con un sistema SCADA, ya funcionando desde hace 15 años. El caso es que ahora va a cambiar sus medidores de flujo, por unos más modernos con nuevas funciones ( los cuales funcionan por red a puerto serie convertidos a través de un servidor digiport ). Para comunicarse con estos medidores de flujo , usan un programa que fue mandado a hacer el cual se llama acucom. Este acucom fue programado en visual basic6 hace como 15 años. Resulta que mi cliente es un poco desordenado y el código fuente que tenia del acucom, no es exactamente la misma versión que el binario que tiene corriendo (pero si muy parecido) . Esto es, cuando yo compilo el código fuente que ellos tienen, el binario que se produce es distinto ( por un par de KB) al que ellos tienen corriendo. Ahora bien, tampoco se en que VERSION de VISUAL BASIC compilaron, y como VB6 tiene muchos parches y services packs eso mete mayores dudas a la ecuación, ya que yo estoy compilando todo con VB6 sin service packs.
En base al código fuente original , un programador me desarrollo todos los cambios para que el nuevo programa funcione con los nuevos medidores de flujo, sólo que el no conoce muy bien los API´s originales del sistema, y uso conectores standards . Tenemos una copia idéntica de su maquina virtual en la oficina e hicimos las pruebas con los medidores de flujo y todo funciona ok.
Todo el nuevo programa , el acucom v2 está programado en VB6, SIN USAR los SP del VB6. No sé que cambie entre usar el SP y no usarlo.
Sin embargo cuando montamos todos los cambios en Producción tenemos el siguiente problema.
Descripción del problema:
Nuestro programa acucom v2 corre en el servidor de producción sin problema. Pero cuando algún usuario pica un botón del SCADA, de la parte gráfica, en ese momento se traba toda la máquina y tanto nuestro programa como el resto de “programas satélites” empiezan a tronar. Aparece en el task manager que no responden. Cabe mencionar que ese botón invoca consultas a la BD, a través de macros y de Access.
La diferencia entre nuestras pruebas de laboratorio y el servidor de producción, es que en laboratorio como no existen muchos equipos remotos, muchos de los “programas satélites” no arrancan o solo arrancan parcialmente.
El gran problema es que nuestro acucom v2 levanta bien y no se truena, más bien choca con algo del sistema, no encuentro la manera de debbugear o de ver exactamente con que está chocando ni porque.
El otro problema que tengo, es que como es un servidor que YA está siendo usando para producción, mi cliente casi no me presta el sistema de producción, por lo cual tengo muy poco acceso a este servidor para hacer pruebas. Todo debo hacerlo sobre la maquina virtual que tengo, la cual es una copia exacta a la de mi cliente
Descripción del sistema:
El sistema corre en Windows 2003 server sobre una maquina virtual VMware .
El sistema es un tipo de sistema standard conocido como SCADA. Básicamente se compone de una base de datos en Microsoft SQL Server 2000 y la aplicación principal (el SCADA) . El SCADA es un programa que se compra a un gran fabricante de software ( obviamente viene sin código fuente).
El SCADA, no es un solo programa, es todo un sistema de compúto (es un conjunto de muchos programas coordinados) y está diseñado para interactuar con equipos remotos.
A este SCADA se puede personalizar varías cosas, como son pantallas, puntos de acceso a la base de datos. También cuenta con Apis y se conecta a la BD, de varias maneras, tanto directamente como usando tablas espejo de MS ACCESS 2000.
Este tipo de sistema permite la interacción con programas externos y trae algunos protocolos de comunicaciones propios, pero también es muy común que se le integren protocolos de comunicación y otros programas hechos por programadores externos.
Preguntas:
1. Como puedo saber la versión con la que se compilo el programa, incluyendo los service packs?
2. Hay manera de descompilar el binario y en ese caso de algo ayuda ya tener un código fuente parecido?
3. Puedo escribir el programa en un Visual Basic más moderno? Ayudaría de algo con mi problema actual? O en otro lenguaje .. no tengo limitantes al respecto.
4. Como puedo debbugear el problema, ya que el programa truena, y no tengo mayor información, no sé cómo atacar el problema o por donde buscar una solución. Ya que en realidad tampoco sé que es lo está originando realmente.
5. Les ha pasado cosas parecidas con esas versiones de software? En esas épocas salían parches y sp nuevos cada rato..
6. Que se les ocurre que pueda hacer para resolver este problema?