Forum Home › Forums › Communicating with Devices › Modbus › Different Registers Showing Same Value Until Comm Restart
Tagged: communicator, modbus, PDU
- This topic has 7 replies, 2 voices, and was last updated 6 years, 2 months ago by Mikhail.
March 29, 2017 at 4:08 pm #2056
Exactly as my title states. I have multiple similar devices that I am pulling data from but all of them seem to suffer an issue where over time two registers that show different information, all of a sudden start to show the same data. See my picture below of my table:
If I restart the Communicator, it fixes the problem temporarily until it decides to revert back to this duplicate state. It’s the same two sets of registers on all my devices that do it. Any ideas why this is going on? Let me know ow if some additional info is needed. Thank you.March 30, 2017 at 6:22 am #2060
Let’s compare the packets sent to and received from the devices. You can copy the communication log from C:\SCADA\ScadaComm\Log\lineXXX.logMarch 30, 2017 at 6:24 am #2061
Also open the Server app, go to Files > Hourly Data, and compare the values in the archive. Are they equal starting from some moment? Provide screenshots, please.March 30, 2017 at 6:12 pm #2065
I found the error, “Incorrect PDU length” which then causes the Communicator to try to collect that element group again I am assuming. If that’s the case, the error propigates to other element groups down the line based on this screenshot:
As you can see in the blue highlighted area, when it gets to the element group “Kilowatts”, it errors out, tries again, succeeds the second time then moves to the element group “Power Factor”. Once there however, looking at the modbus hexadecimal data, the Send bits are different between “Kilowatts” and “Power Factor” but all Receive bits are the exact same. Do you have any ideas to why “Power Factor” element group is sending the same bits as “Kilowatt”?
Hope this was good detailed information. Thanks.March 31, 2017 at 5:31 am #2068
I can see that the equal response comes back twice from the device. If requested number of register differs (the last 2 bytes), it causes PDU length error. If it’s equal, Communicator can’t detect an error. You can get the meaning of bytes by http://modbus.rapidscada.net/
Do you have any idea, why the device responses twice?March 31, 2017 at 5:33 am #2069
Try increasing Delay parameter for the device in Communicator up to 1000 ms.April 5, 2017 at 5:37 am #2074
Sorry for the overdue reply. Your suggestion of increasing the delay and timeout parameters worked out great. Solved my issues with PDU errors. Thanks again for the assistance and a big thanks for making this nice little SCADA application freely available!April 5, 2017 at 6:23 am #2075
Many thanks for the feedback 🙂
- You must be logged in to reply to this topic.