First off, I found an error on the display screen. Did anyone else see this??? Look at the generator output section. Notice the generator voltage. 24000 KV? That would be 24 megavolts or 24,000,000 volts. Correct units should be ‘V’ as in 24 kilovolts or 24,000 volts.
So you are in the middle of an event. A lot of annunciators have gone off. You are working the issue, staring at the computer screen to see if the actions you took are fixing the conditions that caused the event.
Another alarm goes off. You turn to look at the annunciator section of the simulator panel. It looks like another annunciator is lit, but it’s not clear which is the new one. Wouldn’t it be nice to have newly lit annunciators flash for 10 seconds?
To implement this, I used two 32 item arrays. The FIRST array is used to track the status of each annunciator – 0 if the annunciator should be off and 1 if the annunciator should be on. I use the SECOND array as a counter (0-9). For odd numbers, turn the annunciator on, even numbers turn it off.
I already have a section in the code that updates the screen values every second so I put the annunciator flash code there.
Example: Circ Water Pump is on. The annunciator for this pump is off.
1) Trip the pump
2) Logic determines the annunciator should be on
3) Set the corresponding array element in the FIRST array to 1
4) Set the corresponding array element in the SECOND array to 0.
5) Every second, the code checks the FIRST array for any element = 1
6) If ‘1’ is found, the SECOND array is checked. Increment the value in the SECOND array. For odd values, turn annunciator on. For even values, turn annunciator off.
7) If value in SECOND array >9, ignore (no flash, leave on)
8) When you restart the pump, logic turns the annunciator off and sets the element in the FIRST array to ‘0’ so it’s skipped for future action.
So now when a new alarms come in, the annunciators will flash for 10 seconds clearly showing the newly lit annunciators.