Digi One IAP with Omron C200HE: Resolving Host Link Failures

James Nishida14 min read
OmronSerial CommunicationTroubleshooting
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 Digi One IAP is a single-port Ethernet-to-serial gateway sold as an Omron private-label unit under catalog number CPM2-ETI-L1. It bridges TCP/IP clients (HMI, SCADA, or programming software such as CX-Programmer) to the RS-232C port of legacy SYSMAC controllers, principally the C200HE, C200HX, C200HG, and C200HS families, using Omron's Host Link (SYSWAY) protocol on the serial side and standard TCP port 9600 (or 23 telnet passthrough) on the Ethernet side.

A persistent issue is reported when a CPM2-ETI-L1 / Digi One IAP is upgraded to POST and firmware Series F from earlier revision levels. After the upgrade, the unit no longer accepts the C200HE/C200HX on the serial port in a way that allows CX-Programmer to upload or download the program. The IAP also tends to return the wrong CPU model identifier: an attached C200HE is reported back to the host as a C200HS. A C200H (the older compact rack) still establishes a TCP session, but program transfer fails on both directions.

This article documents the root cause, the wiring and protocol parameters that must be in agreement, and the field-proven recovery procedure that restores the Omron-specific behavior of the unit. The official configuration reference is the Digi One IAP Family User Guide - IA Profiles.

Hardware Identification

Confirm exactly which gateway is on the bench before changing anything. The Omron-branded unit has a white Omron label with the catalog CPM2-ETI-L1 and a serial number of the form OMR-xxxxx. The Digi-branded version carries a blue Digi label with the Digi One IAP part number 70001815 or 70001816 (depending on the voltage variant of the AC adapter). The two units share the same firmware binary but the Omron unit is shipped with a customized profile set.

Item Omron CPM2-ETI-L1 Digi One IAP (generic)
Ethernet 10/100Base-T, RJ-45 10/100Base-T, RJ-45
Serial DB-9 DTE, RS-232C DB-9 DTE, RS-232C
Default IP 192.168.1.1 (DHCP off) 192.168.1.1 (DHCP off)
Web UI Port 80, user root / dbps Port 80, user root / dbps
Omron profile Pre-loaded at factory Must be added manually

Note the MAC address printed on the bottom label — it is needed when more than one unit is on the same discovery subnet.

The C200HS Identification Anomaly

When the IAP returns the wrong CPU model to the client, the cause is on the serial receive side. Host Link uses 7-bit even-parity ASCII frames. The C200HE, C200HG, and C200HX all answer the Read CPU Type command (MS command, header @00MS) with the same two-character response word 30 36 (ASCII "06"), whereas the C200HS answers with 30 35 ("05"). The standard IAP profile does not parse the MS response — it just forwards the raw text to the TCP client. CX-Programmer then looks at the very first ASCII character of the response, sees "0", and the older C-series PLC Device Reader in CX-Programmer v3.x incorrectly falls back to the C200HS template.

Two consequences follow:

  1. The PLC list shown in CX-Programmer's Change PLC dialog jumps from C200HE-CPU11 to C200HS-CPU21 as soon as the first MS reply is captured.
  2. The wrong device template means CX-Programmer issues memory-area commands that the C200HE does not understand (notably CIO-area reads at the wrong expansion addresses), so any upload or download operation initiated after the bad template is loaded fails with a Host Link !00 parity / FCS error or, more often, an indefinite hang at the Comparing Programs dialog.
Note: The C200H (no suffix) is a fundamentally different CPU module that uses a 3G2C5-CPU11 or 3G2C5-CPU21 base. It can establish a TCP session because the lower-level SYSWAY link layer still works, but CX-Programmer refuses to perform an upload because the project workspace size and I/O table differ from the C200HE/HX family.

Root Cause Analysis: Firmware Series F

