This is excellent advise for naming conventions. I wish all programmers would follow it.
While I can see the benefits on small systems, coming from the process world I feel that this would be difficult on larger and on complex processes. On one hand, making things read like a sentence seems logical but on the other there are times when this seems like it would be extremely tedious to program. From a system integrator perspective, tedious = inefficient = $$.
Writing logic for each device that reads like this seems more difficult:
"If the current step is 10, 20 or 30, and the system is in 'Supply Mode' and 'Route 1 Supply' is selected AND 'Route 1 Proximity Switch Confirmed' activate timer for 'Route 1 Supply Pump' for 3 seconds, then turn on 'Route 1 Supply Pump'. BUT if the 'Route 1 Supply valve' is not opened, interlock 'Route Supply Pump' or if the 'Route 1 Supply Tank Level' is lower than a 'Low Low Setpoint' interlock 'Route 1 Supply Pump."
Note that I used a 'BUT' to try and differentiate equipment interlock conditions versus typical operation. Then of course if you have a bunch of additional outputs that have to be controlled with a variety of steps, conditions, time delays and interlocks, I feel like it gets harder to read.
I like to see patterns in logic, patterns in logic form my base 'sentence' and the tags I see in the logic fill in the blanks. Patterns tell me what to expect before I look at the detail.
- "Ok, I'm in the logic are where we activate outputs based on step number".
- "Now I am in the logic area where we interlock outputs to protect equipment."
- "This is the logic that maps my software command signal, to the physical IO."
- "This is the logic where the programmer began to lose their mind."