System designGuide

Robot vision cell control architecture for palletizing

Robot vision cell control architecture for palletizing: one owner per function, transaction handshakes, and a 440 ms budget checked against a 3.00 s window.

LumaSpec Vision11 min read Share on LinkedIn

On this page 11 sections
  1. 01Give every function one owner
  2. 02Separate recipe data from sequence and motion
  3. 03Write each interface as a transaction
  4. 04Budget the inspection-to-diverter deadline
  5. 05Hardware sized to the role
    1. Vision controller
    2. Camera
    3. Cabling
  6. 06Operator states and pallet exchange
  7. 07Test the interfaces offline, before the robot arrives
  8. 08Prove failure behavior, not only the happy path
  9. 09When to skip the separate PLC
  10. 10Specify it, then order
  11. 11Questions

A palletizing cell fails in its controls more often than in the robot arm. When conveyor release, inspection routing, printing and recipe selection have no single owner, a healthy robot still palletizes the wrong carton or loses a rejected one. This guide gives you the division of labor that works, the handshake that carries it, the arithmetic behind the inspection deadline, and an offline test plan you can run before the robot is delivered. The worked example uses a 900 mm trigger-to-diverter run at 300 mm/s with product arriving at 5 items/s; put your own numbers into the same formulas. For camera-to-robot geometry and cell layout, start with the 3D palletizing integration guide.

Give every function one owner

Three controllers, three jobs, plus one that stands apart. The robot controller executes motion and gripper sequences. The PLC owns production sequencing: conveyor admission, reject routing, print release, pallet exchange and operator commands. The vision controller triggers, inspects and reports. A safety controller, on separate validated hardware, owns protective stops and access. Assign every output and every state transition to exactly one of them, and write the assignment into the specification before any program exists.

Function Owner Information crossing the boundary
Pick, place, gripper Robot controller Pick request, target identity, busy, complete, fault
Recipe and production mode PLC Recipe requested, recipe accepted, active revision
Acquisition and inspection Vision controller Trigger identity, disposition, cycle time
Conveyor, reject, printing PLC Product identity, position, destination, confirmation
Operator commands, alarms HMI through the PLC Start, stop, recipe request, alarm acknowledge
Protective stops, access Safety controller Validated stop functions, permitted operating states

Keep the signal classes apart. A robot ready bit is production status, never permission for a person to enter the workspace. ISO 13849-1 requires every safety function to reach the Performance Level set by your risk assessment, from PL a to PL e, and an ordinary PLC program cannot carry that duty. ISO 10218 places the integrated cell's protective measures with the integrator, so safety belongs in the architecture from day one, not after commissioning.

Separate recipe data from sequence and motion

A palletizing project contains three deliverables with three owners. Recipe data names the product: identity, layer-pattern revision, permitted gripper configuration, destination. The motion application turns that data into approach paths, place sequences and search limits in the robot controller. The cell sequence - admission, inspection routing, printing, pallet exchange - stays in the PLC. A saved palletizing configuration is recipe data; loading it executes nothing on a conveyor or a printer.

For a line running five products, write five approved recipes over one cell sequence, not five programs. Recipe values stay revision-stamped and controlled; the sequence never changes per product. List the runtime options and licenses each deliverable needs in the specification, and take software, manuals and example projects from the manufacturer or its distributors only.

Write each interface as a transaction

One pass bit cannot run a cell with product in flight. At 5 items/s, fifteen cartons sit between the trigger and the diverter, and a bit carries no identity, no revision and no completion state. Move records:

Field What it fixes
Session identifier Separates events before and after a restart
Product identifier Ties inspection, routing, printing and pick to one carton
Recipe revision Stops decisions made under an obsolete pattern
Command identifier Distinguishes a new request from a repeated one
State requested, accepted, executing, complete, faulted
Inspection disposition pass, fail or unknown
Position reference Encoder count or sensor event the record anchors to

Define the write order and the acknowledgment. A receiver acts only on complete records - use the protocol's atomic transfer or a sequence-controlled handshake - and define duplicate behavior in the contract. When a completion acknowledgment is lost and the sender repeats the command, the receiver returns the stored result; it never picks or prints a second time. The PLC communication guide works this discipline through Modbus registers: connectivity assigns no ownership.

Budget the inspection-to-diverter deadline

Start the clock at a physical event, the trigger sensor's rising edge, and stop it when the diverter must be in position. For a constant-speed belt:

t_travel = d / v d = trigger-to-diverter distance (mm) v = conveyor speed (mm/s) t_travel = available travel time (s)

Everything the cell does inside that window adds up:

t_required = t_acquire + t_process + t_comm + t_actuate + t_margin t_acquire = exposure, readout and frame transfer (ms) t_process = image processing (ms) t_comm = PLC and network handling (ms) t_actuate = diverter travel (ms) t_margin = reserve for jitter and bursts (ms)

Worked example, one infeed: d = 900 mm and v = 300 mm/s.

