EtherNet/IP Overview

The Automation1 controller supports EtherNet/IP Industrial Ethernet protocol adapters.

EtherNet/IP uses TCP and UDP communication to implement the Common Industrial Protocol (CIP) over an Ethernet connection. CIP is frequently used for communication with Ethernet-based PLCs, I/O modules, and other simple fieldbuses or I/O networks.

EtherNet/IP uses implicit and explicit messaging for communication.

Explicit messaging uses TCP communication to set or get one or more explicit objects. Automation1 does not support vendor-specific explicit objects. Automation1 only supports explicit messaging that is necessary for the EtherNet/IP standard for the objects that follow: 

  • Identity
  • Message router
  • TCP/IP
  • Ethernet link
  • LLDP
  • File

Implicit messaging uses UDP communication to send and receive scheduled data between the scanner and adapter. The scanner and adapter exchange data at a fixed Requested Packet Interval (RPI), which can be configured by the EtherNet/IP scanner. Automation1 supports an RPI in the range of 1 millisecond to 1,000 milliseconds. Automation1 supports up to two connections at the same time: the I/O Block 0 and the I/O Block 1 connections. The table that follows shows the information that the EtherNet/IP implicit data model includes.

Table: EtherNet/IP Implicit Data Model

Connection Name Implicit Assembly Name Access
I/O Block 0 InputBlock0 Read-only
OutputBlock0 Read/Write
I/O Block 1 InputBlock1 Read-only
OutputBlock1 Read/Write

Licensing

The Industrial Ethernet (-IE) licensing option of Automation1 supports the EtherNet/IP stacks that are on the controller: 

  • -IE1: No EtherNet/IP adapter support

  • -IE2: No EtherNet/IP adapter support

  • -IE3: EtherNet/IP adapter support

Networking

Automation1 supports the EtherNet/IP protocol on PC and drive-based controllers. The supporting hardware is different for the different controller types.

Drive-Based Controllers

Automation1 supports real-time networking capabilities with the EtherNet/IP protocol on drive-based controllers through the onboard Industrial Ethernet network interface. The drive-based controller network interface has two Industrial Ethernet ports labeled A and B. For EtherNet/IP, only port A is available for communication.

IP Configuration

Use Automation1 Studio to configure the applicable device driver for your network interface and to configure the IP networking information.

Create an EtherNet/IP Adapter Connection

You must create a connection to enable the EtherNet/IP adapter on the controller. To manage the current connections, click the Edit button on the Industrial Ethernet tab. For more information about this tab, see the Industrial Ethernet Tab section of the Variables & I/O module in the Develop workspace.

Data Access

After you create a connection, you can add variable mappings to it. Automation1 uses Industrial Ethernet mappings to expose the implicit messaging assemblies of the EtherNet/IP adapter. These Industrial Ethernet mappings connect the memory regions of the EtherNet/IP adapter data to arbitrary controller data types. The table that follows shows the access level of the registers.

Table: Register Access Level

EtherNet/IP Assembly Automation1 Register Access
InputBlock0 Input Block 0 Read-only
OutputBlock0 Output Block 0 Read/Write
InputBlock1 Input Block 1 Read-only
OutputBlock1 Output Block 1 Read/Write

You can configure the fields that follow for each Industrial Ethernet register mapping: 

  • Name: Specifies the name of the variable. The name is automatically converted into an AeroScript variable by the controller. You can then use it in programs or libraries.

  • Count: Specifies how many consecutive sequences there are of this variable.

  • Type: Configures the EtherNet/IP data as the specified data type. See the Supported Data Types table that follows for the data types that are supported.

  • Byte Address: Configures the byte offset of the register.

  • Bit Address: Configures the bit offset of the resgister.

    • The final address is the sum of byteAddress * 8 + bitAddress.

    • Non-bit data types must be 8-bit byte aligned.

  • Comment: You can add information about the mapping.

Table: Supported Data Types

Data Type Description
Bit 1-bit Boolean value
UInt8 8-bit unsigned integer
UInt16 16-bit unsigned integer
UInt32 32-bit unsigned integer
Int8 8-bit signed integer
Int16 16-bit signed integer
Int32 32-bit signed integer
Float32 32-bit single-precision floating-point value
Float64 64-bit double-precision floating-point value

AeroScript

