Несъответствие на позицията на KUKA KRC4 $POS_ACT след цикъл: отстраняване на проблеми с предварителното изпълнение
KUKA KRC4 $POS_ACT връща двойна стойност на A-отместването на инструмента след първия цикъл на програмата. Причината е свързана с поведението на указателя за...
При контролери KUKA KRC4 с KSS 8.2 или 8.3 програмистите понякога наблюдават, че $POS_ACT отчита приблизително два пъти по-голямо от зададеното отместване по A на инструмента след първата итерация на цикъл от програмата за движение. Роботът не е направил физически скок; Advance Run Pointer е продължил към последващите инструкции, докато $POS_ACT все още е отразявал зададена поза, зависеща от инструмента и базата, която вече не съответства на измерването, което програмистът е очаквал да запише или да използва като референтна рамка.
Дисплей на програматора на KUKA KRC4, сравняващ зададения $POS_ACT с измерения $POS_ACT_MES по време на циклична програма за движение на робота.
$POS_ACT е зададената действителна позиция в смисъла на програмираната от контролера поза, трансформирана чрез активните инструмент и база. Затова тя зависи от момента, в който интерпретаторът продължава изпълнението. $POS_ACT_MES е измерената позиция от обратната връзка на робота и е по-сигурната променлива, когато е необходима физическата поза в точка на синхронизация. Смесването на двете води до симптоми на „двойно отместване“, които изглеждат като грешка в калибрирането на инструмента след първия цикъл, особено когато отместване по A на инструмента се прилага вътре в цикъл, който Advance Run вече частично е оценил.
Advance Run Pointer като механизъм
Advance Run на KUKA изпълнява предстоящите инструкции, преди роботът да е достигнал точния край на текущото движение. Това предварително изпълнение е важно за смесването на траектории, но означава, че присвояванията и изчисленията на рамки, които четат $POS_ACT, могат да се задействат по-рано от човешкото разбиране за момента, „в който пристигаме“. При първата итерация моментът може случайно да изглежда правилен. При втората итерация отместване, приложено спрямо преждевременно прочетен $POS_ACT, може да се натрупа с трансформацията на инструмента и да се прояви като приблизително 2× компонента на отместването по A в дисплеите или записите.
Илюстрация на Advance Run Pointer, който продължава към логиката на цикъла, докато роботът все още завършва предходния сегмент от движението.
Коригиращи техники
- Вмъкнете WAIT SEC 0 в точката на синхронизация, където трябва да спрете Advance Run, преди да четете или записвате данни, свързани с позата.
- Извикайте BAS(#INITMOV,0) при повторно инициализиране на параметрите на движението, така че последващите движения да започнат от чисто базово състояние, вместо да наследят частично оценен контекст.
- Задайте $ADVANCE=0 в секциите, които извършват критично заснемане на поза, изчисления на отместване на инструмента или актуализации на рамки, пренасяни между итерациите на цикъла; по-късно възстановете ненулева стойност на Advance за по-висока производителност.
- Предпочитайте $POS_ACT_MES, когато приложението се нуждае от измерената декартова поза, а не от зададената стойност, зависеща от показалеца.
; Примерен модел за синхронизация (концептуален)
$ADVANCE=0
WAIT SEC 0
; Сега заснемете измерената поза
DECL FRAME MySnap
MySnap = $POS_ACT_MES
BAS(#INITMOV,0)
; Възстановете Advance за смесване според изискванията на клетката
$ADVANCE=3
Диагностична последователност
- Запишете $POS_ACT и $POS_ACT_MES на един и същ програмен ред при итерация 1 и итерация 2 на проблемния цикъл.
- Потвърдете, че номерата на активните инструмент и база не са се променили между итерациите.
- Временно задайте $ADVANCE=0 и повторете теста; ако двойното отместване по A изчезне, взаимодействието с Advance Run е потвърдено.
- Заменете прочитанията на позата, използвани за изчисляване на отместването, с $POS_ACT_MES или ги защитете с WAIT SEC 0.
- Въведете отново Advance Run само извън критичната секция и проверете времето на цикъла спрямо качеството на траекторията.
| Променлива / извикване | Значение | Кога да се използва |
|---|---|---|
| $POS_ACT | Зададена поза (зависима от инструмента/базата) | Общ контекст на движението; внимавайте с Advance Run |
| $POS_ACT_MES | Измерена поза | Записване, инспекции, изчисления на отмествания в точки на синхронизация |
| WAIT SEC 0 | Прекъсва Advance Run | Преди критични четения/записвания |
| BAS(#INITMOV,0) | Повторно инициализира базата на движението | След синхронизация или промени на режима |
| $ADVANCE=0 | Деактивира Advance | Кратки секции, критични за позата (KSS 8.2/8.3) |
Потвърждаване на измерената спрямо зададената поза след синхронизация
Повторното калибриране на инструмента, защото $POS_ACT „изглежда удвоен“, може трайно да повреди правилно настроен TCP. Също така добавянето на компенсиращи отмествания в PLC или в Submit интерпретатор, без да се разбира действието на Advance Run, създава корекции, зависещи от конкретната версия. Документирайте коя версия на KSS използва клетката — 8.2 или 8.3 — когато записвате трасета за поддръжка от производителя, и отбележете дали са активни опции за абсолютна точност или специални бази.
Клетките за интеграция на робот и PLC, които обменят пози чрез полева шина, трябва да определят дали споделената рамка е зададена или измерена и да запишат това определение в спецификацията на интерфейса. Изясняването на този договор предварително предотвратява фалшиви събития за брак, когато секвенсер на PLC и PAC системи се задейства от поза, до която Advance Run все още действително не е достигнал.
За автора
Elena Vogt | Инженер по роботизирана интеграция – KUKA / дискретни клетки
Elena Vogt е специалист по въвеждане в експлоатация на KUKA KRC4/KSS, диагностика на инструментални рамки и обмен на сигнали между PLC и роботи в смесени дискретни клетки. Работата ѝ е насочена към страничните ефекти на Advance Run, измерените и зададените променливи на позата и стабилния баланс между време на цикъла и производителност.