el 04-11-2011 06:00 PM
Hola a todos! Estoy trabajando en un proyecto con el protocolo Modbus y en la página web de NI ví que puede realizarse con el módulo DSC; lo malo es que en las utilerias del módulo no veo alguna función que esté relacionada con ello. Se puede configurar con solo un VI o hay que trabajar otro procedimiento. Conocen el procedimiento o alguna liga para instruirme en ello?
Saludos!
¡Resuelto! Ir a solución.
el 04-12-2011 10:29 AM
Hola d'Artagnan, para trabajar con la parte de Modbus con DSC es bastante sencillo, pero necesitas crea un proyecto.
Una vez que tengas el proyecto da click derecho sobre "My Computer" y selecciona "New">>"IO Server"
Aqui vas a encontrar la opción de Modbus Master o Modbus Slave, dependiendo de lo que necesites para tu aplicación.
Una vez que tengas el IO Server vas a generar Variables ligadas a este servidor y estas variables ya las puedes utilizar en tu aplicación.
En esta liga puedes encontrar un tutorial muy completo de DSC
LabVIEW Datalogging and Supervisory Control Module Training
en el capítulo 4 se ven I/O Servers.
Tambien puedes encontrar un ejemplo en labview\examples\lvdsc\IO Servers\ModbusDemo\Modbus Fundamentals.lvproj
Saludos
el 04-12-2011 04:16 PM
Hola Benjamín, muchas gracias por tu ayuda, ya pude fundamentarme mas en el módulo, y avancé hasta la parte de generación de variables. Solo que aquí me surge una nueva duda, que es el procedimiento para leer o escribir datos en el dispositivo de destino, esque no encuentro opciones para indicar que mi orden es para un esclavo específico. ¿Podrias ayudarme?
Saludos
el 04-12-2011 04:17 PM
olvide mencionar que los esclavos estarán conectados por el puerto serie.
el 04-12-2011 05:34 PM
Hola d'Artagnan, para especificar el esclavo esto se hace desde el momento que configuras el I/O Server, basicamente necesitas configurar un I/O Sever por cada esclavo que tengas y ya este tendria sus variables.
Saludos
el 04-13-2011 11:15 AM
Si, esa parte ya la revisé. lo que pasa es que he generado variables en mi servidor maestro y otras en el esclavo con el mismo nombre, pero no he podido lograr que las primeras controlen o lean las del esclavo. No estoy seguro de que por puros nombres puedan enlazarse yo creo que existe una configuración mas pero no encuentro nada de ello. Ya lo has realizado?
el 04-13-2011 12:00 PM
El error que me genera al momento de ejecutar los VI´s es:
Error -1950679035 occurred at Shared Variable in Untitled Library 9:Untitled 6
Possible reason(s):
LabVIEW: (Hex 0x8BBB0005) Unable to locate variable in the Shared Variable Engine. Deployment of this variable may have failed.
This error or warning occurred while writing the following Shared Variable:
\\My Computer\Untitled Library 9\000001
\\192.168.1.101\Untitled Library 9\000001
Me imagino que es por que no he configurado bien el enlace y el destino, lo malo es que no se como realizarlo
el 04-13-2011 04:30 PM
Perdón por las preguntas susesivas, pero en este caso voy a tener un maestro en un pc y un esclavo en otra, ambas conectadas por el puerto USB, ambos deben tener sus variables; pero no he encontrado el procedimiento de vinculación para cerrar el lazo de comunicaciones.
el 04-14-2011 01:00 AM
Hola d'Artagan, quieres que la comunicación entre los dos sea vía modbus? o quieres que el maestro maneje los datos y los este mandando al esclavo. Si lo que quieres es que la comunicación sea por modbus basciamente pones el servidor en cada una de tus computadoras y una como maestro y el otro como slave, y mas que ligarlas por binding simplemente corres los dos servidores, para que veas como funcionan puedes probarlos en lugar de seleccionar el Master Slave por Serial con TCP/IP y hacerlo en la misma computadora, de hecho en lugar de usar el cable USB probablemente sea mas fácil con un cable de red cruzado.
Si lo que necesitas es vincular de el maestro y el servidor (sin modbus) y solo quieres ligar las variables por USB no te lo va a permitir el shared variable engine comparte por TCP/IP (ethernet) la información entre las dos computadoras así que básicamente tendrías que hacer un programa que maneje la comunicación serial entre los dos dispositivos, y por decir si solicitas la variable A , mandar el comando desde el slave para que el Servidor la consulte y la regrese serializada.
Saludos
el 04-14-2011 01:45 PM
Vale, es lo primero lo que quiero hacer. Ya no me marca error de variables, ahora la cuestión es que al momento de correr el programa del maestro me genera este error:
Error -1967353900 occurred at Shared Variable in Untitled 1
Possible reason(s):
LabVIEW DSC: (Hex 0x8ABC8FD4) The Modbus I/O server failed to allocate a serial port. Ensure that the specified serial port is available.
This error or warning occurred while reading the following Shared Variable:
\\My Computer\modbus1\000007
\\192.168.1.101\modbus1\000007
He consultado la ayuda donde mencionan la intervención del SVE, pero según yo, ningun proceso se ha posicionado del puerto o lo encuentra en uso. ¿Que opinas?
Gracias de antemano, te envio un saludo