12) Podprogramy

Cały świat idzie do przodu. Aby za nim nadążyć programiści i ustawiacze muszą ciągle szukać nowych technik i sposobów obróbki. Jedną z nich jest stosowanie podprogramów.

Co to są podprogramy? Jak i  po co się ich używa? Czy rzeczywiście ułatwiają one pracę programisty?
Na te pytania będę starał się dzisiaj odpowiedzieć.

Co to jest podprogram?

Jak ci to powiedzieć? Podprogram to prostu program :). Nie potrzebujesz znać jakichś tajnych G lub M kodów do napisania podprogramu. Pisze się je prawie tak samo jak programy. Na początku trzeba  nadać numer, do ruchów używa się tych samych słów co w programach. Znajdują się one w tym samym folderze .
No dobra to na czym polega różnica?
Program to ciąg blogów, po wykonaniu których z maszyny zdejmujemy gotowy detal. Natomiast podprogram służy do wykonania tylko kawałka detalu. Może to być kanałek, otwór, profil, cokolwiek. Jeśli dany kontur powtarza się w programie lub mamy kilka detali pozornie całkiem innych ale użyty jest w nich identyczny kanałek, nie ma potrzeby za każdym razem pisać go od nowa.
W podprogramach nie podaje się narzędzia ani bazy. Wszystko to jest określone w programie. Podprogram to czyste ścieżki narzędzia.
Program kończy się M30, a podprogram M99.

Jak wywołać podprogram 

Aby wywołać podprogram, w bloku docelowym wpisujemy M98 P1. Przy czym P1 to numer podprogramu. Jeśli program nazywa się o0001 to wpiszemy P1 jeśli O0123 to wpiszemy P123. W tym momencie zostaniemy przeniesieni do podprogramu. Co więcej możemy wywołać podprogram do podprogramu, a nawet podprogram do podprogramu, który już jest wywołany w podprogramie.  Aż do czwartego stopnia. Taka incepcja w świecie CNC :).
Podprogram będzie wykonywany do momentu, aż w bloku pojawi się funkcja M99. Natychmiast zostaniemy przeniesieni do głównego programu, który będzie kontynuowany.

W Sinumeriku i Pronumie podprogramy spełniają jeszcze jedną bardzo ważną funkcję.  Podaje się w nich ścieżki narzędzia potrzebne w cyklach.

W podprogramach bardzo często wykorzystuje się programowanie parametryczne. Co to jest i jak się pisze parametrami? To temat na osobny wpis, ale w skrócie za pomocą parametrów określamy współrzędne.

Przykład wywołania podprogramu

Detal 1 wygląda tak:

Detal 2 wygląda tak:

Jak widzisz dwa różne detale, mają jedną cechę wspólną: taki sam kanałek czołowy.

Tak wygląda podprogram na ten kanałek:

GIF

To jest program na detal 1:

GIF

To program na detal 2:

GIF

Czas jest najcenniejszą rzeczą jaką mamy. Nie marnujmy go bez potrzeby, zwłaszcza, że w dzisiejszym świecie jest mnóstwo udogodnień które mogą go oszczędzić. W świecie CNC takimi udogodnieniami są cykle i podprogramy.

Miało być krótko, trochę się przedłużyło. Mam nadzieję że przyda ci się ten wpis.

Dziękuję Ci, że poświęciłeś swój cenny czas na przeczytanie tego artykułu.
Pozdrawiam Przemocnc

11) Po co są cykle obróbcze

Cykle obróbcze. Czym są i po co ich używać?

Fanuc, Haas, Sinumeric, Pronum itd…. Wszystkie to oprogramowania mają wspólną cechę, można na nich pisać programy cyklami. Tylko właściwie dlaczego  i co to są te całe cykle?

Ja osobiście jestem wielkim zwolennikiem pisania programów cyklami. Jeśli już zrozumiesz zasady pisania w ten sposób, to będziesz chciał ich używać gdzie tylko się da.

