Długo nic nie pisałem Nie będę się rozpisywał dokładnie co się działo u mnie, bo nie o tym jest ten blog.
Ten blog jest o programowaniu, a kolejnym kodem potrzebnym do napisania programu jest G81.
Jest to jeden z kilku cykli wiercenia. Zazwyczaj będziesz go używał do nawiercania otworów lub wiercenia łatwych otworów. Łatwych mam na myśli płytkie otwory lub materiał i narzędzie pozwala na szybkie wywiercenie otworu na raz.
G81 X... Y... Z... R... F... K...
G81- Wywołanie cyklu wiercenia
X- Pozycja otworu w osi X
Y- Pozycja otworu w osi Y
Z- Głębokość wiercenia
R- Pozycja wyjazdowa z otworu bezpieczna
F- Posuw
K- Liczba powtórzeń cyklu
G99 czy G98?
Fanuc pozwala nam wybrać gdzie nasze narzędzie ma wyjechać.
Na pozycję bezpieczną R. wtedy podczas pisania cyklu należy użyć kodu G99.
Na pozycję początkową ( ostatnia pozycja Z zanim zapiszesz cykl G81). Wtedy używamy G98 Jak to działa przedstawią poniższe grafiki.
Cykl niezbędny przy wykonywaniu precyzyjnych otworów za pomocą wytaczadeł. Wytaczadło po osiągnięciu dna zatrzymuje się, następnie odsuwa od powierzchni obrabianej o zadaną wartość i wyjeżdża z otworu. Ustawianie wytaczadła na konkretny wymiar opiszę innym razem.
Wzór na G76
G76 Z... R... Q... P... F... K...
G76- Wywołanie cyklu
Z– Głębokość otworu
R– Wartość wycofania ponad pozycję początkową.
Q– Odsunięcie na dnie otworu od powierzchni obrabianej
P– Czas postoju na dnie obrabianego otworu (jednostka milisekunda)
F– Posuw
K– Liczba powtórzeń
Przy parametrze Q staraj się używać małych wartości, rzędu 0.1mm. Z doświadczenia wiem, że w otworach jest zazwyczaj bardzo ciasno i każda dyszka robi różnicę. Dodatkowo należy zwrócić szczególną uwagę na pozycję ostrza przy ładowaniu narzędzia do magazynu. Zawsze przed załadunkiem włącz pozycjonowanie wrzeciona. Pamiętaj, że domyślny odjazd wytaczadła w cyklu to -X.
Przykład 1:
Do wykonania otwór wg rysunku. Oczywiście jest on już wywiercony na mniejszy wymiar.
Gwintowanie jest jedną z najczęściej używanych operacji na frezarkach. Głupio by było nie znać cyklu tak bardzo ułatwiającego życie.
G84 bo to o nim mowa, można stosować na kilka sposobów. A to jakiego Ty użyjesz zależy tylko od Ciebie. A raczej od Ciebie i twojej maszyny. Zaraz wyjaśnię Ci dlaczego.
Zacznę od najprostszej formy. To powinna czytać każda maszyna
Wzór na G84
G84 Z... P... R... F... K...
G84– Włączenie cyklu gwintowania. Gwint prawy
Z– Pozycja dna gwintu
P-Przerwa na dnie otworu ( Jednostka milisekundy)
R-Pozycja wycofania narzędzia, ponad pozycję początkową.
F-Posuw
K– Liczba powtórzeń cyklu (opcjonalnie)
Dla gwintu lewego kod G84 zastąp G74.
Minimum informacji, wystarcza aby prawidłowo zaprogramować gwintowanie.
Ale nie Ciesz się tak bardzo. Może się okazać, że twoja maszyna, mimo tego, że przeczyta cykl i będzie go wykonywać i tak będzie rwała gwint.
Powody mogą być dwa:
Twoja maszyna ma funkcję gwintowania sztywnego ale trzeba ją dodatkowo aktywować kodem M29 wpisanym w tym samym bloku co określenie obrotów.
Twoja maszyna nie ma funkcji gwintowania sztywnego. Jedynym wyjściem jest zastosowanie oprawki kompensacyjnej.
Przykład 1:
Mam do nagwintowania otwór:
Zakładam głębokość gwintu 45mm
Postój na dnie pół sekundy
Pozycja bezpieczna 1mm
Na rysunku jest otwór ⌀ 12. No to ja nagwintuje go gwintownikiem M14, bo tak się składa, że otwór pod gwint M14 to właśnie ⌀ 12.
Na pewno zauważyłeś, że wpisałem posuw 600. Dlaczego taki a nie inny?
Skok gwintu M14 wynosi 2. Wzór na posuw przy gwintowaniu wygląda następująco:
F=P*S
F-Posuw
P-Skok gwintu
S-Obroty wrzeciona
Za każdym razem gdy zmienisz obroty, jesteś zmuszony przeliczyć od nowa posuw.
A gdyby był łatwiejszy sposób? Bez konieczności przeliczania.
Tym sposobem są dwa Gkody:
G94– Posuw milimetry na minutę (domyślny dla frezarek)
G95- Posuw milimetry na obrót
Gdy przed cyklem gwintowania ustawimy posuw w milimetrach na obrót, jedyne co będziemy musieli zrobić to wpisać wartość skoku w miejsce posuwu. Oczywiście po skończonym gwintowaniu należy powrócić do posuwu wyrażonego w milimetrach na minutę za pomocą G94. Przykład 2 pokaże Ci jak będzie taki program wyglądał.
Przykład 2:
Zakładam głębokość gwintu 45mm
Gwint M14
Postój na dnie pół sekundy
Pozycja bezpieczna 1mm
Czyli taki sam gwint jak w przykładzie nr1. Z tą różnicą że teraz użyję G95.
Tak jak pisałem wcześniej, niektóre maszyny nie obsługują gwintowania na sztywno bezpośrednio. Należy się wspomóc funkcją M29. Wtedy program będzie wyglądał tak:
Na wcześniejszych przykładach pokazałem Ci jak gwintować “na raz”. Ale co jeśli pracujemy w “trudnym” materiale lub gdy dostał się nam głęboki gwint do wykonania?
Zaprezentuję Ci jak wykonać gwint w sposób pokazany powyżej .
Jeśli masz szczęście twoja maszyna obsługuje tą funkcję. Wtedy wzór na gwintowanie wygląda następująco:
G84 Z... P... Q... R... F...
G84– Włączenie cyklu gwintowania. Gwint prawy
Z– Pozycja dna gwintu
P-Przerwa na dnie otworu ( Jednostka milisekundy)
Q– Głębokość gwintowania do momentu wycofania
R-Pozycja wycofania narzędzia, ponad pozycję początkową.
F-Posuw
Doszedł jeden parametr odpowiedzialny za stopniowe gwintowanie.
Oczywiście nie żyjemy w świecie idealnym. Może się zdarzyć, że Twoja maszyna nie będzie obsługiwała gwintowania stopniowego. Co wtedy? Nic straconego. Jest pewien sposób. Przykład 5 pokaże Ci jak tego dokonać.
Jak widzisz narzędzie pracuje tak samo, zmienił się sposób zapisu.
Gwintowanie kilku otworów
Rzadko się zdarza, że do wykonania mamy tylko jeden gwint. Zazwyczaj jest ich kilka, kilkanaście, kilkadziesiąt. Nie ma konieczności wpisywania cyklu przy każdym z nich. Wystarczy to zrobić tylko przy pierwszym, a potem już tylko podawać pozycję otworów. Przykład 6 Ci to wyjaśni.
Gwintowanie lewego gwintu wygląda tak samo. Jest tylko jedna różnica Zamiast G84 należy zastosować G74.
Trochę długo, ale chciałem jak najwięcej zawrzeć w dzisiejszym wpisie. I tak pewnie o czymś zapomniałem. Gdybyś zauważył jakieś niedociągnięcia, nie zapomnij mi o tym powiedzieć.
Nie zapomnij zasubskrybować za pomocą zakładki Newsletter.
W poprzednim wpisie dotyczącym cyklu wiercenia G73, opisałem jak wykonać otwory rozmieszczone po kwadracie lub nieregularnie.
Ale załóżmy, że układ otworów wygląda w ten sposób:
Oczywiście można by zaprogramować ich tak, że dla każdego otworu z osobna wpisywałbym współrzędne. Tylko po co sobie życie utrudniać. Jest dużo łatwiejszy sposób. A mianowicie funkcja G68, czyli rotacja współrzędnych. Poniższy przykład pokaże Ci jak ona działa.
Przykład 1:
Siatka otworów wygląda w ten sposób:
Parametry dobrałem losowo. Ponieważ teraz najbardziej interesuje nas funkcja G68.
W twojej przygodzie z maszynami na pewno przyjdzie taki dzień, że będziesz musiał wiercić w miękkich materiałach, takich jak aluminium. Wtedy pojawi się problem z wiórem, które nie chce się złamać. Cykl G73 działa tak samo jak cykl G74 na tokarkach. Wyjaśniłem go tutaj. Zasada działania jest bardzo podobna.
Wzór na cykl G73
G73 Z... R... Q... F...
G73– Wywołanie cyklu
Z– Głębokość na jaką masz zamiar wiercić
Q-Głębokość wiercenia, do momentu wycofania o parametr R
R- Wartość wycofania wiertła po każdym wwierceniu się o wartość Q
F– Posuw
Po każdym wykonanym otworze wystarczy, że wpiszesz położenie następnego otworu i cykl będzie się powtarzał do momentu odwołania go funkcją G80.
Pokażę ci na kilku przykładach jak to wygląda.
Przykład 1:
Masz do wykonania taki otwór jak na rysunku.
Głębokość otworu to 50mm.
Chcę żeby po każdych 10mm wwiercenia się w materiał, narzędzie wycofało się o 1mm do tyłu.
Jakiś czas temu zrobiłem wpis dotyczący cyklu wiercenia G74. W komentarzach odezwał się Pan Krzysztof, że zapomniałem w tabeli wpisać G83. A ja po prostu nie znałem tego cyklu. Tzn znałem, ale nie na tokarkach. Całe życie uważałem, że działa on wyłącznie na frezarkach. Jak bardzo się zdziwiłem, gdy po wpisaniu cyklu na mojej Pumie wszystko działało jak należy.
Dlatego ciągle powtarzam żebyście komentowali moje wpisy. Czasami znajdujecie błędy, a czasami jak w tym przypadku pozwalacie mi nauczyć się czegoś nowego.
Wzór na cykl G83
G83 Z... R... P... Q... F...
G83– Wywołanie cyklu wiercenia z odwiórowaniem
Z– Głębokość wierconego otworu (jednostka mm)
R– Odległość na jaką ma wyjechać wiertło aby odprowadzić wióra ( jednostka mm)
P– Czas postoju narzędzia na dnie otworu przy każdym wjeździe ( jednostka milisekunda )
Q– Głębokość wiercenia do momentu odwiórowania (jednostka mikrometr μm)
F– Posuw
Przykład 1:
Potrzebny jest otwór głęboki na 40mm
Po 10mm wiertło ma się wycofać na 1mm przed czoło.
Na dnie otworu wiertło ma się zatrzymać na pół sekundy w celu odprowadzenia wióra
(PRZYKLAD CYKL G83)
(PRZEMOCNC)
(WIERCENIE)
N10 G54 T0101 (wybór bazy i wiertła)
N30 G97 S150 M3 (określenie obrotów)
N40 G0 X0 Z1 (najazd przed czoło półfabrykatu )
N50 G83 Z-40 R1 P500 Q10000 F0,15
N60 G28 U0 W0
N70 M30
Przykład 2:
Potrzebny jest otwór głęboki na 100mm
Po 50mm wiertło ma się wycofać o 5mm przed czoło.
Na dnie otworu wiertło ma się zatrzymać na sekundę w celu odprowadzenia wióra
Wszystkie poprzednie wpisy są bardzo ważnie i wiedza o nich jest niezbędna. Ale nie będą zbyt przydatne jeśli będziesz chciał ich użyć pojedynczo. Potrzebują one czegoś jeszcze. Taki final touch. Niezbędne są jakieś formy manipulacji, żeby nasze działania stały się decyzyjne.
Proces decyzyjny w Fanucu jest oparty na najstarszym, a zarazem najprostszym języku komputerowym: BASIC. Był on najpotężniejszym językiem w swoich czasach. Do dzisiaj ewoluował już tak wiele razy, że mało co przypomina swojego pradziadka. Ale zasady działania i struktury programu do tej pory istnieją.
Weźmy na przykład nasze tytułowe funkcje zapętlania (WHILE, IF, GOTO) . To cały czas jest język Basic
WHILE– Dopóki
IF– Jeśli
IF_THEN ; Jeśli_Wtedy
GOTO– Idź do
Zasadę działania pokażę Ci na przykładzie.
If I will have a money, I will buy a car. ( Jeśli będę miał pieniądze, kupie sobie samochód)
Teraz nasze zdanie podzielę na 2 części. Warunek: If I will have a money(Jeśli będę miał pieniądze) . Rozwiązanie warunku Jeśli masz pieniądze kupisz sobie samochód, natomiast jeśli nie masz tych pieniędzy, samochodu nie będzie. Tak albo tak. Warunek prosty sam w sobie, ale bardzo potężny jeśli zastosujesz go w programowaniu makro.
IF
Funkcja decyzyjna lub Funkcja warunkowa. Jak kto woli
W programie zapisuje się ją w ten sposób:
IF [warunek zapętlenia] GOTOn
Tłumacząc to po ludzku. Dopóki warunek zapisany w nawiasach będzie spełniany, TRUE program będzie przeskakiwał do bloku n. Natomiast jeśli warunek nie będzie spełniony, FALSE maszyna przejdzie do następnego bloku.
#1=10 (naddatek w osi Z)
N10 G0 X300 Z=[0+#1]
N20 G1 X100 F0.3
N30 G0 Z=[1+#1]
N40 X300
#1=[#1-2]
IF [#1 GE 0] GOTO10
N50 G28 U0 W0
N60 M30
Jest to prosty program na planowanie czoła. Ale bardzo dobrze obrazuje zasadę działania funkcji IF.
W pierwszym przejściu naddatek wynosi 10mm. Program dochodzi do odejmowania od #1 są odejmowane 2mm. W tym momencie Nasz #1 wynosi 8. Następnie dochodzimy do naszego warunku. Czytając mój poprzedni wpis odczytasz, że GE znaczy większy lub równy.
Czyli tłumacząc na nasz język warunek wygląda tak:
Jeśli #1 jest większy lub równy 0 idź do bloku N10 .
Tak więc biorąc wynik z działania widzimy, że warunek jest spełniony i program przeskakuje do bloku N10.
Po kolejnym przejściu znowu program dochodzi do działania #1= [#1-2]. Tym razem zamiast od 10 maszyna odejmuje od 8. Przechodzimy blok dalej, nasz warunek znowu jest spełniony, czyli przeskakujemy do bloku N10.
Po sześciu przejściach, gdy już maszyna splanuje na Z0, dochodzimy do działania. Wynik nie może być inny niż -2. Po przejściu do następnego bloku okazuje się, że warunek nie jest spełniony, bo -2 jest mniejsze niż 0. W tym momęcie maszyna automatycznie przeskakuje do bloku następnego czyli N50.
To tylko jeden przykład ale myślę, że zasada działania jest jasna.
Można za pomocą zmiennej określić nr bloku, do którego ma nastąpić skok.
Maszyna przeskoczy wszystkie bloki pośrednie i przejdzie do N100.
Starajcie się utrzymać porządek w programach. Numerujcie bloki po kolei. Najlepiej co 5 lub 10, żeby w razie czego można było dopisać bloki pomiędzy. Jeśli będziesz miał bałagan w programie to maszyna nie będzie wiedziała, do którego bloku ma przeskoczyć, bo na przykład ma dwa lub 3 bloki ponumerowane jako N100. To, że teraz wiesz co chcesz zrobić nie znaczy, że za tydzień będziesz wiedział co miałeś na myśli.
IF-THEN
Ta funkcja nie działa we wszystkich wersjach oprogramowania.
Fanuc10/11/15/21 działa
Fanuc0/16/18 Nie działa
Głównym celem polecenia IF-THEN jest prostota. Gdy do wyboru są tylko dwie opcje, ta funkcja jest idealnym rozwiązaniem. Zastępuje połączenie dwóch poprzednich, czyli IF i GOTO .
Po spodem dwie wersje. Obie mają takie same znaczenie.
N10 #100=30
N30 IF [#100 EQ 30] THEN #102=50
N40 IF [#100 EQ 40] THEN #102=10
N50..........
N60 M30
Prościej łatwiej szybciej. A przecież o to nam chodzi.
AND OR
Przy bardziej złożonych kalkulacjach nie wystarczy wynik zero jedynkowy. Czasami trzeba porównać jedną lub więcej wartości.
I znowu angielski się przydaje.If I will have a money and time I will take a vacation. ( Jeśli będę miał pieniądze i czas pojadę na wakacje). Dwa warunki muszą być spełnione. Co z tego jak będziesz miał pieniądze, ale czasu brak. Nie pojedziesz na wakacje.
W drugim przypadku jest trochę inaczej. If I earn money or borrow from my frend I will take a vacation. ( Jeśli zarobie pieniądze lub pożyczę je od przyjaciela, pojadę na wakacje). Wystarczy, że spełnisz jeden warunek z dwóch. Nie musisz pożyczać pieniędzy jeśli je zarobisz i na odwrót. Podsumowując
AND– oba warunki muszą się zgadzać żeby całe wyrażenie było prawdą
OR– wystarczy że jeden warunek się zgadza żeby całe wyrażenie było prawdą
Jest jeszcze funkcja XOR, ale jest ona tak rzadko stosowana że nie będą Ci zawracał nią głowy.
WHILE
Funkcja zapętlenia.
WHILE [WARUNEK] DO1
W prostym tłumaczeniu:
Dopóki będzie spełniany warunek w nawiasach wykonuj część programu zakończoną słowem END1.
Pokażę to na takim samym przykładzie co funkcja IF.
WHILE [#1 GE 0] DO1
#1=10 (naddatek w osi Z)
N10 G0 X300 Z=[0+#1]
N20 G1 X100 F0.3
N30 G0 Z=[1+#1]
N40 X300
#1=[#1-2]
END1
N50 G28 U0 W0
N60 M30
Dopóki zmienna #1 będzie większa lub równa 0, wykonuj część programu zakończoną wyrazem END1.
Numery przy słowach DO i END są ze sobą ściśle powiązane. Służą utrzymaniu porządku w programie gdybyśmy chcieli programować pętle do kilku poziomów. Sterowanie Fanuc pozwala zagnieździć pętle do trzech poziomów. Gdzie DO1 będzie odwoływać się do END1 a DO3 do END3.
Poniższe schematy pokazują zasadę działania zagnieżdżania.
Jeden i dwa poziomy pętli są najczęściej spotykane. Pierwszy jest łatwy do zrozumienia. Drugi jest już trochę trudniejszy.
Trzy poziomy są rzadziej używane i zrozumienie ich może przysporzyć trochę kłopotu. Powtórzę to jeszcze raz: Musisz utrzymać porządek w programie, bez tego nawet podwójne zagnieżdżanie będzie skutkowało alarmami.
To by było tyle na dzisiaj. Nie pozostaje nic innego tylko siadać i pisać programy Makro. Masz wszystko wyłożone na tacy. Wydaje mi się, że prościej się wyjaśnić tego nie da. Ale Gdybyś miał jakieś wątpliwości zapraszam do komentowania lub do bezpośredniego kontaktu. Nie zapomnij o subskrybowaniu. Po prawej stronie jest zakładka Newsletter. Pozdrawiam PrzemoCNC
No dobra wprowadzenie mamy już za sobą. W tym wpisie wprowadziłem Cie w świat zmiennych Macro. Opisałem wstępnie czym one są i jakie ogromne korzyści daje używanie ich w programowaniu. Dodatkowo wyjaśnione tam jest jaka jest różnica między zmiennymi, a parametrami.
Jako, temat jest naprawdę obszerny rozłożyłem go na kilka wpisów.
Zmienne systemowe
To o nich jest dzisiejszy wpis.
Zaczynają się od #1000 w górę. ( liczba może być czterocyfrowa lub pięciocyfrowa)
Zmienne systemowe nie są wyświetlane na ekranie wyświetlacza
To bardzo dużo zmiennych, a co za tym idzie bardzo dużo do zapamiętania. Ale nie martw się. Po to jest ta strona żebyś nie musiał wszystkiego pamiętać. Wystarczy, że wejdziesz na przemoncnc.pl i dzięki spisowi treści lub za pomocą wyszukiwarki łatwo znajdziesz to co w danym momencie cię interesuje .
Numery są zdefiniowanie przez Fanuca. Nie da się ich zmienić. W zależności od wersji oprogramowania lub od modelu maszyny numery mogą się zmieniać. Dlatego podstawą jest posiadanie książki obsługi maszyny. Dla każdej z osobna.
Zmienne systemowe nie mogą być pokazane bezpośrednio na wyświetlaczu (w większości maszyn ma zastosowanie ta zasada). Ale musi być jakiś sposób sprawdzenia ich obecnej wartości. Ta metoda to “transfer wartości”
W programie lub w MDI niektóre zmienne systemowe muszą być przeniesione do zmiennych lokalnych lub wspólnych. W zależności od źródła metoda może się różnie nazywać: zastępowanie zmiennych, redefinicja zmiennych, transfer wartości.
Przykład 1: (Fanuc 15M)
#105=#5221
Wartość X z bazy G54 zostanie przetransferowana ze zmiennej systemowej #5221 do zmiennej wspólnej #105
Przykład 2: (Fanuc 15M)
#106=#5222
Wartość Y z bazy G54 zostanie przetransferowana ze zmiennej systemowej #5222 do zmiennej wspólnej #106
Zmienne lokalne i wspólne mogą być wyświetlone na monitorze.
Grupy zmiennych systemowych
Jak już pisałem wcześniej w zależności o wersji oprogramowania numery zmiennych mogą się różnić, a co za tym idzie znaczenie danego parametru będzie miało inne znaczenie w innej wersji oprogramowania. Ty jako programista musisz wiedzieć jakiego oprogramowania używa dana maszyna i jakie skutki będzie miało wywołanie konkretnej zmiennej. Program który będziesz pisał będzie mógł być używany wyłącznie na danej wersji oprogramowania, a nawet tylko na konkretnej maszynie.
Przez te wszystkie lata Fanuc wprowadził sporo wersji swojego systemu. Omawiam tylko te najnowsze i najczęściej używane. FS (Fanuc Series)
FS-0
FS-10
FS-11
FS-15
FS-16
FS-18
FS-21
Wyższe wersje
Oczywiście są inne wersja takie jak Fanuc 3, który jest właściwie podobny do Fanuc-a 0. Fanuc 6 jest dziadkiem wersji 10/11. Wszystkie te sterowania mają zastosowanie we frezarkach FS-xxM np. FS-16M, jak i w tokarkach FS-xxT np. FS-15T. Działają na nim elektrodrążarki, szlifierki i kilka innych rodzajów maszyn. Ja zajmę się toczeniem i frezowaniem.
Zmienne systemowe dzielą sie na dwie grupy:
Zmienne do odczytu i do zapisania
Zmienne tylko do odczytu
Te pierwsze można zmienić za pomocą programu lub w trybie MDI. Oczywiście jest również możliwość ich odczytania , a zapisane wartości będą przetworzone przez system.
Druga grupa może być wyświetlana za pomocą zmiennych lokalnych lub wspólnych. Nie ma możliwości ich zmiany przez użytkownika. Stąd ich nazwa i to ich najczęściej będziesz używał.
Fanuc Model 0 vs inne wersje
Fanuc Fs-0 w porównaniu do innych wersji jest najuboższy. Oferuje najmniejszą liczbę zmiennych. Jest to szczególnie zauważalne przy parametrach odpowiedzialnych za offset narzędzia. Mimo to rozpocznę od tej wersji. Pod spodem będę podawał zakresy parametrów za co one są odpowiedzialne i jak ich używać
Upewnij się, że znasz znaczenie konkretnego parametru zanim zaczniesz cokolwiek programować. W razie wątpliwości sprawdź instrukcję obsługi dołączoną do maszyny.
Sygnały interfejsu (#1000-#1135)
Gdy parametr 6001 MIF, bit 0 ustawiony jest na 0.
Numer zmiennej
Funkcja
#1000 do #1015
Zmienne są używane do przesyłania szesnastobitowego sygnału z PMC do zwykłego macro jeden po drugim.
#1032
Ta zmienna jest używana do przeczytania całego szesnastobitowego sygnału na raz
#1100 do #1115
Zmienne służą do wysłania sygnału szesnastobitowego ze zwykłego macro do PMC jeden po drugim
#1132
Ta zmienna służy do wysłania całego szesnastobitowego sygnału na raz
#1133
Ta zmienna jest używana do wysłania całego 32 bitowego sygnału ze zwykłego macro do PMC. Wartości od -99999999 do +9999999 mogą być użyte dla tej zmiennej.
Gdy parametr 6001 MIF, bit 0 ustawiony jest na 1.
Numer zmiennej
Funkcja
#1000 do #1031
Zmienne są używane do przesyłania 32-bitowego sygnału z PMC do zwykłego macro jeden bit po drugim.
#1100 do #1131
Zmienne służą do zapisania 32-bitowego sygnału ze zwykłego macro do PMC jeden bit po drugim
#1032 do #1035
Te zmienne są używane do przeczytania całego 32-bitowego sygnału z PMC do Macro na raz. Można użyć cyfry od -99999999 do +99999999
#1132 do #1135
Te zmienne są używane do zapisania całego 32-bitowego sygnału z Macro do PMC na raz. Można użyć cyfry od -99999999 do +99999999
Wartości kompensacyjne narzędzi (#10000-#13400)
Zapisuj i czytaj wartości kompensacyjne narzędzi. Jak to robić pokazuje poniższa tabela.
Numer korektora
Kompensacja długości narzędzi H
Kompensacja promienia narzędzia D
Geometria
Zużycie
Geometria
Zużycie
1
#11001 lub #2201
#10001 lub #2001
#13001
#12001
:
:
:
:
:
200
#11200 lub #2400
#10200 lub #2200
#13200
#12200
:
:
:
:
:
400
#11400
#10400
#13400
#12400
Generowanie własnych alarmów(#3000 i #3006)
#3000 to bardzo fajna opcja. Pozwala Ci stworzyć do 201 swoich własnych alarmów. To, że napisałem alarm nie znaczy, że musi pojawić się jakiś problem. Może chcesz dosadnie przekazać coś operatorowi, ta zmienna jest dla Ciebie wybawieniem.
#3006 poza tym, że robi to samo co #3000 dodatkowo zatrzymuje program.
Numer zmiennej
Funkcja
#3000
Po przypisaniu wartości od 0 do 200 dla zmiennej #3000 na wyświetlaczu wyświetli się alarm (maksymalnie 26 znaków). Numer alarmu to suma 3000 i wartości przypisanej do zmiennej.
#3006
Po przypisaniu wartości od 0 do 200 dla zmiennej #3006 maszyna zatrzyma program a na wyświetlaczu wyświetli się alarm (maksymalnie 26 znaków).
Przykład 3:
#3000=4(USIADZ SOBIE)
Po wczytaniu tego bloku wyświetli się komunikat zapisany w nawiasach, o numerze 3004.
Zmienne czasowe (#3001, #3002, #3011, #3012)
Chcesz sprawdzić ile czasu maszyna pracuje? A może jaki dzisiaj jest dzień, lub która godzina. Nie ma sprawy.
Numer zmiennej
Funkcja
#3001
Po każdy włączeniu maszyny sterownik liczy czas od 0 do 2 547 483 648 w milisekundach
#3002
Maszyna liczy całkowity czas gdy była w cyklu. Jednostka do godziny. Nie zeruje się po wyłączeniu lecz gdy osiągnie wartość 9 544.371767.
#3011
Ta zmienna wyświetla datę (rok/miesiąc/dzień)
Data jest wyświetlona jako nieprzerwany numer, Np. 02 stycznia 2020r będzie wyświetlała jako 20200102
#3012
Ta zmienna wyświetla godzinę (godz/min/sek). Godzina jest wyświetlona jako nieprzerwany numer. Np. 14:35 i 15 sekund wyświetli jako 143515.
Ilość wykonanych detali (#3901, #3902)
Numer zmiennej
Funkcja
#3901
Detale wykonane do tej pory
#3902
Liczba detali do wykonania
Informacja modalna (#4001-#4130)
Co to są funkcje modalne pisałem już w tym miejscu. Dzięki zmiennym możesz się dowiedzieć, która funkcja jest aktywna w danej grupie.
Numer zmiennej
Funkcja
Nr. grupy
#4001
G00, G01, G02, G03, G33, G75, G77,G78,G79
1
#4002
G17, G18, G19
2
#4003
G90, G91
3
#4004
G22, G23
4
#4005
G94, G95
5
#4006
G20, G21
6
#4007
G40, G41, G42
7
#4008
G43, G44, G49
8
#4009
G73, G74, G76, G80-G89
9
#4010
G98, G99
10
#4011
G50, G51
11
#4012
G66, G67
12
#4013
G96, G97
13
#4014
G54-G59
14
#4015
G61-G64
15
#4016
G68, G69
16
:
:
#4022
G50.1, G51.1
20
#4102
B
#4107
D
#4109
F
#4111
H
#4113
M
#4114
Numer bloku
#4115
Numer programu
#4119
S
#4120
T
#4130
P (numer aktualnie wybranego dodatkowego punktu zerowego przedmiotu)
Pozycja narzędzia (#5001–#5067)
Dzięki tym zmiennym przeczytasz różne pozycje w zależności op potrzeb. Tych zmiennych nie da się wpisać, można ich tylko przeczytać.
Pozycja punktu końcowego bloku osi nr 1 - Pozycja punktu końcowego bloku osi nr 7
Układ współrzędnych przedmiotu
Nieuwzględnione
Załączone
#5021-#5027
Pozycja bieżąca osi nr 1 - Pozycja bieżąca osi nr 7
Układ współrzędnych maszyny
Uwzględnione
Wyłączone
#5041-#5047
Pozycja bieżąca osi nr 1 - Pozycja bieżąca osi nr 7
Układ współrzędnych przedmiotu
Uwzględnione
Wyłączone
#5061-#5067
Pozycja pominięcia osi nr 1 - Pozycja pominięcia osi nr 7
Układ współrzędnych przedmiotu
Uwzględnione
Załączone
No dobra trochę się rozpisałem. Najlepsze, że te wszystkie tabelki to tylko namiastka tego wszystkiego co znajdziesz w Podręczniku Operatora dołączonym do twojej maszyny. Ja chciałem dać ci tylko zarys a bez tych tabelek nie było by to możliwe.
Sporo tego wyszło, a to dopiero druga część. Następny wpis będzie o podprogramach.
Tych co chcą śledzić moje kolejne wpisy zapraszam do subskrybowania za pomocą Newslettera.
Programowanie parametryczne, zmienne systemowe Fanuc, programowanie Macro B Fanuc.
Brzmi tajemniczo?
Tak naprawdę takie nie jest. To są tylko modne słowa oznaczające kilka prostych zagadnień. Opanowanie ich wcale nie jest trudne. Mało tego. Gdy już będziesz wiedział co do czego, posiądziesz ogromną moc i kontrolę. Porównywalną, a nawet większą niż pisanie programów za pomocą cykli obróbczych. Ba, sam będziesz tworzył swoje cykle. Nie będziesz już skazany na algorytm jakiegoś tam gościa z Fanuca.
To ty będziesz tworzył algorytmy. Dzięki temu będziesz wstanie::
wykonywać skomplikowane obliczenia w środku programu
zapętlać program w dowolny sposób
przeskakiwać w przód i w tył programu
stawiać warunki
zmieniać parametry systemowe
liczyć sztuki
generować alarmy
Pod poniższymi linkami znajdziesz wszystkie artykuły poświęcone tej tematyce
W trakcie kilku kolejnych wpisów będę się starał wyjaśnić jak tego wszystkiego dokonać. Pod wieloma względami programowanie parametryczne jest najwyższym poziomem opanowania dla każdego programisty.
Czy na mojej maszynie jest zainstalowana opcja programowania Macro (parametryczne)?
Zdalnie nie jestem Ci w stanie na to pytanie odpowiedzieć. Ale mam sposób żebyś sam mógł to sprawdzić. Wejdź w tryb MDI i wpisz :
#105=1
Wciśnij przycisk START CYCLE. Jeśli nie wyskoczył Ci alarm typu: “błąd składni” (syntax error), lub “adres nie znaleziony” (address not found), na twojej maszynie jest możliwość programowania Macro. W przypadku wystąpienia błędu jedynym rozwiązaniem jest zwrócenie się do serwisu. Oni bez problemu to odblokują. Oczywiście nie za darmo.
Fanuc Macro B
Jest najczęstszym ” językiem” programowania makr. Nie wszystkie maszyny obsługują programowanie Macro B, niektóre obsługują niepełną wersję, inne oparte są na innym “języku”. Nie jestem w stanie opisać każdego z osobna. Ale zasady jakimi się rządzą są w zasadzie podobne.
Programowanie parametryczne vs programowanie G-kodami
Różnica między tymi dwoma sposobami programowanie jest ogromna. Taka jak algebry nad arytmetyką.
Dam Ci przykład :
Załóżmy, że masz 10 chlebów po 2.50zł za sztukę.
Używając arytmetyki łatwo policzymy 10*2,5=25zł
W algebrze H to ilość chlebów, a C to cena za 1 bochenek. Tworząc wzór H*C jesteśmy w stanie policzyć cenę za dowolną liczbę chlebów kosztujących każdą cenę.
Wracając do programowania. Dzięki parametrom a raczej dzięki zmiennym zyskujemy niesamowitą przewagę. Wyobraź sobie, że masz do wykonania 20 rożnych detali i w każdym jest ten sam kanałek. Jedyna różnica to średnica. Nie będziesz już musiał pisać programu na każdy z osobna. Wystarczy do wartości X dopisać zmienną, załóżmy #1 kórą będziesz mógł zmieniać w zależności od wykonywanego detalu.
To tylko jeden przykład. Zastosowań są tysiące o ile nie miliony.
Czy miałeś kiedyś taki przypadek, że brakowało ci czegoś w standardowym cyklu? Załóżmy, że posuw na wejściu chciałbyś mniejszy lub chciałbyś żeby obroty po 2 przejściach się zwiększyły. Od teraz Ty sam będziesz tworzył cykle niestandardowe i prawie nic nie będzie Cię ograniczać.
Omówienie całego zagadnienia zamie mi kilka wpisów. Mało komu chce się czytać długie teksty, dlatego podzielę to wszystko na kilka, mam nadzieję łatwych do przyswojenia rozdziałów.
Dzisiaj zajmuję się podstawami, wyjaśniam co do czego. Następnie opiszę jak się posługiwać naszą nową zabawką.
Parametry i zmienne makr to dwie różne rzeczy.
Firmy nie produkują starowinków dedykowanych do danych maszyn. Tworzą takie same sterowniki ale z możliwością adaptacji do danej maszyny i potrzeb. Wewnątrz kontrolera znajduje się zbór ustawień, które nazywa się parametrami. To one pozwalają dostosować maszynę do sterownika. Np. :
Prędkości wrzeciona
Szybkie przejazdy
Punkty bazowe
I wiele wiele innych
Nigdy nie zmieniaj parametrów systemowych chyba, że na 100% wiesz co robisz.
Zmiany mogą być nieodwracalne. Dodatkowo upewnij się, że masz kopię zapasową na wypadek awarii baterii. Zazwyczaj jest dostępna procedura zgrania ustawień na dysk zapasowy.
Zmienne są… No właśnie czym one są. Jakby to najprościej wyjaśnić? To tak jakby używać zmiennych z algebry w G-kodzie. Można im przypisać dowolną wartość. A kiedy są wywoływane w programie wczytują ostatnią przypisaną im wartość.
Składnia zmiennej to # i numer zmiennej. W zależności od maszyny maksymalna liczba zmiennych może się różnić.
Dla przykładu, chcąc przypisać wartość 10 dla zmiennej #1, zapiszesz
#1=10
Jest jedna zmienna której nie można przypisać żadnej innej wartości, poza tą która jest z góry ustalona. Jest nią #0, jej wartość zawsze będzie wynosić 0.
Zmienne mieszczą się w różnych zakresach. Poniższa tabela pokazuje co system Fanuc myśli o zmiennych znajdujących się w danym zakresie.
Numer zmiennych
Typ zmiennych
Funkcja
#0
Null
Nie można przypisać żadnej wartości dla #0. Jej wartość zawsze będzie wynosić 0.
#1-#33
Zmienne lokalne
Zmienne lokalne służą do przekazywania argumentów do makr oraz do tymczasowego przechowywania danych w pamięci tymczasowej. Maszyna nie zapamięta danych po jej wyłączeniu. Konieczne będzie ponowne ich wczytanie. Zagnieżdżają się w podprogramach. Upewnij się że rozumiesz jak to działa.
#100-#199
#500-#999
Zmienne wspólne
Zmienne wspólne jak sama nazwa wskazuje, są dzielone przez wszystkie twoje programy makro. Po wyłączeniu maszyny parametry #100-#199 są zerowane. #500-#999 zapamiętują wprowadzone dane do następnego uruchomienia maszyny.
#1000- wzwyż
Zmienne systemowe
Zmienne systemowe służą do informowania o tym co robi kontroler. Np. obecna pozycja. Nie przypisuj im żadnej wartości, chyba że na 100% wiesz jak one działają.
Weź pod uwagę, że przedziały mogą się różnić w zależności od zainstalowanego oprogramowania. Zwłaszcza innego niż Fanuc
Nasuwa się pytanie:
Których zmiennych używać?
Zmienne Systemowe i Lokalne mają specjalne zachowania. Wstrzymaj się dopóki nie zrozumiesz tych zachowań. Zmienne systemowe odnoszą się do konkretnych rzeczy w sterowaniu i nie możesz ich używać jako ogólnego przeznaczenia. Natomiast zmienne lokalne wykazują zachowanie “zagnieżdżania” makr. Zanim zaczniesz je używać poczytaj o podprogramach makro. Jeśli zrozumiesz ich zachowanie będziesz mógł ich używać.
Zmienne wspólne, to od nich zacznij programowanie na zmiennych.
Do których adresów mogę dołączać zmienne?
Prawie do wszystkich. Łatwiej będzie wymienić te do których nie można.
Nie można podstawiać zmiennych do numeru programu
Nie można numerować bloków za pomocą zmiennych
Pomijanie bloku /1 jest dozwolone ale /#1 już nie
WHILE..DO..END adresy: DO1 jest dozwolone, DO#1 nie
Jak widzisz nie ma tego za dużo.
No dobra wystarczy na dzisiaj. W następnym rozdziale opiszę zmienne systemowe. Jeśli chcesz być na bieżąco, zapraszam do subskrybowania za pomocą Newslettera zlokalizowanego po prawej stronie. W razie pytań proszę o komentarze.
Do działania bloga wymagane są pliki cookies, o których przeczytasz w polityce prywatności. Czy zgadzasz się na ich wykorzystywanie?.
Privacy settings
Ustawienia Prywatności
My oraz wybrane przez nas firmy mogą (nie muszą) korzystać z informacji dla wymienionych celów.Możesz dopasować swój wybór lub przejść dalej do korzystania ze strony, jeśli zgadzasz się na te cele.
NOTE: Te ustawienia mają zastosowanie jedynie w przeglądarce i na urządzeniu, którego teraz używasz.
Personalizacja
Personalizacja
Gromadzenie i przetwarzanie informacji na temat sposobu korzystania przez użytkownika z usługi, aby z czasem dokonać personalizacji reklam lub treści dla użytkownika w innych kontekstach, na przykład w innych witrynach albo aplikacjach. Zazwyczaj treści w witrynie lub aplikacji są wykorzystywane do wyciągania wniosków na temat zainteresowań użytkownika, które zapewniają dane na potrzeby doboru reklam lub treści w przyszłości.
To będzie zawierać następujące elementy:
Łączenie danych ze źródeł offline, które zostały wyjściowo zgromadzone w kontekstach innych niż dane zgromadzone online na potrzeby realizacji jednego albo większej liczby celów.
Przetwarzanie danych w celu powiązania ze sobą wielu urządzeń należących do tego samego użytkownika na potrzeby realizacji jednego albo większej liczby celów.
Gromadzenie i obsługa dokładnych danych dotyczących lokalizacji geograficznej na potrzeby realizacji jednego albo większej liczby celów.
Przechowywanie i dostęp do informacji
Przechowywanie informacji albo dostęp do informacji przechowywanych na urządzeniu użytkownika, w tym dostęp do identyfikatorów reklamowych, innych identyfikatorów urządzenia, wykorzystanie plików cookie oraz podobnych technologii.
To będzie zawierać następujące elementy:
Łączenie danych ze źródeł offline, które zostały wyjściowo zgromadzone w kontekstach innych niż dane zgromadzone online na potrzeby realizacji jednego albo większej liczby celów.
Przetwarzanie danych w celu powiązania ze sobą wielu urządzeń należących do tego samego użytkownika na potrzeby realizacji jednego albo większej liczby celów.
Gromadzenie i obsługa dokładnych danych dotyczących lokalizacji geograficznej na potrzeby realizacji jednego albo większej liczby celów.