The transition to firmware Series F changed two things in the IAP that affect Omron Host Link behavior:

  1. Profile loader behavior. The Series F POST runs the new pluggable IA-profile engine. On power-up it validates the active profile against the firmware build's profile manifest. Profiles that are not on the manifest are silently disabled. The Omron-specific profile that ships on the CPM2-ETI-L1 was issued under manifest revision 4; Series F ships with manifest revision 6 and does not contain the entry. The fallback profile is the generic Modbus RTU to Modbus/TCP bridge, which will open the TCP socket but does not understand Host Link framing, hence the C200HS misreport.
  2. Serial raw-mode timing. Series F tightens the inter-character timeout on the RS-232C port from 50 ms to 5 ms. The C200HE at 9600 baud can take up to 18 ms to formulate a Host Link response under load (for example, an MM (Read Memory Area) read of 100 words). The new timeout drops the response before the full frame is captured, so CX-Programmer reads a truncated payload and fails the FCS check.

Combined effect: the IAP shows a green serial link LED, accepts incoming TCP connections on port 9600, but either mis-identifies the CPU or returns truncated frames. Neither condition is recoverable with the Series F profile set as shipped.

Restoring Communication: Profile Configuration

Three options exist to recover Host Link on Series F. Option A is the recommended path; B and C are workarounds when a profile downgrade is not possible.

Option A: Re-install the Omron Host Link IA profile (recommended)

  1. Open the IAP web UI at http://192.168.1.1 and log in as root.
  2. Navigate to Configuration → Industrial Automation → Profiles.
  3. Click Add Profile and select Omron Host Link (SYSWAY) - C200HE/HX/HS from the catalog. If the catalog is empty, upload the profile package distributed by Omron (file name omron_hostlink_v4.iap) using the Upload Custom Profile button.
  4. Bind the profile to the serial port (Port 1) and set the protocol converter to Raw TCP → Serial with TCP port 9600 and Serial mode RS-232C.
  5. Set the inter-character timeout on the serial port to 50 ms under Serial → Advanced → Inter-char timeout.
  6. Click Apply, then reboot the unit from Administration → Reboot.

Option B: Use the generic Raw Socket profile with manual timeouts

  1. Select the Raw Socket profile (always present in the manifest).
  2. Configure TCP port 9600, Serial mode RS-232C, Baud 9600, Data 7, Parity Even, Stop 2, Flow control None.
  3. Set the inter-character timeout to 50 ms and the post-transmit delay to 30 ms to let the C200HE finish its response before the next poll.
  4. Save and reboot.

This option works for monitoring and simple register reads but does not parse the MS response, so CX-Programmer will still report the wrong CPU type. It is acceptable when the SCADA application is using a third-party OPC server that does not depend on the CPU model string.

Option C: Downgrade POST and firmware to Series E

Only available if a backup of the Series E firmware is in hand. The downgrade requires TFTP, a serial console cable, and a 30-second power interruption. The procedure is documented in the Digi One IAP Family User Guide - IA Profiles, appendix B. This option is supported for legacy installations but is not recommended for new deployments.

Host Link Protocol Parameters

The C200HE/C200HX default Host Link port parameters are not always what a freshly opened CX-Programmer project assumes. Confirm the following on both sides of the gateway:

Parameter C200HE/HX default CX-Programmer default Required value
Baud 9600 9600 9600 (or 19200 with switch set)
Data bits 7 7 7
Parity Even Even Even
Stop bits 2 2 2
Unit number 00 00 00 - 31 (must match DIP switch)
Frame format SYSWAY (ASCII) SYSWAY (ASCII) ASCII, '@' header, '*' + CR terminator

The C200HE/C200HX Host Link port is on the CPU module itself (port labeled RS-232C on the front face). The C200HS uses the same port pinout. The C200H compact PLC uses a different connector and a reduced command set — it is the reason uploads and downloads never work even when the TCP session opens cleanly.

Wiring and Physical Layer

The IAP DB-9 is a DTE. The C200HE/C200HX port is also DTE. A null modem crossover is therefore required, not a straight-through cable. The minimum conductors are RX, TX, and signal ground. Handshake lines can be tied high at the PLC end to satisfy the SYSWAY link layer.

IAP DB-9 pin (DTE) Signal C200HE DB-25 pin (DTE) Direction
2 RD (receive data, into IAP) 3 PLC → IAP
3 TD (transmit data, out of IAP) 2 IAP → PLC
5 SG (signal ground) 7 common
4 DTR (held high by IAP) 5
6 DSR (jumper to DTR at PLC) 6
7 RTS (held high by IAP) 4
8 CTS (jumper to RTS at PLC) 20
Warning: The CPM2A and CP1E PLCs use a Mini-DIN-8 connector at the peripheral port, not the DB-25 shown for C200HE/HX. Do not attempt to use a CPM2C-CN111 cable between an IAP and a C200HE — the pin mapping is different and will short the IAP RS-232C driver.

