This section describes the configuration of the M262 Logic/Motion Controller as a .
Each M262 Logic/Motion Controller uses a Modbus server which does not need to be configured. The adds another Modbus server function to the controller. This server is addressed by the Modbus client application by specifying a configured Unit ID (Modbus address) in the range 1...247. The embedded Modbus server of the slave controller needs no configuration, and is addressed by specifying a Unit ID equal to 255. Refer to Modbus TCP Configuration.
To configure your M262 Logic/Motion Controller as a , you must add functionality to your controller (see Adding a Modbus TCP Slave Device thereafter). This functionality creates a specific I/O area in the controller that is accessible with the Modbus TCP protocol.
This I/O area is used whenever an external master needs to access the %IW and %QW objects of the controller. This functionality allows you to furnish to this area the controller I/O objects which can then be accessed with a single Modbus read/write registers request.
Inputs/outputs are seen from the slave controller: inputs are written by the master, and outputs are read by the master.
The
can define a privileged Modbus client application, whose connection is not forcefully closed (embedded Modbus connections may be closed when more than 8 connections are needed).The watchdog associated to the privileged connection allows you to verify whether the controller is being polled by the privileged master. If no Modbus request is received within the timeout duration, the diagnostic information i_byMasterIpLost is set to 1 (TRUE). For more information, refer to the Ethernet Port Read-Only System Variables.
For further information about Modbus TCP, refer to the www.odva.org website.
To add a Modbus TCP slave device, select
in the .Drag and drop it to the
on one of the highlighted nodes.For more information on adding a device to your project, refer to:
• Using the Hardware Catalog
• Using the Contextual Menu or Plus Button
To configure the Modbus TCP slave device, double-click in the .
This dialog box appears:
Element |
Description |
---|---|
|
|
|
IP address of the Modbus master The connections are not closed on this address. |
|
Watchdog in 500 ms increments
NOTE: The watchdog applies to the IP master Address unless the address is 0.0.0.0.
|
|
Modbus communication port (502)
NOTE: The port number can be modified using the changeModbusPort, script command.
|
|
Sends the requests to the Modbus TCP slave device (1...247), instead of to the embedded Modbus server (255). |
|
Number of %IW registers to be used in the exchange (2...120) (each register is 2 bytes) |
|
Number of %QW registers to be used in the exchange (2...120) (each register is 2 bytes) |
The I/Os are mapped to Modbus registers from the master perspective as follows:
%IWs are mapped from register 0 to n-1 and are R/W (n = Holding register quantity, each %IW register is 2 bytes).
%QWs are mapped from register n to n+m -1 and are read only (m = Input registers quantity, each %QW register is 2 bytes).
Once a %IW and %QW objects of the controller instead of the regular Modbus words (accessed when the Unit ID is 255). This facilitates read/write operations by a Modbus TCP IOScanner application.
has been configured, Modbus commands sent to its Unit ID (Modbus address) access theThe
responds to a subset of the Modbus commands, but does so in a way that differs from Modbus standards, and with the purpose of exchanging data with the external I/O scanner. The following Modbus commands are supported by the Modbus TCP slave device:
Function Code Dec (Hex) |
Function |
Comment |
---|---|---|
3 (3) |
Read holding register |
Allows the master to read %IW and %QW objects of the device |
6 (6) |
Write single register |
Allows the master to write %IW objects of the device |
16 (10) |
Write multiple registers |
Allows the master to write %IW objects of the device |
23 (17) |
Read/write multiple registers |
Allows the master to read %IW and %QW objects of the device and write %IW objects of the device |
Other |
Not supported |
– |
To link I/O objects to variables, select the
tab:
Channel |
Type |
Description |
|
---|---|---|---|
|
IW0 |
WORD |
Holding register 0 |
... |
... |
... |
|
IWx |
WORD |
Holding register x |
|
|
QW0 |
WORD |
Input register 0 |
... |
... |
... |
|
QWy |
WORD |
Input register y |
The number of words depends on the Holding Registers (%IW) and Input Registers (%QW) parameters of the
tab.In the
tab, select the to use:(the default),