StateTick Docs Home →
Conditions

Placeholders

Some terms wrap a signal in a function — a rising edge, a value change, an array aggregate, a composite-state check. In a generic condition these are placeholders: the wrapper is fixed, but the concrete signal is bound later, when the condition is used in a composite.

Edge detection

Turn a Bool signal into an edge event. True for exactly one scan on the transition:

R_TRIG(Motor.IMotor.Running)   // rising: FALSE -> TRUE
F_TRIG(Motor.IMotor.Running)   // falling: TRUE -> FALSE

Value change

React to a numeric value moving:

RISE(Global.PartCount)     // value increased
FALL(Global.PartCount)     // value decreased
CHANGE(Global.PartCount)   // any change

Array aggregates

Test many array elements at once, compared to a value:

ALL(array) = 1     // every element equals 1
ANY(array) > 0     // at least one is > 0
NONE(array) = 0    // none equal 0

Composite state & timers

IN_STATE('Composite', 'Idle')   // is a composite in a state
Timer.Done                          // a timer has elapsed

Queues

QUEUE_EMPTY('Q')   QUEUE_FULL('Q')   QUEUE_OK('Q')   QUEUE_OVERFLOW('Q')

Placeholders resolve in the composite. An edge/value/aggregate/state/queue/timer term is generic until you instantiate the condition in a composite — there you bind its inner signal to a concrete equipment instance, timer, or state. Edges over a Global.* signal are already concrete and auto-map. See Composite Instances.