Scenario:
In $Main, I have this rung:
STR ST2
RUN OutHand_PmppH
Program OutHand_PmppH begins with:
SG OutHand_PmppH.S0
When I connected to the processor (while responding to a report of incorrect system behavior,) I found S0 not running. The program OutHand_PmppH.RanThisScan bit was being set and there are no instructions (JMP, SGDIVRG, JMPI, SGRST, or SGRSTR) in any of the ladder that should cause S0 to be reset.
After 1/2-hour of proving to myself that there was nothing actively resetting S0, I dropped the PLC to Stop and then put in back in Run. Everything started working normally (S0 stayed running) and has been fine, since.
Is there anything else I should have done to troubleshoot this or should I chalk it up to cosmic ray bit-flipping?