Maybe this will be of some help.
“Type” of Modbus depends on the instrument. e.g. an instrument could have a RTU interface, a TCP interface. or it might use a RTU-to-TCP converter…
Typical Modbus RTU data rate is 9600 bps.
The specification maximum is much higher. Usable max depends on cable length.
Modbus is a request / response protocol. i.e. no broadcast.
The RS-485 line “specs” are here. (Near the bottom of the page)
Here’s another page with info that may be helpful. And another.
One point that might appear to be counterintuitive:
Modbus RTU slaves are servers (instruments)
Modbus RTU masters are clients (controllers)
Reading data from a Modbus instrument typically consists of reading “Registers.”
The registers may be read one at a time, or in groups. Typical register contents are 16-bit integer data.
Some instruments have registers that contain 32-bit floating point data. Some use two 16-bit registers to hold large integer values.
Single bits may also be read. Single bits are known as “Coils.” Analogous to a relay coil, Coils are used to activate / deactivate a two-state device, or as status indicators.
Configuring a Modbus instrument consists of writing to “User Configuration” registers.
I chose to use the Python module minimalmodbus vice PyModbus as it provides Modbus RTU suport, without the stuff I didn’t need i.e. Modbus TCP.
The minimalmodbus API returns the data directly. i.e. when a register is read, the retreived data is a decimal integer or float value represening kW, kVa, Volts, Hz, etc.