Pracowałem kiedyś z ustawiaczem CNC. Podczas przeglądania programów zauważyłem, że w żadnym programie używanym przez niego nie było cykli. Zapytałem go, dlaczego? On mi odpowiedział, że kiedyś tam pracował na nich ale, że to wcale nie ułatwia, a wręcz utrudnia. Jak się później okazało, nie chodziło o to, że były nie potrzebne. On ich nie rozumiał. Dopiero jak mu wszystko wytłumaczyłem, zaczął pomału składać programy z ich użyciem. Teraz używa ich bez przerwy.

Plusy używania Cykli obróbczych

Cykle sprawiają, że życie programisty staje się łatwiejsze:

  • Ułatwiają zarządzanie programem (łatwiej  odnaleźć interesujące nas bloki gdy program jest krótki)
  • Programy zajmujące po kilkaset bloków są skracane do zaledwie kilku
  • Skracają czas pisania programu (wystarczy kontur końcowy, po podstawieniu go do cyklu maszyna sama zapętla ścieżki w określony sposób)
  • Zwiększają produktywność (podczas pisania nie jesteśmy w stanie określić jakimi parametrami obrabiać detal- posuw, głębokość skrawania, odjazdy, zwłaszcza jeśli podobny detal nie był nigdy obrabiany. Pisząc z ręki trzeba poświęcić mnóstwo czasu żeby wklepać program, a potem jeśli coś nam nie będzie pasować trzeba będzie wszystko kasować lub całkowicie zmieniać. W przypadku cykli wystarczy zmienić jeden parametr i tyle.
  • Ułatwiają optymalizację (podobnie jak wyżej, wystarczy zmienić parę parametrów i program idzie znacznie szybciej)
  • Wprowadzają ład i porządek w strukturze programu
  • Programy zajmują mniej miejsca w pamięci maszyny( Przykładowy program może ważyć np. 30Kb, po zastosowaniu cykli ten sam program zmniejszy się powiedzmy do 3Kb lub mniej)
  • Łatwa edycja programu
  • Części lepiej obrobione na gotowo, zwiększenie żywotności narzędzia (Większość maszyn w cyklu gwintowania używa techniki zmniejszania głębokości skrawania w każdym następnym przejściu. Przy dużym skoku ma to ogromne znaczenie)

Cykle bardzo ułatwiają życie programistom i tak naprawdę ciężko znaleźć minusy, ale dla chcącego nic trudnego:

Minusy używania Cykli obróbczych

  • Programowanie jest uzależnione od algorytmów zapisanych w maszynie
  • Cykle nawet w tym samym oprogramowaniu różnią się od siebie. Wystarczy że wersja będzie inna. Oczywiście nie jest to zasadą
  • Nie wszyscy programiści lub ustawiacze rozumieją zapis cyklami
  • Problemy z przeprowadzeniem symulacji na komputerze. Rzadko które oprogramowanie to potrafi.
  • Specyficzne zachowanie narzędzi w cyklach (W Fanucu, cykl G71, G72, pod koniec toczenia konturu jeśli nie zapisze się odpowiednio odjazdu narzędzia, występuje ryzyko kolizji)

Trochę na siłę te minusy, ale jakieś tam są. Aczkolwiek są one nieporównywalne do plusów.

Teraz pokażę Ci dwa programy na ten sam detal, jeden napisany z ręki, a drugi za pomocą cyklu.

 

Tak wyglądają bloki programu.

GIF

Tak wygląda ten sam detal, ścieżki wyglądają też identycznie, tylko że napisany jest cyklem G71.

Jest różnica prawda :).

Mam nadzieję, że przyda ci się ten wpis. Zasady pisania cyklami, wyjaśnienie poszczególnych parametrów i przykładowe programy dla poszczególnych oprogramowań podam w następnych wpisach. G71, G70

Jeśli pomogłem Ci chociaż trochę, daj  znać. Dobrze mieć świadomość, że nie piszę tego sam dla siebie.

Pozdrawiam PRZEMOCNC

10) Blok programu

Co to jest blok programu?

Jeśli czytałeś moje poprzednie wpisy, wspominałem tam o czymś takim jak bloki. Ale właściwie, co to w ogóle jest ten BLOK ?

Każdy program, nieważne w jakim oprogramowaniu, nieważne jaka nakładka jest zainstalowana na maszynie, a nawet nieważne , czy to jest tokarka, frezarka lub szlifierka. Jeśli jest sterowana CNC, program będzie składał się z bloków.

