Прежде чем мы с вами будем рассматривать упрощённую графическую систему программирования для технологов, хотелось бы в двух словах рассказать о базисном языке программирования СИ. Язык ST CoDeSyS отличается от других своей гибкостью и адаптивностью под любые задачи. Он позволяет обрабатывать сложные решения и видеть всю картину в целом. Чаще всего применяется в функциональных блоках для обработки алгоритма той или иной части рабочего органа станка или линии.
Здравствуйте уважаемые Дамы и Господа! Меня зовут Гридин Семён, и я являюсь автором этого блога. В данном посте я хочу обсудить с вами базовые понятия языка программирования CoDeSyS. Называется он ST CoDeSyS, очень сильно напоминает СИ.
Язык программирования ST и типы переменных
ST (Structured text) — это одна из составных частей комплекса CoDeSyS и представляет собой текстовый редактор высокого уровня. Он очень похож на Basic или Pascal. Такой способ программирования является идеальным инструментом для людей-программистов.
Преимуществом языка является создание сложных математических и разветвленных алгоритмов. ST позволяет без труда описывать сложные операции компактным и лёгким для восприятия текстом. Structured Text содержит в себе много конструкций, позволяющие присваивать переменные, использовать готовые библиотеки, функции и функциональные блоки.
В чём преимущество данного способа программирования? давайте с вами перечислим:
- Наглядность. Вы можете на одном листинге оценить всю последовательность действий и выполнение условий
- Программа на ST может быть создана в любом текстовом редакторе
- Читабельность. За счёт символьного представления текста и выделения блоков разными цветами
С этим мы разобрались, но, прежде чем переходить к непосредственному изучению азов программирования, необходимо ознакомиться с элементом языка — тип данных. Хочу обратить внимание, этот элемент практически схож во многих си-подобных языках (Питон, Ардуино IDE, СИ# т.д.)
Тип данных переменной определяет род информации, диапазон представлений и множество допустимых операций. Языки МЭК используют строгую идеологию в этом отношений.
Любую переменную можно использовать только после её объявления. Присваивать значения одной переменной другой можно, только если они одного типа. В другом случае используются преобразователи типов.
В таблице ниже я представлю типы данных, которые используются чаще всех:
BOOL Логическое 1 бит 1 бит
BYTE Целочисленное 8 бит 1 байт
WORD Целочисленное 16 бит 2 байта
INT Целочисленное-32768-327672 байта
UINT Целочисленное0-655352 байта
FLOAT Вещественное±10³³4 байта
DT Дата и время
STRING Строковое
Перечень основных операторов
Операторы — это символы определённых операций. Но их можно определить и как функции, наделёнными определёнными привилегиями. Они имеют определённые ключевые слова и формы для представления на ST. Оператор выбора IF позволяет выполнить различные группы выражений в зависимости от условий, выраженных логическими выражениями.
Оператор выбора IF позволяет выполнить различные группы выражений в зависимости от условий, выраженных логическими выражениями.
PROGRAM PLC_PRG
VAR
in:BOOL;
out:INT;
END_VAR
IF in = TRUE THEN
out:=1;
ELSE out:=2;
END_IF;
Оператор множественного выбора CASE позволяет выполнить различные группы выражений в зависимости от значения одной целочисленной переменной или выражения.
PROGRAM PLC_PRG VAR
in:BOOL;
test:INT;
out:INT;
END_VAR
CASE test/2 OF
0,127:
in:=TRUE;
out:=123;
15..30:
in:=FALSE;
out:=456;
ELSE
out:=789;
END_CASE;
Циклы WHILE и REPEAT обеспечивают повторение группы выражений, пока верно условное логическое выражение. Если условное выражение всегда истинно, то цикл становится бесконечным. Условие в цикле WHILE выполняется до начала цикла, а в REPEAT после тела цикла.
PROGRAM PLC_PRG
VAR
in:BOOL;
test:INT:=64;
out:INT;
END_VAR
WHILE test>1 DO
out:=out+1;
test:=test/2;
END_WHILE
PROGRAM PLC_PRG
VAR
in:BOOL;
test:INT:=64;
out:INT;
END_VAR
REPEAT
out:=out+1;
test:=test/2;
UNTIL test>1
END_REPEAT
Цикл FOR обеспечивает заданное количество повторений группы выражений.
PROGRAM PLC_PRG
VAR
in:BOOL;
test:INT;
out:INT;
END_VAR
FOR test:=1 TO 10 DO
out:=out+1;
END_FOR
Советы по программированию ПЛК в среде CoDeSyS
Одно из значительных отличий написание алгоритмов для АСУТП от классического программирования — это меньший уровень абстракции. Для описания тех. процесса не требуется глубокое и огромное описание. Достаточно опираться на логику процесса и здравый смысл.
Не стремитесь использовать чужие библиотеки и чужой код в своих проектах.
Обращаю ваше внимание, чужие библиотеки, скачанные с форума на реальных объектах использовать категорически НЕ РЕКОМЕНДУЮ. Для этого есть куча готовых библиотек, такие как Standart, Utill, OSCAT. Фирма ОВЕН для своего оборудования пишет свои ПРОТЕСТИРОВАННЫЕ библиотеки.
У меня был такой горький опыт. Когда мы занимались автоматизацией ЦТП, а точнее контуром отопления и ГВС, я скачал с форума библиотеки для ПИД-регулирования задвижек. И что же в итоге получилось? Код тупо не сработал, вообще! Пришлось работать сутками, и днём и ночью допиливать программу в режиме цейтнота.
Пишите программы компактно, и оставляйте комментарии.
Когда пишите объёмную и сложную программу, пользуйтесь функциями, функциональными блоками и подпрограммами. Пишите комментарии возле каждого узла автоматизации. Это очень сильно упрощает жизнь. Особенно тогда, когда нужно через некоторое время что-то исправлять.
Пользуйтесь интерактивной справкой в среде разработки. В данном каталоге вы можете найти ответы на многие ваши вопросы, особенно это актуально для новичков. Открывается справка по нажатию кнопки F1.
Плюсы языка ST-массивы и циклы.
Использование циклов и массив облегчают жизнь программисту и увеличивает читабельность кода. Циклы очень удобны при использовании сложных и ресурсоёмких функций, таких как ПИД-регуляторы, опрос аналоговых входов, связь между ПЛК. На этом я с вами прощаюсь, дорогие друзья, пишите в комментариях, подписывайтесь, рассказывайте друзьям. До встречи в следующих статьях.