rafalxfiles oczywiście jak najbardziej możesz pytać. Jak będę miał czas (i chęci

) to odpiszę.
Na wstępie zaznaczę, że nie jestem programistą PLC ani konstruktorem maszyn, więc to co napiszę będzie się opierało o moją wiedzę, doświadczenie oraz (wydaje mi się) logiczne podejście, więc mogę się mylić.
Jeśli chodzi o zatrzymanie gwintownika na dnie otworu gwintowanego, i wraz z załączeniem przeciwnych obrotów rozpoczęcie wycofywania go, to wydaje mi się że odpowiada za to właśnie to zatrzymanie dokładne. Gwintownik nie ma się zatrzymać nagle, tak jak to napisałeś, tylko płynnie. Wraz ze zmniejszaniem obrotów wprost proporcjonalnie zmniejsza się posuw, aż do całkowitego zatrzymania. Taka zaleta silników krokowych. można nimi sterować płynnie w ułamku sekundy zmieniając obroty procentowo w jakimś okresie czasu, dla ludzkiego oka wygląda to na płynne przejście, a faktycznie błąd jest na tyle mały, że narzędzie tego "nie odczuwa".
Wydaje mi się, że ta sama technika jest wykorzystana przy interpolacji kołowej - według definicji może się to wiązać z pewnym błędem wykonania. Zapewne tak jest w istocie, jednak człowiek nie jest w stanie wychwycić tak małego błędu. Odpowiedzialne za nią są silniki, a nie układ w maszynie przeliczający współrzędne. Na podstawie wykonywanego łuku odpowiedni silnik danej osi startuje z dużym posuwem, drugi wolnym, im dalsza część łuku jest wykonana, tym bardziej pierwszy silnik zwalnia a drugi przyspiesza. Dokładnie w połowie ćwiartki łuku oba powinny mieć ten sam posuw, by w końcowej fazie pierwszy zwalniał do zera, a drugi uzyskiwał zadeklarowany posuw.
Trochę się rozpisałem, ale wydaje mi się, że w miarę sensownie opisałem sytuację. Co do gwintowania w dwóch osiach, to wydaje mi się że jeżeli maszyna obsługuje czwartą oś, to jest przygotowana na przeliczenie współrzędnych pod kątem i dostosowania silników krokowych do operacji jaką che się wykonać.
W instrukcji jaką posiadam jest przykład na gwintowanie. Przykład jest akurat na jedną oś, na gwintowanie w osi "Z". Skoro przykład jest podany w instrukcji, to powinien działać zgodnie z oczekiwaniami, i nie powinien powodować uszkodzenia narzędzia.
Przykład z instrukcji sterownika:
Instrukcja programowania Fanuc pisze:O0001 ;
N1 G00 G91 X#24 Y#25 ;
N2 Z#18 ;
G04 ;
N3 #3003=3 ;
N4 #3004=7 ;
N5 G01 Z#26 F#9 ;
N6 M04 ;
N7 G01
Z---[ROUND[#18]+ROUND[#26]] ;
G04 ;
N8 #3004=0 ;
N9 #3003=0 ;
N10M03 ;
M99 ;
Opis:
Kod: Zaznacz cały
#3003 |Pojedynczy blok |Zakończenie funkcji pomocniczej
-------------------------------------------------------
0 |Uaktywnione |Oczekiwanie
1 |Nieaktywne |Oczekiwanie
2 |Uaktywnione |Bez oczekiwania
3 |Nieaktywne |Bez oczekiwania
- Po włączeniu zasilania, zmienna ma wartość 0.
- Jeśli zatrzymanie pojedynczego bloku jest nieaktywne, operacja
pojedynczego bloku nie jest wykonywana, nawet jeśli przełącznik
pojedynczego bloku jest w pozycji ON
- Jeśli nie określono oczekiwania na funkcjepomocnicze (M, S iT),
wykonanie programu przechodzi do następnego bloku przed
zakończeniem funkcji pomocniczych. Nie jest także wysyłany
sygnał zakończenia dystrybucji DEN.
Kod: Zaznacz cały
#3004 |Stop posuwu |Przesterowanie szybkości posuwu |Dokładne zatrzymanie
--------------------------------------------------------------------------
0 |Uaktywnione |Uaktywnione |Uaktywnione
1 |Nieaktywne |Uaktywnione |Uaktywnione
2 |Uaktywnione |Nieaktywne |Uaktywnione
3 |Nieaktywne |Nieaktywne |Uaktywnione
4 |Uaktywnione |Uaktywnione |Nieaktywne
5 |Nieaktywne |Uaktywnione |Nieaktywne
6 |Uaktywnione |Nieaktywne |Nieaktywne
7 |Nieaktywne |Nieaktywne |Nieaktywne
- Po włączeniu zasilania, zmienna ma wartość 0.
- Jeśli jest uaktywniony stop posuwu:
(1) Jeśli przycisk zatrzymania posuwu jest wciśnięty, maszyna zatrzymuje
się w trybie zatrzymania pojedynczego bloku. Jednak
operacja zatrzymania pojedynczego bloku nie jest wykonywana,
jeśli tryb pojedynczego bloku jest wyłączony zmienną #3003.
(2) Jeśli wciśnie się przycisk zatrzymania posuwu a następnie zwolni
go, zaświeci się lampka stopu posuwu, ale maszyna nie zatrzyma
się. Program jest nadal wykonywany i maszyna zatrzyma się w
pierwszym bloku, w którym aktywny jest stop posuwu.
- Jeśli korekcja szybkości posuwu jest nieaktywna, będzie zawsze
stosowane 100% przesterowanie, niezależnie od nastawy przełącznika
korekcji szybkości posuwu na pulpicie urządzenia.
- Jeśli kontrola dokładnego zatrzymania jest nieaktywna, nie zostanie
wykonana kontrola dokładnego zatrzymania (kontrola położenia),
nawet w blokach nie wykonujących skrawania.
Pozostaje wyliczyć współrzędne gwintowania, napisać program według przykładu, ale w dwóch osiach, przepuścić w powietrzu o sprawdzić jak zachowa się gwintownik, jeśli wizualnie wszystko będzie ok, spróbować w materiale. Gwintowania akurat nie testowałem, więc mój opis jest czysto teoretyczny, jednak jak już wcześniej wspomniałem, skoro przykład znajduje się w instrukcji, to musi działać tak jak powinien.
Zresztą w tym przypadku korzysta się z gotowych rozwiązań. Wywołując G84 wywołujemy właśnie tego typu makro, tylko po prostu tego nie widać, dzieje się to w tle bez naszej wiedzy. Maszyny dają nam duże możliwości, niestety ograniczamy te możliwości własną wyobraźnią oraz podejściem - "tego na pewno nie da się zrobić..."/"to na pewno nie zadziała...".
inż. Mateusz