Методы алгоритмизации: Практикум (Технические средства обучения. Задания для самостоятельной работы. Решение заданий), страница 17

В1 →11.1, В2→11.2, ВЗ→11.3, В4→11.4, В5→11.5;

Н1→Q0.1, Н2→ Q0.2, НЗм0.3, Н4 → Q0.4;

Y1мQ0.0, М1 → Q0.5;

TR1 TRi2→M0.1 –Ml1.4;ST1-ST6→ M10.1 - М10.6; Cmp → М0.0.

Шаг 7. Написание программы для контроллера.

На рис. 5.17 и 5.18 приведена программа управления системой водоснабжения согласно описанию варианта 1.

Примененный подход позволяет также использовать приведенную программу как основу для составления программ в соответствии с описаниями вариантов 2, 3 и 4.

Процедура сравнения минимального уровня воды в емкости и текущего его значения осуществляется цепочкой Network 5. При полном сливе индикатор наполнения гаснет, устанавливается бит МО.0 и система переходит в состояние ST1 «Ожидание».


Вариант 2

При реализации варианта 2 необходимо производить отсечку наполнения резервуара по уровню 4, а при отказе датчика В4 - по уровню В5 с индикацией отказа миганием лампы Н4.

Граф переходов для варианта 2 остается прежним, исключая переход TR2 между состояниями ST2 и ST3:

TR2 = ST2 • (В4 +В5).

Для реализации режима мигания лампы Н4 можно применить программный код, полученный при решении задания для модели «Чеканочный пресс» (см. раздел 5.3), введя его в программу как дополнительную цепочку (рис. 5.19).

Вариант 3

Реализация возможности выбора нужного уровня наполнения согласно описанию варианта 3 приводит к усложнению графа переходов. С этой целью потребуется ввести более существенные изменения в программу, прежде всего в логику управления индикаторными лампами.

На рис. 5.20 показан граф переходов системы управления для варианта 3. В приведенном графе оставлены состояния и переходы, которые необходимы для реализации нового алгоритма, все остальные изъяты. При этом возможность остановки насоса М1 предусматривается только для режимов наполнения резервуара; управление наполнением резервуара нажатием кнопки S5 не предусматривается. Слив воды из резервуара реализуется аналогично варианту 1.

В граф переходов введены состояния ST7, ST8, ST9 и ST10, которые соответствуют наполнению резервуара до уровней 4, 3, 2 и 1 и инициализируются кнопками S4, S3, S2 и S1. Выход из этих состояний осуществляется при срабатывании датчиков соответствующих уровней.


Для состояний рассматриваемого графа получим следующую систему логических уравнений:



Система логических уравнений для связанных переходов принимает следующий вид:

Система логических уравнений для исполнительных механизмов имеет следующий вид: М1 = ST4 + ST7 + ST8 + ST9 + ST10;

Y1 = ST4 + ST6.

Для решения задачи управления индикаторными лампами необходимо определить режимы включения каждой из них и соответствующие условия реализации этих режимов. Последующая запись определенных условий в виде логических уравнений даст возможность написать составить управления соответствующей лампой.

Например, пусть требуется определить функцию управления лампой Н4. Для этой лампы можно выделить следующие режимы работы:

1.  Непрерывное включение лампы при нажатии кнопки S4 (выбор уровня наполнения 4) - состояние ST7.

2.  Непрерывное включение лампы при наполнении резервуара до уровня 4 - состояние ST3.

3.  Мигание лампы, если при выборе наполнения резервуара до уровня 4 сигнализатор этого уровня (В4) неисправен и подача воды прекращена по сигналу датчика В5 - состояние ST3.

4.  Непрерывное включение лампы, если выбран один из уровней наполнения ниже уровня 4, но вследствие неисправности соответствующего сигнализатора уровня вода в резервуаре достигла уровня 4 - состояние ST3.

Для обеспечения мигания лампы в режиме 3 можно применить программный код, использованный в программе для варианта 2, запуская его на исполнение в состоянии ST3.

Как следует из описания приведенных режимов, алгоритм включения индикаторной лампы зависит от выбора того или иного уровня с помощью кнопок S1 - S4. Состояния этих кнопок не фиксируются и, следовательно, не могут быть напрямую использованы для управления режимами работы ламп. Поэтому в программе необходимо задействовать биты памяти М для запоминания событий, связанных с нажатием кнопок S1 - S4: