Problem Overview
Connecting an Omron CJ2M-CPU3x programmable controller to a Yaskawa DX200 motion controller over EtherNet/IP can fail with persistent tag set errors even when the TCP/IP session establishes successfully. The CIP connection completes the encapsulation handshake (forward_open, register_session) but the implicit or explicit message transfer never succeeds because the target EtherNet/IP node the scanner is bound to does not exist on the wire, or is owned by another device (typically a third-party Ethernet-controlled peripheral such as a welding power source).
Field reports consistently show the failure mode is the same: the Connection Status LED on the CJ2M-CPU3x built-in EtherNet/IP port (port 1) goes solid green or flashes to indicate link, but tag data never updates and the I/O Communications Error flag (bit in the Connection_Error_Status word) sets immediately. The DX200 reports the originator as "Not Found" or shows EtherNet/IP Scanner: Tag Set Mismatch (Code 0xD0) on its programming pendant.
Root Cause: IP Address Collision with Auxiliary Equipment
In the referenced incident, the cell contained a Miller Continuum welder with an embedded Ethernet control module. That module occupied the same IP the Yaskawa DX200 scanner was trying to reach on the CJ2M. Because the welder accepted TCP connections on port 44818 (EtherNet/IP encapsulation port) but did not speak CIP assemblies matching the tag set, every forward_open from the DX200 returned a non-CIP RST/timeout that the scanner logged as a tag set error.
| Layer | Expected | Observed |
|---|---|---|
| Link (Layer 1/2) | Green link on switch port | Green link on switch port |
| Network (Layer 3) | ARP reply from CJ2M CPU IP | ARP reply from Miller welder MAC |
| Transport (Layer 4) | TCP 44818 forward_open to CJ2M | TCP 44818 forward_open to welder |
| Application (CIP) | Successful register_session + forward_open | Session rejected or no CIP service |
Yaskawa and Omron joint tech support (two representatives from each manufacturer working alongside the integrator) confirmed the collision only after running a Wireshark capture of the DX200 originator traffic and matching the destination MAC address against the welder's factory-assigned MAC sticker.
Tag Set Fundamentals for CJ2M and DX200
An EtherNet/IP tag is a named logical reference to one or more contiguous PLC words (e.g., D00100–D00103). A tag set bundles up to eight tags into a single cyclic or change-of-state I/O connection. Per Omron's connection guide for CS/CJ/NJ-series EtherNet/IP, the CJ2M allows a maximum of 8 tags per tag set and up to 32 tag sets in the target's connection table, depending on the CPU unit variant.
| Parameter | CJ2M-CPU31/33/35 | CJ2M-CPU11/13/15 (with CP1W-CIF41) |
|---|---|---|
| EtherNet/IP ports | 1 built-in (port 1) | 0 built-in; option unit required |
| Max connections (CIP) | 32 (16 originators + 16 targets) | 8 (4 originators + 4 targets) |
| Max tags per tag set | 8 | 8 |
| Max tag sets | 32 | 16 |
| Min RPI (ms) | 1 | 5 |
| Max I/O data per connection (bytes) | 504 | 504 |
Reference: Omron CS/CJ/NJ Series EtherNet/IP Connection Guide (P626).
The DX200 must receive the CJ2M's EDS file (Electronic Data Sheet) so its scanner can resolve the CJ2M into a device catalog entry. The CJ2M-CPU3x EDS is shipped with CX-One / Sysmac Studio 1.40 or later as OmronCJ2M-CPU3x_Vxx.eds. Importing the EDS before defining the tag set in MotionWorks is mandatory; otherwise the tag set selector will not list CJ2M assembly instances.
Step-by-Step: Configure a Tag Set for CJ2M to DX200
Prerequisites
- CX-One v4.5x or Sysmac Studio 1.40+ installed on the programming PC
- Yaskawa MotionWorks IEC 3.x or Yaskawa Smart Pendant functionality enabled
- EDS file for the CJ2M-CPU3x loaded on both the CX-One and MotionWorks projects
- Ethernet switch (managed, IGMP snooping capable if multicast T-class is used)
- Static IP assignments documented for every device in the cell
Step 1: Reserve a Unique Subnet Slot for the CJ2M
Before touching the PLC, ARP-scan the cell to enumerate every device already responding on port 44818. From a Windows command prompt:
for /L %i in (1,1,254) do @ping -n 1 -w 100 192.168.1.%i | find "Reply"
Cross-reference every reply against the cell documentation. No two EtherNet/IP devices may share an IP or a MAC. If the welder or any other Ethernet-controlled peripheral occupies the planned CJ2M IP, re-address the peripheral to a non-routed management VLAN before continuing.
Step 2: Assign the CJ2M EtherNet/IP Port IP
In CX-Programmer, navigate to IO Table & Unit Setup → Built-in Port / Ethernet → TCP/IP Settings. Enter:
| Field | Value |
|---|---|
| IP Address | 192.168.1.20 (example) |
| Subnet Mask | 255.255.255.0 |
| Default Gateway | 0.0.0.0 (cell-internal only) |
| Port No. (EIP) | 44818 (default; do not change) |
| FINS Node | 20 (must match last octet for FINS routing) |
Transfer the settings to the CPU and cycle power to the bus. Verify with ARP -a from the programming PC that the new IP resolves to the CJ2M's MAC (printed on the CPU label, format 00-00-0A-96-xx-xx for Omron built-in Ethernet).
Step 3: Register the Tag Set on the CJ2M (Target Side)
Open the Tag Sets dialog in CX-Programmer (Tools → EtherNet/IP → Tag Sets). Click New Tag Set and configure:
-
Tag Set Name: e.g.,
ToDX200_Status - Direction: Input (target → originator) if the DX200 reads from CJ2M; Output (originator → target) if the DX200 writes
- I/O Type: Heartbeat for diagnostics, Change of State for event-driven, or Cyclic for fixed RPI
- RPI (Requested Packet Interval): 10 ms (typical for motion systems; do not exceed DX200 scanner's min RPI)
- Timeout Multiplier: x4 (industry default for non-safety)
Add up to 8 tags per set. Example for a robotic weld cell status block:
| Tag | PLC Address | Data Type | Length (words) |
|---|---|---|---|
| WeldReady | W0.00 | BOOL | 1 (packed) |
| PartPresent | W0.01 | BOOL | 1 (packed) |
| JobNumber | D100 | INT | 1 |
| RecipeID | D101 | INT | 1 |
| WeldCurrent | D102 | INT | 1 |
| ArcVoltage | D103 | INT | 1 |
| WireFeedSpeed | D104 | INT | 1 |
| TravelSpeed | D105 | INT | 1 |
Each tag occupies 2 bytes (one word) on the wire. Total payload = 8 words = 16 bytes, well under the 504-byte CIP connection ceiling.
Step 4: Register the CJ2M on the DX200 Scanner (Originator Side)
In the DX200 pendant, navigate to SETUP → FUNCTION → Ethernet/IP → Scanner:
- Select Add Device and browse the EDS catalog; choose
Omron CJ2M-CPU3x. - Enter the IP address reserved in Step 1 (e.g., 192.168.1.20).
- Set Connection Type to Exclusive Owner (for cyclic I/O) or Input Only (heartbeat only).
- Map the Output Assembly Instance (CJ2M = 0x64 / 100 decimal) and Input Assembly Instance (CJ2M = 0x65 / 101 decimal). These are the standard assembly instances defined in the CJ2M EDS.
- Assign the tag set defined in Step 3 to the connection. The DX200 will auto-allocate configuration assembly 0x66 (102) for the connection path.
- Set the Originator RPI to match the CJ2M's tag set RPI exactly. A mismatch of even 1 ms can produce intermittent "Connection Timed Out" faults.
Step 5: Save and Download
Save the DX200 project to compact flash. Cold-start the controller (CONTROL POWER OFF/ON) so the scanner rebuilds the CIP connection table. The CJ2M EtherNet/IP Link LED should be solid green within 5 seconds; the DX200 pendant should display Connection Active under the scanner status page.
Diagnostic Tools and Capture Procedure
When the tag set error persists after the configuration steps above, capture a network trace to confirm CIP traffic is reaching the CJ2M:
- Install Wireshark 3.6+ on a laptop.
- Mirror the DX200's switch port to the laptop's port (configure SPAN on the managed switch).
- Apply display filter:
enip || cip. - Look for
SendRRData(encapsulation) followed bySendUnitDatacarrying aForward_OpenCIP service (0x006F). - Verify the destination IP in the
ENIPRequestpacket header matches the CJ2M's reserved IP. If it does not, the DX200 tag set definition points at the wrong node — almost always a stale IP entered during commissioning. - If the destination IP is correct, check the response. A
Forward_Openwith status0x01= success,0x04= connection not configured,0x08= invalid segment,0x0D= not enough resources,0x1F= connection timeout,0xD0= tag set not found.
Error Code Matrix
| DX200 / CJ2M Code | Meaning | Likely Cause | Corrective Action |
|---|---|---|---|
| 0x01 | Connection success | — | Proceed to verification |
| 0x04 | Connection not configured | Tag set not defined on target | Recreate tag set in CX-Programmer, transfer, cycle power |
| 0x08 | Invalid segment | EDS path mismatch | Re-import CJ2M EDS into MotionWorks |
| 0x0D | Not enough resources | CJ2M over 32 connections | Audit and remove stale connections in CX-Programmer |
| 0x1F | Connection timeout | Network latency / IP conflict | Verify IP uniqueness; check RPI ≤ scanner timeout multiplier × 4 |
| 0xD0 | Tag set not found | Tag set name typo in DX200 | Compare tag set name character-by-character |
| DX200 E4101 | Scanner link down | No ARP reply from target | Run ARP scan; check switch port VLAN |
| DX200 E4104 | Identity mismatch | Vendor ID / Device Type not matching EDS | Re-import current EDS; clear scanner cache |
Verification
- In CX-Programmer, monitor the tag set's
Connection_Statusbit in the CJ2M Network Configuration window — must read Connected. - From the DX200 pendant, navigate to
EtherNet/IP → Scanner → Connection Statusand confirm all assemblies show Active and the Production Count is incrementing. - Force a value into a tag in CX-Programmer (e.g.,
D102 = 250) and confirm the corresponding register on the DX200 updates within the configured RPI window. - Cycle power on the cell and confirm the connection re-establishes automatically within 10 seconds (CJ2M default link-up time).
Field-Proven Caveats
- Always ARP-scan before commissioning. The incident in this article cost four hours of joint manufacturer support. A 30-second ping sweep would have identified the welder IP collision immediately.
- Document every static IP in the cell schematic, including welding power sources, vision systems, barcode readers, and HMI panels. Treat port 44818 as a critical asset.
- Use VLANs to segment EtherNet/IP control traffic from non-CIP peripherals. Many welding power sources do not need to be on the same broadcast domain as the PLC scanner.
- Import the EDS file before defining the tag set in MotionWorks. The tag set selector will be empty or generic if the EDS is missing.
- Match RPI exactly between originator and target. The DX200 will round down, but the CJ2M will reject any RPI faster than its scan cycle permits.
- Do not enable IGMP snooping unless all switches support CIP multicast registration (IGMP v2 with CIP-specific multicast groups 239.192.x.x). T-class multicast without snooping support causes "ghost" connection drops.
When to Escalate
If the IP subnet is clean, the EDS is current, and the tag set definitions match, escalate to Yaskawa Motion Control support with a Wireshark capture and the DX200 project file. For Omron-specific CIP stack questions, reference the CJ2M-CPU3x EtherNet/IP Function Block manual (Cat. No. W465) and open a case through the Omron Industrial Automation technical support portal.
FAQ
What is the maximum number of tags in a single CJ2M EtherNet/IP tag set?
Up to 8 tags per tag set on the CJ2M-CPU3x. Total tag sets are limited to 32 for the built-in EtherNet/IP port, with a combined maximum of 32 CIP connections (originators plus targets). See the Omron CS/CJ/NJ Series EtherNet/IP Connection Guide for full limits.
Why does my DX200 show "Tag Set Mismatch (Code 0xD0)" when the CJ2M tag set is defined?
The tag set name in the DX200 scanner configuration must match the CJ2M's tag set name character-for-character (case-sensitive). Code 0xD0 means the originator requested a tag set that does not exist on the target. Re-import the CJ2M EDS into MotionWorks and re-create the tag set binding.
Can a third-party device cause an Omron-Yaskawa EtherNet/IP connection to fail?
Yes. Any Ethernet device that occupies the same IP address as the CJ2M on port 44818 will accept the TCP encapsulation and either reject the CIP service or never reply, causing the DX200 to log a tag set error. In the documented case, a Miller Continuum welder was occupying the reserved IP. Always ARP-scan the subnet before commissioning.
What RPI should I use between a CJ2M and a DX200?
10 ms is the typical starting point for robotic weld cells. The CJ2M built-in EtherNet/IP port supports down to 1 ms RPI, but the DX200 scanner's minimum is 2 ms. Match the originator RPI to the target RPI exactly to avoid "Connection Timed Out" faults at the timeout multiplier (default x4).
Do I need the EDS file from Yaskawa or from Omron?
You need the CJ2M EDS on the DX200 scanner side so the DX200 can resolve the CJ2M as a known EtherNet/IP device. The Yaskawa DX200 does not require an EDS on the CJ2M side, but you must import the Yaskawa DX200 EDS into CX-Programmer if the CJ2M is acting as the scanner and the DX200 as the adapter (less common topology).