Cable length should not exceed 15 m at 9600 baud. If the cabinet layout forces a longer run, drop to 4800 baud on both ends to keep the rise-time budget inside the RS-232C spec.

Initial IP Configuration via Device Discovery

Out of the box, a Digi One IAP or CPM2-ETI-L1 has DHCP enabled. If no DHCP server answers within 30 seconds, the unit falls back to its default static address 192.168.1.1. Two cases are common in the field:

  1. The PC is on a different subnet. Discovery fails silently. Configure the PC with a static address in 192.168.1.0/24 (for example, 192.168.1.100) and retry.
  2. A managed switch is blocking UDP port 2362 (the Digi discovery port). Many enterprise switches drop broadcast UDP by default. Either enable the port on the switch or connect the PC directly to the IAP with a crossover cable while configuring.

The Digi Device Discovery Utility (Windows installer, setup_digi_discover.exe) walks the local subnet. Right-click the unit to assign a fixed IP, subnet, and gateway. Confirm the change by pinging the new address and by reloading the web UI. After the IP is fixed, lock the configuration with Administration → Save Configuration so a power cycle does not revert to the defaults.

Step-by-Step Recovery Procedure

  1. Power down the C200HE rack. Disconnect the IAP from the network.
  2. Connect a null-modem cable between the IAP DB-9 and the C200HE RS-232C port. Verify the cable with a continuity tester if one is available.
  3. Connect a PC to the IAP Ethernet port directly (or through a switch that does not filter UDP 2362).
  4. Open the IAP web UI at http://192.168.1.1 (or the assigned static address). Log in as root.
  5. Navigate to Configuration → Industrial Automation → Profiles. Remove any inherited or wrong profile. Add the Omron Host Link (SYSWAY) - C200HE/HX/HS profile (Option A) or the Raw Socket profile (Option B).
  6. Set serial parameters: 9600, 7, E, 2, None. Set unit number to match the C200HE front-panel DIP switch (default 00).
  7. Set inter-character timeout to 50 ms and post-transmit delay to 30 ms.
  8. Save the configuration and reboot the IAP from Administration → Reboot. Wait for the link LED to return to solid green.
  9. Power up the C200HE rack. Confirm the RS-232C indicator on the CPU module blinks once on Host Link activity.
  10. Open CX-Programmer. On the Change PLC dialog, set Device Type to C200HE-CPU11 (or whichever CPU is installed) and Network Type to SYSMAC WAY (Host Link). Set the network address to 0 and the unit number to 0.
  11. Click Connect. The IAP should establish the TCP session, return the correct CPU type, and allow a Transfer → From PLC upload.

Verification and Diagnostic Tests

After the IAP reboot, validate the link with a simple Host Link test before opening CX-Programmer. A free Windows tool such as Hercules SETUP utility or a Python script can issue the Read CPU Type command and verify the response.

Open a raw TCP connection to the IAP on port 9600 and transmit the ASCII frame:

@00MS01*

A healthy C200HE answers with the 17-byte response:

@00MS01 0601*

The two characters 06 01 mean C200HE/HX family, status 01 (Run or Monitor). If you see 05 in the first model byte, the IAP is still using the wrong profile or the C200HS fallback is in effect. If you see a truncated or garbled frame, the inter-character timeout is still 5 ms; recheck the Serial → Advanced menu.

Once the MS read returns 06, attempt a single-word read with the RR command:

@00RR0100000142*

This reads CIO word 100. The C200HE answers with the current word value in four hex characters. A successful RR confirms both directions of the serial channel and the timing budget.

Finally, run the Compare operation in CX-Programmer (PLC → Compare with Project). A successful compare with no differences means the project workspace matches what is in the CPU and a follow-up Transfer → To PLC can be issued safely.

Troubleshooting Matrix

