This is in answer to comments by Paul F. Sullivan <The only thing I'd do differently is to use type def enums for the process state and for the task queue to catch misspellings during the programming phase.> This is just a programming style preference, either way will work. I put a pop-up error message in the default case to catch misspellings or bad cases. The message displays the incorrect case string which makes it very easy to troubleshoot. I previously used enums in the "good old days" when case statements did not accept strings, but I grew disenchanted with them because when I added a new value to the enum, the state case structure case labels would sometimes shift to ones which were incorrect, and I'd have to continually check every case and manually adjust the case names. Perhaps this is not a problem in LV7.0, I haven't bothered to check it because the strings work fine.
<I'd argue that your task loop is really a state machine that handles the "computer program states" you reference in your first sentence. > My Task loop is not a state machine because it simply pulls strings off of the queue and executes the corresponding cases that matches the task string. There is no shift register used to store strings in the Task loop and therefore the "next task" is not a function of the "current task" as required in state machines. Lewis Drake Process Automation Corporation Belle Mead, NJ 908 359-1011 www.processauto.com
