MxM pisze:Zastanawiam sie jak powinien byc napisany poprawnie program z ich uzyciem, moze jest niezbedna jakas komenda poprzedajaca? Lub jakis inny sposob?
Witam napisałem mały cykl który powinien wspomóc używanie automatycznego podajnika pręta. Wrzucę go teraz z tym że nie testowałem go jeszcze i tu prośba dla osób które mają działającego SinuTraina (mój wygasł) o sprawdzenie programu ewentualnie ja przetestuję go w poniedziałek popołudniu. Cykl należy skopiować do katalogu "CYKLE UŻYTKOWNIKA" (W TRYBIE CNC ISO - JEŚLI KTOŚ NIE WIE O CO CHODZI ALBO MA PROBLEM TO PROSZĘ O KONTAKT).
Ewentualne błędy w cyklu postaram się usunąć.
Cykl powinien działać zarówno wywołany w programie ISO jak i ShopTurn
Na tę chwile nie mam już za dużo czasu na robienie szczegółowego opisu wywołania ale myślę że jeśli ktoś wie jak wywołać cykl bez używania ShopTurna i nakładek GUI to powinien sobie dać radę.
Opis:
PODAJNIK(
1. NUMER PODAJNIKA (NUMER NARZĘDZIA),
2. POZYCJA DOJAZDU SZYBKIEGO X,
3. POZYCJA DOJAZDU SZYBKIEGO Z,
4. POZYCJA ZAHACZENIA Z,
5. POZYCJA WYSUNIĘCIA Z,
6. INKREMENTALNE POZYCJA ODCZEPIANIA + KIERUNEK NP "X30",
7. LICZBA POWTÓRZEŃ,
8. BLOK POWROTU (CZYLI BLOK STARTOWY NP N5))
Kod: Zaznacz cały
PODAJNIK(1,0,10,-50,-10,"X30",50,10)
| | | | | | | |
1. NUMER NARZĘDZIA-----------+ | | | | | | |
2. POZYCJA BEZPIECZNA (G0) X,--+ | | | | | |
3. POZYCJA BEZPIECZNA (G0) Z,-----+ | | | | |
4. POZYCJA ZAHACZENIA (G1) Z,--------+ | | | |
5. POZYCJA WYSUNIĘCIA (G1) Z,------------+ | | |
6. ODCZEPIANIE PODAJNIKA NP "X30" LUB "Z30",--+ | |
7. LICZBA POWTÓRZEŃ,------------------------------+ |
8. BLOK STARTOWY PROGRAMU NP (N5),-------------------+
Wywołanie:
N5 program obrobki
N10 program obrobki
N15 program obrobki
N20 program obrobki
N30 PODAJNIK(1,0,10,-50,-10,"X30",50,5)
M30
CYKL "PODAJNIK.SPF":
Kod: Zaznacz cały
;%_N_PODAJNIK_SPF
;$PATH=/_N_CUS_DIR
N10 PROC PODAJNIK(INT _USRT,REAL RAPID_X,REAL RAPID_Z,REAL _PZ0,REAL _PZ1,STRING[8] ODJAZD,INT SZTUKI,INT N_POWROTU) DISPLOF SBLOF
;----------------------------------------------------
;CYKL AUTOMATYCZNEGO PODAJNIKA PRĘTA
;DATA: 01.06.2014
;AUTOR : ARTUR PASZEK / http://www.cnc.info.pl/djronin,u,32129.htm
;CYKL NAPISANY NA POTRZEBY UŻYTKOWNIKÓW FORUM www.cnc.info.pl
;----------------------------------------------------
; HISTORIA:
; 02.06.2014 Artur: Zamiana miejsc dwóch ostatnich argumentów, jeśli podamy ostatni argument (num bloku)
; program będzie wracał do tego numeru jeśli go opuścimy będzie wracał do "N5" (ShopTurn)
; 01.06.2014 Artur: Pierwsze wydanie.
DEF REAL POSUW[3], PAUZA[2]
DEF INT NUMER_R, S_N_POWROTU
;USTAWIENIA STALE:
;
N20 POSUW[0] = 1000 ;MM/MIN - POSUW CHWYTANIA
N30 POSUW[1] = 1000 ;MM/MIN - POSUW WYSUWANIA
N40 POSUW[2] = 1000 ;MM/MIN - POSUW ODCZEPIANIA
N50 PAUZA[0] = 0.8 ;CZAS OTWARCIA [SEKUNDA]
N60 PAUZA[1] = 1 ;CZAS ZAMKNIECIA [SEKUNDA]
N70 NUMER_R = 1 ;NUMER PARAMETRU R DO DANYCH LICZNIKA
N80 S_N_POWROTU = 5 ;DLA SHOPTURN = 5
;----------------------------------------------------
N90 GOTOF _LST
_PODS:
SBLON
N100 f_home ;NAJAZD NA PTK WYMIANY NARZEDZIA
N110 T=_USRT ;M6 ;WYBRANIE NARZĘDZIA W RAZIE POTRZEBY DODAĆ M6
N120 MSG("POZOSTALO "<<R[NUMER_R]<<" PRZEJSC PROGRAMU") ;
N130 G90 G0 G94 ;WYMIAR ABS, RAPID FEED, MM/MIN
N140 M9 M5 ;CHLODZIWO WYL, OBROTY STOP
N150 G0 X=RAPID_X Z=RAPID_Z ;POZYCJA BEZPIECZNA XZ
N160 G1 Z=_PZ0 F=POSUW[0] ;NAJAZD NA POZYCJE CHWYTANIA
N170 M67 ;<<DOPRSUJ KOD M DLA SWOJEJ MASZYNY ;OTWARCIE ZACISKU WRZECIONA, EWENTUALNIE M27, M10
N180 G4 F=PAUZA[0] ;PRZERWA CZASOWA OTWARCIA
N190 G1 Z=_PZ1 F=POSUW[1] ;WYSUNIECIE PRETA
N200 STOPRE ;ZATRZYMANIE PRZEBIEGU WYPRZEDZAJĄCEGO
N210 M68 ;<<DOPRSUJ KOD M DLA SWOJEJ MASZYNY ;ZAMKNIECIE ZACISKU WRZECIONA, EWENTUALNIE M28, M11
N220 G4 F=PAUZA[1] ;PRZERWA CZASOWA ZAMKNIĘCIA
N230 EXECSTRING("G91G1"<<ODJAZD<<"F=POSUW[2]") ;REALIZACJA ODCZEPIANIA
N240 G90 G00 ;
N250 f_home ;NAJAZD NA PTK WYMIANY NARZEDZIA
N260 MSG() ;
SBLOF
_PODE:
;SPRAWDZA CZY NASZ LICZNIK GLOBALNY (PAR. "R") NIE WYKRACZA POZA DOPUSZCZALNY ZAKRES
_LST:
N400 IF (R[NUMER_R] < 0) OR (R[NUMER_R] > SZTUKI) ;CZY NASZ LICZNIK "R" JEST UJEMNY, LUB WIĘKSZY OD PODANEJ LICZBY SZT.
N410 R[NUMER_R]=SZTUKI ;JESLI PRAWDA INICJUJE LICZNIK NA PODANĄ LICZBĘ DO OBRÓBKI
N420 ENDIF
;CZY PODALISMY X LUB Z
N600 IF (SUBSTR(ODJAZD,0,1) == "X") OR (SUBSTR(ODJAZD,0,1) == "Z") GOTOF _STROK
N610 _ERR1:MSG("POPRAW DANE ODJAZDU!!")
N620 G4F2
N630 MSG()
N640 G4F1
N650 GOTOB _ERR1
_STROK:
;SPRAWDZA CZY PODALIŚMY NUMER BLOKU POWROTU
N800 IF N_POWROTU GOTOF _NNT
N810 N_POWROTU = S_N_POWROTU
_NNT:
N900 IF R[NUMER_R] <> 0
N910 R[NUMER_R] = R[NUMER_R] - 1
N920 REPEAT _PODS _PODE P=1
N930 RET("N"<<N_POWROTU,0)
N940 ELSE
N950 F_HOME
N960 R[NUMER_R]=SZTUKI
N970 RET
N980 ENDIF
%