EtherNet/IP on Siemens ERTEC 200P: Implementation Reference

David Krause9 min read
Industrial NetworkingSiemensTechnical Reference
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Overview

The Siemens ERTEC 200P is an ASIC designed primarily for PROFINET device development, integrating a dual Ethernet PHY, ARM9 core, and on-chip peripherals targeting industrial I/O. Because the silicon exposes Layer 2 access through the PROFINET Device Development Kit (DevKit), EtherNet/IP — which is built on CIP over standard Ethernet/TCP/UDP — can be ported to the same hardware without modification. This reference describes the protocol requirements, software stack components, and licensing constraints needed to run an EtherNet/IP node on the ERTEC 200P.

Hardware Platform: ERTEC 200P Capabilities

The ERTEC 200P integrates the resources required for both PROFINET and EtherNet/IP device implementations:

  • Integrated dual 100 Mbit/s Ethernet PHY supporting switch-internal cut-through and store-and-forward modes. The PHY is protocol-agnostic; the "PROFINET-IP" chapter label in the datasheet refers to PROFINET's use of the PHY, not an exclusive hardware lock.
  • ARM926EJ-S core (typically 250 MHz) for application and stack execution.
  • External memory interface for SDRAM/SRAM/Flash to host the protocol stack, CIP object library, and application code.
  • Enhanced Real-Time Ethernet Controller (ERTEC) MAC with IRT-aware cut-through, but usable as a standard IEEE 802.3 MAC when PROFINET RT/IRT are disabled.
The PHY itself is standard Ethernet. All protocol discrimination happens in firmware and software layers. No silicon change is required to switch from PROFINET to EtherNet/IP.

Protocol Foundation: CIP on Ethernet

According to ODVA publication PUB00138R8 CIP on Ethernet, EtherNet/IP adapts the Common Industrial Protocol (CIP) to standard Ethernet transport. CIP provides a unified object model that is identical across DeviceNet, ControlNet, and EtherNet/IP — only the link-layer encapsulation differs. On Ethernet, CIP rides on:

Layer Function Standard
Physical 100 Mbit/s, full duplex, switched IEEE 802.3
Data Link MAC addressing, frame format IEEE 802.3
Network IP addressing, fragmentation IETF RFC 791 (IPv4)
Transport Explicit messaging, I/O connections UDP (port 2222 implicit), TCP (port 44818 explicit), IETF RFC 793/768
Application CIP services, object model ODVA CIP volumes 1–7

As outlined in the Rockwell Automation EtherNet/IP white paper, a device can behave as either an Adapter (server I/O device) or Scanner (master/PLC-class) node. Adapter functionality is the lowest-effort entry point on the ERTEC 200P.

Software Stack Components on the DevKit

The PROFINET Device Development Kit for ERTEC 200P exposes its TCP/IP subsystem as a reusable wrapper. Per the Siemens TCP/IP Stack manual, this component is responsible for:

  • TCP and UDP socket handling, including listen/accept, connect, send, receive.
  • IP packet send/receive through the ERTEC MAC driver.
  • ARP, ICMP, and optional IGMP/MLD support.
  • BSD-style socket API for application code.

For EtherNet/IP, the DevKit TCP/IP stack supplies the IETF-defined transport layer functions. Above it, the application supplies the CIP encapsulation layer and CIP object library.

Layer 2 Access

The DevKit exposes Layer 2 (raw Ethernet) send/receive hooks, which means the application can emit EtherType 0x0800 (IPv4), 0x0806 (ARP), 0x88CC (LLDP), and 0x88A4 (EtherNet/IP encapsulation header on UDP/TCP) without interference from PROFINET RT/IRT framing. To free the MAC for non-PROFINET traffic:

  1. Disable PROFINET RT/IRT scheduling in the DevKit configuration.
  2. Release the IRT time-slot reserves; switch the MAC to standard store-and-forward.
  3. Register an EtherType filter for 0x0800 and 0x88CC so that standard Ethernet/IP/LLDP frames reach the socket layer.

Required CIP Objects for an Adapter

An EtherNet/IP Adapter must expose a defined subset of CIP objects. Minimum object list for a class-A adapter:

Class Code (hex) Object Required
0x01 Identity Mandatory
0x02 Message Router Mandatory
0x03 DeviceNet (required field set even on EtherNet/IP) Mandatory for ODVA conformance
0x04 Assembly Mandatory for I/O
0x05 Connection Mandatory for I/O
0x06 Connection Manager Mandatory
0x0F Parameter Mandatory
0x10 Parameter Group Mandatory if Parameter objects are grouped
0x44 EtherNet/IP Link Mandatory
0x45 EtherNet/IP Interface Configuration Mandatory
0xF5 TCP/IP Interface Mandatory
0x47 QoS (DSCP) Recommended
0x48 LLDP Management Optional

