02-25-2006 05:44 AM
I'm developing an application on a cRIO-9002 unit by using the TCO/IP modbus library for communicating with the host computer.
I have tried the Modbus Library for LabVIEW (http://sine.ni.com/apps/we/niepd_web_display.display_epd4?p_guid=F1582737BACF5CA8E0340003BA7CCD71&p_node=DZ52363&p_source=External), the master and slave examples work fine both on windows OS and on board of the cRIO.
For my application I need only some pieces of the library, so I started to looking into the architecture of the modbus VIs.
The main "Slave" routine write and read the data to a "Slave Demon" that answers, via TCP/IP, to the "Master" query using the modbus protocol.
Actually the main "slave" task write and read the data from the "MB Registers Manager.vi" (the VI uses some shift registers to temporary store the data).
The demon task is the "MB Ethernet Slave Demon.vi". Inside the "MB Ethernet Slave Demon.vi", the "MB Ethernet Call Wait on Query.vi" calls the "MB Ethernet Wait on Query.vi", that next calls "MB Ethernet Slave Communication.vi" that next calls the "MB Update Registers.vi" to finally read and write from the "MB Registers Manager.vi".
Actually two tasks call independently and simultaneously the same VI to read and write data into his shift register.
Why there is not conflict in the simultaneous call to the same VI?
Thanks,
Asper
02-26-2006 04:18 AM
We have two ears and one mouth so that we can listen twice as much as we speak.
Epictetus
02-26-2006 06:00 AM
02-27-2006 03:52 AM