Тестовая программа. Насосная станция ==================================== Напишем программу, эмулирующую простую насосную станцию с гидронакопителем и насосом, управляемым реле давления. Поверхностный насос осуществляет забор воды из открытого источника и подачу её под давлением в гидронакопитель. После выключения насоса, водоснабжение потребителей осуществляется за счет воды, запасенной под давлением в гидронакопителе. После того, как давление воды в гидронакопителе упадет до заданного уровня, реле давления включит насос и цикл повторится. Для начала напишем программу подачи воды. При открытии вентиля подачи воды в гидронакопителе давление воды должно снижаться, при закрытии – оставаться постоянной. Программу напишем на языке ST. .. figure:: images/47.png :width: 600 :align: center *Программа valve_pressure на языке ST* Переменная *water_pressure* – это значение давления воды в гидронакопителе. Переменна *valve_status* – это статус вентиля/крана подающей воды (0 – вентиль закрыт, 1 – вентиль открыт). Напишем первую программу, которая будет имиировать подачу воды после включения насоса. Вторая программа будет управлять самим насосом. Нижним уровнем давления воды в гидронакопителе будем считать значение 60000, верхним – 100000. Включение и выключение насоса осуществляется дискретным каналом DO_0. Программу напишем так же на языке ST. Всю автоматику можно будет включать или выключать переменной *auto_pump_status*. .. figure:: images/48.png :width: 600 :align: center *Программа pump_pressure на языке ST* .. figure:: images/48_1.png :width: 600 :align: center *Программа pump_control на языке ST* Переменная *pump_status* – это статус вкл/выкл насоса (0 – насос выключен, 1 – насос включен). Добавляем задачи на каждую программу соответственно и загружаем в ПЛК. .. figure:: images/49.png :width: 600 :align: center .. figure:: images/50.png :width: 600 :align: center *Ресурсы и конфигурационные параметры прошивки "Насосная станция"* После загрузки прошивки, заходим в WEB-страницу контроллера. Для включения автоматики переводим *auto_pump_status* в "1" - переменная *pump_status* сразу принимает значение "1", насос включается чтобы заполнить систему и гидронакопитель водой. Включение насоса условно выполняется дискретным выходом DO_0, выключается он при достижении давления в 100000. .. figure:: images/51.png :width: 600 :align: center *WEB-страница контроллера. Вентиль открыт* После открытия вентиля, давление воды начинает понижаться и при достижении уровня 60000, включается насос и вода в гидронакопителе наполняется до 100000. Если закрыть кран при наполнении воды в гидронакопитель, то насос выключится после достижения высокого уровня. Если выключить автоматику и вентиль оставить открытым, то вода в гидронакопителе полностью опутошится. .. figure:: images/52.png :width: 600 :align: center *WEB-страница контроллера* .. figure:: images/plc_pump.gif :width: 600 :align: center *Состояние дискретных выходов при включнном насосе*