Omron Host Link to Modbus Gateway: DSP and SCU Card Configuration

James Nishida15 min read
OmronSerial CommunicationTechnical 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 of the Omron Host Link to Modbus Conversion Problem

Legacy Omron PLC families — C200H, C500, CQM1, SRM1, and pre-firmware CJ1/CS1 racks without an Ethernet module — communicate on the serial backplane using the proprietary Omron Host Link protocol. Host Link is a master/slave command/response protocol riding on RS-232C, RS-422, or RS-485, but its frame structure, FCS checksum, and operand codes are not Modbus-compatible. When a downstream device (a Yokogawa DCS, an ABB Advant controller, a Schneider M340, or a SCADA server) only exposes Modbus RTU registers, an in-line protocol converter is mandatory.

Two production-grade paths exist:

  1. Invasive path: Install an Omron serial option card (C200H-ASC02, CJ1W-SCU21, CJ1W-SCU31, CJ1W-SCU41, CS1W-SCU21, CS1W-SCU31, CS1W-SCU41) on the CPU rack, configure it for Host Link slave or Modbus RTU master, and route Modbus directly to the ABB/Yokogawa side.
  2. Non-invasive path: Place an external protocol gateway — typically a Red Lion Data Station Plus (DSP) — between the existing Host Link port and the Modbus network. The DSP speaks Host Link on one serial port and Modbus RTU/TCP on the other, preserving the original PLC program untouched.
If the PLC is not owned by your organization (third-party skid, OEM machine) the non-invasive gateway path is the only acceptable solution. Rewriting the ladder to expose internal tags via Modbus requires source ownership and a full SAT.

Omron Host Link Protocol Frame Structure

Host Link frames are ASCII, terminated with a carriage return (0x0D), and protected by a two-character FCS (Frame Check Sequence) computed as the ones-complement of the 8-bit XOR of every ASCII byte between the @ header and the final character of the data block.

Field Bytes Value / Range
Header 1 @ (0x40)
Node number 2 00–31 ASCII; 00 = broadcast (no response)
Header code 2 Command mnemonic (RR, WR, RD, WD, RL, WL, RH, WH, RJ, WJ, TS, RS, etc.)
Text n Word address + channel count or data payload
FCS 2 Hex ASCII checksum
Terminator 2 * + CR (0x2A 0x0D)

Example read of three IR words from node 01 starting at IR 0100:

@01RR01000003 6A*\r

Where 6A is the FCS for the bytes 01RR01000003. Slave response on success:

@01RR030012340056AB78C*\r

The first 03 in the response is the word-count echo, followed by four hex characters per word. Modbus has no concept of a Host Link header code, no FCS byte, and no IR/HR/LR/DM area prefix — a gateway must translate both the addressing scheme and the transport encoding.

Hardware Inventory for the Conversion

Omron Serial Option Cards

Catalog Number PLC Family Ports Modes Supported
C200H-ASC02 C200H / C200HS / C200HE / C200HG / C200HX 1 × RS-232C + 1 × RS-422/485 Host Link, NT Link, Protocol Macro
CJ1W-SCU21 CJ1M / CJ2M 2 × RS-232C Host Link, Modbus RTU Master/Slave, NT Link
CJ1W-SCU31 CJ1M / CJ2M 2 × RS-422/485 Host Link, Modbus RTU Master/Slave
CJ1W-SCU41 CJ1M / CJ2M 1 × RS-232C + 1 × RS-422/485 Host Link, Modbus RTU Master/Slave
CS1W-SCU21 CS1G / CS1H 2 × RS-232C Host Link, Modbus RTU Master/Slave
CS1W-SCU31 CS1G / CS1H 2 × RS-422/485 Host Link, Modbus RTU Master/Slave
CS1W-SCU41 CS1G / CS1H 1 × RS-232C + 1 × RS-422/485 Host Link, Modbus RTU Master/Slave

The -SCU31 and -SCU41 variants are the most common choice for a Host Link-to-Modbus bridge because they natively support both protocols in firmware — no ladder protocol macro is needed. Dip-switch SW1 selects the protocol class; the CX-Programmer Port Settings tab confirms whether a given port is in Host Link, Toolbus, NT Link 1:1 / 1:N, Serial Gateway, or Modbus-RTU Slave mode.

