Sequential Function Charts vs Ladder Logic in Studio5000

We are having a discussion on which language to use for sequencing on a very large and complex project.
About ~10 large PLCs with ~15 different programmers and GUI developers, many subsystems.
.
Most of the project will be in ladder but are being asked to look into using Sequential Function Charts for all sequencing.
.
Argument for SFC
Is that we are given flow charts from the design engineers, and they will look similar.
.
Arguments against SCF,
If you have 100 sequences in SFC you may have to open 100 routines to locate the logic behind everything that turns a device on or off.
In ladder, the way we have it structured is every device has its own routine and all logic for that device is in that one routine.
Locating and troubleshooting anything controlling that is easy.
SCFs take up more than 2 times the screen space, harder to visualize.
.
I have seen SFC on some small projects, never scaled up on such large project.
.
Pin chart sequencing seems to be the favorite platform used on most
of the big projects that I have worked on for 30 + years.
.
Sometimes the Pin chart is combined with the SEQ function in ladder, sometimes not.
.
Any strong opinions for pro or con to different approaches?
a. Ladder alone
b. Ladder using Pin charts
c. Ladder using SEQ function and Pin charts
d. Ladder for most logic and SFC for Sequences
e. STL
f. Other?

Ladder Logic vs. Other Programming Languages: A Comparison - RealPars
This web site says to only use SFC for modeling a project not to write control logic
.
I cannot find much else pro or con.
.
Looking for other input
.
Thanks!!
 
Complexity for the sake of style, or complexity for the sake of complexity itself, are both a huge waste of time and resources as well as a massive pain to debug or maintain as said above.

I'd use either subroutines for each piece, called as required by the main code or use a simpler ladder based "state machine", where the state is described as a value which changes as required to define the state we are at, then use that value to run only the ladder rungs which match that state value in the opening conditions of the rung(s).

This approach maps nicely to a flowchart, where a given state is defined and a set of smaller steps within that state carry out the parts needed for operation, then set the state to the next value and operation continues.

At the end, set the state to a value of 0 which doesn't map to any functions and can be used to stop the process between each cycle, if the operation has a stop point, otherwise back to 1 and repeat. Leave gaps between state values to allow for insertion of any states not considered at initial design time like 1,10,20,30 etc.
 
If most programmers are more experienced in ladder logic, maintaining ladder as the primary language will be the most cost-effective option.
It's not the programmers you need to consider, it's the maintenance techs who have to troubleshoot it at 3am when production is down! Not necessarily troubleshooting the code, but figuring out why the machine won't run, or is making junk instead of good product.

Manufacturing runs on schedule and quality.
 
Top