Introduction.
The main objective of this guide is to show how to easily configure EtherNet/IP Datalinks between Omron PLCs with an EtherNet/IP interface. EtherNet/IP Datalinks are a fast and easy way to exchange even large amounts of data between PLCs. The Datalinks use the Producer/Consumers principle. One device is sourcing the data and one or more can receive the data. A network technology called IGMP is used to send data to multiple devices with one message.
This introduction explains some important terminology and concepts that appear throughout the guide:
Tag: is a name given to one block of data. It can be a network symbol or a piece of PLC memory with start-address and length. It can be input, output or publication (when the variable is being shared with a device other than a PLC).
Tagset: set of tags to be used in a communication link.
Communication links: links between Tag producers and Tag consumers.
In-Consume: input tag, or tag that the PLC "consumes" from the "producer" PLC
Out-Produce: output tag, or tag that the PLC "produces" to the "consumer" PLC.
Multicast Connection: by transmitting one single message, information is sent to multiple nodes. Multicast in EtherNet/IP uses IGMP (Internet Group Management Protocol) to transfer data to selected nodes in an efficient way.
Point-to-Point Connection requires the transmission of a message to each individual node.
Performance parameters of Omron EtherNet/IP interfaces:
Note: There has been a firmware update for the CJ2M EtherNet/IP built in interface. The initial version supported 32 connections with a maximum size of 20 words each. This is a total of 640 words. However often the maximum size of 20 words was to small to fit the application. Therefore a change in firmware was made where still the total limit of 640 words and 32 connections exists. But the maximum size of a connection was now set to 640 words.
The EtherNet/IP Datalink Tool
The easiest way to create data-links between Omron CJ and CS types PLCs equipped with an EtherNet/IP interface is through the EtherNet/IP Datalink Tool.
What the tool does is creating Tagsets in each PLC where there is one producing and as many consuming as there are other PLCs. Each PLC can have two datalink areas with a certain start-address and size per tagset. In every area the tagsets are of the same size. The first PLC produces the first tagset, the others are receiving data here. The second PLC produces the second tagset, the others are receiving data from the second PLC here. And so on.
The table below is a global overview of all the tagsets created and how they are transferred between the different PLCs.
In this example we set up 5 PLCs to share data through datalinks.
They should already be set up to communicate on the network to be able to download to the PLCs the made configuration.
The EtherNet/IP Datalink Tool is started from the Menu bar by selecting Network/EtherNetIP Datalink Tool
When the EtherNet/IP Datalink Tool is started first the Datalink Wizard will appear. Here the memory area, start address and sizes of the tagsets can be set. Let’s use the values as shown in the global overview. So area 1 starts at W0 and each tagset is 50 words in size. The second area starts at D50 and each tagset is 100 words in size.
The Enable Output Inhibit can be used to set a tagset area to zero if the communication to that PLC fails. This can be used as a kind of safety measure but it depends on your application.
After pressing OK the wizard will populate all PLCs with new tagsets and connection information. All previous entered information will be discarded.
The EtherNet/IP Datalink tool has now created the necessary structure. You will see that each PLC has only one Output area and multiple input areas.
For PLC1
For PLC2
And so on till PLC5.
Now Save and Close the DataLink Tool.
From here we can go online on the network and download the configuration to the PLCs. The data-exchange will start automatically.
However we can have a look at what the EtherNet/IP Datalink Tool actually did.
Double-click on PLC and its Device Parameters edit screen will appear.
You see that it has four connections, one to each of the other PLCs. All the other PLCs have the same.
You will also find in every PLC 4 consuming and 1 producing Tagsets.
A tagset consists of the tags PLCStatus and the ones for Area 1 and Area 2 as set in the Datalink Wizard. Area 1 is here in W-memory with a size of 50 words / 100 bytes. The Area 2 tag is in D-memory and each tag is then 100 words / 200 bytes in size.
Notice that PLCStatus, the W-memory and the D-memory are assembled to one big tagset that has a size of 302 bytes. And this is the amount of data that is sent over in one EtherNet/IP message.
Next to the size of the data there is also information on the Requested Packet Interval (RPI) and the type of Connection that is used to transfer the data. Press the Hide/Show detail button to show the RPI information.
By default the RPI is set to 50 ms and the Connection type is set to Multi-cast. More on Multi-cast is in the chapter: Multi-cast connections and IGMP.
Should data be transferred in a higher rate then the RPI can be changed for these. It is even possible to set per connection. Maybe PLC1 needs the data from PLC2 at a higher rate. The Packet Rate can be changed here:
However the Packet Rate can be changed for all connections at once. In the main overview of the Network Configurator there is a Usage of Device Bandwidth Detail button.
An overview is shown with the total capacity of the EtherNet/IP unit used, the total Mbit/s this will take and the amount of IP-Multicast connections this will take. Make sure not to go over the maximum of 100% of the capacity or the Mbit/s maximum (10 or 100 Mbit/s) of your Ethernet connection speed.
The values between brackets show you the values when no Mulitcast filtering is used.
Multicast filtering is a functionality of the Ethernet switches used in the network and need to be set within the Ethernet switch.
The RPI is changed for the PLCs selected.
When you are satisfied with the settings then go online and download the configuration to all PLCs.
Multi-cast and IGMP.
To transfer data efficiently over the network EtherNet/IP can make use of Multi-casts. The principle of operation is that the producing PLC is sending out only one message that is received by a group of other PLCs. Not to all PLCs as this could be an overload on the network.
The technology used for this is IGMP or Internet Group Management Protocol.
The IGMP protocol is developed to serve video-streaming or gaming over the Internet. The devices in such Multicast structure are one Server, Routers to route the messages properly and Clients as the end points. The Clients enlist themselves in an IGMP-group by sending a group-join request.
A switch uses IGMP-snooping to learn to which group this Client wants to get messages from. If it then receives IGMP-messages for this group then the switch will forward this message to the proper port according to what it learnt through its IGMP-snooping.
As IGMP is a Level 3 service it is commonly only supported by managed switches. For level 2 un-managed switches an IGMP-message is just a broadcast message and it will forward an IGMP-message to all its ports. That is just what IGMP is all about. An incoming message should only go out on those ports where it needs to go out as the connected device has asked for it.
In the example, with the five PLCs and Multi-cast set, it only takes five messages to update all PLCs. As each PLC wants to receive data from four different PLCs it sends out four IGMP-group joins to notify switches it is interested in data from a certain IGMP-group / Server.
Actually the IGMP-group is just a specific IP-address in a certain reserved IP-range.
What happens if no managed switches are used depends on your application.
If you have a network with only these EtherNet/IP devices, like our example with the 5 PLCs, then although all messages will be coming out of all ports but no other devices will be bothered with it. The PLCs will receive all the messages they want.
In case you have other devices on the network then they will also receive the EtherNet/IP messages. As it is a broadcast the device need to work on the message and need to decide what to do with the message. Normally they drop the message but it is in any case a burden on the processor of the device.
And remember the messages will be coming in a fixed interval (the RPI) and then from all producers. This can be quite a lot of interrupts per second on this device. In our example it are every 50ms 5 messages. Is 100 interrupts a second. This could be enough to crash a badly designed device.
A remedy would be to change from Multi-cast to Point-to-point. Now every producer will sent to every consumer separately a message. This will increase the number of messages to be sent, in our example a factor of 4, but layer2 switches know to which port the message should be forwarded to.
Therefore in a system where also other devices are connected to the Ethernet network it is advisable to use managed switches or Level 3 switches. They check the IP-part of the message to see how to forward the message. They are equipped to handle IGMP properly.
Conclusion
It is very easy to set up data-links between PLCs with an EtherNet/IP interface by the Network Configurator for EtherNet/IP. However be aware about the amount of traffic that is generated and the switches that are used to forward this data.
Can all be handled with simple un-managed switches or is there need for managed switches? There are some simple tools like a pencil and paper and an Ethernet protocol analyser called Wireshark (www.wireshark.org) that can come in very handy.
First simply draw your network infrastructure and make the data-flows visible. You can already pin-point your bottlenecks now.
Secondly use a laptop with Wireshark to monitor the traffic on certain ports of your network. And a managed switch has often the diagnostics option to mirror data on one of its ports to another port to analyse the data.
As every network is unique in its structure and data that goes over it that it is not easy to have a fits all rule. Just use your common sense and don’t take things for granted till they are proven by measurement.