External Gateways

Vendor Model Host Link Port Modbus / TCP Side
Red Lion Data Station Plus (DSP), Model DA70A or DA50A RS-232C / RS-422/485 Host Link slave Modbus RTU master, Modbus TCP client/server, up to 16 simultaneous protocols
Red Lion FlexEdge (DSP-USB-101 migration line) RS-232C Host Link slave Modbus TCP, MQTT, OPC UA, BACnet
ProSoft RLX-IFH RS-232C Host Link EtherNet/IP, Modbus TCP
Advantech ADAM-4570 / ADAM-4571 RS-232C/485 Host Link (driver) Modbus/TCP, web HMI
Red Lion supplies the XCDC-HOST Host Link cable kit (DB-9 to Omron mini-DIN) for direct DSP-to-CPU-rack connection. Generic null-modem adapters do not work because the Omron CPU serial port is pin-for-pin inverted versus a PC COM port.

Method 1 — Non-Invasive Red Lion Data Station Plus Gateway

This is the recommended path when the PLC program cannot be modified.

Prerequisites

  • Red Lion Data Station Plus with Crimson 3 (version 3.0 or later, build 3116+ recommended for stable Host Link parsing).
  • XCDC-HOST cable or equivalent Omron pin-out adapter (DB-9 female to Omron peripheral-port mini-DIN).
  • RS-485 tap (Phoenix Contact SUBCON-PLUS or equivalent) for multi-drop Host Link networks.
  • Modbus master/scanner (Yokogawa DCS, ABB AC800M, M340 BMXNOC0401, or any SCADA).
  • Static IP plan for the DSP Ethernet side and a node-number plan on the Host Link side.

Step-by-Step Configuration

  1. Wire the Host Link segment. If the existing segment is RS-232C one-to-one, connect the DSP port 1 to the Omron CPU peripheral port via the XCDC-HOST cable. If multi-drop RS-422 exists, tap into the trunk with proper termination (220 Ω across RDA/RDB at both ends).
  2. Configure DSP port 1 as a Host Link slave. In Crimson 3: Communications → Port 1 → Driver = Omron Host Link. Set Node Address to a free unit number (typically 01 for a single-PLC network, 02–31 if multiple slaves exist). Set baud rate, parity, and stop bits to match the PLC default (9600, 7-E-2 for legacy C200H, 9600/19200/38400 7-E-2 for CQM1/CJ1).
  3. Configure DSP port 2 (or Ethernet) as Modbus RTU/TCP. Communications → Port 2 → Driver = Modbus RTU Master for an RS-485 trunk to the DCS, or add a Modbus TCP server on the LAN interface. Enable Gateway Mode in Crimson 3 so that tags defined in the Host Link driver are exposed to the Modbus driver on a one-to-one mapping.
  4. Map the tags. In the Crimson 3 Database, create tags that pull from the Host Link address space. Use the conventions in the table below; Crimson 3 Host Link driver syntax: IR:0100, DM:0200, HR:0010, LR:0000, AR:0015, CH:0010.
  5. Export tags to Modbus. In Modbus Master → Tag Mapping, declare the same tags as 16-bit holding registers starting at offset 0 (4x00001). Crimson automatically repacks 32-bit floats across two consecutive 4x registers with configurable byte/word order — critical for cross-vendor data exchange.
  6. Write the configuration to the DSP. File → Write to Device. Reboot the DSP; the new mappings take effect on power-up.
  7. Verify from the Modbus side. Issue a Modbus function code 03 (Read Holding Registers) from the DCS or a Modbus poll utility. Confirm the values match the contents of the original IR/DM/HR words.

Address Translation Matrix (Host Link → Modbus)

