Omron C200HS LK201-V1 Host Link: Proface HMI Integration Guide

James Nishida15 min read
HMI / SCADAOmronTechnical 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

1. System Overview and Component Identification

The integration described in this reference combines four field assets on a single Omron Host Link segment:

  • Omron C200HS CPU — the controller that owns all DM and CIO memory.
  • Omron C200HS-LK201-V1 — a rack-mounted Host Link module providing one RS-232C channel toward the HMI and one toward the PC.
  • Proface touch screen — the operator interface, configured with a "System Area" of DM100.
  • Barcode scanner — ASCII string source that must reach both the PLC and the PC.

The C200HS does not execute Protocol Macro (PMCR) instructions; that capability was added on the CJ1/CS1 platforms. Any serial string handling on this generation must either be offloaded to an intelligent module (such as the C200H-ASC02 ASCII/BASIC module) or be passed through the HMI's pass-through function if the HMI supports it.

Architecture constraint: The LK201-V1 is a Host Link slave, not a protocol converter. Barcode data entering the Proface port cannot be re-broadcast on the LK201-V1 RS-232C channel without a PLC ladder that reads the HMI-stored string and writes it back to a CIO/IR word that the PC polls over Host Link.

2. LK201-V1 Front-Panel DIP Switch Configuration

The LK201-V1 module has two rotary switches (SW1, SW2) on the front panel for the Host Link unit number and two banks (SW3, SW4) that select baud rate and command level. Field-confirmed values for a Proface touch screen at 9600 baud are listed below.

Switch Function Recommended Setting Notes
SW1 (×10) Host Link unit number, tens digit (BCD) 0 Must match Proface host address
SW2 (×1) Host Link unit number, ones digit (BCD) 0 00–31 valid for C200HS Host Link
SW3 Baud rate 5 Position 5 = 9600 baud (confirmed working)
SW4 Command level / parity / stop bits 2 Position 2 = 7-E-2 Host Link frame

SW3 decode (Host Link standard, valid for C200HS-LK201-V1):

SW3 Position Baud (bps) SW3 Position Baud (bps)
0 300 4 4800
1 600 5 9600
2 1200 6 19200 (verify CPU support)
3 2400 7+ Reserved / CPU-dependent

SW4 select bits for Host Link frame format:

SW4 Frame Use Case
0 7-E-2, level 1,2,3 Default Host Link (C-mode)
1 7-N-2, level 1,2,3 No-parity legacy devices
2 7-E-2, level 1,2,3 Proface default (field-confirmed)
3 7-N-2, level 1,2,3 No-parity HMI variant
Match every parameter on both ends: baud, data bits, parity, stop bits, and unit number must agree between the LK201-V1, the Proface project, and any PC tool. A single mismatch will cause the ALARM LED on the LK201-V1 to latch and the HMI to display "Communication Error."

3. Host Link Communication Parameters

Omron Host Link (C-mode) is a polled master/slave ASCII protocol running at RS-232C levels. For the C200HS-LK201-V1 the recommended baseline is:

Parameter Value
Baud rate 9600 bps
Data bits 7
Parity Even
Stop bits 2
Flow control None (Host Link uses X-on/X-off, not RTS/CTS)
Protocol Host Link (C-mode) — ASCII framed with @ … * CR
Unit number 00 (set by SW1=0, SW2=0)

A typical Host Link read of DM0100 is sent as the following 17-byte ASCII frame:

@00RD01000001*

Where:

  • @ — start of text
  • 00 — unit number (matches SW1/SW2)
  • RD — read DM area command
  • 0100 — starting word (DM100)
  • 0001 — number of words
  • * — terminator identifier
  • \r (0x0D) — carriage return

For the C200HS, the address encoding is 4-digit BCD for DM, IR/CIO, HR, AR, LR, and T/C flag areas. The FCS (frame check sequence) byte is computed as the two's complement of the lower 8 bits of the sum of every ASCII byte from @ through the byte just before *.

4. Proface System Area and DM Register Mapping

The Proface "System Area" is a reserved DM block that the HMI writes automatically to indicate screen number, control status, error codes, and the current values of any numerical display or input field bound to a DM address. Configuring the System Area to DM100 allocates a contiguous block starting at DM100.

Word Function (typical, GP-Pro default)
DM100 Current screen number (write by HMI)
DM101 Reserved
DM102 Error status / system code
DM103–DM109 User data area 1 (mapped to numeric display parts)
DM110+ Additional user-controlled data area

Writes to DM100 and the surrounding block are expected behavior; the HMI is updating them on every screen change and on every numerical input. The PLC ladder should treat DM100–DM109 (or however many words the System Area spans) as HMI-owned and never overwrite them from a MOV or arithmetic instruction.

