Configuring Omron C200H-AD002 for 0–50 kgf/cm² BCD Scaling

James Nishida12 min read
I/O ModulesOmronTutorial / How-to
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

Configuring the Omron C200H-AD002 for 0–50 kgf/cm² BCD Scaling

This field-procedure guide covers a recurring commissioning task on the legacy Omron C200H platform: reading an industrial pressure transmitter (0–50 kgf/cm²) through a C200H-AD002 analog input module and delivering the engineering value to a downstream display or indicator in BCD (Binary Coded Decimal) format. The C200H-AD002 is an 8-bit-resolution/12-bit-converter special I/O card with on-board scaling that maps a raw A/D count (0–4095) to a user-defined engineering range held in DM. When the engineering range is written in BCD, the card returns a scaled BCD word that can be driven straight onto a BCD-display indicator or transferred directly into a thumbwheel-style data table.

The article is written for automation engineers who still maintain C200H, CS1, or CJ2 retrofits that need a clean 00.00–50.00 process value in BCD without writing ladder math for each project. It assumes the transmitter is a 1–5 V or 4–20 mA type — the scaling equations below cover both. Where the original Omron manual W229-E1-3 is the authoritative reference for DM mapping, this guide extracts only the operational subset and adds the calculation discipline and ladder snippets needed for an actual install.

1. Hardware Overview: C200H-AD002

The C200H-AD002 is a 4-point analog input special I/O module mounted to a C200H (or CS1/CJ1 with adapter) backplane. It digitises each channel to 12 bits and exposes the result as 0–4095 counts. The card accepts:

  • 0–10 V voltage input
  • 1–5 V / 4–20 mA current/voltage input (with the 4–20 mA conversion by external 250 Ω resistor)
  • ±10 V bipolar (sign-magnitude output in DM)
Parameter Specification
Model C200H-AD002
Channels 4 differential
Resolution 1/4096 full scale (12-bit)
Conversion time 2.5 ms/channel max
Input ranges 0–10 V, 1–5 V, 4–20 mA, ±10 V
Special I/O units per CPU Up to 10 (unit numbers 0–9)
DM scaling parameters Yes, per-unit
Output format Binary (BIN) or pre-scaled BCD via DM scaling

Confirm the card's catalog number on the side label before proceeding; the C200H-AD001 (8-point, no scaling) and C200H-AD003 (8-point, isolated) are electrically similar but their DM area layouts differ. The procedure below applies only to the AD002.

2. Prerequisites

  1. C200H-AD002 mounted on a CPU backplane and assigned a Special I/O Unit Number using the rotary DIP switch on the card front (0–F). Set it to 0 unless you already have units 0–1 populated.
  2. Pressure transmitter calibrated 0–50 kgf/cm², output 1–5 V (or 4–20 mA with 250 Ω precision resistor).
  3. CX-Programmer (or SYSWIN / LSS for legacy laptops) connected via the CPU peripheral port or serial unit.
  4. Wiring: shielded twisted pair, shield grounded at the panel end only, channel commons isolated per manual section 4.
  5. Power-on cycle access — DM parameters only take effect after the unit is restarted.
Special I/O units are configured by writing to a reserved block of DM that is allocated to the unit by its rotary number. For unit number 0 on a C200H CPU, the parameter block begins at D1000. For unit 1 it begins at D1010, unit 2 at D1020, and so on in 10-word increments. For CS1/CJ1 CPUs, the equivalent block is D20000 + 10 × unit_number. Verify your CPU family before writing.

3. DM Word Map for Unit Number 0

Word Function Value for 0–50 kgf/cm² BCD
D1000 Input range code (1–9) #0002 = 1–5 V / 4–20 mA
D1001 Averaging count (0–9999) #0004 = 4-sample running average
D1002 Square-root enable flag #0000 = linear
D1003 Lower display scaling value (BCD) #0000 (= 00.00)
D1004 Reserved / mode #0000
D1005 Upper display scaling value (BCD) #5000 (= 50.00)
D1006–D1009 Per-channel scaling offsets #0000 each

The crucial register is D1005: writing the BCD literal #5000 tells the AD002 to map the maximum raw A/D count (4095) to engineering value 50.00, while D1003 = #0000 maps the minimum raw count (0) to 00.00. Because the card performs the linear interpolation internally and emits the result as a BCD word directly in its allocated IR word, the ladder does not have to call SCL(194) or SCL2(486) at all.

4. Scaling Math: Why 50.00 kgf/cm² Becomes #5000

The transmitter outputs 1–5 V over 0–50 kgf/cm². The AD002 with range code 2 reads 1 V as 0 counts (live zero suppression happens inside the card) and 5 V as 4095 counts. The scaling equation the card applies internally is:

Scaled = ((Raw − Raw_min) × (B − A)) / (Raw_max − Raw_min) + A

where:

  • Raw = A/D count, 0–4095
  • A = lower display scaling value (D1003 = 0)
  • B = upper display scaling value (D1005 = 5000)
  • Raw_min = 0, Raw_max = 4095

With A = 0 and B = 5000, the equation collapses to:

