Nice first sequencer.
You could use some better annotation. Clarifying what you are trying to do by clarifying what you are calling something is one key to success.
Terry posted an excellent <strike>rant</strike> <strike>diatribe</strike> essay on naming techniqes, at
THIS LINK.
It looks like you're using a simple sealing sequencer (if you change
F1_M to
ON_STEP_1, F2_M to
ON_STEP_2, etc., and
T1_M to
GOTO_STEP_1, etc.
When doing sequences like that, I include the step number as well as the transition from that step in the "set" condition logic:
ON_STEP_X TRANS_FROM_X TRANS_FROM_Y ON_STEP_Y
----+----| |---------| |-----+------|/|------------( )
| |
| ON_STEP_Y |
+---| |------------------+
.
while you just have
TRANS_FROM_X TRANS_FROM_Y ON_STEP_Y
----+------| |-----+------|/|------------( )
| |
| ON_STEP_Y |
+-----| |------+
.
Instead, you put that condition on the Transition coil. That's OK. It's mostly a stylistic difference. Logically they are about the same thing. But there are two advantages to doing it my way:
First, it makes it easier to follow the order of the sequencer when it's jumping around. I would be able to tell that you can get to step 3 (Red Light) from either step 2 (Wait for Start) or step 4 (Running), without having to go to the transition logic.
Second, it allows you to reuse transition conditions. It's not important in this example, but it can get redundant to do the same "Is tank pressure < 0.5 PSIG" test for half the transitions in a sequence.
One thing I see is that once you check for safties on startup, you aren't checking for them again. I would expect that at any time a safety is lost, you go to step 2 (blink red light). At least from step 3 (Red light). That's just a guess. Without knowing the specifics of the machine, I'm only speculating.
Your flow chart is fine, but a better way of describing the process is with a sequential function chart (SFC).
Startup
|
-+- T1_M
|
+---+---+
| F1_M |
+---+---+
|
-+- T2_M
|
+---+---+
| F2_M |
+---+---+
|
-+- T3_M
|
|<-----<-----+
+---+---+ |
| F3_M | |
+---+---+ ^
| |
-+- T4_M |
| |
+---+---+ ^
| F4_M | |
+-------+ |
| ^
-+- T3_M |
| |
+------>-----+
It says the same thing, without all the looping back to the same step on the No of the decision trees. The pointer can't leave a box until the transition condition is met.