Czy istnieje skok do popdrogramu w G-Code

Dyskusje dotyczące programowania G-Code

Autor tematu
jaceksz
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 3
Posty: 8
Rejestracja: 26 paź 2006, 22:03
Lokalizacja: Poznań

Czy istnieje skok do popdrogramu w G-Code

#1

Post napisał: jaceksz » 27 lut 2007, 22:00

Witam
Nadal walczę z moją wiertarką, maechanicznie juz wszystko ok i teraz przyszedł czas na sterowanie w g-code.
Ponieważ oś Z jest sterowana pneumatycznie więc symuluję ruch osi Z i właczam odpowiednie zawory.
Przykładowy kod wygląda tak

G0 X0.0000 Y1.0000
F1.000G1 Z1.0000 M07 - opuszczenie wiertarki
F1.000G1 Z1.0100 M09
F1.000G1 Z1.0000 M08 - uniesienie wiertarki
F1.000G1 Z1.0100 M09

G0 X0.0000 Y2.0000
F1.000G1 Z1.0000 M07
F1.000G1 Z1.0100 M09
F1.000G1 Z1.0000 M08
F1.000G1 Z1.0100 M09


G0 X0.0000 Y3.0000
F1.000G1 Z1.0000 M07
F1.000G1 Z1.0100 M09
F1.000G1 Z1.0000 M08
F1.000G1 Z1.0100 M09

G0 X0.0000 Y4.0000
F1.000G1 Z1.0000 M07
F1.000G1 Z1.0100 M09
F1.000G1 Z1.0000 M08
F1.000G1 Z1.0100 M09

G0 X0.0000 Y5.0000
F1.000G1 Z1.0000 M07
F1.000G1 Z1.0100 M09
F1.000G1 Z1.0000 M08
F1.000G1 Z1.0100 M09

itd itd
A teraz pytanie
Czy musze powielać ten cykl czy też istnieje w G-Code komenda umozliwiajaca skok do "podprogramu" zawierającego komendy odpowiedzialne za ruch osi Z.
Proszę o wskazówki i pozdrawiam



Tagi:


dasza77
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 1
Posty: 1116
Rejestracja: 14 maja 2006, 17:34
Lokalizacja: Ełk

#2

Post napisał: dasza77 » 27 lut 2007, 22:58

Spróbuj tak:

w programie :
.
.
G0 X0.0 Y1.0
M98 P100
G0 X0.0 Y2.0
M98 P100
.
.
.
M30

a teraz podprogram:
O100
i tu wpisz powtarzające się G-cody
.
.
M99 (na zakończenie)

Ja tak stosuję w Mach2 , w innych składnia może się trochę różnic.

pozdr.

Awatar użytkownika

Inf-el
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 1
Posty: 573
Rejestracja: 22 cze 2004, 18:41
Lokalizacja: Szczecin
Kontakt:

#3

Post napisał: Inf-el » 27 lut 2007, 23:10

W turboCNC jest tak:

N0001 #1=1 ; przypisanie wartosci do zmiennej
N0005 M98 O1000 ; skok do podprogramu w linii N1000
N0010 #1=2
N0015 M98 O1000
N0020 #1=3
N0025 M98 O1000
N0030 #1=4
N0035 M98 O1000
N0100 M02 ;Koniec programu

N1000 G0 X0.0000 Y#1 ; Podprogram
N1005 F1.000G1 Z1.0000 M07
N1010 F1.000G1 Z1.0100 M09
N1015 F1.000G1 Z1.0000 M08
N1020 F1.000G1 Z1.0100 M09
N1025 M99 ;Powrot z podprogramu

---------------------------------------------
Lub gdy jest więcej punktów
i np. przyrastają o określoną wartość
to lepiej będzie tak:

N0001 #1=0 ; przypisanie wartosci do zmiennej
N0004 #1=[#1+1] ; zwieksza wartosc zmiennej o 1
N0005 M98 O1000 ; skok do podprogramu w linii N1000
IF #1 LT 101 M97 O0004 ; jesli zmienna #1 jest mniejsza od 101 to skok do linii N0004
N0100 M02 ; Koniec programu

N1000 G0 X0.0000 Y#1 ; Podprogram
N1005 F1.000G1 Z1.0000 M07
N1010 F1.000G1 Z1.0100 M09
N1015 F1.000G1 Z1.0000 M08
N1020 F1.000G1 Z1.0100 M09
N1025 M99 ;Powrót z podprogramu

Awatar użytkownika

ALZ
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 3433
Rejestracja: 06 sie 2004, 01:42
Lokalizacja: Śląsk
Kontakt:

#4

Post napisał: ALZ » 01 mar 2007, 10:22

Po co sobie życie utrudniasz? W Twoim poprzednim poście zaproponowałem Ci rozwiązanie z typowym plikiem excellona który ma odpowiednie kody do sterowania osią Z, wystarczy tylko wykorzystać sygnał kierunku. Jest to sprawdzony sposób na sterowanie pneumatyczne głowicy.


Autor tematu
jaceksz
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 3
Posty: 8
Rejestracja: 26 paź 2006, 22:03
Lokalizacja: Poznań

#5

Post napisał: jaceksz » 02 mar 2007, 21:01

Tylko problem jest w tym że nie wiem co to jest
"typowym pliki excellona który ma odpowiednie kody do sterowania osią Z"
Gdybyś mógł napisać mi dokładniej i jaśniej co to to jest to będę wdzięczny.
Jak widzisz jestem "zielony" w temacie cnc , dopiero się w to wgryzam :)

Awatar użytkownika

ALZ
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 3433
Rejestracja: 06 sie 2004, 01:42
Lokalizacja: Śląsk
Kontakt:

#6

Post napisał: ALZ » 03 mar 2007, 00:22

Pliki owiertów excellona są w formacie txt. Aby sobie nie utrudniać życia np. za pomocą programu DeskCnc wczytaj plik owiertów txt i po obróbce zapisz go i masz plik z rozszerzeniem .dnc .Następnie zmień w nazwie rozszerzenia na .cnc i gotowe.
Plik po obróbce wygląda jak poniżej. Wytłuszczonym drukiem zaznaczyłem Ci linię która odpowiada za pracę osi Z.
N0001 T1 M06
N0002 G81 X0.0052 Y0.0072 Z-0.0010 R0.1000 F0.10
N0003 X0.0124 Y0.0229
N0004 X0.0196 Y0.0232
N0005 X0.0163 Y0.0317
N0006 X0.0314 Y0.0231
N0007 X0.0385


Autor tematu
jaceksz
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 3
Posty: 8
Rejestracja: 26 paź 2006, 22:03
Lokalizacja: Poznań

#7

Post napisał: jaceksz » 04 mar 2007, 13:56

Dzięki ALZ za pierwszym razem nie wczytałem się dostatecznie w twój post :)
Faktycznie wykorzystanie sygnały kierunku osi Z jest najlepszym rozwiazaniem i upraszcza mocno programowanie. Maszynka działa świetnie !!!
Ostatnie pytanie.
Podczas podnoszenia osi Z wiertarka jest jeszcze opuszczona a posów X lub Y już zaczyna działać. Zniwelowałem to dodajac komendę G04P0.00 przed każdy z kroków.

G0 G49 G40 G17 G80 G50 G90
M6 T0
G21 (mm)
M03 S0
M08
G90
G00 G43 H0 Z0.1000
G81 G04P0.01 X0.0000 Y-30.0000 Z-0.100 R0.0000 F5
G04P0.00 X1.0345
G04P0.00 X2.0690
G04P0.00 X3.1034
G04P0.00 X4.1379
G04P0.00 X5.1724

Czy to jest jedyny sposób ??
Czy mozna jakoś inaczej to zapisać .
Zastanawia mnie również dlaczego komenda G04P0.00 z parametrem 0.00 również wprowadza opóznienie ??

Jeszcze razdziękuje i pozdrawiam.

Awatar użytkownika

ALZ
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 3433
Rejestracja: 06 sie 2004, 01:42
Lokalizacja: Śląsk
Kontakt:

#8

Post napisał: ALZ » 04 mar 2007, 14:26

Coś masz pokiełbaszone. ruch osi XiY nie rozpocznie się dopuki nie skończy się cykl pracy osi Z. W Twoim przypadku opużnienia mogą wynikać ze złej pracy układu pneumatycznego-opisz z czego składa się układ pneumatyczny.
Możesz wprowadzić opuźnienie działania przez wprowadzenie parametru Z
Zwróć uwagę na parametr osi Z -skok osi w tym przypadku jest 0.1mm czyli to ułamek sekundy więc nie ma cudów głowica nie ma prawa wrócić. Zwiększ skok do kilku mm(doświadczalnie). Możesz także zmieniać parametry samej osi Z w programie sterującym zmieniając ilość kroków na mm posuwu. Poza tym możesz zmienić parametr szybkości posuwu-F. Jak widać sporo możliwości a dopisywanie dodatkowych komend do paranoja bo trudno się w to bawić jak będziesz miał np. 1000 otworów

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „G-CODE - programowanie”