Scaled = Raw × 5000 / 4095

Examples:

Pressure (kgf/cm²) Transmitter V A/D raw Internal math BCD output Displayed
0.00 1.000 0 0 × 5000 / 4095 0x0000 00.00
10.00 1.800 820 820 × 5000 / 4095 0x1000 10.00
25.00 3.000 2048 2048 × 5000 / 4095 0x2500 25.00
40.00 4.200 3276 3276 × 5000 / 4095 0x4000 40.00
50.00 5.000 4095 4095 × 5000 / 4095 0x5000 50.00
The card rounds the result before BCD conversion; the last digit may quantise by ±1 count (≈0.01 kgf/cm²). This is normal. If your application requires finer resolution, switch to a 4-digit range like 00.000–50.000 and write #50000 to D1005 — the AD002 supports up to #9999 per word, but for CS1/CJ1 you can address 4-digit BCD by reading two consecutive IR words.

5. Configuration Procedure

5.1 Set the Special I/O Unit Number

  1. Power off the rack.
  2. Set the rotary switch on the AD002 front face to 0 (use a small flat-blade).
  3. Power on.

5.2 Write DM Parameters Online

From CX-Programmer, connect online and use the forced-set / monitor window. Do not write to DM while the unit is live — the writes only commit at the next power cycle.

  1. Open the DM area editor, navigate to D1000.
  2. Enter each word in BCD as listed in the table above.
  3. Confirm by reading D1000–D1009; the values must echo what you just wrote.
  4. Cycle power to the CPU.
  5. Reconnect online and verify the words are still present after the cycle.

5.3 Verify Range Code with a Calibrator

Apply 1.000 V to channel 0 from a precision calibrator. Read IR word CIO 100 (unit 0 input area, channel 1) — it must read 0x0000 (BCD 0000). Apply 5.000 V; the same word must read 0x5000 (BCD 5000). If the value stops at 0x4000 the range code was wrong; the card is treating the input as 0–5 V not 1–5 V.

6. Ladder: Reading the Scaled BCD Word

When the DM scaling is set up correctly, the AD002 delivers the scaled BCD value into the IR area directly. For unit number 0, channel 1 the IR word is CIO 100; channels 2–4 are CIO 101 through CIO 103. The ladder below reads the value, applies an alarm comparison, and outputs it to a BCD display module:

 |           MOV(021)         |
 |   CIO100     D00200        |
 |                           |
 |           CMP(020)        |
 |   D00200    #4500    P_EQ |
 |                           |
 |  |--(P_EQ)-----OUT CIO 200.00   ; HI PRESSURE LAMP
 |                           |
 |           BCD(024)        |
 |   D00200     D00210       |
 |                           |
 |           BIN(023)        |
 |   D00210     D00300       |

Notes:

  • MOV(021) copies the pre-scaled BCD word out of the input area into a general-purpose DM word D200 so it is preserved across scans.
  • CMP(020) compares D200 against #4500 (45.00 kgf/cm²) and energises the P_EQ bit when equal; a contact on that bit drives a lamp.
  • BCD(024) converts the BCD word to binary for any downstream integer math (PID block, setpoint comparison, etc.).
  • BIN(023) is included as a round-trip example for downstream math that needs the binary form; the original BCD is still in D200.
In C200H mnemonic the BCD-to-binary instruction is BIN (23) and the binary-to-BCD is BCD (24). In CS1/CJ1 these are the same function numbers. Make sure the source operand of BCD(24) is a binary word and the source operand of BIN(23) is a BCD word; mixing them produces SFC / FCD errors in the error flag (ER).

7. Alternative: Using SCL2(486) in the Ladder Instead of DM Scaling

If you want to keep the AD002 in raw-binary mode and do the scaling in ladder (e.g. for a CS1 where you might re-allocate the unit number frequently), use SCL2(486). Place a raw-binary copy of CIO 100 into D100, then:

 |           SCL2(486)        |
 |   D0100    D00110  D00200 |
 |                           |

Where D110 holds the scaling parameters (each pair of words is one parameter):

Word Parameter Value
D110 Raw minimum 0
D111 Scaled minimum 0
D112 Raw maximum 4095
D113 Scaled maximum 5000 (decimal, NOT BCD)

SCL2(486) requires the parameters in BCD but the raw input in binary; D100 is binary from the card. Output D200 is BCD. This is functionally equivalent to the DM-scaling approach and is the method you must use on a CS1 if the AD002 unit number is later changed and you do not want to cycle power to refresh DM.

8. Verification Checklist

Check Expected Pass criterion
1.000 V applied to channel 0 CIO 100 = 0000 (BCD) ±0 counts
5.000 V applied to channel 0 CIO 100 = 5000 (BCD) ±0 counts
3.000 V applied (= 25.00 kgf/cm²) CIO 100 = 2500 (BCD) ±1 count (≈0.01 kgf/cm²)
Power cycle, online re-read D1005 5000 retained DM not corrupted
Disconnect transmitter, force 0.4 V (live-zero violation) CIO 100 = 0000 (clamped) No negative BCD; no FCD/ER flag
Apply 5.2 V (over-range) CIO 100 = 5000 (clamped) No error flag; alarm logic in CMP correctly fires

