KUKA KRC4: несоответствие позиции $POS_ACT после цикла — устранение неполадок при опережающей обработке
KUKA KRC4 $POS_ACT возвращает двойное значение смещения A инструмента после первого цикла выполнения программы. Причина связана с поведением указателя опереж...
На контроллерах KUKA KRC4 под управлением KSS 8.2 или 8.3 программисты иногда замечают, что после первой итерации цикла движения переменная $POS_ACT показывает примерно вдвое большее смещение A инструмента, чем предусмотрено. Физического скачка робота не происходило: указатель опережающего выполнения продолжал переходить к последующим инструкциям, тогда как $POS_ACT по-прежнему отражал заданную позу, зависящую от инструмента и базы, которая уже не соответствовала измерению, ожидаемому программистом для записи или использования в качестве системы координат.
Сравнение заданного $POS_ACT и измеренного $POS_ACT_MES на пульте управления KUKA KRC4 во время выполнения циклической программы движения.
$POS_ACT — это заданное фактическое положение в смысле запрограммированной позы контроллера, преобразованной с учетом активных инструмента и базы. Поэтому его значение зависит от момента, когда интерпретатор переходит к следующим инструкциям. $POS_ACT_MES — это измеренное положение, полученное из контура обратной связи робота, и это более безопасная переменная, когда требуется физическая поза в точке синхронизации. Путаница между этими переменными приводит к симптомам «двойного смещения», похожим на ошибку калибровки инструмента после первого цикла, особенно если смещение по оси A инструмента применяется внутри цикла, который указатель опережающего выполнения уже частично вычислил.
Указатель опережающего выполнения как причина
Опережающее выполнение KUKA запускает последующие инструкции до того, как робот достигнет точного конца текущего движения. Такая предварительная обработка необходима для сглаживания траектории, но из-за нее присваивания и вычисления систем координат, считывающие $POS_ACT, могут выполняться раньше, чем ожидает человек, мысленно ориентирующийся на момент «прибытия». В первой итерации синхронизация может случайно выглядеть корректной. Во второй итерации смещение, примененное относительно преждевременно считанного $POS_ACT, может сложиться с преобразованием инструмента и проявиться на дисплеях или в трассировках как примерно 2-кратная составляющая смещения по оси A.
Иллюстрация того, как указатель опережающего выполнения продолжает обрабатывать логику цикла, пока робот еще завершает предыдущий сегмент движения.
Методы устранения
- Вставьте WAIT SEC 0 в точке синхронизации, где необходимо остановить опережающее выполнение перед чтением или записью данных, связанных с позой.
- Вызывайте BAS(#INITMOV,0) при повторной инициализации параметров движения, чтобы последующие перемещения начинались с чистого состояния базирования, а не наследовали частично вычисленный контекст.
- Устанавливайте $ADVANCE=0 в участках, где выполняются критически важные захват позы, вычисления смещения инструмента или обновления систем координат, передаваемых между итерациями цикла; позднее восстановите ненулевое значение для повышения производительности в производственном режиме.
- Используйте $POS_ACT_MES, если приложению требуется измеренная декартова поза, а не заданное значение, зависящее от указателя выполнения.
; Пример шаблона синхронизации (концептуальный)
$ADVANCE=0
WAIT SEC 0
; Теперь сохраняем измеренную позу
DECL FRAME MySnap
MySnap = $POS_ACT_MES
BAS(#INITMOV,0)
; Восстанавливаем опережающее выполнение для сглаживания
; в соответствии с требованиями ячейки
$ADVANCE=3
Последовательность диагностики
- Запишите значения $POS_ACT и $POS_ACT_MES в одной и той же строке программы на первой и второй итерациях проблемного цикла.
- Убедитесь, что номера активных инструмента и базы между итерациями не изменились.
- Временно установите $ADVANCE=0 и повторите проверку; если двойное смещение по оси A исчезнет, взаимодействие с опережающим выполнением подтверждено.
- Замените чтение позы, используемое для вычисления смещения, на $POS_ACT_MES либо защитите его инструкцией WAIT SEC 0.
- Восстанавливайте опережающее выполнение только за пределами критического участка и проверяйте соотношение времени цикла и качества траектории.
| Переменная / вызов | Значение | Когда использовать |
|---|---|---|
| $POS_ACT | Заданная поза (зависит от инструмента и базы) | Общий контекст движения; осторожно при опережающем выполнении |
| $POS_ACT_MES | Измеренная поза | Запись данных, проверки, вычисления смещений в точках синхронизации |
| WAIT SEC 0 | Останавливает опережающее выполнение | Перед критически важными операциями чтения/записи |
| BAS(#INITMOV,0) | Повторно инициализирует базу движения | После синхронизации или смены режима |
| $ADVANCE=0 | Отключает опережающее выполнение | На критических участках, связанных с позой (KSS 8.2/8.3) |
Проверяйте измеренную и заданную позу после синхронизации
Повторная калибровка инструмента из-за того, что $POS_ACT «выглядит удвоенным», может навсегда испортить исправную TCP. Аналогично, добавление компенсирующих смещений в ПЛК или в интерпретаторе Submit без понимания принципа опережающего выполнения приводит к исправлениям, зависящим от конкретной версии. При сборе трассировок для технической поддержки поставщика документируйте версию KSS, на которой работает ячейка, — 8.2 или 8.3, — а также указывайте, активны ли опции абсолютной точности или специальные базы.
В ячейках интеграции робота и ПЛК, обменивающихся позами по полевой шине, следует определить, является ли общая система координат заданной или измеренной, и зафиксировать это определение в спецификации интерфейса. Согласование этого контракта на раннем этапе предотвращает ложные события брака, когда секвенсор систем ПЛК и PAC запускается по позе, которой робот из-за опережающего выполнения еще фактически не достиг.
Об авторе
Elena Vogt | Инженер по интеграции робототехнических систем — KUKA / дискретные ячейки
Elena Vogt специализируется на вводе в эксплуатацию KUKA KRC4/KSS, диагностике систем координат инструмента и обмене сигналами между ПЛК и роботами в смешанных дискретных ячейках. Ее работа сосредоточена на побочных эффектах опережающего выполнения, различиях между измеренными и заданными переменными позы, а также на стабильном балансе между временем цикла и качеством траектории.