Skip to main content

Bench Commissioning Plan — Juliet Coffee Water System

FieldDetail
Document NumberBENCH-001
RevisionRev B — added Phase 0 (receiving inspection); reframed loop calibrator as optional with workarounds
Anchored toWiring plan WIRE-001; System overview RO-SPEC-001
AudienceBuilder doing bench work on the PLC / HMI / drives before the panel is mounted on the skid and before the system is plumbed
GoalA fully-programmed PLC and HMI with every I/O point validated against a known stimulus, and every drive proven on Modbus, before any field wiring or wet commissioning starts. Phase 0 is the day-the-parts-arrive smoke test that precedes the rest.

1. Purpose & Scope

Bench commissioning is the period between "the parts are in" and "the panel is mounted on the skid". It exists because:

  • The control program (ladder + HMI screens + Modbus scanning + alarm handling + recipe management) is the longest pole in the build, and it does not need water, plumbing, or pumps to be developed and tested.
  • Catching a wiring or polarity mistake on a workbench takes 30 seconds. Catching the same mistake inside a sealed enclosure mounted on a wet skid takes 30 minutes.
  • The 240 V feed to the panel is a separate piece of work (probably needs a licensed electrician to pull a circuit at the host facility). Decoupling PLC commissioning from that feed lets the two streams of work run in parallel.

1.1 In scope

  • Phase 0 — receiving inspection / smoke test. The day the AutomationDirect parts arrive. Confirm every module boots, the PLC programming pipeline is up, and every I/O point responds to a basic stimulus. Output is "everything works, ready for Phase A" or "module X is dead, here's the warranty claim". Lower-bar than Phase A — no precision stimuli, no HMI development, no control logic — explicitly designed to fit in one weekend.
  • Phase A — PLC dry bench. PLC, HMI, NDR-120-24, and the full discrete / analog / RTD / relay rail brought up off a single 120 V wall outlet. Every I/O point exercised with a known stimulus. Full ladder program and HMI screens developed and validated.
  • Phase B — drive bench. A 240 V drop added to the bench. VFDs commissioned one at a time, with no motor connected. Modbus daisy-chain proven end-to-end. Run/stop relay outputs and status inputs verified.
  • Phase C — wet test (out of scope here). Pump rotation bump-test, sensor-by-sensor wet calibration, PID loop tuning, mineral-dosing calibration. Documented separately as part of skid commissioning.

1.2 Out of scope

  • Plumbing or any wet work.
  • Final panel mounting in the enclosure (bench uses a temporary backboard).
  • 240 V circuit installation at the host facility (precondition for Phase B, not a bench task).
  • DEH plan-check submittal.

1.3 Success criteria — exit conditions

PhaseExit condition
0 completePLC boots; all 5 I/O modules show as present and matched in Productivity Suite Hardware Configuration; every discrete input pin responds to a +24 V jumper; every relay output clicks when forced from the IDE; every analog channel returns a non-zero, non-pegged reading from a coarse stimulus (~1 kΩ resistor); every RTD channel returns ~25 °C from a 110 Ω resistor. Confidence that AutomationDirect sent functional parts.
A completePLC and HMI online; every discrete input toggles its tag in the program when stimulated; every analog channel reads correct engineering units across its range; every relay output fires under program control; every RTD channel reads correct temperature against a known resistance; full HMI screen set navigable; recipe management saves and loads.
B completeAll three drives boot, report status to the PLC over Modbus, accept speed setpoints from the PLC, and start/stop on PLC relay command — without motors connected.
Bench doneWhole panel can be unbolted from the bench backboard, mounted in its final NEMA enclosure, and re-energised on the skid with no surprises. The control program does not change between bench and field — only the field-side wires move.

2. Bench Bill of Materials

These are bench-only items — test gear and consumables that are not part of the delivered system and are not on the main BOM. Total budget: ~$50–80 for Phase 0 alone, ~$100–150 for full Phase A if you don't already own this stuff.

2.1 Always required (Phase 0 + A + B)

