A photoelectric sensor sees each part, and the camera should take exactly one picture at that instant, then drop the file where your inspection program reads it. A free-running grab loop produces a dozen frames of empty belt and misses parts entirely, and a software trigger puts the timing under the operating system's control. This guide wires the sensor to the camera's opto-isolated trigger input, sets the handful of GenICam features that matter, sizes the exposure for a belt at 300 mm/s, and saves every frame under a name that follows the part. The worked line runs 60 mm caps at 250 mm pitch; the same arithmetic scales to your own part and speed.
Do you trigger the camera from hardware or software?
Use the hardware trigger: a photoelectric sensor wired to the camera's opto-isolated input fires each exposure within tens of microseconds. A software trigger adds several milliseconds of host scheduling jitter, which is 0.3–3 mm of travel on a belt running 300 mm/s.
Free-run is the factory default: the camera exposes continuously, so some parts get several frames, some get none, and nothing ties a frame to a part. A software trigger fires from your program, but the host schedules it, and 1–10 ms of scheduling jitter is normal on a loaded PC. At 300 mm/s, one millisecond is 0.3 mm of travel — six pixels at this resolution — so the part sits at a different position in every image. The hardware line has no operating system in between: trigger-to-exposure latency on a machine-vision camera is typically a few tens of microseconds, under 0.02 mm of belt travel here.
Software triggers keep two jobs: a static station where the robot places the part and pauses, and teach-time snapshots. On a moving belt, wire the sensor. The trigger modes guide lays out the full menu from free-run to PTP-scheduled capture.
How do you wire the part sensor to the camera trigger input?
Wire the sensor's PNP output to the camera's opto-isolated input and its 0 V return to that input's common. Most industrial camera inputs accept the 24 V sensor signal directly, and the sensor's one-shot output gives exactly one pulse per part.
The camera's trigger input is opto-isolated: an LED inside the camera lights when your sensor pushes current through it, so the sensor's 24 V supply and the camera's electronics stay electrically separate. PNP sensors source voltage onto the input; NPN sensors sink it, which reverses the wiring pair.
- Find the opto-isolated input pair in the camera's I/O pinout — IN+ and IN−, printed as LINE and COM on most connector drawings.
- Set the sensor to its one-shot output so one part produces exactly one pulse, and choose a through-beam or retro-reflective geometry so a shiny cap edge cannot bounce a second pulse.
- Wire the sensor's switching output to IN+ and its 0 V supply return to IN− for PNP. For NPN the pair reverses; the PNP or NPN wiring guide shows both polarities wire by wire.
- Run the trigger on shielded cable, routed away from motor and drive cables, with the shield landed at the camera end.
- Pulse the sensor by hand and confirm the camera's trigger indicator blinks once per pulse.
For cameras whose I/O connector is the 8-pin M8 type, the LS-CBL-0300 is an M8 8-pin to open-end power and I/O cable, 7 m long and drag-chain rated; its open end lands on the sensor terminals.
- Type
- Power and I/O cables
- Length
- 6-8 m
If the PC sits far from the line, the data side needs reach too: the LS-CBL-0117 is an RJ45 camera data cable with locking studs, 15 m long.
- Type
- Camera data cables
- Length
- 15 m
Which GenICam settings put the camera in triggered mode?
Set TriggerMode to On, TriggerSource to the opto input's line name, and TriggerActivation to RisingEdge, then start acquisition. Those three GenICam features plus a manual exposure are the whole configuration; the camera then waits for each sensor pulse before grabbing.
- Switch every auto mode off: ExposureAuto to Off, GainAuto to Off. A triggered camera must expose identically on every part, or thresholds drift across the shift — the auto-mode drift fix explains why.
- Set TriggerMode to On.
- Set TriggerSource to the line your wire landed on — Line1 on most camera families; take the exact name from the camera's feature list.
- Set TriggerActivation to RisingEdge, so the sensor's switch-on edge fires the exposure.
- Run AcquisitionStart. The camera now idles between pulses instead of streaming.
To bench-test with no sensor wired, set TriggerSource to TriggerSoftware and execute TriggerSoftware once per test grab — the same code path your program later uses for manual shots. If the camera never grabs after wiring, the trigger source and line settings are the usual suspects, and the line settings check walks that fault down. When one part should later produce a burst of images, the multi-image capture guide covers the burst variant of the same trigger.
How much camera resolution does the quality check need?
Multiply the field of view by 3 and divide by the smallest defect: an 80 mm field watching 0.25 mm scratches needs 80 × 3 ÷ 0.25 ≈ 960 pixels across, so a 2.5 MP camera covers this check with room to spare.
Worked example. A 60 mm cap with ±10 mm of belt wander defines an 80 mm field, and the 3-pixel rule sizes the sensor:
The lens follows from the sensor: a 1/1.7" sensor is about 7.5 mm wide, so m = 7.5 / 80 = 0.094 and f = WD × m / (1 + m) = 150 mm × 0.094 / 1.094 ≈ 12.9 mm. A 12 mm C-mount lens at 150 mm working distance realizes 7.5 × (150 − 12) / 12 ≈ 86 mm of field — slightly over target, which is the right side to err on. Check your own part against the resolution calculator:
About 960 pixels decides this check, and any sensor from 2 MP up clears it, so the real selectors are shutter type, exposure speed and mount. A moving part needs a global shutter: a rolling sensor scans a frame over several milliseconds, and 10 ms of scan at 300 mm/s shears the part by 3 mm. The MV-CU020-90GC is a 2.5 MP global-shutter GigE camera with a C-mount.
- Sensor format
- 1/1.7"
- Lens mount
- C-mount
- Interface
- GigE
- Resolution
- Up to 3 MP
If the specification later tightens to 0.1 mm defects, the same 80 mm field needs 3 × 80 / 0.1 = 2,400 pixels. The MV-CH120-11UC is a 12 MP global-shutter USB3 camera with a C-mount and a 1.1" sensor.
- Sensor format
- 1.1"
- Lens mount
- C-mount
- Interface
- USB3
- Resolution
- 12 MP
The area scan cameras finder at camera finder filters by shutter, resolution, interface and sensor format, which is the fastest way to shortlist.
How fast can the belt run before images blur?
Set the exposure so motion stays inside one pixel: t ≤ pixel size ÷ belt speed. With 47 µm per pixel and a belt at 300 mm/s that allows about 157 µs; set 100 µs and the blur stays under a pixel.
Pixel size on the part comes from the section above: an 86 mm field over about 1,830 pixels (a 2.5 MP sensor in 4:3 format) gives 86 / 1,830 ≈ 47 µm per pixel. Motion blur is belt speed multiplied by exposure:
Set the camera to 100 µs. Blur then stays under one pixel even with belt-speed wobble, and the budget shrinks in direct proportion to speed:
| Belt speed | Blur budget (1 px) |
|---|---|
| 150 mm/s | 313 µs |
| 300 mm/s | 157 µs |
| 500 mm/s | 94 µs |
| 1,000 mm/s | 47 µs |
Focus holds over height wander too: depth of field ≈ 2 × N × c × (1 + m) / m², and at f/4 with a one-pixel tolerance (c = 0.047 mm, m = 0.087) that is 2 × 4 × 0.047 × 1.087 / 0.0076 ≈ 54 mm — about ±27 mm around best focus. Belt flutter is not a focus problem at this magnification; start at f/4 and stop down only if the corners go soft.
Trigger rate is a non-issue: parts every 250 mm arrive every 0.83 s, while a triggered 2.5 MP frame costs exposure plus readout, roughly 40 ms — a 20-fold margin. The hardware trigger frame-rate guide derives the exact ceiling. If you leave auto exposure on instead, it will pick milliseconds and blur everything; capping its maximum is the quick guard.
Do you need to strobe the light on the same trigger?
Yes at these exposures: 100 µs from ambient room light gives a dark frame, so flash the light with each trigger and let its pulse set the effective exposure. The controller's strobe input takes the same sensor pulse or the camera's flash output.
The reason sits in the exposure: 100 µs at f/4 under normal factory lighting lands several stops below a usable mid-gray. The flash does double duty — it freezes the motion with the exposure and lifts the image out of the ambient — and a strobed LED runs several times its continuous current during the short pulse, which is what makes 100 µs photographically bright.
Two ways to fire it: split the sensor pulse to both the camera and the controller's strobe input, or take the cleaner path and feed the strobe input from the camera's exposure-active output, so the flash cannot drift away from the exposure no matter what you change later. The strobe output timing guide follows that pulse from trigger to image timestamp.
A strobe-capable light controller closes the loop. The LS-CTL-0070 is a 4-channel, 200 W digital light controller with RS-232 control and strobe support.
- Output
- Constant voltage 24 V
- Channels
- 4 channels
- Control
- Digital
- Feature
- Strobe
Shield the flash from the operator's sightline, and never look into a strobed high-power LED at close range while you align it.
How do you save each triggered image to a folder?
Register a frame callback after AcquisitionStart and write each buffer to a folder path that ends with the separator, naming files with a timestamp or part counter. A path like D:\QC\caps\ saves cleanly, while a missing final separator merges the first filename into the folder name.
The pattern that survives production: the SDK hands each completed frame to a callback, the callback stamps a filename and hands the buffer to a queue, and a worker thread writes the file. Saving inside the callback itself blocks the SDK and drops frames under load; the buffer reuse guide shows the queue-and-reuse structure, and the Python trigger grab loop is a working skeleton to extend.
Name files so records follow parts: date, time to the millisecond, and the trigger counter — caps_20260512-083014-512_00437.png. When a PLC or scanner also tags the part, put that ID into the name, the same idea as production tracking that follows each part.
Give the operator a window on it: show the last grabbed frame on an HMI panel or viewer beside the line. A frozen image is how dead trigger wiring gets noticed before the first escape reaches the customer.
What do you check before the first production part?
Five checks catch nearly every first-day failure: one pulse gives one file, file count equals trigger count, the histogram sits mid-gray, the strobe fires with the trigger, and filenames carry the date and part counter. Run all five with hand-placed parts before the belt moves.
- Dry-run the pulse. Fire the sensor 20 times over a hand-placed part and count the files: 20 pulses must give 20 images. Two images per part means the one-shot mode is off or the part breaks the beam twice on a shiny edge.
- Match the counters. The SDK's trigger-event counter and the saved-file count must agree to the frame, every run.
- Read the histogram. A mid-gray image at 100 µs proves the strobe fired with the trigger; a dark frame points at the flash wiring, not the camera.
- Set the trigger delay. If the exposure lands while the part is still entering the field, delay the camera trigger: 100 ms of delay is 30 mm of travel at 300 mm/s, so move the sensor upstream or add delay until the part sits centered in the 86 mm field.
- Confirm the archive. Filenames carry date and counter, the folder fills where you expect, and the archive-rotation job runs.
When those five pass, the station is production-ready. To size the parts for your own field of view and belt speed, start at the camera configurator; for a line with unusual optics or timing, the contact page reaches the applications team.
Questions
Can one part-present sensor trigger two cameras at once?
Yes. A photoelectric output rated 100 mA or more drives several opto-isolated camera inputs without a buffer: wire the same switching output to each camera's IN+ and the same 0 V return to each IN−. Both cameras then fire on the same edge, typically within microseconds of each other, which is close enough for most dual-view checks.
Does hardware triggering work the same on USB3 and GigE cameras?
Yes. The opto-isolated input sits on the camera, so trigger behavior is identical; only the data side differs. GigE runs to 100 m on a single cable, while passive USB3 tops out around 3–8 m. Pick the interface from cable reach and bandwidth, never from the trigger.
Why do triggered images come out black?
Almost always the light did not fire during the exposure. At 100 µs the room contributes almost nothing, so check in order: the strobe pulse reaches the controller, the output is enabled on the correct channel, and the flash width is at least as long as the camera exposure. Fire the light by hand first, then re-enable the chain.
How much disk space does one image per part use?
A 2.5 MP 8-bit frame is about 2.5 MB raw and compresses to roughly 1–3 MB as PNG. At the worked line's rate of one part per 0.83 s that is about 4,300 images per hour, so plan on 10–15 GB per hour and archive or delete on a schedule.
Can the camera's exposure signal drive the light controller?
Yes. Nearly every industrial camera provides an exposure-active flash output on its I/O connector, switching while the sensor integrates. Feed it to the strobe controller's trigger input and the flash always matches the exposure, even after you change exposure settings, and you avoid splitting the sensor's output current. Keep the flash pulse at least as long as the exposure.




