Показать сообщение отдельно
Старый 31.10.2017, 08:54   #511
AlexSku
Senior Member
 
Регистрация: Oct 2017
Адрес: Москва
Сообщения: 183
Благодарил(а): 21 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
По умолчанию Ответ: FBD чайникам

Цитата:
Сообщение от младшой Посмотреть сообщение
У вас в конце концов переменная С однозначно определяет состояние Z.
Следовательно, А и В вообще не имеют значения и код с ними бесполезен.
Цитата:
Сообщение от New Посмотреть сообщение
Угу. Я потому выше и спросил, что должно то получиться.
Дело в том, что я решил реализовать алгоритм на SFC (Графсет, как говорят французы), а этого языка у Segnetics нет. Я вам привёл только короткий фрагмент. Могу теперь его расширить.
SFC.png
Рассмотрим состояние А1 (рисовать неохота, буду теперь писать), которое реализовано RS-триггером. Оно устанавливается (становится активным) при переходе w:
IF A2 AND w THEN A1:= TRUE;

А сбрасывается (становится неактивным) при переходе x. (переход x будет описан аналогично для триггера B1, поэтому установка B1 это условие сброса A1):
IF B1 THEN A1:= FALSE;

Но для состояния A2 есть только сброс и нет установки (т.к. нет перехода в состояние A2):
IF A1 THEN A2:= FALSE;

Что же делать? Мы дополняем систему переходов системами вложенных состояний:
A2 = B1 OR B2;

Вот теперь активация любого вложенного состояния (B1, B2) (по любой причине) приведёт к активации родителя A2. Если же все вложенные состояния неактивны, то и родитель A2 тоже становится неактивным.

Резюме. Есть условия установки состояний, есть условия сброса и есть условия вложенности. Вот их и надо все реализовать.
AlexSku вне форума   Ответить с цитированием