9. Troubleshooting Matrix

Symptom Likely cause Fix
Display reads 00.00 regardless of pressure D1005 still default (#9999 or 0) — DM not written, or card not power-cycled after write Write #5000 to D1005, cycle power, re-check
Display maxes at 40.00 instead of 50.00 Range code is 0–5 V instead of 1–5 V (D1000 = #0001) Write #0002 to D1000, cycle power
Display reads HEX characters (A–F) Downstream device treats IR word as binary; BCD output is being misinterpreted as hexadecimal Insert BCD(24) round-trip or change destination data type to BCD display module
SFC / FCD error on BIN(23) Source operand is already binary (double conversion) Move direct from CIO word; only call BCD(24) before display
Display jumps ±0.05 kgf/cm² at steady pressure Averaging count (D1001) = 0 (no averaging) Set D1001 = #0004 to #0010
Reading is stable but slightly low (e.g. 24.85 for 25.00) Transmitter zero trim drifted; 1 V ≠ 0 kgf/cm² Re-zero transmitter with vented sensor; verify 1.000 V at input
Display reads 65.00 or other garbage after CPU restart DM values initialised to defaults because backup battery is dead or DM retention jumper removed
Channel swap (e.g. pressure reading on IR 101) Unit number DIP switch mismatch; ladder reading wrong IR word Verify switch on card front, re-check CX-Programmer I/O table

10. Field-Proven Caveats

  • The C200H-AD002 uses 1-based IR numbering for the special I/O area; for unit 0 the channels occupy CIO 100CIO 103. For unit 1 they shift to CIO 110CIO 113. The DM block always starts at D1000 + 10 × unit_number regardless of CPU type.
  • If your transmitter is 4–20 mA, fit a 250 Ω, 0.1 % precision resistor across the input terminals. This converts 4 mA to 1 V and 20 mA to 5 V; the AD002 sees the same 1–5 V signal as a voltage input.
  • BCD scaling is unsigned on the C200H-AD002. Negative pressures must be handled either by using the bipolar ±10 V range (range code 6) or by adding an offset in ladder using ADD(030) after scaling.
  • The DM block is shared with the CX-Programmer upload tool. If you save the project to the SD card of a CS1, ensure DM retention is enabled so the scaling does not reset on power-up.
  • Do not edit D1000D1009 every scan from ladder. The card only samples them at startup, so any runtime change is ignored — and the periodic write causes scan-time expansion.
  • For applications requiring CE/UL compliance on a new install, the C200H-AD002 is end-of-life; use the CS1W-AD081-V1 with equivalent ladder-side SCL2(486) and a BCD output module.

11. Frequently Asked Questions

Why is the C200H-AD002 returning 5530 at 50 kgf/cm² instead of 5000?

If you see 5530 instead of 5000 at 50 kgf/cm², the input range is almost certainly set to 0–10 V (range code 1) instead of 1–5 V (range code 2). With 0–10 V the card treats 0 V as 0 kgf/cm² and 10 V as 50 kgf/cm², so 5 V reads back as ~25.00 — not as 50.00. Write #0002 to D1000 and cycle power.

Why does my display only have two decimals (00.00–50.00) when the transmitter is rated to 0.1 % accuracy?

The C200H-AD002 outputs a 4-digit BCD word and the implicit decimal point is hard-wired to the lower two digits (divide-by-100 interpretation). To show three decimals (00.000–50.000) you must split the engineering range into two BCD words and use a 5-digit display, or accept the two-decimal resolution. Three-decimal resolution at 0–50 kgf/cm² would correspond to 0.005 kgf/cm², which is below the 12-bit quantisation step of the AD002 (≈0.012 kgf/cm²).

Can I scale the AD002 in ladder using SCL(194) instead of using the DM scaling registers?

Yes. Use SCL(194) for C200H or SCL2(486) for CS1/CJ1. Provide four parameters (raw min, scaled min, raw max, scaled max) in BCD as four consecutive DM words and pass the raw binary A/D word as the source. The result is BCD. This is the recommended approach on CS1/CJ1 where DM block updates require less frequent power cycles. Functionally the answer is identical to the DM-scaling path described in this article.

How do I drive the scaled BCD value onto a digital panel meter?

The simplest path is to wire the IR word (e.g. CIO 100) directly onto a 4-digit BCD display module such as the Omron M7E (3G2A5-ID112/ID213). The display module has BCD inputs and the AD002's IR word is already in BCD, so no math is required. If the indicator expects a binary input, run the word through BIN(023) before driving the module, but ensure the indicator is set to binary mode.

What happens if I read the AD002 IR word during a scan where the conversion is mid-flight?

On the C200H-AD002 the input area is refreshed every 2.5 ms per channel. The PLC performs a sequential scan refresh and reads the input area once per scan. For typical scan times (10–30 ms) you will simply see the last-completed conversion; you do not get a half-updated word. If your scan is faster than 2.5 ms (rare on C200H), enable averaging (D1001 = 4 or higher) to ensure the value you read is stable.

Back to blog