Page tree

Versions Compared

Key

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

...

Independent addressing with the address size of 2 bytes, i.e. addresses from 0 up to 65535 (so-called MODBUS PDU addressing model), is in each an address space of given each type of register. Some devices work with address space starting with 1 (so-called MODBUS 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 the 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 the upper 8 bits of the register value
    • X - Byte unsigned, only the 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 a number is an 8-byte number (4 consecutive registers). It can be used for types L, Ll, S, Sl, F,f, and it is used for configuration of signed/unsigned 8-byte integer as well as an 8-byte float (big-endian <B8>..<B1> and little-endian <B1>..<B8> formats).
    Modifier D indicates that a number is an 8-byte number (4 consecutive registers). It can be used for types Ll, Sl, F and it is used for configuration of signed/unsigned 8-byte integer as well as an 8-byte float (little-endian 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. The 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 data writing. The 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:  write affects only the value of the particular bit BitNr of the status register. 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 requests waiting to be written are sent. If the function WrFn is set 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.

...