Host Link Mnemonic Host Link Command Crimson 3 Syntax Modbus Register Type Typical Use
IR / CIO RR / WR IR:nnnn 4x Holding (40001+) I/O, internal relays, data link
HR RH / WH HR:nnnn 4x Holding (40101+ offset) Retentive bit storage
LR RL / WL LR:nnnn 4x Holding (40201+ offset) 1:1 data link between PLCs
AR RJ / WJ AR:nnnn 4x Holding (40301+ offset) System flags, diagnostic data
DM / D RD / WD DM:nnnn 4x Holding (40401+ offset) Data memory, recipes, setpoints
TIM / CNT PV RC / WC TC:nnnn 4x Holding (40501+ offset) Timer/counter current values
Reserve a 100-register address gap between each Omron memory area in the Modbus map. This prevents address collisions when the gateway transparently re-maps internal pointers and avoids the common commissioning mistake of overlapping a DM region with an HR region.

Verification Procedure

  1. From a laptop running Crimson 3, open Diagnostics → Live Data and confirm each declared Host Link tag is updating at the configured poll rate (default 100 ms).
  2. From a Modbus poll utility (Modbus Poll, CAS Modbus Scanner, or the DCS test client), read 4x00001 through 4x00010. The raw words must match the live PLC values byte-for-byte when viewed with the same endian convention.
  3. Write a test value to a non-critical DM word (e.g., D0200) from the Modbus side; read it back through the DSP and confirm on the PLC programming console (CX-Programmer Online Edit).
  4. Force a Host Link timeout by unplugging the DB-9; the DSP should set the corresponding tag to Invalid and the Modbus master should report an exception 0x0B (gateway target device failed to respond).

Method 2 — SCU Card with Direct Modbus RTU

When the rack is yours and you can add hardware, a CJ1W-SCU41 or CS1W-SCU41 is faster than any gateway. Port 1 stays in Host Link (or is repurposed for CX-Programmer), and Port 2 is configured as a Modbus RTU slave with the ladder issuing PMCR() instructions to read/write as Modbus master.

CX-Programmer Setup

  1. Insert the SCU card in the I/O table (CX-Programmer → IO Table and Unit Setup). Double-click the new unit and open the Port 2 Settings tab.
  2. Set Serial Communications Mode = Modbus-RTU Slave for direct DCS polling, or Modbus-RTU Master if the SCU must initiate the requests.
  3. Configure the port: baud rate up to 115200 (RS-232C) or 38400 (RS-422/485), parity, stop bits, and node address. Default Modbus node is 1, base register 0.
  4. For Modbus master: use PMCR(260) with control words in DM area, or Send/Receive via Serial Gateway (CX-Protocol). Allocate DM words for the Modbus command buffers: Send/Receive buffer address, Number of words, Modbus function code, Target node.
  5. For Modbus slave: pre-allocate the DM area that will be exposed as 4x registers. The SCU defaults to mapping D00000–D00099 to 4x00001–4x00100; this can be re-pointed to any DM, CIO, HR, AR, or LR area through the Modbus Mapping dialog.

Sample Ladder — Modbus Master Read via PMCR

