Every fixed barcode reader starts a read in one of three ways: a photoelectric sensor sees the part, a serial command arrives from the controller, or the reader decodes every frame it captures. That choice decides what your PLC receives when the line stops with a legible label under the optics: one clean result, silence, or a duplicate every frame. This guide gives the decision rule, the sensor placement arithmetic, a worked example for a 0.3 m/s conveyor, and the commissioning checks that keep duplicate reads out of your MES.
The decision rule: what happens when the line stops
Pick the trigger mode by answering one question: when the line stops with a readable code inside the field of view, what should the reader do? A sensor-triggered reader has already fired and latched its result, and a parked part raises no new trigger edges, so it goes quiet. A host-triggered reader waits for a command; if the command never comes, it stays silent too. A free-run reader re-decodes the parked label at its frame rate and, on a link that accepts every result, sends a duplicate each time. That third behaviour is what floods PLC links and breaks one-part-one-record logic in the MES.
| Trigger mode | Who decides when to read | Parked code in view | Natural home |
|---|---|---|---|
| Photoelectric sensor | The arriving part | No new edge, no new result | Conveyors, one result per part |
| Serial host command | The PLC or robot controller | Silent until commanded | Machine-cycle stations, robot cells |
| Free-run | The reader, every frame | Re-decoded at frame rate | Parcel sorters, presentation benches |
The default on a moving line is a sensor trigger with one result latched per part. Move to a serial trigger when the machine, not the part, knows the right moment. Keep free-run for lines that never stop, or for labels a person presents on purpose. Reader and optics selection at speed is a separate decision; the high-speed conveyor barcode reading guide picks up where this one stops.
Sensor trigger: build a reading gate
A photoelectric sensor placed at the reading position turns part arrival into a trigger edge. Crossing the gate means a code is now at the optics, the reader attempts one decode, and the PLC can count that result as belonging to one part. Placement sets the timing: mount the sensor beside the reader and the delay is effectively zero, while an upstream mount makes the part travel the gap before the code is in view.
Two placement rules follow from those relations. Keep the sensor within one part pitch of the reading zone, so two parts can never occupy the gap at once. And aim a diffuse-reflective sensor so its switching point sits beyond the bare-belt return but well inside the box face; settable-distance types turn that into a dial adjustment instead of bracket rework. A missed or double trigger costs more than a slow decoder: the conveyor target availability guide shows how to put a number on it. Match output type to the reader input and sensing range to the stand-off when you compare photoelectric sensors.
For boxes on a belt at a fixed stand-off, the diffuse-reflective MV-PE5502 covers switching distances of 10-350 mm.
- Output
- NPN
- Light source
- Red LED
- Sensing range
- 100 mm - 1 m
- Type
- Diffuse-reflective
Serial trigger: the host decides
A serial trigger inverts the control: the reader decodes only when the PLC asks. Use it when machine state, not part arrival, defines the moment: a fixture must clamp first, a robot must reach position, or the label on a machine-loaded product should be read as part of the load cycle. Wire time is negligible: at 9,600 baud with one start and one stop bit, an 8-byte command occupies the line for 8 x 10 / 9,600 s = 8.3 ms, far below any conveyor part window. When the read feeds a robot's program choice, a host-triggered result maps directly onto routing a barcode result to robot job selection.
The failure modes are quiet ones. A reader that never answers usually has a link problem, not a trigger problem: the serial trigger diagnosis guide lists the settings that swallow commands, and the barcode reader PLC communication plan settles protocol choice before you buy. For the wiring walkthrough, this barcode reader to PLC serial integration guide shows port settings and result handling end to end, and if the reader hangs off a serial communications module, this serial module configuration for barcode readers covers the parameters that matter.
Free-run: continuous reading and the parked-code failure
Free-run removes the trigger input from the design: the reader decodes every frame and reports every decode. That is correct where parts never queue. On a parcel sorter every code eventually passes the optics, duplicate results are harmless, and throughput comes from reading continuously. It is also correct at a bench, where a person deliberately presents the label. The failure is specific: a line that stops with a code in view turns the reader into a duplicate generator, re-decoding the same parked label at frame rate, hundreds of times over a short stop.
If a station must free-run, gate the results at the host: accept a code only when it differs from the last accepted code, or when more than one part window has elapsed since the previous accept. Judge which decode to trust using the barcode read confidence criteria. The free-run default is not unique to readers: area cameras ship the same way, which is why configuring the hardware trigger per camera is its own task. For timing sources in general, the industrial camera trigger mode comparison runs from free-run to PTP-scheduled capture.
Logistics readers are built for exactly this duty: the MV-IDS006M-12C-C is a 6 MP GigE model for parcel and tote lines.
- Interface
- GigE
- Resolution
- 6-10 MP
Worked example: trigger delay and read rate at 0.3 m/s with 400 mm part pitch
Inputs:
- Line speed: 0.3 m/s — an example accumulation conveyor.
- Part pitch: 400 mm — example spacing between boxes.
- Sensor mount: 200 mm upstream of the reading zone.
- Reader limits: 30 fps frame rate, 60 codes/s decode rate — from the LS-CRD-0028 data sheet.
The rules in words: parts arrive at line speed divided by pitch; an upstream sensor delays the trigger by distance divided by speed; and the frames available per part are frame rate divided by arrival rate.
Arithmetic:
- Arrival rate: 0.3 m/s / 0.4 m = 0.75 parts/s, i.e. 45 parts/min.
- Trigger delay: 0.2 m / 0.3 m/s = 0.667 s — set about 670 ms of input delay, or mount the sensor beside the reader for a delay near zero.
- Frames per part: 30 fps / 0.75 parts/s = 40 frames, far more than one decode attempt needs.
- Decision window: 1 s / 0.75 parts/s = 1.33 s between parts.
- Free-run comparison: 30 fps x 10 s = 300 decode attempts while a stopped code sits in view.
The reader assumed for this line is the LS-CRD-0028, a 5 MP model rated at 60 codes/s and 30 fps.
- Interface
- Fast Ethernet
- Resolution
- 5 MP
- Sensor format
- 1/1.7"
- Shutter
- Global
Decision: demand of 0.75 codes/s sits a factor of 80 below the 60 codes/s ceiling, so decode rate is not the constraint on this line — gating is. Use the photoelectric sensor trigger with 670 ms of input delay, latch one result per trigger edge, and the PLC sees exactly one message per part, even when the line stops mid-gate, because a parked part raises no new edge. The 1.33 s decision window leaves time for a divert or reject output before the next part arrives. Two thresholds frame the choice: decode rate binds only above 60 parts/s, which at 0.3 m/s means a pitch of 0.3 / 60 = 0.005 m = 5 mm; and any speed change rescales the delay, because delay varies as 1/speed, so a jump to 0.6 m/s halves it to 333 ms.
When the usual answer is wrong
A person presenting a label by hand is the trigger sensor. Bench presentation readers free-run on purpose, and gating adds nothing there: the LS-CRD-0047 reads at a 60-120 mm reading distance with its 1.2 MP sensor, close enough that the operator's hand sets the geometry.
- Resolution
- Up to 3 MP
- Shutter
- Global
- Interface
- USB
When glare rather than timing breaks the reads, fix the optics. The MV-IDB005EXI-05NRP pairs polarized optics with a 70 mm focus distance, so the readable window is defined by the lens and the sensor only confirms that a part is present.
- Interface
- Fast Ethernet
- Resolution
- Up to 3 MP
- Shutter
- Global
- Lens mount
- M5.8
Two more reversals. A trigger cannot rescue bad images: if decodes fail with the part perfectly gated, look at module resolution, skew and lighting before touching trigger logic — the 1D barcode preprocessing guide for rotation, blur and glare covers that side. And a multi-lane diverger needs one gate per lane, or lane reporting from the sensor array: a single shared trigger cannot say which lane produced a result.
Commissioning checks
- Trigger on parts, not fixtures. Run an empty pallet or bare belt past the sensor and expect zero edges. A sensor that sees the fixture will phantom-trigger all shift.
- Count 100 parts. Compare trigger edges to decoded results at the PLC; they should match one to one, and every mismatch is a missed read or a duplicate.
- Stop-line test. Park a legible label under the optics for 10 s in each mode. Sensor mode gives one latched result, then silence; free-run gives hundreds of duplicates.
- Restart test. After every stop, confirm the first new part produces a fresh read and no latched state swallows it.
- Delay check. Part-at-sensor to result should match the placement calculation — 670 ms in the worked example — and any speed change rescales it.
- Host dedup audit. Search the MES log for one code appearing twice inside a part window; a hit means a free-run or double-trigger path is still live.
Pick the mode first, place the sensor second, tune the optics last. Start with the trigger sensor finder, compare fixed code readers by resolution and interface, or start the system configurator at the trigger step to match sensor, reader and cabling in one pass. If a station is already built and reads misbehave, the code-reading guides collect the diagnosis paths.
Questions
Can a reader switch between sensor trigger and serial trigger at run time?
Most industrial fixed readers store the trigger source as a parameter you can change over the same serial or Ethernet session that returns results, so a line can run sensor-triggered in production and accept a host command for a manual or recovery read. Confirm two things before relying on it: that the parameter changes live rather than at restart, and that your result protocol reports which trigger caused the read, so a manual read cannot be mistaken for a production part.
What happens if the line stops before the part reaches the trigger sensor?
No trigger edge fires, so no read is attempted and no result reaches the PLC: the part simply waits. This differs from stopping after the gate. There the edge already fired, the decode finished, and the result was latched; a parked part creates no new edges, so the reader stays quiet. Design the restart logic so a part that stopped short of the gate gets a fresh edge when motion returns.
How far upstream of the reader should the trigger sensor sit?
As close as mounting allows. Delay equals distance divided by line speed, so 100 mm of separation costs 333 ms at 0.3 m/s but only 167 ms at 0.6 m/s. Keeping the separation under one part pitch also guarantees two parts can never occupy the sensor-to-reader gap at the same time. If you must mount further upstream, set the reader's delay parameter and retune it whenever line speed changes.
Does adding a trigger sensor improve decode rate or read quality?
Not the decode itself: optics, resolution, angle and lighting set that. What the sensor buys is certainty about position and timing. One latched attempt per part makes results unambiguous, lets the exposure be tuned for a known part speed, and gives the PLC a clean event to count against production. Free-run can match the decode quality but cannot tell the host which decode belongs to which part.
When is free-run the right trigger mode?
Three cases: lines that never stop, such as parcel and distribution sorters, where every code eventually passes the optics and duplicates are harmless; bench or kiosk presentation, where the operator deliberately holds the label in front of the reader; and read-to-database logging, where the host deduplicates by code and timestamp. Anywhere parts stop under the optics with a live host link, sensor triggering or a host-side deduplication window is the safer choice.




