Программное обеспечение сетевого взаимодействия участников АСУ ТП: Учебное пособие, страница 6

5. Чтобы переопределить тип зарегистрированной переменной, необходимо удалить ее из таблицы, затем закрыть все приложения, использующие драйвер UltraNet, и запустить Genie снова, чтобы начать новую сессию, в которой правильно зарегистрировать тип переменной.

3. Разработка программного обеспечения

    контроллеров серии ADAM-5000

В качестве примера объекта автоматизации под управлением контроллеров рассмотрим  систему подогрева воды. На рис. 25 изображена схема такой системы.

Холодная вода нагревается в теплообменнике ТО. Давление холодной воды обеспечивает двигатель М1; двигатель М2 является резервным. Количество горячей воды от ТЭЦ в теплообменнике регулируется  аналоговым регулятором РТ с приводом постоянного тока. Температура нагреваемой воды зависит от положения регулятора РТ. На входы контроллеров приходят данные с датчиков о температуре нагретой воды, о температуре холодной воды до её прохода через теплообменник и о давлении воды, подаваемой от ТЭЦ.

Рис. 25. Автоматизированная система нагрева воды

Для управления процессом контроллеры посылают управляющие сигналы на исполнительные органы системы:

- пуск горячей воды от ТЭЦ;

- пуск двигателей;

- регулирование количества горячей воды в теплообменнике;

- установка  температуры,  до  которой  следует  нагревать  холодную воду.

Программное обеспечение нижнего уровня для контроллера ADAM-5510 создадим в среде UltraLogik 1.03.020, а верхнего – в среде Genie 3.0.

Разработка программного обеспечения

 контроллера ADAM-5510 в среде UltraLogik

Система на базе микроконтроллера ADAM-5510 состоит из самого контроллера, модуля аналогового вывода 5024, модуля дискретного ввода 5051, модуля дискретного вывода 5056 и модуля аналогового ввода 5018. Система на основе этого микроконтроллера в своем составе имеет вольтметр, два цифровых выхода, которые могут отключаться тумблерами, К-термопары, две лампочки, сигнализирующие верхний и нижний предел температуры, и две лампочки, привязанные к цифровым выходам модуля ADAM-5056.

После запуска UltraLogik на экране монитора будет выведено главное окно UltraLogik. На панели управления или в меню Проект  выберите кнопку или строку Новый проект. Для сохранения и введения его имени там же выберите кнопку или  строку  Сохранить.  В появившемся окне Проект – «Ваше введённое имя проекта» нажмите правую кнопку мыши. Появится  контекстное меню, в котором выберите строку Новая программа, введите имя программы и примечание. Рядом с вкладкой  Список появится вкладка с названием вашей программы.

Для выбора компилятора для контроллера на вкладке Опции в строке Target Compiler выберите из списка строку 80x86 processors family compiler.

Далее следует заполнить таблицы переменных (рис. 26). Для этого щёлкните на вкладке Переменные. На вкладке Глобальные щёлкните правой  кнопкой мыши и в контекстном меню выберите строку Добавить. В окне Создание переменной введите имя, примечание, тип и значение переменной.

Рис. 26. Таблицы переменных (см. также с. 30)

Рис. 26. Окончание.

Для привязки переменных к модулям ввода-вывода перейдите на нужную  вкладку,  сделайте двойной щелчок и выберите из списка нужную переменную (рис. 27).

Рис. 27. Привязка переменных к модулям ввода-вывода

(см. также с.31)

Рис. 27. Окончание

Следующим этапом создания управляющей программы является непосредственное составление программного алгоритма средствами UltraLogik (рис. 28). 

а

б

Рис. 28. Алгоритм программы

Часть алгоритма, изображенная на рис. 28 а, служит для осуществления запуска и  контроля работоспособности двигателей М1 и М2. При получении сигнала Start и отсутствии сигнала Alarm_M1 включается двигатель М1. В том случае, если двигатель М1 неисправен (Alarm_M1=True), включается двигатель М2. Если же и двигатель М2 неисправен, то сигнал о работоспособности двигателей Work принимает значение False. Для симуляции аварий двигателей М1 и М2 используются тумблеры DI 0 и DI 1, подключенные к цифровым входам DI 0 и DI 1 модуля ADAM-5051. Сигналы Start_M1 и Start_M2, сообщающие о рабочем состоянии соответственно двигателей М1 и М2, подаются помимо этого и на цифровые выходы DO 0 и DO1, о чем сигнализируют подсоединенные к этим выходам лампочки.

Вторая часть алгоритма, изображенная на рис. 28 б, предназначена для сбора информации от датчиков системы и формирования сигналов управления приводом аналогового регулятора теплообменника.

Значение температуры от термопары поступает в кодах модуля ADAM-5018 на нормализатор К-термопары. Так же поступает значение температуры компенсационного спая, который находится в комнатных условиях. Таким образом, используя библиотечные блоковые диаграммы AD590 и Knorm, получаем нормализованное значение температуры T. В зависимости от отклонения измеренной температуры нагретой воды от заданного значения T_Stab на передней панели ADAM-5510 загораются сигнальные лампочкиLow Alarm или High Alarm (если переменные Min или Max принимают значение True соответственно).

Далее величина T поступает в блок пропорционального регулятора, где в соответствии со значением T_Stab и коэффициентом пропорциональности Kp вырабатывается сигнал управления приводом аналогового регулятора теплообменника. При этом  в зависимости от значения и знака сигнала регулирования клапан теплообменника либо открывается, либо закрывается на величину, пропорциональную сигналу регулирования, а температура нагреваемой воды должна либо понижаться, либо повышаться. Для реального понижения температуры, снимаемой термопарой контроллера, используем вентилятор, который при превышении заданного значения T_Stab будет вращаться с различной частотой в зависимости от подаваемого на него напряжения и создавать воздушный поток, направленный на датчик термопары. При этом сигнал Ctrl2 является управляющим. В соответствии с ним на вентилятор подается напряжение в диапазоне значений от 0 до 10 В (данный диапазон обеспечивается блоком ограничения Lim). О работе вентилятора также сигнализирует Close. При работе с реальным объектом сигнал Close  будет показывать то, что клапан теплообменника закрывается. Аналогичным образом формируется и нормируется сигнал Ctrl1, когда измеренная температура нагретой воды становится ниже заданного значения T_Stab. При этом вырабатывается сигнал Open, функциональное назначение которого такое же, как и у сигнала Close.