WCS commissioning lives or dies on signals — let me throw a scene at you first. Fall 2023, a 50,000-square-meter e-commerce warehouse in eastern China. Three days after the WCS went live, the sorter started mis-diverting: 400-plus cartons into the wrong chutes, three people standing at the chutes fishing parcels out until midnight. It took a full day to find the root cause: one photoelectric sensor's signal was inverted in the PLC program — "product present" reported as absent, absent as present. The fix took 10 minutes. But three days of mis-sorts, rechecks, and customer complaints cost more than half a PLC.
Here is the truth about WCS commissioning: nine times out of ten, ghost faults after go-live trace back to signals never properly tested during commissioning. A line that moves is not a commissioned line. A line whose signals check out is.
What WCS commissioning actually tunes: three layers of translation, unbroken and on time
Think of it this way: commissioning does not tune equipment. It tunes three layers of translation.
Layer one, the device layer: photoeyes, encoders, VFDs, motors turning the physical world into DI, DO, AI, AO signals. A carton blocks a photoeye, a DI flips 0 to 1 — translation.
Layer two, the control layer: the PLC reads signals and runs logic, turning "product present" into "start divert." Scan cycles run tens of milliseconds; this layer's delay lives here.
Layer three, the system layer: the WCS pulls status from the PLC, sends commands down, and reports completion up to the WMS — usually over a standard industrial protocol, adding tens of milliseconds more.
Commissioning means verifying this chain layer by layer: unbroken (the signal path conducts), correct (0 and 1 never flipped), and fast enough (photoeye blocked to the WCS seeing the change — anything past the budget gets investigated). It is like inspecting a new house's wiring: you do not just check whether the lights turn on, you verify every wire from breaker to switch to fixture. A light can glow with reversed polarity and still work, until the breaker trips and you are standing in the dark. Every ghost fault after go-live is one of those "the light is on but the wire is backwards" problems.
The IO list: the signals' household registry — one wrong character, endless regret
The IO list is the master document of the whole commissioning effort. One row per point, no field missing: point ID, signal name, type (DI/DO/AI/AO), parent equipment, PLC station, module slot, channel, WCS variable name, normal state, notes.
Naming is life or death. The worst list I ever saw named the same photoeye three ways: PE-101 on the electrical drawing, Photo_1 in the PLC program, sensor_A as the WCS variable. Guess wrong once during point-to-point checks, mis-divert a batch after go-live. So my iron rule: point IDs are globally unique, and the PLC variable name, the WCS variable name, and the drawing designation must be the exact same string in all three places. Whoever renames one owns updating all three and signing off on it.
Now the counterintuitive call: a longer IO list is not a better IO list. Some projects push junk like "cabinet door opened" or "fan running" up to WCS alarms — 400-plus points per station, while the signals that actually matter drown in the noise. My cutoff: a signal earns a row in the WCS IO list only if it meets both conditions — first, WCS logic needs it to make a decision; second, its failure stops the line or mis-diverts product. Anything else stays as a local PLC alarm and stays out of the list. Every extra point is a suspect that will drag you out of bed at 2 a.m. someday.
Signal mapping tests: the dullest work, and the most valuable
Signal mapping means matching every PLC IO point to its WCS variable one by one, and testing each one live. The method is dumb, and there is no shortcut: one person walks the line with the IO list tripping signals — blocking photoeyes, pressing buttons, unplugging network cables to simulate a comms loss — while another watches the WCS monitoring screen to confirm each variable flips, and flips correctly.
Three mandatory checks, none skippable:
First, correct polarity. A DI shows 1 with signal present, 0 without. Do not laugh — I see inverted signals three times a year, always where "that could not possibly be wrong."
Second, latency. From a blocked photoeye to the WCS variable changing should take tens of milliseconds (PLC scan plus comms cycle). Past 200 milliseconds, investigate: network jitter, a delay left in the PLC program, or a WCS polling cycle set too long. At a sorter speed of 2 meters per second, 200 milliseconds is 40 centimeters — divert 40 centimeters late and the carton lands in the wrong chute.
Third, debounce. A carton edge "sweeps" a photoeye, the signal bounces three times in 0.1 seconds — does the WCS fire a false divert? Filter time gets locked in during commissioning and written into the handover docs. Never "tune it after go-live": tuning after go-live means stopping the line; tuning now means turning a parameter.

