The default timer built into the CND block is not triggering. As this is a class-based object, there are other places where this CND function block is being used, but in those places the timer is working properly. Any ideas on why this might be happening?
In reply to Matt Forbis:
In reply to Kashyap Soni:
In reply to dave_marshall:
Does that evaluate as ((A-B) < 10) or (A - (B<10)). Add another set of braces and control the logic execution...
What exactly are A and B in your example? Just wondering what you entered. Assuming A is a reference that allows you to control logic result? I would drop back and use a boolean parameter reference as the expression and toggle the value true and false.
have you looked at this through the Expression Viewer? Double click on the CND block while in online view
The expression is logically broken out. The current value of the references are shown in the items below the tree. If the expression is evaluating False, ie a red X, this helps understand what is happening.
Note. This is not actually what the CND block is evaluating. The Expression Viewer grabs the Expression and evaluates it independently of the CND block. The references are resolved from the point of view of the workstation, not the controller. So if you have external references in different controllers, and your controller running the CND block is not able to "Locate" the source module, the controller may not be receiving the actual values and have a BAD status and a read error. The workstation on the other hand is able to read the values from the other controller and resolves the expression successfully.
If the CND block error is good, ie no yellow question mark, then the above is not happening, or if you only have local references.
If Pre-OUT is 0, this tells us the logic is not evaluating to true.
Hope this helps.
Andre Dicaire
In reply to Andre Dicaire: