Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
Showing results for
Show only
|
Search instead for
Did you mean:
Invite a Co-worker
Send a co-worker an invite to the portal.Just enter their email address and we'll connect them to register. After joining, they will belong to the same company.
You have entered an invalid email address. Please re-enter the email address.
This co-worker has already been invited to the Exchange portal. Please invite another co-worker.
Please enter email address
Send InviteCancel
Invitation Sent
Your invitation was sent.Thanks for sharing Exchange with your co-worker.
📖HomeBack In structured text, there is no wait, sleep or pause function. You could do while loops to delay the code, however that just locks the logic thread for an extended time (which is bad
There is a simple way to introduce a loop count into logic, however your program must be running on interval rather than on-input processed and the effective delay will be a multiple of the interval. E.g.:
PROGRAM CountTest VAR Count AT %M(.Count.Value) : INT; Action AT %M(.Action.CurrentState) : INT; END_VAR
IF Count < 40 THEN Count := Count + 1; ELSIF Count = 40 THEN Action := 1; (* Do whatever you need to do *) Count := 999; (* This sets the count to a "useless" value. To restart the count set it back to 0 in the database *) END_IF; END_PROGRAM
The above code, when the database item Count is set to 0, will count up to 40 (so will be 40 seconds with a 1 second execution interval) and then execute whatever action is required. Once done it sets the Count to something out of the way (999 in this case) ready to be set back to 0 the next time it's needed. The Count variable could be a Variable object defined in the database or an internal variable within the logic program defined as VAR RETAIN.
The above code is simple, however for some scenarios isn't very suitable. An alternative is at the start of the calculation to calculate a date and time when the "delay is up" and then re-execute the logic program on schedule and checking that the stored date and time is not less than NOW().
For more information on how logic executes refer to Logic Execution.
Using Sequential Function Charts (SFC) as an Alternative to Structured Text
Structured Text isn't the best solution for implementing sleep and wait functions in ClearSCADA's logic engine although is the most popular. SFC functionality can use transitions which can use time based delays similar to TON functions and branching depending on the various conditions and has a program flow much better suited to this kind of behaviour.
However, SFCs have similar limitations as FBDs and as such the current functionality available is less than provided by the more flexible and powerful ST. For example, SFCs cannot execute SQL statements against the database although could call the Execute method on a separate Structured Text program to do so. For more information on limitations see Comparison of Logic Languages.