I’ve followed the Modbus tutorial to created a modbus TCP device. The device is now connected.
However, I’ve problems on creating the tags where the value displayed was null. I’ve the following address with me
409219
408452
409734
409729
410753
410754
410755
40001
According to the manual, HR = 40000, so at the OPC item path, I should write it like this ?
[Modbus]HR9219
[Modbus]HR8452
[Modbus]HR9734
[Modbus]HR9729
[Modbus]HR10753
[Modbus]HR10754
[Modbus]HR10755
[Modbus]HR1
I tried writing all the addresses as mentioned above but the result I get was null. I checked on the Tag Diagnostics but Quality is either ‘Unknown’ or ‘Not Connected’. The modbus device was connected though. How do I get my tags running?
I’m not sure if my question was clear. If you delete the other tags, will a tag you added that was null while other tags were there become good quality and start showing the correct value?
it only works and will not turn Null if there was only one tag regardless if I change the register address. For example, I ONLY created one tag:
PV : [Modbus]1.HR9219
and there was value shown.
But if I created another tag, say SV, so now there’ll be two tags:
PV : [Modbus]1.HR9219
SV : [Modbus]1.HR8452
The new created SV value is Null, but both tags quality turned Bad.
However, if I change the tag value (from 0 to a number say 15), it appeared that the value at the controller changed too. But the value shown in Designer revert to previous value (stays at 0).
With each individual address working but problems when you have more than one I’d experiment with different values for these advanced settings for the device on Ignition web configuration page:
It might have something to do with the behaviour of the Modbus Slave.
Let’s say you’re trying to read HR8452 and HR9219, Ignition might try to read all the registers in between as well (HR8453, HR8454, …, HR9218, HR9219).
This might have some issues with some Modbus Slave (Siemens PLC typically have this issue):
if let’s say some address in the middle (e.g., HR8454) is not configured in the Modbus Slave then when you are trying to read the whole range, the Modbus Slave will give you error
some Modbus Slave have limitation on how many registers they can response in one query
The above might explain why you might be able to read single tags, and not multiple tags.
Again, I would suggest you to try the method that I mentioned in earlier reply. With the manual addressing method, you yourself control how many register Ignition will read in a particular query.
This method actually “mimic” what most PLC/DCS do as a Modbus master.