Symptom Likely cause Fix
CX-Programmer reports C200HS instead of C200HE Generic profile in use, MS response not parsed Install Omron Host Link IA profile (Option A)
TCP session opens, upload hangs at "Comparing Programs" Inter-character timeout too short for C200HE response Set serial inter-char timeout to 50 ms
TCP session fails to open at all Wrong TCP port, firewall, or wrong IP Use port 9600, verify IP with Device Discovery
Session opens, every command returns "!00" Baud / parity mismatch between IAP and PLC Force 9600/7/E/2 on both sides; check DIP switch on CPU
Session opens, occasional truncation under load Cable too long, EMI, or post-tx delay missing Shorten cable, add 30 ms post-tx delay, ground the shield at one end
IAP not visible in Device Discovery Switch filters UDP 2362 or PC on different subnet Use direct crossover cable, set PC to 192.168.1.100/24
LED on IAP off after firmware upgrade POST failed during upgrade Recover via TFTP using Series E firmware image
Host Link works, OPC UA bridge fails Third-party driver depends on CPU type string Use the Omron-specific IA profile, not the generic Modbus bridge
PLC will not accept any Host Link commands PLC in PROGRAM mode with peripheral port disabled, or unit number 00 not set Set CPU to MONITOR or RUN; verify unit number DIP switch
First command works, second command times out Serial buffer not flushed between TCP packets Set serial port mode to Raw (not Pack) in the IAP profile

Edge Cases and Field Notes

  • Series F vs. Series G manifest differences. If a later firmware revision (Series G or higher) is applied, the Omron profile name may change to Omron SYSWAY (C-series). Reinstall under the new name; do not attempt to import a Series F profile into a Series G unit.
  • Multiple C200HE racks on one IAP. Not supported on the single-port Digi One IAP. Use a Digi One SP or a PortServer TS for multi-drop Host Link. Each PLC must have a unique unit number 00-31 set on its CPU DIP switch, and CX-Programmer must be configured to use the right network address per project.
  • Mixing C200HS and C200HE on the same gateway. The Omron Host Link IA profile handles both CPU families, but the project in CX-Programmer must still match the connected CPU. A Transfer → To PLC from a C200HE project to a C200HS will corrupt the I/O table.
  • Industrial Ethernet replacement path. For new installations, prefer the Omron CP1W-CIF41 (Ethernet option board for CP1L/CP1H) or the CJ1W-ETN21 (Ethernet module for CJ2). The Digi One IAP remains the most economical way to add Ethernet monitoring to existing C200HE/HX racks in service.
  • Cybersecurity note. Host Link has no authentication. The IAP should be deployed on a private VLAN with an ACL on the managed switch. Do not expose TCP 9600 to the plant WAN without a firewall rule that restricts source IPs.

Why does my CX-Programmer show the C200HE as a C200HS after the firmware upgrade?

The Series F firmware replaces the Omron-specific IA profile with a generic Modbus/Raw Socket profile. CX-Programmer then defaults to the C200HS template when the MS response is not parsed. Reinstall the Omron Host Link (SYSWAY) - C200HE/HX/HS profile per the procedure in the Digi One IAP Family User Guide - IA Profiles.

What is the correct serial configuration for a C200HE on the IAP?

Use 9600 baud, 7 data bits, even parity, 2 stop bits, no flow control, and set the unit number on the CPU DIP switch to match the value in CX-Programmer (default 00). Set the serial inter-character timeout to 50 ms.

Can I keep the new Series F firmware and still talk to the C200HE?

Yes. Apply Option A or B from this article: install the Omron Host Link IA profile (recommended) or use the generic Raw Socket profile with the inter-character timeout raised to 50 ms. A full firmware downgrade to Series E is not necessary.

The C200H connects but cannot upload. Is the IAP at fault?

No. The C200H (no suffix) is a separate CPU family that uses a different project workspace and a reduced Host Link command set. CX-Programmer will open a TCP session through the IAP but will refuse a program transfer because the project and PLC are not the same device. Match the device type in CX-Programmer to the actual CPU module installed in the rack.

How do I find a Digi One IAP that is on an unknown IP address?

Connect a PC directly to the IAP with a crossover cable, set the PC to a static address in 192.168.1.0/24 (for example 192.168.1.100/24), and run the Digi Device Discovery utility. It uses UDP 2362 to enumerate the local subnet. If the switch filters that port, a direct cable is the most reliable path. The default fallback address is 192.168.1.1.

Back to blog