SyncTwinTECHNOLOGIES
Модуль · программы ПЛК

Логика узла на МЭК 61131-3 — проверена до железа

SFC или ST, движение — блоками PLCopen, состояние узла — по PackML. Программа пишется в браузере и проходит компилятор и прогон до пуска.

Программа узла на SFC Цепочка шагов SFC: ожидание детали, захват, перенос, отпуск; переходы — по сигналам датчиков, захват подтверждается входом; конечный шаг — состояние PackML Complete. S0 ждать деталь датчик: деталь на месте S1 захват вход: захват подтверждён S2 перенос ось: цель достигнута S3 отпустить Complete состояние PackML
Что это

Программа узла — обычная программа контроллера

Узел линии — робот, позиционер, трек, схват, лента — работает по своей программе. В SyncTwin это программа по МЭК 61131-3: тот же стандарт, на котором пишут логику промышленных контроллеров.

Логика описывается шагами и переходами SFC или текстом ST. Движение осей задаётся стандартными блоками PLCopen. Конец цикла и аварии узла называются состояниями PackML.

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

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

Язык

Один язык — МЭК 61131-3

  • Логика — SFC или STШаги и переходы читает наладчик, знакомый со стандартом.
  • Движение — блоки PLCopenПеремещение оси, сброс и чтение ошибки — стандартными блоками.
  • Готовый текст приносится файломИмпорт программ .st и PLCopen XML; язык — свойство программы.
  • Состояние узла — PackMLКонечный шаг SFC — Complete; авария оси — Aborted; «Стоп» один во всех окнах.

Язык — свойство программы

Задаётся при создании или импорте. Экран лаборатории, вкладки и фильтр строятся по нему сами.

Новая программа начинается заготовкой SFC, которую компилятор уже принимает.

Импорт вместо набора

Кнопка «Импорт» берёт файлы .st и PLCopen XML. Если в файле несколько программных единиц, платформа спросит, какую взять.

Ручки программы

Входные переменные с диапазоном и единицами становятся ручками узла. Вид «Визуально» показывает их для любого языка, значения хранятся у узла.

Устройство

Из чего состоит цикл узла

ЧастьЧто этоЗамечание
Шаг SFCСостояние цикла: что делает узел, пока шаг активенКонечный шаг SFC — состояние PackML Complete узла
ПереходУсловие, по которому шаг сменяется следующимОбычно — выход Done блока движения, вход-порт или таймер
Блок движенияPLCopen: MC_MoveAbsolute и другие, MC_Reset, MC_ReadAxisError, MC_SetPositionУ блока есть состояние Active, ускорение и торможение; MC_SetPosition сдвигает координату без движения
Разрешение осиMC_Power — в «И» с питанием узлаMC_Power(FALSE) снимает ось; без него ось не едет
РучкаВходная переменная с диапазоном и единицамиСкорости и выдержки выносятся в ручки, а не в текст
ПортВход или выход узла для проекта; товар — порты in/outУ выхода — род сигнала и период, у входа — поведение по таймауту
МестоФормальное: Pick, PlaceФактическую точку указывает проект у узла; программа при этом не правится

Связи с соседями — не в программе

Узел не знает соседей. Порты объявляет программа, соединяет их проект проводом на вкладке «Граф».

Приёмы движения — блоками

Перенос, переворот и постановка доступны как функциональные блоки. Программа реза станка вызывается из узла блоком запуска G-кода.

Ожидание — с названным исходом

Шаг, который ждёт датчик, получает предел ожидания и исход по нему: пропустить, встать или объявить аварию. Решает автор программы.

Блок узла

Каналы с ролями, а не адреса

Оси

Роль выбирает режим привода, механизм — то, что видит оператор.

Входы — датчики

Роль говорит, что датчик знает: «деталь на месте», «захват подтверждён».

Выходы

Роль говорит, что порт делает: держит, стопорит, метит, переводит поток.

  • Узлу предлагаются только его действияБез датчика наличия «дождаться детали» в списке нет вовсе.
  • Команда подана — ещё не «взял»Захват подтверждается сигналом входа, а не выдержкой на глаз.
  • Привязка к железу — при наладкеПуск без привязки отказывает с именем канала; «наверное, первый привод» не подставляется.

Каналы, роли и каталог образцов узлов подробно — на странице «Автоматика линии».

Как работает

Пять шагов от пустой программы до приводов

  1. Создать«Новая программа» — выбор блока узла. Блок даёт программе оси, роли, профили и имена входов-выходов. Или «Импорт» .st и PLCopen XML.
  2. КомпиляторТекст проверяется целиком по МЭК 61131-3, затем — привязка к узлу. Ошибки показываются как есть, с местом в тексте.
  3. ЛабораторияТаблица входов и выходов, форсировка входа, плеер SFC и состояние PackML — в браузере.
  4. Виртуальные осиУзел идёт на стенде, приводы стоят: видны шаги, время и переходы.
  5. ПриводыОшибка слежения и нагрузка проверяются только на реальной оси, после назначения профилей.

Форсировка — инструмент отладки: гаснет при аварийном стопе и на производство не идёт. Значение, подставленное во вход, придумал автор; на стенде его называет симулятор.

Лаборатория ПЛК

Программа и узел на одном экране

Вид по языку

Лаборатория открывает программу в виде её языка: шаги и переходы SFC или текст ST. Плеер в браузере есть у SFC с моделью шагов.

Нижняя панель «Узел»

Таблица входов %IX и выходов %QX, состояние PackML. Вход форсируется переключателем; порты видны виджетами рядом с ручками программы.

Проверка без замечаний

