Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

A Modbus address is a 16-bit unsigned integer that is transmitted with every request to indicate which data should be read or written. Address occupies two characters in the Modbus message and the most significant byte is sent first (big-endian).


Supported function codes

Functions codeFunctionsSpesifics
FC01Read CoilsThis function code allows the master to query the state of slave’s coils.read coils request is always 8 bytes long. 
read coils response is at least 6 bytes long.
FC02Read Discrete InputsThis function code allows the master to query the state of slave’s discrete inputs.read discrete inputs request is always 8 bytes long.
read discrete inputs response is at least 6 bytes long.
FC03Read Holding RegistersThis function code allows the master to query the state of slave’s holding registers.read holding registers request is always 8 bytes long. 
read holding registers response is at least 7 bytes long.
FC04Read Input RegistersWith this function code, master queries the state of slave’s input registers.read input registers request is always 8 bytes long. 
read holding registers response is at least 7 bytes long.
FC05Write Single CoilSets the value of a single slave’s coil.write single coil request is always 8 bytes long.
response?
FC15Write Multiple CoilsSets the value of a single slave’s holding register.
FC06Write Single RegisterSets the value of a consecutive range of slave’s coils.
FC16Write Multiple RegistersSets the value of a consecutive range of slave’s holding registers.
FC23Read/Write Multiple RegistersIt combines reading and writing functions, allowing the master to read and write values of multiple holding registers in a single request

To send and receive data we need to use 2 channels:

  • Write Multiple Registers (Function Code 16)
  • Read Holding Registers (Function Code 03)


Start configuration with a client/master master Modbus TCP Client/Master

Sending and receiving of data on the Client/Master side

Sending and receiving of data on the Server/Slave side



NB!

In the Modbus protocol, data is sent between registers, not directly between variables. Registers act as memory addresses in devices that use the Modbus protocol, and data is exchanged through these registers.

Image Added










Source:/Helpful links:

Configuring a Network Variable Exchange:
https://help.codesys.com/api-content/2/codesys/3.5.13.0/en/_cds_configuring_network_variables_exchange/

...

https://www.avast.com/c-tcp-vs-udp-difference#:~:text=TCP%20vs%20UDP%3A%20Differences%20between%20the%20protocols,reliable%20but%20works%20more%20quickly.

https://docs.factoryio.com/manual/drivers/modbus-server/#configuration

https://docs.factoryio.com/manual/drivers/modbus-client/#configuration