Документация Engee

Темпоральная логика Конечных автоматов

After — функция, которая реализует темпоральную логику на переходах:

condition action stateflow

Логика After имеет два варианта вызова:

Синтаксис Описание Пример

after(n,tick)
n — целое положительное число или выражение.
tick — такт работы конечного автомата.

Возвращает true, если блок Chart включался не менее n раз с тех пор, как текущее состояние стало активным. В противном случае функция возвращает false.

after(3,tick)[x>3]

Выход из текущего состояния, когда блок активируется не менее трех раз с тех пор, как состояние стало активным, при условии, что x > 3.

after(n,sec) after(n,msec) after(n,usec)
n — положительное вещественное число или результат вычисления выражения.
sec — секунда.
msec — миллисекунда.
usec — микросекунда.

Возвращает true, если с момента, когда текущее состояние стало активным, прошло не менее n единиц времени. В противном случае функция возвращает false.

[after(1,tick) || x > 5]

after(10,tick)[x > 5]

after(n, tick){y = 20;}

after(2, sec)[x < 3]{y = 0;}

Для лучшего понимания приводимых примеров рассмотрим:

after(4,sec)[x > 10]

Eсли значение переменной x больше 10 и прошло 4 секунды после начала перехода, то происходит переход в следующее состояние.

Полезные ссылки