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:

O100
(KANALEK CZOLOWY FI60, L10)
G0 X59
Z1
G1 Z-6 F0.1
G0 Z1
X53
G1 Z-7.8
G0 Z1
X49
G1 Z-6
G0 Z1
X44
G1 Z0 F0.2
G3 X48 Z-2 R2
G1 Z-6
G2 X52 Z-8 R2
G1 X55
G0 Z1
X64
G1 Z0
G2 X60 Z-2 R2
G1 Z-6
G3 X56 Z-8 R2
G1 X54
G0 Z10
M99
GIF

To jest program na detal 1:

O0001
(PRZYKLAD ZASTOSOWANIA PODPROGRAMU DETAL 1)
T0101 G55
G50 S1200
G96 S100 M3
G0 X105 Z0
G1 X-1 F0.15
W1
G0 X96
G1 Z0 
X 100 Z-2
Z-15
G2 X127.85 Z-29.96 R15
G3 X131.09 Z-31.01 R2
G1 X157.66 Z-56.28
G3 X162.45 Z-64.52 R20
G1 Z-105
U1
G0 Z1
G28 U0 W0
M1
(NOZ DO KANALKOW CZOLOWY 4MM)
T0303 G55
G96 S40 M3
M98 P100            (wywołanie podprogramu O100)
G28 U0 W0
M30
GIF

To program na detal 2:

O0002
(PRZYKLAD ZASTOSOWANIA PODPROGRAMU DETAL 2)
T0101 G55
G50S1200
G96S100M3
G0X80 Z0
G1X-1 F0.15
W1
G0X74.26
G1Z-39.06F0.3
G3X72.8Z-40.6 R2
G1X66Z-43.41
G2X64.54Z-44.95R2
G1Z-53.09
G2X65.96Z-54.61R2
G1X72.84Z-57.53
G3 X74.26Z-59.06 R2
G1Z-60.13
G2X80.26 Z-63.13 R3
G1X88.26
G3 X94.26 Z-66.75 R3
G1Z-80
U1
G0Z1
G20U0W0
M1
(NOZ DO KANALKOW CZOLOWY 4MM)
T0303G55
G96S40M3
M98P100      (wywołanie podprogramu O100)
G28 U0 W0
M30
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

8 odpowiedzi na “12) Podprogramy”

  1. Witam. Kilka miesięcy temu zacząłem przygodę z programowaniem na ponad dwudziestoletniej frezarce haas . Pisze /rysuje głównie na komputerze bo na klawiaturze jest mi prościej. Często zdarza mi się planowanie materiału na kilka, kilkanaście mm w płaszczyźnie Z.
    Nie za bardzo wiem gdzie i pod jakimi hasłami szukać porady i proszę o zrozumienie 🙄
    Podaje przykład:
    G0 x-50. Y0.
    G0 z-1. F300.
    G1 x50.
    G0 z10.

    G0 x-50. Y0.
    G0 z-2.
    G1 x50.
    G0z10.


    G0 x-50.y0.
    G0z-10.
    G1x50.
    G0z10.

    I tak kopiuje to w edytorze 10 razy i w każdej linijkę obniżam tylko Z. Czy istnieje jakaś możliwość żeby raz napisać współrzędne gdzie ma glowiczka sobie jeździć, i zadać jej żeby po każdym przejeździe się obniżyła o ten jeden mm?

    Z góry dziękuję za wszelkie podpowiedzi i pozdrawiam Karol

    1. Rozwiązaniem idealnym dla ciebie będzie stosowanie programowania parametrycznego. W jednym komentarzu nie da się tego tak szybko wyjaśnić. W sumie podsunąłeś mi pomysł na kilka wpisów. Tymczasem musisz się posiłkować Google. Wpisz w wyszukiwarce programowanie parametryczne Hass .

  2. Ten konkretny podprogram będzie mógł wykonać kanałek tylko w określonym miejscu na detalu? W przypadku tego kanałka środek jest na X54, czyli przy pomocy tego podprogramu mogę wykonać kanałek tylko w tym miejscu? Co jeśli muszę identyczny kanałek wykonać np na X60?

      1. Wielkie dzięki Przemo za odpowiedź. Właśnie dlatego zapytałem, bo wydaje mi się, że podprogramy w porównaniu do makr są prawie bezużyteczne. Bo jakie jest prawdopodobieństwo, że w przyszłości na innym detalu będę potrzebował dokładnie takiego samego elementu w tym samym miejscu?

Skomentuj Karol Anuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.