Structured Text is a very powerful and useful language as is other PLC languages such as SFC. But it can also become your worst enemy.
It is easy to lose sight of an important aspect that a PLC can be good at.... that is the ease of troubleshooting and maintenance. Writing everything in structured text can become a nightmare to maintain and for others to work with.
For example. let's say "bubba", needed to know why his valve would not come on. He goes online and finds this:
Code:
Valve:=(SW1 AND LS1) OR ((LS2 and SW1) OR LS3);
Most likely he would just turn off the computer and brute force the troubleshooting or go find and engineer.
Now let's say he finds this:
Code:
SW1 LS1 Valve
--+--][-------][---------------------------------------------()--
| |
| LS2 SW1 |
+-][-------][----+
| |
| LS3 |
+-][-------------+
Within seconds he will be able to easily locate the problem.
The language choice also applies the other way around. Let's say you need to search through some FIFOs to see if a certain item exists. In ladder this would be a nightmare. Bubba would never figure it out, worst yet the original programmer would struggle with it. But then write it in ST and turn it into a function block with a good descriptive name and inputs/outpus,then there will be no need to try to figure out the code because it will be encapsulated in an easy to figure out function block.
A good programmer is not one that just gets something to work, nor does it the fastest. A program written by a good programmer will not only work properly, but will also be easy to maintain by the next person who uses it.
So my point is, having and using the tools properly makes a good programmer. But losing sight of the big picture and abusing the tools, can make a not so good programmer.