Dzisiaj zajmę się kolejnymi zmiennymi. Są nimi zmienne wspólne. Czym one są i do czego służą?
Przede wszystkim, w przeciwieństwie do zmiennych lokalnych, pozostają one aktywne po wykonaniu zaprogramowanego makra.
Zmiennych wspólnych nigdy nie wywołuje się za pomocą G65 . Trzeba im przypisać wartości z poziomu wykonywanego programu makro.
Są dwa zakresy zmiennych wspólnych. Od #100 do #199 i od #500 do #999.
#100 do #199 Zmienne z tego zakresu są zerowane w tabeli po wyłączeniu maszyny.
#500 do #999 Zmienne z tego zakresu pozostają niezmienione nawet po wyłączeniu maszyny
Jak widzisz różnica jest znacząca.
Te zakresy wcale nie są niczym pewnym. Mogą się one różnić w zależności od opcji jaką Fanuc zastosował na danej maszynie. Możecie się spotkać z 4 opcjami A, B, C, D. Zależności wyglądają w ten sposób:
#100 – #149 i #500 – #549 ———Opcja A
#100 – #199 i #500 – #599 ——— Opcja B
#100 – #199 i #500 – #699 ———Opcja C
#100 – #199 i #500 – #999 ——— Opcja D
Limit wielkości zmiennej
Prawdopodobnie nigdy nie będzie Ci to potrzebne. Sporadycznie używa się tak małe lub tak duże liczby w programowaniu. Jednak w celach informacyjnych wypada to podać.
Zabezpieczenie zmiennych wspólnych
Jeśli używacie sterowania Fanuc 10/11/15 możecie zabezpieczyć zmienne wspólne przed zapisem. No nie wszystkie, tylko te od #500 do #627. Potrzebne są do tego 2 parametry systemowe:
7031 określa pierwszą zabezpieczoną zmienną
7032 określa ostatną zabezpieczoną zmienną
Przykład 1:
Jeśli parametr 7031 ustawimy na 14 a parametr 7032 na 58 wtedy…
Zmienne od #514 do #558 będą zabezpieczone przed edycją, czyli zabronione będzie kopiowanie zapisywanie i kasowanie tych zmiennych.
Przykład 2:
Jeśli parametr 7031 ustawimy na 2 a parametr 7032 na 9 wtedy…
Zmienne od #502 do #509 będą zabezpieczone przed edycją, czyli zabronione będzie kopiowanie zapisywanie i kasowanie tych zmiennych.
Ok dzisiaj było krótko. ale już szykuję następny wpis o funkcjach matematycznych używanych przy programowaniu zmiennymi.
Zapraszam do komentowania. Nie zapomnij za subskrybować mojego bloga używając zakładki Newsletter.
Żeby zrozumieć do czego służą tytułowe kody, musisz najpierw dowiedzieć się czym są zmienne lokalne oraz czym jest program Makro. Poniżej linki do wszystkich powiązanych artykułów.
Program makro to podprogram, ale nie taki zwykły jest on level wyżej . Ale najpierw wymienię cechy wspólne, a dopiero potem różnice i sam będziesz mógł je porównać.
Cechy wspólne
Zawsze są zaangażowane przynajmniej dwa programy. Program główny i podprogram/Program Makro.
W obydwóch przypadkach program główny wywołuje podprogram/Program Makro
Oba mają swoje numery i są za ich pomocą wywoływane
Po wywołaniu stają się środowiskiem podrzędnym dla środowiska nadrzędnego, którym jest program główny.
Podprogramy tak samo jak programy makro mogą być wywołane nie tylko przez program główny ale również za pomocą innego podprogramu/Programu Mackro.
W obu przypadkach, podprogram tak samo jak program Makro zawiera specjalne, powtarzające się dane takie jak np. ścieżka narzędzia lub określony wzór otworów.
Oba kończą się kodem M99
No dobra skoro jest tyle podobieństw to jaka jest różnica?
Główną różnicą jest elastyczność.
Podprogramy używają stałych danych, których nie da się zmienić.
Programując programy Makro używamy elastycznych danych. Robi się to za pomocą zmiennych. Z ich pomocą można bardzo szybko określić wartości przejazdów, ale również bardzo łatwo można je zmieniać
Kolejną różnicą jest sposób wywołania.
Podprogramy wywołuje się za pomocą funkcji M98 P…. Gdzie P to numer podprogramu.
Programy Makro wywołuje się naszą funkcją tytułową G65 P…. Gdzie P to numer programu Makro.
Wywołując podprogramy nie trzeba wpisywać dodatkowych danych
Wywołując programy Makro trzeba dopisać dodatkowe dane po numerze programu.
Dzięki naszemu programowi Makro możemy wykonać taki kanałek jak na rysunku. Mało tego, możemy wykonać taki kanałek na dowolnej średnicy, mający dowolną głębokość. Niezły bajer co nie?
Jak to działa?
Załóżmy, że zamiast głębokości 8mm kanałek będzie miał 13mm, a średnica to 160mm zamiast 60mm.
Nie trzeba pisać całego programu od nowa. Przecież kształt jest ten sam. Wystarczy zmienić 2 parametry w programie głównym.
I tym prostym sposobem w 2 sekundy zrobiliśmy program na nowy element.
Ja podaje przykłady z tokarki, ale z powodzeniem możesz to stosować na frezarce przy obróbce dowolnych kanałków stempli, czy otworów itd.
Skąd wiadomo która litera odpowiada której zmiennej? Specjalnie w tym celu wklejam tu tabelkę z przyporządkowanymi literami.
Lista 1
Argument dla Listy 1
Zmienna lokalna
A
#1
B
#2
C
#3
D
#7
E
#8
F
#9
H
#11
I
#4
J
#5
K
#6
M
#13
Q
#17
R
#18
S
#19
T
#20
U
#21
V
#22
W
#23
X
#24
Y
#25
Z
#26
Lista 2
Argument dla Listy 2
Zmienna lokalna
A
#1
B
#2
C
#3
I1
#4
J1
#5
K1
#6
I2
#7
J2
#8
K2
#9
I3
#10
J3
#11
K3
#12
I4
#13
J4
#14
K4
#15
I5
#16
J5
#17
K5
#18
I6
#19
J6
#20
K6
#21
I7
#22
J7
#23
K7
#24
I8
#25
J8
#26
K8
#27
I9
#28
J9
#29
K9
#30
I10
#31
J10
#32
K10
#33
Jak widzisz wrzuciłem dwie listy. Większość maszyn pracuje na liście nr1. Ale oczywiście nie jest to regułą.
Chyba trochę naświetliłem sprawę co nie? A może dalej masz więcej pytań niż odpowiedzi?
G65 P... L... ARGUMENTY
Gdzie
G65 – Wywołanie programu Makro
P – Numer programu Makro
L – Liczba powtórzeń programu Makro
Argumenty – Zmienne lokalne wysłane do Makra
Przykład
G65 P9000 L2 A300 B200 F50 S200
W tym przykładzie
wywołałem program nr 9000 (P9000
będzie on powtórzony 2 razy (L2)
Przypisałem wartość 300 do zmiennej lokalnej A (#1) i wysłałem do programu 9000
Przypisałem wartość 200 do zmiennej lokalnej B (#2) i wysłałem do programu 9000
Przypisałem wartość 50 do zmiennej lokalnej F (#9) i wysłałem do programu 9000
Przypisałem wartość 200 do zmiennej lokalnej S (#19) i wysłałem do programu 9000
Teraz pewnie się zastanawiasz po co jest funkcja G66 i G67.
Nie jest łatwo wyjaśnić G66 w 1 zdaniu.
Ponownie posłużę się przykładem. W ten sposób myślę, że najlepiej wchodzi do głowy.
Przykład:
Zakładam że otwory są już wykonane. Pozostało wykonanie gwintów. Nie wykonam ich za pomocą standardowej funkcji gwintowania G84. Zastosuję technikę stosowaną przy drobnych gwintach w miękkich materiałach. Czyli wolniejszy posuw na wejściu i szybszy na wyjściu. Dzięki temu unika się zacięć podczas operacji.
T01 M6 G54
G0 X10 Y10 Najazd nad 1 otwór
G43 H07 G0 Z10
G65 P8000 Z10 F425 S850 Otwór 1
G0 X20 Y20 Najazd na otwór nr 2
G65 P8000 Z10 F425 S850 Otwór 2
G0 X40 Y40 Najazd na otwór nr 3
G65 P8000 Z10 F425 S850 Otwór 3
G0 X60 Y60 Najazd na otwór na 4
G65 P8000 Z10 F425 S850 Otwór 4
Z50 Koniec gwintowania
M1
A teraz to samo tylko z wykorzystaniem G66
T01 M6 G54
G0 X10 Y10 Najazd nad 1 otwór
G43 H07 G0 Z10
G66 P8000 Z10 F425 S850 Otwór 1
G0 X20 Y20 Najazd i wykonanie otworu nr 2
G0 X40 Y40 Najazd i wykonanie otworu nr 3
G0 X60 Y60 Najazd i wykonanie otworu nr 4
G67 Odwołanie funkcji G66
G0 Z50 Koniec gwintowania
M1
Wygląda podobnie ale jest jedna zasadnicza różnica: G65 jest funkcją niemodalną . G66 Jest funkcją modalną.
Każdy blok w którym jest zapisany ruch osi po G66 będzie wywoływał program makro do momentu wpisania G67.
G67– Odwołanie funkcji G66
Dlatego G65 raczej stosuje się przy pojedynczych elementach, a G66 przy szeregu. W moim przykładzie był to ciąg gwintów.
Na dokładkę mam jeszcze jedną funkcję G66.1 (niedostępna w niektórych maszynach).
Działa ona podobnie jak G66 z tą różnicą, że makro jest wywoływane po dowolnej komendzie, w każdym następnym bloku po G66.1 do momentu odwołania za pomocą G67.
No dobra tyle na dzisiaj mam nadzieję przedstawiłem wszystko w sposób łatwy do przyswojenia. Jeśli chcesz się podzielić spostrzeżeniami, zapraszam do komentowania. No i oczywiście nie zapomnij zapisać się do newslettera.
Witam ponownie. Dalej jesteśmy w temacie programowania za pomocą zmiennych,a to jest kolejny artykuł poświęcony tej tematyce. Poniżej znajdują się linki do wszystkich.
Zastanawiam się do czego je porównać, żebyś zrozumiał ich działanie.
Kalkulator.
Pamięć kalkulatora to takie zmienne lokalne. Coś jak pamięć podręczna. Licząc na kalkulatorze wpisujemy cyfry (zmienne lokalne) wykonujemy na nich działania (programy Macro). Gdy skończymy nasze obliczenia wciskamy przycisk CE, lub C i nasze obliczenia oraz pamięć są wyzerowane. Identycznie jest ze zmiennymi lokalnymi Po ich użyciu nie są już potrzebne i zostają wyzerowane. Jest kilka sposobów na wyzerowanie zmiennych lokalnych:
Naciśnięcie przycisku Reset
Naciśnięcie przycisku awaryjnego (czerwony grzyb)
Wczytanie kodu M30
Wczytanie kodu M99
Ręczne wyzerowanie zmiennej
#1=200 Przypisanie wartości 200 dla parametru #1
------
G1 Z#1 Wykonanie ruchu przy pomocy zmiennej
------
#1=#0 Wyzerowanie zmiennej #1
Jako, że zmienna #0 ma zawsze wartość zerową, zrównanie go z naszym parametrem zeruje wartości zapisane w tabeli przy #1.
Zmienne lokalne przenoszą dane wpisane przez programistę do szkieletu Macro. Czym on jest? Zobaczysz w przykładach. Zmienne są bezpośrednio przypisane do danego Macra i nie mogą być pomiędzy nimi transferowane. W programach Macro każda zmienna lokalna ma przypisaną konkretną literę z alfabetu angielskiego.
Dwie listy argumentów
Lista 1 – Składa się tylko z 21 zmiennych , którym przypisano litery. To ta lista jest używana przez większość maszyn i zapewniam Cię, że ta ilość jest w zupełności wystarczająca.
Argument dla Listy 1
Zmienna lokalna
A
#1
B
#2
C
#3
D
#7
E
#8
F
#9
H
#11
I
#4
J
#5
K
#6
M
#13
Q
#17
R
#18
S
#19
T
#20
U
#21
V
#22
W
#23
X
#24
Y
#25
Z
#26
Tak wiem nie są odpowiednio przyporządkowane. Dlaczego tak jest? Nie mam pojęcia.
Dwie tajemnice
1 Co z pozostałymi zmiennymi? Przecież zostało jeszcze 12 miejsc którym nie została przyporządkowana żadna litera.
Nadal możesz ich zdefiniować, ale już wewnątrz podprogramu.
2 Dlaczego użyto tylko 21 liter alfabetu, a nie 26?
G L N O P To ich brakuje prawda? Odpowiedź jest oczywista.
G Jest funkcją przygotowawczą i jest już użyta w bloku przy komendzie G65
L Określa ilość powtórzeń w bloku przy komendzie G65
N Numer bloku przy komendzie G65
O Jest przeznaczone wyłącznie dla numerowania programów
P W bloku przy komendzie G65 określa numer wezwanego podprogramu
Lista 2 – Niezbyt dużo maszyn używa tej listy. Ktoś wpadł na pomysł że 21 znaków to za mało i zrobił listę z 33 znakami.
Argument dla Listy 2
Zmienna lokalna
A
#1
B
#2
C
#3
I1
#4
J1
#5
K1
#6
I2
#7
J2
#8
K2
#9
I3
#10
J3
#11
K3
#12
I4
#13
J4
#14
K4
#15
I5
#16
J5
#17
K5
#18
I6
#19
J6
#20
K6
#21
I7
#22
J7
#23
K7
#24
I8
#25
J8
#26
K8
#27
I9
#28
J9
#29
K9
#30
I10
#31
J10
#32
K10
#33
No dobra tabele już znasz. Teraz pasowałoby wyjaśnić Ci jak się nimi posługiwać.
Aby to zrozumieć musisz wiedzieć jak działają funkcjeG65, G66, G66.1, G67. Klikając w jedną z nich zostaniesz przeniesiony na osobną stronę tam szczegółowo wyjaśniam jak one działają. Dzisiaj trochę powtórzę. No nie wszystko, tylko bardziej ogólnie.
W praktyce wygląda to tak, że za pomocą funkcji G65 zmienne lokalne zostają przeniesione z programu głównego do podprogramu tam są podstawiane w odpowiednio przygotowany szkielet programu.
Przykład 1:
Zapis Macra przy użyciu Listy 1. Mam do nagwintowania 2 otwory w odstępach takich jak na rysunku, na głębokość 10mm. Chcę zastosować takie parametry:
Obroty 850obr/min
Posuw na nominalny 425mm/min (850obr/min x skok 0,5mm)
Posuw na wjeździe 80% posuwu nominalnego
Posuw na wyjeździe 120% posuwu nominalnego
Głębokość gwintu 10mm
Rysunek otworów
Głównym celem makra jest wykonanie gwintu z mniejszym posuwem i wyjście z niego z większym. Ten sposób gwintowania używa się przy gwintowaniu drobnozwojowym w miękkich materiałach, w celu uniknięcia zacięć.
To jest nasz szkielet Macro, o którym wspominałem wcześniej. Albo inaczej, to jest podprogram
Chyba w miarę jasno pokazane jest na przykładzie 2 otworów jak działa transmisja zmiennych lokalnych do makra.
W programie wpisałem Z10, F425, S850. Te wartości zostały wczytane odpowiednio pod numery #26, #9, #19, i wysłane do naszego Macra.
Pewnie chciałbyś wiedzieć jak wczytywać Listę 2.
Przykład 2:
G65 A10 C20 I30 J40 K50 I60 I70 K80
Posługując się tabelą zobaczysz, że do odpowiednich zmiennych zostały przypisane wartości.
#1=10
#3=20
#4=30
#5=40
#6=50
#7=60
#10=70
#9=80
Wygląda jak pomieszanie z poplątaniem zwłaszcza dla początkujących. Ale jeśli przyjrzymy się tabeli po krótkiej chwili widzimy zależność. Do I1 została przyporządkowana pierwsza I z bloku, do drugiej , druga itd.
Czy można używać zmiennych lokalnych w głównym programie?
Oczywiście że można. Co prawda są one przewidziane dla programów Macro, ale zasady są po to żeby ich łamać 🙂 .
Najprostrzym przykładem wykorzystania zmiennych w głównym programie jest wiercenie takich samych otworów w materiałach różnej twardości. Często się zdarza, że materiały od różnych dostawców, a nawet od tego samego tylko, że z innej serii będą się różniły twardością.
Program na podstawowy materiał będzie wyglądał tak:
Łatwe, prawda? Tak jak mówiłem, zmienne dają Ci niewyobrażalną przewagę.
Zagnieżdżanie się zmiennych lokalnych w podprogramach
O podprogramach pisałem już w tym artykule. Dlatego nie będę się rozpisywał czym one są. Tutaj wyjaśnię jak parametry zagnieżdżają się w podprogramach.
Teraz jak to po po chłopsku wyjaśnić co to jest zagnieżdżanie? Załóżmy, że masz główny program. Ten program wywołuje podprogram za pomocą funkcji G65. W podprogramie mamy kolejne wywołanie podprogramu za pomocą tej samej funkcji itd. aż do czterech poziomów w dół. Przy każdym wywołaniu konkretne zmienne zostają przypisane do konkretnych podprogramów. Rzadko się spotyka żeby programować głębiej niż 2 poziomy.
Mapa zagnieżdżania Makr
Powyższa mapa pokazuje jak zmienne najpierw zagnieżdżają się w programie głównym, a potem 4 razy w podprogramach. Za każdym razem zmienne zagnieżdżają się w kolejnych poziomach, ale jednocześnie nie są kasowane z poprzednich. Dopiero Funkcja M99 kasuje zmienne lokalne z danego podprogramu, a na końcu funkcja M30 kasuje zmienne z głównego programu. Zmienne lokalne nie mogą być przekazywane z jednego podprogramu do drugiego. Dlatego nazywają się one lokalne. Ale jeśli pojawi się taka potrzeba, Fanuc ma dla nas rozwiązanie. Są nim zmienne wspólne. Ale o nich w następnym wpisie, bo ten i tak już wystarczająco się wydłużył.
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.