t_travel = 900 mm / 300 mm/s = 3.00 s
Contribution Allocation Basis
Exposure, readout, transfer of one 5 MP frame 80 ms GigE frame plus exposure, budgeted
Image processing 40 ms Rule-based check, budgeted
PLC and network handling 20 ms Two controller hops, budgeted
Diverter travel 100 ms Pneumatic diverter, budgeted
Margin 200 ms 83% on top of the 240 ms working sum
Total 440 ms
slack = 3.00 s - 0.44 s = 2.56 s

Two point five six seconds of slack is comfortable. Keep it that way by measuring the worst case with image logging on and every camera in the cell streaming; the average is a status figure, not an acceptance limit. At 5 items/s the 3.00 s window holds 5 x 3 = 15 products in flight, so size the tracking queue above that count: fifteen in flight, plus burst arrivals, plus retained fault records points to a 32-deep queue. Track position by encoder count, never by elapsed time - at 300 mm/s a 50 ms timing error already misroutes by 15 mm. The frame-to-result matching guide applies the same discipline inside the vision pipeline.

Hardware sized to the role

Parts follow from roles, not from connector counts. The three below map one-to-one onto the architecture above.

Vision controller

The inspection role needs a controller that triggers cameras, drives lights, runs the check and reports to the PLC. The MV-VC2140-128G40-1T fills that role: an Intel N-series (N97) processor, 8 GB of memory, a 128 GB SSD with a 1 TB HDD for image archiving, 3-4 LAN ports to separate camera and plant networks, 2 USB 3 ports, and 4 built-in light channels that drive illumination without a separate lighting controller.

Vision controllersHikrobot MV-VC2140-128G40-1T VC2100 Vision Controller, N97, 8GB+128G SSD+ 1THDDMV-VC2140-128G40-1T
LAN ports
3-4 LAN ports
USB 3 ports
2 USB 3 ports
Light outputs
4 built-in channels
Memory
8 GB
$1,679.00View partBuild a system with it

When the cell grows past one infeed, higher series in the vision controllers range add PoE camera ports and 8-channel light control; the controller selection guide walks that trade-off. Throughput comes from measured cycle times on your images, never from port counts.

Camera

The camera's job on a moving belt is a sharp, triggered frame. Global shutter removes the row-by-row skew a rolling shutter adds at 300 mm/s, and exposure still has to stop motion: at that speed a 0.1 ms exposure smears 0.03 mm, so budget the strobe as well as the shutter. The MV-CU020-90GC pairs a global shutter with a GigE Vision interface for exactly this job.

Area scan camerasHikrobot MV-CU020-90GC 2.5 MP Area Scan Camera, GigE, GMAX4002, ColorMV-CU020-90GC
Sensor format
1/1.7"
Lens mount
C-mount
Interface
GigE
Resolution
Up to 3 MP
$309.00View partBuild a system with it

GigE Vision standardizes discovery, streaming and control over Ethernet, so camera and controller interoperate whatever the mix of makers; the standard governs the link, and cell ownership stays with the transaction design above. Widen the search in area scan cameras or the camera finder, then close it with a trial on your real defects under your lighting.

Cabling

A camera mounted on a moving gantry needs flex-rated cable with locked connectors. The LS-CBL-0199 is a high-flex GigE camera cable with screw locks built for that route.

Cables3 m GigE camera cable, high-flex (drag chain), screw locks (LS-CBL-0199)LS-CBL-0199$54.00View partBuild a system with it

Match connector gender and pinout to the camera before ordering, and keep trigger lines out of the data bundle. Route the rest through data and I/O cables in the accessories finder.

Operator states and pallet exchange

Run the cell on a short, explicit state list: stopped, preparing, ready, running, stopping, faulted. The PLC owns every transition; the HMI only requests. A start press is a request carrying a command identifier - pressing it twice creates one transaction, not two.

A recipe changeover is a sequence, not a register write:

  1. Request a production stop and close product admission.
  2. Complete or explicitly disposition every tracked product.
  3. Bring the robot to a defined state and resolve the half-built pallet.
  4. Check recipe and revision across every participating device.
  5. Acknowledge the active recipe before accepting the next start request.

Step 5 is where trigger races live: a trigger that fires before the recipe acknowledgment is confirmed captures images under the old revision. The PLC trigger race guide shows the interlock that prevents it.

Track alternating pallet stations as independent machines with five states each: unavailable, empty confirmed, filling, complete, awaiting exchange. A completed pallet says nothing about its neighbor; admit product only against a station in the filling state. Where an operator swaps pallets within reach of the robot, access is a safety question with its own validation, not a software interlock. A stack-height sensor is a process input with declared search limits and fault behavior - never a personnel-protection device.

Test the interfaces offline, before the robot arrives

  1. Freeze the responsibility diagram: every output, transition and reset has one named owner.
  2. Write the interface contract: records, valid transitions, acknowledgment timing, restart behavior.
  3. Build simulators for camera, printer, conveyor sensors and robot, each answering the real protocol.
  4. Run every recipe end to end: pick, print, pallet completion, destination changeover.
  5. Inject faults: delay, duplicate, reorder and drop messages within the contract's rules.
  6. Check motion in the robot maker's simulation environment: paths, reach, sequence.
  7. Package the deliverables: software versions, options and licenses, recipe revisions, deployment steps.

