Communication - Ethernet/IP and encapsulated PCCC
I have already written two blogs about Ethernet/IP. The first one described the features of the protocol as well as the proprietary services that Rockwell uses to communicate with its devices (Micro, CompactLogix, and ControlLogix class PLCs). The second one dealt with the practical configuration of communication with PLCs of the CompactLogix and ControlLogix classes.
Some time has passed since writing and in the meantime, it was necessary to start communication with two older PLC types - MicroLogix 1100 and SLC 5/05.
What do these two PLCs have in common? Both have an Ethernet port, support the Ethernet/IP protocol, but to make things complicated - the proprietary services used today (Read Tag Service, Write Tag Service, Read Tag Fragmented Service, Write Tag Fragmented Service), which are used by PLC classes Micro/CompactLogix/ControlLogix are not supported by them.
This is probably related to historical developments. Older PLC types (SLC 5, SLC 500 series) initially only supported serial communication (via DH-485 or RS-485 bus). The Allen-Bradley DF1 and Allen-Bradley DH485 protocols were developed for them in the D2000 system. Even when looking at the documentation, the relationship can be seen - the addressing of the I/O tags uses the same format
[$] X [file] : element [.field] [/bit]
e.g. the Integer element 2 in file 7 has the address N7:2 and the Float type element 1 in file 29 has the address F29:1.
Subsequently, support for Ethernet communication over a TCP connection (that was not compatible with Ethernet/IP) was added. This created a protocol with a complicated name Allen-Bradley CSP/PCCC (Client Server Protocol / Programmable Controller Communication Command). By default, this protocol uses TCP port 2222. Just between us, the name CSP/PCCC brings to my mind the abbreviation PCMCIA and its unofficial explanation People Can't Memorize Computer Industry Acronyms. All I can say is that I can decipher PCMCIA, but I have trouble remembering the meaning of PCCC :)
The mentioned PLC series SLC 5, SLC 500 support CSP/PCCC - and therefore this protocol is sufficient for communication with them. But not for the MicroLogix 1100 - this type is newer and only supports the Ethernet/IP protocol. After defining Ethernet/IP as a standard, an effort was made to incorporate the existing PCCC communication into it - it was therefore encapsulated (encapsulated PCCC). So it was necessary to support PCCC commands within Ethernet/IP from the D2000 as well - and we did just that.
How is PCCC communication configured? At the communication station level, it is necessary to change the PCCC Max Data Length protocol parameter from the default value of 0 to a non-zero value. This parameter activates PCCC commands while limiting the amount of data that can be returned in a single response. If there are I/O tags with addresses with the same file and type, an attempt is made to read them at once. For example, elements N7:1, N7:10, and N7:12 would be read by a single request with a specified starting address of N7:1 and the number of elements of 12, reading 24 bytes of data (2-byte integer values), plus several more bytes specifying the data type.
To make matters even more complicated, the PCCC protocol has evolved over time and provided various services. We have supported three of them, which can be selected using the PCCC Command Set protocol parameter:
· Typed Read (68), PLC5 logical ASCII addressing
· Typed Read (68), PLC5 logical binary addressing
· SLC Protected Typed Logical Read (A1/A2)
The last service must be used to communicate with the MicroLogix 1100. This is the same service we use in the CSP/PCCC protocol for reading. In fact, we initially supported only reading (September 2021) and then writing (January 2022). In addition, the writing has been fully implemented for "SLC Protected Typed Logical Read" only. The other two services have only partially implemented writing - bit writing does not work, nor does writing to Counter and Timer files.
By the way, the MicroLogix 1100 is discontinued as of April 2022 ... but that doesn't mean we won't be seeing it for a long time.
At the I/O tag level, the address is entered as a symbolic address and then interpreted in the same way as in the Allen-Bradley CSP/PCCC protocol.
Conclusion
The Ethernet/IP protocol, and especially Rockwell's implementation of proprietary extensions, has a long history. The gradual addition of supported services allows the Ipesoft D2000 real-time application server to expand the list of PLCs with which it can communicate. Communication with Micro, MicroLogix, CompactLogix, ControlLogix, and SLC 5/05 class PLCs is currently supported.
Ing. Peter Humaj, www.ipesoft.com