5. Why DM100, DM260, DM6000–DM6030 Are Changing

Three independent writes explain the field observations:

  1. DM100 — Proface System Area base. The HMI is writing screen number and status here every cycle. This is normal.
  2. DM260 — Falls inside an expanded user-data portion of the System Area (offset 160 from DM100) or is being used as a numeric display/entry part's address inside the GP-Pro project. Confirm the System Area size in the GP-Pro screen setup; default can be 10, 20, or 30 words. A value showing up at DM260 implies the System Area was expanded or a control was bound to a specific DM address within it.
  3. DM6000–DM6030 — C200HS Error History storage area. Per the C200HS Operation Manual (W130-E1-□, page 55), this range records non-fatal error log entries when error history is enabled in PLC Setup. Any recorded communication error, syntax error, or expansion rack fault will be timestamped and written here. Values appearing here are the PLC's own log of the very Host Link error the HMI may also be showing.
Action: Open CX-Programmer → PLC → Error Log / Error History. Read the most recent record at DM6000. The first word is the error code; the next words encode the time, date, and the address/instruction that triggered it. Treat the presence of entries here as a symptom, not the cause — fix the underlying Host Link error first and clear the log with the Clear Error History (FAL/FALS) routine.

6. C200HS-LK201-V1 Host Link Frame: Quick Diagnostic

Use a passive RS-232C tap (Y-cable or breakout) to monitor the LK201-V1 port with a laptop running a terminal at 9600-7-E-2. Expected traffic after a Proface screen change:

PC -> LK201 : @00RD00100001F7*<CR>
LK201 -> PC : @00RD001000014000010000F6*<CR>

Common error returns that will populate DM6000:

Host Link Response Code Meaning Likely Cause
00 (normal completion) OK
13 (FCS error) Frame Check Sequence mismatch Noise, baud mismatch, broken cable
14 (format error) Command length or syntax HMI sending wrong address format
15 (entry number invalid) Word count out of range HMI reading more than 1000 words at a time
18 (frame length error) Length byte wrong Exceeds 131 chars including @ and *CR
21 (address range error) Address exceeds DM6143 Proface System Area set too high

7. Barcode Scanner Integration Options

On a C200HS, three viable paths exist for getting ASCII barcode data into the controller:

7.1 Proface Pass-Through (preferred, no extra hardware)

Many Proface GP-series panels expose a "Bar Code" or "Pass-Through" part that writes the scanner's serial string into a consecutive DM block. The PLC then sees the scan data in ladder-usable ASCII words. The Proface serial port (RS-232C) is configured for the scanner, the LK201-V1 port is independent. Verify in the GP-Pro project whether the target firmware supports this — older GP units do not.

7.2 C200H-ASC02 ASCII/BASIC Module

The C200H-ASC02 is a special I/O module that runs a BASIC program to parse incoming ASCII strings and write them into allocated DM words. It occupies one slot in the C200HS rack, requires its own RS-232C port configuration, and a BASIC program written with the ASC02 Support Software. The C200HS ladder reads the result words with normal MOV(021) instructions.

Module Catalog I/O Words Used Ports Notes
C200H-ASC02 C200H-ASC02 10 words (allocation) 2 × RS-232C BASIC interpreter, no PMCR needed
C200H-ASC11 C200H-ASC11 10 words 1 × RS-232C + 1 × RS-422/485 Same BASIC, different connector mix

7.3 Direct PC Routing (no PLC involvement)

If the objective is strictly "barcode → PC," connect the scanner to the Proface and use the Proface's Pass-Through feature, or connect the scanner directly to the PC's COM port. The PLC is bypassed entirely. This is the simplest path when the PC is the only required data sink.

8. PC Serial Connection Wiring (LK201-V1 25-pin ↔ PC 9-pin)

The LK201-V1 presents a DB-25 male RS-232C port. The PC standard COM port is DB-9 male. A null-modem (crossover) cable is required because both are DTE.

Signal LK201-V1 DB-25 pin PC DB-9 pin Direction
FG (Frame Ground) 1 Shell
TD (Transmit Data) 2 3 LK201 → PC
RD (Receive Data) 3 2 PC → LK201
RTS (Request To Send) 4 8 LK201 → PC
CTS (Clear To Send) 5 7 PC → LK201
DSR (Data Set Ready) 6 4 PC → LK201
SG (Signal Ground) 7 5
CD (Carrier Detect) 8 1 PC → LK201
DTR (Data Terminal Ready) 20 6 LK201 → PC
RI (Ring Indicator) 22 9 Not connected

