-
Tia Portal — язык программирования SCL. Часть1
2021-08-09
Промышленное
-
В данной статье рассмотрим основы программирования в Tia Portal на примере структурированного языка управления SCL (Structured Control Language), являющегося высокоуровневым текстовым языком, основанным на языке PASCAL.
Данный язык поддерживает типовые операторы программирования, такие как присвоение (: =), математические функции (+ для сложения, — для вычитания, * для умножения, / для деления), а также использует стандартные операторы языка PASCAL, такие как IF-THEN-ELSE, CASE, REPEAT-UNTIL, GOTO и RETURN. Другие инструкции для SCL, такие как таймеры и счетчики, соответствуют LAD и FBD инструкциям.
Начнем мы изучение SCL с простых логических операций и математических выражений и сравним их с программированием на языке LADDER.
Ниже на рис. приведен пример FB блока на LAD, состоящий из пяти Network, в которых выполняются простые логические и математические операции, в том числе один таймер. Создадим подобный блок на языке SCL.
Создаем в программе новый функциональный блок и в раскрывающемся списке выберем SCL в качестве языка программирования.
Таблицу тегов будем использовать ту же самую, что и для LAD.
Начнем с самой простой задачи – логической операции AND. Значение TRUE на i1 и i2 активирует выход q1.
Для написания программы на SCL необходимо запомнить синтаксис команд — переменная всегда начинается с кавычек или #, двоеточие разделяет инструкции, = присваивает результат. Разницы между строчными и прописными символами нет. При вводе переменных, достаточно ввести первый символ и TIA Portal автоматически предложит выбрать переменную из раскрывающегося списка.
Комментарии в программе указываются с помощью двойной косой линии – слеша.
Напомню, что каждая строка должна заканчиваться точкой с запятой. Во второй строке оператор RETURN после косой черты указывает на конец программного блока, достаточно удалить эти косые черты и ПЛК не выполнит следующие строки программы. Это удобно при отладке программы.
Одна важная деталь. В блоке, созданном на языке LAD, мы можем легко добавить сегмент на языке SCL с помощью правой кнопки мыши. Таким образом, при необходимости, мы можем написать несколько длинных логических операций на SCL прямо в функциональном блоке LAD.
Переходим ко второму сегменту. В данном случае, выход будет активен, если значение хотя бы одного из входов (i1 или i3) выражения в скобках будет принимать значение TRUE и нет сигнала на входе i2.
Далее из меню основных инструкций добавим таймер с задержкой выключения — TOF. Параметры таймера указываются в скобках.
Тип таймера можно легко изменить, просто щелкнув по нему мышью.
В следующей строке напишем простое математическое выражение «А умноженное на В равно С». Если необходимо, вместо умножения можно использовать и другие операторы – сложение, вычитание, деление, сравнения и т.д.
Наконец, еще одно выражение «A + B = C», на этот раз с использованием временных переменных в функциональном блоке. В последней строке используется команда RETURN, то есть конец программного блока.
Наши последние несколько строк, написанных на SCL, заменили эти два сегмента программы LAD.
В принципе, это вся программа на SCL, которая представляет собой аналогичную программу на LAD, согласно первому рисунку в статье.
Как видим, получилось все более компактно. Кроме того, программный код можно еще немного уменьшить, удалив ненужные комментарии.
В следующем уроке мы продолжим изучение SCL и рассмотрим работу с детекторами фронтов, счетчиками.
Поделиться в соц. сетях
Жду продолжение