Стековая логика: Интернет справочник McS.

Главная - Умный дом - Контроллер домашней автоматизации OCELOT - Стековая логика

Эти довольно-таки большие примеры показывают, как много можно выполнить, используя всего-то несколько переменных и таймер. Заметим, что таймер может быть использован многократно, если он используется при взаимоисключающих величинах параметров (в нашем случае потому, что одновременно выполняется только один шаг одного режима имитации). Для случайных событий, таких как включаемый пользователем макрос, лучше использовать один таймер исключительно для одного сегмента программы, потому что единственным параметром будет значение самого таймера. Использование одного таймера для двух различных задач может привести к конфликту.

Стековая логика

Отдельный разговор о стековой логике, используемой контроллером «Ocelot». Что-то похожее используется в калькуляторах, когда во внутреннем стеке хранится результат последнего вычисления (в нашем случае логической операции). Это предполагает, что нельзя использовать «скобки» для влияния на порядок, в котором производятся логические операции. В контроллере «Ocelot» каждая логическая операция производится по отношению к предыдущему результату (никакой иерархии операций нет). Поскольку использовать скобки нельзя, порядок размещения логических операторов очень важен. Посмотрите на пример 8: если V1 равно 1, 2 или 3 после выполнения первых трех строк, результат будет TRUE, потому что в одной из этих трех строк результат будет TRUE. Посмотрим более детально. Пусть V1 = 2 и V2 = 5: результат первой строки — FALSE. Во второй строке получится TRUE, давая вместе с первой строкой результат TRUE. В третьей строке получим FALSE, но поскольку она связана с предыдущим результатом оператором OR, в результате получим TRUE. Четвертая строка (результат — TRUE) дает вместе с предыдущим результатом (TRUE) в итоге значение TRUE, запуская операторы THEN. Обратите внимание на слова «предыдущий» в каждом предложении... Теперь поменяем порядок следования операторов:

Пример 9

IF v2 = 5
if progression = 5
AND vl = 1
and in any absent mode
OR vl = 2
(V1 = 1,2,or 3)
OR vl = 3
Справочник по внедрению интеллектуальных систем 2005-2006.

Яндекс цитирования Rambler's Top100
Сайт управляется системой uCoz