Hi Steve, not quitting just conscious of your time i'm burning up
Don't worry about that. This is really interesting for me.
Project Overview: (Sequence Control Down Line Only )
The project is to communicate between operators, the correct sequence of events leading up to the dispatch of a train from one control section to the next control section on an exhibition layout. Each operator will have a “Sequence Control Panel” at his/her operating station, it will house the necessary inputs and outputs clearly labelled with a Statement as to the action it controls. Each Input will control 2 LEDs, one on each sequence control panel. The convention used on these Outputs will be SOLID to indicate “statement selected (button pressed) and FLASHING to indicate “user intervention required” (do something else then press a different button).
OK, so we have three ostensibly independent panels, each with an operator. The outputs inform him of the status. He has some unspecified tasks to perform, and he presses buttons to indicate a change in status. These states are communicated in part (or whole) to other operators vie the outputs (lights) on their panels.
All inputs are MO pushbuttons
All outputs are LEDs
And in addition, some lights have three states, on, off, and flashing. Others are "chase lights", but since they're either chasing or they're not, we can say they are on or off. The colour of the lights has little relevance to the process, but probably a lot more to the operator, so I won't drop that off the descriptions.
There are 3 Sequence Control Panels:
And what I've done is group all the inputs and outputs together so I can see what is on these panels.
1. London Fiddle Yard [LFY]
[LFY_I_TAD] Input 1 "Train Awaiting Dispatch" [ TAD ] MO Pushbutton On/Off
[LFY_I_FDRD] Input 4 "Fast Down Ready Dispatch" [ FDRD] MO Pushbutton On/Off
[LFY_O_TAD] Output 1 "Train Awaiting Dispatch" Amber On/Off LED
[LFY_O_TA] Output 2 "Train Accepted" Green On/Off LED
[LFY_O_ANS*] Output 3 "Awaiting Next Service" Red Flashing LED
[LFY_O_FDRD] Output 4 "Fast Down Ready Dispatch" Amber On/Off LED
[LFY_O_AFD] Output 6 "Accept Fast Down" 5x LED Chase Array
[ERM_I_TA] Input 2 "Train Accepted" [ TA ] MO Pushbutton On/Off
[ERM_I_RNS] Input 3 "Ready Next Service" [ RNS ] MO Pushbutton On/Off
[ERM_I_RS] Input 5 "Route Set" [ RS ] MO Pushbutton On/Off
[ERM_O_TAA] Output 1 "Train Awaiting Acceptance" Amber Flashing LED
[ERM_O_TA] Output 2 "Train Accepted" Green On/Off LED
[ERM_O_RNS] Output 3 "Ready Next Sevice" Red On/Off LED
[ERM_O_FDRD*] Output 4 "Fast Down Ready Dispatch" Amber Flashing LED (on/off/flashing)
[ERM_O_AFD] Output 6 "Accept Fast Down" 5x LED Chase Array
3.Country Fiddle Yard [CFY]
[CFY_I_AFD] Input 6 "Accept Fast Down" [ AFD ] MO pushbutton On/Off
[CFY_O_FDRD*] Output 4 Fast Down Ready Dispatch" Amber On/Off/flashing LED
[CFY_O_AFD] Output 6 "Accept Fast Down" 5x LED Chase Array
As you can see, I've grouped them all together and named each input and output with something that should make sense to you essentially it's {yard}-{direction}-{abbr}
Note that some outputs have a "*". I have named them that because these have 3 states. They're not just on or off, but they can also be flashing.
It would be wise for you to review my understanding.
It would also be a good idea to ensure we have all the inputs and outputs defined correctly. If an output has just 2 states (off or flashing) it need not have that * at the end. If it has 3 states (on, off, and flashing) it does need it. Similarly, if there were two types of flashing we would need to allow for extra values for that too.
Note: I have only discussed from London Fiddle Yard [LFY] to Eridge Main [ERM] on Down Slow Trains.... essentially the receiver of the trains at [ERM] will then become the dispatcher of them to [CFY]. So Actually there are 4 Sequence Panels, the 4th being Country End Eridge Main and Eridge Main becomes London End Eridge Main.. As part of the Fast Sequence includes the Country Fiddle Yard i have had to include that function in the above statement.
OK, so that means there is more complexity to come, and that is very useful information because it means we need to plan for something that we need to expand.
If you want the complete works i can do that including Up line Operations... although i hope to be able to achieve this myself God willing
Not yet
Next there are some things you might be able to point out for me.
1) are any of the indicators on panels duplicated. For example, does the [LFY_O_FDRD] LED on the LFY panel also appear on the CFY panel? And if it does, is it called the same thing?
2) Are these outputs mapped to signal lights on the track? Or is there some more complexity there?
What we have to consider (and I won't do it right now) is whether each panel is a separate state machine, or if there is one overall state machine. I am leaning toward the former (for a number of reasons including that it is probably the most extensible), but I won't come to a decision until after I have seen the states and state transitions.
3) If I have the inputs and outputs correct, then perhaps we can start with what appears to be the simplest panel (CFY) and the states it can be in. Perhaps you can start by giving me an overview of what the operator at the CFY does. What conditions does he watch for, what other task does he perform (in brief), and then what does he do on the panel, and finally, how does the panel change.
It might be as simple as: The [CFY_O_FDRD] and [CFY_O_AFD] are normally off. When it starts to flash, the operator ensures the track is clear and presses [CFY_I_AFD]. At this point the [CFY_O_FDRD] changes to solid ON and the [CFY_O_AFD] lights turn on. After the Train is clear, the [CFY_O_AFD] stops and the operator presses [CFY_I_AFD] to turn [CFY_O_FDRD] off.
(I'll assume that is all wrong
) Note that the description I have given has some mysterious input "train is clear" which we would need to get from somewhere. Also note that it gives me a description of a default, or starting state.
From that description we'll start work on the states and transitions for the [CFY]
Sorry I didn't get back to you earlier.