МЭК 61131-3 — логика, которую читает наладчик
Международный стандарт языков программирования контроллеров. Программа на нём понятна любому инженеру АСУ ТП, знакомому со стандартом.
Языки программ контроллера
МЭК 61131-3 — третья часть стандарта на программируемые контроллеры. Она задаёт языки, на которых пишется логика, и устройство программы: какие бывают программные единицы, типы данных, как вызывать блоки.
Для заказчика это значит одно: программу, написанную по стандарту, читает и правит инженер, знакомый с любой средой, которая стандарт поддерживает. Логика не заперта в языке одного поставщика.
В SyncTwin стандарт — единственный язык логики узла: прежний собственный язык узлов снят, рабочие программы переведены на ST и SFC. Узел не исполняет G-code — программу реза он вызывает блоком.
- SFC — последовательностьШаги, переходы по условиям, действия в шагах: цикл узла читается как схема.
- ST — структурированный текстРасчёты и условия — текстом, похожим на привычные языки.
- Функциональные блокиПовторно используемые блоки с входами и выходами; PLCopen добавляет блоки движения осей.
- Обмен программамиPLCopen XML — формат переноса программ между средами.
Языки и программные единицы
| Элемент стандарта | Что это | У нас |
|---|---|---|
| SFC | Последовательная функциональная схема: шаги, переходы, действия | работает — логика узла и процедура ячейки, плеер в лаборатории |
| ST | Структурированный текст | работает — логика узла, условия переходов |
| LD, FBD | Релейная и функционально-блочная диаграммы | Программы приносятся в ST или SFC |
| Программа | Верхняя единица, которую исполняет задача контроллера | Программа узла; язык — её свойство |
| Функциональный блок | Единица с памятью, входами и выходами | Блоки движения PLCopen, приёмы движения |
| Переменные с диапазоном | Входные переменные программы | Ручки узла: диапазон и единицы, значения хранятся у узла |
Текст проверяется компилятором целиком по стандарту, затем — привязка к узлу. Ошибки показываются как есть, с местом в тексте.
Один язык для логики узла и ячейки
- Логика узла — SFC или STПроцедура ячейки — тоже SFC: шаг ячейки — узел, команда фазы и условие завершения.
- Движение — блоки PLCopenПеремещение, сброс, чтение ошибки оси — стандартными блоками.
- Проверка компиляторомТекст проверяется целиком по стандарту; ошибка — с местом в тексте.
- ИмпортФайлы .st и PLCopen XML; при нескольких программах в файле — выбор нужной.
- Работает на стендеПрограммы узлов исполняются на стенде как программы МЭК 61131-3.
Логика — в SFC, движение — в блоке
Таймеры, ожидания, условия на сигналы, блокировки, счётчики и состояния PackML живут в SFC. Движение — в функциональном блоке: программа говорит «перенеси», а путь считает блок.
| Блок PLCopen | Что делает |
|---|---|
| MC_Power | Разрешение оси; в «И» с питанием узла; выключено — ось снята |
| MC_MoveAbsolute и другие | Перемещение оси; у блока есть Active, ускорение и торможение |
| MC_Reset | Сброс аварии оси |
| MC_ReadAxisError | Чтение ошибки оси |
| MC_SetPosition | Сдвиг координаты без движения |
Глагол — тоже блок
Перенос, переворот, постановка доступны программе узла как функциональные блоки. Программа реза станка вызывается блоком запуска.
Интерфейс как у PLCopen
Цель платформы — каждый глагол движения с интерфейсом «Execute → Busy → Done или Error», входы — параметры глагола.
Программа не знает исполнителя
Имя блока одно; какое оборудование его исполнит, решается при пуске. Пересечения нет — отказ с причиной.
Как стандарт выглядит в программе узла
| Шаг SFC | Действие | Переход |
|---|---|---|
| исходная | Обе оси позиционера в 0° — MC_MoveAbsolute на каждой | Оба блока Done |
| наклон | Наклон стола на 45° | Done |
| оборот | Вращение планшайбы на 360° | Done |
| обратный наклон | Обе оси в 0° одновременно | Оба блока Done |
| пауза | Выдержка по таймеру | Таймер → «исходная» |
Конечный шаг SFC — состояние PackML Complete узла. Разбор примера и пороги аварии — «Программы ПЛК».
Четыре ступени до движения оси
- КомпиляторТекст целиком по стандарту, затем привязка к узлу: оси, роли, имена входов и выходов.
- ЛабораторияТаблица входов %IX и выходов %QX, форсировка входа, плеер SFC, состояние PackML.
- Виртуальные осиШаги, время и переходы — на стенде, приводы стоят.
- ПриводыОшибка слежения и нагрузка — только на реальной оси.
Форсировка — инструмент отладки по правилам сред программирования контроллеров: гаснет при аварийном стопе и на производство не идёт.
Вопросы о языке
Можно принести готовую программу из нашей среды?
Да, текстом ST или файлом PLCopen XML. Если в файле несколько программных единиц, платформа спросит, какую взять; компилятор покажет, что не прошло, с местом в тексте.
Сможет ли наш наладчик править программу без вас?
Программа написана на языке стандарта, шаги и переходы SFC читаются как схема. Состав передачи результатов вашей команде фиксируется в техзадании внедрения.
Где видно, что программа делает сейчас?
Плеер SFC в лаборатории подсвечивает шаг, панель «Узел» показывает входы, выходы и состояние PackML, журнал прогонов — чем кончился запуск.
А релейная диаграмма?
Логика узла пишется на SFC или ST. Ваша программа на другом языке стандарта переносится в них в рамках внедрения.
Где хранятся скорости и выдержки?
В ручках узла — входных переменных с диапазоном и единицами. Вид «Визуально» показывает их для любого языка, значения хранятся у узла, а не в тексте.
Что работает и что готовится
- РаботаетST и SFC, импорт .st и PLCopen XML, компилятор, лаборатория, исполнение на стенде на виртуальных осях и на приводах.
- ГотовитсяБлок переноса с точками таблицей, сторож подтверждений выходов.
- Канон и цельВсе глаголы движения — функциональными блоками с интерфейсом PLCopen.
Обсудить внедрение
Пришлите программу узла в ST или PLCopen XML — проверим её компилятором и в лаборатории и предложим этап НИОКР.
Запросить доступОбсудить внедрение
Опишите узел или линию — ответим, что проверим и в какой срок. Целевые показатели фиксируются в техзадании внедрения.
Запросить доступ