Engineering
SDK & Integration
An inspection result that never reaches the line controller or the quality record is not an inspection.
Direct answer
How does a vision system integrate with a PLC and plant systems?
The vision system receives a trigger from a photo-eye, encoder or PLC output, returns a verdict over discrete I/O or a fieldbus protocol such as EtherNet/IP, Modbus TCP or PROFINET within the reject window, and writes a structured result record — timestamp, identifiers, per-check values, verdict and image reference — to a database or MES for traceability.
Acquisition layer
- Standards-based acquisition (GenICam-class GigE Vision / USB3 Vision devices) so hardware is replaceable.
- Custom interface and secondary-development work where a project requires it, including SDK-level camera control.
- Deterministic buffering with explicit behavior on overrun — dropped frames must be counted, never silent.
Result schema (illustrative)
- inspection_id
- UUID for the inspection event
- ts
- ISO-8601 timestamp with timezone
- station / recipe
- Station ID and active recipe + revision
- checks[]
- name, type, measured value, tolerance, verdict
- verdict
- pass | fail | no-read, with reason code
- image_ref
- Path or object key for the retained image
- model_version
- Populated when a learned model produced the verdict

Controls handshake
- Define worst-case decision time and the line's behavior on timeout before writing code.
- Fail-safe defaults: decide explicitly whether timeout means reject or pass, and document it.
- Heartbeat and health signals so the PLC knows the inspection is alive, not just quiet.
- Recipe changes driven by the PLC/MES work order rather than a manual selection at the HMI.
Data retention
Image retention is a storage and policy question: retain all fails plus a rolling sample of passes is a common compromise. Retention windows should be set by audit requirements, then costed, before commissioning.
Related engineering material