Which job owns the completion after reconnect? - fixture-check bookkeeping

MinaAbbott0076 · 25 Aug 2026, 15:37 UTC

Reply to discussion
MI
MinaAbbott0076
Our application sometimes counts an old completion again when it reconnects. The PLC signal was already high before the connection dropped. This tracks fixture-check bookkeeping for Universal Robots UR5e in a PLC-coordinated inspection bench, using a fixture-mounted housing. I want to establish which job the retained state belongs to, without blindly clearing signals or automatically resending work.

16 replies

PR
PriyaAllen0307
Replying to MinaAbbott0076

Check whether the PLC trace shows a continuous completion signal, then compare that with how your application preserves its consumed-event state across reconnect or restart.

11 points
MI
MinaAbbott0076
Replying to PriyaAllen0307

It stays high. Our restart loses the in-memory consumed marker, so that first read looks new to the application. Annoyingly simple once it's visible.

8 points
PR
PriyaAllen0307
Replying to MinaAbbott0076

Use an offline reconnect replay with persistent job state and match the retained completion before applying it. Making the consumed marker durable should prevent duplicate accounting.

19 points
RI
RickShift
Replying to PriyaAllen0307

Only if that marker identifies the right job. One persisted boolean could hide a genuinely new completion instead.

13 points
PR
PriyaAllen0307
Replying to RickShift

Correct. I left out the important qualification: persist consumption against a matching job and attempt. If identity can't be established, leave the state unresolved.

13 points
MI
MinaAbbott0076
Replying to PriyaAllen0307

@PriyaAllen0307 Should reconnect have a reconciliation state before normal monitoring resumes? Otherwise our first sample looks just like any other update.

2 points
PR
PriyaAllen0307
Replying to MinaAbbott0076

@MinaAbbott0076 A reconciliation phase can compare the initial retained state with persistent history before normal processing resumes. Connection recovery alone doesn't establish a new job result.

6 points
LI
LiamBrooks0838
Replying to PriyaAllen0307

On my monitor, reconnect reused the startup path and reset the last-seen value. Edge detection then invented an edge nobody had observed.

8 points
AM
AmaraBarnes0600
Replying to LiamBrooks0838

Would ignoring the first high value fix that? It feels tempting, which probably means I'm missing something.

2 points
PR
PriyaAllen0307
Replying to AmaraBarnes0600

An initial high signal might represent a result missing from local history. It therefore needs reconciliation rather than unconditional acceptance or suppression.

10 points
MI
MinaAbbott0076
Replying to PriyaAllen0307

Our durable record has the job and attempt for the example in this trace. I'll use that for the replay rather than a global seen-it flag.

17 points
RI
RickShift
Replying to MinaAbbott0076

Does the retained interface state carry enough identity to match that record? A detailed local ledger alone doesn't prove the match.

19 points
MI
MinaAbbott0076
Replying to RickShift

The retained state in this capture includes a job identity matching our durable record. I haven't verified equivalent identity support across the other interface variants.

3 points
PR
PriyaAllen0307
Replying to MinaAbbott0076

You can verify the captured case without claiming all variants are covered. Where the interface can't establish identity, the retained completion should remain unresolved.

21 points
MI
MinaAbbott0076
Replying to PriyaAllen0307

@PriyaAllen0307 I've explained why our first read gets counted again: the signal persists while our consumed marker doesn't. I'll close the fix only when identity-based reconciliation survives the offline reconnect and restart cases.

13 points
PR
PriyaAllen0307
Replying to MinaAbbott0076

Your closure fits the observed mechanism, while the reconciliation result stays conditional on the required checks.

9 points

Add to the discussion

Welcome to Application Robot

Everyone can read the forum. Sign in or create an account to start a discussion, reply, or upload photos.

Forgot your password?

By creating an account, you agree to our Terms and Conditions and community guidelines. Read our Privacy Policy for how your information is handled.