Modbus Analyzer

First time using the Modbus Analyzer, looking at my data (01030000000AC5CD sent, 01031433D30007000003870DDE01020000000060000001BD1F returned) in the attached capture. The analyzer is setup at a Modbus RTU master and correctly reads the sent command but incorrectly reads the response.

Is I set the analyzer to slave, it doesn’t decode anything correctly. Any help?
Modbus Capture (read holding registers - 10 registers).sal (289.3 KB)

@jon.slavic I may have gotten the response to decode properly by trimming the capture to only show the response, and using the following Modbus settings.

The checksum seems to be correct as well. I’ll provide the .sal file here.
Modbus-Slave-Only.sal (148.6 KB)

As a first step, can you confirm if the results shown above are you what you expect for the response?

If so, your issue might be related to the GitHub Issue post below, which we’ve recorded for the Modbus analyzer.

Thanks Tim, make sense. Your decode is correct. This should be a pretty simple decoder to do master and slave in one transactions with the Modbus protocol.

@timreyes Any chance the decoder will get improved? I love the saleae analyzer (still using the logic 16 for years) but I feel the modbus decoder could use some improvements when both master and slave device are on the same 2-wire RS485 bus.

Same issue as jon.slavic where the data is correct, but the analyzer is unable to process the reply.
Master sent this request: 01 03 50 06 00 02 35 0A
Slave sent this reply 01 03 04 43 67 E6 66 94 22 (which is correct)

The decoder however is not able to distinguish between the request and answer. The only way to decode this is as you indeed showed by trimming the data so only the reply is shown and switching the decoder from RTU client to RTU server.

RS485 modbus.sal (5.2 KB)

1 Like

@peter Thanks for following up on this. Our software team is currently prioritizing other projects at the moment, and we’re unfortunately unable to work on analyzer improvements for the Modbus analyzer anytime soon because of it.

Having said that, feel free to make use of our Protocol Analyzer SDK to make any changes or improvements to any of our analyzers, including our Modbus analyzer! This will require C++ knowledge.

In any case, we apologize for not being able to work on this immediately.

Hello!

Did u resolved the problem ? Any tips & tricks ?

@drSysManOne Thanks for following up on this! We’re currently still tracking this request below (apologies our status on that hasn’t changed yet).

Although we’re still unable to work on analyzer updates right now outside of software breaking bugs, please feel free to check out Binho’s services below!
https://binho.io/pages/custom-protocol-analyzer-development

Their engineers are able to provide services to develop custom low level analyzers and extensions for our software, and they may be a great resource for modifying our Modbus analyzer to suit your exact needs. More information on their services can be found in the link above in case you are interested in reaching out to them!

Hello!

Thanks for the answer. Is there a tutorial: “how to write my own analyzer” ?

@drSysManOne We have two useful resources below!

  1. Readme - This document will walk you through how to modify our template SampleAnalyzer to suit your needs, including steps to rename, setup, build, and debug your analyzer.

  2. Analyzer_API - This is the documentation for the Saleae C++ Analyzer API.

Thanks a lot!