06-19-2015 08:45 PM - edited 06-19-2015 08:47 PM
I'm planning to acquire instrument status from multiple address locations in a continous loop (modbus RTU over RS-232). I'm running an ESS thermal cycle using a Environtronics chamber controlled by a single Watlow F4, and would like monitoring profile status, temp, and a few other inputs, at register address locations example 0, 200, 4122, 4126, 5xxx, 6xxx, and so on. The read from register routine has 2 inputs for this: Register Address and Number of Registers. This works great for a range of adjacent addresses (4100-4131), however the register locations of interest are not adjacent. Is there a way to query a separate range of registers through a single send/receive? Running it once is taking <200ms, as opposed to looping the read from register utility 10-20 times which can take >2 seconds.
Driver Revision: 2.0.1 Original Release Date: 04/06/2004 Current Revision Date: 05/07/2014
06-22-2015 01:55 AM
Hi,
With ModBus you can ask for a range of registers but only in the range is valid with no gaps.
If you want 2 registers with different (non adjacent) addresses you have to ask two times for a register.
This can be solved at the slave side if the slave supports soft-marshaling.
Kees