Большинство современных программируемых логических контроллеров (ПЛК) больше не ограничиваются одним языком программирования.
В настоящее время к наиболее распространенным языкам программирования ПЛК относятся: LD (лестничные диаграммы), FBD (функциональные блоковые диаграммы), СFC (непрерывные функциональные схемы, как вариант языка FBD), SFC (последовательные блок-схемы) и ST (структурированный текст).
У каждого из них есть свои достоинства и недостатки. Выбранный язык может идеально подходить для отдельных приложений, но в другом случае работа с ним может быть настоящей головной болью.
У вас возникли проблемы с чтением и анализом вашей большой программы на языке релейных диаграмм (LD)? Вы предпочитаете печатать на клавиатуре и тем самым воплощать свои творческие идеи программирования в программный код? В таком случае ST - идеальное решение для вас!
Начиная обучение программирования контроллеров чаще всего выбирают первым языком программирования язык релейных диаграмм (LD). Это относительно просто, особенно для тех, кто имеет опыт работы с различным электрооборудованием и схемами на электромагнитных реле и пускателях.
К сожалению, по мере роста приложения ваша программа может стать нечитаемой для других людей. Чтобы это исправить пригодится удобная для анализа структура языка ST (структурированный текст).
Что такое язык ST?
ST (Structured Text) - это язык программирования, определенный в третьем международном стандарте МЭК 61131-3 (IEC 61131-3), который описывает графические и текстовые языки программирования для ПЛК.
В отличие от графических языков программирования, язык ST основан на тексте. В результате он занимает гораздо меньше места, чем графический язык программирования, является самым гибким из всех языков, а логику программы, написанной на ST легче декодировать и понимать.
Сейчас чаще всего функциональные блоки пишутся на языке ST, а основная программа - на графическом языке, например на языке функциональных блоковых диаграмм FBD.
На мой взгляд, ST - один из важнейших языков программирования для программируемых логических контроллеров! Мой опыт показывает, что программа, которую я написал ранее на графических языках, заняла у меня вдвое больше времени, чем написание той же программы на ST.
Фрагмент программы на языке ST:
Преимущества языка ST:
-
простота синтаксиса;
-
большая гибкость;
-
более простой анализ программы;
-
возможность более быстрого программирования.
Если у вас был опыт работы с языками высокого уровня, такими как Pascal или C, вы можете заметить сходство между ними и ST.
Синтаксис ST очень похож на синтаксис языка высокого уровня и включает переменные, условные операторы, циклы. Даже если у вас не было возможности программировать на языках высокого уровня, ST может стать отличным введением в изучение их синтаксиса. Я особенно рекомендую его людям, которые хотят быстро понять принцип обработки программ контроллером ПЛК.
Программа на ST анализируется с первой строки кода. Анализ кода выполняется построчно. Вся операция происходит циклически. В конце последней строки цикл контроллера перезапустится, и программа будет продолжать работать, пока контроллер находится в режиме RUN (выполнение программы ПЛК). То же самое верно для LD, FBD и любого другого языка программирования стандарта МЭК 61131-3.
Если вы раньше программировали другие микропроцессорные системы, вы знаете, что для выполнения цикла выполнения программы необходимо реализовать бесконечный цикл. При программировании ПЛК вам не нужно беспокоиться о реализации бесконечного цикла для выполнения программы. ПЛК сделает за вас это автоматически.
Structured Text // Определение переднего (R_TRIG) и заднего (F_TRIG) фронта сигнала в Codesys:
Синтаксис языка ST
Синтаксис языка программирования - это набор правил, определяющих его структуру. В языке ST много двоеточий, точек с запятой и других символов. Каждый символ имеет свое значение. Некоторые из них являются операторами, другие - функциями или переменными.
Международный стандарт МЭК 61131-3, в котором описаны графические и текстовые языки программирования для ПЛК, также стандартизирует типы данных на две категории: элементарные типы данных и производные типы данных.
Элементарные типы данных:
Основные элементы языка ST - это выражения и команды. Выражения предоставляют значения, соответствующие указанному типу данных. Они состоят из операторов и операндов. Операнд может быть переменной, константой, функцией или другим выражением.
Основные языковые команды: инструкция присваивания, например a: = b и инструкции. В текстовой форме этот язык включает стандартные функции и функциональные блоки, определенные в стандарте.
Все среды разработки программ для ПЛК оснащены компиляторами, которые переводят ваш программный код в машинный код. Компилятор анализирует данный язык программирования. Если синтаксис неверен, компилятор сообщит об ошибках.
Важно! Если компилятор видит точку с запятой, то это означает для него конец выражения. Компилятор всегда читает все, пока не встретит точку с запятой, а затем выполняет выражение.
Пример программы управления светофором на языке ST: