...
Parameter | Meaning | Unit | Default value |
---|
| A delay before the start of transmission of each data packet. | ms | 50 |
| If timeout passes and no valid request comes, all stations on the line will go to a communication error. However, the values of output I/O tags will not be invalidated (as this is a server protocol). | mi:ss | 1:00 |
| If the value of the parameter is set to YES, the KOM process replies by SLAVE_DEVICE_FAILURE error to each request which is sent to a non-existent station (a station with an unknown address). If the value is NO, the KOM process ignores this request and does not send a reply to it. | YES/NO | YES |
| Switching time of Moxa redundant devices in case of communication error or some problems. As this is a server protocol that waits for requests from external devices, a failure to receive a communication request for a longer time than the value of this parameter is considered to be an error. It is effective only for SerialOverUDP Device Redundant line. | sec | 10 sec |
| Setting the TCP No Delay parameter to YES causes the low-level socket option TCP_NODELAY to be set, thus turning off the default packet coalesce feature. The parameter is implemented only for TCP/IP-TCP line. | YES/NO | NO |
Kotva |
---|
| komunikacna_stanica |
---|
| komunikacna_stanica |
---|
|
Communication station configuration
...
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).
...
- MODBUS APPLICATION PROTOCOL SPECIFICATION V1.1b, December 28, 2006. http://www.modbus.org
Info |
---|
title | An example of communication |
---|
|
You can find an example of communication (MODBUS Client - MODBUS Server) in the MODBUS Client protocol documentation. |
Info |
---|
|
You can read blogs about the Modbus protocol: |
Changes and modifications
...