Define whether a Logic Program Executes when the Quality of an Input Changes
You can configure a Logic program so that it is executed whenever one of its inputs changes value and/or the quality of any of its inputs changes. This is useful if you need to use your Logic program to provide certain behavior in the event of a quality change.
Example:
A Logic program is configured to execute On Input Processed and has Execute on Quality Change enabled. It is coded so that it reads the values of 4 points on an outstation.
When the point values change, the Logic program calculates the total value of the points and writes the result to another point (a derived point). The Logic program also includes code that sets the program to exclude any points that have Bad quality from its calculation. If any of the points are excluded due to Bad quality, the Logic program is set to write ‘Bad’ to the Current Quality property of the derived point.
When the value of any of the 4 input points changes, the Logic program executes, calculates the total value and writes the result to the derived point. The Logic program also executes if the quality of any of the input points changes.
There is a power failure and the outstation goes offline. ClearSCADA detects the fault and changes the quality of the 4 points to Bad as they may be inaccurate or out of date. But the current values of the points remain the same as before the power failure.
As Execute on Quality Change is enabled and 1 or more of the 4 input points have changed quality, the Logic program executes. The 4 input points now have Bad quality and so they are excluded from the Logic program’s calculation. This means that the result of the calculation is 0 and this is the value that is written to the derived point. As one or more of the inputs also have Bad quality, the Logic program sets the Current Quality value of the derived point to Bad. This means that the Current Value and Current Quality of the derived point indicates that there may be a problem with the Logic program or its inputs.
If the Execute on Quality Change feature was disabled, the Logic program would only execute when any of the input values changed. So when the outstation failed, the Logic program would not execute as the values for the points would not have changed. Consequently, the value of the derived point would remain the same - there would be no indication that the values used to calculate the derived point value are now unreliable.
To choose whether a Logic program executes when the quality states of its inputs have changed, you need to use the Execute on Quality Change check box on the Logic tab of Logic Program Form:
- If you check the Execute on Quality Change check box, the system will execute the program if it detects:
- A change in the value of the input (Logic programs that are set to On Input Processed execute automatically when their input values change)
- A change in the quality of the input.
- If you clear the Execute on Quality Change check box, the system will execute the program only when its input values change.
Further Information
Display the Logic Program Form: see Configure an ST Program, Ladder Diagram, SFC or FBD.