
What you need
Use two simulated state machines and timestamped logs. Ordinary control handshakes must remain separate from safety circuits.
Read the diagram as a data table
| Condition or component | s |
|---|---|
| Fast reply | 0.3 |
| Expected maximum | 0.8 |
| Timeout | 1.2 |
| Late reply | 1.5 |
The calculation
t_timeout = t_expected_max + t_margin
Times are seconds. The timeout is an application decision based on observed or specified behavior, not a universal constant.
Worked example
If a simulated fixture normally acknowledges within 0.8 s and the chosen process margin is 0.4 s, the timeout is 1.2 s. Responses at 0.3 and 0.8 s pass; a response at 1.5 s is late and must not accidentally start a new cycle.
Try it step by step
- Define a job identifier and the meaning of each signal, including what both devices do after power-up or reconnection.
- Require acknowledgment of the current request before motion and reject replies that belong to an older job identifier.
- Inject a missing response, duplicate message and reconnect into the simulator, and check bounded fault handling for each.
- Log transitions and elapsed time so an operator can distinguish a missing fixture acknowledgment from a robot motion fault.
How to check the result
Every request should terminate in a documented completion or fault state. Late acknowledgments must not create an unintended restart.
Common mistake to avoid
A communication timeout is not a safety stop. Do not replace a validated interlock with a software timer or automatically resume after ambiguous state loss.
Reference reading
Primary references for the underlying models, APIs or application context. The worked numbers and plots above are educational calculations, not results reported by these sources.


