pętla programowa

Dyskusje na temat systemu Sinumerik
Awatar użytkownika

janale
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 6
Posty: 101
Rejestracja: 25 lis 2004, 13:22
Lokalizacja: Bialystok

#11

Post napisał: janale » 17 wrz 2012, 11:53

Witam,
Język techniczny jest bardzo zwięzły, być może powinienem to bardziej opisać. W każdym razie proszę zastosować wariant 1 z postu ze ślimaka, czyli prosty gwint z formatem bloku: G33 Z=l_skrawania K=skok SF=kat_wejscia (0-359st 59'). Do tego niepotrzebny jest ShopTurn. Sinumerik 810D jest bardzo dobrym sterowaniem, używanie parametrów R jest proste, np: N010 G1 X=R1 Y=R2 F=R3, gdzie w R1, R2, R3 będą wpisane odpowiednie wartości. W przypadku kolegi, R1 będzie zawierał średnicę, R2 skok. Całe obliczenia będą w programie, do napisania którego zachęcam kolegę. Całość tzw. "wiedzy teoretycznej" kolega już ma. Gwint wewnętrzny różni się od zewnętrznego kierunkiem przyrostu X i nie ma to wielkiego znaczenia.
Pozdrawiam


Technologia CNC od 1979r.
Programowanie technologiczne
SINUMERIK Operate

Awatar użytkownika

DRAGOO
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 3
Posty: 168
Rejestracja: 17 wrz 2012, 08:59
Lokalizacja: POLSKA

#12

Post napisał: DRAGOO » 17 wrz 2012, 13:42

postaram coś zdziałać .....ale szczerze to nie ogarniam tego hmmm, bo zależy mi na tym żeby narzędzie przeskakiwało po zboczach gwintu z zagłębianiem powiedzmy 0.05mm i program był stosunkowo krótki, bo robota jednostkowa i zakres duży począwszy od średnic do skoku a tym sposobem rozumiem że muszę pisać linijkami im lepsza powierzchnia tym więcej bloków czy się mylę ? dodam załącznik następnego gwintu który muszę wykonać
skok 14mm D 125Obrazek[img]

Awatar użytkownika

janale
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 6
Posty: 101
Rejestracja: 25 lis 2004, 13:22
Lokalizacja: Bialystok

#13

Post napisał: janale » 17 wrz 2012, 14:33

Witam,
Na uwarunkowania fizyczne nie ma rady. Tak czy inaczej naddatek do skrawania należy usunąć. Można to zrobić narzędziem typu przecinak, narzędziem kształtowym lub zestawem narzędzi, od prostego i zgrubnego wybierania po kształtujące docięcie też nożem kształtowym. Trzeba przyjąć kryterium ekonomiczne.
DRAGOO pisze:z zagłębianiem powiedzmy 0.05mm i program był stosunkowo krótki, bo robota jednostkowa
Długością programu bym się nie sugerował, bo akurat nie jest ona krytyczna w tym przypadku, tym bardziej, że to jest produkcja jednostkowa. Będzie potrzebny chyba model odpowiednio zredukowany, aby sprawdzić zachowanie napisanego programu.
DRAGOO pisze:a tym sposobem rozumiem że muszę pisać linijkami im lepsza powierzchnia tym więcej bloków czy się mylę ?
Nie myli się kolega. Położenie sąsiednie noża na obwiedni zarysu będzie wyznaczała chropowatość powierzchni. Najważniejszą sprawą jest wyliczenie punktów granicznych, które mają styk z zarysem gwintu, i jeżeli przyjmiemy te 0.05mm (może być za mało do normalnego skrawania, może nastąpić gniecenie materiału przy tak małym naddatku, zależy to od stanu ostrza, jego geometrii), to linii będzie 7.7/0.05=154, oczywiście program będzie korzystał z pętli czytającej tablice. Tu przyjąłbym wariant 2 etapów, przejścia zgrubnego z powiedzmy 0.5mm naddatku w samej masie obszaru i zmniejszenie naddatku przy przejściu po samej obwiedni zarysu. Teraz pozostaje wyliczenie kątów wejścia w zależności od położenia noża w linijce dla danego X. Dla jednej linijki będzie to kąt od 0 do max 360 (bo od początku skoku do jego końca) przy średnicy minimalnej i jedno przejście (w punkcie stycznym do okręgu dna zarysu i średnicy maksymalnej gwintu). Samo wyliczenie punktów można zrobić poprzez pomocniczy kontur o zarysie podanym przez kolegę i programowe rejestrowanie położenia współrzędnych X i Z w położeniach granicznych. Po zrobieniu tego pozostaje tylko podzielenie linijki na ilość przejść w zakresie dla X i Zmin i Zmax danej linijki. Sprawa jest dość złożona, proponuję kontakt z kolegą, który wykonywał ślimak, z pewnością będzie miał więcej praktycznych uwag.
Pozdrawiam
Technologia CNC od 1979r.
Programowanie technologiczne
SINUMERIK Operate


Anderk
Sympatyk forum poziom 1 (min. 40)
Sympatyk forum poziom 1 (min. 40)
Posty w temacie: 4
Posty: 46
Rejestracja: 02 lis 2012, 15:38
Lokalizacja: Stalowa Wola

#14

Post napisał: Anderk » 02 mar 2013, 12:59

witam probelm z manual turn.
R1=20
R2=0.4
WHILE R1>0.5
G0 Z5
PLAN1:
IF R1>5 GOTOF PLAN2
G0 X=600-R1
G3 X=590-R1 Z0 CR=5 F=R2
G2 X=570-R1 Z-10 CR=10
PLAN2:
G0 Z1
G41
G1 X=570-R1 F=R2
G1 Z-60 ANG=180 RND=25
G1 X=535-R1 Z-2154 RND=25
G1Z-230
G0 Z=IC(-1)
R1=R1-3
KPLAN1
ENDWHILE
R1=0
R2=O.1
REPEAT PLAN1 KPLAN1


PYTANIE BRZMI CZEMU !!! CZEMU NIE CHCE MI POWRÓRZYC TYLKO JEDZIE W MATERIAŁ JAK BY MIAŁA BYC KOLIZJA

[ Dodano: 2013-03-02, 13:01 ]
jak powtorzyc te atykiey bez repeat? jest jakaś inna funkcja?


artur235
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 4
Posty: 271
Rejestracja: 09 lut 2010, 19:40
Lokalizacja: SE

#15

Post napisał: artur235 » 03 mar 2013, 12:34

Anderk, Zdecyduj się albo WHILE albo REPEAT

IF–ELSE–ENDIF
LOOP–ENDLOOP
FOR–ENDFOR
WHILE–ENDWHILE
REPEAT–UNTIL

Nie powinieneś odwoływać się do wnętrza jednej pętli z drugiej.
Gdy używasz obliczeń z parametrami R dobrze jest użyć STOPRE aby sterowanie zaczekało na aktualne wartości parametrów (standardowo program jest wczytywany ileś bloków do przodu a wtedy wartości R mogą być nieaktualne).

N80 T36 ;FREZ 20MM
N90 M6
N100 G0 B0
N110 G17 G55 X=-XPOS Y=YSRO+YPOS Z=WYS+80 S4300 M3
N320 R10=GLP
N330 REPEAT
N340 G0 X=-XPOS Y=YSRO+YPOS
N350 Z=(WYS+2)-R10
N360 R10=R10+DEP
N370 IF ABS(R10)>ABS(GLR) ;jesli za glemboko
N380 R10=GLR ; ostateczna glembokosc
N390 ENDIF
N400 G1 Z=WYS-R10 F1200
N410 X0. Y=YSRO+YPOS3 F2570
N420 X=-(PROM/2)
N430 G2 I=AC(0) J=AC(YSRO+YPOS3) AR=180
N440 G1 X=PROM
N450 X=IC(2.) Y=IC(-2.)
N460 X=PROM Y=YSRO+YPOS3
N470 G3 I=AC(0) J=AC(YSRO+YPOS3) AR=180
N480 G1 X=IC(-2.) Y=IC(-2.)
N490 G0 Z=(WYS+2)-R10
N500 STOPRE
N510 UNTIL ABS(R10)>=ABS(GLR)
N520 G0 G40 Z320. M9


Anderk
Sympatyk forum poziom 1 (min. 40)
Sympatyk forum poziom 1 (min. 40)
Posty w temacie: 4
Posty: 46
Rejestracja: 02 lis 2012, 15:38
Lokalizacja: Stalowa Wola

#16

Post napisał: Anderk » 07 mar 2013, 14:47

mógłbyś to pokazac na moim przykładzie tj. toczenie konturu wewnętrznego.
Repeat zrobiłem dlatego że po While zostaje 0.5 mm na obróbkę wykończającą gdzie R1=0
a R2=0.1 mniejszy posuw .
To mówisz że jak to zrobic bez repeat oczywiście nie pisząc calego konturu od nowa tylko poprez parmetry????????


artur235
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 4
Posty: 271
Rejestracja: 09 lut 2010, 19:40
Lokalizacja: SE

#17

Post napisał: artur235 » 07 mar 2013, 17:21

Podałem Ci przykład, w bloki N400-N490 wstawiasz swój kod i praktycznie gotowe. N370-N390 specjalnie dopisałem komentarz, to może być twoje przejście wykańczające (sprawdzasz czy R10 jest mniejsze lub równe twojemu 0.5).

Twojego przykładu nie "rozumiem". Zaczynasz gez G41, w połowie załączasz G41 a nigdzie nie ma G40 (przy kolejnym obiegu pętli wszystko będzie z G41).
G1Z-230
G0 Z=IC(-1)

Z-230 i jeszcze -1 na G0 ?


Nie możesz tego zrobić przy użyciu cykli toczenia ?

[ Dodano: 2013-03-07, 20:20 ]
Pewnie jeszcze będzie trzeba coś poprawić:

R1=20
R2=0.4
R3=3 ;KROK

REPEAT
G0 Z5.

PLAN1:
IF R1<5
G0 X=600-R1
G3 X=590-R1 Z0 CR=5 F=R2
G2 X=570-R1 Z-10 CR=10
G0 Z2.
ENDIF


PLAN2:
G1 G41 X=570-R1 Z1. F=R2
G1 Z-60 ANG=180 RND=25
G1 X=535-R1 Z-2154 RND=25
G1 Z-230
G0 G40 X=IC(-2.) Z5.


R1=R1-R3
STOPRE

IF R1<=R3 ;OSTATNIE PRZEJSCIE ?
IF (R1==(0.5-R3)) ; JESLI BYL NADDATEK
R1=0 ; PRZEJSCIE WYK.
ELSE
IF R1>0 ;JESLI MNIEJSZE OD ZERA TO BEDZIE KONEC PETLI
R1=0.5 ; ZOSTAW NADDATEK
ENDIF
ENDIF

UNTIL R1>=0


Anderk
Sympatyk forum poziom 1 (min. 40)
Sympatyk forum poziom 1 (min. 40)
Posty w temacie: 4
Posty: 46
Rejestracja: 02 lis 2012, 15:38
Lokalizacja: Stalowa Wola

#18

Post napisał: Anderk » 08 mar 2013, 19:08

tam powinien byc x=ic(-1) sorki moj błąd.
a G 40 zapomnialem dopisac oczywiscie w programie jest ale tu na forum zapomniałem wklepac.
Sprawdze jutro w pracy jak bedzie to wyglądało na maszynie
odezwe się jak mi poszlo


artur235
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 4
Posty: 271
Rejestracja: 09 lut 2010, 19:40
Lokalizacja: SE

#19

Post napisał: artur235 » 08 mar 2013, 20:02

Anderk pisze:Sprawdze jutro w pracy jak bedzie to wyglądało na maszynie
Uważaj na te warunki IF, jak coś sknociłem to program może się zapętlić. To samo może nastąpić przy "nieodpowiedniej" wartości początkowej R1.
Sprawdzaj w trakcie wykonywania programu aktualne wartości parametrów R i czy IF robi to co powinno.


Anderk
Sympatyk forum poziom 1 (min. 40)
Sympatyk forum poziom 1 (min. 40)
Posty w temacie: 4
Posty: 46
Rejestracja: 02 lis 2012, 15:38
Lokalizacja: Stalowa Wola

#20

Post napisał: Anderk » 09 mar 2013, 13:44

Siemka:)
Wyskoczył mi błąd brak celu szukania.
Myślę że chodzi o Repeat.-
Robi do R1=R1-3 I TU WYSKAKUJE BŁĄD.
nie powinno być żadnych etykiet przy repeat?
może po R1=R1-3???

NIE MAM POMYSŁU

[ Dodano: 2013-03-09, 13:52 ]
Masz może jakieś fajne opisy tych funkcji jakie podałeś
IF&#8211;ELSE&#8211;ENDIF
LOOP&#8211;ENDLOOP
FOR&#8211;ENDFOR
WHILE&#8211;ENDWHILE
REPEAT&#8211;UNTIL
STOPRE

co oznaczają i w ogóle tak fajnie wytłumaczone na przykładach .?

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Siemens Sinumerik CNC”