Вступление
Многие процессы в современном техническом мире оборудованы системами автоматического управления. Для управления автоматизированными процессами используются программируемые логические контроллеры ПЛК. Контроллер ПЛК – это устройство для управления оборудованием. Все современные контроллеры ПЛК можно программировать. Программируемые контроллеры ПЛК используют сложные языки программирования, что не позволяет быстро изучить программирование ПЛК с нуля неспециалисту в области программирования.
Чтобы научиться программировать микроконтроллеры, необходимо для начала разобраться в самой архитектуре этих устройств, понять, как они работают, освоить язык программирования. В основе программирования микроконтроллеров лежит набор выполняемых в определённой последовательности инструкций. Это и есть программа («предписание», или задание последовательности действий), которая, по сути, является последовательными шагами определённого алгоритма действий. Алгоритм – это совокупность точно заданных правил решения задач или набора инструкций, описывающих порядок действий исполнителя для решения задачи.
Отличие алгоритма от программы состоит в том, что он определяет общий порядок действия устройства, который потом подробно реализуется в программе. Программа для ПЛК пишется на одном из пяти языков программирования, соответствующих стандарту МЕК 61131-3.
Итак, возможно ли создать алгоритм для задач автоматизации технологического процесса, не используя язык программирования?
Neyrino конфигуратор
Предлагается описание системы создания алгоритма работы ПЛК для устройств малой автоматизации без использования специальных языков программирования «Neyrino конфигуратор».
Система программирования с помощью математических, логических и специальных условий является частью системы логического программирования. Логическое программирование – это парадигма программирования, основанная на математической логике, программы в ней конструируются в форме логических утверждений. Преимуществом использования программирования с помощью условий является простота описания.
Программа «Neyrino конфигуратор» помогает описать в понятных нам терминах (математических, логических) порядок работы устройства, а затем преобразовать этот алгоритм в код, доступный пониманию микроконтроллера.
Таким образом, Neyrino конфигуратор – это система программирования, которая позволяет задавать логику работы программы контроллера, не написав ни одной строчки кода. Благодаря данной системе для создания алгоритма работы устройства нет необходимости в изучении специальных языков программирования, достаточно лишь понимания действия основных логических операций, математических и специальных функций. Однако программирование с помощью Neyrino конфигуратора всё же предполагает понимание пользователем работы создаваемой функциональной структуры устройства.
Преимущества:
- не требует специальных знаний языков программирования;
- программирование происходит при помощи визуального интерфейса в табличной форме, где последовательно создаются логические условия функциональной схемы проекта;
- возможность быстрой корректировки алгоритма работы;
- программа может быть разбита на отдельные визуально обозримые участки (в таблице);
- программа загружается в контроллер одним щелчком мышки;
- при загрузке программы в ПЛК текущая прошивка контроллера не компилируется и не изменяется (это значит, что ошибочной пользовательской программой вывести из строя ПЛК невозможно);
- программа сохраняется в отдельной, энергонезависимой памяти контроллера.
Для решения задач автоматизации был создан также контроллер ПЛК Neyrino, который предназначен для реализации систем автоматизированного управления технологическим оборудованием в различных областях промышленности.
ПЛК содержит:
- четыре аналоговых входа;
- семь гальванически развязанных дискретных входов;
- шесть релейных выходов;
- интерфейсы USB, RS-485 (гальванически развязанный), TCP/IP, WEB;
- центральный процессор STM32H750, 32 разряда, тактовая частота 400 МГц.
Программное обеспечение для работы контроллера написано на языке С.
ПО «Neyrino конфигуратор» написано на языке C# в среде Visual Studio Community 2022.
Для связи ПЛК со средой программирования используется интерфейс USB.
Главное окно программы «Neyrino конфигуратор» состоит из областей (сверху вниз на рис. 1):
- в верхней части окна отображаются значения десяти глобальных переменных МС0-МС9;
- далее таблица для создания и настройки условий проекта;
- далее таблица для создания и настройки ПИД-регуляторов;
- далее закладка настройки интерфейсов RS-485, TCP/IP;
- в нижней части расположена строка состояния соединений конфигуратора с ПЛК.
Составление таблицы условий – это и есть построение алгоритма, позволяющего создавать программные функции для выполнения определённых действий на основе выбранных индивидуальных условий.
Логические условия могут использовать значения дискретных и аналоговых каналов контроллера, значения математических функций сложения, вычитания, умножения, деления и других. Значения сравнения величин и логические операции с цифровыми данными. Результаты работы условий могут быть применимы к работе других условий или выходных устройств типа реле.
Время цикла выполнения программы обработки условий установлено 50 миллисекунд. Установка времени цикла позволяет увеличить или уменьшить скорость реакции на изменение состояния входных значений контроллера. После создания функциональной логики (это могут быть одно или более условий) можно проверить их работу в ПЛК. Для этого необходимо нажать кнопку «Применить» (рис. 1). Программа загрузится в контроллер, и в столбце «Решение» таблицы условий появится значение решения соответствующего условия.
Операции и их описание
Логические условия редактируются в отдельном окне (рис. 2). Логическое условие можно понимать как одно действие, одну строку «условного» кода.
Каждое логическое условие состоит из следующего.
- Номер – каждое условие имеет свой номер в таблице условий.
- Вкл./Откл. – включено данное условие или отключено в цикле выполнения программы.
- Операция (действие), например «сложение» или «сравнение».
- Операнды (А, В), участвующие в операции (действии). Операндами являются числа, например значение входных каналов, результат работы предыдущих условий или значения глобальных переменных.
- Значения (value) – значения операндов А или В.
- Активность условия – (условие активно всегда, или только тогда, когда другое условие истинно).
- Решение – значение в цифровом виде, которое получается после выполнения данного условия.
- Для того чтобы условие было обработано, необходимо включить его нажатием кнопки «Вкл./Откл.». Заполнить значения в полях «Операции», «Операнд А», «Значение А», «Операнд В», «Значение В», «Активность» и нажать кнопку «ОК». Значения редактируемого условия будут применены и записаны в таблицу условий (рис. 3).
- Для загрузки таблицы условий в ПЛК необходимо нажать кнопку «Применить» (рис. 1).
Операции сравнения
Результатом работы условий сравнения будет значение истина (true) или ложь (false) (1 или 0).
Операции сравнения и их описание приведены в табл. 1.
Операции логические
Результатом работы логических условий будет значение истина (true) или ложь (false) (1 или 0). Логические операции и их описание приведены в табл. 2.
При значении операнда А «true» выход условия переключается в «true».
Результат условия сохраняется, если значение операнда А равно «false».
Результат условия будет равен «false», если значение операнда В будет равно «true».
Операции математические
Результатом работы математических условий будет значение типа BYTE, INT, UINT. Доступные математические операции и их описание приведены в табл. 3.
* FIX_R – фиксация и сброс сигнала на выходе.
Операции временны́е
Результатом работы временны́х условий будет значение истина (true) или ложь (false) (1 или 0) с задержкой по времени (табл. 4).
* значение времени операнда B, умноженное на время цикла программы, например:
операнд В = 20; время цикла программы = 50 мс. Тогда: 20 × 50 = 1000 мс = 1 с.
Операции специальные
Перечень доступных специальных операций приведён в табл. 5.
* «Глобальная переменная» означает: значение индекса, хранящегося в глобальной переменной. Например, для сохранения в МС1 используйте операнд А «Value» и значение 1, а не «МС», значение 1 (рис. 4).
** Например: Включение Реле 1 от условия № 1, в котором проверяется значение глобальной переменной МС0 более 25 (рис. 5).
Существует возможность дополнить список специальных функций, характерных для конкретной области применения.
Операнды и их описание
В табл. 6 приведены краткие описания типов операндов, используемых при программировании контроллера.
Адресное пространство
При создании пользовательских условий доступно чтение и запись двенадцати глобальных переменных МС0–МС11 (рис. 1).
Глобальные переменные МС10–МС11 предназначены для передачи значений по интерфейсам RS-485 и TCP/IP соответственно (табл. 7).
В глобальных переменных можно хранить результаты работы условий, значения аналоговых каналов и т.д. Глобальные переменные находятся в оперативной памяти ПЛК и при отключении питания значения в них не сохраняются.
В адресном пространстве ПЛК доступны для чтения состояния входов и выходов.
Значения переменных можно удалённо читать или перезаписывать в соответствии с их свойствами по интерфейсам связи RS-485 по протоколу Modbus-RTU или TCP/IP по протоколу Modbus-TCP (табл. 8).
ПИД-регуляторы, настраиваемые пользователем
Логическое условие таблицы PID-регуляторов можно понимать как одно действие, одну строку «условного» кода, в которой реализован PID-регулятор.
Каждое логическое условие PID-регулятора состоит из (рис. 6):
- Номер – каждое условие PID-регулятора имеет свой номер в таблице.
- Вкл./Откл. – включено данное условие или отключено в цикле выполнения программы.
- Уставка – например, значение операндов или значение «VALUE», вокруг которого происходит регулирование.
- Значение – уставки (value).
- Измерение – значение операндов (аналоговые каналы или результаты вычислений).
- Значение измерения (value) – значения операндов.
- P-усиление – P-усиление регулятора, масштабированное до значения 1/10.
- I-усиление – I-усиление регулятора, масштабированное до значения 1/10.
- D усиление – D-усиление регулятора, масштабированное до значения 1/10.
- FF-усиление – FF-усиление регулятора, масштабированное до значения 1/10 (необязательный параметр по умолчанию = 0).
- Результат – значение в цифровом виде, которое получается после выполнения данного условия PID-регулирования.
Максимальные значения регулятора –1000…+1000.
Примеры программ
Каскадное управление двумя насосами с поддержанием давления
Структурная схема содержит преобразователь частоты ПЧ и датчик давления.
В данном режиме преобразователь частоты регулирует обороты насоса 1 с целью поддержания давления. В случае нехватки производительности одного насоса (падает давление и повышается частота основного насоса 1) подключается дополнительный насос 2 напрямую от сети.
ПЛК Neyrino управляет заданием частоты в ПЧ (подключён по RS-485) и соответственно скоростью вращения основного насоса 1.
Данная схема обеспечивает:
- каскадный режим с дополнительным насосом и PID-регулированием;
- дистанционное управление преобразователем частоты;
- автоматическое поддержание давления в трубопроводе системы водоснабжения.
Таблица условий программы управления насосами приведена на рис. 7, а таблица условий PID-регуляторов – на рис. 8.
Настройка PID-регулятора
- Условие 0 Настройки PID-регулятора. Значение поддерживаемого давления задаётся в «Уставка – Значение» (например, 800), измерение значения (от значения МС0) рис. 8.
Настройка программы управления насосами
- Условие 0 – Сигнал обратной связи поступает от датчика давления на аналоговый вход 1.
- Условие 1 – Глобальной переменной МС0 присваивается значение условия 0.
- Условие 2 – Масштабирование. Выходное значение PID-регулятора делится на 20. Получаем частоту задания преобразователя частоты насоса 1.
- Условие 3 – Глобальной переменной МС1 присваивается значение условия 2.
- Условие 4 – Если глобальная переменная МС1 больше, чем 30, то на выходе 1 (true). Сравнение для ограничения минимальной частоты ПЧ.
- Условие 5 – Если глобальная переменная МС1 больше, чем 30, то на выходе условия все значения больше 30 (ограничения минимальной частоты ПЧ).
- Условие 6 – Если в глобальной переменной МС1 значение больше, чем 48, то на выходе 1 (true).
- Условие 7 – Вкл. Реле 1 насоса 2, если условие 6 равно 1 (true). (Включается доп. насос 2.)
- Условие 8 – Глобальной переменной МС10 присваивается значение условия 5.
- Условие 9 – Передать по интерфейсу RS-485 в порт 101 по адресу регистра 807 значение переменной МС10 (задание частоты ПЧ насоса 1).
Управление светофором
Последовательность включения сигналов светофора приведена в табл. 9.
Таблица условий программы управления светофором приведена на рис. 9. Время полного цикла всех сигналов 35 секунд (35 000 мс).
Время цикла всех условий контроллера 50 мс. Общее значение времени цикла для всех сигналов: 35 000 : 50 = 700.
- Условие 0 – Глобальной переменной МС0 будем прибавлять 1 каждые 50 мс. Сброс в ноль будет происходить при достижении значения 700. Это общее время всех сигналов.
- Условие 1 – Глобальной переменной МС1 будем прибавлять 1 каждые 50 мс. Сброс в ноль будет происходить при достижении значения 20. Это секундный цикл.
- Условие 2 – Измеряем 0,5 секунды.
Условия для работы красного сигнала.
- Условие 4 – Если в глобальной переменной МС0 больше 200 = 1.
- Условие 5 – Если в глобальной переменной МС0 меньше 300 = 1.
- Условие 6 – Логическое сложение условий 4 и 5.
- Условие 7 – FIX_R – фиксация и сброс сигнала. Логические условия 2 и 6.
- Условие 8 – Логическое сложение условий 7 и 5.
- Условие 9 – Управление Реле 1 от логического условия 8.
Условия для работы зелёного сигнала.
- Условие 10 – Если в глобальной переменной МС0 больше 500 = 1.
- Условие 11 – Если в глобальной переменной МС0 меньше 600 = 1.
- Условие 12 – Если в глобальной переменной МС0 больше 300 = 1.
- Условие 13 – Логическое сложение условий 10 и 11.
- Условие 14 – Логическое сложение условий 11 и 12.
- Условие 15 – FIX_R – фиксация и сброс сигнала. Логические условия 2 и 13.
- Условие 16 – Логическое сложение условий 15 и 14.
- Условие 17 – Управление Реле 2 от логического условия 16.
Условия для работы зелёного сигнала.
- Условие 19 – Если в глобальной переменной МС0 больше 600 = 1.
- Условие 20 – Управление Реле 3 от логического условия 19.
Система автоматического поддержания температуры в помещении
Температура в помещении поддерживается на определённом уровне с помощью ПЛК.
Система автоматического поддержания температуры оснащена датчиком температуры, подключённым к аналоговому входу Ai1. Температура поддерживается средствами нагрева и охлаждения:
- регулируемым по скорости вентилятором (подключён к релейным выходам К2, К3). Регулирование скорости происходит с помощью преобразователя частоты, который управляет скоростью двигателя от своих логических входов, подключённых к реле К2 и К3 ПЛК;
- нагревателем с возможностью регулирования мощности (подключён к релейным выходам К4, К5 50% и 100% соответственно).
Задание минимальной температуры в градусах Цельсия поступает в контроллер от приложения SCADA, в ячейку памяти ПЛК «МС5», адрес 805.
Задание температуры в градусах Цельсия поступает в контроллер от приложения SCADA, в ячейку памяти ПЛК «МС6», адрес 806.
Интерфейс связи ПЛК и SCADA приложения – Modbus TCP.
Задача: разработать программу управления системой поддержания температуры. Температура должна поддерживаться при помощи нагревателя или вентилятора на уровне, заданном в переменной «МС6» (в градусах Цельсия).
Таблица условий программы автоматического поддержания температуры в помещении приведена на рис. 10. Таблица настроек PID-регулятора приведена на рис. 11.
Преобразователь частоты при включении настроен на минимальную скорость (примерно 40% от максимальной). При получении команды от ПЛК реле 2 – включается 70%, при включении реле 3 – включается 100% (50 герц).
Нагреватель включается от значения на выходе PID-регулятора.
- Условие 0 – Настройка PID-регулятора. Значение поддерживаемой температуры задаётся в «Уставка» глобальной переменной МС2, «Измерение» – условие 2 таблицы условий рис. 11.
- Условие 0 – Задание температуры. Масштабирование значения глобальной переменной МС6.
- Условие 1 – Присвоение значения условия 0 глобальной переменной МС0.
- Условие 2 – Присвоение значения аналогового канала Ai1 глобальной переменной МС1.
- Условие 3 – Вывести значение из PID-регулятора.
- Условие 4 – Масштабирование значения задания минимальной температуры МС5.
- Условие 5 – Присвоение значения глобальной переменной МС2 из условия 4.
- Условие 6 – Если значение из PID-регулятора больше, чем глобальной переменной МС2 = 1 (true).
- Условие 7 – Если значение из PID-регулятора больше, чем 100 (это минимальная температура для включения максимального нагрева) = 1 (true).
- Условие 8 – Вкл. Реле 4, если true в условии 6. (Включается 50% нагревателей.)
- Условие 9 – Вкл. Реле 5, если true в условии 7. (Включается 100% нагревателей.)
- Условие 10 – Пустое.
- Условие 11 – Если значение в глобальной переменной МС1 больше, чем в глобальной переменной МС0 = 1 (true).
- Условие 12 – Если значение в глобальной переменной МС1 больше, чем 600 (это максимальная температура в помещении – 30°С) = 1 (true).
- Условие 13 – Вкл. Реле 2, если true в условии 11. (Включается 2 скорость
-
в ПЧ.)
- Условие 14 – Вкл. Реле 3, если true в условии 12. (Включается 3 скорость в ПЧ.)
- Условие 15 – Масштабирование значения измеренной температуры МС1.
- Условие 16 – Присвоение значения глобальной переменной МС8 из условия 4 для мониторинга из удалённого приложения SCADA.
Вывод
Программирование контроллера с помощью условий, которые построены из простых логических и математических действий, позволяет решить большинство задач автоматизации, не используя специальные языки программирования, что должно быть востребовано неспециалистами в области программирования.
Приведённые выше инструменты программирования достаточно универсальны и позволяют реализовать различные по функционалу алгоритмы управления.
Также есть возможность добавить специальные функции для конкретной области применения (например, установить модуль Wi-Fi или GSM). ●
© СТА-ПРЕСС, 2024