
Современная автоматизация немыслима без
программирования.
И если вы ещё не пробовали это, то уже пора сделать...
...первые шаги в программирование
Главная / Проектирование / Программирование ПЛК /
Язык программирования ST
Разрабатываю ПО для ПЛК ОВЕН в CoDeSys. Могу написать программу целиком, или часть программы. Или разработать АСУ на базе ПЛК ОВЕН (включая схемы и чертежи). При необходимости могу создать ПО и для ПЛК других производителей. Цена зависит от сложности, объёма работ и сроков. Ваши задачи присылайте на почту: ks-app@mail.ru. Или пишите в личку в группе ВК. Подробности см. здесь...
Язык программирования ST - это язык высокого уровня для программирования ПЛК. Он очень похож на Паскаль, который является для ST основой.
ST - это сокращение от Structured Text (структурированный текст).
Лично я в большинстве случаев использую именно этот язык, потому что он более гибкий по сравнению с другими языками стандарта МЭК, и в то же время достаточно простой. И если вы переходите с компьютерного программирования на программирование ПЛК, то начать стоит именно с этого языка, поскольку программисту он будет наиболее понятен.
Выражения ST
Для тех, кто знаком с Паскалем, здесь не будет ничего необычного. Например:
iVar := 100 * 50;
В конце выражения ставится точка с запятой.
Как и в Паскале, несколько выражений можно записать в одну строку. Или наоборот - одно выражение записать в нескольких строках.
Как и в Паскале, допускается использовать пустое выражение:
;
Это выражение ничего не делает. Но оно может пригодиться, например, когда вы создали программу без исходного кода (прототип). Такую программу вы не сможете скомпилировать, например, в CoDeSys 2 - будет ошибка, потому что эта среда не допускает программы без выражений. Тогда можно вставить пустое выражение и продолжить разработку других модулей.
Также не допускаются пустые функции, конструкции типа IF … ELSE
и т.п.
Объявления переменных ST
Объявления переменных, констант, типов и т.п. в ST немного отличаются от Паскаля. Например, для объявления переменных их надо поместить в блок переменных:
VAR iVar : INT; bVar : BOOL; END_VAR
Аналогично для констант. Также обратите внимание, что названия типов данных в ST отличаются от Паскаля.
Чувствительность к регистру в ST
ST - достаточно забавный язык. Он чувствителен к регистру, но лишь частично. То есть ключевые слова, стандартные типы данных и т.п. должны быть записаны в верхнем регистре. Например:
tVar : TIME;
Если хотя бы одна буква в слове TIME будет маленькой, то это будет ошибкой. В то же время идентификаторы не чувствительны к регистру. И имя переменной вы можете записывать символами в любом регистре:
TVAR := T#0s; TVar := T#10s; tVar := T#1m;
Здесь все три выражения используют одну и ту же переменную.
Операторы выбора и циклы в ST
Все подобные конструкции в ST создаются в виде блоков, где есть начало и (обязательно) конец:
IF bVar THEN ; END_IF
И, как я уже говорил, эти блоки должны содержать хотя бы одно выражение (путь даже пустое).
Циклы строятся аналогичным образом:
FOR iVar := 1 TO 10 DO ; END_FOR
Обратите внимание, что точка с запятой в конце блока не нужна. Но если вы её там поставите, то ничего страшного. Просто это будет считаться пустым выражением.
Ну и для наглядности покажу, как это выглядит в редакторе исходного кода CoDeSys 2:
На этом краткое знакомство с ST закончим. Разумеется, это лишь капля в море. По мере сил я буду рассказывать о программировании ПЛК более подробно. Так что подписывайтесь на новости, чтобы ничего не пропустить (красная кнопка вверху справа), или подключайтесь к группе ВК.