Электротехнический интернет-журнал Electrik.info

"Электрик Инфо" - онлайн журнал про электричество. Теория и практика. Обучающие статьи, примеры, технические решения, схемы, обзоры интересных электротехнических новинок. Уроки, книги, видео. Профессиональное обучение и развитие. Сайт для электриков и домашних мастеров, а также для всех, кто интересуется электротехникой, электроникой и автоматикой.
 


Электрик Инфо » Программируемые логические контроллеры » Язык программирования ПЛК Structured Text (ST) и его применение
16 мая 2021
Количество просмотров: 9033
Комментарии к статье: 4


Язык программирования ПЛК Structured Text (ST) и его применение

Большинство современных программируемых логических контроллеров (ПЛК) больше не ограничиваются одним языком программирования.

В настоящее время к наиболее распространенным языкам программирования ПЛК относятся: 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.

Язык программирования ПЛК Structured Text (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, в котором описаны графические и текстовые языки программирования для ПЛК, также стандартизирует типы данных на две категории: элементарные типы данных и производные типы данных.

Элементарные типы данных:

Стандартные типы данных в CodeSys

В языке ST есть несколько основных синтаксических правил. Не обязательно всех запоминать, но запомните самое главное: объявления переменных заканчиваются точкой с запятой, можно использовать прописные и строчные буквы (компилятор не понимает разницу), пробелы между последовательными командами не имеют значения, они используются для улучшения читаемости кода.

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

Основные языковые команды: инструкция присваивания, например a: = b и инструкции. В текстовой форме этот язык включает стандартные функции и функциональные блоки, определенные в стандарте.

Все среды разработки программ для ПЛК оснащены компиляторами, которые переводят ваш программный код в машинный код. Компилятор анализирует данный язык программирования. Если синтаксис неверен, компилятор сообщит об ошибках.

Важно! Если компилятор видит точку с запятой, то это означает для него конец выражения. Компилятор всегда читает все, пока не встретит точку с запятой, а затем выполняет выражение.

Пример программы управления светофором на языке ST:

 

Пример программы управления светофором на языке ST:

Видеоурок по составлению программы на ST:

 

Обучение ST

Рекомендую изучать язык ST продвинутым и новичкам!

Лучшая книга по ST на русском языке - Сергей Романов "Изучаем Structured Text МЭК 61131-3"

Сергей Романов – достаточно известная и медийная личность в мире промышленной автоматики. Его книга покрывает практически все аспекты языка ST и включает как доступную информацию из справочных материалов и стандартов, так и множество дополнений из других источников.

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

Электронная + печатная копия

Только электронная копия

Книга состоит из двух разделов.

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

Второй раздел, получивший название «Рецепты», посвящен решению определенных задач и применению на практике всех знаний, которые можно почерпнуть из первого раздела. Например, в нем содержатся статьи об обработке аналоговых и дискретных сигналов (как входных, так и выходных), ошибках процессов, о запуске двигателя и др.

Это самая полная информация по языку ST когда либо изданная. 3 года работы, 320 страниц уникального материала собранного автором буквально по крупицам.

Обзор книги:

Оглавление:

Содержание книги

Купить книгу "Изучаем Structured Text МЭК 61131-3":

Электронная + печатная копия

Только электронная копия




Поделитесь этой статьей с друзьями:


Другие статьи с сайта Электрик Инфо:

  • Язык функциональных блоковых диаграмм (FBD) и его применение
  • Язык релейных диаграмм LD (Ladder diagram) и его применение
  • Схемы пуска электродвигателя на языке лестничных диаграмм LD для ПЛК
  • Языки программирования ПЛК и программная платформа автоматизации CoDeSys
  • Примеры простых программ для ПЛК в CodeSys на языке релейных диаграмм
  • Использование ОВЕН ПЛК в системах автоматического управления освещением
  • Видеокурс по работе с контроллером ОВЕН ПЛК110 в среде CODESYS2.3
  • Программирование микроконтроллеров для начинающих
  • Микроконтроллеры PIC для начинающих
  • Программирование контроллеров OMRON для начинающих
  • Категория: Программируемые логические контроллеры

    ПЛК, Промышленная автоматизация

      Комментарии:

    #1 написал: Александр | [цитировать]

    ST - это очень мощный язык программирования более высокого уровня, уходящий корнями в хорошо известные языки Ada, Pascal и C.Он содержит все основные элементы современного языка программирования, включая ветвление (IF-THEN-ELSE и CASE OF) и итерационные циклы (FOR, WHILE и REPEAT). Этот язык - отличный инструмент для определения сложных функциональных блоков, которые затем можно использовать в любом другом языке программирования. Использование языка ST идеально подходит для работы с данными, строками, базами данных и для программирования сложных вычислительных алгоритмов. Он подходит для обработки сложных аналоговых сигналов, таких как реализация цифровых фильтров, линеаризация сигнала и сложные алгоритмы управления.

      Комментарии:

    #2 написал: Валерий Барабанов | [цитировать]

    Язык ST очень сильно напоминает Basic и Pascal и его обычно легче понять как новичкам, так и опытным программистам, потому что операторы If-Then-Else, While и Repeat ясно показывают, как работает программа и почему возникают определенные функции. На ST написан код всех стандартных функциональных блоков для графических языков программирования ПЛК. И еще язык ST используется в программах на языке SFC - это графический язык программирования ПЛК, который позволяет кодировать в хронологическом порядке. Конкретный код - это последовательность действий, которые являются отдельными объектами программирования. Выполняются только активная часть кода, затем идет переход к следующему этапу. Внутри отдельных блоков на SFC код обычно пишут на ST

      Комментарии:

    #3 написал: Алекс Йоханссон | [цитировать]

    Этот язык является наиболее подходящим способом программирования, когда мы хотим выполнить циклы (например, «if», «while», «for», «case»). Хотя он еще не очень популярен, поскольку он требует предварительных знаний программирования.

      Комментарии:

    #4 написал: Павел | [цитировать]

    Очень хоршая книга по ST для ПЛК. Долго ждал, когда появится что-то похожее на русском языке. Спасибо!

    Добавление комментария
    Имя:*
    Комментарий:

    Популярные статьи:

    Присоединяйтесь к нам в социальных сетях:

    ВКонтакте | Facebook | Одноклассники | Яндекс Дзен

     


    Популярные разделы сайта:

    Электрика дома  Электрообзоры  Энергосбережение
    Секреты электрика Источники света Делимся опытом
    Домашняя автоматика Электрика для начинающих
    Практическая электроника Электротехнические новинки

    Источник фотографий: Стоковые изображения от Depositphotos

    Copyright © 2009-2022 Электрик Инфо - Electrik.info, Андрей Повный
    Вся информация на сайте предоставлена в ознакомительных и познавательных целях.
    За применение этой информации администрация сайта ответственности не несет.
    Перепечатка материалов сайта запрещена.