Первые шаги в программирование

Современная автоматизация немыслима без
программирования.
И если вы ещё не пробовали это, то уже пора сделать...
...первые шаги в программирование

Главная / Проектирование / Программирование ПЛК /

Язык программирования 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

На этом краткое знакомство с ST закончим. Разумеется, это лишь капля в море. По мере сил я буду рассказывать о программировании ПЛК более подробно. Так что подписывайтесь на новости, чтобы ничего не пропустить (красная кнопка вверху справа), или подключайтесь к группе ВК.



Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su