About Modbus server proxy points

Modbus server 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 server proxy points is used in devices under a ModbusSlave and ModbusTcpSlave network—you can find them in the “Server Points” folder in either palette type (modbusSlave or modbusTcpSlave), as shown in Figure 32.

Figure 43. Server Points folder is same in modbusSlave palette and modbusTcpSlave palette


Server Points folder is same in modbusSlave palette and modbusTcpSlave palette

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

Figure 44. New dialog from Add in Modbus Server Point Manager provides server point selection


New dialog from Add in Modbus Server Point Manager provides server point selection

Typically, this is the quickest way to add Modbus server 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 server Modbus proxy points:

Types of Modbus server proxy points

Modbus server proxy points represent “virtual” Modbus data items in the parent Modbus server device. You can select from the following Modbus proxy point types:

  • Boolean Writable

    To read/write a “virtual” Modbus coil or input.

    NoteGenerally, it is unwise to expose any coil as BooleanWritable if the Modbus master may also write to this same item—otherwise “write contention” issues may result.

  • Boolean Point

    To read a “virtual” Modbus coil that may be written by the Modbus master.

  • Numeric Writable

    To read/write a “virtual” Modbus holding register value or input register value.

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

    NoteGenerally, it is unwise to expose any holding register as NumericWritable if the Modbus master may also write to this same item—otherwise “write contention” issues may result.

  • Numeric Point

    To read a “virtual” Modbus holding register value that may be written by the Modbus master device. 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 “virtual” Modbus holding register or input register (select Bit Number in setup).

    Generally, it is unwise to expose any holding register as a RegisterBitWritable if the Modbus master may also write to this same item—otherwise “write contention” issues may result.

  • Register Bit Point

    To read a specific bit in a “virtual” Modbus holding register (select Bit Number in setup) that may be written by the Modbus master.

  • String Point

    To read some number of consecutive “virtual” Modbus holding registers that may be written by the Modbus master, 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.

Modbus server 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 due to setup error (not within a Modbus Register Range Entry of the parent server device) the Fault Cause includes the generated exception string. For example: “Read fault: Exception during read (com.tridium.modbusCore.ModbusException: DATA_NOT_AVAILABLE)”. 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 using 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 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.

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:

ModbusServerBooleanPoint

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

  • Status Type

    Coil or Input type to read, however Coil is the only valid selection (master cannot write to Modbus inputs). Selection necessary only if the “Data Address” format used is Hex or Decimal. (The Modbus address format, if used, automatically sets this property value).

ModbusServerBooleanWritable

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

  • Status Type

    Coil or Input. Specifies whether the point is read from/written to a coil status or input 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).

ModbusServerNumericPoint

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

  • Reg Type

    Holding or Input, however Holding is the only valid selection (master cannot write to Modbus input registers). Selection is necessary only 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).

ModbusServerNumericWritable

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

  • Reg Type

    Holding or Input, to specify whether the numeric value is read from/written to a holding register or input register.

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

ModbusServerRegisterBitPoint

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

  • Reg Type

    Holding or Input, however Holding is the only valid selection (master cannot write to Modbus input registers). 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).

ModbusServerRegisterBitWritable

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

  • Reg Type

    Holding or Input, to specify whether the boolean value is read from/written to a bit in either a holding register or input register.

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