Maker Pro
Maker Pro

Arduino control of model train signalling (was: LED Power Supply for Control Panel)

And Again So you can see without opening up windows

FIRST THE DOWN LINE

Eridge Sequence Control Panel – Arduino Identifiers

LONDON FIDDLE YARD DOWN [LFY_D]

London Fiddle Yard Down Dispatch Panel [ LFY_DD_PANEL]

Inputs [LFY_DD_I]
[LFY_DD_I_TRD] Train Ready Dispatch
[LFY_DD_I_FSRD] Fast Service Ready Dispatch

Outputs [LFY_DD_O]
[LFY_DD_O_TRD] Train Ready Dispatch
[LFY_DD_O_TA] Train Accepted
[LFY_DD_O_ANS] Awaiting Next Service
[LFY_DD_O_FSRD] Fast Service Ready Dispatch
[LFY_DD_O_FRS] Fast Route Set
[LFY_DD_O_DFA] Down Fast Accepted





ERIDGE MAIN DOWN [ERM_D]

Eridge Main Down Accept [ERM_DA_PANEL]

Inputs [ERM_DA_I]
[ERM_DA_I_ADT] Accept Down Train
[ERM_DA_I_RNS] Ready Next Service
[ERM_DA_I_RS] Route Set

Outputs [ERM_DA_O]
[ERM_DA_O_TWA] Train Waiting Acceptance
[ERM_DA_O_ADT] Accept Down Train
[ERM_DA_O_RNS] Ready Next Service
[ERM_DA_O_DFRD] Down Fast Ready Dispatch
[ERM_DA_O_FRS] Fast Route Set
[ERM_DA_O_DFN] Down Fast Next


Eridge Main Down Dispatch [ERM_DD_PANEL]

Inputs [ERM_DD_I]
[ERM_DD_I_TRD] Train Ready Dispatch

Outputs [ERM_DD_O]
[ERM_DD_O_TRD] Train Ready Dispatch
[ERM_DD_O_TA] Train Accepted
[ERM_DD_O_ANS] Awaiting Next Service



COUNTRY FIDDLE YARD DOWN [CFY_D]

Country Fiddle Yard Down Accept [CFY_DA_PANEL]

Inputs [CFY_DA_I]
[CFY_DA_I_DTA] Down Train Accepted
[CFY_DA_I_RNS] Ready Next Service
[CFY_DA_I_DFA] Down Fast Accepted

Outputs [CFY_DA_O]
[CFY_DA_O_TWA] Train Waiting Acceptance
[CFY_DA_O_DTA] Down Train Accepted
[CFY_DA_O_RNS] Ready Next Service
[CFY_DA_O_DFRD] Down Fast Ready Dispatch
[CFY_DA_O_FRS] Fast Route Set
[CFY_DA_O_DFA] Down Fast Accepted


And The Up Line



]COUNTRY FIDDLE YARD UP [CFY_U]

Country Fiddle Yard Up Dispatch [CFY_UD_PANEL]

Inputs [CFY_UD_I]
[CFY_UD_I_TRD] Train Ready Dispatch
[CFY_UD_I_FSRD] Fast Service Ready Dispatch

Outputs [CFY_UD_O]
[CFY_UD_O_TRD] Train Ready Dispatch
[CFY_UD_O_TA] Train Accepted
[CFY_UD_O_ANS] Awaiting Next Service
[CFY_UD_O_FSRD] Fast Service Ready Dispatch
[CFY_UD_O_FRS] Fast Route Set
[CFY_UD_O_UFA] Up Fast Accepted



ERIDGE MAIN UP [ERM_U]

Eridge Main Up Accept [ERM_UA_PANEL]

Inputs [ERM_UA_I]
[ERM_UA_I_AUT] Accept Up Train
[ERM_UA_I_RNS] Ready Next Service
[ERM_UA_I_RS] Route Set

Outputs [ERM_UA_O]
[ERM_UA_O_TWA] Train Waiting Acceptance
[ERM_UA_O_AUT] Accept Up Train
[ERM_UA_O_RNS] Ready Next Service
[ERM_UA_O_UFRD] Up Fast Ready Dispatch
[ERM_UA_O_FRS] Fast Route Set
[ERM_UA_O_UFN] Up Fast Next

Eridge Main Up Dispatch [ERM_UD_PANEL]

Inputs [ERM_UD_I]
[ERM_UD_I_TRD] Train Ready Dispatch

Outputs [ERM_UD_O]
[ERM_UD_O_TRD] Train Ready Dispatch
[ERM_UD_O_TA] Train Accepted
[ERM_UD_O_ANS] Awaiting Next Service




LONDON FIDDLE YARD UP [LFY_U]

London Fiddle Yard Up Accept [LFY_UA_PANEL]

Inputs [LFY_UA_I]
[LFY_UA_I_UTA] Up Train Accepted
[LFY_UA_ I_RNS] Ready Next Service
[LFY_UA _I_UFA] Up Fast Accepted

Outputs [LFY_UA_O]
[LFY_UA _O_TWA] Train Waiting Acceptance
[LFY_UA _O_UTA] Up Train Accepted
[LFY_UA _O_RNS] Ready Next Service
[LFY_UA _O_UFRD] Up Fast Ready Dispatch
[LFY_UA _O_FRS] Fast Route Set
[LFY_UA _O_UFA] Up Fast Accepted
 
Last edited:
So recapping earlier posts putting new identifiers in place:

COUNTRY FIDDLE YARD DOWN [CFY_D]

Country Fiddle Yard Down Accept [CFY_DA_PANEL]

Inputs [CFY_DA_I]

[CFY_DA_I_DTA] Down Train Accepted
[CFY_DA_I_RNS] Ready Next Service
[CFY_DA_I_DFA] Down Fast Accepted

Outputs [CFY_DA_O]
[CFY_DA_O_TWA] Train Waiting Acceptance
[CFY_DA_O_DTA] Down Train Accepted
[CFY_DA_O_RNS] Ready Next Service
[CFY_DA_O_DFRD] Down Fast Ready Dispatch
[CFY_DA_O_FRS] Fast Route Set
[CFY_DA_O_DFA] Down Fast Accepted


OK, those are the inputs and outputs as they appear on the CFY_DA panel. We could call them now:

[CFY_DA_I_DFA] Input 6 "Accept Fast Down" [DFA ] MO pushbutton On/Off
[CFY_DA_O_DFRD] Output 4 "Down Fast Ready Dispatch" Amber On/Off
[CFY_DA_O_FRS] Output 5 "Fast Route Set" Green Flashing LED
[CFY_DA_O_DFA] Output 6 "Down Fast Acceped" 5x LED Chase Array

And now you're having a go at defining states and transitions...

