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
- 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.
- Pressure transmitter calibrated 0–50 kgf/cm², output 1–5 V (or 4–20 mA with 250 Ω precision resistor).
- CX-Programmer (or SYSWIN / LSS for legacy laptops) connected via the CPU peripheral port or serial unit.
- Wiring: shielded twisted pair, shield grounded at the panel end only, channel commons isolated per manual section 4.
- Power-on cycle access — DM parameters only take effect after the unit is restarted.
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 |
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
- Power off the rack.
- Set the rotary switch on the AD002 front face to
0(use a small flat-blade). - 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.
- Open the DM area editor, navigate to
D1000. - Enter each word in BCD as listed in the table above.
- Confirm by reading
D1000–D1009; the values must echo what you just wrote. - Cycle power to the CPU.
- 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 wordD200so it is preserved across scans. -
CMP(020)comparesD200against#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 inD200.
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 100–CIO 103. For unit 1 they shift toCIO 110–CIO 113. The DM block always starts atD1000 + 10 × unit_numberregardless 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
D1000–D1009every 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.