Issue
We personalize a product like a plastic card on machine 1, we glue it to a carrier and want to personalize the carrier with the same information on machine 2.
Thus, we use read and print but we don’t have a checksum. We have issues like:
- Read and print without a checksum. There is no perfect camera or operator setting it up. How do we make sure that read and print works 100% without checksum? (answer, 100% without checksum is statistically impossible. There are mathematical models about this issue that basically conclude, besides a clever algorithm, that the more security you want the more check digits you need).
- We lose a card in the process from machine 1, so they are not in sequence anymore. By the way, how do we know which card went missing ?
- The camera misreads a number, it takes sometimes a 3 for an 8. What can we do without a checksum ?
One thing you can do is to try to do the whole product in one process. In above case, personalize the plastic card, glue it to the carrier, personalize the carrier. All in one process, much better. And of course use a controller like the GT that keeps and checks the data flow in check.
Anyway, how does the check sequence help me, knowing that I have a control number that increments or decrements by one?
Setup
Scenarios and handling
1) One missing. Card 47 is missing but the sequence is decrementing properly.
Sequence: 50, 49, 48, 46, 45, 44, 43, 42, 41, 40, ….
Divert: – , – , – , – , – , – , – , – , – , – , …
Errors: 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , …
If max. Seq. error is 0, it will stop the feeder, log, and tell the operator to check
If max. Seq. error is >=1, it will just continue, log “Sequence jump. Expected 47 got 46”
2) Two missing. Cards 47 and 45 missing but the sequence is decrementing properly.
Sequence: 50, 49, 48, 46, 44, 43, 42, 41, 40, ….
Divert: – , – , – , – , – , – , – , – , – , …
Errors: 0 , 0 , 0 , 1 , 2 , 1 , 0 , 0 , 0 , 0 , …
If max. Seq. error is 0, it will stop the feeder, log, and tell the operator to check
If max. Seq. error is 1, it will stop the feeder at 44, log, and tell the operator to check
If max. Seq. error is >=2, it will just continue and log “Sequence jump.”
3) 10 missing. Cards 47 to 39 missing but the sequence is decrementing properly.
Sequence: 50, 49, 48, 38, 37, 36, 35, 34, 32, 31, ….
Divert: – , – , – , – , – , – , – , – , – , – , …
Errors: 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , …
If max. Seq. error is 0, it will stop the feeder, log, and tell the operator to check
If max. Seq. error is >=1, it will just continue, log “Sequence jump. Expected 47 got 38”
4) Change of direction. Suddenly incrementing card.
Sequence: 50, 49, 48, 38, 37, 10, 11, 12, 13, 47, 46, ….
Divert: – , – , – , – , – , – , X , X , X , X , …
Errors: 0 , 0 , 0 , 1 , 0 , 1 , 2 , 3 , 4 , 5 , 4 ,…
If max. Seq. error is 0, it will stop the feeder, log, and tell the operator to check
If max. Seq. error is >=10, it will just continue, log “Sequence inverted, exp 9 got 11”
5) Misread. Camera took a 3 for an 8
Sequence: 50, 49, 48, 47, 46, 45, 44, 48, 42, 41, 40, ….
Divert: – , – , – , – , – , – , – , X , X , – , …
Errors: 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 2 , 1 , 0 ,…
If max. Seq. error is 0, it will stop the feeder at 48, log, and tell the operator to check
If max. Seq. error is 1, it will stop the feeder at 42, log, and tell the operator to check
If max. Seq. error is >=2, it will just continue, log “Sequence inverted, exp 43 got 48”
In this case, if the mark done feature is setup correctly, it will see that 48 was “already produced” and divert it. Warning: I have seen people still put rejected cards in the bag.
6) Misread. Camera took an 8 for a 3
Sequence: 50, 49, 43, 47, 46, 45, 44, 43, 42, 41, 40, ….
Divert: – , – , – , X , – , – , – , (X) , – , – , …
Errors: 0 , 0 , 0 , 1 , 0 , 0 , 0 , (1) , 0 , 0 , 0 ,…
If max. Seq. error is 0/1, it will stop the feeder at 47, log, and tell the operator to check
If max. Seq. error is >=2, it will just continue, log “Sequence inverted, exp 42 got 47”
In this case, if the mark done feature is setup correctly, it will see that 43 was “already produced” and divert it. BUT, the first is a very bad product because the data of 43 is printed on the carrier, instead of 48, just because the camera misread a number !
If you want to catch these errors, you will have to stop on each out-of-sequence, that is, zero tolerance !
You can also train a second camera in the hope that this one doesn’t do the same error
Alternatively, you can scan the original file for missing and double produced cards, go back and check the goods.
At the end, a typical file would look like:
Record ……. Mark Done Comment
0000001 1
0000002 1
0000003 2 probably case 5 above
0000004 1
0000005 1
0000006 1
0000007 1
0000008
0000009 1
0000010 1
0000011 1
0000012 1
0000013 1
0000014 1
0000015 1
0000016 1
0000017 probably case 1 above
0000018 1
0000019 1
0000020 1
Important note: the maximum number is 2’147’483’647. If the number is bigger than that, only the last 9 digits are checked for sequence.