About Modbus client proxy points

Modbus client proxy points are similar to other driver’s proxy points. See “About proxy points” in the Drivers Guide for general details. Note that the same collection of client proxy points is used in devices under a ModbusAsync, ModbusTcp, and ModbusTcpGateway network—you can find them in the “Client Points” folder in either palette type (modbusAsync or modbusTcp), as shown in Figure 32.

Figure 32. Client Points folder is same in modbusAsync palette and modbusTcp palette


Client Points folder is same in modbusAsync palette and modbusTcp palette

Although sometimes you may need to copy components from the palette, note that the same selection of client point types is available in the New dialog, when adding points in the Modbus Client Point Manager view of a device (of its Points extension), as shown in Figure 33.

Figure 33. New dialog from Add in Modbus Client Point Manager provides client point selection


New dialog from Add in Modbus Client Point Manager provides client point selection

NoteThe last four types listed, Enum Bits Writable through Numeric Bits Point, require Modbus 3.5.26 or higher, or AX-3.6 or later.

Typically, this is the quickest way to add Modbus client proxy points, because you can specify a number of points if consecutively addressed. See Consecutive address usage (NiagaraAX).

The following sections provide additional details on client Modbus proxy points:

Types of Modbus client proxy points

You can select from the following Modbus client proxy point types:

  • Boolean Writable

    To read/write a Modbus coil.

  • Boolean Point

    To read either a Modbus coil or an input.

  • Numeric Writable

    To read/write a Modbus holding register value.

    Note you must specify the Data Type, as either integer, long, float, or signed integer.

  • Numeric Point

    To read either a Modbus holding register value or an input register value.

    Note you must specify the Data Type, as either integer, long, float, or signed integer.

  • Register Bit Writable

    To read/write a specific bit in a Modbus holding register (select Bit Number in setup).

  • Register Bit Point

    To read a specific bit in either a Modbus holding register or an input register (select Bit Number in setup).

  • String Point

    To read some number of consecutive Modbus holding registers and interpret them as an ASCII string, using a “high-to-low” byte order. In general, use of this type is expected to be infrequent.

NoteRemaining client point types listed below are available only in Modbus 3.5.26 or higher, or AX-3.6 or later. See the subsequent Example for a possible application.

  • Enum Bits Writable

    To read or write some number of consecutive bits within a holding register, with the resulting integer as the out (ordinal) value of the Enum Writable.

  • Enum Bits Point

    To read some number of consecutive bits within a holding or input registering the resulting integer as the out (ordinal) value of the Enum Point.

  • Numeric Bits Writable

    To read or write some number of consecutive bits within a holding registering the resulting integer as the out value of the Numeric Writable.

  • Numeric Bits Point

    To read some number of consecutive bits within a holding or input registering the resulting integer as the out value of the Numeric Point.

Example