Bloki programu CNC

Każdy program zawiera ciąg bloków połączonych ze sobą,  jeden pod drugim tworząc  instrukcję dla maszyny/narzędzi.  Maszyna wykonuje operacje blokami, tzn. nie wczytuje słów pojedynczo, tylko całą linię (blok ) na raz.  A co to są te słowa?

Z czego składa się blok programu?

Tak wygląda przykładowy blok programu

Jak widać blok składa się ze słów oddzielonych od siebie spacjami.
Słowa składają się z liter i cyfr. Cyfry przy różnych literach mają inne znaczenie.
Na powyższym przykładzie widać że słowa składają się z liter N, G, X, Z, F, M, oraz odpowiednio przypisanych cyfr 10,1,60,1,200,8 .
Te słowa są to rozkazy, komendy itp..
Zawierają bardzo cenne informacje dla maszyny i jak dałeś radę zauważyć jest ich mnóstwo. Niektóre są standardowe i powtarzają się na każdej maszynie CNC, ale jest też sporo słów zmieniających się w zależności  od maszyny lub oprogramowania.

Więc jeśli chce się już pracować z CNC wypadało by znać, przynajmniej te najczęściej używane komendy.
Wyjaśnię teraz co oznaczają poszczególne komendy na przykładzie powyższego bloku.
Tak więc zacznę o N

N10- jest to numer bloku.

Z nimi jest tak jak z numerami kartek w książkach, niby nie są potrzebne, ale bardzo ułatwiają życie . Wprowadzają porządek w programie. Moglibyśmy ich nie używać, maszyna i tak by czytała program, moglibyśmy nawet numerować nie po kolei, maszyna i tak by sobie poradziła. Ale po co sobie utrudniać życie, jeśli jest coś co może je nam ułatwić J.
Będą one potrzebne zwłaszcza jeśli byśmy chcieli pisać program cyklami.
Można numerować bloki co jeden, ale najwygodniejszym rozwiązaniem jest co 5 lub 10.
Często jest tak że jak pisze program i w trakcie przepuszczania okazuje się że trzeba coś dopisać między blokami. Jeśli numery są co jeden, trzeba przenumerować cały program,  a jeśli co 5 wystarczy dopisać N o jeden lub dwa większy niż poprzedni.

Następny jest G kod
Nie da się napisać programu bez G kodów . Można powiedzieć że są one najważniejszą częścią bloku.
G kody wyjaśniałem we wcześniejszych wpisach. W sumie o każdym z nich można by napisać osobny wpis i chyba to zrobię później. Opiszę każdy kod z osobna, podając przy tym sposób zapisu i rodzaj zastosowania.
G kod użyty w tym przypadku to G1, czyli interpolacja liniowa, to znaczy że mówisz maszynie, że ma jechać po linii prostej na określone pozycje z zadanym posuwem.

Pozycje określamy poprzez zapisanie X60 Z1.

Układ współrzędnych w tokarce wygląda tak:

Tak więc nóż zatrzyma się w tym miejscu:

W frezarce osie wyglądają tak :

Zresztą osie w frezarce najlepiej obrazuje poniższy obrazek.  Nieważne czy wrzeciono jest pionowo czy poziomo. Kciuk jest osią Z. Jeśli frezarka jest pionowa kciuk do góry.

W przypadku poziomej układ wygląda tak

Tak więc frez zatrzyma się tu:

Wartości X, Z, Y podawane są w mm lub calach, w zależności od tego jak zdefiniujemy.

F200 to posuw z jakim chcesz żeby narzędzie się poruszało. Na tokarce posuw podajemy w mm/Obr, na frezarkach mm/ min.

M8 czyli załączenie chłodziwa. Po co są M kody opisywałem we wcześniejszym wpisie.  W skrócie opisują one zachowanie maszyny podczas obróbki lub przygotowanie maszyny do niej.  Wszystkie M kody obsługiwane przez maszynę powinny się znajdować w instrukcjach dołączonych do maszyny.

Oczywiście nie wyczerpałem wszystkich możliwych poleceń, które można zapisać w bloku, będę je podawał po kolei w następnych wpisach. Aczkolwiek myślę że dość wyraźnie wyjaśniłem o co  chodzi z tymi blokami.