Implementations must respond to the Get_Attribute_Single and Set_Attribute_Single services (service codes 0x0E, 0x10) on the supported instances. Instance 0 (class attributes) and Instance 1 of the Identity object must always be reachable.

IGMP and Multicast Considerations

EtherNet/IP uses IP multicast for Class 1 and Class 3 implicit I/O connections (UDP port 2222, multicast group 239.192.1.0–239.192.1.255 reserved for CIP transport class). Although ODVA does not mandate IGMPv2/v3 join support on simple adapters, leaving it out means the device depends on a flood-from-switch behavior and may not scale on managed networks.

  • Recommended: Implement IGMPv2 join/leave for the multicast groups assigned by the scanner during Forward_Open parameter negotiation.
  • Acceptable for non-managed networks: Skip IGMP; treat the MAC multicast filter directly using the multicast address mask exposed by the ERTEC MAC registers.
  • Hardware filter: Program the ERTEC 200P hash table for the assigned multicast destination so non-subscribed frames are dropped at the MAC.

Transport Layer Configuration

UDP Port 2222 — Implicit I/O

The CIP encapsulation layer for implicit messaging uses UDP port 2222. On the ERTEC 200P, configure the TCP/IP wrapper to:

  • Bind a UDP socket to 0.0.0.0:2222.
  • Enable receive for the multicast groups assigned at runtime.
  • Set DSCP field per CIP Connection object (typically 0x2E for Class 1 priority, 0x00 for Class 3).

TCP Port 44818 — Explicit Messaging

All CIP explicit messaging and encapsulation commands (ListIdentity, SendRRData, SendUnitData) traverse TCP port 44818. The DevKit TCP/IP stack supports up to 16 concurrent TCP connections; the ERTEC 200P resource ceiling is comfortable for an Adapter role.

Encapsulation Header

Every explicit message begins with a 24-byte encapsulation header. The application must parse:

struct EncapsulationHeader {
    uint16_t command;
    uint16_t length;
    uint32_t session_handle;
    uint32_t status;
    uint8_t  sender_context[8];
    uint32_t options;
};

Supported commands per ODVA: 0x0065 ListIdentity, 0x006F SendRRData, 0x0070 SendUnitData, 0x0064 RegisterSession, 0x0066 UnregisterSession.

ODVA Membership and Stack Licensing

The CIP specification is publicly available, but devices bearing the ODVA "EtherNet/IP Conformant" mark require conformance testing. Practical licensing paths:

Path Cost Effort Use Case
Become ODVA Vendor Member Annual membership fee Medium Long product line, branding required
License a stack (e.g., from ODVA member vendors) Per-project royalty Low Single product, faster time-to-market
Self-implement from CIP volumes None (manual IP effort) High Restricted budget, in-house CIP expertise
Without ODVA conformance test results, the device may legally function on EtherNet/IP but cannot claim the ODVA trademark or appear in vendor catalogs as "EtherNet/IP conformant." The CIP specification itself is downloadable from odva.org after free registration.

Implementation Path: Adapter Role

The simplest ERTEC 200P EtherNet/IP deployment is an Adapter. Implementation steps:

  1. Project setup: Start from the PROFINET DevKit sample; remove PROFINET-specific task scheduling.
  2. TCP/IP layer: Reuse the DevKit TCP/IP wrapper. Configure IP addressing via DHCP or static; populate the TCP/IP Interface object (0xF5).
  3. EtherNet/IP encapsulation: Implement a thread/task handling the TCP 44818 listener and the encapsulation command parser.
  4. CIP object database: Implement Identity, Message Router, Connection Manager, Assembly, Connection, Parameter, TCP/IP Interface, and EtherNet/IP Link objects.
  5. I/O connection engine: Handle Forward_Open (service 0x54) and Forward_Close (0x4E) on the Connection Manager. Track Class 1 and Class 3 connection instances in the Connection object.
  6. Multicast plumbing: Join the multicast group on Forward_Open, leave on Forward_Close.
  7. Diagnostic counters: Populate the EtherNet/IP Link object counters for transmit/receive errors, dropped frames, and octet counts.

Memory Footprint

Indicative RAM/ROM partitioning for an Adapter-only stack on ERTEC 200P:

Component RAM (KB) ROM (KB)
TCP/IP wrapper + sockets 32 48
CIP object database (base) 12 40
Connection Manager state 4 8
Encapsulation layer 4 12
Application + I/O buffers 32 24
Reserved 16 0
Total ~100 KB ~132 KB

Leave at least 1 MB SDRAM headroom for application expansion; the ERTEC 200P typically pairs with 8–32 MB SDRAM.