Let me first define an initial state.

0. The initial (or reset state) nothing is hapening.
[CFY_DA_O_DFRD] Off
[CFY_DA_O_FRS] Off
[CFY_DA_O_DFA] Off

1. [CFY_O_DFRD] Output 4 "Down Fast Ready Dispatch" Amber On/Off Set to On
(by [LFY] operator)

OK, let's look at just the state.

1. Fast train dispatch initiated by LFY operator
[CFY_DA_O_DFRD] On
[CFY_DA_O_FRS] Off
[CFY_DA_O_DFA] Off

Quote:
3. [CFY_O_FRS] Output 5 "Fast Route Set" Green Flashing LED - Set to Flashing (by [ERM] operator.)
[CFY_O_FDRD] Output 4 "Fast Down Ready Dispatch" Amber - Set On (No Change from step1)
Action: Confirm Cassette In Place.
Action: (Set DCC controller Chip Number)
Action: Button Press [CFY_I_AFD] Input 6 "Accept Fast Down" [ AFD ] MO pushbutton ON
Result: [CFY_O_AFD] Output 6 "Accept Fast Down" 5x LED Chase Array On
Result: Cancels [CFY_O_FRS] Output 5 "Fast Route Set" Green Flashing LED - Set to OFF
Result Cancels [CFY_O_FDRD] Output 4 "Fast Down Ready Dispatch" Amber On/Off Set to OFF

3. Fast route accepted by ERM
[CFY_DA_O_FDRD] On
[CFY_DA_O_FRS] On
[CFY_DA_O_AFD] Off

becomes:
3. Fast route Set by ERM
[CFY_DA_O_DFRD] On
[CFY_DA_O_FRS] On
[CFY_DA_O_DFA] Off

And you've noted another state here:

3.5 Fast Train Acccepted
[CFY_DA_O_FDRD] Off
[CFY_DA_O_FRS] Off
[CFY_DA_O_AFD] On

becomes:


[CFY_DA_O_DFRD] Off
[CFY_DA_O_FRS] Off
[CFY_DA_O_DFA] On

Quote:
That about sums it up
Not quite. How do we get back to the initial state?

As you Guessed :D [CFY_DA_O_RNS] Ready Next Service

So now we have the following states:

0. CFY_DA_INIT The initial (or reset state) nothing is hapening.
1. CFY_DA_FDIL Fast train dispatch initiated by LFY operator
3. CFY_DA_FRAE Fast route accepted by ERM
3.5 CFY_DA_FTA Fast Train Acccepted

Happy to go with this :D

When in CFY_DA_INIT (0), on press of [LFY_DD_I_TAD] we change to CFY_DA_FDIL (1)

When in CFY_DA_FDIL (1), on press of [ERM_DD_I_RS] we change to CFY_DA_FRAE (3)

When in CFY_DA_FRAE (3), on press of [CFY_DA_I_AFD] we change to CFY_DA_FTA (3.5)

When in CFY_DA_FTA (3.5), on press of [CFY_DA_I_RNS???] we change to CFY_DA_INIT (0)

But gonna rewrite this adding (FOR FAST TRAIN OPERATION)

When in CFY_DA_INIT (0), on press of [LFY_DD_I_FSRD] Fast Service Ready Dispatch we change to CFY_DA_FDIL (1).

When in CFY_DA_FDIL (1), on press of [ERM_DA_I_RS] Route Set we change to CFY_DA_FRAE (3).

When in CFY_DA_FRAE (3), on press of [CFY_DA_I_DFA] Down Fast Accepted we change to CFY_DA_FTA (3.5).

When in CFY_DA_FTA (3.5), on press of [CFY_DA_I_RNS] Ready Next Service we change to CFY_DA_INIT (0).


Actually this is not entirely true as none of the slow states have been considered with regard to [ERM_DD] to [CFY_DA].
0. CFY_DA_INIT The initial (or reset state) nothing is hapening.
If we talk about the first train movement of the day on the down line this will always be a slow and so [ERM_DD_I_TRD] Train Ready Dispatch initiates a change but to an unmentioned state.

On Reset I'm guessing that the sequence in progress before reset would need to start again from the start and if this was not a slow train it would be [LFY_DD_I_FSRD] as quoted in orange text above.

These unusual state transitions may be very important if the system is to egt itself working again after an error.

Unsure what egt is (some kinda self test) :rolleyes:

Another issue is that a button press from a remote panel may not be simply that button press. It may also require the panel to be in a certain state. For example, if the LFY_DD panel is not in a state where a fast train is ready for dispatch, pressing the [LFY_DD_I_TAD] button should not perform a state transition at the [CFY_DA] panel.

LFY_DD Panel will always be in the correct state for a fast dispatch.. he initiates the sequence.. if he was half way through a sequence he would wait for [ERM_DA_I_RNS] . At this point he has the choice to dispatch another slow train via [LFY_DD_I_TRD] or start fast movement with [LFY_DD_FSRD]

The question is, are there any other state transitions? What if someone presses [LFY_DD_I_TAD] by mistake? How is that cancelled? Do we have some simple state transition back to CFY_DA_INIT? What if the error is noted only after the ERM operator has done something (so we are in CFY_DA_FRAE), or if the ERM operator accidentally pressed [ERM_DD_I_RS] before things were set up...?

If you think a "Master Reset" on each panel is needed I can add this function, such that should anyone of the Reset buttons be pressed.. we head back to
0. CFY_DA_INIT The initial (or reset state) nothing is hapening.

Hope you get through this in one piece, sorry bout the changes but i felt it was necessary to save confusion later in the process

Mark
 

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
I wrote a whole lot and then lost it :(

So I've edited your post above to add some things.

(1) New output [LFY_DD_O_CFY_FSRD]
(2) New output [CFY_DA_I_ADT]
(3) New input [CFY_DA_I_FSRD]
(4) New input [CFY_DA_I_ADT]
(5) States for CFY_DA
(6) Transitions for CFY_DA

I would advise you to check it all :)
 

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
Hahaha, I think you just blew away my edits on your post.

I'll try to unscramble the egg.

BTW, egt means get, my fingers were twisted up a bit.
 

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
DOWN LINE

LONDON FIDDLE YARD DOWN [LFY_D]


London Fiddle Yard Down Dispatch Panel [ LFY_DD_PANEL]

Code:
[COLOR=Blue]Inputs [LFY_DD_I][/COLOR]
[LFY_DD_I_TRD]           Train Ready Dispatch
[LFY_DD_I_FSRD]          Fast Service Ready Dispatch