|      P_On            PMCR(260)              |
|        |              |                     |
|        +-----]/[------+--C1 = 0101----------+--C2 = D00300
|                      +--S  = D00200-------+--D  = D00400

Where:

  • C1 = 0101 — Control word pointer in CIO (offset of protocol macro sequence control)
  • C2 = D00300 — First DM word of the Modbus send/receive buffer
  • S = D00200 — Source control data: function code (03), start address, word count, target node, retry count
  • D = D00400 — Destination: receives the Modbus response

Refer to the CJ-series Serial Communications Boards and Serial Communications Units Operation Manual (W494) for the complete PMCR buffer layout.

Method 3 — HMI as Transparent Translator (Last Resort)

When neither a gateway nor a new SCU card is approved, an HMI panel running a Host Link driver and a Modbus gateway protocol can bridge the gap. The AutomationDirect C-more panel configured with the Omron C200/C500 Host Link Adapter driver can poll the PLC and re-publish the tags to a Modbus TCP client. The procedure is documented in the C-more help file:

  1. In the C-more project, Setup → Panel Manager → Protocol → PLC Protocol, select Omron C200/C500 Host Link Adapter from the drop-down list.
  2. Configure the panel's serial port for Host Link (default 9600 7-E-2) and define tags that reference IR, DM, and HR areas.
  3. Add an Ethernet sub-protocol to the same panel selecting Modbus TCP Server; map the same internal tag database to 4x registers.
  4. Enable the panel's Pass-through mode only as a debugging aid — it cannot sustain production traffic.

This approach introduces a single point of failure (the HMI), so it should only be used when budget or cabinet space precludes the DSP or SCU card. See the official AutomationDirect setup page for the exact field-level navigation: Omron C200/C500 Host Link Adapter setup in C-more.

SCADA / HMI Driver Interoperability

Major SCADA packages expose the Omron Host Link driver as a native channel so the conversion can sit entirely on the SCADA node without a gateway box:

SCADA / HMI Driver Name Supported PLCs Modbus Side
Advantech WebAccess Omron Host Link software (C, CJ, CS, CV series) C / CJ / CS / CV / FP3 via AFP3492 OPC, Modbus TCP, BACnet
Wonderware InTouch / System Platform OMRONH (Host Link DAServer) C200H, CQM1, CVM1, CJ1, CS1 Modbus TCP/IP via I/O Server
WinCC Omron Host Link channel CJ1, CS1, CP1H, CP1L Modbus TCP, OPC
iFIX OMR driver C200H / CQM1 / CJ1 / CS1 Modbus TCP poll/slave
C-more Omron C200/C500 Host Link Adapter C200H, C500, CQM1, SRM1 Modbus TCP Server

The full Advantech WebAccess driver matrix (revision V18, August 2024) lists the Omron Host Link software driver alongside the parallel Modbus MB Link module (AFP3492) for FP-series PLCs. The PDF is the authoritative cross-reference for selecting the correct channel in mixed-vendor projects: WebAccess Driver List & Connectivity V18 (PDF).

Wiring Topologies

Omron CJ1/C200H Host Link Slave Node 01 Red Lion DSP Port 1: Host Link Port 2: Modbus RTU DCS / ABB AC800M Modbus RTU Master C-more HMI (option) RS-232C / 422 RS-485 Modbus RTU Ethernet (optional) RS-232C max 15 m / RS-422 max 500 m / RS-485 max 1200 m at < 19200 baud

Pin Reference — Host Link DB-9 to Omron CPU Peripheral Port

DB-9 (DSP Side) Signal Omron Peripheral Port (Mini-DIN 8-pin)
2 RD (in) 2 (SD)
3 TD (out) 6 (RD)
5 GND 3 (SG)
7 RTS 4 (RS)
8 CTS 5 (CS)
Pin 1 on the Omron mini-DIN is shield/drain. Tie shield to chassis ground at the DSP end only to avoid ground loops. Never use a straight-through DB-9 — Omron's RD/TD polarity is reversed relative to the PC standard.

Parameter Defaults at a Glance

Parameter C200H / C500 CQM1 / SRM1 CJ1 / CS1 (Host Link)
Baud rate 9600 9600 / 19200 9600 / 19200 / 38400 / 115200
Data bits 7 7 7
Parity Even Even Even
Stop bits 2 2 2
Default node 00 (broadcast) 00 00 (set per CPU DIP or CX-Programmer)
FCS Yes Yes Yes
Max nodes per RS-422 trunk 32 32 32
Max RS-422 length 500 m 500 m 500 m (total)

Troubleshooting Matrix

Symptom Likely Root Cause Diagnostic Corrective Action
DCS receives exception 0x0B (gateway target failed) Host Link cable wrong polarity or DSP node mismatch Loopback test DSP Port 1 with terminal emulator Use XCDC-HOST cable; set DSP node to match DIP switches on CPU
FCS errors in Crimson 3 log Baud rate mismatch or noise on RS-422 trunk Capture frames with a serial analyzer (Wireshark + RS-232 tap) Verify 9600 7-E-2; add 220 Ω termination; check shield ground
Reads work, writes return 0x02 (illegal data address) DM/HR read-only area being written Verify area is read/write in CX-Programmer memory map Move destination tag to a writable DM range
Modbus returns correct values but DCS sees swapped bytes Endian mismatch on 32-bit float repack Inspect raw 4x registers byte by byte Set Crimson byte order to Word Swap or Byte Swap to match DCS expectation
Periodic Host Link timeouts every ~5 s Retentative DM area being used as polled buffer Watch DSP poll statistics for retry counts > 0 Reduce scan rate to 200 ms; verify PLC ladder is not in long SFC step
No response from CPU at all CPU in PROGRAM mode or peripheral port disabled Check PLC mode LEDs / DIP SW4 on CPU Switch to MONITOR; set DIP SW4-1 = OFF (peripheral port enabled)
DSP loses mapping after firmware update Crimson 3 project version mismatch Open project in matching Crimson build Re-export database from source project; re-flash DSP
Modbus RTU collisions on multi-drop More than one master on the same trunk Capture RS-485 traffic with protocol analyzer Disable Modbus polling on HMI; let only DCS poll, or use single-master discipline

Selection Checklist

Pick the path that matches the constraints below — do not default to a gateway if an SCU card is allowed.
  • PLC program owned by your organization? → SCU card (CJ1W-SCU41 / CS1W-SCU41) is cheapest and most reliable.
  • Third-party PLC, no source ownership? → Red Lion DSP with Host Link driver, no ladder changes.
  • Multiple Omron racks on one trunk? → DSP as a multi-drop gateway with up to 32 Host Link nodes.
  • Mix of Host Link and FINS/TCP on same network? → SCU41 in Serial Gateway mode converts FINS frames to Host Link transparently.
  • Need to integrate to a Yokogawa DCS or ABB AC800M? → Modbus RTU master on the SCU/DSP side; DCS is slave.
  • Need to integrate to a Modbus TCP-only SCADA? → DSP Ethernet side configured as Modbus TCP server.

Safety and Data Integrity Notes

  • Always confirm write enable on the host side before pointing a DCS at a live Omron CPU. A misconfigured write that targets DM00000 will overwrite PLC system variables and force a watchdog fault.
  • Disable Host Link broadcast (node 00) on any production gateway — broadcast writes bypass the FCS per-command acknowledgement and provide no feedback.
  • For 32-bit floating-point exchange, document the byte order explicitly in the project comments. Omron's default is little-endian word (lower word first), but most DCS platforms default to big-endian; mismatches are the single most common commissioning delay.
  • Use a dedicated RS-485 repeater (Phoenix Contact SUBCON-PLUS or Advantech ADAM-4510) for trunks longer than 500 m or with more than 16 nodes; the DSP alone does not include bus biasing.

FAQ

What is the simplest device to convert Omron Host Link to Modbus without touching the PLC program?

The Red Lion Data Station Plus (DA70A or DA50A) with Crimson 3 configured for an Omron Host Link driver on Port 1 and Modbus RTU/TCP on Port 2. Use the XCDC-HOST cable for the CPU peripheral port and reserve a 100-register gap between each memory area when mapping to Modbus 4x registers.

Can a CJ1W-SCU41 communicate as both Host Link and Modbus RTU simultaneously?

Yes. Port 1 stays in Host Link (or Toolbus) and Port 2 is set to Modbus-RTU Slave or Master in CX-Programmer IO Table and Unit Setup. No Protocol Macro is required for simple register exposure; use PMCR(260) when you need full master functionality with control buffering.

What default serial parameters does the C200H use for Host Link?

9600 baud, 7 data bits, even parity, 2 stop bits, FCS enabled. The CQM1, SRM1, and CJ1 series accept the same defaults but also support 19200, 38400, and (on CJ1) 115200 baud if both sides are reconfigured.

Why does my Modbus master receive exception 0x0B after wiring the DSP?

Exception 0x0B means the gateway target device failed to respond. The most common cause is wrong node addressing or a mis-wired XCDC-HOST cable. Confirm the DSP Host Link node matches the CPU DIP switch, then capture frames on Port 1 to verify FCS-valid Host Link traffic is reaching the DSP.

Can the C-more HMI act as a Host Link to Modbus TCP bridge?

Yes, in two steps: select Omron C200/C500 Host Link Adapter in the PLC Protocol drop-down, then add a Modbus TCP Server sub-protocol on the Ethernet side and map the panel's internal tag database to 4x registers. This is documented in the AutomationDirect help file at C-more setup page 336. Reserve this method for non-critical bridges only — the HMI becomes a single point of failure.

Back to blog