Automation · Goods-to-person Built
At a goods-to-person station the operator never travels — handling units come to them. openWCS presents a single stock HU and lights up every order destination that SKU is needed at, so one unit fills many orders in a single pass. That batch pick-and-put is built today.
The station model
A station is a small graph: STOCK nodes where a stock HU is presented, and ORDER destination nodes where puts land. Allocation feeds the station open demand — for each destination, which SKU and how many to put there.
A station has at least one STOCK node — the position where a retrieved stock HU is presented to the operator. From here its contents are distributed across the order destinations.
Each ORDER node is a put destination with an optional put-light and a currently bound order HU. It's where the operator places the units this order needs from the presented stock HU.
Demand is posted against an ORDER node — an order line, a SKU and a quantity to put there. This is the REST seam where allocation and order-management feed real work into the station.
How it works
The pick-and-put work cycle is a tight loop: present a stock HU, get a put-list, confirm each put. One presented HU serves as many destinations as need that SKU — that's the goods-to-person batch.
Presenting a stock HU (SKU + qty) matches it against open demand across the station's ORDER nodes and greedily fills most-needed-first, emitting a put-list of instructions.
Each put instruction names a destination node, the resolved order/HU, its put-light and the qty. The operator works the lit cubbies in turn — one stock HU serving the whole batch of orders.
Confirming a put decrements the cycle's remaining stock and the destination's demand. A fully-putted destination completes; a cycle with no open puts left completes too.
Confirming a smaller qty is a short put — the instruction goes SHORT and the destination's remaining demand stays OPEN for a later cycle, so nothing is silently lost.
If the presented qty can't cover all demand, the surplus simply stays OPEN for the next stock HU of that SKU — the batch continues across however many units it takes.
Per-endpoint role-based access (toggleable): viewing demand and cycles needs ORDER_VIEW, while present and confirm need DEVICE_OPERATE — the operator role on the floor.
Two physical worlds
A station's mode documents how its ORDER destinations are physically realised — but the execution engine is identical. The same present / put-to-light / confirm cycle drives both, so you don't maintain two pickers.
Order HUs sit in fixed or conveyor-fed locations at the station — the classic put-to-order layout. The operator puts into the order HU presented at each destination, conveyor delivering and clearing them.
ORDER destinations are cubbies in a lit rack — the typical goods-to-rack realisation for AMR fleets. Each cubby is an ORDER node with its own put-light; the same engine drives the puts.
Configurable picking layout
Pick a station's layout to match how operators work it. The same engine drives all three; the operator console renders the target side to suit, and pick-to-light lights exactly the slots or cubbies in play.
The classic single-carton pick: one stock HU serves one destination at a time. The console shows a single focused quantity field — confirm a full pick or type a lower number for a short.
One stock HU fans out to N lit pick slots (N configurable, at least two). The console renders all slots left-to-right: grey when unused, orange with the qty to take, green once picked. Tap a slot to confirm, or step down for a short.
A rack of lit cubbies. The console lights only the put lights this pick needs — orange until picked, green once confirmed — so the operator follows the lights across the wall. Tap a light to confirm.
Pick-to-light, driven
Pick-to-light is built. The station service lights each put light when a stock HU is presented and clears it on confirm and on close, through a dedicated pick-to-light adapter (or the hardware emulator when you have no controller wired yet).
A standalone pick-to-light adapter speaks the same uniform device contract as every other family: ILLUMINATE a light showing a quantity, CLEAR it on confirm. Wire your controller behind it.
Driving the lights is best-effort with short timeouts: a light that is slow or offline is logged and skipped, never stalling the operator. The pick is the source of truth, the lights follow it.
With the hardware emulator on, the same ILLUMINATE / CLEAR commands drive the built-in emulator instead, which tracks the lit lights — so you can run the whole flow before any controller is connected.
Inbound queue & station control
A station's inbound queue tracks every handling unit routed to it — whether it's still on its way or waiting for the operator. Deactivating a station drains it cleanly without losing any queued work.
Conveyor HUs enter the queue as IN_TRANSIT with a computed arrival time (distance ÷ 0.5 m/s). They flip to QUEUED when due — the operator sees only what's ready to work.
ASRS, AMR and AutoStore HUs arrive immediately QUEUED. The operator console auto-presents the head QUEUED tote — no manual selection needed; completing the cycle marks the entry DONE and advances to the next. The full queue is accessible as a fold-out drawer on the right edge of the console. The presented tote shows the full product card: image, SKU name, item measurements and attributes such as brand or colour.
Deactivating a station stops new HUs from being routed in while the operator finishes the existing queue. Re-activating reopens it — useful for shift changes or maintenance windows.
When a count tote arrives at a STOCK_COUNT station, the operator console switches to a blind-count panel: enter the quantity you see — no system figure shown. Two counts that agree confirm a variance and post a StockAdjusted event to the host automatically.
At a glance
allocation ─► open demand (per ORDER node: order-line · SKU · qty)
│
present stock HU ─► openWCS gtp ── match SKU, fill most-needed-first ─► put-list
│ (destination · order/HU · put-light · qty)
put-to-light ─► confirm put ─► decrement stock + demand
│ short put → instruction SHORT · demand stays OPEN
│ destination fully putted → COMPLETED
▼
cycle COMPLETED when no OPEN puts remain · surplus rolls to next HU
Built & open
The station engine is open source, drives pick-to-light through a real device adapter, and renders any of the three pick layouts. Wiring a specific light controller or AMR fleet behind the adapters is the integration step — the batch logic and the lights are live today.