Mam nadzieję, że przyda Ci się ten wpis. Jeśli tak nie zapomnij napisać w komentarzu. Jeśli gdzieś znalazłeś błąd, proszę daj mi znać, żeby mniej doświadczeni od ciebie nie musieli uczyć się głupot.

 

9) M kody tabela

Witam

Pod spodem przedstawiam tabelę M kodów. Jeżeli chcesz całą listę działających M kodów na twojej maszynie, musisz sprawdzić w książce dołączonej do maszyny. Te tutaj są podstawowe.

M kody dla tokarek

M kodOpis
M00Program stop
M01Program stop opcjonalnie
M02Koniec programu
M03Włączenie obrotów wrzeciona zgodnie z ruchem wskazówek CW
M04Włączenie obrotów wrzeciona przeciwnie do ruchu wskazówek CCW
M05Obroty stop
M08Chłodziwo włącz
M09Chłodziwo wyłącz
M29Tryb sztywnego gwintowania
M30Koniec programu (reset)
M40Neutralne przełożenie w skrzyni biegów
M41Niski bieg w skrzyni biegów
M42Wysoki bieg w skrzyni biegow
M68Hydrauliczne szczęki zamknięcie
M69Hydrauliczne szczęki otwarcie
M78Konik do przodu
M79Konik do tyłu
M94Anulowanie odbicia lustrzanego
M95Lustrzane odbicie w osi x
M98Wezwanie podprogramu
M99Koniec podprogramu

M kody dla frezarek

M kodOpis
M00Program stop
M01Program stop opcjonalnie
M02Koniec programu
M03Włączenie obrotów wrzeciona zgodnie z ruchem wskazówek CW
M04Włączenie obrotów wrzeciona przeciwnie do ruchu wskazówek CCW
M05Obroty stop
M06Zmiana narzędzia
M07Chłodzenie włączone – Mgiełka/Chłodzenie przez wrzeciono
M08Chłodziwo włącz
M09Chłodziwo wyłącz
M19Pozycjonowanie wrzeciona
M28Powrót do początku
M29Sztywne gwintowanie
M30Koniec programu (Reset)
M41Wybór niskiego przełożenia w skrzyni biegów
M42Wybór wysokiego biegu w skrzyni biegów
M94Anuluj lustrzane odbicie
M95Lustrzane odbicie w osi X
M96Lustrzane odbicie w osi Y
M98Wezwanie podprogramu
M99Koniec podprogramu

Do zobaczenia następnym razem.

Pozdrawiam PrzemoCNC

8) Tabela G kody

Pod spodem przedstawiam najczęściej używane G  kody.

Są one podstawowe i nie powinny się różnić w większości maszyn ze sterowaniem Fanuc. W następnych wpisach będę starał się załączyć podobne tabele, z tą różnicą, że dla każdego oprogramowania z osobna, sam Fanuc ma 3 wersje kodów.
Te podane tutaj są dla Fanuc OT. Systematycznie będę dodawał przykłady ich zastosowania. Po dodaniu wstawię linki dla każdej funkcji z osobna.

G kody dla tokarek

G kodOpis
G00Szybki przesów
G01Interpolacja liniowa
G02Interpolacja kołowa zgodna z ruchem wskazówek zegara CW
G03Interpolacja kołowa przeciwna do ruchu wskazówek zegara CCW
G04Zwłoka czasowa
G09Dokładne zatrzymanie
G10Programowalne wprowadzanie danych
G20Wprowadzanie w calach
G21Wprowadzanie w milimetrach
G22Zabroniona strefa aktywna
G23Zabroniona strefa wyłączona
G27Kontrola powrotu do punktu referencyjnego
G28Powrót na punkt referencyjny maszyny
G32Nacinanie gwintu o stałym skoku
G40Anulowanie kompensacji promienia narzędzia
G41Włączenie kompensacji promienia narzędzia lewostronny
G42Włączenie kompensacji promienia narzędzia prawostronny
G70Cykl wykańczający
G71Cykl toczenia po średnicy
G72Cykl planowania
G73Cykl powtarzania wzoru
G74Cykl wiercenia
G75Cykl kanałkowania
G76Cykl gwintowania
G92Ustawienie współrzędnych, ograniczenie obrotów wrzeciona
G94Posuw mm na minutę
G95Posuw mm na obrót
G96Stała prędkość skrawania
G97Odwołanie stałej prędkości skrawania

