Discusiones sobre Productos NI

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

Problemas con captura de datos

Saludos nuevamente a toda la comunidad.

 

Hace algun tiempo deje corriendo un SCADA, el cual monitorea algunas variables como temperatura y humedad, estas son muestreadas cada 5 minutos y los datos van directamente a una base de datos local basada en ACCESS, todo esto mediante las librerias gratuitas ADODB.

 

El proceso del sistema esta basado de la siguiente manera:

 

  1. Primero se hace una conexion a la base de datos local.
  2. Despues hay otro bloque que inicializa todas las variables del sistema, asi como la conexion TCP y tomo una muestra de cada sensor por medio de MODBUS TCP. Se inicializa tambien la pantalla principal del sistema.
  3. Otro bloque compara el usuario y su contraseña en la base de datos, si es correcto da luz verde al siguiente bloque que es el de operacion, este bloque es el que quedara trabajando todo el tiempo hasta que se apague o cambie de usuario.

En este bloque de operacion hay varios procesos trabajando independientemente bajo estructura WHILE en donde hay submenus, otro bloque de captura de datos de sensores mediante MODBUS TCP, alarmas, envio de datos a la base y otros.

 

El problema que surgio es que este sistema quedo trabajando bien en todos los aspectos pero despues de casi ya un mes dejo de tomar muestras de los sensores aunque todo el demas sistema esta trabajando bien. Honestamente no se que esta pasando ya estoy ago desesperado porque ya van varias cosas que me pasan con el programa, no se si sea algo en la base de datos o en la captura mediante MODBUS aunque esto ultimo no creo porque los datos si estan llegando. Estoy utilizando como primera conexion de TCP el vi TCP OPEN CONNECTION y he visto que algunos programadores ponen un buffer o algo, yo solo pongo la direccion IP, el puerto y mando directamente a mis bloques MODBUS no se si por ahi tenga que meter algo asi y cuales serian. 

 

Si alguien me pudiera ayudar se los agradeceria mucho. Les voy a adjuntar una imagen del bloque de captura de datos a la base y del subvi. GRACIAS!!!

 

Descargar todos
0 kudos
Mensaje 1 de 2
2.791 Vistas

 

Hola Mr Bungle, El hecho de que un loop pueda dejar de funcionar puede ser porque se este dando algún Error el en VI pero por lo que veo en los Screenshots, hay poco manejo de error, en lagunas secciones pasas los cables pero no hay un punto que se maneje y en otros lugares no hay cables de error por lo que identificar el problema se complica mucho. Un buen manejo de error te ayuda a que aplicación trabaje en una forma más estable, ayuda a hacer el debug del código y en general crea código mas robusto. Al estar trabajando con MODBUS y Bases de datos es particularmente importante el manejo de error ya que podría ser desde algo sencillo como que intento acceder la base de datos en algún punto, o que el dispositivo MODBUS perdió comunicación por un instante, pero al suceder el error tu aplicación ya no se puede recuperar.

 Lo ideal es que cuando se realice un error puedas identificarlo y en caso de ser necesario detener tu aplicación. Lo mas común para hacer esto es utilizar las terminales de Error de los Vis, y puedes cablear estas a lo que es el stop de los ciclos. Y ya al final agregar el Simple Error handler.

Si estas con el VI o tu ejecutable tiene la opción de debug podrías usar un probe y revisar el status de los cables

 Aquí hay algunas ligas que te podrían ser de utilidad:

Handling Errors in NI LabVIEW 

Error Handling Techniques

¿Cómo Puedo Crear Advertencias Personalizadas en LabVIEW

 

Cualquier duda avisame.

Saludos

 

Message Edited by BeCeGa on 06-17-2010 09:41 AM
Benjamin C
Principal Systems Engineer // CLA // CLED
0 kudos
Mensaje 2 de 2
2.773 Vistas