Recommended null-modem wiring for Host Link use (only TD, RD, SG, plus looped handshakes):

DB-25 (LK201)        DB-9 (PC)
   2  TD  -----------  3  RD
   3  RD  -----------  2  TD
   4  RTS  --+-------  8  CTS
   5  CTS  --+--loop--  7  RTS
   6  DSR  -----+-----  4  DTR
  20  DTR  -----+-----  6  DSR
   7  SG  -----------  5  SG
   1  FG  -----------  Shell
Field tip: Many Host Link integration failures are caused by the PC-side flow control. In Windows, open Device Manager → Ports (COM & LPT) → Properties → Port Settings → Advanced and disable FIFO buffers, or set them to the lowest value (1). Also set the CX-Programmer Host Link driver to no handshaking; Host Link does not use hardware handshaking on the application layer.

9. CX-Programmer Address Encoding (CIO vs DM)

When the user asked "how do I write a program to use the Host Link address?" the answer is that the address numbers 3809 to 3855 must be interpreted in the correct memory area. C200HS has two parallel numbering schemes:

Area Prefix in CX-Programmer Word Range (C200HS) Use
IR / CIO 000–255 (IR 000–227, 228–255 reserved) Inputs, outputs, work bits, expansion rack
HR HR 00–99 Retentive work bits
AR AR 00–27 System flags (read-only most bits)
LR LR 00–63 1:1 link area
SR SR 244–255 System flags (errors, pulses)
DM DM 0000–6143 Data words, retentive
TC TC 000–511 Timer/Counter PVs and completion flags

Registers 3809–3855 do not correspond to any standard C200HS area. They are most likely Proface-internal offsets into the System Area, or a misread of the GP-Pro address printout (GP-Pro often shows addresses without the leading area letter). Confirm in the Proface project what data type (binary bit, BCD word, ASCII string) each address carries, then map it to the corresponding CX-Programmer address type:

  • For a Proface word write that needs to control a C200HS output: import the value with MOV(021) from DM into CIO, then OUT to the physical output.
  • For a bit display: use TST(350) or LD/AND with the corresponding CIO bit.

Example ladder snippet that reads the System Area's first user word (DM103) and turns on CIO 100.00 if the value is greater than 100:

|    LD     P_On              Always-on contact (differential)
|    MOV(021)  DM103  DM200  Copy HMI word to a work area
|    CMP(020)  DM200  #0100  Compare to 100
|    AND       25505          Greater-than flag from CMP
|    OUT       100.00         Drive output

10. PLC Setup Parameters for Host Link

The C200HS PLC Setup (DM 6600–DM 6644) holds the port configuration that the CPU applies to its built-in RS-232C port and the LK201-V1's port. Relevant words for a Proface installation:

PLC Setup Word Bit(s) Setting Effect
DM 6600 00–07 0000 (default) Built-in port: Host Link, 9600-7-E-2
DM 6601 08–15 0000 Built-in port: unit number 00
DM 6613 00–07 0000 Host Link mode (no Protocol Macro — C200HS limitation)
DM 6625 00–15 0000 Error history = enabled (writes to DM6000+)

For the LK201-V1 in an expansion rack, similar setup is allocated in the words corresponding to the slot's installed module. Refer to the C200HS Operation Manual for the exact mapping; on a 3-slot expansion the LK201-V1 typically uses DM 6700–DM 6704 for its port parameters.

11. Proface GP-Pro Project Configuration

  1. Open the GP-Pro EX (or older GP-PRO/PBIII) project.
  2. Select System Settings → I/O Driver → Omron SYSMAC CS/CJ/CP (or "Omron Host Link C-Mode" for older units).
  3. Set the host address to 00 (must match SW1=0, SW2=0).
  4. Set communication to 9600, Even, 7, 2.
  5. Open System Area Settings, enable the System Area, and set the starting word to DM100. Set the area size to the smallest value that covers all HMI-owned words (10 is a safe minimum).
  6. Bind numeric input/display parts to DM103+ for any data the PLC must read or write.
  7. For barcode pass-through, add a "Bar Code" part in the screen and bind it to a DM block large enough to hold the longest expected scan (e.g., 20 words for a 40-character ASCII string).
  8. Transfer the project to the panel over USB or serial and cycle power on the LK201-V1 and the panel together.

