Control: Fanuc 18i

Background:
We are running a high volume of a family of parts, so minimizing spindle idle time is key. In order to make things go fast and smooth, I made a subplate that allows hot-swapping of fixtures. I have two different fixtures, A and B. Fixture A holds 3 sets of parts in the family, and fixture B holds the other three sets.

Problem:
One program controls the machining of both fixtures A & B with an M00 in the middle to hot-swap them out. It's only a matter of time before someone pulls Fixture A out, goes to lunch, comes back, and then somehow puts Fixture A back in when it should be Fixture B.

Current Solution:
after the M00 there is a 4-second dwell, then an operator message "#3006=1 (Run Fixture B?)". The idea is to cause a break in their autopilot mode so that they can confirm the correct fixture. I am still worried about a problem arising though.

Possible solution:
Barcode the fixture and have a barcode reader that inputs the fixture number into a macro which then runs the corresponding program??? I assume I would need an rs232 barcode reader as this machine doesn't have USB, then as far as parameters go and how to get the scanner to communicate with the machine and finally get the scanned data into a variable is where I am lost.

Has anyone tried anything like this before? any other simpler, idiotproof solution I am overlooking?