Time to fire at a fake requirement: some clients demand "100% redundant mapping for all signals." Sounds impressive; it is pure money-burning. Redundant DI means double the points and double the test time — the commissioning schedule doubles overnight. Real redundancy belongs to safety circuits — e-stops, safety gates — and that is the safety PLC's job, not WCS signal mapping's. An e-stop loop's reliability comes from dual-channel safety PLC architecture, not from duplicating every signal. Spend the money where it matters.
WCS dry-run testing: three levels, skip one and you are gambling
Dry-run testing is the easiest phase to fake. Most people's dry run is "the line moves, the motors don't sound weird, done." That proves the equipment spins — nothing about whether the WCS can conduct it. Like taxiing down the runway and declaring the test flight a success.
I run dry runs in three levels, none skippable:
Level one: standalone no-load. Each machine runs forward/reverse, start/stop, e-stop — verify motor direction, VFD parameters, no mechanical interference. Pass bar: two continuous hours, zero alarms.
Level two: order-driven dry run. The WCS issues real tasks; empty cartons ride the line through the full sort logic — scanning (dummy barcodes do), chute assignment, divert actuation. Pass bar: 5,000 consecutive cartons, zero mis-diverts. Zero — not 0.1%. One mis-divert in commissioning becomes hundreds a day after go-live.
Level three: full-rate plus fault injection. Feed the line at design takt with empty cartons, then inject faults at random: e-stop, blocked photoeye, a 10-second network drop, WCS service restart. The system must recover on its own — nobody runs out to "rescue" it. Pass bar: 20 injected faults, 100% automatic recovery, zero manual intervention.
Early 2024, a 30,000-square-meter apparel warehouse in southern China did levels one and two, then skipped level three — "no time." In the first week after go-live, the WCS service auto-updated and restarted overnight. After the restart, half the task states in the PLC were lost; more than 2,000 cartons sat on conveyors with no tasks assigned, and the crew hand-cleared the line all night. The lesson: a single "service restart" test in level three would have caught it in 10 minutes during commissioning. Found in commissioning, the cost is one restart test. Found after go-live, the cost is a night of manual labor plus a pile of complaints.
The math: are ten extra days worth it?
| Item | Cost of doing it right in commissioning | Cost of fixing it after go-live |
|---|---|---|
| Point-by-point test of 3,000 IO points | 2 people × 10 days, $4,000 in labor | One inverted signal mis-diverting: a 1% error rate on 50,000 cartons a day is 500 a day; $3 per carton to find and re-route: $1,500 burned daily |
| Three-level dry run with fault injection | 3–5 extra days | One WCS restart losing tasks: 4 hours stopped plus a night of manual clearing, $7,000 and up |
The math is not subtle: ten extra days of commissioning labor buys insurance against $1,500 a day going up in smoke after go-live. Anyone cutting commissioning time is not cutting cost — they are converting controllable labor cost into uncontrollable accident cost.
One maintenance pitfall to close with: the filter times, latency budgets, and alarm levels you lock in during commissioning must go into the handover documentation, signed by the client's maintenance lead. Six months later a new technician's answer to every alarm will be "try restarting it," and every parameter you tuned goes to waste. A WCS go-live is not the finish line; it is day one of a ten-year equipment life. Laziness during commissioning gets repaid with interest during maintenance.
So is the money worth it? Look at this one number: in the first month after go-live, did unplanned downtime exceed four hours? If yes, somebody skimped during commissioning. If no, those ten days of labor were the highest-ROI spend of the entire project.
By Da Liu, Automation Engineer




