Porovnávané verzie

Kľúč

  • Tento riadok sa pridal
  • Riadok je odstránený.
  • Formátovanie sa zmenilo.

...

Every address space is independent, providing 2-byte addressing, i.e. addresses from 0 up to 65535.

The I/O tag with an address starting with %IGNORE will be ignored.

Address format of I/O tag:
Address format is [I|U|L|Ll|S|Sl|f|F|C|D]Fn.Address[.BitNr] in which:

  • The first optional character defines the type of I/O tag:
    • I - Integer 16 bit
    • U - Unsigned 16 bit (default)
    • L - Unsigned long (4 bytes = 2 registers) - two registers with Address and Address+1 are read, unsigned, and transmitted as big-endian (see Note)
    • Ll - Unsigned long (4 bytes = 2 registers) - two registers with Address and Address+1 are read and transmitted as little-endian, unsigned (see Note)
    • S - Signed long (4 bytes = 2 registers) - two registers with Address and Address+1 are read, signed, and transmitted as big-endian (see Note)
    • Sl - Signed long (4 bytes = 2 registers) - two registers with Address and Address+1 are read and transmitted as little-endian, signed (see Note)
    • f - Float 32 bit (two registers) in big-endian format (bytes B4, B3, B2, B1 will be sent, B4 is highest byte and B1 is the lowest byte of float)
    • F - Float 32 bit (two registers) in little-endian format (bytes B2, B1, B4, B3 will be sent, B4 is highest byte and B1 is the lowest byte of float)
    • C - Request counter up (16 bit unsigned, which is incremented by every read request). Works only for Fn=3 or Fn=4
    • D - Request counter down (16 bit unsigned, which is decremented by every read request). Works only for Fn=3 or Fn=4
      Note: Request counter up/down can be used to configure a "watchdog" I/O tag to monitor the status and speed of Modbus communication.
  • Parameter Fn is a function of Modbus protocol for data reading, which inserts I/O tag into proper address space:
    • 1 - Coils: binary statuses
    • 2 - Discrete Inputs: binary inputs
    • 3 - Holding Registers: status registers
    • 4 - Input Registers: input registers
  • Parameter Address is a 2-bytes address of a register in the range of 0 up to 65535.
  • Parameter BitNr optionally specifies a bit of register in the range of 0 up to 15.
    Note: coexistence of an I/O tag without BitNr parameter and multiple I/O tags with BitNr parameter having the same Address is possible.

Implementation of protocol supports the following functions (commands of MODBUS Client for a D2000 KOM process):

  • 1 - Read Coils: reading of binary status - KOM process sends values of I/O tags of Do type.
  • 2 - Read Discrete Inputs: reading of binary inputs - KOM process sends values of I/O tags of Do type.
  • 3 - Read Holding Registers: reading of status registers - KOM process sends values of I/O tags of Co, Ao type (signed/unsigned).
  • 4 - Read Input Registers: reading of input registers - KOM process sends values of I/O tags of Co, Ao type (signed/unsigned).
  • 5 - Write Single Coil: writing of binary statuses - KOM process writes a received binary value in I/O tag of Di, Do type into system.
  • 15 - Write Multiple Coils - KOM process writes all received binary values of the I/O tag of Di, Do type into the system.
  • 6 - Write Single Register: writing of status registers - KOM process writes the received value in the I/O tag of Ai, Ao, Ci, Co type into the system.
  • 16 - Write Multiple registers: writing of multiple registers - KOM process writes all received values in the I/O tags of Ai, Ao, Ci, Co type into the system.
  • 22 - Mask Write Register: writing the register with the AND/OR mask - KOM process writes the received value in the I/O tag of Ai, Ao, Ci, Co type into the system.

Note: This is a server type of protocol that is primarily intended for sending the values out of the D2000 system. Therefore the I/O tags should be configured as an output (Ao, Co, Do) because of the manipulation of their values directly or by control objects. If the I/O tag is configured as input (Ai, Ci, Di), the KOM process is unable to send a valid value in a reply to reading by functions 1 - 4 until the value is written by function functions 5, 15, 6, 16. or 16 22 from outside.

If the KOM process does not have the valid value of I/O tag or request to read a nonexistent I/O tag is received, an implicit value False or 0 is sent as a response to a read request (MODBUS protocol does not support the transfer of value quality).

...


Info
titleAn example of communication

You can find an example of communication (MODBUS Client - MODBUS Server) in the MODBUS Client protocol documentation.



Info
titleBlog

You can read blogs about the Modbus protocol:


Kotva
zmeny_upravy
zmeny_upravy
Changes and modifications

...