Найти в Дзене

Вводной ликбез по языку ST в CODESYS

Прежде чем мы с вами будем рассматривать упрощённую графическую систему программирования для технологов, хотелось бы в двух словах рассказать о базисном языке программирования СИ. Язык ST CoDeSyS отличается от других своей гибкостью и адаптивностью под любые задачи. Он позволяет обрабатывать сложные решения и видеть всю картину в целом. Чаще всего применяется в функциональных блоках для обработки алгоритма той или иной части рабочего органа станка или линии. Здравствуйте уважаемые Дамы и Господа! Меня зовут Гридин Семён, и я являюсь автором этого блога. В данном посте я хочу обсудить с вами базовые понятия языка программирования CoDeSyS. Называется он ST CoDeSyS, очень сильно напоминает СИ. Язык программирования ST и типы переменных ST (Structured text) — это одна из составных частей комплекса CoDeSyS и представляет собой текстовый редактор высокого уровня. Он очень похож на Basic или Pascal. Такой способ программирования является идеальным инструментом для людей-программистов. Преимущ
Оглавление

Прежде чем мы с вами будем рассматривать упрощённую графическую систему программирования для технологов, хотелось бы в двух словах рассказать о базисном языке программирования СИ. Язык ST CoDeSyS отличается от других своей гибкостью и адаптивностью под любые задачи. Он позволяет обрабатывать сложные решения и видеть всю картину в целом. Чаще всего применяется в функциональных блоках для обработки алгоритма той или иной части рабочего органа станка или линии.

Здравствуйте уважаемые Дамы и Господа! Меня зовут Гридин Семён, и я являюсь автором этого блога. В данном посте я хочу обсудить с вами базовые понятия языка программирования CoDeSyS. Называется он ST CoDeSyS, очень сильно напоминает СИ.

Язык программирования ST и типы переменных

ST (Structured text) — это одна из составных частей комплекса CoDeSyS и представляет собой текстовый редактор высокого уровня. Он очень похож на Basic или Pascal. Такой способ программирования является идеальным инструментом для людей-программистов.

Преимуществом языка является создание сложных математических и разветвленных алгоритмов. ST позволяет без труда описывать сложные операции компактным и лёгким для восприятия текстом. Structured Text содержит в себе много конструкций, позволяющие присваивать переменные, использовать готовые библиотеки, функции и функциональные блоки.

В чём преимущество данного способа программирования? давайте с вами перечислим:

  1. Наглядность. Вы можете на одном листинге оценить всю последовательность действий и выполнение условий
  2. Программа на ST может быть создана в любом текстовом редакторе
  3. Читабельность. За счёт символьного представления текста и выделения блоков разными цветами

С этим мы разобрались, но, прежде чем переходить к непосредственному изучению азов программирования, необходимо ознакомиться с элементом языка — тип данных. Хочу обратить внимание, этот элемент практически схож во многих си-подобных языках (Питон, Ардуино 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. Фирма ОВЕН для своего оборудования пишет свои ПРОТЕСТИРОВАННЫЕ библиотеки.

-2

У меня был такой горький опыт. Когда мы занимались автоматизацией ЦТП, а точнее контуром отопления и ГВС, я скачал с форума библиотеки для ПИД-регулирования задвижек. И что же в итоге получилось? Код тупо не сработал, вообще! Пришлось работать сутками, и днём и ночью допиливать программу в режиме цейтнота.

Пишите программы компактно, и оставляйте комментарии.

Когда пишите объёмную и сложную программу, пользуйтесь функциями, функциональными блоками и подпрограммами. Пишите комментарии возле каждого узла автоматизации. Это очень сильно упрощает жизнь. Особенно тогда, когда нужно через некоторое время что-то исправлять.

Пользуйтесь интерактивной справкой в среде разработки. В данном каталоге вы можете найти ответы на многие ваши вопросы, особенно это актуально для новичков. Открывается справка по нажатию кнопки F1.

-3

Плюсы языка ST-массивы и циклы.

Использование циклов и массив облегчают жизнь программисту и увеличивает читабельность кода. Циклы очень удобны при использовании сложных и ресурсоёмких функций, таких как ПИД-регуляторы, опрос аналоговых входов, связь между ПЛК. На этом я с вами прощаюсь, дорогие друзья, пишите в комментариях, подписывайтесь, рассказывайте друзьям. До встречи в следующих статьях.