Verification and Conformance Testing

Once the stack is operational, validate against the ODVA EtherNet/IP CT (Conformance Test) suite:

  1. Wire capture: Run Wireshark with an EtherNet/IP dissector enabled. Verify ListIdentity response, RegisterSession/UnregisterSession handshake, and Forward_Open parameter negotiation.
  2. Behavior against reference scanner: Use Rockwell Studio 5000 Logix Designer or a third-party CIP scanner to drive the adapter under nominal and fault conditions.
  3. Stress test: Cycle power, force IP address conflict, test duplicate session rejection, and verify Connection Timeout multiplier behavior (typically 4x RPI).
  4. EDS file: Publish an EDS (Electronic Data Sheet) describing object instances, parameter defaults, and connection paths so the scanner can configure the adapter offline.

Troubleshooting Matrix

Symptom Likely Root Cause Remediation
No response to ListIdentity (UDP/TCP) Encapsulation task not started or socket not bound Verify TCP 44818 listener; check DevKit task priority
RegisterSession returns error 0x0001 Unsupported protocol version or invalid sender context Set protocol version 1, ensure sender_context is echoed back
Forward_Open rejected with 0x0104 (connection not found) Connection Manager object not implemented or wrong instance Confirm Connection Manager class code 0x06, instance 1
I/O data dropped on managed switch IGMP not joined; multicast flooded then filtered Implement IGMPv2 join on Forward_Open
ARP not resolving scanner address TCP/IP wrapper not registering ARP responder Verify ARP handler in DevKit is linked to the MAC RX path
Identity object reports wrong vendor ID ODVA-assigned vendor ID not populated Apply for ODVA vendor ID; replace placeholder 0x0000
EDS cannot be parsed by scanner EDS file syntax error or unsupported revision Validate EDS using ODVA EDS checker tool

Field-Proven Caveats

  • Clock drift: The DevKit's internal PTP stack may still emit sync frames; ensure PROFINET sync is fully disabled to avoid spurious multicast frames confusing the scanner.
  • PHY LED behavior: LED signaling is PROFINET-defined; expect non-standard link/activity behavior on EtherNet/IP. External LEDs may need to be re-mapped in firmware.
  • EMC: The hardware meets PROFINET EMC profiles; this covers EtherNet/IP but field installations should still observe CIP volume 2 recommended cable categories (Cat 5e minimum, Cat 6A for industrial sites > 50 m).
  • Concurrent PROFINET + EtherNet/IP: Theoretically possible but unsupported by the DevKit build chain and ODVA/SIEMENS documentation. Run only one industrial Ethernet protocol at a time.

Summary of Constraints

The ERTEC 200P silicon, exposed through the Siemens DevKit, supports EtherNet/IP Adapter implementation without hardware modification. The TCP/IP wrapper already in the DevKit satisfies IETF UDP/TCP requirements. IGMP remains an engineering decision. CIP objects must be implemented to ODVA specification. The only barriers are software effort and conformance licensing. A Vendor Member ODVA relationship, or a licensed stack, is the recommended path for production deployment.

Can the ERTEC 200P run EtherNet/IP without an ODVA stack license?

Yes. The TCP/IP wrapper, Layer 2 access, and CIP specification are usable without a commercial stack license. You must still implement the CIP object database, encapsulation layer, and connection manager yourself. You cannot claim ODVA conformance without passing the official CT suite, which is only available to Vendor Members.

Is IGMP mandatory for an EtherNet/IP adapter on ERTEC 200P?

No. ODVA does not require IGMP for adapters, but on switched networks with Class 1 multicast I/O, IGMPv2 join is strongly recommended. The DevKit TCP/IP stack exposes the APIs needed to implement the join/leave primitives using the ERTEC MAC multicast hash filter.

Which CIP objects must be present at minimum?

Identity (0x01), Message Router (0x02), DeviceNet (0x03), Assembly (0x04), Connection (0x05), Connection Manager (0x06), Parameter (0x0F), TCP/IP Interface (0xF5), and EtherNet/IP Link (0x44) plus EtherNet/IP Interface Configuration (0x45). Additional objects depend on the device profile.

Can the ERTEC 200P act as an EtherNet/IP scanner?

Technically yes if the application layer provides scanner state machines, but the DevKit is not packaged for scanner development and ODVA conformance testing for scanner-class devices is more demanding. Adapter is the supported entry point.

What EDS revision should be generated?

Use EDS revision 3.x or later for modern scanners (Studio 5000 v21+, RSLogix 5000 v16). Specify the ODVA-assigned vendor ID, device type, and parameter object defaults in the [Device] and [Param] sections.

Back to blog