Modbus Invalid Checksum & verification


I started working on a Modbus project and was able to collect data.
However, it shows invalid checksum. How may I fix it?
What would be the best approach to verify that bit rate, parity, Bits per frame, stop bits, parity bit and significant bit is correct?

Thank you

MB.sal (33.7 KB)
MB_GF200ns.sal (44.7 KB)

@Mayon Taking a look at your MB.sal file, it looks like glitches in your capture are preventing the Modbus analyzer from properly decoding your data.

If you zoom in closely, you will see some glitches in the range of 100 - 200ns wide like in the image below.

On your next capture, can you try enabling a glitch filter (instructions below)? A glitch filter setting of around 500 ns may do the trick to clean those up.

Hello Tim,

thank you for looking into it. Please find the upload

2024-07-02_MB_1us.sal (7.1 MB)

@Mayon Thanks for testing that out. I’ll get your capture file on the queue to review and I’ll follow up with you on our findings.

With your new capture file (glitch filters enabled), it looks like the async serial analyzer is decoding the data properly, which is a great step forward! The Modbus analyzer is not recognizing the sequence of serial data however.

In the image below (taken from the start of capture), I changed the Modbus mode to RTU-Server mode, and changed the Radix display to Hexadecimal for easy reading. Device ID is being read back as 0x00 (1st serial 8-bit transaction), and the function is read as 0x9C (2nd serial 8-bit transaction), which our Modbus analyzer doesn’t recognize and labels it as “User Defined.” I suspect the decoding issue is being caused by this.