Then make the count matter. Run 1,000 simulated product transactions with faults injected and count missing identities, duplicate actions, wrong destinations and unresolved records; the acceptance number for all four is zero. Portability is part of the test: export the project package, reopen it on a second machine by the manual's import procedure, and make every referenced path resolve. Real camera latency, gripper behavior, stopping distance and safety-function performance are measured on the installed cell under controlled commissioning conditions.

Prove failure behavior, not only the happy path

Injected condition Required behavior
Inspection misses its 440 ms deadline Disposition unknown; product takes the controlled route
Duplicate pick command Stored result returned; no second pick
Printer never acknowledges Product held per the traceability policy
Recipe request during production Rejected or deferred through the changeover sequence
Robot restarts with a product outstanding Cell reconciles records against the physical carton
Next pallet station unavailable Admission stops before the buffer fills
Communication returns after a dropout Stale commands discarded, never executed

Log every event with session identity, product identity, recipe revision, command state and timestamps from one time master. Unsynchronized clocks misattribute misses: a 200 ms offset between PLC and vision logs is enough to blame the wrong device. Accept the cell against recorded limits - every inspection answered inside its budget, every queue drained, zero unresolved records - and file the numbers, not an operator's impression.

When to skip the separate PLC

Skip it when the cell is genuinely compact: one conveyor, one camera, one printer, a short sequence, and maintainers who will own one combined program. Robot-controller background logic then runs the peripherals, provided measured peripheral response holds under full motion load - test that with the robot at 100% speed, not idle.

Add the PLC when conveyors and printing must keep running while the robot is taught, when a second machine shares production states, or when maintenance splits between a controls team and a motion team. Both arrangements answer to the same safety design: ISO 13849-1 grades the function, not the box, and neither architecture exempts the cell from validation.

Specify it, then order

  • Every output and production transition has exactly one named owner.
  • Product identity survives inspection, rejection, printing and picking.
  • Recipe changes carry acknowledgment and work-in-progress rules.
  • Timing budgets hold measured worst cases plus actuator response.
  • Restart reconciles outstanding products and commands against the cell.
  • Pallet availability and operator access are separate questions with separate answers.
  • Runtime options, licenses and deployment files are listed before purchase.
  • Camera, controller and cable compatibility is checked per model, not per port count.

Send the package - responsibility diagram, belt speed, product spacing, defect list and interface record layout - through application support, and the reply returns a matched camera, controller, light and cable list with the timing budget recomputed against your distances. More systems-level guidance sits on the systems topic page.

Questions

Can the robot controller run the cell without a separate PLC?

Yes, for a compact cell: one conveyor, one camera, one printer and a short sequence belong in the robot controller's background logic, provided measured peripheral response holds with the robot at 100% speed. Add the PLC when conveyors must keep running during robot teach, when a second machine shares production states, or when maintenance splits between controls and motion teams.

How much time do I have between the inspection trigger and the diverter?

Divide the trigger-to-diverter distance by belt speed. At 900 mm and 300 mm/s you get 3.00 s. Reserve acquisition, processing, communication, actuator travel and margin - 440 ms in the worked example - which leaves 2.56 s of slack. Measure the worst case with logging on and every camera streaming; average processing time is a status figure, not an acceptance limit.

What belongs in the handshake between PLC and vision controller?

A record, not a bit: session identifier, product identifier, recipe revision, command identifier, state (requested, accepted, executing, complete, faulted), inspection disposition (pass, fail, unknown) and a position reference such as an encoder count. Define write order, acknowledgment and duplicate handling - a repeated completion command returns the stored result and never triggers a second pick.

How deep should the product tracking queue be?

Deeper than the in-flight count. At 5 items/s on a 3.00 s trigger-to-diverter run, 15 products sit between the sensor and the diverter at once; add burst arrivals and retained fault records, which points to a 32-deep queue. Stop admission before the queue fills, not after.

What can be tested before the robot is delivered?

Recipes, handshakes, queues, peripheral faults and restart reconciliation, all against simulated devices answering the real protocol, plus path and reach checks in the robot maker's simulation environment. Run 1,000 simulated transactions with injected faults and accept only zero missing identities, duplicate actions, wrong destinations or unresolved records. Real latency, gripper behavior, stopping distance and safety performance are measured on the installed cell.

How should the cell recover after a controller restart?

Log whether each interrupted action was accepted, executing or complete, then reconcile that log against the physical cartons before resuming. Restarting software restores neither conveyor position nor proof of a finished pick. Any product with an ambiguous record takes the defined unknown route - the reject lane or hold station - before production restarts.

Corrections

  • Rewritten for usefulness: specific values with their basis, the named standards, a worked example, no hedging.