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

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.:

N10 G0 X200 Z0    (Szybki najazd przed materiał G0 aktywne)

N20 G1 Z-10 F0,3  (Ruch roboczy G1 aktywne G0 wyłączone)

N30 G4 X3         (Postój w miejscu przez 3 sek. G4 aktywne)

N40 X210          (Ruch roboczy, G1 aktywne, włączone w bloku N20)

N50 G0 Z1         (Szybki odjazd, G0 aktywne)
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

5) G kody modalne

Są to G kody które pozostają aktywne w programie, dopóki nie zostanie zaprogramowany inny G kod z tej samej grupy.

Tylko jeden G kod  z danej grupy może być aktywny w danym czasie, podczas pracy.

G0, G1, G2, G3 są z tej samej grupy i nie da się wpisać G1 G2 X50 Z50, To tak jakbyśmy jechali samochodem i chcieli w jednym czasie skręcić w lewo i w prawo, nie da się i już .

G54,G55 G56, G58 … to jest grupa pracy układu współrzędnych, za ich pomocą wczytuje się punkty zerowe detalu zapisane w offsecie. Nie da się ich połączyć  ze sobą, ale możemy ich połączyć z inną grupą.

Np.: G54 G0 X50 Z1 (wczytałem punkt zerowy detalu i kazałem pojechać ruchem szybkim na fi 50, 1mm przed materiałem)

G kody będą aktywne dopóki nie zostaną odwołane przez inny G kod z danej grupy.

N10 G0 X200 Z1              (Najazd szybki G0 aktywne)

N20 G1 Z- 10  F200       (Ruch roboczy G1 aktywne, G0 wyłączone)

N30 X210 Z-15                (Narzędzie ciągle porusza się ruchem roboczym G1  z posuwem F zaprogramowanym w bloku N20)

N40 G0 Z100     Szybki odjazd w osi Z  ( G0 aktywne, G1 wyłączone)

Jak widzisz w bloku N20 G1 zostało włączone i było kontynuowane w bloku N30 podobnie jak posuw F, dopiero w bloku G1 zostało zastąpione przez G0. Było by identycznie gdybyśmy zamiast G1 użyli G2 lub G3, a to dla tego, że wszystkie te kody są z jednej grupy.

Pod spodem tabela G kodów modalnych z podziałem na grupy

G kody modalne

GRUPY G KODY
GRUPA 1 G00 G01 G02 G03 G12 G13
GRUPA 2 G17 G18 G19
GRUPA 3 G90 G91
GRUPA 4 G40 G41 G42
GRUPA 5 G94 G95
GRUPA 6 G20 G21
GRUPA 7G70G71G72
GRUPA 8 G43 G44 G49
GRUPA 9 G53 G54G55G56G57G58G59
GRUPA 10G96G97
GRUPA 11G15G16

Mam nadzieję, że przydał Ci się ten wpis. Pamiętaj  jeśli byłem choć trochę pomocny daj mi znać w komentarzu. Do zobaczenia w następnym wpisie.

Pozdrawiam PRZEMOCNC.