|Maximum count of call retryrequest retries. If no reply returns after calls a request had been sent, the station will be in the status of a communication error.||s||2|
|Timeout before retry of call resending a request if no reply had not received.||s||0.1|
|Delay after sending the request before reading the response.||s||0.1|
|Timeout between reading the reply.||s||0.1|
|Maximum count number of retry retries of the reply reading.||-||20|
|"Start silent interval" before begin beginning of the transmission in RTU mode.||ms||50|
|"Stop silent interval" after ending of the transmission in RTU mode.||ms||50|
|Special byte mode of transmission in which the values of registers have length of 1 byte and not 2 bytes as it is defined in Modbus protocol specification.||YES/NO||NO|
|Special variable mode of transmission in which the values of registers have variable length.|
Setting of Variable mode:
Note 1: Variable and byte mode are incompatible and only one of them can be enabled.
|Log of another debug information about communication on line.||YES/NO||NO|
|Protocol mode: RTU or ASCII.|
Note: In case of "MODBUS over TCP/IP", the parameter value is ignored and Protocol Mode=RTU is used.
|Sets an address model of MODBUS protocol:|
MODBUS PDU data are addressed from 0 up to 65535.
MODBUS data Model data are addressed from 1 up to 65536.
Note: MODBUS PDU is a default value. If the MODBUS data Model is set, the object with the address X is addressed as X-1 in MODBUS PDU.
After you change this parameter, restart a proper communication process.
MODBUS data Model
|Select a variant of the protocol in case of TCP/IP communication:|
"MODBUS TCP" is a variant of communication without control checksum. Safeguarding is done by the underlying TCP protocol.
"MODBUS over TCP" is a variant where a payload is MODBUS RTU data containing a checksum.
"MODBUS over TCP"
|Maximum count of registers that are required in read by one callrequest.||-||100|
|Maximum count of bytes that are required in required by one call request (only in "Byte mode").||-||100|
|To require read the values from addresses that are not configured , is not allowed.|
Description and example:
|If this parameter is set to YES, then an extra check is performed when receiving a response to a read request: the length of received data is checked whether it matches amount the number of registers in a read request:||YES/NO||NO|
The main address space in the protocol MODBUS is divided into the following registers:
- Coils type (reading/writing)
- Discrete Inputs (reading)
- Holding Registers (reading/writing)
- Input Registers (reading)
An independent address space Independent addressing with the address size of 2 bytebytes, i.e. addresses from 0 up to 65535 (so called -called MODBUS PDU addressing model), is in each address space of given type of register. Some of devices work with address space starting with 1 (so called -called MODBUS data Data Model). In this case, it is necessary to deduct -1 in the address at configuration I/O tags in the D2000 system or change the setting of the parameter Addressing model to MODBUS data Model.
- First character defines a type of I/O tag:
- I - Integer16 (default) - one register is read, signed
- U - Unsigned16 - one register is read, unsigned
- Uu - Unsigned16 - one register is read, unsigned, only upper byte is considered (1st in sequence)
- Ul - Unsigned16 - one register is read, unsigned, only lower byte is considered (2nd in sequence)
- f - Float (4 bytes = 2 registers) - two registers with Address and Address+1 are read and transmitted as big-endian (see Note).
- F - Float (4 bytes = 2 registers) - two registers with Address and Address+1 are read and transmitted as little-endian (so-called Modicon format), (see Note)
- 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)
- B - Byte unsigned, only upper 8 bits of the register value
- X - Byte unsigned, only lower 8 bits of the register value.
- sn. - Text string with the length of n characters, one register is one character, n registers with Address up to Address+n-1 are read
- an. - Text string with the length of 2*n characters, one register is two ASCII characters, characters are transmitted in the same order as they appear in the string, n registers with Address up to Address+n-1 are read
- An. - Text string with the length of 2*n characters, one register is two ASCII characters, characters are transmitted in big-endian order (i.e. "1234" is transmitted as "2143"), n registers with Address up to Address+n-1 are read
- Modifier d indicates that the a number is an 8-byte number (4 consecutive registers). It can be used for types L, Ll, S, Sl, F,f and it allows is used for configuration of signed/unsigned 8-byte integer with/without a sign as well as an 8-byte float (big-endian <B8>..<B1> and little-endian <B1>..<B8> formats).
Modifier D indicates that the a number is an 8-byte number (4 consecutive registers). It can be used for types Ll, Sl, F and it allows is used for configuration of signed/unsigned 8-byte integer with/without a sign as well as an 8-byte float (little little-endian format format <B2><B1><B4><B3><B6><B5><B8><B7>).
Note: when using a modifiers d or D, the I/O tag must be of Analog type (Ai), because Integer type (Ci) in D2000 is implemented as a 4-byte variable and overflow might occur. Writing of Integer type (Co) as an 8-byte number is supported.
- Modifier b indicates that figure is coded by BCD. It can be used for I/O tags of I, U, B, L, Ll types.
Modifier s indicates that a status register (Unsigned16) located on address Address is followed by a big-endian Float value located on address Address+1 .. Address+2. This indicator is used for type f and it is implemented for calorimeter Endress+Hauser RMS621. Following table shows the values of the status register and their mapping to D2000 attributes.
Status register D2000 attributes 0 : Invalid value Weak 1 : Measured value valid Valid 2 : Overflow warning
3 : Overflow error
4 : Underflow warning
5 : Underflow error
6 : Saturated steam alarm
7 : Error in differential pressure calculation
8 : Wrong medium for DP calculation
9 : Wrong value range - DP calculation inaccurate
10 : Differential pressure - general error
11 : Range overshoot (Tsat > 350 etc.) on
12 : Change in state of aggregation
26 : Differential pressure --> general error
99 : No measured value is assigned to the register in the setup of the ModBus
- Parameter RdFn is a function of the Modbus protocol for a data reading. The following functions are implemented:
- 1 - Read Coils: binary status reading
- 2 - Read Discrete Inputs: binary input reading
- 3 - Read Holding Registers: status register reading (Integer16/Unsigned16 and Float32 - reads two successive registers)
- 4 - Read Input Registers: input register reading (Integer16/Unsigned16 and Float32 - reads two successive registers)
- 0 - A value is not read, it is only written. The function for writing (WrFn) must be set.
- Parameter WrFn is the function of the Modbus protocol for a data writing. Following functions are implemented:
- 5 - Write Single Coil: binary status writing (default for Read Coils)
- 6 - Write Single Register: status register writing (default for Read Holding Registers)
- 16 - Write Multiple registers: multiple registers writing, it must be used when 2-register type is written (e.g. Float, Unsigned long, etc.).
Note: function can be used to write more than two registers at once if a text string is used. Example:
if we have an I/O tag with address a3.0-16.#8A00 (i.e. text string covering 3 registers, having length of 6 characters) and we write a string '123456', then hexadecimal values 0x3132, 0x3334 and 0x3536 (ASCII code for '1' is 0x31, for '2' is 0x32 etc) will be written to registers 0x8A00, 0x8A01 and 0x8A02.
- 22 - Mask Write Register: it influences write affects only the value of the particular bit BitNr of the status register. Usable It is usable only for Do value types with the address parameter BitNr.
- Parameter d activates the function "delayed write". Sending of the value is delayed until the request to write the value of the object without parameter d comes. All accumulated request requests waiting to be written are sent. If the function WrFn is set on to "Write Multiple Registers", the values are sent in one packet.
- Parameter Address is a 2-byte address of register (0-65536). See also the protocol parameter Addressing model.
Note: address can be specified as a hexadecimal number using a number sign (#), e.g. #50CE
- Parameter BitNr is a number of bit in a word. The values 0-7 are allowed to be used for binary statuses and inputs, values 0-15 are allowed to be used for reading of bit from 16-bit status or input registers.