This page provides detailed information about Modbus TCP.
- Internal Moxa Modbus TCP Remote Terminal Unit
- IP Address
- Modbus TCP
- Input Base and Output Base
This page provides information about the Modbus TCP communication protocol. For more information about connecting and configuring Modbus devices, see the Device Editor page.
Internal Moxa Modbus TCP Remote Terminal Unit
The Sawyer Robot comes with a Moxa Modbus TCP remote IO unit pre-installed in the controller and this device is pre-configured to display as the “Robot” device in the Configure Modbus screen. The IP address of the Moxa is pre-configured specifically for communication with the Sawyer Robot through the internal I/O board. This Ethernet connection is dedicated to the Moxa. The Moxa can be used to directly wire up to 8 inputs and 8 outputs to Sawyer. For information on using these inputs and outputs, see: Moxa ioLogik E1212
Additional Modbus TCP devices can be connected to an external Ethernet port of the robot (not the available ports on the internal Modbus TCP). These will need to be powered externally and the IP address will need to be configured according to the requirements explained below.
The robot is configured for DHCP addressing by default, but can also be assigned a local address. The IP address needs to be correctly configured on all devices to enable successful communication.
If the robot is connected to a DHCP network, the IP address and subnet mask will be assigned to reflect the connected network. This assigned address can be found under Settings àAbout on the robot. Other Modbus devices connected to this network must also be assigned by the DHCP network, or configured correctly to work on the network. NOTE: If the IP address and subnet are not configured as expected, please check with your IT administrator.
If the Modbus device is directly connected to the robot and is not connected to a DHCP network, the IP address of the robot will default to a link-local address The Modbus device IP address must also be set to a link-local address: 169.254.#.# (example: 169.254.42.43) other than the default robot address. "#" is any number between and including 1 to 254, and the subnet mask should be set to 255.255.0.0. (Please refer to the device manufacturer’s manual for instructions on assigning the IP address).
Static IP Address
In some cases, a Modbus Device is directly connected to the robot and the Modbus device's address cannot be configured or will not assign a DHCP address to the robot. In this case, a static IP address, subnet mask, and a default gateway will need to be assigned to the robot. For instructions on how to set the static address, please refer to the FSM page. Be sure to maintain correct IP address protocol. NOTE: If assigning a Static IP address, a link-local address is prohibited from being assigned to avoid IP conflicts.
The subnet mask governs which words of the IP address must match and which are unique. For example: if the subnet mask is 255.255.0.0, the IP addresses on all devices must be such that the first 2 words are identical, and the last is any number between and including 0 to 255 and unique to each device. If configured on a network, the IP addresses may need to match the 3rd word as well if any device has subnet mask 255.255.255.0. For more information on networking and IP configuration consult your IT administrator.
External devices such as PLCs can communicate with Intera using the Modbus TCP protocol. Each device needs to be added and correctly configured in the Configure Modbus screen in order to communicate with the robot.
The Robot is configured as Modbus TCP Client (Master), therefore, all external devices must be configured as Modbus Server (Slave) devices. INTERA uses the FieldTalk Modbus Master library for Modbus communications and is limited to discrete inputs and outputs using two Modbus function codes, which are:
- 02 – Read Discrete Inputs
- 15 – Write Multiple Coils
Some general guidelines are provided below. For more information on Modbus TCP: Modbus TCP on Wikipedia.
Input Base and Output Base
Intera Lines and Modbus Addresses
It is critical that Modbus addresses and bases are configured correctly in order for external devices and INTERA to communicate.
INTERA uses Lines for communicating with external devices and these lines correspond to a Modbus address within the external device. The Lines in INTERA are 0 based, meaning that 8 configured lines on the robot correspond to lines 0-7. The corresponding Modbus addresses are 1 based, meaning that 8 configured lines on the robot correspond to Modbus addresses 1-8.
INTERA Modbus address = base + line# + 1
Every Modbus TCP device uses different addresses to communicate inputs and outputs from its registers or variables. Some have addresses that are pre-configured on the device. The Modbus address base is the offset needed to align the INTERA line number with the device’s register or variable. Alternatively, some devices need to be configured to assign variables to specific addresses. Those addresses and variables must be configured on the device prior to creating the device in INTERA. A few examples are shown on the next section.
Example Device Configuration:
NOTE: This a guideline for some but not all devices, please refer to the device manufacturer’s user manual for the parameters of a specific device. For further assistance with configuration of a device or INTERA please contact Rethink Robotics Support.