KUKA KRC4 $POS_ACT — niezgodność pozycji po pętli: rozwiązywanie problemów z wyprzedzającym wykonywaniem programów
KUKA KRC4 $POS_ACT zwraca dwukrotność przesunięcia A danych narzędzia po pierwszym cyklu pętli programu. Przyczynę prześledzono do zachowania wskaźnika wyprz...
W sterownikach KUKA KRC4 z systemem KSS 8.2 lub 8.3 programiści czasami obserwują, że po pierwszej iteracji pętli procedury ruchu zmienna $POS_ACT wskazuje wartość przesunięcia A narzędzia wynoszącą w przybliżeniu dwukrotność zamierzonej wartości. Robot nie wykonał fizycznego skoku; wskaźnik przebiegu wyprzedzającego nadal przechodził do kolejnych instrukcji, podczas gdy $POS_ACT wciąż odzwierciedlała zadaną pozycję zależną od narzędzia i bazy, która nie odpowiadała już pomiarowi oczekiwanemu przez programistę do zarejestrowania lub użycia jako odniesienia ramki.
Wyświetlacz panelu operatorskiego KUKA KRC4 porównujący zadaną wartość $POS_ACT ze zmierzoną wartością $POS_ACT_MES podczas wykonywania programu ruchu w pętli.
$POS_ACT to zadana pozycja rzeczywista w rozumieniu zaprogramowanej pozycji sterownika, przekształcona z uwzględnieniem aktywnego narzędzia i bazy. Dlatego jej wartość zależy od momentu, w którym interpreter wykonuje instrukcje z wyprzedzeniem. $POS_ACT_MES to zmierzona pozycja pochodząca ze ścieżki sprzężenia zwrotnego robota i jest bezpieczniejszą zmienną, gdy potrzebna jest fizyczna pozycja w punkcie synchronizacji. Pomylenie tych dwóch zmiennych powoduje objawy „podwójnego przesunięcia”, które po pierwszym cyklu wyglądają jak błąd kalibracji narzędzia, zwłaszcza gdy przesunięcie narzędzia w osi A jest stosowane wewnątrz pętli częściowo wcześniej obliczonej przez przebieg wyprzedzający.
Wskaźnik przebiegu wyprzedzającego jako mechanizm
Przebieg wyprzedzający KUKA wykonuje nadchodzące instrukcje, zanim robot dotrze dokładnie do końca bieżącego ruchu. To wstępne wykonywanie jest niezbędne do płynnego łączenia ścieżek, ale oznacza, że przypisania oraz obliczenia ramek odczytujące $POS_ACT mogą zostać wykonane wcześniej, niż wynikałoby to z ludzkiego wyobrażenia o chwili „dotarcia na miejsce”. W pierwszej iteracji synchronizacja może przypadkowo wyglądać prawidłowo. W drugiej iteracji przesunięcie zastosowane względem przedwcześnie odczytanej wartości $POS_ACT może nałożyć się na transformację narzędzia i dać na wyświetlaczu lub w rejestrach wartość składowej przesunięcia A wynoszącą w przybliżeniu 2×.
Ilustracja przedstawiająca kontynuowanie logiki pętli przez wskaźnik przebiegu wyprzedzającego, gdy robot nadal kończy poprzedni odcinek ruchu.
Techniki korygujące
- Wstaw WAIT SEC 0 w punkcie synchronizacji, w którym trzeba zatrzymać przebieg wyprzedzający przed odczytem lub zapisem danych związanych z pozycją.
- Wywołaj BAS(#INITMOV,0) podczas ponownej inicjalizacji parametrów ruchu, aby kolejne ruchy rozpoczynały się od czystego stanu bazowego, zamiast dziedziczyć częściowo obliczony kontekst.
- Ustaw $ADVANCE=0 w sekcjach wykonujących krytyczny zapis pozycji, obliczenia przesunięcia narzędzia lub aktualizacje ramki przenoszone między iteracjami pętli; później przywróć wartość różną od zera, aby zwiększyć wydajność produkcji.
- Używaj $POS_ACT_MES, gdy aplikacja wymaga zmierzonej pozycji kartezjańskiej, a nie wartości zadanej zależnej od wskaźnika.
; Przykładowy wzorzec synchronizacji (koncepcyjny)
$ADVANCE=0
WAIT SEC 0
; Teraz zapisz zmierzoną pozycję
DECL FRAME MySnap
MySnap = $POS_ACT_MES
BAS(#INITMOV,0)
; W razie potrzeby przywróć przebieg wyprzedzający w celu płynnego łączenia ruchów
$ADVANCE=3
Sekwencja diagnostyczna
- Zarejestruj $POS_ACT i $POS_ACT_MES w tej samej linii programu podczas pierwszej i drugiej iteracji problematycznej pętli.
- Potwierdź, że numery aktywnego narzędzia i bazy nie zmieniły się między iteracjami.
- Tymczasowo ustaw $ADVANCE=0 i powtórz test; jeśli podwójne przesunięcie A zniknie, interakcja z przebiegiem wyprzedzającym zostanie potwierdzona.
- Zastąp odczyty pozycji używane do obliczeń przesunięcia zmienną $POS_ACT_MES albo zabezpiecz je instrukcją WAIT SEC 0.
- Przywróć przebieg wyprzedzający wyłącznie poza sekcją krytyczną i zweryfikuj czas cyklu oraz jakość ścieżki.
| Zmienna / wywołanie | Znaczenie | Kiedy używać |
|---|---|---|
| $POS_ACT | Zadana pozycja (zależna od narzędzia i bazy) | Ogólny kontekst ruchu; zachowaj ostrożność przy przebiegu wyprzedzającym |
| $POS_ACT_MES | Zmieniona pozycja | Rejestrowanie, kontrole, obliczenia przesunięcia w punktach synchronizacji |
| WAIT SEC 0 | Przerywa przebieg wyprzedzający | Przed krytycznymi odczytami/zapisami |
| BAS(#INITMOV,0) | Ponowna inicjalizacja podstawy ruchu | Po synchronizacji lub zmianie trybu |
| $ADVANCE=0 | Wyłącza przebieg wyprzedzający | Ścisłe sekcje krytyczne dla pozycji (KSS 8.2/8.3) |
Potwierdź zmierzoną i zadaną pozycję po synchronizacji
Ponowna kalibracja narzędzia dlatego, że $POS_ACT „wygląda na podwójne”, może trwale uszkodzić prawidłowo skalibrowany TCP. Podobnie dodawanie kompensacyjnych przesunięć w sterowniku PLC lub interpreterze Submit bez zrozumienia działania przebiegu wyprzedzającego prowadzi do rozwiązań zależnych od konkretnej wersji i utrwalanych jedynie zwyczajowo. Podczas przygotowywania śladów dla wsparcia producenta udokumentuj, z jakiej wersji KSS korzysta stanowisko — 8.2 czy 8.3 — oraz odnotuj, czy aktywne są opcje dokładności absolutnej lub specjalne bazy.
W stanowiskach integrujących robota i PLC, które wymieniają pozycje przez magistralę obiektową, należy określić, czy współdzielona ramka opisuje pozycję zadaną, czy zmierzoną, i zapisać tę definicję w specyfikacji interfejsu. Wczesne uzgodnienie tej zasady zapobiega fałszywym odrzutom, gdy sekwencer systemów PLC i PAC wyzwala działanie na podstawie pozycji, do której robot w rzeczywistości jeszcze nie dotarł z powodu przebiegu wyprzedzającego.
O autorce
Elena Vogt | Inżynier integracji robotyki – KUKA / stanowiska dyskretne
Elena Vogt specjalizuje się w uruchamianiu systemów KUKA KRC4/KSS, diagnostyce ramek narzędzia oraz komunikacji PLC–robot na mieszanych stanowiskach dyskretnych. Jej praca koncentruje się na skutkach ubocznych przebiegu wyprzedzającego, zmiennych zmierzonej i zadanej pozycji oraz stabilnym kompromisie między czasem cyklu a jakością ruchu.