EtherNetIP Settings - Beckhoff Scanner To DX200 Adapter
EtherNetIP Settings - Beckhoff Scanner To DX200 Adapter
This document will highlight the settings required to achieve successful communication between a
Beckhoff PLC and DX200 robot controller. In this case the Beckhoff PLC is the scanner, and the robot
controller is the adapter. A companion project is provided on SharePoint, which was developed in
TwinCAT version 3.1. Compatibility with other versions cannot be guaranteed.
A few notes:
All testing was done without Beckhoff hardware. Instead the software installed in a VMware
instance of Windows 7, 32 bit. This allowed the software to run without interference from
the host O/S’s virus scanner. The Beckhoff software allows real time simulation of the
hardware, this is expected to yield the same results and performance as hardware.
It was challenging to establish EtherNet/IP settings which would allow the robot controller
and TwinCAT environment to communicate appropriately. It will be very important that the
steps, logic, and approach documented here are followed – especially with respect to the
transmission of outputs.
o In particular TwinCAT / Beckhoff is allocating 4 bytes which will always be present
and the robot controller will be unable to use these for data exchange. This will
covered in detail later.
Turning off wireless communication in the host operating system, was a great solution to
getting communication working in the VM. Once pings can be achieved between VM and
Robot, the wireless connection can be restored.
o This caused several hours of delay, by not understanding the priority of adapter and
IP address assignment to the VM.
Host PC 192.168.1.20
Robot Controller 192.168.1.31
VM PC 192.168.1.50
Beckhoff/TwinCAT Scanner 192.168.1.111
1. From the ETHERNET -> HOST SETUP screen set the IP to “192.168.1.31”:
2. Return to the EtherNet/IP(CPU Board) menu. Select DETAIL, next to ADAPTER and press SELECT.
4. Back at the EtherNet/IP (CPU Board) screen – confirm the values look like this:
5. Press enter several times to register the EtherNet/IP settings. Press enter at every Modify
prompts, and keep pressing Enter until returning to the “OPTION FUNCTION” screen.
2. Select the Scanner just added. Go to the “Adapter” tab and configure for the correct device. (In
this case the IP address of the VM.)
6. Click on the Slave added, change to the Settings tab, and enter the IP address of the DX200.
7. Again, right click on the Slave, and select “Append IO Connection -> Default (without eds)”. A
Connection (Input/Output) is added to the tree.
8. Now for the “Inputs” defined under the new Connection, right click and select “Add New Item…”
9. This next step is one of the most important parts of the integration. In my opinion it is the
largest challenge. This property or setting is different from any other PLC system I’ve used.
Now that this is understood, we can work around it.
11. Repeat the process for Outputs – add 8 bytes. This size requires no adjustment, this should
match the INPUT byte size defined at the robot controller.
13. Now, click on Connection, and change to the “Settings” tab, enter the values as shown:
14. These default settings are enough to go online successfully. Other values can be tweaked based
on network traffic (inputs can be changed to multicast) and RPI can be changed by adjusting the
cycle time multiplier to smaller or larger values. (The current values will result in 20 ms RPI’s.)
15. Now the project should be “Activated” and the PLC programs can be started. This process is not
documented here.
b. Navigate to EtherNet/IP Slave -> Inputs -> State and select it.
2. DX200 Inputs
a. The first input will occur at Universal Input #33 (Address #00050 and #20070). With 8
bytes allocated the inputs go through #96 (Address #00127 and #20147).
3. DX200 Outputs
a. The first 4 output bytes are ignored! This is caveat of this integration.
b. Thus, the first controllable Universal Output is #65 (Address #10090 and #30110). With
8 bytes allocated, there are 4 total usable output bytes available, which go through
output #96 (Address #10127 and #30147)