I called states 'X' and 'Y' "alarms", since they were where the program went if the motor didn't start. Due to how they're (by me, but implied by the K-map), both are active only for one scan.
Clearly they cannot be used (directly) to alert the operator, but as I said, alarm handling is in a different module ("It's not covered in the spec - I'll have to issue a change order").
It's actually a very similar module, with X (or Y) acting as PB-1, the operator alert acting as MOTOR, and some sort of acknowledgement acting as PB-2. You could even have "alarms" within that module, if the operator takes too long to acknowledge them! (probably should be called "alerts" or "faults", though)
Giving something the proper name is always tricky. I should have used the word "Fault", not "Alarm". The words are often used interchangably, but like SFC/State Logic/Grafcet, it ain't necessarily so.
------
On the tangent of asynchonous I/O scanning in the CLX: (Man, I miss the old forum's ability to branch off threads when tangents occur)
I think every CLX programmer MOVEs all their I/O into internal tags - otherwise they'd go nuts. I still haven't come up with a single good reason to do it, at least not with inputs. I could make a case for outputs, but asynchonous does not mean immediate update, so even there it doesn't buy you anything.