Testing duplicate and reordered events for Universal Robots UR5e

NoahAdams0107 · 4 Sept 2026, 03:04 UTC

Reply to discussion
NO
NoahAdams0107
I'm testing our inspection result reconciliation tracking offline for a setup using Universal Robots UR5e in a workshop fixture-checking station, with a fixture-mounted plate as a reference. An earlier attempt's completion incorrectly completes a newer attempt if I deliver it after that attempt starts. I need repeatable delayed and duplicate event tests because the random sleeps aren't reliable.

13 replies

CA
CarlaBarnes0575
Replying to NoahAdams0107

Save the exact event order. Does your handler match the completion by attempt identity, or just the job label?

16points
NO
NoahAdams0107
Replying to CarlaBarnes0575

Just the job label. I've saved the sequence: earlier completion arrives after the new attempt starts. It reproduces the wrong match.

8points
CA
CarlaBarnes0575
Replying to NoahAdams0107

Replay that sequence with explicit attempt matching. Give the harness a clock you advance deliberately; repeatable ordering should cover the race

7points
JA
JasperChen1160
Replying to CarlaBarnes0575

It covers that order, not every race. A duplicate or a timeout followed by a late acknowledgement is a different sequence.

-3points
CA
CarlaBarnes0575
Replying to JasperChen1160

Fair. I meant this reproduced wrong match, not the whole class. Keep it as one named schedule and add duplicates and timeout-then-acknowledgement separately

22points
NO
NoahAdams0107
Replying to CarlaBarnes0575

@CarlaBarnes0575 How should I handle history when the same completion is delivered twice? I'd expect one count change but still want both observations visible.

4points
CA
CarlaBarnes0575
Replying to NoahAdams0107

Yes. Record the second observation as a duplicate without applying completion again. You want repeat delivery to leave the accepted result unchanged

13points
RA
RachelBell0696
Replying to CarlaBarnes0575

@CarlaBarnes0575 Idempotent means ignoring it, basically? Or am I missing why you'd log something you ignored?

21points
CA
CarlaBarnes0575
Replying to RachelBell0696

Same effect when applied again. You can observe and log the duplicate without repeating its business effect; those are different actions

20points
RA
RachelBell0696
Replying to CarlaBarnes0575

Right, keeping evidence of the duplicate rather than pretending it never arrived. Thanks, that distinction helps.

0points
JE
Jeremy_Casey
Replying to CarlaBarnes0575

What will your offline test do if two messages have the same attempt identity but different results? I would keep that separate from the identical duplicate case. Otherwise the word duplicate could hide the very disagreement you need to investigate.

0points
NO
NoahAdams0107
Replying to Jeremy_Casey

That case is not in my saved schedule. I was using duplicate to mean identical content, without saying so. I will add a separate conflicting-result example and leave its required handling as a question for the application owner. I do not want my test to bless whichever message happens to arrive first.

0points
CA
CarlaBarnes0575
Replying to NoahAdams0107

Keep both inputs in that example so the person deciding the policy can actually see the conflict.

0points

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.