ItemPurposeApprox. costNotes
Programming PCProductivity Suite IDE + CM5 Series Software v8.0already ownedBoth tools are free downloads from AutomationDirect. Windows 10/11 required. A Beelink (or any small Windows mini PC) works fine — same as a laptop. If headless, RDP from your normal machine and put the Beelink on wired Ethernet for stable downloads.
USB-A → USB-microB cablePLC programming connection$5Or use Ethernet — the P2-550 supports both.
MultimeterContinuity, voltage, current sanity checksalready ownedAny decent DMM.
Jumper wire kit (M/M, M/F, F/F, ~6")Toggle discrete inputs by jumping +24 V into the input pin$10A bag of pre-crimped lab jumpers; also useful for dry-side relay output testing.
LED indicators (~10 ×) + 2.2 kΩ ¼ W resistors (~10 ×)Visual feedback when a relay output fires$5One LED per relay output; LED + resistor in series across the output's NO contact and 0 V (with +24 V on the common). When the relay closes, the LED lights.
Bench DIN rail (~18 in)Mount the PLC + I/O modules + NDR-120-24 + a small terminal-block stripincluded in main BOM (DN-R35S1)Cut a piece off the main BOM rail stock; this section folds back into the final panel later.
Backboard (½" plywood, ~24" × 18")Mount the DIN rail to something rigid$10Drill four mounting holes for the rail; spare desk space works too.
Cat 5e/6 patch cable (~3 ft)PLC ↔ HMI Ethernet link$5Same cable used in the final panel — folds in.
120 V cord setGet power into the P2-01AC and 24 V PSU$0–10Cut the female end off any old extension cord and land L/N/G on terminals. Or build a fused inline cord (1 A inline fuse) from a hardware-store lamp-cord pigtail. Better: wire it through CB-4 (GMCBU-1C-20) so the bench feed mirrors the final panel.
24 VDC supplyPower discrete-input commons, P2-08AD-2 external 24 V input, future field devicesalready on main BOMThe Mean Well NDR-120-24 on the main BOM is the right answer. If it hasn't arrived yet: use a $25 generic 24 V DIN-rail PSU from Amazon, or a $15 24 V wall wart with the barrel chopped off, as a Phase 0 stopgap. Either gets you unblocked tonight; swap to the NDR-120-24 when it arrives.

2.2 Phase A additions (precision stimulus)

The items below are about producing precise, repeatable stimulus signals so you can verify engineering-unit scaling and exact alarm setpoints. None of them are required for Phase 0. Most have free or cheap workarounds called out in the rightmost column.

ItemPurposeApprox. costNotes & workarounds
4–20 mA / 0–10 V loop calibratorDrive each analog input from a known stimulus, sweep across its range, hit alarm setpoints precisely$0–500Optional. Workarounds: (a) use the actual sensors (atmospheric for PTs ≈ 0 psi gauge; distilled / tap water + Hanna 1413 µS/cm calibration solution for CTs at known points); (b) use the IDE's tag-force feature to test alarm logic without injecting real signals at the analog input; (c) build a $5 voltage divider (10-turn pot + 9 V battery + 5 V regulator) for V source, and a similar pot + 1.2 kΩ resistor across the 24 V bus for mA source. If buying: $50 for a Mustool MT-688 / BSIDE T01, or wait for a used Druck DPI 802 or Fluke 715 in the $250–350 range on eBay. See loop-calibrator-spec.md in the ebay-finder project for a full requirements analysis.
Decade resistance box or a kit of 1 % precision resistors (100 Ω, 138.5 Ω, 1 000 Ω, 1 385 Ω)Simulate Pt100 and Pt1000 RTDs at known temperatures for engineering-unit verification$30 box / $5 resistors100 Ω = 0 °C on Pt100, 138.5 Ω = 100 °C on Pt100. 1 000 Ω = 0 °C on Pt1000. For Phase 0 a single 110 Ω resistor (reads ~26 °C) is enough to prove the channel works.
Pushbutton momentary switches (2–3 ×)Stand in for level switches and demand switches during sustained ladder testing$5Any panel-mount or breadboard pushbutton. Jumper wires work too; pushbuttons are nicer ergonomically when you're toggling the same input dozens of times.

2.3 Phase B additions (240 V drive bench)

ItemPurposeApprox. costNotes
240 V bench dropFeed VFDs from a temporary L6-20 receptacledepends on facilityCleanest path: licensed electrician pulls a 240 V / 20 A 2-pole circuit off the host facility panel to a single L6-20R receptacle near the bench. If you already have a welder or dryer outlet (L14-30, NEMA 6-50, etc.) within reach, an adapter cable also works for one drive at a time.
L6-20P → terminal lugs cordGet the 240 V feed into the bench breakers$20Build from L6-20P plug + 12 AWG SO cord; lands on the line side of CB-1.

3. Phase 0 — Receiving Inspection / Smoke Test

3.1 Purpose

Phase 0 is what you do the day the AutomationDirect parts arrive. Goal: prove every module is functional before it sits on a shelf for weeks while you write the program.

This is intentionally a lower bar than Phase A:

  • No precision stimuli — a $0.50 1 kΩ resistor is fine for proving an analog channel responds; you don't need engineering-unit accuracy yet.
  • No HMI screen development — just confirm the HMI boots, lights up, and talks Ethernet to the PLC.
  • No control logic — just hello-world ladder rungs that pass an input through to an output.
  • No 240 V required — drives can be deferred to a later session if your bench doesn't have a 240 V drop yet.
  • One weekend at most. Probably one evening if everything in the box works.

Output: either "every module passed, ready to start writing the real program (Phase A)" or "module X is dead, here's the AutomationDirect RMA ticket". Either way, you find out now — not three weeks into program development.

3.2 What you need vs. what's in the box

SourceItems
In the AutomationDirect boxP2-01AC, P2-11B, P2-550, P2-16ND3-1, P2-08TRS (×2), P2-08AD-2, P2-06RTD, NDR-120-24 (if shipped), CM5-T10W (if shipped), DIN rail, terminal blocks, jumpers
You source todayMultimeter, jumper wire kit, ~10 LEDs + 2.2 kΩ resistors, 1× 1 kΩ resistor (analog smoke test), 1× ~110 Ω resistor (RTD smoke test), 120 V cord set, USB-A → USB-microB cable, Cat 5e patch cable
You source if NDR-120-24 hasn't arrivedAny 24 VDC source — generic DIN-rail PSU, wall wart, even a stack of 16 AA batteries in a holder. Phase 0 only draws a few hundred mA on the 24 V rail.
You source if HMI hasn't arrivedNothing — skip §3.8 and come back to it when the CM5 ships.
Defer to Phase B240 V drop, L6-20 cord, line reactors, VFD wiring. Phase 0 leaves the GS20 drives in their boxes.

See §2.1 for the full required list.

3.3 Programming machine setup (~30 min, do this before parts arrive)

  1. On the Beelink (or any Windows 10/11 machine), download and install Productivity Suite from automationdirect.com/support/software-downloads — search "Productivity Suite". Free, ~700 MB installer.
  2. Same site, download and install C-more CM5 Series Software v8.0. Free, ~500 MB. (Skip if HMI hasn't arrived.)
  3. If the Beelink is headless: enable Remote Desktop, install on its wired Ethernet, and RDP from your normal machine. Wired Ethernet matters — the IDE is unhappy if the PLC connection drops mid-download.
  4. Reboot once after both installs to clear any USB driver staging.

You can do this step before any hardware arrives. It removes a multi-hour setup blocker from the day the box shows up.

3.4 Mount and power (~1 hour)

Mount on the bench backboard, top to bottom, per the layout in §4.1:

P2-01AC ─ P2-11B ─ P2-550 ─ P2-16ND3-1 ─ P2-08TRS ─ P2-08TRS ─ P2-08AD-2 ─ P2-06RTD
NDR-120-24 (or stopgap 24 V supply)
+24 V / 0 V terminal-block bus
StepWhatVerify
1Cut a ~18 in piece of DIN rail; screw it to the backboard with 4 wood screws.Rail is rigid; modules slide on without binding.
2Snap on the P2-01AC + P2-11B base. Snap the P2-550 CPU into the leftmost slot of the base. Snap the four I/O modules into slots 1–4 in this order: P2-16ND3-1 (slot 1), P2-08TRS #1 (slot 2), P2-08TRS #2 (slot 3), P2-08AD-2 (slot 4), P2-06RTD (slot 5).Each module clicks home; the base's status LEDs are unobstructed.
3Snap on the NDR-120-24 (or temporary 24 V PSU) below the PLC base.
4Wire P2-01AC L and N to a 120 V cord; bond G to the cord's ground pin.Multimeter at P2-01AC L–N reads 0 V (cord unplugged).
5Wire NDR-120-24 input from the same 120 V cord. Output +V and −V to a 4-block terminal strip on the same rail.Multimeter at PSU output terminals reads 0 V (cord unplugged).
6Plug in the 120 V cord.P2-01AC LED solid; P2-550 CPU LEDs come up; NDR-120-24 DC OK LED on. Multimeter at the +24 V bus reads 24 VDC ± 0.5 V.

If anything smokes, smells hot, or trips the shop breaker — pull the plug immediately and re-check polarity. This is what the inline fuse in the cord set is for.

3.5 Talk to the PLC (~30 min) — the real receiving-inspection moment

This is the step that proves AutomationDirect sent you working hardware.

StepWhatVerify
1USB-microB from the Beelink to the P2-550. Launch Productivity Suite. File → New Project → P2-550 CPU.IDE opens a blank project.
2CPU → Choose CPU → USB.IDE finds the P2-550, shows its serial number and firmware version.
3Setup → Hardware Configuration → Read from PLC.The IDE reads the populated base and shows all 5 I/O modules in slots 1–5 with the correct part numbers. This is the single most important Phase 0 check — if a module is missing or shows the wrong part number, that module is either DOA or seated badly. Re-seat and retry; if still missing, RMA.
4Set the P2-550 ETH1 IP to 192.168.10.10/24 per WIRE-001 §11.2. Download.OLED on the front of the P2-550 displays the new IP. ping 192.168.10.10 from the Beelink responds.

If §3.5 step 3 passes for all 5 modules, 80 % of the receiving-inspection risk is gone — the rest of Phase 0 is just confirming each I/O point physically responds.

3.6 Hello-world ladder (~30 min)

In the IDE, drop in a single rung:

X1 ──┤ ├── ( Y1 ) // P2-16ND3-1 input 1 → P2-08TRS #1 output 1

Tag X1 to the P2-16ND3-1 channel 1 input; tag Y1 to the P2-08TRS #1 channel 1 relay. Download. Put the IDE in Online → Monitor mode so you can watch tags update live.

This rung exists for one reason: to give you a fast, non-precision way to confirm "input toggled → output fires" works end-to-end. Every smoke test below will use this rung pattern.

3.7 Smoke-test every I/O point (~2–3 hours)

For each test below, you're not verifying engineering units or alarm setpoints — you're confirming the channel responds to a stimulus. Pass criterion is "the tag changes state when I poke it; it doesn't change when I don't." If a channel stays stuck, swap the wire to a known-good channel; if the channel is still stuck, that channel is dead.

3.7.1 Discrete inputs — P2-16ND3-1

  1. Wire one of the module's C (common) terminals to the bus 0 V.
  2. With the IDE in monitor mode watching the input tags, take a jumper wire from the +24 V bus and briefly tap each input pin X1 → X16 in turn.
  3. The corresponding tag should flip true, then false when you remove the jumper.

Tick all 16 pins on the §7 sign-off checklist as they pass.

3.7.2 Relay outputs — both P2-08TRS modules

  1. Wire one LED + 2.2 kΩ resistor in series across the NO contact of channel 1 on each module: NO contact to LED anode, LED cathode through resistor to the bus 0 V; module common to +24 V bus.
  2. Modify the hello-world ladder so each Y output (Y1 → Y8 on each module) can be forced from the IDE: [ Force_Y1 ]──( Y1 ) — or use the IDE's built-in Tag Force feature on the output tag directly.
  3. Force each output true: hear the relay click, see the LED light. Force false: click, LED off. Move the LED to the next channel and repeat.

You don't need 16 LEDs — one LED that you walk across all 16 outputs is fine for Phase 0.

3.7.3 Analog inputs — P2-08AD-2

  1. Wire the module's +24 V and 0 V terminals to the bus (this module needs external 24 V).
  2. Smoke test for each channel 1 → 8: short the channel's I+ and I− pins together (or put a 250 Ω resistor across the bus 24 V and the channel V+ for a voltage channel). Watch the raw count tag in the IDE.
  3. Pass criterion: the raw count is non-zero and not pegged at full scale. A short on a current channel should read near 0 mA; a 250 Ω voltage divider off 24 V should read in the middle of the channel range.

Engineering-unit scaling and exact alarm setpoints are a Phase A problem.

3.7.4 RTD input — P2-06RTD

  1. Wire a 110 Ω resistor across the channel 1 EX+ / Sense / RTN terminals (3-wire jumper: EX+ and Sense to one resistor leg, RTN to the other).
  2. Configure the channel as Pt100 in the IDE's Hardware Configuration.
  3. Pass criterion: temperature tag reads ~26 °C (110 Ω is roughly 26 °C on a Pt100 curve). ± a few degrees is fine — this is a smoke test, not a calibration.

3.8 HMI smoke test (~30 min, if CM5 has arrived)

StepWhatVerify
1Wire CM5-T10W +24 V and 0 V to the bus; bond chassis ground. Patch CM5 ETH1 to P2-550 ETH1 with a Cat 5e cable.HMI boots within ~30 s; backlight on; touchscreen responsive.
2Set CM5 ETH1 to 192.168.10.20/24 from the HMI's setup screen.HMI on the same /24 as the PLC.
3Launch CM5 Series Software v8.0 on the Beelink; File → New Project → CM5-T10W; Panel → Discover over Ethernet.HMI shows up in the discovery panel with the IP you set.
4Drop one button on a blank screen, tied to a single PLC tag (Test_Bit_1). Download. Tap it.The bit flips in the PLC online monitor.

That's it for Phase 0 on the HMI. Real screen development is Phase A.

3.9 Drive smoke test (~15 min/drive, only if 240 V drop is available)

Most users will defer this to Phase B. If you happen to have a 240 V outlet near the bench now and want to confirm the GS20 drives boot:

  1. Wire CB-1 → LR2-21P0-1PH-A → VFD-101 R / S terminals. Motor side disconnected.
  2. Bond drive PE to the bench ground.
  3. Energise CB-1.
  4. Drive front panel boots; default display shows 0.00 Hz; no fault codes.

That's all you do at Phase 0 — full Modbus / parameter / run-stop testing is Phase B.

3.10 What you do NOT need at this stage

  • A loop calibrator (Phase A; even then, optional)
  • Recipe management or alarm logic
  • Final HMI screens
  • Modbus configuration on the drives
  • 240 V power (unless you happen to have it for the optional §3.9)
  • Field wiring to any sensor or pump
  • The final NEMA enclosure — bench backboard only

3.11 Exit Phase 0

You exit Phase 0 with confidence that:

  • Every module AutomationDirect shipped is alive and recognised by the IDE.
  • The Beelink ↔ PLC ↔ HMI communication path works end-to-end.
  • Every I/O point physically responds to a stimulus.
  • You have a baseline working PLC project file in source control to start Phase A from.

If anything failed: file the AutomationDirect RMA before moving on. Their warranty turnaround is typically a week.


4. Phase A — PLC Dry Bench

4.1 What you mount

Mount on the bench backboard, top to bottom:

┌─────────────────────────────────────────────────────────┐
│ P2-01AC ─ P2-11B ─ P2-550 ─ P2-16ND3-1 ─ P2-08TRS ─ │
│ P2-08TRS ─ P2-08AD-2 ─ │
│ P2-06RTD │
├─────────────────────────────────────────────────────────┤
│ Mean Well NDR-120-24 │
├─────────────────────────────────────────────────────────┤
│ Small terminal-block strip (~12 × DN-T12-A on rail) │
│ +24 V bus (4 blocks jumpered with DN-24J2Y) │
│ 0 V bus (4 blocks jumpered) │
│ Spare blocks for ad-hoc test jumpers │
└─────────────────────────────────────────────────────────┘

This is the same DIN rail layout that goes into the final panel — when bench work is done, you unbolt it from the backboard and screw it onto the enclosure backplate.

4.2 Power-up — 120 V only

StepWhatVerify
1Wire P2-01AC L and N terminals to the 120 V fused cord; bond G to a temporary ground (any cold-water pipe or grounded outlet third pin via a cord stub).Multimeter reads 120 VAC at the P2-01AC input terminals.
2Wire NDR-120-24 input from the same 120 V cord; output to the +24 V / 0 V bus on the terminal-block strip.Multimeter reads 24 VDC ± 0.5 V across the bus.
3Plug in the 120 V cord.P2-01AC LED solid; P2-550 LEDs come up; NDR-120-24 DC OK LED on.

If anything smokes, smells hot, or trips the shop breaker — pull the plug immediately and re-check polarity and fusing. This is what the inline fuse is for.

4.3 PLC and HMI bring-up

StepWhatVerify
1Connect laptop to P2-550 via USB-microB. Install / launch Productivity Suite IDE.IDE finds the CPU, OLED on the P2-550 shows IP / status.
2Set P2-550 ETH1 IP to 192.168.10.10/24 (per WIRE-001 §11.2).ping 192.168.10.10 from the laptop responds.
3Wire CM5-T10W +24 and 0V to the bus; bond chassis ground. Patch CM5 ETH1 to P2-550 ETH1 with the Cat 5e cable.HMI boots; backlight on; touchscreen responsive.
4Set CM5 ETH1 to 192.168.10.20/24. Install / launch CM5 Series Software v8.0 on the laptop.HMI shows up in the CM5 software's discovery panel.
5Download a one-button test screen with a single bit tied to a PLC tag. Toggle it.Tag flips in the PLC online monitor.

At this point the platform is alive. Everything from here is exercising I/O.

4.4 Discrete-input validation — P2-16ND3-1

For each input X1 through X9 (per WIRE-001 §5):

  1. In the IDE, watch the corresponding tag (LSH_101, LSL_101, FT_101_PULSE, etc.).
  2. With the module commons jumpered to 0 V, jump +24 V into the input pin with a test lead.
  3. Tag should go true. Remove the jumper; tag goes false.
  4. Tick the box on the §7 sign-off checklist.

For the three flow-pulse inputs (FT-101, FT-102, FT-103), also verify that a fast manual toggle (~5 cycles/sec by tapping the lead on and off) produces a non-zero rate in the PLC's pulse-counting logic.

4.5 Analog-input validation — P2-08AD-2

The module needs external 24 V — wire its +24 V and 0 V terminals to the bus before testing.

For each channel 1 through 8 (per WIRE-001 §6):

Test signalWhat to verify on the HMI
0.5–4.5 V channels (PT-101…PT-104) — feed 0.5 V from the calibrator → expect 0 psi; feed 2.5 V → expect ~150 psi; feed 4.5 V → expect 300 psiPressure display matches within ± 1 % of reading
4–20 mA channels (CT-101, CT-102, CT-103, LT-102) — sweep the loop calibrator from 4 mA → 12 mA → 20 mAEngineering value sweeps from 0 → 50 % → 100 % of the range configured for that tag

This validates both the channel hardware and the engineering-unit scaling defined in the program. It also lets you exercise the deviation alarm logic on CT-103 by dialling the simulated reading away from the active recipe target.

No calibrator on hand? The Phase 0 smoke test (§3.7.3) already proved the channels work. To validate engineering-unit scaling without a calibrator: (a) wire up the actual sensors and use atmospheric or distilled-water reference points, or (b) build a 10-turn potentiometer voltage divider off the 24 V bus for V channels and a similar pot in series with a 1.2 kΩ resistor for mA channels — accuracy is ±2 % which is enough to verify scaling math but not enough to verify alarm setpoints precisely. For alarm-setpoint verification, use the IDE's tag-force feature on the engineering-unit tag downstream of the analog scaling instead of injecting at the analog input.

4.6 RTD-input validation — P2-06RTD

Channel 1 (TT-101) only is populated.

ResistancePt100 readsPt1000 reads
100 Ω0 °Cn/a
138.5 Ω100 °Cn/a
1 000 Ωn/a0 °C
1 385 Ωn/a100 °C

Wire the resistor across the EX+ / Sense / RTN terminals (3-wire jumper: EX+ and Sense to one resistor leg, RTN to the other). Verify the displayed temperature matches the table within ± 1 °C.

4.7 Relay-output validation — both P2-08TRS modules

Wire one LED + 2.2 kΩ resistor in series across each output's NO contact, with +24 V on the common (or 120 V if you also want to verify AC switching — your call, but DC at 24 V is safer on the bench).

For each output Y1 through Y8 on each module (per WIRE-001 §8 and §9):

  1. In the IDE, force the corresponding output tag true.
  2. Hear the relay click; LED lights.
  3. Force false; click; LED off.
  4. Tick the box.

4.8 Program development & validation

With every I/O point proven, the bench is now a complete simulator. You can:

  • Toggle level switches with pushbuttons to exercise the tank cascade interlock (T-101 low + T-102 low → P-101 priority).
  • Sweep PT-103 with the loop calibrator to verify the high-pressure alarm latches and clears correctly.
  • Force the UV fault input to verify SV-TREAT and SV-ICE close, the HMI annunciates, and the alarm-clearance workflow demands operator acknowledgement.
  • Build and test all HMI screens: main mimic, alarm bar, recipe editor, trend displays, manual-override page, diagnostic page.
  • Simulate full fill cycles by jumping inputs in sequence — start with a "T-102 low" trigger, watch SV-TREAT open, watch the metering-pump relay outputs fire at the recipe rate, watch the simulated CT-103 reading drift toward the target.

This is the longest phase by elapsed time (probably weeks of evening work) and the highest-value one. Every bug caught here is a bug not caught at 11 p.m. with a flooded shop.


5. Phase B — Drive Bench

Precondition: Phase A is complete and signed off; 240 V drop is in place at the bench (L6-20R or equivalent). All three drives, both line reactors (LR2-21P0-1PH-A and 2× LR2-20P5-1PH), and CB-1/2/3 are mounted on the bench backboard per WIRE-001 §10.1.

5.1 First drive — VFD-101 alone

StepWhatVerify
1Wire CB-1 → LR2-21P0-1PH-A → VFD-101 R/S terminals. Leave the motor side disconnected. Bond drive PE to the bench ground bus.Multimeter reads 240 VAC at the drive R/S terminals after CB-1 is closed.
2Energise CB-1.Drive front panel boots; default display shows 0.00 Hz. No fault codes.
3On the drive keypad, set parameters per the Phase A program assumptions: Modbus address = 1, baud = 38 400, 8N1, RTU; motor nameplate (HP, FLA, base freq = 60 Hz, base RPM per pump motor); accel/decel ramps; max freq = 60 Hz.Drive accepts and saves parameters.
4Wire the drive's RS-485 port (S+ / S−) to the P2-550 RS-485 port (D+ / D−) with Q8302-1 cable. No termination yet — single-drive bus is short enough to skip it for this test.
5In the IDE, verify Modbus master polls drive at address 1 and reads its status register (running / fault / freq).Status register shows "stopped, no fault."
6Wire P2-08TRS #1 Y6 (VFD-101 RUN) to drive MI1; drive DCM to bus 0 V. Wire drive MO1 (status) to P2-16ND3-1 X6; MCM to bus 0 V.
7From the IDE, force Y6 true.Drive display goes from 0.00 Hz to whatever speed setpoint the PLC wrote (test with 10 Hz first). PLC reads X6 high (drive running).
8Force Y6 false.Drive ramps to 0 Hz; X6 goes low.

5.2 Add VFD-102 and VFD-103 to the daisy chain

StepWhat
1Wire CB-2 → LR2-20P5-1PH → VFD-102 (motor side disconnected). Repeat parameter set with Modbus address = 2.
2Wire CB-3 → LR2-20P5-1PH → VFD-103 (motor side disconnected). Modbus address = 3.
3Extend the RS-485 daisy chain: PLC → VFD-101 → VFD-102 → VFD-103.
4Install 120 Ω termination resistors at both ends of the bus (PLC end across D+/D−, VFD-103 end across S+/S−) per WIRE-001 §11.1.
5Verify the PLC polls all three drives and reads consistent status with no Modbus timeout errors over a 10-minute sustained scan.
6Wire run-command outputs Y7 → VFD-102 MI1, Y8 → VFD-103 MI1; status inputs X7 ← VFD-102 MO1, X8 ← VFD-103 MO1.
7Cycle each drive run/stop from the IDE. Confirm correct speed setpoint propagation and status round-trip on each drive independently.

5.3 Common gotchas

  • Modbus polarity reversed. Symptom: zero response from any drive. Fix: swap D+ ↔ D− at the PLC.
  • Termination missing or doubled. Symptom: intermittent timeouts that worsen as you add drives. Fix: 120 Ω at exactly two points — bus ends only.
  • Drive parameter set saved but not active. GS21 series usually requires a power cycle after Modbus address / baud changes. Cycle CB-x.
  • Run command flickers. Symptom: drive starts and stops repeatedly. Fix: confirm the relay output is configured for latched operation in the ladder, not pulsed.
  • Drive faults on first start with oC (overcurrent). Symptom: drive trips the moment Y6 closes. With no motor connected, this typically means the drive is configured for sensorless vector control with no auto-tune done; switch to V/Hz mode for bench testing and re-enable SVC at site commissioning when the motor is connected.

5.4 What's still NOT tested at the end of Phase B

These are deliberately left for site commissioning (Phase C):

  • Actual motor rotation direction (need a motor to bump-test).
  • Closed-loop PID tuning on PT-104 → VFD-103 (need real distribution-header pressure feedback).
  • Mineral-dosing calibration (needs water and CT-103 wet readings).
  • Tank level transmitter calibration (needs T-102 with known fill levels).
  • UV unit operational behaviour (the lamp shouldn't be run dry — bench-power the controller for ≤ 30 seconds to verify the controller boots, then leave it alone until wet commissioning).

6. Phase C — Wet Test (Out of Scope Here)

Documented separately as part of skid commissioning. High-level only:

  1. Bolt the panel into its NEMA enclosure on the skid; transfer field wiring from the bench terminal strip to the final TB1–TB8 strips per WIRE-001 §2 / §10–§12.
  2. Connect motors to drives one at a time; bump-test for rotation; reverse two phase leads if needed.
  3. Connect each sensor; verify the bench-validated reading at the HMI now reads a sensible field value.
  4. Wet-run the system in manual mode (HMI manual-override page) to verify each subsystem in isolation: RO production, recirculation, ice-machine supply, T-102 fill with each metering pump.
  5. Switch to auto mode; tune the PT-104 → VFD-103 PID loop for distribution constant-pressure control.
  6. Calibrate mineral dosing against laboratory-verified TDS measurements (per system overview §5.5).
  7. Sign off the as-built wiring document with field cable lengths recorded.

7. Sign-off Checklist

Tick each item as you complete it. Re-test from the top if you change any I/O assignment in the PLC program.

Phase 0 — Receiving Inspection

Programming machine

  • Productivity Suite installed on Beelink (or laptop)
  • CM5 Series Software v8.0 installed (skip if HMI not yet shipped)

Mount & power

  • DIN rail screwed to backboard
  • PLC base + CPU + 5 I/O modules snapped in (slots 1–5: 16ND3-1, 08TRS, 08TRS, 08AD-2, 06RTD)
  • 24 V supply (NDR-120-24 or stopgap) wired and reads 24 V ± 0.5 V at the bus
  • P2-01AC powered from 120 V cord; P2-550 LEDs healthy

Talk to the PLC

  • IDE finds CPU over USB
  • Hardware Configuration → Read from PLC shows all 5 I/O modules with correct part numbers in the right slots ← the receiving-inspection moment
  • ETH1 set to 192.168.10.10, pings from Beelink

Hello-world ladder

  • One-rung X1→Y1 ladder downloads and runs

Smoke test — discrete inputs (P2-16ND3-1)

  • All 16 input pins toggle their tag in monitor mode when jumped to +24 V

Smoke test — relay outputs (both P2-08TRS)

  • All 16 output channels click + light an LED when forced from the IDE (one LED walked across all channels is fine)

Smoke test — analog input (P2-08AD-2)

  • Module +24 V wired
  • All 8 channels return a non-zero, non-pegged raw count from a coarse stimulus (short, or 250 Ω divider)

Smoke test — RTD input (P2-06RTD)

  • Channel 1 returns ~26 °C from a 110 Ω resistor (Pt100 mode)

HMI smoke test (skip if not yet shipped)

  • CM5-T10W boots and is responsive
  • ETH1 set to 192.168.10.20, discovered by CM5 software
  • Single-button test screen toggles a tag in the PLC

Drive smoke test (skip unless 240 V is available now)

  • At least one VFD boots on 240 V with no fault codes

Phase 0 sign-off: _______________________ (date) — every module proven alive; OK to start Phase A

Phase A — PLC Dry Bench

Power-up

  • P2-01AC: 120 VAC in, no smoke, status LED on
  • NDR-120-24: 24 VDC ± 0.5 V at the bus, DC OK LED on
  • P2-550: CPU LEDs healthy, OLED shows expected IP

PLC + HMI bring-up

  • Productivity Suite connects via USB
  • P2-550 ETH1 set to 192.168.10.10, pings from laptop
  • CM5-T10W boots, touchscreen responsive
  • CM5 ETH1 set to 192.168.10.20, discovered by CM5 software
  • Test screen toggles a tag in the PLC

Discrete inputs (P2-16ND3-1)

  • X1 LSH-101 — true on +24 V jump, false on remove
  • X2 LSL-101 — true / false
  • X3 FT-101 — toggles, pulse-rate logic counts
  • X4 FT-102 — toggles, pulse-rate logic counts
  • X5 FT-103 — toggles, pulse-rate logic counts
  • X6 VFD-101 status — true / false
  • X7 VFD-102 status — true / false
  • X8 VFD-103 status — true / false
  • X9 FS-101 — true / false

Analog inputs (P2-08AD-2)

  • Module +24 V wired
  • Ch 1 PT-101 — 0.5 V → 0 psi, 4.5 V → 300 psi
  • Ch 2 PT-102 — 0.5 V → 0 psi, 4.5 V → 300 psi
  • Ch 3 PT-103 — 0.5 V → 0 psi, 4.5 V → 300 psi
  • Ch 4 PT-104 — 0.5 V → 0 psi, 4.5 V → 300 psi
  • Ch 5 CT-101 — 4 mA → 0 µS/cm, 20 mA → 3 999 µS/cm
  • Ch 6 CT-102 — 4 mA → 0 µS/cm, 20 mA → 1 000 µS/cm
  • Ch 7 CT-103 — 4 mA → 0 µS/cm, 20 mA → 1 000 µS/cm
  • Ch 8 LT-102 — 4 mA → 0 %, 20 mA → 100 %
  • Recipe deviation alarm latches on simulated CT-103 mismatch

RTD input (P2-06RTD)

  • Ch 1 TT-101 — 100 Ω → 0 °C, 138.5 Ω → 100 °C (Pt100) or 1 000 Ω → 0 °C, 1 385 Ω → 100 °C (Pt1000)

Relay outputs (P2-08TRS #1, slot 2)

  • Y1 BV-101 — clicks, LED on/off
  • Y2 UV-101 — clicks, LED on/off
  • Y3 MP-A — clicks, LED on/off
  • Y4 MP-B — clicks, LED on/off
  • Y5 MP-C — clicks, LED on/off
  • Y6 VFD-101 RUN — clicks, LED on/off
  • Y7 VFD-102 RUN — clicks, LED on/off
  • Y8 VFD-103 RUN — clicks, LED on/off

Relay outputs (P2-08TRS #2, slot 3)

  • Y1 SV-RECIRC — clicks, LED on/off (note convention chosen per WIRE-001 §9)
  • Y2 SV-ICE — clicks, LED on/off
  • Y3 SV-TREAT — clicks, LED on/off

Program & HMI

  • Tank cascade interlock exercised with simulated inputs
  • High-pressure alarm latches and clears
  • UV fault simulation closes SV-TREAT and SV-ICE; HMI annunciates; clearance workflow demands acknowledgement
  • Recipe management: create, save, load, switch active recipe
  • All HMI screens drawn and navigable
  • Trend displays log all key process variables
  • Datalogging to microSD verified (insert card, run for 10 min, pull and inspect file)

Phase B — Drive Bench

240 V bench drop installed and verified

VFD-101 alone

  • CB-1 closed, drive boots, no fault
  • Modbus parameters set (addr 1, 38 400 8N1)
  • PLC reads status register
  • Run command Y6 spins drive to 10 Hz; status X6 reads back
  • Stop command ramps drive to 0 Hz

Three-drive daisy chain

  • VFD-102 added (addr 2)
  • VFD-103 added (addr 3)
  • 120 Ω terminations at both bus ends
  • PLC sustains 10-minute scan with zero Modbus timeouts
  • Each drive starts/stops independently from PLC
  • Each drive accepts speed setpoints (test 10 Hz, 30 Hz, 60 Hz)

Phase B sign-off: _______________________ (date)


8. Cross-References