Page tree

Versions Compared

Key

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

...

ParameterMeaningUnitDefault value
Anchor
rc
rc
Retry Count
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.s2
Anchor
rt
rt
Retry Timeout
Timeout before retry of call resending a request if no reply had not received.s0.1
Anchor
wft
wft
Wait First Timeout
Delay after sending the request before reading the response.s0.1
Anchor
wt
wt
Wait Timeout
Timeout between reading the reply.s0.1
Anchor
mwr
mwr
Max. Wait Retry
Maximum count number of retry retries of the reply reading.-20
Anchor
stasi
stasi
Start Silent Interval
"Start silent interval" before begin beginning of the transmission in RTU mode.ms50
Anchor
stosi
stosi
Stop Silent Interval
"Stop silent interval" after ending of the transmission in RTU mode.ms50
Anchor
bm
bm
Byte mode
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/NONO
Anchor
vm
vm
Variable mode
Special variable mode of transmission in which the values of registers have variable length.

Setting of Variable mode:
Little endian = the lowest bytes are sent first
Big endian = the highest bytes are sent first
OFF = variable mode is switch off

Note 1: Variable and byte mode are incompatible and only one of them can be enabled.
Note 2: Emerson FloBoss 103 device: text strings and time stamps of 6-byte are sent always from the lowest byte.
Note 3: Variable mode is implemented only for Protocol Mode=RTU.
Note 4: A data encoding big-endian is used automatically, according to the default parameter values Byte mod=NO and Variable mode=OFF (i.e. according to MODBUS protocol specification).

OFF
Little endian
Big endian
OFF
Anchor
fd
fd
Full debug
Log of another debug information about communication on line.YES/NONO
Anchor
pm
pm
Protocol mode
Protocol mode: RTU or ASCII.

Note: In case of "MODBUS over TCP/IP", the parameter value is ignored and Protocol Mode=RTU is used.

RTU
ASCII
RTU
Anchor
am
am
Addressing model
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 PDU
MODBUS data Model
MODBUS PDU
Anchor
mtcpv
mtcpv
TCP/IP protocol variant
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 TCP"
"MODBUS over TCP"
"MODBUS TCP"
Anchor
mxr
mxr
Max. Registers
Maximum count of registers that are required in read by one callrequest.-100
Anchor
mxb
mxb
Max. Bytes
Maximum count of bytes that are required in required by one call request (only in "Byte mode").-100
Anchor
sku
sku
Skip Unconfigured
To require read the values from addresses that are not configured , is not allowed.

Description and example:
The calls requests for data, which are limited by protocol parameter "Max. Registers" or "Max. Bytes", are sent as standard. If I/O tags with addresses "Holding Registers" 1, 2, and 5 has have been configured, one call requiring request reading 5 registers from starting with the address 1 is sent although the I/O tags with addresses 3 and 4 are not configured. It is more efficiency efficient to gain obtain the required data in by one call request than in by two ones even if the unnecessary data are also read.
If the parameter "Skip Unconfigured" is set on YES, two calls requests are sent, the first one requires reads two registers from address 1 and the second one requires the reads one register from address 5.

YES/NONO
Anchor
crl
crl
Check Receive Length
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:
  • if Byte mode is on (Byte mode=YES), length of received data must equal to the number of registers
  • if both Byte mode and variable mode are off, length of received data must equal to double of the number of registers
  • if the variable mode is on (Variable mode=little-endian or big-endian), check has not been implemented yet
This extra check is reasonable on high-latency and variable-latency lines - e.g. GPRS networks - to detect and avoid the situation when read request (#1) is repeated due to timeouts and then two responses are received, the second of which could be considered to be an answer to another read request (#2), thus causing wrong values being assigned to I/O tags addressed by this read request #2.
YES/NONO

...

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.

I/O tag address can acquire be in a basic or extended format (for a variable mode).

...

  • 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 registerD2000 attributes
    0 : Invalid valueWeak
    1 : Measured value validValid
    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
    Weak


  • 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.

...