A Modbus energy meter device has a number of TOU (Time of Use) parameters, including several for “TOU Tariff Change Time” configuration. For the eight possible tariff periods (1 - 8), there is a start hour (0 - 23) and start quarter of an hour (0 - 3). In the meter device, a single 16-bit holding register holds the setup of all eight tariff periods, mapped from highest bit (15) to lowest bit (0) as follows:

  • Bits 8:15 = 0 - 7 (corresponding to tariff #1 - #8)

  • Bits 2:7 = 0 - 23 (tariff start hour)

  • Bits 0:1 = 0 - 3 (tariff start quarter of an hour)

Three separate proxy points can be created, using either NumericBitsWritables or EnumBitsWritables (depending on user interface requirements), to provide read/write access to these bit-mapped values. All three points will specify the same (register) Data Address, but have different “Beginning Bit” values and “Number Of Bits” values.

Modbus client point ProxyExt properties

Apart from the standard “core” proxy extension properties (see “ProxyExt properties” in the Drivers Guide), these ProxyExt properties have special importance in Modbus client proxy points:

  • Fault Cause

    (Read only) If the point is in fault from an exception response received from the slave device, that exception string appears here. For example: “Read fault: illegal data address”. See Exception codes for more details.

  • Read Value

    (Read only) Shows last polled value as well as the state, for example “71 {ok}” or “false {ok}”.

  • Write Value

    (Read Only) Shows the last written value, as well as the state and priority level, for example “70 {overridden} @8”.

  • Data Address

    Specifies the address of the polled data item (prior to any offset address change as a result of using device-level “Base Address”), as a combination of:

    • Address Format — either Modbus (default), Hex, or Decimal

    • Address — numerical address, expressed in the selected format.

    See Modbus data addresses for general information.

    For example, the following are all equivalent addresses:

    • Modbus, 40012

    • Hex, 0B

    • Decimal, 11

    NoteIf using Hex or Decimal format, for most read-only points you need to specify the “Reg Type” property, to clarify whether holding register or input register. For related details, see Data address format in NiagaraAX.

  • Absolute Address

    (Read only) Differs from “Data Address” only if using device “Base Addresses.” It is the sum of the “Data Address” value and the associated “Base Address” value (as configured in the parent Modbus device). This is the actual address that will be used when polling for this discrete data point from the actual Modbus device. The address of the polled data item is a combination of:

    • Address Format — as selected, either Modbus (default), Hex, or Decimal

    • Address — numerical address, expressed in the selected Data Address format.

  • Data Source

    (Read only) Displays the type of polling used to collect the value. If it shows “Point Poll” then the Absolute Address is not contained within the range of addresses specified in a Device Poll Config Entry—thus a separate, individual, point-level poll message is required to collect the value for this Modbus proxy point (at a poll rate specified by the 'Poll Frequency' property).

    If it displays “Device Poll” then the Absolute Address is contained within the range of addresses specified in a Device Poll Config Entry, and thus the value for this Modbus proxy point is “picked” from the device-level polling.

Depending on the type of Modbus proxy point, one or more additional properties are used in its ProxyExt to clarify or confirm the data item needed, as follows:

ModbusClientBooleanPoint

Or “Boolean Point”, has the following in addition to other Modbus client point ProxyExt properties:

  • Status Type

    Coil or Input. Specifies whether the point is an Input status type or a Coil status type. Selections only apply if the “Data Address” format used is Hex or Decimal. (The Modbus address format, if used, automatically sets this property value).

ModbusClientBooleanWritable

Or “Boolean Writable”, has the has the following in addition to other Modbus client point ProxyExt properties:

  • Status Type

    (Read only) Always Coil status type for a writable status item.

ModbusClientNumericPoint

Or “Numeric Point”, has the following in addition to other Modbus client point ProxyExt properties:

  • Reg Type

    Holding or Input. Specifies whether the value is read from an input register or holding register. Selections only apply if the “Data Address” format used is Hex or Decimal. (The Modbus address format, if used, automatically sets this property value).

  • Data Type

    Specifies the data type used by the associated data point. Integer and signed integer are 16-bit (single register) data types; long and float are 32-bit types (with the starting address specified in “Data Address”). Values for long and float selections are based upon the network's byte-order config setup (or may be overridden at the device-level).

ModbusClientNumericWritable

Or “Numeric Writable”, has the following in addition to other Modbus client point ProxyExt properties:

  • Reg Type

    (Read only) Always Holding register for a writable numeric value.

  • Data Type

    Specifies the data type used by the associated data point. Integer and signed integer are 16-bit (single register) data types; long and float are 32-bit types (with the starting address specified in “Data Address”). Values for long and float selections are based upon the network's byte-order config setup (or may be overridden at the device-level).

ModbusClientRegisterBitPoint

Or “Register Bit Point”, has the following in addition to other Modbus client point ProxyExt properties:

  • Reg Type

    Holding or Input. Specifies whether the bit is read from an input register or holding register. Selections only apply if the “Data Address” format used is Hex or Decimal. (The Modbus address format, if used, automatically sets this property value).

  • Bit Number

    Specifies the bit (numbered 0 - 15, least significant bit first) to read from the specified (16-bit) Modbus register. For example, if the specified register value was “0000000000001000", setting the “Bit Number” to 3 would read a “1” (True).

ModbusClientRegisterBitWritable

Or “Register Bit Writable”, has the following in addition to other Modbus client point ProxyExt properties:

  • Reg Type

    (Read only) Always Holding register for a writable bit.

  • Bit Number

    Specifies the bit (numbered 0 - 15, least significant bit first) to write to the specified (16-bit) Modbus register. For example, if the specified register value was “0000000000000000”, setting the “Bit Number” to 3 and writing a True (“1”) would cause the specified register value to become “0000000000001000”.

ModbusClientStringPoint

Or “StringPoint”, has the following in addition to other Modbus client point ProxyExt properties:

  • Number Registers

    Specifies the number of consecutive holding registers to read, starting with the specified Absolute Address (The number of registers should not exceed message limits of the target slave device). Each register produces two ASCII characters, using high-to-low byte order and standard ASCII encoding. For example, a register with a value of 4A41 hex (19009 decimal) returns String characters “JA,” where: 4A h = J and 41 h = A.

ModbusClientEnumBitsPoint

Or “Enum Bits Point” (build 3.5.26 or higher, or AX-3.6 or later) has the following in addition to other Modbus client point ProxyExt properties:

  • Reg Type

    Holding or Input. Specifies whether bits are read from an input register or holding register. Selections only apply if the “Data Address” format used is Hex or Decimal. (The Modbus address format, if used, automatically sets this property value).

  • Beginning Bit

    Specifies the first bit, 0 to 15, used in reading consecutive bits in the specified holding or input register, until “Number of Bits” have been read. The integer read is the out value (ordinal portion of the point’s facets).

  • Number of Bits

    Specifies the number of bits read in the register, starting with the “Beginning Bit”.

ModbusClientEnumBitsWritable

Or “Enum Bits Writable” (build 3.5.26 or higher, or AX-3.6 or later) has the following in addition to other Modbus client point ProxyExt properties:

  • Reg Type

    (Read only) Always Holding register for writable bits.

  • Beginning Bit

    Specifies the first bit, 0 to 15, used in reading or writing consecutive bits in the specified register, until “Number of Bits” have been read or written. The integer read (or written) is the out value (ordinal portion of the point’s facets).

  • Number of Bits

    Specifies the number of bits read or written in the register, starting with the “Beginning Bit”.

ModbusClientNumericBitsPoint

Or “Numeric Bits Point” (build 3.5.26 or higher, or AX-3.6 or later) has the following in addition to other Modbus client point ProxyExt properties:

  • Reg Type

    Holding or Input. Specifies whether bits are read from an input register or holding register. Selections only apply if the “Data Address” format used is Hex or Decimal. (The Modbus address format, if used, automatically sets this property value).

  • Beginning Bit

    Specifies the first bit, 0 to 15, used in reading consecutive bits in the specified holding or input register, until “Number of Bits” have been read. The combined integer value is the point’s out value.

  • Number of Bits

    Specifies the number of bits read in the specified register, starting with the “Beginning Bit”.

ModbusClientNumericBitsWritable

Or “Numeric Bits Writable” (build 3.5.26 or higher, or AX-3.6 or later) has the following in addition to other Modbus client point ProxyExt properties:

  • Reg Type

    (Read only) Always Holding register for writable bits.

  • Beginning Bit

    Specifies the first bit, 0 to 15, used in reading or writing consecutive bits in the specified register, until “Number of Bits” have been read or written. The combined integer value is the point’s out value.

  • Number of Bits

    Specifies the number of bits read or written in the register, starting with the “Beginning Bit”.