800xA SFC vs basic logic in time critical application
My costumer has a 800xA application that is somewhat time critical - the grate control in a boiler burning wood. The people running the plant believe that the hydraulics valves are not running completely in sync causing problems with the distribution of the fuel. The short version ;-)
The valves are the controlled by SFC and is executed every 100msec. And there is not CPU capacity to lower that.
For the valves and the grate position sensors the PowerLib blocks sepValveOpClM and sesDigInM are used.
So my question is: will I gain time by changing the control from SFC to simple logic - or using other IO blocks or......?????? suggestions would be appreciated.
Personally i would have chosen simple logic to SFC, but not sure if it's actually faster.
It is hard to say without knowing the details of your application...
SFC is usually a bad choice for a high speed application because you cannot be sure that the SFC is in the correct Step ( or state ) at any given time. Just because your SFC scans every 100mSec does not mean that the entire program is executed every 100mSec - ONLY the current step is executed. And even worse, for each step change you must execute a P0, a P1 and a N action, meaning a minimum 300 MSec to transit through a step to the next step.
SFC should be used for Supervising continuous logic ie. doing the supervising of the valves. - Your sepValveOpCIM and SesDigInM should be implemented in continuous logic. I assume this is how your application is written ?
So the SFC may not be the cause of your problem. "Running in Synch" is quite a vague description from the customer and may not be a correct description of the fault. The sequence timing may be wrong for example, but that might not be because somebody chose to use SFC - and SFC might actually still be the best solution.
I doubt the hydraulic valves respond in 100Msec. You might also want to consider whether this is a valve and actuator problem rather than a simple "logic" problem. Sticky valves and actuators can do funny things if the program isnt written correctly to account for this.
Its a grate in a wood burning boiler, the overall process is not really that time critical ( Even though detecting a rotation sensor might need a small piece of fast logic - obviously, not SFC )