Счётчик шагов и переходов и вердикт компилятора видны под кодом. Демонстрационная программа открыта только для чтения — работа идёт в её копии.

Состояния и аварии

Узел говорит языком PackML

СостояниеКогда
CompleteЦикл дошёл до конечного шага SFC
AbortedАвария оси — следящая ошибка вышла за предел
Stop + Abort«Стоп» из любого окна: двойник, наладка, панель у оборудования — одна команда
AbortedВыход включён, а вход-подтверждение не пришёл — сторож подтверждений готовится

Пороги аварии по умолчанию

ПределПо умолчаниюЗамечание
Порог момента600 ‰ номиналаАвария — только если превышение держится дольше выдержки: на разгоне момент штатно уходит за предел
Порог рассогласования0,05 оборотаНа виртуальных осях не проверяется: там рассогласование — работа модели, а не факт привода
Выдержка аварии0,2 сСколько превышение должно продержаться

Это стартовые значения

Под конкретное железо пороги задаются явно. Паспорт вашего узла их уточняет.

Момент на виртуальной оси — модель

Он выводится из разницы «велено» и «есть». Годится для отладки логики поиска упора и затяжки, замером не является.

Нет паспортного момента — прочерк

Шкала промилле отсчитывается от номинала двигателя. Номинал не задан — условие по моменту не сработает; заполните паспорт до того, как строить на нём переход.

Пример

От нуля до движения: сварочный позиционер

Два поворотных привода: наклон кладёт стол под шов, вращение прокручивает планшайбу под горелкой. Это образец каталога узлов; его программу можно взять целиком и переписать под своё железо.

Шаг SFCДействиеПереход
исходнаяОбе оси в 0° — MC_MoveAbsolute на каждойОба блока Done
наклон«Наклон» на 45°Done
оборот«Вращение» на 360°Done
обратный наклонОбе оси в 0° одновременноОба блока Done
паузаВыдержка по таймеруТаймер → «исходная»
  1. Блок«Новый блок» → образец позиционера. Две оси с именами шарниров механизма приезжают вместе с геометрией.
  2. ПрограммаЗаготовка SFC, пять шагов цикла. Скорости — во входные переменные: они станут ручками узла.
  3. ПроверкаКомпилятор принимает текст и привязку. Плеер проигрывает шаги, панель «Узел» показывает состояние PackML.
  4. Виртуальные сервоНаклон встаёт на 45°, вращение отрабатывает оборот; в конце цикла узел в состоянии Complete.
  5. ПриводыОсям назначаются профили, паспорт привода заполняется; режим «В цикле» — для производственного прогона.

Пределы осей взяты из механизма: наклон ±85°, вращение ±360°. Производитель диапазоны не публикует, и в файле механизма это названо предположением.

Журнал и отказы

Исход прогона называет платформа

Карточка узла хранит последние запуски: какая программа, когда, чем кончилась. С момента пуска платформа сама спрашивает стенд и штампует запись по его кадру — держать карточку открытой не нужно.

  • Дошла до концаПрограмма отработала цикл.
  • ОстановленаПрогон прервали раньше конца.
  • ОшибкаПрогон упал; причина — в записи.
  • Исход неизвестенКонца прогона никто не наблюдал: стенд не подтвердил ход, связь пропала или сервер перезапустился посреди прогона.

Отказ называется, а не молчит

Отказ стендаЧто это значитЧто делать
Серво не сопоставлено с приводом на шинеОсь программы не связана с приводом узлаНазначить профиль оси в наладке
Вход или выход не сопоставленПрограмма использует канал, которого железо не знаетСопоставить канал ввода-вывода в наладке
Узел не найденУзел, которому адресован прогон, удалён или указан не тотВыбрать узел заново
Стенд отказал без причиныУзел не прислал причину; платформа её не сочиняетСмотреть журнал на боксе и связь с узлом

Несопоставленный привод блокирует пуск: подмены реальной оси виртуальной «чтобы поехало» нет. Зелёный прогон при неподключённом железе — самая дорогая ошибка, и платформа её не допускает.

Границы

Чего программа узла не делает

Не делаетПочемуГде это есть
Не исполняет G-codeСвоего интерпретатора у узла нет: программу реза он вызывает блоком запускаСтанки с ЧПУ
Не знает инструмента и слотовНавесное узла объявляется каналом, а не номером в столе инструментаРоботы и навесное
Не выводит траекторию из деталиПуть называет автор — шагами SFC и блоками PLCopenПрограммы реза
Не принимает толчок и сырые команды из облакаЧерез границу проходит замысел — программа и команды «выполняй» и «стоп»Наладка у оборудования
Не проверяет отставание на виртуальных осяхОбратной связи там нет; нагрузку доказывает только прогон на приводахПриводы
Статус

Что работает и что готовится

  • РаботаетПрограммы на ST и SFC, импорт .st и PLCopen XML, компилятор, лаборатория с форсировкой, пуск узла на виртуальных осях и на приводах стенда, журнал прогонов.
  • ГотовитсяСторож подтверждений выходов; блок переноса с точками таблицей — сделаны в коде, выйдут ближайшими выкатами.
  • Предмет внедренияПрогон программы против симулятора рядом с контроллером, датчики тем же входом, что и реальные, — виртуальная пусконаладка.

Обсудить внедрение

Пришлите программу узла или опишите его цикл — проверим её в лаборатории и предложим этап НИОКР с ценой и сроком.

Запросить доступ
Следующий шаг

Обсудить внедрение

Опишите узел или линию — ответим, что проверим и в какой срок. Целевые показатели фиксируются в техзадании внедрения.

Запросить доступ

Внедрение →

Запросить доступ