Разработка программного обеспечения ПЛК. Языки программирования.
Существует международный стандарт МЭК 61131-3 языков программирования для ПЛК (программно-логических контроллеров). Всего стандарт МЭК 61131-3 закрепляет 5 языков – среди них текстовые и графические.
Они сформировались опытным путем работы с разными инструментами для разработки кода, так называемая «выжимка» лучшего из каждого. Чтобы программист мог выбрать наиболее доступный к пониманию и удобный для разработки ПО язык.
П.1 и 2 — текстовые
П.3-5 — графические:
- IL – список инструкций
- ST – структурированный текст
- LD – ледерная логика
- FBD – режим функциональных блоков
- СFC – режим последовательных схем
IL – список инструкций
Довольно-таки простой для понимания и обучения, похож на ассемблер — язык программирования низшего уровня.
В качестве примера, рассмотрим преобразование вида Y(x)=Ax+B-C
- LD X – загрузить Х
- MUL A – умножение на А
- ADD B – сложении с В
- SUB C – вычитание С
- ST Y – присвоение значения Y
ST – структурированный текст
Допустим, есть некоторая временная переменная (temp), в случае, когда «temp» больше нуля, то закон регулирования Y(x)=Ax+B, в противном случае Y(x)=Ax-C. Пусть коэффициенты А, В и С константы и равняются соответственно 30, 20 и 10, тогда
IF temp>0 THEN
VAR_1:=30*VAR_X+20;
ELSE
VAR_1:=30*VAR_X-10;
END_IF
Описан самый простейший пример. Разумеется, что ST чем-то схож с Паскалем, но и имеет множество отличий, в первую очередь структурированный текст создан для программирования ПЛК и решения сложных функциональных и математических задач.
LD – ледерная логика
Ladder Diagram /Logic представляет релейную логику, функционал схож с работой реле: сигнал на замыкание катушки включает или выключает контакт. Присутствуют и другие операторы:на логике включения и выключения механизма много не запрограммируешь.
Пример того, как выглядит кусочек программы на LD представлен ниже.
FBD – режим функциональных блоков
FBD один из востребованных инструментов для разработки ПО на ПЛК, функциональные блоки наглядны и ясны с точки зрения прохождения сигналов. В FBD широко используются заготовленные, из библиотеки среды программирования, блоки, блок – это набор операций, подпрограмма, например, ПИД – регулятор.
В качестве примера – подпрограмма FDB: включения насоса в режиме зима:
Переменные названы интуитивно понятными переменными, присутствует готовый блок HYST из библиотеки
СFC – режим последовательной схемы
СFC графический язык, его назначение в создании программного обеспечения последовательного управления. Условно говоря, блоки можно соединять произвольно: вход и выход, через всю рабочую зону, нет такой жесткой построковой привязки, как в FBD.
На рисунке: подпрограмма включения насоса в зимнем режиме.
Отличия видны невооруженным взглядом