Whilst developing the code for the project a few interesting issues presented themselves and have been listed below:

 Problem:      If a sub-state contains only two states then, presumably due the single state transition scan cycle where both states are occupied at once, the PLC can become locked in both states simultaneously.
     
 Solution:   Where this situation was possible, additional states were added. Such as On-Off to On-Off-On-Off.
     
     
 Problem:   When using a single light/buzzer sub-state function call in two adjoining main states the post state clean-up (negative edge triggered) and sub-state re-initialisation (positive edge triggered) can occur out of order, causing no state to be taken.
     
 Solution:   When such a transition is possible, a clean-up exception condition was applied to the previous state if the newer state has been entered. In such a case the clean-up will already be preformed as part of the sub-state re-initialisation.
     
     
 Problem:   When an empty column was detected while stacking the disks, a positive edge trigger was used to set the next column in the series as empty via memory bits. It was found that when triggered once, all columns were marked as empty.
     
 Solution:   Separate memory bits were assigned to keep track of which column was being processed and when cleared the corresponding column empty bit was set.