Discusiones sobre Productos NI

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

Uso del protocolo Modbus con DSC

¡Resuelto!
Ir a solución

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!

0 kudos
Mensaje 1 de 15
5.718 Vistas
Solución
Aceptado por el autor del tema EHuitR

 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

Benjamin C
Principal Systems Engineer // CLA // CLED
Mensaje 2 de 15
5.713 Vistas

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

0 kudos
Mensaje 3 de 15
5.704 Vistas

olvide mencionar que los esclavos estarán conectados por el puerto serie.

0 kudos
Mensaje 4 de 15
5.703 Vistas

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.

ConfigModbus.PNG

 

Saludos

Benjamin C
Principal Systems Engineer // CLA // CLED
Mensaje 5 de 15
5.700 Vistas

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?

0 kudos
Mensaje 6 de 15
5.688 Vistas

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

0 kudos
Mensaje 7 de 15
5.685 Vistas

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.

0 kudos
Mensaje 8 de 15
5.678 Vistas

 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

Benjamin C
Principal Systems Engineer // CLA // CLED
Mensaje 9 de 15
5.671 Vistas

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

0 kudos
Mensaje 10 de 15
5.659 Vistas