G kody dla frezarek

G kodOpis
G00Szybki przejazd
G01Ruch roboczy
G02Interpolacja kołowa zgodna z ruchem wskazówek zegara CWI
G03 Interpolacja kołowa przeciwna ruchowi wskazówek zegara CCW
G04Zwłoka czasowa
G05.1 Q1. Precyzyjna kontrola konturu
G07.133) G07.1 Interpolacja cylindryczna
G09Dokładne zatrzymanie niemodalny
G10Wprowadzanie danych programowalnych
G11Odwołanie funkcji G10
G17Płaszczyzna główna X/Y i oś podłużna Z
G18Płaszczyzna główna Z/X oś podłużna Y
G19 Płaszczyzna główna Y/Z oś podłużna X
G20Wprowadzanie danych w calach
G21Wprowadzanie danych w milimetrach
G28Powrót do punktów referencyjnych maszyny
G30Powrót do drugiego trzeciego i czwartego punktu referencyjnego
G33Frezowanie gwintu, skok stały
G34Frezowanie gwintu, skok zmienny
G40Anulowanie kompensacji promienia narzędzia
G41Włączenie kompensacji promienia narzędzia lewostronny
G42Włączenie kompensacji promienia narzędzia prawostronny
G43Włączenie kompensacji długości narzędzia +
G44Włączenie kompensacji długości narzędzia -
G49Anulowanie kompensacji długości narzędzia
G52Lokalny układ współrzędnych
G53Baza maszynowa (punkt zerowy maszyny)
G54Przesunięcie punktu zerowego maszyny 1
G55Przesunięcie punktu zerowego maszyny 2
G56Przesunięcie punktu zerowego maszyny 3
G57Przesunięcie punktu zerowego maszyny 4
G58Przesunięcie punktu zerowego maszyny 5
G59Przesunięcie punktu zerowego maszyny 6
G54.1 od P1 do P48Przesunięcie punktu zerowego maszyny
G68Rotacja współrzędnych
G69Anulowanie rotacji współrzędnych
G73Wiercenie z łamaniem wióra
G74Gwintowanie lewego gwintu z uchwytem kompensującym
G76Wytaczanie wykańczające
G80Wykasowanie cyklu
G81Wiercenie, nawiercanie
G82Wiercenie z przerwą czasową na dnie
G83Wiercenie z odwiórowaniem
G84Gwintowanie prawego gwintu z uchwytem kompensującym
G85Rozwiercanie
G86Wytaczanie z zatrzymaniem wrzeciona przy wycofaniu
G87Wytaczanie w ruchu powrotnym
G88Wytaczanie z ręcznym wycofaniem narzędzia z otworu
G89Wytaczanie z przerwą czasową na dnie
G90Programowanie absolutne
G91Programowanie przyrostowe
G92Ustawienie współrzędnych, ograniczenie obrotów wrzeciona
G98Wycofanie narzędzia na płaszczyznę początkową
G99Wycofanie narzędzia na płaszczyznę retrakową

To by było dzisiaj na tyle. Zapraszam ponownie.

Pozdrawiam Przemocnc

 

7) Przedstawiam wam M kody

Zapewne przeczytałeś już moje poprzednie wpisy o G kodach. Odpowiadają one za tory ruchu, prędkości z jakimi narzędzie ma się poruszać, jakie obroty mają być załączone.

Innym bardzo ważnymi kodami, bez których maszyna nie będzie w stanie wykonać prawidłowo poleceń są M kody. Można powiedzieć, że kody te kontrolują  sprzęt komputerowy odpowiedzialny za prawidłowe działanie maszyny i programu.

M kody odpowiedzialne za prawidłowe działanie progamu

Dzięki M kodom możemy zatrzymać program :

warunkowo (M1-program  zatrzyma się, jeśli na pulpicie będzie wciśnięty przycisk  „Option Stop”), bezwarunkowo ( M0- program zatrzyma się w miejscu umieszczenia tego M kodu, aż operator nie naciśnie  Cycle Start)

