The Allen-Bradley ControlLogix line of Programmable Logic Controllers (PLCs) offers several interfaces:
Ethernet, ControlNet, DeviceNet, RS-232 and others. The interface of ControlLogix Ethernet module 1756-ENET uses EtherNet/IP, the ControlNet protocol, encapsulated in Ethernet packages, with specific service codes. The Experimental Physics and Industrial Control System (EPICS) driver has been developed that utilizes this EtherNet/IP protocol for controllers running the vxWorks RTOS as well as a Win32 and Unix/Linux test program. Features, limitations and performance of this interface are presented.
ControlNet is a deterministic serial communication system, its specification extends from the physical to the application layer of the seven layer ISO OSI model. ControlNet Release 2.0 introduced the TCP/IP encapsulation of data packages, replacing the Physical and Data Link layer with Ethernet respectively IP/UDP/TCP. The result was known as “ControlNet over Ethernet” and is now called EtherNet/IP.
Several subsystems of the Spallation Neutron Source project (SNS) employ Allen-Bradley ControlLogix PLCs. To integrate these into the EPICS-based accelerator control system, the EPICS input/output controllers (IOCs) need read and write access to the PLC data. Their Unix or Win32 boot hosts as well as almost every PC which is used to program the PLC is already equipped with an Ethernet interface, it is desirable to use the same technology for transferring the PLC data. Existing support and knowledge for cabling, network hardware, configuration and maintenance can thus be utilized.
Unconnected messaging is used since the advantages of connected messaging do not transfer from Control- Net to EtherNet/IP: Ethernet does not reserve bandwidth; guaranteed delivery is already handled by TCP. For CIP_Read_Data requests, comparison of connected to unconnected messaging resulted in slightly smaller messages and a 3% increase in throughput. As a drawback, the client application has to send requests at the established update interval of the connection or faster. Temporary Ethernet delays cause the PLC to close the connection. The ControlLogix Multi-Request Service (0x0A) is used to combine CIP_Read/Write_Data requests until either the total request or expected response size reaches the PLC buffer limit of approximately 500 bytes.