el 02-16-2009 04:21 AM
Buenos días a tod@s,
Estoy intentando comunicar un controlador de temperatura de Love instruments. El controlador dispone de conexión RS-485 y para poder comunicarlo con el PC he comprado el interface NI PCI-8431/4. He conseguido comunicar dicho controlador via interface con el programa suministrado por ellos. Pero no estoy teniendo suerte a la hora de intentar comunicarlo con Labview.
Labview reconoce que hay algo conectado al puerto COM3 ya que me lo identifica como ASRL3::INSTR. Sabiendo que Labview se puede comunicar con el controlador he intentado conseguir una comunicación (lectura-escritura) pero no he obtenido respuesta.
En el manual del controlador me dice lo siguiente:
Communication protocol: Modbus
Function code: 03H to read contents of register (max. 8 word). 06H to write 1 word into register. 02H to read the bits data (max. 16 bits). 05H to write 1 bit into register.
Ver páginas 24 y 25 del archivo adjunto.
Para la comunicación creo que tengo que leer los datos que hay dentro de las direcciones, pero por ahora los intentos realizados no me han servido de nada.
Agradeceros de antemano vuestra ayuda,
Un saludo
el 02-16-2009 05:13 AM
Hola:
La comunicación por medio de RS485 permite conectar simultaneamente con varios instrumentos, por lo que deberás primeramente asignar un número de periférico (slave Adress) a tu instrumento (controlador de temperatura). Esto lo puedes hacer variando el parámetro "C-no" (ver página 22 del manual).
La comunicación Modbus es un protocolo que tiene una sintaxis específica. Si bien este protocolo ya viene implementado en las últimas versiones de LabVIEW, puedes probar a bajarte la siguiente librería (NIModbus.llb)
ftp://ftp.ni.com/pub/devzone/epd/nimodbus.llb
y probar a comunicar con el programa "MB Serial Master Query.vi" incluido en dicha librería.
Una vez que consigas comunicar con este programa se trata de adaptarlo a tu aplicación.
Saludos.... Moisés
el 02-16-2009 08:54 AM
Buenas Moisan,
He seguido los pasos que me has marcado (bajarme la libreria NIModBus.LLB) y ejecutar el programa MB Serial Master Query.vi y lo único que he conseguido a sido el error code -1073807246 =The resource is vali, but VISA cannot currently access it. Y ahora no consigo manejar el controlador de temperatura nisiquiera con el programa propio de ellos, me salta el siguiente error, ie_Open-device already open.
¿Como puedo reparar este error?
¿Una vez reparado dicho fallo,ddebo intentarlo de nuevo con el MB Serial Master Query.vi?
Gracias de antemano
Un saludo
el 02-16-2009 10:16 AM
Hola de nuevo:
El problema de no poder conectar con el programa propio de ellos es posible que sea debido a que el puerto está abierto por el propio LabVIEW. Prueba a cerrar el programa LabVIEW y ver si es posible la conexión. También tendrás que ver si has modificado alguno de los parámentros: "C-Sl" Selección del protocolo (RTU o ASCII), "C-no" Controller address, velocidad, longitud y bit de stop.
Por supuesto que no vas a poder controlar simultaneamente el instrumento con el programa propio del controlador y con LabVIEW, ya que el puerto solo puede ser abierto con un solo programa cada vez.
Una vez que lo intentes de nuevo con "MB Serial Master Query.vi" mira a ver si el error es porque no puede abrir el puerto, no puede escribir los datos o no puede recibirlos para ir descartando errores.
Saludos... Moises
el 02-18-2009 09:09 AM
Buenas,
He usado el VISA close para cerrar el puerto pero sigo sin conseguir que Labview o el programa del controlador (nunca los dos a la vez) se conecten con el controlador. He probado a desinstalar la tarjeta NI PCI-8431/4 y volviéndolo a instalar, aun así sigue sin comunicar.
No se cual puede ser la causa del problema, ya que aparte del MB serial master query, los únicos VIs que he utilizado han sido los VISA READ, VISA WRITE y los PORT IN, PORT OUT.
En estos momentos tengo la tarjeta desconectada del PC a la espera de hacer más pruebas.
Gracias de antemano
Un saludo