Można określić koniec programu (M2), a nawet zakończyć program i przewinąć go do początku (M30- najczęściej używany M kod na koniec programu)

M kody odpowiedzialne za prawidłowe działanie maszyny

Jak już wyżej pisałem M kody odpowiedzialne są za prawidłowe działanie programu i maszyny, a w sumie to większość M kodów jest odpowiedzialna za działanie maszyny.

Zacznę od obrotów. Pewnie pomyślisz jak to od obrotów, przecież pisał że obroty włącza się G kodem „G97” i podaje wartość obrotów „S300”. W sumie tak, ale musimy powiedzieć maszynie w którą stronę wrzeciono ma się kręcić. Za to odpowiadają dwie funkcje M.

M3-włącza obroty zgodne z ruchem wskazówek zegara

M4- włącza obroty przeciwne do ruchu wskazówek zegara

Tak więc prawidłowy blok do włączenia obrotów wygląda tak

G97 S300 M3 –zostały załączone obroty 300obr/min zgodne z ruchem wskazówek zegara

M5- wyłącza całkowicie obroty

Większość tokarek posiada przekładnię, dzięki której możemy określić przełożenie, podobnie jak w samochodzie.

M40- bieg jałowy (Neutralny)

M41- Najniższy bieg

M42,M43, M44- Wyższe biegi

Ile maszyna ma biegów i jakie obroty ona osiągnie na danym biegu, jest zapisane w książce obsługi maszyny.

Napisałem że maszyna ma biegi jak samochód, ale nie do końca działają one w ten sam sposób.
Samochód rozpędzamy od najniższego do najwyższego biegu.W maszynie na początku programu musimy wiedzieć na jakim zakresie obrotów chcemy pracować. Zakresy obrotów powinny być podane w książce obsługi dołączonej do maszyny.

M kodami włącza sięchłodziwo (M8) , lub go wyłączyć (M9).

Pod spodem przedstawiam tabelę z najczęściej używanymi M kodami na tokarkach.

M kodOpis
M00Program stop
M01Program stop opcjonalnie
M02Koniec programu
M03Włączenie obrotów wrzeciona zgodnie z ruchem wskazówek CW
M04Włączenie obrotów wrzeciona przeciwnie do ruchu wskazówek CCW
M05Obroty stop
M08Chłodziwo włącz
M09Chłodziwo wyłącz
M29Tryb sztywnego gwintowania
M30Koniec programu (reset)
M40Neutralne przełożenie w skrzyni biegów
M41Niski bieg w skrzyni biegów
M42Wysoki bieg w skrzyni biegow
M68Hydrauliczne szczęki zamknięcie
M69Hydrauliczne szczęki otwarcie
M78Konik do przodu
M79Konik do tyłu
M94Anulowanie odbicia lustrzanego
M95Lustrzane odbicie w osi x
M98Wezwanie podprogramu
M99Koniec podprogramu

6) G kody niemodalne

G kody niemodalne

W poprzednim wpisie mówiłem o G kodach modalnych, czyli takich, które raz wpisane będą aktywne dopóki nie zostaną odwołane prze inny G kod z danej grupy. Jest jeszcze grupa G kodów. Są to kody nie modalne,  po angielsku One-Shot G-Codes , co można przetłumaczyć jako G kody jednostrzałowe:).

Po wpisaniu G kodu z tej grupy, będzie on aktywny tyko w tym bloku, w którym został zapisany. W następnym bloku będzie aktywny G kod z bloku poprzedzającego wpisanie G kodu niemoralnego.

Najlepszym przykładem One-Shot G-Code jest G4.

G4 to kod, który mówi maszynie, że narzędzie ma stanąć w miejscu przy włączonych obrotach przez określony czas

Np.:

GIF

Jak widzisz G4 było aktywne tylko w bloku N30, w N40 G1 było kontynuowane z bloku N20.

Pod spodem przedstawiam tabelę G kodów z podziałem na grupy:

G kody niemodalne

GRUPYG KODY   
GRUPA 0G04G09G10G28
GRUPA 1G31G32

Dziękuję za twój czas. Mam nadzieję, że przyda Ci się ten wpis.

Pozdrawiam PrzemoCNC