LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Data available through modbus

Solved!
Go to solution
Maybe this is not the best board for this question, but I can't find the right one where to ask. For sure some engineers expert in Modbus communication use LabVIEW for the development and so I hope I can find the answer. At the very beginning, Modbus was designed to handle a small quantity of data (coils and registers over serial communication). Nowadays ModbusTCP is very popular and so the bandwidth is not a problem in general. I'd like to know if the common usage of Modbus (considering large systems with hundreds of nodes) is always to share small quantity of data (almost stationary signals and I/O). Or now it is used to share, for example, waveforms and dynamic signals in general? In this case could someone provide a link to some devices which shared dynamic signals through Modbus? Thanks
Vix
-------------------------------------------
In claris non fit interpretatio

-------------------------------------------
Using LV from 7
Using LW/CVI from 6.0
0 Kudos
Message 1 of 5
(3,270 Views)

MODBUS is a 'tag' based data communication standard - when you read registers/coils, you always get the latest value. There is no mechanism in the protocol for 'streaming' data - you have to poll the registers as fast as the device/bandwidth/network allows and that determines how 'dynamic' your data is.


LabVIEW Champion, CLA, CLED, CTD
(blog)
Message 2 of 5
(3,259 Views)

I think that the 'tag' based mechanism is the reason why it has been used to read values of almost-stationary signals (i.e. the variation rate is slower than the pace of reading operations).

I wonder if now some devices use a set of registers to publish a waveform, for example.

I don't think so, but I can be wrong

Vix
-------------------------------------------
In claris non fit interpretatio

-------------------------------------------
Using LV from 7
Using LW/CVI from 6.0
0 Kudos
Message 3 of 5
(3,250 Views)

That depends on your definition of publishing a waveform. As Sam said, Modbus has no support for streaming or transmitting arbitrary data, but it certainly is used for analog data (which can be considered a waveform of sorts). The only issue is that the details of the waveform depend on your sampling rate, because you can only sample one point at a time.

 

FWIW, Modbus can be used to transmit arbitrary data - you simply encode it in defined registers and then decode it on the other side. I have seen done for transmitting strings, for instance. The issue with that is that if you're going to do something of that complexity, you usually might as well implement a more suitable protocol.


___________________
Try to take over the world!
Message 4 of 5
(3,241 Views)
Solution
Accepted by vix

@vix wrote:

I wonder if now some devices use a set of registers to publish a waveform, for example.


I would recommend against that.  It could open up to some interesting race conditions depending on how the modbus was implemented.  Imagine reading a bunch of registers while the host was updating them.

 

In short, Modbus was never meant to be a streaming protocol.  It is meant for industrial control where only the latest value matters.  If you want waveforms from a device, find one that will stream the data.


GCentral
There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
Message 5 of 5
(3,223 Views)