Understanding slave address

Lot's of obscure communications platforms on the internet but hopefully this will be a winner when it comes to learning and building cool stuff, I'll cut to the chase. When using pulseview modbus decoder, I can't seem validate the slave address in the RTU packet, I can't understand much of the packet at all if I'm being honest. I understand the slave should be 8 bits, are they inverted or two's compliment? It should be 1. And how do I add the 16 bits of the input register together to land on what it should be, which is register 300, if that makes sense. Massive learning curve for me. Thank you for being kind. Screenshot 2023-12-16 135131.png
 
The correct bit patterns are not inverted, nor 2's complement.

I suspect either
- something is seriously wrong with your serial settings, baud rate, parity, stop bit, because none of the data makes sense at all.
- the data stream is not Modbus

The node address should be hex 01, not hex 7F. Yes, the correct value is the inverted value but serial Modbus doesn't use inverted logic.

The highest numbered function code is hex 2B, a long way from 9E.

Without a valid function code, the rest makes no sense at all.
 
I agree with David_2 that something seems to be wrong with how you're capturing the signals.

I believe the "FE" shown in green indicates a Framing Error, meaning the number of bits detected does not match the expected number of bits for the current baud rate, parity, and stop bit settings.

As he mentioned, please confirm your baud rate, parity, and stop bit settings. Please also check your wiring/probe connections.

When measuring RS-485 signals with an oscilloscope, you should use 2 channels - one channel probing the + wire with its ground connected to the signal reference, and another channel probing the - wire, with its ground also connected to the signal reference. You would then use a math channel (if possible) to show the + signal minus the - signal and apply the Modbus decoder to the math channel.
 
Top