Pull to refresh

Comments 2

Мне кажется можно рассмотреть еще одну ситуацию, опишу вкратце:

HMI - Сигнал ON (INT).

Через ФБ перекладывается в PLC - Сигнал ON (BOOL).

Поле - DO1 (ON), DO2 (OFF).

Перекладка выглядит так: DO1 := ON, DO2 := NOT ON.

Собственно риск при перезагрузке ПЛК, после инициализации переменных в DO1 по умолчанию кинуть "0", соответственно в DO2 упадет "1". И выключится то, что должно быть включено. Тут думаю надо при инициализации как минимум проверять на текущее состояние объекта.

Зачем на HMI кидать регистр (int) если можно отделаться bool? Чем меньше у вас возможностей что-то сломать - тем лучше!
Передавать в HMI регистр и потом вытаскивать с него биты - худшее решение что только можно придумать в малых системах.
Состояние, аварии, предупреждения. Но контроль кидать в регистр - моветон. Хотя все управление ПЧ завязано именно на этом.

То что вы описали - явный пример OR\XOR.
По сути у вас любой цикл в ПЛК начинается с проверки текущего состояния I\O, после чего начинается цикл. (На любом ПЛК)
Если же у вас есть риск аварийного отключения без возможности контроля при перезапуске (что тоже странно, см. пункт выше), то тогда есть смысл дополнительно делать контроль состояния. Но по большому счету вы дублируете уже ранее созданную логику.
Просто примите за данность что 1 - это 1, достаточно сделать простейшую обработку и он точно никогда лишний раз не включит никакой DO AO без вашего ведома.

По сабжу: странно все это. Вроде прописные истины, но segnetics так любит делать кнопку пуск/стоп через Д-триггер и потом мучайся, лови эту единицу по фронту.

Sign up to leave a comment.

Articles