Niagara AX Modbus Guide
Niagara AX Modbus Guide
Copyright Notice
The software described herein is furnished under a license agreement and may be used only in accordance with the terms of the
agreement.
This document may not, in whole or in part, be copied, photocopied, reproduced, translated, or reduced to any electronic medium
or machine-readable form without prior written consent from Tridium, Inc.
The confidential information contained in this document is provided solely for use by Tridium employees, licensees, and system
owners; and is not to be released to, or reproduced for, anyone else; neither is it to be used for reproduction of this Control System
or any of its components.
All rights to revise designs described herein are reserved. While every effort has been made to assure the accuracy of this document,
Tridium shall not be held responsible for damages, including consequential damages, arising from the application of the information
contained herein. Information and specifications published here are current as of the date of this publication and are subject to
change without notice.
The release and technology contained herein may be protected by one or more U.S. patents, foreign patents, or pending applications.
Trademark Notices
BACnet and ASHRAE are registered trademarks of American Society of Heating, Refrigerating and Air-Conditioning Engineers.
Microsoft and Windows are registered trademarks, and Windows NT, Windows 2000, Windows XP Professional, and Internet
Explorer are trademarks of Microsoft Corporation. Java and other Java-based names are trademarks of Sun Microsystems Inc. and
refer to Sun's family of Java-branded technologies. Mozilla and Firefox are trademarks of the Mozilla Foundation. Echelon, LON,
LonMark, LonTalk, and LonWorks are registered trademarks of Echelon Corporation. Tridium, JACE, Niagara Framework, Niaga-
raAX and Vykon are registered trademarks, and Workbench, WorkPlaceAX, and AXSupervisor, are trademarks of Tridium Inc. All
other product names and services mentioned in this publication that is known to be trademarks, registered trademarks, or service
marks are the property of their respective owners.The software described herein is furnished under a license agreement and may be
used only in accordance with the terms of the agreement.
CONTENTS
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
Modbus terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
Document Change Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
NiagaraAX-3.x
i
Modbus Guide
Chapter 0 –
March 15, 2007
NiagaraAX-3.x
0-ii
Modbus Guide
Chapter 0 –
March 15, 2007
modbusCore-ModbusServerPointManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5–2
modbusSlave Plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5–2
modbusSlave-ModbusSlaveDeviceManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5–2
modbusTcp Plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5–2
modbusTcp-ModbusTcpDeviceManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5–2
modbusTcp-ModbusTcpGatewayDeviceManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5–2
modbusTcpSlave Plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5–2
modbusTcpSlave-ModbusTcpSlaveDeviceManager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5–2
NiagaraAX-3.x
0-iii
Modbus Guide
Chapter 0 –
March 15, 2007
NiagaraAX-3.x
0-iv
Modbus Guide
PREFACE
Preface
• Modbus terms
• Document Change Log
Modbus terms
The following list of terms and abbreviations is specific to Modbus usage in NiagaraAX, and covers
entries used in this document. For general NiagaraAX terms, see the Glossary in the User Guide.
ASCII American Standard Code for Information Interchange (or in frequent context), Modbus ASCII.
One of two Modbus serial transmission modes, where two eight-bit bytes of information are sent as two
ASCII characters. Typically, most Modbus serial devices use the Modbus RTU protocol instead.
coils Discrete “On/Off” outputs in a Modbus slave that can be read and typically written by the Modbus
master. One of four different Modbus data groups. The term “coil” originated from the first PLC appli-
cations, in which outputs of a PLC were set by energizing coils of output relays. See “Modbus registers”
on page 3-2.
COV Change-of-Value.
CRC Cyclic Redundancy Check. An error checksum mechanism used in Modbus RTU.
exception code A numerical code (contained within an exception response) that explains why a suc-
cessful response to a query cannot be delivered. See “Exception codes” on page 3-10.
exception response A response sent by a Modbus slave when the query message (sent by the master)
cannot be successfully delivered, for some reason. See “Exception responses” on page 3-9.
function code One of numerous functions defined within the Modbus specification, of which a device
may implement. Each function has a numerical code. See “Modbus function codes” on page 3-7.
holding registers 16-bit (2-byte) data registers in a Modbus slave that hold values that can typically be
read and written by the Modbus master. Values may use different data types, such as integer, float, long,
and others. One of four different Modbus data groups. See “Modbus registers” on page 3-2.
hex For hexadecimal. The base-16 numerical format used to describe Modbus message transactions,
and sometimes used for Modbus data addressing.
inputs Relating to Modbus, refers to the discrete “On/Off” status of digital inputs for a Modbus slave.
Can be read (only) by the Modbus master. One of four different Modbus data groups. See “Modbus reg-
isters” on page 3-2.
input registers 16-bit (2-byte) data registers in a Modbus slave that hold read-only values. Values may
use different data types, such as integer, float, long, or others. One of four different Modbus data groups.
See “Modbus registers” on page 3-2.
query In general Modbus terms, a message sent from the Modbus master to a slave, to retrieve or write
a value in a data item. See “Modbus messages” on page 3-8.
register In general Modbus terms, an addressable 2-byte (16-bit) memory location in a Modbus slave
that can hold a data value. There are two main types of registers: input registers and holding registers.
response In general Modbus terms, a message reply from the Modbus slave sent to the master, typically
with a requested data value or other confirmation. See “Modbus registers” on page 3-2.
NiagaraAX-3.x
v
Modbus Guide
March 15, 2007
RTU Remote Terminal Unit, or simply Modbus RTU. One of two Modbus serial transmission modes,
where data is sent as two four-bit, hexadecimal characters. This provides higher throughput than using
the (older) Modbus ASCII protocol for the same serial baud rate.
status Specific to Modbus, status implies boolean (binary or On/Off) data, such as for Modbus data
types coils and inputs. As used in Niagara, status can also mean general “health” of an object or output,
such as “down,” “fault,” or “ok.”
TCP Transmission Control Protocol (or in frequent context) Modbus TCP. An open Modbus protocol
that facilitates Modbus message transfer using TCP/IP protocol and standard Ethernet networks.
NiagaraAX-3.x
vi
Modbus Guide
CHAPTER 1
Modbus Driver Installations
Currently, this section has only two subsections:
• Modbus license requirements
• Installing Modbus software
NiagaraAX-3.x
1–1
Modbus Guide
Installing Modbus software Chapter 1 – Modbus Driver Installations
March 15, 2007
NiagaraAX-3.x
1-2
Modbus Guide
CHAPTER 2
Modbus Quick Start
This section provides a collection of procedures to use the NiagaraAX Modbus drivers to build networks
of devices with proxy points and other components. Like other NiagaraAX drivers, you can do most
configuration from special “manager” views and property sheets using Workbench.
These are the main subsections:
• For any of the “client” (master) Modbus networks:
• “Configure the client Modbus network” on page 2-1
• “Add client Modbus devices” on page 2-3
• “Create Modbus client proxy points” on page 2-4
• “Add other client Modbus components” on page 2-5
• For either of the “server” (slave) Modbus networks:
• “Configure the slave Modbus network” on page 2-6
• “Add server (slave) Modbus devices” on page 2-8
• “Create Modbus server proxy points” on page 2-9
• “Add other server Modbus components” on page 2-9
Add a ModbusAsyncNetwork
Note: First see “Modbus Driver Installations” on page 1-1 for license and software requirements. For background
information, see “About Modbus Async networks” on page 4-1.
NiagaraAX-3.x
2–1
Modbus Guide
Configure the client Modbus network Chapter 2 – Modbus Quick Start
Add a ModbusTcpNetwork March 15, 2007
Add a ModbusTcpNetwork
Note: First see “Modbus Driver Installations” on page 1-1 for license and software requirements. For background
information, see “About Modbus TCP networks” on page 4-3.
Add a ModbusTcpGateway
Note: First see “Modbus Driver Installations” on page 1-1 for license and software requirements. For background
information, see “About Modbus TCP Gateway networks” on page 4-6.
NiagaraAX-3.x
2-2
Modbus Guide
Chapter 2 – Modbus Quick Start Add client Modbus devices
March 15, 2007 Review network-level Modbus client configuration
NiagaraAX-3.x
2-3
Modbus Guide
Create Modbus client proxy points Chapter 2 – Modbus Quick Start
Review network-level Modbus client configuration March 15, 2007
NiagaraAX-3.x
2-4
Modbus Guide
Chapter 2 – Modbus Quick Start Add other client Modbus components
March 15, 2007 Review network-level Modbus client configuration
NiagaraAX-3.x
2-5
Modbus Guide
Configure the slave Modbus network Chapter 2 – Modbus Quick Start
Add a ModbusSlaveNetwork March 15, 2007
Note: You do not have to copy the entire “Presets” folder from the palette—this is just the easiest way to add both
preset containers, each with a single preset entry child. You can locate preset containers anywhere under
the Modbus device. However, be aware if you copy these components under the Points container, they are
not visible in any Modbus Client Point Manager view.
Add a ModbusSlaveNetwork
Note: First see “Modbus Driver Installations” on page 1-1 for license and software requirements. For background
information, see “About Modbus Slave networks” on page 4-8.
NiagaraAX-3.x
2-6
Modbus Guide
Chapter 2 – Modbus Quick Start Configure the slave Modbus network
March 15, 2007 Add a ModbusTcpSlaveNetwork
Add a ModbusTcpSlaveNetwork
Note: First see “Modbus Driver Installations” on page 1-1 for license and software requirements. For background
information, see “About Modbus TCP Slave networks” on page 4-10.
NiagaraAX-3.x
2-7
Modbus Guide
Add server (slave) Modbus devices Chapter 2 – Modbus Quick Start
Review network-level Modbus server configuration March 15, 2007
NiagaraAX-3.x
2-8
Modbus Guide
Chapter 2 – Modbus Quick Start Create Modbus server proxy points
March 15, 2007 Review network-level Modbus server configuration
NiagaraAX-3.x
2-9
Modbus Guide
Add other server Modbus components Chapter 2 – Modbus Quick Start
Review network-level Modbus server configuration March 15, 2007
NiagaraAX-3.x
2-10
Modbus Guide
CHAPTER 3
Modbus Meets NiagaraAX
This section provides a quick look at Modbus. It is by no means a complete summary or overview. Only
key points necessary for successful NiagaraAX integrations are included. A good understanding of these
concepts will make integration easier.
The following main sections are included:
• Brief History
• Modbus key concepts
• Modbus registers
• Modbus data addresses
• Modbus data types
• Modbus function codes
• Modbus messages
• Exception responses
• Device-to-device differences
Note: Currently, the independent, member-based, non-profit organization Modbus-IDA provides a variety of
links to Modbus technical resources. Included are technical overviews, FAQs, and complete protocol
(standards) documents. For detailed Modbus information, refer to it at this URL: www.modbus.org
Brief History
Modbus is an open communications protocol originally developed in 1978 by Modicon Inc.1 for
networking industrial PLCs (programmable logic controllers). Since its introduction, it has gained
popularity with a number of control device vendors to transfer discrete/analog I/O and register data
between control devices.
Apart from PLCs, Modbus-capable devices now include many with both industrial and commercial
applications, such as electric-demand meters and lighting controllers, among many others. In addition,
Modicon has introduced another variant of the Modbus protocol, Modbus TCP, again as an open
protocol. Modbus TCP is becoming increasingly popular because it supports TCP/IP/Ethernet connec-
tivity.
Note: Modicon also developed a related protocol, Modbus Plus®, which is proprietary. Compared to Modbus and
Modbus TCP, the Modbus Plus protocol is not widely-used. Modbus Plus is currently not supported by any
NiagaraAX driver.
NiagaraAX-3.x
3–1
Modbus Guide
Modbus key concepts Chapter 3 – Modbus Meets NiagaraAX
Modbus registers March 15, 2007
Before reading about Modbus, please understand that any NiagaraAX Modbus integration uses Modbus
proxy points to provide monitoring and control, similar to other NiagaraAX integrations. Therefore,
many of the following Modbus topics mention items specific to NiagaraAX components, to help clarify
station configuration.
The following topics may contribute to a basic understanding of Modbus:
• Modbus registers
• Modbus data addresses
• Modbus data types
• Modbus function codes
• Modbus messages
• Exception responses
Modbus registers
A Modbus device holds transient (real-time) data and often persistent (configuration) data in addressable
registers. Here, the term “registers” implies all addressable data, but this is a loose interpretation. Using
Modbus nomenclature, all accessible data in a Modbus slave is contained in the following four available
groups of data flags and registers (including the Modbus-master access that is possible):
• Coil status
Or simply “coils”: single-bit flags that represent the status of digital (NiagaraAX: boolean) outputs
of the slave, that is, On/Off output status. A Modbus master can both read from and write to coils.
• Input status
Or simply “inputs”: single-bit flags that represent the status of digital (NiagaraAX: boolean) inputs
of the slave, that is, On/Off output status. A Modbus master can read (only) inputs.
• Input registers
Are 16-bit registers that store data collected from the field by the Modbus slave. The Modbus master
can read (only) input registers.
• Holding registers
Are 16-bit registers that store general-purpose data in the Modbus slave. The Modbus master can
both read from and write to input registers.
NiagaraAX-3.x
3-2
Modbus Guide
Chapter 3 – Modbus Meets NiagaraAX Modbus key concepts
March 15, 2007 Modbus data addresses
In the Table 3-1 example, each table row represents a 16-bit holding register. The holding register with
Modbus address 40011 (phase B power), can be alternately addressed as a holding register (with an
“implied 4nnnn value”) having a decimal address of “10” (“0010”), or a hex address of “A” (“000A”).
Note: Integer-stored data often requires additional math operations. NiagaraAX Modbus proxy points provide
this capability “built-in,” via the proxy extension’s Conversion slot. For example, selecting “Linear” in
Conversion provides entries for scale and offset, to process the raw Modbus value to a finished value.
Typically, the vendor ‘s documentation for a Modbus device includes any “scaling” values needed for any
such data items.
Consecutive addresses
Within any particular data group (coils, inputs, input registers, holding registers), it is typical for a
Modbus device to use consecutive addresses, particularly for related data. For example, in the Table 3-1
example, holding registers 40001-40015 are used consecutively for integer data, where each is a separate,
integer, “data point”.
In this example device, register 40259 begins a consecutive series of holding registers used to access
“floating point” data values—note, however, that an address “gap” exists in this case. The address gap
(while not necessary), was probably implemented by the device vendor for clarity. Note also that floating-
point data values (being 32-bit based) require the use of two consecutive registers for each data point.
See “Numerical data types” on page 3-6 for related information.
Consecutive address usage (general)
Modbus messaging supports device queries for data using both a starting address and range, which is
dependent on data items being consecutively addressed. This allows for message efficiency when
retrieving multiple data points, as it can be handled in one message response.
The address range for data in any data group (coils, inputs, input registers, holding registers) received in
a query must be implemented by the receiving device—otherwise, it will generate an exception response.
For example, a read request of holding registers 40003—40015 to the device represented by Table 3-1
receives a normal response (data values), while a similar request to registers 40003-40017 results in an
“illegal data address” response (as holding registers 40016 and 17 are not implemented). See Exception
Responses for more information.
NiagaraAX-3.x
3-3
Modbus Guide
Modbus key concepts Chapter 3 – Modbus Meets NiagaraAX
Modbus data addresses March 15, 2007
Figure 3-1 New dialog to create Modbus proxy points has “Number to Add” option for consecutive points
When you specify more than 1 point, additional points are automatically assigned consecutive ad-
dresses—relative to the “Starting Address” you specify for the first point.
• Data polling in a client device may be improved by using “device polls”, where data values in consec-
utively addressed items are requested in a single message, reducing network messaging traffic.
In NiagaraAX, this is configured in the device object (ModbusAsyncDevice, ModbusTcpDevice,
ModbusTcpGatewayDevice), in the device’s DevicePollConfigTable slot. See Figure 3-2 below for an
example.
Figure 3-2 Modbus client device’s DevicePollConfigTable container slot allows “device polling” setup
You can add child “DevicePollConfigEntry” objects manually in this container and configure, or op-
tionally use the container’s right-click action: “Learn Optimum Device Poll Config”. Note that de-
vice polling should be configured only after proxy points are created, and typically already receiving
values from (individual) point polling. For more details, see “Device Poll Config” on page 4-15.
NiagaraAX-3.x
3-4
Modbus Guide
Chapter 3 – Modbus Meets NiagaraAX Modbus key concepts
March 15, 2007 Modbus data addresses
Figure 3-3 Modbus address format recommended when adding proxy points
Also, for read-only client points, using the Modbus address format also frees you from setting the register
type property (“Reg Type”), as it automatically sets this property going by the leading numeral of the full
Modbus address (3 for input registers, and 4 for holding registers), as shown in Figure 3-4.
Note: When entering a Modbus formatted address for a coil, “leading zeros” are ignored—for example the
Modbus address “00109” is the same as entering Modbus “109”.
Again, note that unlike Decimal or Hex address formats (“zero-based formats”), the Modbus address
format is “one-based”, meaning that a coil addressed as Modbus 109 has a “Decimal address” of 108, and
a “Hex address” of 6D.
NiagaraAX-3.x
3-5
Modbus Guide
Modbus key concepts Chapter 3 – Modbus Meets NiagaraAX
Modbus data types March 15, 2007
1. Proxy points automatically allocate 2 consecutive registers for each data item whenever you specify a float or long
data type. Keep this in mind when specifying “number of points” within any range of Modbus registers.
NiagaraAX-3.x
3-6
Modbus Guide
Chapter 3 – Modbus Meets NiagaraAX Modbus key concepts
March 15, 2007 Modbus function codes
Note: If integrating a Modbus device that supports functions codes 15 or 16 (see Table 3-2), you can optionally
choose to use these function codes instead of codes 05 and 06 by setting the corresponding Modbus Config
properties (in the Modbus network and/or device objects) from “false” value defaults. See “Device-to-device
differences” on page 3-11 for related details.
NiagaraAX-3.x
3-7
Modbus Guide
Modbus key concepts Chapter 3 – Modbus Meets NiagaraAX
Modbus messages March 15, 2007
Modbus messages
Each communications transaction is initiated by the Modbus master, with a message known as a Query.
To any specifically addressed query, the master expects a Response back from the slave. A slave never
initiates a transaction (sends an unsolicited message). This query-response cycle is the basis for all
communications on a Modbus network. It is always the master that initiates the query, and the slave that
responds.
A “broadcast” message can also be sent by the Modbus master. In this one case, the master does not
require a response from any slave. A slave identifies a received broadcast message by the target address
of “device 0”. See the following subsections for more details:
• Message structures
• NiagaraAX debug example
Message structures
Each Modbus message has a defined structure, referencing device address, function code, and the data
address (or requested data). Message structures in a serial (async) network are as follows:
Query The master-generated query message contains, in order:
1. A device address of target slave (or “broadcast address”, for all slaves), as first byte.
2. A function code defining the requested action, as second byte.
3. A data field describing particulars for the function code. This may be a register address (and a
range) to read, or a coil address to write, for example.
4. An error-check field to confirm integrity of the message, as it will be received from the master. If the
slave detects an error in a query, it is ignored. The slave then waits for the next query addressed to it.
Response The slave-generated response message contains, in order:
1. Its device address, confirming to the master that it is replying to the query, as first byte.
2. The function code, as second byte—normally an exact copy, unless the slave is unable to perform
the requested function. In this case, the function code returned is a modified form, indicating that
the slave was unable to perform. See “Exception responses” on page 3-9 for more details.
3. The data, containing the data requested in the query.
4. An error-check field to confirm integrity of the message, as it will be received from the slave. If the
master detects an error in the response, it is ignored.
The error-checking method depends on the Modbus transmission mode—in Modbus RTU (the most
prevalent), a CRC (cyclical redundancy checksum) method is used.1
Example Modbus query and response message The following is an example query and response
message pair from a ModbusAsyncNetwork to a Modbus RTU (serial) device:
• Query
020300030004B43A
For device 02, function code 03, starting address 0003, number of registers 04, error checksum B43A
• Response
02030800510052003C003CA387
From device 02, function code 03, number bytes returned 08, data (00510052003C003C), error
checksum A387
1. The Modbus TCP protocol has a similar message format for query and response messages. However, Modbus TCP
is freed from error check routines. Instead, the error-checking mechanisms built into the lower-level TCP/IP and
link layers (that is, Ethernet) are used.
NiagaraAX-3.x
3-8
Modbus Guide
Chapter 3 – Modbus Meets NiagaraAX Modbus key concepts
March 15, 2007 Exception responses
Figure 3-5 Trace-level log output from (COMx) of a ModbusAsyncNetwork, as seen in Standard Output
Note that in the case of the ModbusTCPNetwork, trace-level output shows a similar query/response
message cycle from data polling, but with a slightly different format. There, a 6-byte leading TCP header
“000000000006” is seen in sent queries, and the checksum byte is omitted in both sent and response
messages.
Exception responses
If a Modbus slave receives a query message correctly (that is, it passes error checking), but then finds it
is unable to perform the required operation, it issues an Exception Response. This may happen, for
instance, if the request is to read a non-existent register or coil.
An exception response message is formatted differently than a normal response, as it contains an
exception code (instead of requested data). The format used is as follows:
Exception response format
A slave-generated response message contains, in order:
1. Its device address, confirming to the master that it is replying to the query.
2. The function code, modified from the originally-requested function code by adding 80 hex to it
(this signals the master to look for a following exception code, versus the originally-requested data).
3. The exception code number. Refers to the exception code sent by the slave, which indicates why it
was unable to deliver a normal response. See “Exception codes”.
4. An error-check field to confirm integrity of the message, as it will be received from the slave. If the
master detects an error in the response, it is ignored.
NiagaraAX-3.x
3-9
Modbus Guide
Modbus key concepts Chapter 3 – Modbus Meets NiagaraAX
Exception responses March 15, 2007
Exception codes
Table 3-3 lists standard Modbus exception codes (01-08) plus extended codes (09-13). NiagaraAX
Modbus proxy points that reflect an exception response assume a “fault” status, and have a “Fault Cause”
slot in the proxy extension that shows the name of the received exception code, as in the table below.
NiagaraAX-3.x
3-10
Modbus Guide
Chapter 3 – Modbus Meets NiagaraAX Device-to-device differences
March 15, 2007 Network-level settings
Device-to-device differences
Because Modbus does not specify which specific function codes are necessary in a device (much less the
data group types needed), devices from different vendors tend to greatly vary. In addition, the data format
of register-held data, as previously mentioned, is left up to the vendor. Quite commonly, different byte-
order storage schemes are used for storing 32-bit data types such as float and long (integer).
With this in mind, the client networks (ModbusAsyncNetwork, ModbusTCPNetwork, and ModbusTCP-
Gateway) provide four configuration properties, set at the network-level, that act as “global” Modbus
defaults for all devices on the associated network. If needed, any (or all) of these settings can be
overridden at the device-level (see “Device-level Modbus Config properties”). Properties are:
• Network-level settings
• Device-level Modbus Config properties
Network-level settings
The four properties, as they appear in a Modbus network include two for the “byte-order” that devices
use for sending or receiving 4-byte (32-bit) data values in Modbus messages. Separate settings are for
float (floating-point) and long (integer).
• Float Byte Order
Choices reflect two alternate methods, where numerals 0, 1, 2, and 3 represent the least significant
byte to most significant byte, as follows:
• Order3210 — Most significant byte first, or “big-endian”, it is the default.
• Order1032 — Bytes transmitted in a 1,0,3,2 order, or “little-endian”.
• Long Byte Order
Choices reflect two alternate methods, where numerals 0, 1, 2, and 3 represent the least significant
byte to most significant byte, as follows:
• Order3210 — Most significant byte first, or “big-endian”, it is the default.
• Order1032 — Bytes transmitted in a 1,0,3,2 order, or “little-endian”.
Note: Float or long values received in incorrect byte order may appear abnormally big, or not at all.
The other two properties depend on the Modbus function codes supported by child devices, which (if
available) provide alternative options in Modbus messaging for write actions:
• Use Preset Multiple Register
Function code 16 support (Preset Multiple Registers) is available in devices (true or false). The de-
fault is false, where function code “Preset Single Register” is used in place.
• Use Preset Multiple Coil
Function code 15 support (Preset Multiple Coils) is available in devices (true or false). The default is
false, where function code “Preset Single Coil” is used in place.
NiagaraAX-3.x
3-11
Modbus Guide
Device-to-device differences Chapter 3 – Modbus Meets NiagaraAX
Device-level Modbus Config properties March 15, 2007
NiagaraAX-3.x
3-12
Modbus Guide
CHAPTER 4
NiagaraAX Modbus Representation
There are four different types of Modbus drivers (and five network types). Three networks are client
types, where the station acts as a Modbus master device. The other two networks are slave or server
types, where the station exposes data as a Modbus server, and simply responds to Modbus queries.
All Modbus networks use the standard NiagaraAX network architecture. See “About Network archi-
tecture” in the NiagaraAX User Guide for more details. These are the different Modbus network types:
• Client types:
• Modbus Async — see About Modbus Async networks.
• Modbus Tcp — see About Modbus TCP networks.
• Modbus Tcp Gateway — see About Modbus TCP Gateway networks.
• Server types:
• Modbus Slave — see About Modbus Slave networks.
• Modbus Tcp Slave — see About Modbus TCP Slave networks.
Under the various Modbus networks, child Modbus device components and their children (proxy points
and other components) are similar and sometimes identical—especially among the client types, and also
among server types. Therefore, Modbus component information is arranged into two main sections:
• About Master (client) types
• About Slave (server) types
Figure 4-1 ModbusAsyncNetwork with JACE as master device, here on an RS-485 Modbus RTU network
Communications rates are typically at 9600 baud, and the network transmission mode (protocol) may be
either Modbus RTU or Modbus ASCII (either one is supported). If Modbus RTU over RS-485, up to 31
slave devices may be attached—or more, if repeaters are used. The address range for Modbus devices on
a serial network is from 1 to 247—however (as noted), networks are typically smaller. Depending on the
number of available COM ports, a JACE may support multiple Modbus Async networks.
NiagaraAX-3.x
4–1
Modbus Guide
About Modbus Async networks Chapter 4 – NiagaraAX Modbus Representation
Modbus Async Network configuration March 15, 2007
The station acts as Modbus master to all other Modbus devices on the attached COM port. Each child
device is represented by a ModbusAsyncDevice, and has a unique Modbus address (1 to 247), as well as
other Modbus config data and starting addresses for Modbus data items (coils, inputs, input registers,
holding registers). There are typically many child ModbusAsyncDevices.
Modbus Async Network configuration is straightforward, using the property sheet of the network object.
Note the ModbusAsyncNetwork has the standard collection of network components, such as for status,
health, monitor, tuning policies, and poll scheduler. For more details, see “Common network compo-
nents” in the NiagaraAX User Guide.
NiagaraAX-3.x
4-2
Modbus Guide
Chapter 4 – NiagaraAX Modbus Representation About Modbus TCP networks
March 15, 2007 Modbus Async Device Manager notes
Note this dialog allows you to add a sequentially-addressed range of multiple ModbusAsyncDevices, by
setting “Number to Add” more than 1, with the first device using the starting (Modbus) address. This
technique may be useful in cases where all devices in that range will have a different set of proxy points.
However, in cases where you have “like devices,” you might create a single ModbusAsyncDevice first,
configure its proxy points and other components as needed, and then duplicate it as many times as
needed. Then you can change the “Device Address” of each duplicate to a unique number, as needed.
When you click OK in the dialog shown in Figure 4-4, the next New dialog provides a number of
“standard” new device properties to enter (such as Name and Enabled), and others common to all client
Modbus devices (ModbusAsyncDevice, ModbusTcpDevice, ModbusTcpGatewayDevice). For more
details on these Modbus-related properties, see “About Modbus client devices” on page 4-12.
NiagaraAX-3.x
4-3
Modbus Guide
About Modbus TCP networks Chapter 4 – NiagaraAX Modbus Representation
Modbus Tcp Network configuration March 15, 2007
In addition to specifying the TCP software port used (typically 502), there are various global properties
on the network’s property sheet specific to Modbus, for example the default order for “float” and “long”
numeric data (overrideable within each child device).
As shown in Figure 4-6, each child device is represented by a ModbusTcpDevice, and has a unique IP
address, as well as other Modbus config data and starting addresses for Modbus data items (coils, inputs,
input registers, holding registers). There are typically many child ModbusTcpDevices.
Modbus Tcp Network configuration is straightforward, using the property sheet of the network object.
NiagaraAX-3.x
4-4
Modbus Guide
Chapter 4 – NiagaraAX Modbus Representation About Modbus TCP networks
March 15, 2007 Modbus Tcp Device Manager notes
Note the ModbusTcpNetwork has the standard collection of network components, such as for status,
health, monitor, tuning policies, and poll scheduler. For more details, see “Common network compo-
nents” in the NiagaraAX User Guide.
In addition, the following properties have special importance:
• “Global” Modbus device defaults, which (as needed) can be overridden in the Modbus Config (client
device level) slot of any child ModbusTcpDevice:
• Float Byte Order
Specifies the byte-order used to assemble or receive floating-point (32-bit) values in messages.
• Long Byte Order
Specifies the byte-order used to assemble or receive long integer (32-bit) values in messages.
• Use Force Multiple Coil
Specifies whether to use function code 15 (Force Multiple Coils) instead of function code 05
(Force Single Coil) when writing to coils. The default is false, where function code 05 (Force
Single Coil) is used.
• Use Preset Multiple Register
Specifies whether to use function code 16 (Preset Multiple Registers) instead of function code
06 (Preset Single Register) when writing to registers. The default is False, where function code
06 (Preset Single Register) is used.
Other ModbusTcpNetwork properties such as “Retry Count”, “Response Timeout”, and “Max Fails Until
Device Down” are typically left at defaults, unless particular reasons dictate change.
Double-click the ModbusTcpNetwork for the default Modbus Tcp Device Manager view, which
you can use to add new ModbusTcpDevice children. For general information, see “About the Device
Manager” in the NiagaraAX User Guide. See “Modbus Tcp Device Manager notes” for additional
details.
NiagaraAX-3.x
4-5
Modbus Guide
About Modbus TCP Gateway networks Chapter 4 – NiagaraAX Modbus Representation
Modbus Tcp Device Manager notes March 15, 2007
Note the initial dialog allows you to add a sequentially-addressed range of multiple ModbusTcpDevices,
by setting “Number to Add” more than 1, with the first device using the starting (Modbus) address. This
technique is probably more useful in a ModbusAsyncNetwork, where devices do not use IP addressing.
It is recommended you leave the “Device Address” at 1 for all ModbusTcpDevice objects, unless vendor’s
documentation for Modbus TCP devices state otherwise.
Note in cases where you have “like devices,” you might create a single ModbusTcpDevice first, configure
its proxy points and other components as needed, and then duplicate it as many times as needed. Then
you can change the “Ip Address” property of each duplicate to the IP address in use, as needed.
When you click OK in the initial dialog shown in Figure 4-8, the next New dialog provides a number of
“standard” new device properties to enter (such as Name and Enabled), and others common to all client
Modbus devices (ModbusAsyncDevice, ModbusTcpDevice, ModbusTcpGatewayDevice). For more
details on these Modbus-related properties, see “About Modbus client devices” on page 4-12.
Figure 4-9 ModbusTcpGateway models Modbus TCP/Serial gateway and serial Modbus devices
In addition to the IP address and TCP port used by the gateway, there are global properties on the
network’s property sheet specific to Modbus, for example the default order for “float” and “long” numeric
data (overrideable within each child device).
NiagaraAX-3.x
4-6
Modbus Guide
Chapter 4 – NiagaraAX Modbus Representation About Modbus TCP Gateway networks
March 15, 2007 Modbus Tcp Gateway configuration
The station acts as Modbus master to the serially-connected Modbus devices on the gateway’s far side.
Each child device is represented by a ModbusTcpGatewayDevice, and has a unique Modbus address (1
to 247), as well as other Modbus config data and starting addresses for Modbus data items (coils, inputs,
input registers, holding registers). There are typically many child ModbusTcpGatewayDevices.
Modbus Tcp Gateway configuration is straightforward, using the property sheet of the network object.
Note the ModbusTcpGateway has the standard collection of network components, such as for status,
health, monitor, tuning policies, and poll scheduler. For more details, see “Common network compo-
nents” in the NiagaraAX User Guide.
In addition, the following properties have special importance:
• “Global” Modbus device defaults, which (as needed) can be overridden in the Modbus Config (client
device level) slot of any child ModbusTcpGatewayDevice:
• Float Byte Order
Specifies the byte-order used to assemble or receive floating-point (32-bit) values in messages.
• Long Byte Order
Specifies the byte-order used to assemble or receive long integer (32-bit) values in messages.
• Use Force Multiple Coil
Specifies whether to use function code 15 (Force Multiple Coils) instead of function code 05
(Force Single Coil) when writing to coils. The default is false, where function code 05 (Force
Single Coil) is used.
• Use Preset Multiple Register
Specifies whether to use function code 16 (Preset Multiple Registers) instead of function code
06 (Preset Single Register) when writing to registers. The default is False, where function code
06 (Preset Single Register) is used.
• Ip Address
Specifies the IP address of the “TCP/Ethernet-side” of the Modbus TCP/serial gateway. Must be
unique from all other devices on the IP network. The default IP address is “###.###.###.###”,
meaning that no IP address is assigned. Initially this as a blank placeholder—enter the IP address
used to reach the TCP side of the Modbus gateway.
• Port
Specifies the TCP port used by Modbus message transactions. 502 is the “standard” Modbus TCP
port. Leave at the default (502) unless the “TCP/Ethernet-side” of the Modbus TCP/serial gateway
uses another TCP port.
Other ModbusTcpGateway properties such as “Retry Count”, “Response Timeout”, and “Max Fails Until
Device Down” are typically left at defaults, unless particular reasons dictate change.
NiagaraAX-3.x
4-7
Modbus Guide
About Modbus Slave networks Chapter 4 – NiagaraAX Modbus Representation
Modbus Tcp Gateway Device Manager notes March 15, 2007
Double-click the ModbusTcpGateway for the default Modbus Tcp Gateway Device Manager
view, which you can use to add new ModbusTcpGatewayDevice children. For general information, see
“About the Device Manager” in the NiagaraAX User Guide. See “Modbus Tcp Gateway Device Manager
notes” for additional details.
Note this dialog allows you to add a sequentially-addressed range of multiple ModbusTcpGatewayDe-
vices, by setting “Number to Add” more than 1, with the first device using the starting (Modbus) address.
This may be useful in cases where all devices in that range will have a different set of proxy points.
However, in cases where you have “like devices,” you might create a single ModbusTcpGatewayDevice
first, configure its proxy points and other components as needed, and then duplicate it as many times as
needed. Then you can change the “Device Address” of each duplicate to a unique number, as needed.
When you click OK in the dialog shown in Figure 4-12, the next New dialog provides a number of
“standard” new device properties to enter (such as Name and Enabled), and others common to all client
Modbus devices (ModbusAsyncDevice, ModbusTcpDevice, ModbusTcpGatewayDevice). For more
details on these Modbus-related properties, see “About Modbus client devices” on page 4-12.
Figure 4-13 ModbusSlaveNetwork with JACE as slave, here on an RS-485 Modbus RTU network
The station acts as a Modbus slave (server) to queries received from a serially-connected Modbus master
device. In each uniquely-addressed ModbusSlaveDevice, you specify the ranges for available Modbus
data items (coils, inputs, input registers, holding registers). In some cases, only a single child Modbus-
SlaveDevice may exist to represent the station.
Modbus Slave Network configuration is straightforward, using the property sheet of the network object.
NiagaraAX-3.x
4-8
Modbus Guide
Chapter 4 – NiagaraAX Modbus Representation About Modbus Slave networks
March 15, 2007 Modbus Slave Device Manager notes
Note the ModbusSlaveNetwork has the standard collection of network components, such as for status,
health, monitor, tuning policies, and poll scheduler. For more details, see “Common network compo-
nents” in the NiagaraAX User Guide.
In addition, the following properties have special importance:
• “Global” Modbus device defaults, which (as needed) can be overridden in the Modbus Config (client
device level) slot of any child ModbusSlaveDevice:
• Float Byte Order
Specifies the byte-order used to assemble or receive floating-point (32-bit) values in messages.
• Long Byte Order
Specifies the byte-order used to assemble or receive long integer (32-bit) values in messages.
Note: By default Niagara supports Modbus function codes 15 and 16 (Force Multiple Coils, Preset
Multiple Registers), so you do not see these selections like you do in a client Modbus network.
• Serial Port Config
The container slot in which you specify the serial port/communications setup required to talk to at-
tached serial Modbus master.
• Modbus Data Mode
As either Rtu (the default) or Ascii, depending on the type of networked Modbus master.
The other ModbusSlaveNetwork property “Sniffer Mode” is typically left at default, unless particular
reasons dictate change.
Double-click the ModbusSlaveNetwork for the default Modbus Slave Device Manager view,
which you can use to add one or more ModbusSlaveDevice children. For general information, see “About
the Device Manager” in the NiagaraAX User Guide. See “Modbus Slave Device Manager notes” for
additional details.
NiagaraAX-3.x
4-9
Modbus Guide
About Modbus TCP Slave networks Chapter 4 – NiagaraAX Modbus Representation
Modbus Tcp Slave Network configuration March 15, 2007
Note this dialog allows you to add a sequentially-addressed range of multiple ModbusSlaveDevices, by
setting “Number to Add” more than 1, with the first device using the starting (Modbus) address. This
technique may be useful in cases where you wish the station to appear as “multiple physical Modbus
devices” (each with a different set of proxy points).
Or, you may wish to have the station appear simply as a single device, in which case you add only one
ModbusSlaveDevice. Note that you can specify many ranges of Modbus data items (coils, inputs, input
registers, holding registers) in any or all ModbusSlaveDevice components.
When you click OK in the dialog shown in Figure 4-15, the next New dialog provides a few “standard” new
device properties to enter (such as Name and Enabled), and others common to all server Modbus devices
(ModbusSlaveDevice, ModbusTcpSlaveDevice). For more details on these Modbus-related properties,
see “About Modbus client devices” on page 4-12.
The station acts as a Modbus slave (server) to queries received from a Modbus TCP master device. Each
uniquely-addressed child device is represented by a ModbusTcpSlaveDevice, in which you specify ranges
for available Modbus data items (coils, inputs, input registers, holding registers). In some cases, only a
single child ModbusTcpSlaveDevice may exist to represent the station.
NiagaraAX-3.x
4-10
Modbus Guide
Chapter 4 – NiagaraAX Modbus Representation About Modbus TCP Slave networks
March 15, 2007 Modbus Tcp Slave Device Manager notes
Note the ModbusTcpSlaveNetwork has the standard collection of network components, such as for
status, health, monitor, tuning policies, and poll scheduler. For more details, see “Common network
components” in the NiagaraAX User Guide.
In addition, the following properties have special importance:
• “Global” Modbus device defaults, which (as needed) can be overridden in the Modbus Config (server
device level) slot of any child ModbusSlaveDevice:
• Float Byte Order
Specifies the byte-order used to assemble or receive floating-point (32-bit) values in messages.
• Long Byte Order
Specifies the byte-order used to assemble or receive long integer (32-bit) values in messages.
Note: By default Niagara supports Modbus function codes 15 and 16 (Force Multiple Coils, Preset
Multiple Registers), so you do not see these selections like you do in a client Modbus network.
• Port
Specifies the TCP port used by Modbus message transactions. 502 is the “standard” Modbus TCP
port. Leave at the default (502) unless the Modbus TCP master uses another TCP port.
• Socket Timeout In Millis
Default is 30000 (milliseconds, or 30 seconds—the minimum). You can adjust upwards if necessary.
• Maximum Connections
Default is 5. You can adjust from 1 to 100 as needed.
Double-click the ModbusTcpSlaveNetwork for the default Modbus Tcp Slave Device Manager
view, which you can use to add one or more ModbusTcpSlaveDevice children. For general information,
see “About the Device Manager” in the NiagaraAX User Guide. See “Modbus Tcp Slave Device Manager
notes” for additional details.
Note this dialog allows you to add a sequentially-addressed range of multiple ModbusTcpSlaveDevices,
by setting “Number to Add” more than 1, with the first device using the starting (Modbus) address. This
technique may be useful in cases where you wish the station to appear as “multiple physical Modbus TCP
devices” (each with a different set of proxy points)—however, note all devices are reached only through
the station’s (same) host IP address.
NiagaraAX-3.x
4-11
Modbus Guide
About Master (client) types Chapter 4 – NiagaraAX Modbus Representation
About Modbus client devices March 15, 2007
More typically, you may wish to have the station appear simply as a single device, in which case you add
only one ModbusTcpSlaveDevice. Note that you can specify many ranges of Modbus data items (coils,
inputs, input registers, holding registers) in any or all ModbusTcpSlaveDevice components.
When you click OK in the dialog shown in Figure 4-18, the next New dialog provides a few “standard” new
device properties to enter (such as Name and Enabled), and others common to all server Modbus devices
(ModbusSlaveDevice, ModbusTcpSlaveDevice). For more details on these Modbus-related properties,
see “About Modbus server devices” on page 4-24.
NiagaraAX-3.x
4-12
Modbus Guide
Chapter 4 – NiagaraAX Modbus Representation About Master (client) types
March 15, 2007 About Modbus client devices
Figure 4-19 Modbus Config properties in New/Edit dialog when working in network’s device manager view
These properties allow you to “override” the network-level (global) Modbus Config equivalent settings
for handling Modbus data from and to this device, and are described as follows:
• Override Network
The default, false, means the network-level settings are used. Set this to true whenever you want the
settings below to be used instead of the equivalent network-level values.
• Float Byte Order
Specifies the byte-order used to assemble or receive floating-point (32-bit) values in messages.
• Long Byte Order
Specifies the byte-order used to assemble or receive long integer (32-bit) values in messages.
• Use Force Multiple Coil
Specifies whether to use function code 15 (Force Multiple Coils) instead of function code 05 (Force
Single Coil) when writing to coils. The default is false, where function code 05 (Force Single Coil) is
used.
• Use Preset Multiple Register
Specifies whether to use function code 16 (Preset Multiple Registers) instead of function code 06
(Preset Single Register) when writing to registers. The default is False, where function code 06 (Pre-
set Single Register) is used.
In many cases you might leave these properties at defaults, particularly if different devices used the same
settings—in which case you could adjust them (globally) at the network level.
Ping Address properties
Each Modbus client device has a “Ping Address” container slot with 3 properties—you can access them
on the device’s property sheet, as well as the New or Edit dialog for a device object when in the device
manager view (of its parent network). Figure 4-20 shows ping properties in the New dialog for a device.
Figure 4-20 Ping Address properties in New/Edit dialog when working in network’s device manager view
These properties specify a particular data address (either input register or holding register) to use as the
device status test (meaning “Monitor” ping requests). Ping requests are generated at the network-level by
the configurable network monitor. See “About Monitor” in the NiagaraAX User Guide for more details.
NiagaraAX-3.x
4-13
Modbus Guide
About Master (client) types Chapter 4 – NiagaraAX Modbus Representation
About Modbus client devices March 15, 2007
When enabled, a network’s monitor periodically pings (queries) this address. While receiving any
response from the device, including an exception response, this is considered proof of communication,
and the Modbus client device is no longer considered “down” if it had been previously marked “down”.
The device ping address properties are:
• Ping Address
• Address Format — either Hex (default), Decimal, or Modbus
• Address — numerical address, expressed in the selected format (0 is default).
See “Modbus data addresses” on page 3-2 for general information.
• Ping Address Data Type
To specify one of the four numeric data types, either Integer (the default), Long, Float, or Signed In-
teger type. See “Numerical data types” on page 3-6 for general information
• Ping Address Reg Type
To specify either a Holding register (the default) or an Input register
Note: Default device ping address values (first holding register) typically “work,” as even an exception response
from the device is considered OK for device status. While this is considered proof of communications, it is
recommended to configure the ping address to a known data address and type according to the device’s
documentation, to ensure device status monitoring without an exception response.
Base Address properties
Each Modbus client device has four container slots for setting a “base address” on each of the four data
item types (coils, inputs, holding registers, input registers), as follows:
• Input Register Base Address
• Holding Register Base Address
• Coil Status Base Address
• Input Status Base Address
Access these slots on the property sheet of the client Modbus device, as shown in Figure 4-21.
These properties specify an “address offset” that is added to any child proxy point using a data address
for that data item type. Base addressing of coils and holding registers also affects addressing of “Preset”
components (see “About Modbus preset components” on page 4-20).
Each base address container slot has two properties:
• Address Format — either Hex (default), Decimal, or Modbus (do not select Modbus, see Note).
• Address — numerical address, expressed in the selected format (0 is default).
For example, if a device’s Holding Register Base Address is set to “Decimal, 100”, any child Modbus proxy
point using a holding register “Data Address” of “Decimal, 13” is effectively addressed as “Decimal, 113”
(Absolute Address). See “Modbus client point ProxyExt properties” on page 4-18 for related details.
Typically, all Base Address properties of a device are left at default (hex: 0). However, you can use them
as an engineering method (along with multiple device objects) if a Modbus device has data partitioned
into multiple areas with repeating address patterns. This way, the same device (and child proxy points)
can be replicated, and the only address changes made in the “Base Address” offsets.
Note: If entering Base Addresses in a device, Modbus formatted data addresses cannot be used (select Hex or
Decimal)—and this also applies to Data Address properties of child proxy points.
NiagaraAX-3.x
4-14
Modbus Guide
Chapter 4 – NiagaraAX Modbus Representation About Master (client) types
March 15, 2007 About Modbus client devices
By default (initially) the Device Poll Config container is empty, but it can hold one or more “Device Poll
Config Entry” children, which configure and enable device polling. A device poll permits a single
NiagaraAX Modbus query message to retrieve a number of consecutive data values. Device-level polling
may help overall polling efficiency by reducing the number of polls necessary at the point-level.
Note: In a few cases, a device-level poll has actually proven counterproductive, at least for improving polling
efficiency. It was determined that the target Modbus device was taking more time to assemble a long data
response than it did to handle a number of separate responses (no device poll—point-level polling only) for
the equivalent data. While not typical, you should be aware that Modbus devices vary in performance.
Configuring Device Poll Config Based upon the existing child Modbus proxy points, you can configure
“device-level” polls (Device Poll Config) using either of these two methods:
• Automatically, using the right-click “Learn Optimum Device Poll Config” action on the Device Poll
Config container (Figure 4-23). This creates one or more Device Poll Config Entry components, al-
ready configured to produce the needed device polls to query consecutively addressed data items.
Note: The station must be running to use this method (offline station usage not supported).
• Manually, by editing properties in any existing Device Poll Config Entry, and duplicating/re-editing
it (or by coping entries from the modbusAsync or modbusTcp palette and editing as necessary).
Figure 4-23 Action “Learn Optimum Device Poll Config” dynamically adds/configures child components
Typically, you choose the automatic (action) method—note it lets you replace existing device poll entries
(start over), or append to the existing device polls. The Device Poll Config container also has a separate
“Clear” action you can use to remove all existing Device Poll Config Entry children.
Note: For best results, it is recommended that you first create all needed proxy points under a device, before
configuring for device polling.
When executing the learn action, its algorithm looks for any consecutively addressed Modbus proxy points,
and creates a DevicePollConfigEntry if it finds two or more consecutively addressed points. If you have
small gaps between consecutively addressed Modbus proxy points, you may want to manually adjust the
created DevicePollConfigEntries to poll over the small gaps. Remember you can always create, configure,
and remove DevicePollConfigEntries until you find the most efficient device-polling scheme.
NiagaraAX-3.x
4-15
Modbus Guide
About Master (client) types Chapter 4 – NiagaraAX Modbus Representation
Modbus Client Point Manager notes March 15, 2007
Device Poll Config Entry Figure 4-24 shows a Device Poll Config Entry child expanded, and its
properties that were populated from the learn action on the device’s Device Poll Config slot.
Figure 4-24 Expanded Device Poll Config Entry, representing one device poll message
Figure 4-25 Modbus Client Point Manager view is default view for Points under client Modbus device
This view is also the default for any “points folder” created with the New Folder button, and operates
like most point manager views for NiagaraAX drivers—see the section “About the Point Manager” in the
User Guide for general details. Note that due to the simplicity of the Modbus protocol, there is no
“Discover, Add, and Match” (Learn process). Instead you make proxy points using the New button, after
studying the vendor’s documentation for Modbus data in each Modbus device. See “About Modbus client
proxy points” on page 4-17 for more details.
NiagaraAX-3.x
4-16
Modbus Guide
Chapter 4 – NiagaraAX Modbus Representation About Master (client) types
March 15, 2007 About Modbus client proxy points
By default, only a few of the available columns in the Modbus Client Point Manager are enabled for
display, notably “Name,” “Out” and “Absolute Address.” However, you may wish to change this by clicking
on the Table Options menu in the table’s upper right, as shown in Figure 4-26.
Figure 4-26 Table Options menu allows you to select additional and/or different data columns
For example, during the configuration process you may wish to see “Fault Cause” and “Data Source.”
Figure 4-27 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 4-28.
NiagaraAX-3.x
4-17
Modbus Guide
About Master (client) types Chapter 4 – NiagaraAX Modbus Representation
About Modbus client proxy points March 15, 2007
Figure 4-28 New dialog from Add in Modbus Client Point Manager provides client point selection
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)” on page 3-4.
The following sections provide additional details on client Modbus proxy points:
• Types of Modbus client proxy points
• Modbus client point ProxyExt properties
Types of Modbus client proxy points
You can select from the following Modbus client proxy point types:
• BooleanWritable
To read/write a Modbus coil.
• BooleanPoint
To read either a Modbus coil or an input.
• NumericWritable
To read/write a Modbus holding register value.
Note you must specify the Data Type, as either integer, long, float, or signed integer.
• NumericPoint
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.
• RegisterBitWritable
To read/write a specific bit in a Modbus holding register (select Bit Number in setup).
• RegisterBitPoint
To read a specific bit in either a Modbus holding register or an input register (select Bit Number in
setup).
• StringPoint
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.
Modbus client point ProxyExt properties
Apart from the standard “core” proxy extension properties (see “ProxyExt properties” in the NiagaraAX
User 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 “Excep-
tion codes” on page 3-10 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” on page 3-2 for general information.
For example, the following are all equivalent addresses:
• Modbus, 40012
• Hex, 0B
• Decimal, 11
NiagaraAX-3.x
4-18
Modbus Guide
Chapter 4 – NiagaraAX Modbus Representation About Master (client) types
March 15, 2007 About Modbus client proxy points
Note: If 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” on page 3-5.
• 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 Ab-
solute Address is not contained within the range of addresses specified in a Device Poll Config En-
try—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
• ModbusClientBooleanWritable
• ModbusClientNumericPoint
• ModbusClientNumericWritable
• ModbusClientRegisterBitPoint
• ModbusClientRegisterBitWritable
• ModbusClientStringPoint
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. Se-
lections only apply if the “Data Address” format used is Hex or Decimal. (The Modbus address for-
mat, 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 Ad-
dress”). 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 Ad-
dress”). Values for long and float selections are based upon the network's byte-order config setup (or
may be overridden at the device-level).
NiagaraAX-3.x
4-19
Modbus Guide
About Master (client) types Chapter 4 – NiagaraAX Modbus Representation
About Modbus preset components March 15, 2007
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. Selec-
tions 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) Mod-
bus 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 Num-
ber” 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.
NiagaraAX-3.x
4-20
Modbus Guide
Chapter 4 – NiagaraAX Modbus Representation About Master (client) types
March 15, 2007 About Modbus preset components
As needed, copy one or more of the following preset container components anywhere under a client
Modbus device (ModbusAsyncDevice, ModbusTcpDevice, ModbusTcpGatewayDevice):
• Modbus Client Preset Coils
By default, this contains a single ModbusClientPresetCoil to write to one coil—you can add addi-
tional (consecutive) coils using a built-in action (see “Adding client presets”).
• Modbus Client Preset Registers
By default, this contains a single ModbusClientPresetRegister to write to one holding register—you
can add additional (consecutive) registers using a built-in action (see “Adding client presets”).
Note: Preset components are not proxy points—you do not see them in any Modbus Client Point Manager view
if you copy them under a client device’s Points extension. Therefore, it is recommended you locate them
elsewhere under the device. Note also that you can simply copy the entire “Presets” folder from the palette
if you want presets for both coils and holding registers, and then rename/edit as needed. Or, copy and paste
already configured presets from another client Modbus device, if appropriate.
Modbus Client Preset Coils
One of two types of container Modbus preset components, the ModbusClientPresetCoils component
contains one or more preset coil values (ModbusClientPresetCoil components). In this container, you
specify a “Starting Address” for the first (topmost) child preset coil value. Any additional child preset coil
values are sequentially addressed relative to this (slot order). Note the “Absolute Address” is always used
for actual addressing, which is typically the same as “Starting Address,” unless coils in the parent Modbus
device are designated with a base address—see “Base Address properties” on page 4-14.
Figure 4-30 Starting Address in Modbus Client Preset Coils is for first child preset coil
In this preset container you also specify whether individual child preset coil values are written to the
Modbus slave upon any change, or only collectively when the “Write” action of the ModbusClientPreset-
Coils container is invoked.
Properties of the ModbusClientPresetCoils container slot are as follows:
• Starting Address
Specifies the address of the first coil to write (prior to any offset address change as a result of using
device-level “Base Address”), as a combination of:
• Address Format — either Hex (default), Decimal, or Modbus
Note if Modbus format, the leading “0s” are dropped for coil addresses, and the first coil is “1”.
• Address — numerical address, expressed in the selected format.
See “Modbus data addresses” on page 3-2 for general information.
• Absolute Starting 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 writing the first coil’s preset value.
• Status
(Read only) Displays the status of the container slot—will be fault if a previous write to a child preset
coil failed for some reason.
• Write On Input Change
Either false (default) or true. If set to true, any change to the boolean “value” of a child preset coil is
NiagaraAX-3.x
4-21
Modbus Guide
About Master (client) types Chapter 4 – NiagaraAX Modbus Representation
About Modbus preset components March 15, 2007
immediately written to the target coil, in addition to the collective preset coil writes from invoking
the “Write” action of the container. If false, preset coil writes occur only from the “Write” action.
Actions for Modbus Client Preset Coils Two right-click actions on a Modbus Client Preset Coils
container are as follows:
• Write
To write all the preset coil values currently in child ModbusClientPresetCoil components.
• Add Preset Coil Value
To add an additional child ModbusClientPresetCoil component, specifying its boolean value in the
popup dialog. The component is added to the end of the existing slot order.
Modbus Client Preset Registers
One of two types of container Modbus preset components, the ModbusClientPresetRegisters component
contains one or more preset holding register values (ModbusClientPresetRegister components). In this
container, you specify a “Starting Address” for the first (topmost) child preset register value. Any
additional child preset register values are sequentially addressed relative to this (slot order). Note the
“Absolute Address” is always used for actual addressing, which is typically the same as “Starting Address,”
unless holding registers in the parent Modbus device are designated with a base address—see “Base
Address properties” on page 4-14.
Figure 4-31 Starting Address in Modbus Client Preset Registers is for first child preset register
In this preset container you also specify the numerical data type for all child preset registers, and whether
individual child preset register values are written to the Modbus slave upon any change, or only collec-
tively when the “Write” action of the ModbusClientPresetRegisters container is invoked.
Properties of the ModbusClientPresetRegisters container slot are as follows:
• Starting Address
Specifies the address of the first holding register to write (prior to any offset address change as a re-
sult of using device-level “Base Address”), as a combination of:
• Address Format — either Hex (default), Decimal, or Modbus
• Address — numerical address, expressed in the selected format.
See “Modbus data addresses” on page 3-2 for general information.
• Absolute Starting 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 writing the first register’s preset value.
• Status
(Read only) Displays the status of the container slot—will be fault if a previous write to a child preset
register failed for some reason.
• Write On Input Change
Either false (default) or true. If set to true, any change to the numeric “value” of a child preset register
is immediately written to the target register, in addition to the collective preset register writes from
invoking the “Write” action of the container. If false, preset register writes occur only from the
“Write” action.
• Data type
Either Integer (default), Long, Float, or Signed Integer type. Specify to match the data type of the
holding registers in the target Modbus device. Note all child preset registers must use this data type.
NiagaraAX-3.x
4-22
Modbus Guide
Chapter 4 – NiagaraAX Modbus Representation About Master (client) types
March 15, 2007 About Modbus (client) file records
Actions for Modbus Client Preset Registers Two right-click actions on a Modbus Client Preset
Registers container are as follows:
• Write
To write all the preset register values currently in child ModbusClientPresetCoil components.
• Add Preset Register Value
To add an additional child ModbusClientPresetRegister component, specifying its numerical value
in the popup dialog. The component is added to the end of the existing slot order.
Adding client presets
For any preset container (Modbus Client Preset Coils, Modbus Client Preset Registers) you can add
additional (consecutively addressed) child preset components using either of these two methods:
• Use the right-click “Add Preset Coil Value” or “Add Preset Register Value” action on either preset
container type (Figure 4-32). This provides a dialog in which you specify another preset component,
added under that preset type container.
• Manually, by duplicating/re-editing preset components (or by coping entries from the mod-
busAsync or modbusTcp palette and editing with a value as necessary).
Figure 4-32 Action “Add Preset Register Value” to create an additional consecutive register with preset value
By default, added client preset components are appended to the bottom of the slot order. If needed, you
can right-click on a preset container and select “Reorder” to change the address order of the child presets,
relative to the absolute address in the preset container.
Note: If using multiple preset containers under a client Modbus device, be careful not to “overlap” preset
addresses. In other words, any specific preset address should be in only one preset container.
NiagaraAX-3.x
4-23
Modbus Guide
About Slave (server) types Chapter 4 – NiagaraAX Modbus Representation
About Modbus server devices March 15, 2007
Figure 4-33 Modbus Config properties in New/Edit dialog when working in network’s device manager view
These properties allow you to “override” the network-level (global) equivalent settings for handling
Modbus data from and to this virtual device, and are described as follows:
• Override Network
The default, false, means the network-level settings are used. Set this to true whenever you want the
settings below to be used instead of the equivalent network-level values.
• Float Byte Order
Specifies the byte-order used to assemble or receive floating-point (32-bit) values in messages.
• Long Byte Order
Specifies the byte-order used to assemble or receive long integer (32-bit) values in messages.
NiagaraAX-3.x
4-24
Modbus Guide
Chapter 4 – NiagaraAX Modbus Representation About Slave (server) types
March 15, 2007 About Modbus server devices
Typically you leave these properties at defaults, particularly if only one Modbus server device—in which
case you could adjust them (globally) at the network level.
Note: As a Modbus slave (server), by default Niagara supports Modbus function codes 15 and 16 (Force Multiple
Coils, Preset Multiple Registers), so you do not see these selections like you do in a client Modbus device.
Modbus Register Range Tables
Each Modbus server device has four frozen container slots for setting “valid address ranges” for each of
the four “virtual” data item types (coils, inputs, holding registers, input registers), as follows:
• Valid Coils Range
• Valid Status Range
• Valid Holding Registers Range
• Valid Input Registers Range
Queries received by the device must be for data items within the defined (and enabled) valid address
ranges. Otherwise the station generates/sends an exception response back. In addition, server Modbus
proxy points under the device must be configured to fall within these address ranges, or else they will
have a fault status.
You can see these range components under the device when expanded in the Nav tree, as well as in the
device’s property sheet, as shown in Figure 4-34.
By default, as copied from the modbusSlave or modbusTcpSlave palette, a Modbus server device has a
single “Default”-named Register Range Entry in each valid range container, with each having an enabled
range of from 1 to 64, as shown in Figure 4-34 for “Valid Coils Range.” The same default applies to the
“Valid Holding Registers Range,” and so on.
As needed, for any data item range you can edit property values, add additional valid range entries, or
perhaps disable ranges. For example, you could disable the “Valid Status Range” entry, so that any
Modbus master queries to this device to read discrete status (inputs) would yield an exception response.
As another example, you could add multiple ranges for holding registers.
Configuring Valid Register Ranges You add additional register ranges using either of these two
methods:
• Use the right-click “Add Range” action on any Modbus Register Range type (Figure 4-35). This pro-
vides a dialog in which you specify another Modbus Register Range Entry component, added under
that range type container.
• Manually, by duplicating/re-editing Register Range Entry components (or by coping entries from
the modbusSlave or modbusTcpSlave palette and editing as necessary).
NiagaraAX-3.x
4-25
Modbus Guide
About Slave (server) types Chapter 4 – NiagaraAX Modbus Representation
About Modbus server devices March 15, 2007
Figure 4-35 Action “Add Range” to create additional server register range entries
Each Modbus Register Range Table container also has a separate “Clear” action you can use to remove all
existing Modbus Register Range Entry children.
Modbus Register Range Entry Figure 4-36 shows a Modbus Register Range Entry child of one of the
Modbus Register Range Tables expanded, and its properties that were specified.
Figure 4-36 Expanded Modbus Register Range Entry in Modbus server device
NiagaraAX-3.x
4-26
Modbus Guide
Chapter 4 – NiagaraAX Modbus Representation About Slave (server) types
March 15, 2007 About Modbus server proxy points
Figure 4-37 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 4-38.
Figure 4-38 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)” on page 3-4.
The following sections provide additional details on server Modbus proxy points:
• Types of Modbus server proxy points
• Modbus server point ProxyExt properties
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:
• BooleanWritable
To read/write a “virtual” Modbus coil or input.
Note: Generally, 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.
• BooleanPoint
To read a “virtual” Modbus coil that may be written by the Modbus master.
• NumericWritable
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.
Note: Generally, 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.
• NumericPoint
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.
• RegisterBitWritable
To read/write a specific bit in a “virtual” Modbus holding register or input register (select Bit Num-
NiagaraAX-3.x
4-27
Modbus Guide
About Slave (server) types Chapter 4 – NiagaraAX Modbus Representation
About Modbus server proxy points March 15, 2007
ber 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.
• RegisterBitPoint
To read a specific bit in a “virtual” Modbus holding register (select Bit Number in setup) that may be
written by the Modbus master.
• StringPoint
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 NiagaraAX
User 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” on page 3-10 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” on page 3-2 for general information.
For example, the following are all equivalent addresses:
• Modbus, 40012
• Hex, 0B
• Decimal, 11
Note: If 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” on page 3-5.
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
• ModbusServerBooleanWritable
• ModbusServerNumericPoint
• ModbusServerNumericWritable
• ModbusServerRegisterBitPoint
• ModbusServerRegisterBitWritable
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 for-
mat, 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
NiagaraAX-3.x
4-28
Modbus Guide
Chapter 4 – NiagaraAX Modbus Representation About Slave (server) types
March 15, 2007 About Modbus (server) file records
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 Ad-
dress”). 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 Ad-
dress”). 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) Mod-
bus 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 hold-
ing 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 Num-
ber” to 3 and writing a True (“1”) would cause the specified register value to become
“0000000000001000”.
NiagaraAX-3.x
4-29
Modbus Guide
About Slave (server) types Chapter 4 – NiagaraAX Modbus Representation
About Modbus (server) file records March 15, 2007
NiagaraAX-3.x
4-30
Modbus Guide
CHAPTER 5
Modbus Plugin Guides
There are many ways to view plugins (views). One way is directly in the tree. In addition, you can right-
click on an item and select one of its views. Plugins provide views of components. You can access
documentation on a Plugin by selecting Help > On View (F1) from the menu, or by pressing F1 while
the Plugin is selected.
These Plugin Guides provide summary information on Modbus views, listed alphabetically by module.
modbusAsync plugins
The following views apply to the Modbus Async driver:
• ModbusAsyncDeviceManager
modbusAsync-ModbusAsyncDeviceManager
Use the ModbusAsyncDeviceManager to create, edit, and view Modbus Async Devices. The
ModbusAsyncDeviceManager is a view on the ModbusAsyncNetwork. To view, double-click the
ModbusAsyncNetwork, or right-click and select Views > Modbus Async Device Manager.
For general information, see “About the Device Manager” in the NiagaraAX User Guide. See “Modbus
Async Device Manager notes” on page 4-3 for additional details.
modbusCore plugins
The following views are found in multiple types of Modbus networks:
• ModbusClientPointManager
• ModbusServerPointManager
modbusCore-ModbusClientPointManager
Use the ModbusClientPointManager to create, edit, and view proxy points under a client Modbus device.
It is the default view on the Points container of a ModbusAsyncDevice, ModbusTcpDevice, and
ModbusTcpGatewayDevice, as well as on any points folder under these Points containers. To view,
double-click any of those components.
For general information, see the section “About the Point Manager” in the NiagaraAX User Guide. See
“Modbus Client Point Manager notes” on page 4-16 for additional details.
NiagaraAX-3.x
5–1
Modbus Guide
modbusSlave plugins Chapter 5 – Modbus Plugin Guides
modbusCore-ModbusServerPointManager March 15, 2007
modbusCore-ModbusServerPointManager
Use the ModbusServerPointManager to create, edit, and view proxy points under a server Modbus
device. It is the default view on the Points container of a ModbusSlaveDevice and
ModbusTcpSlaveDevice, as well as on any points folder under those Points containers. To view, double-
click any of those components.
For general information, see the section “About the Point Manager” in the NiagaraAX User Guide.
modbusSlave plugins
The following views apply to the Modbus Slave driver:
• ModbusSlaveDeviceManager
modbusSlave-ModbusSlaveDeviceManager
Use the ModbusSlaveDeviceManager to create, edit, and view Modbus Slave Devices. The Modbus-
SlaveDeviceManager is a view on the ModbusSlaveNetwork. To view, double-click a Modbus-
SlaveNetwork, or right-click and select Views > Modbus Slave Device Manager.
For general information, see “About the Device Manager” in the NiagaraAX User Guide.
modbusTcp plugins
The following views apply to the Modbus TCP drivers:
• ModbusTcpDeviceManager
• ModbusTcpGatewayDeviceManager
modbusTcp-ModbusTcpDeviceManager
Use ModbusTcpDeviceManager to create, edit, and view Modbus Tcp Devices. The ModbusTcpDevice-
Manager is a view on the ModbusTcpNetwork. To view, double-click a ModbusTcpNetwork, or right-
click and select Views > Modbus Tcp Device Manager.
For general information, see “About the Device Manager” in the NiagaraAX User Guide. See “Modbus
Tcp Device Manager notes” on page 4-5 for additional details.
modbusTcp-ModbusTcpGatewayDeviceManager
Use ModbusTcpGatewayDeviceManager to create, edit, and view Modbus Tcp Gateway Devices. The
ModbusTcpGatewayDeviceManager is a view on the ModbusTcpGateway. To view, double-click a
ModbusTcpGateway, or right-click and select Views > Modbus Tcp Gateway Device Manager.
For general information, see “About the Device Manager” in the NiagaraAX User Guide. See “Modbus
Tcp Gateway Device Manager notes” on page 4-8 for additional details.
modbusTcpSlave plugins
The following views apply to the Modbus TCP Slave driver:
• ModbusTcpSlaveDeviceManager
modbusTcpSlave-ModbusTcpSlaveDeviceManager
Use ModbusTcpSlaveDeviceManager to create, edit, and view Modbus Tcp Slave Devices. The
ModbusTcpSlaveDeviceManager is a view on the ModbusTcpSlaveNetwork. To view, double-click a
ModbusTcpSlaveNetwork, or right-click and select Views > Modbus Tcp Slave Device
Manager.
For general information, see “About the Device Manager” in the NiagaraAX User Guide.
NiagaraAX-3.x
5-2
Modbus Guide
CHAPTER 6
Modbus Component Guides
These Component Guides provide summary information on Modbus components, listed alphabetically
by module.
modbusAsync components
In addition to “client” components in the modbusCore module, the following components apply to the
Modbus Async driver:
• ModbusAsyncDevice
• ModbusAsyncDeviceFolder
• ModbusAsyncNetwork
modbusAsync-ModbusAsyncDevice
The ModbusAsyncDevice represents a Modbus serial (async) device under a ModbusAsync-
Network, for client access by the station (acting as Modbus master). In addition to the typical device
components, it contains properties to specify the device’s Modbus address, data mode (RTU or ASCII),
and other configuration, including slots to specify the base address for its Modbus data items (holding
registers, input registers, inputs, coils), plus a DevicePollConfigTable for device polling.
Its Points extension (ModbusClientPointDeviceExt) contains Modbus proxy points with client proxy
extensions (ModbusClientBooleanProxyExt, ModbusClientNumericProxyExt, ModbusClientRegister-
BitProxyExt), used to read and write data to the defined data items. The device can also contain one or
more ModbusClientStringRecord components.
For more details, see “About Modbus client devices” on page 4-12.
modbusAsync-ModbusAsyncDeviceFolder
This is the ModbusAsync implementation of a folder under a ModbusAsyncNetwork. You can use
these folders to organize ModbusAsyncDevices in the network.
Typically, you add such folders using the New Folder button in the ModbusAsyncDeviceManager view
of the network. Each device folder has its own device manager view. The ModbusAsyncDeviceFolder is
also available in the modbusAsync palette.
modbusAsync-ModbusAsyncNetwork
ModbusAsyncNetwork is the base container for one or more ModbusAsyncDevice components.
This network component specifies the Modbus data mode (RTU or ASCII) used by the network, and
has other standard network components, including a Serial Port Config container (SerialHelper) to
specify serial settings used by the JACE for communications.
See “About Modbus Async networks” on page 4-1 for additional details.
NiagaraAX-3.x
6–1
Modbus Guide
modbusCore Components Chapter 6 – Modbus Component Guides
modbusCore-DevicePollConfigEntry March 15, 2007
modbusCore Components
Core Modbus components are common to multiple Modbus network types, either the 3 “client” types
(ModbusAsyncNetwork, ModbusTcpNetwork, ModbusTcpGateway) or the 2 “server” types (Modbus-
SlaveNetwork, ModbusTcpSlaveNetwork), and include the following:
• DevicePollConfigEntry
• DevicePollConfigTable
• ModbusClientBooleanProxyExt
• ModbusClientNumericProxyExt
• ModbusClientPointDeviceExt
• ModbusClientPointFolder
• ModbusClientPresetCoil
• ModbusClientPresetCoils
• ModbusClientPresetRegister
• ModbusClientPresetRegisters
• ModbusClientRegisterBitProxyExt
• ModbusClientStringProxyExt
• ModbusClientStringRecord
• ModbusRegisterRangeEntry
• ModbusRegisterRangeTable
• ModbusServerBooleanProxyExt
• ModbusServerNumericProxyExt
• ModbusServerPointDeviceExt
• ModbusServerPointFolder
• ModbusServerRegisterBitProxyExt
• ModbusServerStringRecord
Note: There is no “modbusCore palette”—core Modbus components are in the various other Modbus palettes.
modbusCore-DevicePollConfigEntry
DevicePollConfigEntry is used to configure device-level polling for consecutive proxy points, where
one or more of these components may be under the DevicePollConfigTable (Device Poll Config) slot
of a client Modbus device. Properties specify the starting Modbus address and number of points to poll.
For more details, see “Device Poll Config Entry” on page 4-16.
modbusCore-DevicePollConfigTable
This is a frozen slot under a client Modbus device (ModbusAsyncDevice, ModbusTcpDevice, or
ModbusTcpGatewayDevice). It can contain a table of DevicePollConfigEntrys for specifying device-
level polling of points within the device. The Device Poll Config table has two available actions:
• Learn Optimum Device Poll Config — To automatically create child DevicePollConfigEntry compo-
nents based upon the current collection of Modbus proxy points.
• Clear — To remove all existing child DevicePollConfigEntry components.
For more details, see “Device Poll Config” on page 4-15.
modbusCore-ModbusClientBooleanProxyExt
This is the proxy extension for either a ModbusClientBooleanPoint (BooleanPoint) or
ModbusClientBooleanWritable (BooleanWritable). It contains information necessary infor-
mation necessary to poll (read) a status data value from a client Modbusdevice.
For more details, see “Types of Modbus client proxy points” on page 4-18.
modbusCore-ModbusClientNumericProxyExt
This is the proxy extension for either a ModbusClientNumericPoint (NumericPoint) or
ModbusClientNumericWritable (NumericWritable). It contains information necessary infor-
mation necessary to poll (read) an integer, long, float, or signed integer data value from a client Modbus-
device.
For more details, see “Types of Modbus client proxy points” on page 4-18.
modbusCore-ModbusClientPointDeviceExt
This Points extension is the Modbus client implementation of PointDeviceExt, and is a frozen
extension under every ModbusAsyncDevice and ModbusTcpDevice. Its primary view is the
ModbusClientPointManager.
NiagaraAX-3.x
6-2
Modbus Guide
Chapter 6 – Modbus Component Guides modbusCore Components
March 15, 2007 modbusCore-ModbusClientPointFolder
For more details, see “Types of Modbus client proxy points” on page 4-18.
modbusCore-ModbusClientPointFolder
This is the Modbus client implementation of a folder under the Points container (ModbusClient-
PointDeviceExt) of a ModbusAsyncDevice and ModbusTcpDevice. You typically add such folders
using the New Folder button in the ModbusClientPointManager. Each points folder also has its own
Point Manager view.
modbusCore-ModbusClientPresetCoil
ModbusClientPresetCoil is a child component of ModbusClientPresetCoils. Use it to specify a
single preset Modbus coil data value (false or true) to write to the parent client Modbus device. You
can add any number of these preset coil components under the ModbusClientPresetCoils parent, where
each specifies a boolean value to write.
modbusCore-ModbusClientPresetCoils
ModbusClientPresetCoils is a container used for writing preset Modbus coil (boolean) data values
to a client Modbus device. As copied from the palette, a single child ModbusClientPresetCoil entry
exists in this component, where you can enter a preset value (false or true) for that coil. Also, you can add
additional (consecutive) preset coil entries, each with its own value, by using the “Add Preset Coil Value”
action (or by duplicating or by copying from the palette).
ModbusClientPresetCoils configuration requires specifying the Starting Address of the first coil.
Writing occurs when the linkable “write” action is fired. Values specified in the dynamic children are
written to the device using the specified starting (absolute) address, and the slot order of the children
determines what (consecutive) address is assigned to their values.
As needed, you can copy these components from the modbusAsync or modbusTcp palette into a
ModbusAsyncDevice, ModbusTcpDevice, or ModbusTcpGatewayDevice.
Note: Presets (registers and coils) provide write-access only, and are not proxy points—they do not produce
polling activity. If copied under the Points container of the client Modbus device, they will not be visible in
the Point Manager. You may wish to add a “Presets” container under the device to keep any preset objects.
For more details, see “Modbus Client Preset Coils” on page 4-21.
modbusCore-ModbusClientPresetRegister
ModbusClientPresetRegister is a child component of ModbusClientPresetRegisters, used to specify
a preset numeric value to write to a holding register in a client Modbus device. You can add any
number of these register components under the ModbusClientPresetRegisters parent, where each
specifies a numeric value to write. Data type can be integer, float, long, or signed integer, as specified by
the configuration of the parent ModbusClientPresetRegisters container.
modbusCore-ModbusClientPresetRegisters
ModbusClientPresetRegisters is a container used for writing preset Modbus holding register data
values to a client Modbus device. As copied from the palette, a single child ModbusClientPresetReg-
ister entry exists in this component, where you can enter a preset value for that register. Also, you can add
additional (consecutive) preset register entries, each with its own value, by using the “Add Preset Register
Value” action (or by duplicating or by copying from the palette).
ModbusClientPresetRegisters configuration requires specifying the Starting Address of the first register,
and also the Data Type (Integer, Float, Long, Signed Integer). All child preset register components must
use this data type.
Writing occurs when the linkable “Write” action is fired. Values specified in the dynamic children are
written to the device using the specified starting (absolute) address, and the slot order of the children
determines what (consecutive) address is assigned to their values.
As needed, you can copy these components from the modbusAsync or modbusTcp palette into a
ModbusAsyncDevice, ModbusTcpDevice, or ModbusTcpGatewayDevice.
Note: Presets (registers and coils) provide write-access only, and are not proxy points—they do not produce
polling activity. If copied under the Points container of the client Modbus device, they will not be visible in
the Point Manager. You may wish to add a “Presets” container under the device to keep any preset objects.
For more details, see “Modbus Client Preset Coils” on page 4-21.
NiagaraAX-3.x
6-3
Modbus Guide
modbusCore Components Chapter 6 – Modbus Component Guides
modbusCore-ModbusClientRegisterBitProxyExt March 15, 2007
modbusCore-ModbusClientRegisterBitProxyExt
This is the proxy extension for either a ModbusClientRegisterBitPoint (BooleanPoint) or
ModbusClientRegisterBitWritable (BooleanWritable). It contains information necessary
to poll (read) a single bit value from either an input register or holding register in client Modbus device.
For more details, see “Types of Modbus client proxy points” on page 4-18.
modbusCore-ModbusClientStringProxyExt
This is the proxy extension for a ModbusClientStringPoint (StringPoint). It contains infor-
mation necessary to poll (read) a string data value from a client Modbus device.
For more details, see “Types of Modbus client proxy points” on page 4-18.
modbusCore-ModbusClientStringRecord
This is a component for reading/writing Modbus file records (client side). The input and output is
a string converted to/from a byte array. Writing occurs when the linkable “write” action is fired.
Reading occurs when the linkable “read” action is fired.
As needed, you can copy this component from the modbusAsync or modbusTcp palette into a
ModbusAsyncDevice, ModbusTcpDevice, or ModbusTcpGatewayDevice. For more details, see “About
Modbus (client) file records” on page 4-23.
modbusCore-ModbusRegisterRangeEntry
ModbusRegisterRangeEntry is used to configure the valid (usable) Modbus data items by specifying
an address range starting from the offset and ranging through the size. It is a child of a ModbusReg-
isterRangeTable (Valid Coils Range, Valid Status Range, Valid Holding Registers, Valid Input Registers)
slot of a server Modbus device.
If needed, more than one register range entry can be added under any register table. For more details, see
“Modbus Register Range Entry” on page 4-26.
modbusCore-ModbusRegisterRangeTable
ModbusRegisterRangeTable is used to define the data constructs of a server Modbus device, where
each device (ModbusSlaveDevice or ModbusTcpSlaveDevice) has four frozen instances of these
tables: one each for valid coils, status (inputs), holding registers, and input registers.
Each register range table can have one or more child ModbusRegisterRangeEntry components, which
define the address offset and range of the data item. For more details, see “Modbus Register Range Tables”
on page 4-25.
modbusCore-ModbusServerBooleanProxyExt
This is the proxy extension for either a ModbusServerBooleanPoint (BooleanPoint) or
ModbusServerBooleanWritable (BooleanWritable) in a server Modbus device. The server
BooleanPoint acts as an “input,” where coil values are written by the master. The server BooleanWritable
acts as an “output,” where station values can be written as either coil or input (status) values.
For more details, see “About Modbus server proxy points” on page 4-27.
modbusCore-ModbusServerNumericProxyExt
This is the proxy extension for either a ModbusServerNumericPoint (NumericPoint) or
ModbusServerNumericWritable (NumericWritable) in a server Modbus device. The server
NumericPoint acts as an “input,” where holding register values are written by the master. The server
NumericWritable acts as an “output,” where station values can be written as either input register or
holding register values.
For more details, see “About Modbus server proxy points” on page 4-27.
modbusCore-ModbusServerPointDeviceExt
This Points extension is the Modbus server implementation of PointDeviceExt, and is a frozen
extension under every ModbusSlaveDevice and ModbusTcpSlaveDevice. Its primary view is the
ModbusServerPointManager.
For more details, see “About Modbus server proxy points” on page 4-27.
NiagaraAX-3.x
6-4
Modbus Guide
Chapter 6 – Modbus Component Guides modbusSlave components
March 15, 2007 modbusCore-ModbusServerPointFolder
modbusCore-ModbusServerPointFolder
This is the Modbus server implementation of a folder under the Points container (ModbusServ-
erPointFolder) of a ModbusSlaveDevice and ModbusTcpSlaveDevice. You typically add such folders
using the New Folder button in the ModbusServerPointManager. Each points folder also has its own
Point Manager view.
modbusCore-ModbusServerRegisterBitProxyExt
This is the proxy extension for either a ModbusServerRegisterBitPoint (BooleanPoint) or
ModbusServerRegisterBitWritable (BooleanWritable) in a server Modbus device. The server
BooleanPoint acts as an “input,” where an individual bit in a holding register can be written by the master.
The server BooleanWritable acts as an “output,” where a station boolean value can be written as an
individual bit in either an input register or a holding register.
For more details, see “About Modbus server proxy points” on page 4-27.
modbusCore-ModbusServerStringRecord
ModbusServerStringRecord is a component for reading/writing Modbus file records (server side).
The input and output is a string converted to/from a byte array. Writing occurs when the linkable
“write” action is fired. Reading occurs when the linkable “read” action is fired.
For more details, see “About Modbus (server) file records” on page 4-29.
modbusSlave components
In addition to “server” components in the modbusCore module, the following components apply to the
Modbus Slave driver:
• ModbusSlaveDevice
• ModbusSlaveDeviceFolder
• ModbusSlaveNetwork
modbusSlave-ModbusSlaveDevice
The ModbusSlaveDevice represents a “virtual” Modbus device to serve data to a Modbus master
over a serial connection, where station data appears as Modbus data items. It has 4 frozen “range”
containers (ModbusRegisterRangeTables), which specify what Modbus addresses are available as coils,
inputs, holding registers, and input registers.
Its Points extension (ModbusServerPointDeviceExt) contains Modbus proxy points with server proxy
extensions (ModbusServerBooleanProxyExt, ModbusServerNumericProxyExt, ModbusServerRegister-
BitProxyExt), used to read and write data to the defined data items. The device can also contain one or
more ModbusServerStringRecord components.
For more details, see “About Modbus server devices” on page 4-24.
modbusSlave-ModbusSlaveDeviceFolder
This is the ModbusSlave implementation of a folder under a ModbusSlaveNetwork. You can use
these folders to organize ModbusSlaveDevices in the network.
Typically, you add such folders using the New Folder button in the ModbusSlaveDeviceManager view
of the network. Each device folder has its own device manager view. The ModbusSlaveDeviceFolder is
also available in the modbusSlave palette.
modbusSlave-ModbusSlaveNetwork
ModbusSlaveNetwork is the base container for one or more ModbusSlaveDevice components. This
network component specifies the Modbus data mode (RTU or ASCII) used by the network, and has
other standard network components, including a Serial Port Config container (SerialHelper) to specify
serial settings used by the JACE for communications.
See “About Modbus Slave networks” on page 4-8 for additional details.
NiagaraAX-3.x
6-5
Modbus Guide
modbusTcp components Chapter 6 – Modbus Component Guides
modbusTcp-ModbusTcpDevice March 15, 2007
modbusTcp components
In addition to “client” components in the modbusCore module, the following components apply to the
Modbus TCP driver:
• ModbusTcpDevice
• ModbusTcpDeviceFolder
• ModbusTcpGateway
• ModbusTcpGatewayDevice
• ModbusTcpGatewayDeviceFolder
• ModbusTcpNetwork
modbusTcp-ModbusTcpDevice
The ModbusTcpDevice represents a Modbus TCP device under a ModbusTcpNetwork, for client
access by the station (acting as Modbus master). In addition to the typical device components, it
contains properties to specify the device’s Modbus address, and other configuration including slots to
specify the base address for its Modbus data items (holding registers, input registers, inputs, coils), plus
a DevicePollConfigTable for device polling.
Its Points extension (ModbusClientPointDeviceExt) contains Modbus proxy points with client proxy
extensions (ModbusClientBooleanProxyExt, ModbusClientNumericProxyExt, ModbusClientRegister-
BitProxyExt), used to read and write data to the defined data items. The device can also contain one or
more ModbusClientStringRecord components.
For more details, see “About Modbus client devices” on page 4-12.
modbusTcp-ModbusTcpDeviceFolder
This is the ModbusTcp implementation of a folder under a ModbusTcpNetwork. You can use these
folders to organize ModbusTcpDevices in the network.
Typically, you add such folders using the New Folder button in the ModbusTcpDeviceManager view
of the network. Each device folder has its own device manager view. The ModbusTcpDeviceFolder is also
available in the modbusTcp palette.
modbusTcp-ModbusTcpGateway
ModbusTcpGateway is the base container for one or more ModbusTcpGatewayDevice compo-
nents. This network-level component specifies the TCP/IP address and port used to connect to the
Modbus TCP/serial gateway, which has Modbus serial devices (typically Modbus RTU, via RS-485) on its
“far side.” Those devices are represented by its child ModbusTcpGatewayDevices.
In addition to standard network components, other Modbus settings are specified in this component. Its
primary view is the ModbusTcpGatewayDeviceManager, used to add and manage devices. See “About
Modbus TCP Gateway networks” on page 4-6 for additional details.
modbusTcp-ModbusTcpGatewayDevice
The ModbusTcpGatewayDevice represents a Modbus serial (RTU or ASCII) device on the “far side”
of a ModbusTcpGateway (network), for TCP client access by the station (acting as Modbus master).
In addition to the typical device components, it specifies its Modbus address plus other settings,
including slots to specify the base address for its Modbus data items (holding registers, input registers,
inputs, coils), and a DevicePollConfigTable for device polling.
Its Points extension (ModbusClientPointDeviceExt) contains Modbus proxy points with client proxy
extensions (ModbusClientBooleanProxyExt, ModbusClientNumericProxyExt, ModbusClientRegister-
BitProxyExt), used to read and write data to the defined data items. The device can also contain one or
more ModbusClientStringRecord components.
For more details, see “About Modbus client devices” on page 4-12.
modbusTcp-ModbusTcpGatewayDeviceFolder
This is the ModbusTcp implementation of a folder under a ModbusTcpGateway network. You can
use these folders to organize ModbusTcpGatewayDevices in the network.
Typically, you add such folders using the New Folder button in the ModbusTcpGatewayDeviceM-
anager view of the network. Each device folder has its own device manager view. The ModbusTcpGate-
wayDeviceFolder is also available in the modbusTcp palette.
NiagaraAX-3.x
6-6
Modbus Guide
Chapter 6 – Modbus Component Guides modbusTcpSlave components
March 15, 2007 modbusTcp-ModbusTcpNetwork
modbusTcp-ModbusTcpNetwork
ModbusTcpNetwork is the base container for one or more ModbusTcpDevice components. This
network component specifies certain Modbus settings used by the network, and has other standard
network components. Its primary view is the ModbusTcpDeviceManager, used to add and manage
devices.
See “About Modbus TCP networks” on page 4-3 for additional details.
modbusTcpSlave components
In addition to “server” components in the modbusCore module, the following components apply to the
Modbus TCP Slave driver:
• ModbusTcpSlaveDevice
• ModbusTcpSlaveDeviceFolder
• ModbusTcpSlaveNetwork
modbusTcpSlave-ModbusTcpSlaveDevice
The ModbusTcpSlaveDevice represents a “virtual” Modbus device to serve data to a Modbus master
over a TCP connection, where station data appears as Modbus data items. It has 4 frozen “range”
containers (ModbusRegisterRangeTables), which specify what Modbus addresses are available as coils,
inputs, holding registers, and input registers.
Its Points extension (ModbusServerPointDeviceExt) contains Modbus proxy points with server proxy
extensions (ModbusServerBooleanProxyExt, ModbusServerNumericProxyExt, ModbusServerRegister-
BitProxyExt), used to read and write data to the defined data items. The device can also contain one or
more ModbusServerStringRecord components.
For more details, see “About Modbus server devices” on page 4-24.
modbusTcpSlave-ModbusTcpSlaveDeviceFolder
This is the ModbusTcpSlave implementation of a folder under a ModbusTcpSlaveNetwork. You can
use these folders to organize ModbusTcpSlaveDevices in the network.
Typically, you add such folders using the New Folder button in the ModbusTcpSlaveDeviceManager
view of the network. Each device folder has its own device manager view. The ModbusTcpSlaveDevice-
Folder is also available in the modbusTcpSlave palette.
modbusTcpSlave-ModbusTcpSlaveNetwork
ModbusTcpSlaveNetwork is the base container for one or more ModbusTcpSlaveDevice compo-
nents. This network component specifies the TCP connection settings used to expose the virtual
devices to Modbus, and assumes the IP address of the Niagara station.
For more details, see “About Modbus TCP Slave networks” on page 4-10.
NiagaraAX-3.x
6-7
Modbus Guide
modbusTcpSlave components Chapter 6 – Modbus Component Guides
modbusTcpSlave-ModbusTcpSlaveNetwork March 15, 2007
NiagaraAX-3.x
6-8
Modbus Guide