[COLOR=Blue]Outputs [LFY_DD_O][/COLOR]
[LFY_DD_O_TRD]           Train Ready Dispatch
[LFY_DD_O_TA]            Train Accepted
[LFY_DD_O_ANS]           Awaiting Next Service
[LFY_DD_O_FSRD]          Fast Service Ready Dispatch
[LFY_DD_O_FRS]           Fast Route Set
[LFY_DD_O_DFA]           Down Fast Accepted
[LFY_DD_O_CFY_FSRD]      Connects to CFY_DA_I_FSRD. Asserted when fast train ready and not cleared until the route is set.
ERIDGE MAIN DOWN [ERM_D]

Eridge Main Down Accept [ERM_DA_PANEL]

Code:
[COLOR=Blue]Inputs [ERM_DA_I][/COLOR]
[ERM_DA_I_ADT]           Accept Down Train
[ERM_DA_I_RNS]           Ready Next Service
[ERM_DA_I_RS]            Route Set

[COLOR=Blue]Outputs [ERM_DA_O][/COLOR]
[ERM_DA_O_TWA]           Train Waiting Acceptance
[ERM_DA_O_ADT]           Accept Down Train
[ERM_DA_O_RNS]           Ready Next Service
[ERM_DA_O_DFRD]          Down Fast Ready Dispatch
[ERM_DA_O_FRS]           Fast Route Set
[ERM_DA_O_DFN]           Down Fast Next
[ERM_DA_O_CFY_ADT]       Connected to CFY_DA_I_ADT.  Asserted when fast train accepted.  Cleared when route set.
Eridge Main Down Dispatch [ERM_DD_PANEL]

Code:
[COLOR=Blue]Inputs [ERM_DD_I][/COLOR]
[ERM_DD_I_TRD]           Train Ready Dispatch

[COLOR=Blue]Outputs [ERM_DD_O][/COLOR]
[ERM_DD_O_TRD]           Train Ready Dispatch
[ERM_DD_O_TA]            Train Accepted
[ERM_DD_O_ANS]           Awaiting Next Service
COUNTRY FIDDLE YARD DOWN [CFY_D]

Country Fiddle Yard Down Accept [CFY_DA_PANEL]

Code:
[COLOR=Blue]Inputs [CFY_DA_I][/COLOR]
[CFY_DA_I_DFA]           Accept Fast Down (MO pushbutton On/Off)
[CFY_DA_I_RNS]           Ready Next Service
[CFY_DA_I_DFA]           Down Fast Accepted
[CFY_DA_I_FSRD]          Connected to [LFY_DD_O_CFY_FSRD].  Indicates a fast train ready for dispatch from LFY
[CFY_DA_I_ADT]           Connected to [ERM_DA_O_CFY_ADT].  Indicates fast train acceptance at ERM

[COLOR=Blue]Outputs [CFY_DA_O][/COLOR]
[CFY_DA_O_TWA]           Train Waiting Acceptance
[CFY_DA_O_DTA]           Down Train Accepted
[CFY_DA_O_RNS]           Ready Next Service
[CFY_DA_O_DFRD]          Down Fast Ready Dispatch (Amber on/off)
[CFY_DA_O_FRS]           Fast Route Set (green flashing/off)
[CFY_DA_O_DFA]           Down Fast Accepted (5 LEDS chasing/off)

[COLOR=Blue]States [CFY_DA_STATE][/COLOR]
0. CFY_DA_S_INIT         The initial (or reset state) nothing is happening.
                         [CFY_DA_O_DFRD]  Off
                         [CFY_DA_O_FRS]   Off
                         [CFY_DA_O_DFA]   Off

1. CFY_DA_S_FDIL         Fast train dispatch initiated by LFY operator
                         [CFY_DA_O_DFRD]  On
                         [CFY_DA_O_FRS]   Off
                         [CFY_DA_O_DFA]   Off

2. CFY_DA_S_FRSE         Fast route set by ERM
                         [CFY_DA_O_DFRD]  On
                         [CFY_DA_O_FRS]   On
                         [CFY_DA_O_DFA]   Off
              
3. CFY_DA_S_FTA          Fast Train Accepted
                         [CFY_DA_O_DFRD]  Off
                         [CFY_DA_O_FRS]   Off
                         [CFY_DA_O_DFA]   On         
     
[COLOR=Blue]Transitions[/COLOR]
0 -> 1   if [CFY_DA_I_FSRD] asserted (level sensitive)   
1 -> 2   if [CFY_DA_I_ADT] asserted (level sensitive)
2 -> 3   if [CFY_DA_I_DFA] pressed (edge sensitive)
3 -> 1   if [[CFY_DA_I_RNS] pressed (edge sensitive)

UP LINE


COUNTRY FIDDLE YARD UP [CFY_U]

Country Fiddle Yard Up Dispatch [CFY_UD_PANEL]

Code:
[COLOR=Blue]Inputs [CFY_UD_I][/COLOR]
[CFY_UD_I_TRD]           Train Ready Dispatch
[CFY_UD_I_FSRD]          Fast Service Ready Dispatch
[COLOR=Blue]
Outputs [CFY_UD_O][/COLOR]
[CFY_UD_O_TRD]           Train Ready Dispatch
[CFY_UD_O_TA]            Train Accepted
[CFY_UD_O_ANS]           Awaiting Next Service
[CFY_UD_O_FSRD]          Fast Service Ready Dispatch
[CFY_UD_O_FRS]           Fast Route Set
[CFY_UD_O_UFA]           Up Fast Accepted
ERIDGE MAIN UP [ERM_U]

Eridge Main Up Accept [ERM_UA_PANEL]

Code:
I[COLOR=Blue]nputs [ERM_UA_I][/COLOR]
[ERM_UA_I_AUT]           Accept Up Train
[ERM_UA_I_RNS]           Ready Next Service
[ERM_UA_I_RS]            Route Set

[COLOR=Blue]Outputs [ERM_UA_O][/COLOR]
[ERM_UA_O_TWA]           Train Waiting Acceptance
[ERM_UA_O_AUT]           Accept Up Train
[ERM_UA_O_RNS]           Ready Next Service
[ERM_UA_O_UFRD]          Up Fast Ready Dispatch
[ERM_UA_O_FRS]           Fast Route Set
[ERM_UA_O_UFN]           Up Fast Next
Eridge Main Up Dispatch [ERM_UD_PANEL]

Code:
[COLOR=Blue]Inputs [ERM_UD_I][/COLOR]
[ERM_UD_I_TRD]           Train Ready Dispatch

[COLOR=Blue]Outputs [ERM_UD_O][/COLOR]
[ERM_UD_O_TRD]           Train Ready Dispatch
[ERM_UD_O_TA]            Train Accepted
[ERM_UD_O_ANS]           Awaiting Next Service
LONDON FIDDLE YARD UP [LFY_U]

London Fiddle Yard Up Accept [LFY_UA_PANEL]

Code:
[COLOR=Blue]Inputs [LFY_UA_I][/COLOR]
[LFY_UA_I_UTA]           Up Train Accepted
[LFY_UA_ I_RNS]          Ready Next Service
[LFY_UA _I_UFA]          Up Fast Accepted

[COLOR=Blue]Outputs [LFY_UA_O][/COLOR]
[LFY_UA _O_TWA]          Train Waiting Acceptance
[LFY_UA _O_UTA]          Up Train Accepted
[LFY_UA _O_RNS]          Ready Next Service
[LFY_UA _O_UFRD]         Up Fast Ready Dispatch
[LFY_UA _O_FRS]          Fast Route Set
[LFY_UA _O_UFA]          Up Fast Accepted
 
Last edited:
Hahaha, I think you just blew away my edits on your post.

I'll try to unscramble the egg.

BTW, egt means get, my fingers were twisted up a bit.

Thought it was a bit strange.... posted as a Quote and when i went back it was a code and looked jumbled... sorry didn't realise you can edit my post :eek:

No problems, Sorry I have been a bit busy this weekend to get back to you earlier.

My head is firmly in some books ... trying to learn a bit more of the basics in the hope that i will get a better understanding and even produce something myself :)
 
