A custom HMI needs more than a running lamp and a fault lamp. You need to know which subsystem reported a problem, whether its data is current, and what an operator can safely do next. For a vision-guided picking cell, that means documenting the diagnostic interface before assigning PLC addresses. This guide separates application status, controller alarms and optional telemetry, then shows how to map, validate and commission them without assuming every screen value is available through the same connection.
Define which subsystem owns each diagnostic
Treat diagnostics as several information sources, not one universal error register. The vision application may know that acquisition failed, while the motion controller knows that a drive alarm exists. Neither necessarily publishes the other subsystem's detailed information.
Start with the documented interfaces for the installed software, controller and communication options. A connection that accepts start and stop commands does not automatically expose alarm history, motor temperatures or position data.
| Diagnostic layer | Information to request | Boundary to establish |
|---|---|---|
| Vision application | Project loaded, acquisition active, processing fault, result validity | What each state means and when it updates |
| Motion controller | Operating state, warning present, alarm identifier | Which signals and identifiers the supported interface exposes |
| Communication | Connection state, producer activity, snapshot freshness | Which endpoint is actually being monitored |
| Optional telemetry | Temperature, position, load or maintenance values | Availability, units, update rate and access permissions |
Keep command acceptance separate from operating state. An accepted start request is not proof that acquisition, motion or picking has started. Use the start and stop handshake troubleshooting guide for that command exchange; use the diagnostic interface to explain the resulting state.
Write the interface contract before assigning addresses
For every exported item, record its source, encoding, units, update behavior and invalid condition. Add the software revision and interface revision to the commissioning record so later changes can be traced.
A useful contract answers these questions:
- Does the value represent an actual state, a requested state or a latched event?
- Is it continuously refreshed, updated on change or available only by request?
- Does an inactive flag mean false, unavailable or not yet initialized?
- Who clears it, and does clearing require a separate command?
- What happens during project loading, controller restart and communication loss?
The following is an illustrative layout, not a register map for any catalog product. Actual field widths and addresses must match the supported connection.
| Example field | Example allocation | Defined meaning |
|---|---|---|
| Status flags | 16 bits | Independent application and controller states |
| Validity flags | 16 bits | Which diagnostic groups may currently be used |
| Producer session | 32 bits | Changes after producer restart or reinitialization |
| Snapshot sequence | 32 bits | Advances when a new diagnostic snapshot is published |
| Alarm source | 16 bits | Identifies the subsystem owning the selected alarm |
| Alarm identifier | 32 bits | Source-specific identifier, interpreted with its source |
| Alarm event sequence | 32 bits | Indicates a new selected alarm occurrence |
| Reserved | 16 bits | Defined padding for this example |
This example occupies 24 bytes: 2 + 2 + 4 + 4 + 2 + 4 + 4 + 2. That is a payload budget, not evidence that a particular device supports the layout.
Define byte order, signedness and multiword consistency explicitly. A sequence field alone does not make a block atomic. Use the documented consistent-transfer mechanism or a supported snapshot protocol; do not assemble related values from unrelated update cycles.
Separate communication health from data freshness
A network connection can remain established while the vision application stops updating. Conversely, an application may continue processing while its diagnostic connection is unavailable. Monitor those conditions separately.
Where supported, advance a diagnostic sequence from the task that produces the application status. A counter maintained only by a communications service proves that service is active, not that image processing is healthy.
The PLC should measure elapsed time since the last accepted sequence change using its own clock. Restart that observation when the producer session changes. Do not calculate elapsed time directly between unsynchronized clocks on different devices.
For normal operation, an approximate upper bound on displayed status age is:
Suppose the producer updates every 100 ms, the PLC observes every 20 ms, and the HMI refreshes every 250 ms. The interval contribution is 100 + 20 + 250 = 370 ms, before communication and scheduling delays.
That estimate explains display lag; it does not establish a safe timeout. An illustrative freshness limit of 500 ms leaves only 130 ms beyond those interval contributions. Measure worst-case behavior during project loading, image logging and peak processing before accepting that limit.
A stale display and stale pick coordinates also require different decisions. At 600 mm/s, a conveyor moves 600 × 0.5 = 300 mm during a 0.5 s interruption. Whether a target remains usable depends on tracking, timestamps and the supported target lifecycle. See the conveyor scene timing guide for that separate problem.
Map alarm identifiers without inventing meanings
An alarm identifier needs a namespace. The same numeric value can mean different things in the vision application, motion controller and communication interface.
Store the source and identifier together. Where the documentation requires it, also retain the subsystem, channel or axis reference. Build HMI text from the documented alarm list for the installed revision rather than interpreting an unfamiliar identifier by resemblance to another system.
Choose how simultaneous alarms are represented:
- Summary flags: useful for immediate operator attention, but insufficient for detailed diagnosis.
- Selected active alarm: useful for a compact cyclic interface, provided selection priority is documented.
- Active alarm list: useful when the supported interface exposes multiple current conditions.
- Event history: useful for sequence analysis, but requires occurrence, clearing and retention semantics.
A single selected identifier cannot preserve every event. For example, if three conditions occur between HMI polls, the display may observe only the last selected condition. Do not label that record a complete history.
For a worked event, suppose the PLC receives source 2, identifier 417 and event sequence 38. If event sequence 39 later carries the same identifier, it may represent another occurrence under the agreed contract. Without the event sequence, the HMI could mistake a repeated fault for one continuous event.
Those values are illustrative only. Their meanings must come from the actual interface definition, not this example.
Give the HMI explicit valid and unavailable states
Do not use a blank alarm field to mean both “no alarm” and “no data.” Operators need to distinguish a healthy subsystem from an unreachable one.
A practical display separates:
- Application ready, busy, stopped or faulted.
- Controller warning or alarm status.
- Diagnostic connection established or lost.
- Data current, stale, initializing or unsupported.
- Last received value and its observation time, where retaining it helps diagnosis.
Show retained information as historical when freshness expires. Do not leave a green ready indicator visible simply because that was the last received state.
During reconnection, keep data invalid until the documented initialization conditions are satisfied. A changed producer session should trigger revalidation of the diagnostic snapshot and any associated project identity. Reconnection alone should not restore permission for automatic operation.
Also distinguish HMI acknowledgment from equipment reset. Acknowledging a message may only record that someone has seen it. Fault reset and motion restart remain separate, documented operations with their own permissives.
For uncertain network behavior, the vision cell network isolation guide helps separate plant-network traffic effects from application faults. Network changes should follow the site's approved controls and security practices.
Choose hardware only after confirming interface access
Do not replace functioning hardware merely because a desired diagnostic is absent from a cyclic data map. First determine whether the existing system exposes it through another supported interface, or does not expose it at all.
For a controller-based architecture, review the vision controllers category against the acquisition and processing requirements. The MV-VC3501H-128G60 is a vision-controller candidate. Its catalog entry is not evidence that the installed application exports a particular PLC diagnostic protocol or alarm dictionary.
- LAN ports
- 5+ LAN ports
- USB 3 ports
- 3-4 USB 3 ports
- Light outputs
- 4 built-in channels
- Memory
- 8 GB
For device-side inspection, review the smart cameras category and the camera finder. The LS-SMC-0063 is a smart-camera candidate. Confirm the exact supported status, result and diagnostic interfaces before making it part of the PLC design.
- Interface
- GigE
- Resolution
- Up to 3 MP
Neither candidate establishes how the motion controller publishes its own alarms or telemetry. That remains a separate interface question.
Ask for documentation covering the exact software version, required communication options, licensing, connection limits and diagnostic data definitions. Obtain software and documentation through the manufacturer or its authorized distribution channels. Do not infer access rights from the presence of an Ethernet port.
Commission failures as well as normal operation
Create a test record with stimulus, expected state, maximum permitted delay and observed result. Perform fault injection only under an approved commissioning procedure with the cell in a safe condition.
- Record a healthy baseline. Confirm session identity, sequence progression, validity and expected idle status. Save the interface revision alongside the PLC and HMI project revisions.
- Load and unload the vision project. Check that unavailable results become invalid rather than retaining an apparently usable state. Confirm the distinction between project loaded and application ready.
- Produce a documented acquisition fault. Use a supported diagnostic test or controlled commissioning action. Verify that the reported source identifies acquisition rather than a generic controller failure.
- Interrupt the diagnostic connection. Under controlled conditions, verify timeout behavior, stale-value presentation and the specified operational response. Record the measured detection delay.
- Restart the diagnostic producer. Check that the session changes and initialization is visible. Old values must not become current merely because communication reconnects.
- Exercise repeated and simultaneous alarms. Verify event counting, selection priority and message retention. Confirm that HMI acknowledgment does not silently reset equipment.
- Restore normal operation. Verify documented permissives and deliberate recovery steps. Confirm that obsolete targets or commands are not reused.
Where a fault involves unavailable camera features rather than the PLC connection, use the GenICam feature-access troubleshooting guide. A feature-access error and a fieldbus diagnostic fault belong to different layers and should not share an unexplained alarm label.
Keep the final trace with timestamps and both expected and observed transitions. A screenshot of a healthy display does not validate failure handling.
Know when a cyclic PLC map is the wrong answer
Cyclic status is suitable for a small set of frequently needed operating conditions. It may be a poor fit for detailed alarm text, long event histories or large maintenance datasets.
If temperature or position information is available only through a separate documented interface, decide whether the custom HMI needs direct supported access or an approved intermediary. Establish access permissions, polling limits and behavior when that secondary connection fails.
Position telemetry requires more than a number. Record coordinate frame, units, reference state, timestamp and whether the value is measured, commanded or calculated. A displayed position is not automatically a valid input for control or a substitute for safety-rated position monitoring.
Unavailable telemetry should remain explicitly unavailable. Do not reconstruct undocumented controller memory, probe hidden services or substitute guessed alarm meanings. If an interface cannot provide the required evidence, reduce the HMI's claims or select a supported architecture.
Check the diagnostic contract before ordering
Use this short review before approving hardware or software changes:
- Interface scope: required status and alarms are documented for the exact installed versions.
- Data semantics: false, invalid, stale and unsupported have different meanings.
- Alarm mapping: source, identifier, priority and event behavior are defined.
- Timing: update intervals and timeout limits have measured acceptance criteria.
- Recovery: restart, reconnection, acknowledgment and reset are separate operations.
- Telemetry: optional values have documented units, reference states and supported access.
- Safety: diagnostic displays do not replace protective functions or validated permissives.
Bring the diagnostic list and proposed architecture to the system configurator, or request an interface review through technical support. Start with the required information and its documented source; select parts only after those boundaries are clear.
Questions
Can one integer represent every vision cell alarm?
One field can carry a selected alarm identifier, but it usually cannot describe the whole cell. Include its source and define selection priority. Keep operating state, data validity and communication health separate so the HMI can distinguish an equipment fault from missing diagnostic information.
Can motor temperatures and positions use the same PLC interface?
Not necessarily. A controller may expose operating states through cyclic communication while offering maintenance telemetry through a different supported interface. Confirm availability for the exact controller, software and installed options. Never assume that a value visible on a local screen is available to the PLC.
What should the HMI show when diagnostic communication stops?
Mark the affected information unavailable or stale and identify which connection failed. Retained values may remain visible for diagnosis if clearly labeled as historical. The cell's operational response must follow its documented control design rather than treating the last received ready state as current.
How can the PLC detect an application stall with a healthy network?
Use a producer activity indication tied to the application, where the documented interface supports one. A communication service can continue exchanging data while processing has stalled. Monitor application state and diagnostic freshness separately, and validate both during controlled commissioning tests.
Should acknowledging an HMI alarm reset the equipment?
HMI acknowledgment normally records operator awareness; equipment reset requests a separate state change. Keep their permissions and effects explicit. Acknowledging or clearing a display message must not automatically restart motion or imply that the underlying fault and its recovery conditions have been resolved.

