Как использовать в диаграмме функциональных блоков последнее выбранное значение - PullRequest
0 голосов
/ 07 марта 2020

У меня интересная "домашняя работа", и я не могу понять это. Можно ли создать приложение в FBD PneuAlpha для следующего запроса?

В комнате есть лампочка и два ее переключателя: S1 и S2. Лампа должна следовать последней команде переключателей

, например:

S1 OFF, S2 OFF => лампа OFF

S1 OFF, S2 ON => лампа ON

S1 ON, S2 ON => лампа ON

S1 ON, S2 OFF => лампа OFF


Мне удалось создать программу, которая продолжает светиться, пока есть хотя бы один, но я не могу вспомнить, что это последнее состояние.


I пытался думать об этом как о FSM с двумя состояниями ON и OFF, и есть:

  • Если я нахожусь в state 0 (светодиод OFF), если ввод 00 оставайтесь на state 0, если ввод 01 10 или 11 go до state 1 (светодиод ON)
  • , если я нахожусь в state 1 (светодиод ON) ) если ввод 11, оставайтесь включенным state 1, если ввод 00, 01, 10 go до state 0 (lef OFF)

I Я не уверен, что это правильно, но мне не удалось найти логическое уравнение для моего FSM.

ps, я хотел бы знать, как это сделать с помощью простых логических c вентилей, а затем я преобразую в некоторые предопределенные функции, которые есть в программе pneuAlpha.

Ответы [ 2 ]

1 голос
/ 09 марта 2020

Для реализации в State Machine вам понадобятся состояния, чтобы различать условия переключения, которые могут быть либо включением лампы, либо выключением лампы, на диаграмме ниже

Шаг 00 - Sw1 = 0, Sw2 = 0, лампа = 0
шаг 01 - Sw1 = 0, Sw2 = 1, лампа = 1
шаг 02 - Sw1 = 1, Sw2 = 0, лампа = 1
шаг 03 - Sw1 = 0, Sw2 = 1, лампа = 0
шаг 04 - Sw1 = 1, Sw2 = 0, лампа = 0
шаг 05 - Sw1 = 1, Sw2 = 1, лампа = 1

Я пропустил переходы, где оба sw меняются на одном и том же скане. Хотя это вряд ли произойдет, для полноты картины вы должны добавить их. Sw's 00 -> 11 и 11 -> 00 ясны, но 01 -> 10 и 10 -> 01 не определены в вашей задаче spe c.

enter image description here

0 голосов
/ 09 марта 2020

Я последовал ответу Криса Нилсена, касающегося решения диаграммы PneuAlpha FBD, и он был прав. Программа работает точно так, как я хотел:

enter image description here

Я снова спросил его, могу ли я реализовать то же самое, используя только логические логики c, и он предоставил мне диаграмму FSM.

Таблица для FSM. Я не уверен, что это правильно на 100%, но, следуя схеме chris neilsen , я пришел к следующему: enter image description here

...