group of IO/Devices & MODNET1 mixing registers

Hi all, I am trying to create a group of IO/Devices so that I can add a parameter for more than one io/device at a time, can anyone help?
and another thing if you please.
I am having trouble in Modbus communication, the issue is I have a variable with address [register 422119]
is showing the values that should be shown by another variable that have address [register 422121], I am using
modnet1 protocol and I am sure the addresses are right and I tried to track down the issue in a Modbus packets tracker
and everything seemed to be alright, so the issue is a Plant Scada issue or configuration.

  • See knowledge base article TN30003 for an explanation of using device group parameters. Sorry, it won't let me post a link. Basically, you set the I/O Device Address to <node> <groupname>, like Address: 1 GroupA

    The MODNET1 protocol variant tells Plant SCADA that the first address is 400000, instead of the normal 400001. If that is incorrect, then your addresses will all be off by 1. They should not be off by 2 registers like you reported, though.

    If you are reading a REAL or LONG variable, then Plant SCADA will read 2 registers (422119 and 422120) to get a 32 bit value. However, some devices use nonstandard byte order and you have to set a citect.ini MODNET parameter to set the desired byte order.

    If you have some REAL or LONG variables on even addresses and others on odd addresses, Plant SCADA doesn't like it and you will get a compile error. If you disable the error with a citect.ini parameter, then it is possible that the runtime may read the value from one register before or after. This only happens if one 32-bit even address and one 32-bit odd address are read in the same request because they are very close to each other in the PLC's memory.

  • Here is the link of TN30003 

    https://softwaresupportsp.aveva.com/#/knowledgebase/details/000030003?lang=en_us

  • Another possibility is the address mapping in the modbus device you're communicating with has a mistake in it and Plant SCADA is reading the correct register but it does not contain the value you expect. You could use a Modbus TCP test client to verify what value is actually in address 422119.

  • Mr. Eric

    Actually I am using the ini parameter CheckAddressBoundary = 0 to neglect the compile error you was talking about (Odd and Even Registers), and to be clear, the display order of bytes is 100% correct because i am reading another registers from the same device, both long and real data types, the modbus client is reading the right value from device in the right register 422119, so it is a plant scada issue, thank you so much in advance.

  • Thank you so much, it is working now

  • Mr. Jacky

    The IODevice Groups is working now thanks to Mr Eric Black, but this link is not working, it says "Access denied" "Sorry you are not entitled to view this article. Please raise a support ticket in case of any queries.".

  •  Mr. Eric

    After reviewing our addresses, there is an odd registers and even registers for real data type variables in the same request, but if I can not change the addresses, how can I solve this issue ?, so that Plant Scada splits request to 2 requests?

  • Just add the letter G before the tag address to force that variable to be read individually. That slows communications so you don't want to do that for too many variables. You could just do it for the even numbered REALs and LONGs, for example, or just the problem ones.

    Here's a clip from the MODNET help page on Data Types:

  • Thank you so much, it is working after adding the letter G to the address.