Last edited:
Code:
States [CFY_DA_STATE]
0. CFY_DA_S_INIT         The initial (or reset state) nothing is happening.
                         [CFY_DA_O_DFRD]  Off
                         [CFY_DA_O_FRS]   Off
                         [CFY_DA_O_DFA]   Off

1. CFY_DA_S_FDIL         Fast train dispatch initiated by LFY operator
                         [CFY_DA_O_DFRD]  On
                         [CFY_DA_O_FRS]   Off
                         [CFY_DA_O_DFA]   Off

2. CFY_DA_S_FRSE         Fast route set by ERM
                         [CFY_DA_O_DFRD]  On
                         [CFY_DA_O_FRS]   On
                         [CFY_DA_O_DFA]   Off
              
3. CFY_DA_S_FTA          Fast Train Accepted
                         [CFY_DA_O_DFRD]  Off
                         [CFY_DA_O_FRS]   Off
                         [CFY_DA_O_DFA]   On         
     
Transitions
0 -> 1   if [CFY_DA_I_FSRD] asserted (level sensitive)   
1 -> 2   if [CFY_DA_I_ADT] asserted (level sensitive)
2 -> 3   if [CFY_DA_I_DFA] pressed (edge sensitive)
3 -> 1   if [[CFY_DA_I_RNS] pressed (edge sensitive)

OK the State Seem to be fine

Code:
Transitions

3 -> 1   if [[CFY_DA_I_RNS] pressed (edge sensitive)

1. CFY_DA_S_FDIL         Fast train dispatch initiated by LFY operator
                         [CFY_DA_O_DFRD]  On
                         [CFY_DA_O_FRS]   Off
                         [CFY_DA_O_DFA]   Off

Should Transitions

3 ->0 if [CFY_DA_I_RNS] pressed (edge sensitive)

Reason: On seeing Ready Next Service the Dispatcher has a choice to dispatch a fast or a slow movement... Going to State 1 means you cut out [CFY_DA_I_FSRD] asserted (level sensitive) ???

Actually [CFY_DA_I_RNS] pressed (edge sensitive) produces another State

[CFY_DA_O_RNS] On
[CFY_DA_O_DFRD] Off
[CFY_DA_O_FRS] Off
[CFY_DA_O_DFA] Off

An from this state the dispatcher makes his choice.

Also:

Code:
Transitions
1 -> 2   if [CFY_DA_I_ADT] asserted (level sensitive)

2. CFY_DA_S_FRSE         Fast route set by ERM
                         [CFY_DA_O_DFRD]  On
                         [CFY_DA_O_FRS]   On
                         [CFY_DA_O_DFA]   Off

What is [CFY_DA_i_ADT] asserted (level sensitive)

Should this not be [CFY_DA_I_FRS] asserted (level sensitive)

and

London Fiddle Yard Down Dispatch Panel [ LFY_DD_PANEL]

Code:
Inputs [CFY_DA_I]
[CFY_DA_I_DFA]           Accept Fast Down (MO pushbutton On/Off)
[CFY_DA_I_RNS]           Ready Next Service
[CFY_DA_I_DFA]           Down Fast Accepted
[CFY_DA_I_FSRD]          Connected to [LFY_DD_O_CFY_FSRD].  Indicates a fast train ready for dispatch from LFY
[COLOR="Red"][CFY_DA_I_ADT]           Connected to [ERM_DA_O_CFY_ADT].  Indicates fast train acceptance at ERM[/COLOR]

[CFY_DA_I_FRS] Connected to [ERM_DA_O_CFY_FRS] indicates fast route set at ERM

IDK Maybe I'm missing something here :rolleyes:
 
The Sequence Of Events Again:


Now i know what is expected i have re-detailed the sequence of events for my benifit as much as yours

Pre-State for Next Service ... FAST or SLOW

Code:
[LFY_DD_I_ANS]  Awaiting Next Service On Flashing
[ERM_DA_I-RNS] Ready Next Service On

[COLOR="Blue"]These 2 outputs are paired together[/COLOR]

From here [LFY] has choice to dispatch fast or slow train.

Fast Train Dispatched

Code:
1.[COLOR="DarkOrange"]Action by LFY Operator[/COLOR]
   [LFY_DD_I_FSRD]          Fast Service Ready Dispatch MO pushbutton On

[COLOR="DarkOrange"]Result of Action"[/COLOR][COLOR="Black"]
1a. [LYF_DD_O_FSRD]       Fast Service Ready Dispatch LED On
1b. [ERM_DA_O_DFRD]     Down Fast Ready Dispatch LED On Flashing
1c.  [CFY_DA_O_DFRD]      Down Fast Ready Dispatch LED On
1d. [LFY_DD_O_AWS]          Awaiting Next Service LED Off
1e. [ERM_DA_O_RNS]         Ready Next Service LED Off

[/COLOR]
[ERM] Operator has control of all turnouts and signals.. when safe to do so he will set the route for the fast movement.. This in turn will mean that there are no outstanding slow trains from [ERM_DD] to [CFY_DA] on the tracks and therefore the [CFY_DA_I_RNS] will have been pressed [CFY_DA_O_RNS] and [ERM_DD_O_AWS]
LEDs On.
Code:
[COLOR="DarkOrange"]2. Action by ERM Operator[/COLOR]
[ERM_DA_I_FRS]       Fast Route Set LED MO pushbutton On


[COLOR="DarkOrange"]Result of Action[/COLOR]
2a.   [CFY_DA_O_RNS]    Ready Next Service LED Off
2b.   [ERM_DD_O_ANS]   Awaiting Next Service LED Off
2c.   [LFY_DD_O_FRS]      Fast Route Set LED On
2d.   [LFY_DD_O_FSRD]   Fast Service Ready Dispatch LED Off
2e.   [ERM_DA_O_FRS]     Fast route Set  LED On
2f.    [ERM_DA_O_DFRD]  Down Fast Ready Dispatch LED Off
2g.   [CFY_DA_O_FRS]      Fast Route Set LED On Flashing

INFO ONLY 1c. [CFY_DA_O_DFRD] Down Fast Ready Dispatch LED On (remains on)
Code:
[COLOR="DarkOrange"]3. Action By CFY Operator[/COLOR]
[CFY_DA_I_DFA]        Down Fast Accepted MO pushbutton On

[COLOR="DarkOrange"]Result of Action:[/COLOR]

3a.   [LFY_DD_O_FRS]      Fast Route Set LED Off
3b.   [LFY_DD_O_DFA]       Down Fast Accepted  5x LED Chase Array On
3c.   [ERM_DA_O_FRS]      Fast route Set  LED Off
3d.   [ERM_DA_O_DFN]      Down Fast Next 5x LED Chase Array On
3e.   [CFY_DA_O_DFRD]    Down Fast Ready Dispatch Off
3f.     [CFY_DA_O_FRS]       Fast Route Set LED Off
3g    [CFY_DA_O_DFA]        Down Fast Accepted 5x LED Chase Array On


Train finishes movement to CFY


Code:
[COLOR="DarkOrange"]
4. Action by CFY Operator.[/COLOR]
[CFY_DA_I_RNS]        Ready Next Service MO pushbutton On
[COLOR="DarkOrange"]
Result of Action[/COLOR]

4a.   [LFY_DD_O_DFA]       Down Fast Accepted  5x LED Chase Array Off
4b    [ERM_DA_O_DFN]     Down Fast Next 5x LED Chase Array Off
4c     [CFY_DA_O_DFA]       Down Fast Accepted 5x LED Chase Array Off
4d.   [CFY_DA_O_RNS]      Ready Next service LED On
4e.   [ERM_DD_O_ANS]     Awaiting Next Service On flashing
4f.     [LFY_DD_O_ANS]      Awaiting Next Service On flashing
4g.   [ERM_DA_O_RNS]     Ready Next Service On
[COLOR="Blue"]
This puts all Operators back in ready next service state.[/COLOR]
 
Last edited:

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
Should Transitions

3 ->0 if [CFY_DA_I_RNS] pressed (edge sensitive)

Reason: On seeing Ready Next Service the Dispatcher has a choice to dispatch a fast or a slow movement... Going to State 1 means you cut out [CFY_DA_I_FSRD] asserted (level sensitive) ???

This is all to do with the interactions between panels.

Do you go back to a quiescent state after handling a fast train? I assume you must because the alternative is to go back to one of the other states, and that means you're handling a fast train again.

The reason these are level sensitive (we ask "is this (still) asserted now" rather than "has this just been asserted") is that we need to eliminate race conditions. A race condition is where two independent pieces of logic are following a similar path and it makes a difference if one reaches a certain state before or after the other one.

A possible situation occurs after a reset. Let's assume that LFY_DD is trying to schedule a fast train. The CFY_DA panel is in a funny state and must be reset. It gets reset, and powers up in state 0 (init) with the input from CRY_DD already asserted. Because it sees no edge, it can't progress to the next stage. Now we have to reset LFY_DD too, and maybe ERM_DA/DD.

The use of level sensitive triggers allows it to just progress to the next state, and maybe the next one after that without any fuss. The downside is that these signals must be reset from those other panels BEFORE the CFY_DA panel can be cleared

Actually [CFY_DA_I_RNS] pressed (edge sensitive) produces another State

[CFY_DA_O_RNS] On
[CFY_DA_O_DFRD] Off
[CFY_DA_O_FRS] Off
[CFY_DA_O_DFA] Off

An from this state the dispatcher makes his choice.
Now we've added another output to the list of things set by a state. Are we looking at a state that is introduced when we start to think about slow trains as well?

Or (perhaps) is the initialization state one which has CFY_DA_O_RNS turned on?

Also:

What is [CFY_DA_I_ADT] asserted (level sensitive)
[CFY_DA_I_ADT] is an input on the CFY_DA panel from the ERM_DA panel that indicates it has accepted a fast train. (This was something I asked you to check).

Should this not be [CFY_DA_I_FRS] asserted (level sensitive)
Possibly, however for technical reasons I decided to separate outputs driving LEDs from outputs signalling other panels. One of those reasons is timing. There may be a reason for this signal to be asserted for a slightly longer or shorter period to prevent race conditions.

See the definition of [ERM_DA_O_CFY_ADT]. It may well be wrong as I haven't looked at state transitions there yet.

and

[CFY_DA_I_FRS] Connected to [ERM_DA_O_CFY_FRS] indicates fast route set at ERM.

This is another link between panels. We need to know when certain states are set. And it may persist over several transitions to allow panels to naturally synchronise (and to prevent race conditions).

One thing we haven't spoken about -- and maybe we shouldn't yet -- is how the LFY knows that it can turn off the fast train chasing LEDs. Does that indication come from ERM (so they clear track segment by track segment), or does it happen from a signal at CFY (so it clears all at once). In real life, I imagine that the former would occur so as to free up the track for other traffic.

IDK Maybe I'm missing something here :rolleyes:
I think this happened whilst we were posting simultaneously.
 

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
The Sequence Of Events Again:

I'll have to look at this later.

The important thing is to think of states and transitions, not actions.

For you, that might be best done by thinking about all valid combinations of outputs and naming these states.

If an output is used to both drive a light AND to signal another panel, we should create a new output so we can manage timing between the signals.
 

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
I've looked again. I think we need to finish off the states at the CFY_DA panel first.

We know that there are 2 signals (at least) that we need from other panels.

Are there any more?

Can we look at how the slow train stuff happens, just from the perspective of CFY-DA?

Code:
[COLOR=Blue]Inputs [CFY_DA_I][/COLOR]
[CFY_DA_I_DFA]           Accept Fast Down (MO pushbutton On/Off)
[CFY_DA_I_RNS]           Ready Next Service
[CFY_DA_I_DFA]           Down Fast Accepted
[CFY_DA_I_FSRD]          Connected to [LFY_DD_O_CFY_FSRD].  Indicates a fast train ready for dispatch from LFY
[CFY_DA_I_ADT]           Connected to [ERM_DA_O_CFY_ADT].  Indicates fast train acceptance at ERM

[COLOR=Blue]Outputs [CFY_DA_O][/COLOR]
[CFY_DA_O_TWA]           Train Waiting Acceptance
[CFY_DA_O_DTA]           Down Train Accepted
[CFY_DA_O_RNS]           Ready Next Service
[CFY_DA_O_DFRD]          Down Fast Ready Dispatch (Amber on/off)
[CFY_DA_O_FRS]           Fast Route Set (green flashing/off)
[CFY_DA_O_DFA]           Down Fast Accepted (5 LEDS chasing/off)

[COLOR=Blue]States [CFY_DA_STATE][/COLOR]
0. CFY_DA_S_INIT         The initial (or reset state) nothing is happening.
                         [CFY_DA_O_DFRD]  Off
                         [CFY_DA_O_FRS]   Off
                         [CFY_DA_O_DFA]   Off

1. CFY_DA_S_FDIL         Fast train dispatch initiated by LFY operator
                         [CFY_DA_O_DFRD]  On
                         [CFY_DA_O_FRS]   Off
                         [CFY_DA_O_DFA]   Off

2. CFY_DA_S_FRSE         Fast route set by ERM
                         [CFY_DA_O_DFRD]  On
                         [CFY_DA_O_FRS]   On
                         [CFY_DA_O_DFA]   Off
              
3. CFY_DA_S_FTA          Fast Train Accepted
                         [CFY_DA_O_DFRD]  Off
                         [CFY_DA_O_FRS]   Off
                         [CFY_DA_O_DFA]   On         
     
[COLOR=Blue]Transitions[/COLOR]
0 -> 1   if [CFY_DA_I_FSRD] asserted (level sensitive)   
1 -> 2   if [CFY_DA_I_ADT] asserted (level sensitive)
2 -> 3   if [CFY_DA_I_DFA] pressed (edge sensitive)
3 -> 1   if [[CFY_DA_I_RNS] pressed (edge sensitive)


Perhaps we can start by defining
[CFY_DA_O_TWA], [CFY_DA_O_DTA], and [CFY_DA_O_RNS] for each of these states.

Are they always off?

Then tell me about what I see on this panel as I start to handle a slow train.

It needs to be something like:

Initially all lights are off, then the ERM-DD panel indicates it wants to schedule a slow train. This causes
[CFY_DA_O_TWA] to turn on (it is a flashing amber). When the operator accepts the train, he presses [CFY_DA_I_RNS] which causes [CFY_DA_O_TWA] to go out and [CFY_DA_O_DTA] to light in solid green. Simultaneously, a signal is sent to ERM-DD indicating the train is accepted, .... Then XXX indicates the process is complete and all lights are again out.

Following that, we need to talk about how fast and slow trains interact, for example, the [CFY_DA_O_TWA] light can change to flashing at any time during the fast train operation as ERM-DD indicates that it has a pending slow train to be handled after the fast train, ...
 
I've looked again. I think we need to finish off the states at the CFY_DA panel first.

We know that there are 2 signals (at least) that we need from other panels.

Are there any more?

As far as i can ascertain...No

1. Signal to register button press [LYD_DD_I_FSRD]
2. Signal to register button press [ERM_DA_I_RS]

Can we look at how the slow train stuff happens, just from the perspective of CFY-DA?

Code:
Inputs [CFY_DA_I]
[CFY_DA_I_DFA]           Accept Fast Down (MO pushbutton On/Off)
[CFY_DA_I_RNS]           Ready Next Service
[CFY_DA_I_DFA]           Down Fast Accepted
[CFY_DA_I_FSRD]          Connected to [LFY_DD_O_CFY_FSRD].  Indicates a fast train ready for dispatch from LFY
[CFY_DA_I_ADT]           Connected to [ERM_DA_O_CFY_ADT].  Indicates fast train acceptance at ERM

Outputs [CFY_DA_O]
[CFY_DA_O_TWA]           Train Waiting Acceptance
[CFY_DA_O_DTA]           Down Train Accepted
[CFY_DA_O_RNS]           Ready Next Service
[CFY_DA_O_DFRD]          Down Fast Ready Dispatch (Amber on/off)
[CFY_DA_O_FRS]           Fast Route Set (green flashing/off)
[CFY_DA_O_DFA]           Down Fast Accepted (5 LEDS chasing/off)

States [CFY_DA_STATE]
0. CFY_DA_S_INIT         The initial (or reset state) nothing is happening.
                         [CFY_DA_O_TWA] Off
                         [CFY_DA_O_DTA] Off
                         [CFY_DA_O_RNS] Off
                         [CFY_DA_O_DFRD]  Off
                         [CFY_DA_O_FRS]   Off
                         [CFY_DA_O_DFA]   Off

1. CFY_DA_S_FDIL         Fast train dispatch initiated by LFY operator
                         [CFY_DA_O_TWA] Off
                         [CFY_DA_O_DTA] Off
                         [CFY_DA_O_RNS] Off
                         [CFY_DA_O_DFRD]  On
                         [CFY_DA_O_FRS]   Off
                         [CFY_DA_O_DFA]   Off

2. CFY_DA_S_FRSE         Fast route set by ERM
                         [CFY_DA_O_TWA] Off
                         [CFY_DA_O_DTA] Off
                         [CFY_DA_O_RNS] Off
                         [CFY_DA_O_DFRD]  On
                         [CFY_DA_O_FRS]   On
                         [CFY_DA_O_DFA]   Off
              
3. CFY_DA_S_FTA          Fast Train Accepted
                         [CFY_DA_O_TWA] Off
                         [CFY_DA_O_DTA] Off
                         [CFY_DA_O_RNS] Off
                         [CFY_DA_O_DFRD]  Off
                         [CFY_DA_O_FRS]   Off
                         [CFY_DA_O_DFA]   On         
     
Transitions
0 -> 1   if [CFY_DA_I_FSRD] asserted (level sensitive)   
1 -> 2   if [CFY_DA_I_ADT] asserted (level sensitive)
2 -> 3   if [CFY_DA_I_DFA] pressed (edge sensitive)
3 -> 1   if [[CFY_DA_I_RNS] pressed (edge sensitive)

Ammended Code to Reflect [CFY_DA_PANEL] Slow trains

Yes the slow train leds are always off during fast movement and vice versa.
 
SLOW TRAIN MOVEMENT [ERM_DD] to [CFY_DA]

1.
Initially CFY Operator will finish any sequence and then press button [CFY_DA_I_RNS] causing [CFY_DA_O_RNS] Amber LED On. A signal will also be sent to [ERM_DD] which will cause [ERM_DD_O_ANS] Amber Flashing LED On.

2.
ERM operator will press button [ERM_DD_I_TRD] Train Ready Dispatch. This will cause
[ERM_DD_O_TRD] Green LED On and [ERM_DD_O_ANS] Amber LED Off. At the same time [ERM_DD_I_TRD] will cause a signal to be sent to [CFY_DA] Panel causing [CFY_DA_O_DTA] Green LED On and [CFY_DA_O_RNS] Amber LED Off.

3.
CFY operator will press [CFY_DA_O_RNS] on completion of movement ( back to 1.)


**Interestingly there is no state with no LEDs lit apart from the RESET state... which leads me to think RESET state should send back to Ready Next Service or its equivalent on each panel**

States [CFY_DA_STATE]
0. CFY_DA_S_INIT The initial (or reset state) nothing is happening.
[CFY_DA_O_TWA] Off
[CFY_DA_O_DTA] Off
[CFY_DA_O_RNS] On
[CFY_DA_O_DFRD] Off
[CFY_DA_O_FRS] Off
[CFY_DA_O_DFA] Off

Is this possible, if say [CFY_DA] crashes and resets to this state but [ERM_DD] is not in this state the 2 are not married... Send a Signal to ERM_DD to put [ERM_DD_O_ANS] Off following a Reset ???
 
Following that, we need to talk about how fast and slow trains interact, for example, the [CFY_DA_O_TWA] light can change to flashing at any time during the fast train operation as ERM-DD indicates that it has a pending slow train to be handled after the fast train, ...

This Is Not Good. Before we started this State Machine Process it was possible to "lock" buttons out of the sequence so only the sequence was followed.

Quote:
Originally Posted by P4 Modeller View Post
The Plan was to only have 1 button in the "unlocked" state so that the sequence was followed correctly. So in the FAST DOWN TRAIN Routine all the "SLOW DOWN" buttons would be "locked out" until [CFY_DA_I_RNS] was pressed.
Yes, that's generally a very good idea. It produces a nice clean set of states with simple transitions. In terms of what the operator has to do, it means they very rarely have to make a choice of one of two (or more) things to do.

Previously mentioned :D

This means we need to lock ALL Slow Inputs when a fast service is initiated until a valid "ready next train" has been pressed.... this should be at the top of the states ? :rolleyes:
And all Fast Inputs when a Slow is Initiated.... which just leaves Ready Next Service Input in Limbo Land
Or could this be locked out until it is required in the sequence .... dooh

AND YOU SAID THIS WAS EASIER LMAO
 
Last edited:

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
This Is Not Good. Before we started this State Machine Process it was possible to "lock" buttons out of the sequence so only the sequence was followed.

Yeah, I'm just making sure that they really are locked out :)

This means we need to lock ALL Slow Inputs when a fast service is initiated until a valid "ready next train" has been pressed

Great.

AND YOU SAID THIS WAS EASIER LMAO

Probably when I don't forget stuff.

Remember that this started out as two switches and 2 lights... It has grown somewhat :-o
 
Hi Steve,
Remember that this started out as two switches and 2 lights... It has grown somewhat :-o

Sure Has.

Code:
0. CFY_DA_S_INIT         The initial (or reset state) nothing is happening.
                         [CFY_DA_O_TWA]   Off
                         [CFY_DA_O_DTA]   Off
                         [CFY_DA_O_RNS    Off
                         [CFY_DA_O_DFRD]  Off
                         [CFY_DA_O_FRS]   Off
                         [CFY_DA_O_DFA]   Off

1. CFY_DA_S_RNS         [U]R[/U]eady [U]N[/U]ext [U]S[/U]ervice
                         [CFY_DA_O_TWA]   Off
                         [CFY_DA_O_DTA]   Off
                         [CFY_DA_O_RNS]   On
                         [CFY_DA_O_DFRD]  Off
                         [CFY_DA_O_FRS]   Off
                         [CFY_DA_O_DFA]   Off

2. CFY_DA_S_SDIE        [U]S[/U]low train [U]D[/U]ispatch [U]I[/U]nitialed [U]E[/U]RM
                         [CFY_DA_O_TWA]   On
                         [CFY_DA_O_DTA]   Off
                         [CFY_DA_O_RNS]   Off
                         [CFY_DA_O_DFRD]  Off
                         [CFY_DA_O_FRS]   Off
                         [CFY_DA_O_DFA]   Off

3. CFY_DA_S_STA        [U]S[/U]low [U]T[/U]rain [U]A[/U]ccepted
                         [CFY_DA_O_TWA]   Off
                         [CFY_DA_O_DTA]   On
                         [CFY_DA_O_RNS]   Off
                         [CFY_DA_O_DFRD]  Off
                         [CFY_DA_O_FRS]   Off
                         [CFY_DA_O_DFA]   Off

4. CFY_DA_S_FDIL         Fast train dispatch initiated by LFY operator
                         [CFY_DA_O_TWA]   Off
                         [CFY_DA_O_DTA]   Off
                         [CFY_DA_O_RNS]   Off
                         [CFY_DA_O_DFRD]  On
                         [CFY_DA_O_FRS]   Off
                         [CFY_DA_O_DFA]   Off

5. CFY_DA_S_FRSE         Fast route set by ERM
                         [CFY_DA_O_TWA]   Off
                         [CFY_DA_O_DTA]   Off
                         [CFY_DA_O_RNS]   Off
                         [CFY_DA_O_DFRD]  On
                         [CFY_DA_O_FRS]   On
                         [CFY_DA_O_DFA]   Off
              
6. CFY_DA_S_FTA          Fast Train Accepted
                         [CFY_DA_O_TWA]   Off
                         [CFY_DA_O_DTA]   Off
                         [CFY_DA_O_RNS]   Off
                         [CFY_DA_O_DFRD]  Off
                         [CFY_DA_O_FRS]   Off
                         [CFY_DA_O_DFA]   On         
     
Transitions
0 -> 1   if [CFY_DA_I_RNS] pressed (edge sensitive)
1 -> 2   if [ERM_DD_I_TRD] pressed (edge sensitive) needs to be changed to signal  
2 -> 3   if [CFY_DA_I_DTA]  pressed (edge sensitive) 
3 -> 1   if [CFY_DA_I_RNS] pressed (edge sensitive) 

1 -> 4   if [CFY_DA_I_FSRD] asserted (level sensitive)   
4 -> 5   if [CFY_DA_I_ADT] asserted (level sensitive)
5 -> 6   if [CFY_DA_I_DFA] pressed (edge sensitive)
6 -> 1   if [CFY_DA_I_RNS] pressed (edge sensitive

I have made State (0) All Off.... this will actually serve to all panels a reset has occured and also means a button[RNS] has to be pressed to resume once the fault has been rectified.

State (1) now becomes the quiescent state after handling trains


How does that look ?
 
Last edited:
And CFY_DA PANEL Inputs/Outputs Updated to reflect above

Code:
**CFY PANEL STATES AND TRANSITIONS**

**[CFY_DA PANEL] STATES AND TRANSITIONS**

Inputs [CFY_DA_I]

**CFY PANEL STATES AND TRANSITIONS**

**[CFY_DA PANEL] STATES AND TRANSITIONS**

Inputs [CFY_DA_I]

[CFY_DA_I_DTA]           Down Train Accepted
[CFY_DA_I_RNS]           Ready Next Service
[CFY_DA_I_DFA]           Down Fast Accepted


[CFY_DA_I_STRD]          Connected to [ERM_DD_O_CFY_STRD]   Signal from ERM_DD Panel Indicates a slow train ready for dispatch from ERM
[CFY_DA_I_FSRD]          Connected to [LFY_DD_O_CFY_FSRD].  Signal from LFY_DD Panel. Indicates a fast train ready for dispatch from LFY
[CFY_DA_I_ADT]           Connected to [ERM_DA_O_CFY_ADT].   Signal from ERM DA Panel. Indicates fast train acceptance at ERM (Route Set)

Outputs [CFY_DA_O]

[CFY_DA_O_TWA]           Train Waiting Acceptance
[CFY_DA_O_DTA]           Down Train Accepted
[CFY_DA_O_RNS]           Ready Next Service
[CFY_DA_O_DFRD]          Down Fast Ready Dispatch (Amber on/off)
[CFY_DA_O_FRS]           Fast Route Set (green flashing/off)
[CFY_DA_O_DFA]           Down Fast Accepted (5 LEDS chasing/off)

States [CFY_DA_STATE]

0. CFY_DA_S_INIT         The initial (or reset state) nothing is happening.
                         [CFY_DA_O_TWA]   Off
                         [CFY_DA_O_DTA]   Off
                         [CFY_DA_O_RNS    Off
                         [CFY_DA_O_DFRD]  Off
                         [CFY_DA_O_FRS]   Off
                         [CFY_DA_O_DFA]   Off

1. CFY_DA_S_RNS         Ready Next Service
                         [CFY_DA_O_TWA]   Off
                         [CFY_DA_O_DTA]   Off
                         [CFY_DA_O_RNS]   On
                         [CFY_DA_O_DFRD]  Off
                         [CFY_DA_O_FRS]   Off
                         [CFY_DA_O_DFA]   Off

2. CFY_DA_S_SDIE        Slow train Dispatch Initialed ERM
                         [CFY_DA_O_TWA]   On
                         [CFY_DA_O_DTA]   Off
                         [CFY_DA_O_RNS]   Off
                         [CFY_DA_O_DFRD]  Off
                         [CFY_DA_O_FRS]   Off
                         [CFY_DA_O_DFA]   Off

3. CFY_DA_S_STA        Slow Train Accepted
                         [CFY_DA_O_TWA]   Off
                         [CFY_DA_O_DTA]   On
                         [CFY_DA_O_RNS]   Off
                         [CFY_DA_O_DFRD]  Off
                         [CFY_DA_O_FRS]   Off
                         [CFY_DA_O_DFA]   Off

4. CFY_DA_S_FDIL         Fast train dispatch initiated by LFY operator
                         [CFY_DA_O_TWA]   Off
                         [CFY_DA_O_DTA]   Off
                         [CFY_DA_O_RNS]   Off
                         [CFY_DA_O_DFRD]  On
                         [CFY_DA_O_FRS]   Off
                         [CFY_DA_O_DFA]   Off

5. CFY_DA_S_FRSE         Fast route set by ERM
                         [CFY_DA_O_TWA]   Off
                         [CFY_DA_O_DTA]   Off
                         [CFY_DA_O_RNS]   Off
                         [CFY_DA_O_DFRD]  On
                         [CFY_DA_O_FRS]   On
                         [CFY_DA_O_DFA]   Off
              
6. CFY_DA_S_FTA          Fast Train Accepted
                         [CFY_DA_O_TWA]   Off
                         [CFY_DA_O_DTA]   Off
                         [CFY_DA_O_RNS]   Off
                         [CFY_DA_O_DFRD]  Off
                         [CFY_DA_O_FRS]   Off
                         [CFY_DA_O_DFA]   On         
     
Transitions
0 -> 1   if [CFY_DA_I_RNS] pressed (edge sensitive)
1 -> 2   if [CFY_DA_I_STRD]asserted (level sensitive)
2 -> 3   if [CFY_DA_I_DTA]  pressed (edge sensitive) 
3 -> 1   if [CFY_DA_I_RNS] pressed (edge sensitive) 

1 -> 4   if [CFY_DA_I_FSRD] asserted (level sensitive)   
4 -> 5   if [CFY_DA_I_ADT] asserted (level sensitive)
5 -> 6   if [CFY_DA_I_DFA] pressed (edge sensitive)
6 -> 1   if [CFY_DA_I_RNS] pressed (edge sensitive


This is how i see it but your welcome to ammend and change any new names that don't suite as you see fit

Mark

PS one thing i had thought of. We have looked at getting inputs via input signals from other panels onto the CFY_DA_Panel.
Do we need to make provision for those output signals created by CFY_DA that may be needed on other panels?... I'm sure we will
But is that needed right at this time. (seems to me that so far..any buttons not actually on the panel in question need signal inputs from others, so 6 leds, 6 buttons means 6 inputs whether they are button press or signals or a miture).
 
Last edited:

(*steve*)

¡sǝpodᴉʇuɐ ǝɥʇ ɹɐǝɥd
Moderator
This is how i see it but your welcome to ammend and change any new names that don't suite as you see fit

No, I don't really see any reason to amend it.

I would group the transitions differently, but they are logical the way they are and as such are fine.

PS one thing i had thought of. We have looked at getting inputs via input signals from other panels onto the CFY_DA_Panel.
Do we need to make provision for those output signals created by CFY_DA that may be needed on other panels?... I'm sure we will

We sure will.

But is that needed right at this time. (seems to me that so far..any buttons not actually on the panel in question need signal inputs from others, so 6 leds, 6 buttons means 6 inputs whether they are button press or signals or a miture).

I think you've pretty much got it figured out. But there's no reason why we can't come back to this and add more outputs as required.

So we can leave this one here and move on to another -- we really want to get the definitions done before we start coding.

Is the LFY_UA panel similar in nature to the CFY_DA panel? If so, we may be able to just create the state transition diagram for it without a great deal of thought, just transposition.
 
Top