12. Verification Procedure

  1. Power the C200HS rack and confirm the RUN LED is solid green.
  2. Watch the LK201-V1 RD/TD LEDs during Proface polling. Each Host Link read should produce a brief RD flash followed immediately by a TD response.
  3. From the Proface, navigate to a screen that displays a numeric part bound to DM103. Force DM103 from CX-Programmer (online → Monitor → set value 1234) and confirm the Proface display updates within one scan cycle.
  4. Trigger a screen change on the Proface and confirm DM100 changes to the new screen number (CX-Programmer online monitor).
  5. Read DM6000 from CX-Programmer and verify that no new error codes have been appended since the last clean test.
  6. Run a Host Link "Test" from the Proface diagnostic menu — it should report "Communication OK" with the unit number 00.
  7. Test barcode pass-through by scanning a known string and confirming it appears in the bound DM block.

13. Troubleshooting Matrix

Symptom Likely Root Cause Action
Proface shows "Communication Error" Baud/parity mismatch, wrong unit number Verify SW1/SW2 = Proface address, SW3 = 5, SW4 = 2, Proface = 9600/7/E/2
ALARM LED on LK201-V1 lit Framing error or scan-time overrun Check PLC Setup, reduce HMI polling rate, inspect cable for noise
DM100 changing unexpectedly Normal — HMI writing screen number Do not write DM100 from the ladder; treat as HMI-owned
DM260 changing unexpectedly System Area expanded past 160 words, or part bound to that address Reduce System Area size in GP-Pro; audit part bindings
DM6000–DM6030 filling up PLC logging non-fatal Host Link errors Read error history, clear with FAL(06)/FALS(07), fix root cause
Barcode data not reaching PLC Proface does not pass through, or pass-through not configured Add a Bar Code part, bind to DM block; or install C200H-ASC02
CX-Programmer Host Link won't connect COM port settings, cable type Set 9600/7-E-2, use null-modem cable, try another PC COM port
Registers 3809–3855 unknown to ladder These are likely Proface offsets, not PLC addresses Recompute the actual C200HS address from the GP-Pro address map
PC cannot see barcode data No routing from Proface serial port to LK201 Add ladder that copies DM block to a DM the PC polls, or use Proface Pass-Through-to-PC if supported

14. Field Commissioning Notes

  • Always verify the LK201-V1 unit number (00–31) is unique on the segment. Two modules set to 00 will collide on every poll.
  • The C200HS does not support PMCR(260) instructions. Do not attempt to write a Protocol Macro sequence on this platform.
  • When the Proface System Area is set to DM100, never use DM100–DM100+(N−1) inside the ladder for anything other than reading HMI status. Overlay will cause the HMI to overwrite ladder writes within one cycle.
  • If the C200HS is communicating with the Proface on the LK201-V1 port, the built-in RS-232C port of the CPU remains free for CX-Programmer and remains at 9600-7-E-2 by default. Do not change it to Toolbus (CX-Programmer default is "Toolbus" — switch to "Host Link" in the driver setup before connecting).
  • DM6000+ error log retention is across power cycles. Clear it after every major fix to keep the log meaningful.
  • For barcode pass-through on legacy GP-377, GP-477, and GP-577 series panels, consult the GP-Pro part library — not all barcode parts support serial pass-through to a Host Link-bound DM area.

Why does DM100 keep changing on its own once the Proface is connected?

DM100 is the base of the Proface System Area. The HMI writes the current screen number and HMI status there every cycle. This is expected behavior, not a fault — treat DM100 as HMI-owned and never write it from the ladder.

What is the correct DIP switch setting for the C200HS-LK201-V1 to talk to a Proface panel at 9600 baud?

Set SW1 = 0, SW2 = 0 (unit number 00), SW3 = 5 (9600 baud), SW4 = 2 (7-E-2 Host Link frame). Match the Proface driver to the same unit number and to 9600, 7 data bits, Even parity, 2 stop bits.

How do I integrate a barcode scanner on a C200HS that does not support Protocol Macro?

Use either the Proface Bar Code pass-through part (if your GP-Pro version and panel support it) or add a C200H-ASC02 ASCII/BASIC module to the rack, run a BASIC program to parse the scan string, and read the result words from the ladder with MOV(021).

What is in the DM6000–DM6030 area, and should I worry about it changing?

DM6000–DM6030 is the C200HS error history storage area, enabled in PLC Setup word DM 6625. Each entry encodes the error code, time, and address of a non-fatal PLC error. Treat changes here as a diagnostic log; clear it with the FAL/FALS routine after fixing the root cause.

How do I wire the LK201-V1 25-pin port to a PC 9-pin COM port for Host Link?

Use a null-modem cable. Cross TD (DB-25 pin 2) to RD (DB-9 pin 3), RD (DB-25 pin 3) to TD (DB-9 pin 2), and connect SG (DB-25 pin 7) to SG (DB-9 pin 5). Loop RTS/CTS and DTR/DSR on each end to satisfy the DTE handshake.

Back to blog