After you configure the Industrial Ethernet mappings, the controller automatically converts the information into AeroScript properties. The code sample that follows shows the properties that would be generated from an example mapping.

Table: AeroScript Properties for Industrial Ethernet Mappings

Register Name Count Type Byte Address Bit Address
Input Block0 inInt 1 Uint32 0 0
Output Block 0 outReals 4 Float64 8 0

Industrial Ethernet mappings converted into AeroScript

library property $inInt as integer
library property $outReals[$index as integer] as real

Export AeroScript Mappings to Third-Party Files

You can export EtherNet/IP Adapter mappings to use with third-party EtherNet/IP Scanners that are using Automation1 Studio.

EtherNet/IP Status Items / Data Collection

Automation1 supplies many EtherNet/IP status items that you can use directly in a program or through Data Collection. All of the EtherNet/IP status items are in the System category. You can get EtherNet/IP status items with the StatusGetSystemItem() function. You can add the EtherNet/IP status items to Data Collection with the DataCollectionAddSystemSignal() function.

To get status information for the EtherNet/IP adapter configuration, use the status items that follow:

  • EtherNetIp Adapter Enabled

  • EtherNetIp Adapter Connected

  • EtherNetIp Adapter Error

To get the number of bytes in each of the input and output assemblies configured on the EtherNet/IP scanner, use the status items that follow:

  • EtherNetIp Adapter Input Block 0 Size

  • EtherNetIp Adapter Input Block 1 Size

  • EtherNetIp Adapter Output Block 0 Size

  • EtherNetIp Adapter Output Block 1 Size

To get access to the data that is sent over the EtherNet/IP connection, use the status items that follow:

  • EtherNetIp Adapter Input Block 0

  • EtherNetIp Adapter Input Block 1

  • EtherNetIp Adapter Output Block 0

  • EtherNetIp Adapter Output Block 1

The Input Block and the Output Block status items must have one more data field to specify the connection index, data type, byte offset, and bit offset. See the list that follows: 

  • $Index: The index of the connection defined in Automation1. The first created connection is index 0. To see the currently defined connections, go to the Variables & I/O module in the Develop workspace and open the Industrial Ethernet tab.

  • $DataType: The type of the data.

  • $BitOffset: The bit offset of the data item as defined in the EtherNet/IP mapping.

  • $ByteOffset: The byte offset of the data item as defined in the EtherNet/IP mapping.

To find the correct additional data value, use the computeEtherNetIpAdditionalData() function. If you want to use this function, you must add the code to your AeroScript program. See the example that follows.

Program Example: Finding the correct additional data value

function computeEtherNetIpAdditionalData($Index as integer, $DataType as EtherNetIpRegisterDataType, $BitOffset as integer, $ByteOffset as integer) as integer
	var $additionalData as integer			
	$additionalData = ($Index << 28) & 0xF0000000 | ($DataType << 23) & 0x0F800000 | ($BitOffset << 20) & 0x00700000 | ($ByteOffset & 0x000FFFFF)				
	return $additionalData
end

program
	$iglobal[0] = computeEtherNetIpAdditionalData(0, EtherNetIpRegisterDataType.Float64, 0, 256)
end

Compatible Network Interface Cards

The NIC devices that follow are supported by INtime to use with EtherNet/IP on the PC-based Automation1 controller. Select the drop-down based on the version of INtime installed on your PC.

Select INtime 7.0.23244.1 if you originally installed Automation1 2.7 or newer on your PC.

Select INtime 6.4.19245.2 if you originally installed Automation1 2.6 or older on your PC.

Communicating with an EtherNet/IP Scanner

This section describes how to verify explicit and implicit communication between the Automation1 controller (EtherNet/IP adapter) and Studio 5000 (EtherNet/IP scanner). The instructions use a Rockwell Automation 5069-L306ER PLC as the EtherNet/IP scanner and version 36.0 of Studio 5000.

PLC Setup

The procedure that follows shows you how to connect to the PLC using Studio 5000 and how to configure the onboard Ethernet ports of the PLC.

Explicit Messaging Test

The procedure in the drop-down that follows shows you how to test explicit messaging by getting the VendorId from the Automation1 controller.

Implicit Messaging Test

The procedure in the drop-down that follows shows you how to test implicit messaging by using AeroScript to communicate between the PLC and the test PC.