Strona 1 z 1
PODPROGRAMY
: 03 paź 2015, 10:04
autor: seites
Co użytkownicy SINUMERIKA powiedzą na założenie tematu z ciekawymi podprogramami które wykorzystujemy aby ułatwić sobie życie ?
PROGRAM BAZOWY
ZAPIS W PROGRAMIE :
_BAZA_XYZ(1,250-3,587,460)
OPIS CYKLU:
_BAZA_XYZ(G54-G57,POZYCJA X MASZYNOWA,POZYCJA Y MASZYNOWA,POZYCJA Z MASZYNOWA)
G54 - 1 , G55 -2 , G56 - 3 , G57 -4
Kod: Zaznacz cały
PROC _BAZA_XYZ(INT _NR_BAZY,REAL _POZ_X,REAL _POZ_Y,REAL _POZ_Z) SAVE DISPLOF SBLOF
;CYKL WPISUJE BAZE DO REJESTROW XYZ DLA KANALU 1
DEF STRING[3] _NAZWA_BAZY
if ($P_SUBPAR[1]==FALSE) OR ($P_SUBPAR[2]==FALSE) OR ($P_SUBPAR[3]==FALSE) OR ($P_SUBPAR[4]==FALSE)
MSG("NIE WPISANO WYMAGANYCH PARAMETROW - WPISZ WSZYSTKIE 4 PAR. CYKLU!")
M0
GOTOF _KONIEC
ENDIF
IF (_NR_BAZY<1) OR (_NR_BAZY>4)
MSG("WPISANO NIEPRAWIDLOWY NR BAZY W PARAMETRZE CYKLU!")
M0
GOTOF _KONIEC
ENDIF
IF _NR_BAZY==1
_NAZWA_BAZY="G54"
ENDIF
IF _NR_BAZY==2
_NAZWA_BAZY="G55"
ENDIF
IF _NR_BAZY==3
_NAZWA_BAZY="G56"
ENDIF
IF _NR_BAZY==4
_NAZWA_BAZY="G57"
ENDIF
MSG("KASUJE ZAWARTOSC BAZY -"<< _NAZWA_BAZY<< "-, TAK-[CYCLE START], NIE-[RESET//] !")
STOPRE
M00
STOPRE
;---------------KASOWANI STARYCH WPISOW-------
$p_uifr[_NR_BAZY,X,tr]=0; baza zgrubna
$p_uifr[_NR_BAZY,X,fi]=0;baza dokladna
$p_uifr[_NR_BAZY,Y,tr]=0; baza zgrubna
$p_uifr[_NR_BAZY,Y,fi]=0;baza dokladna
$p_uifr[_NR_BAZY,Z,tr]=0; baza zgrubna
$p_uifr[_NR_BAZY,Z,fi]=0;baza dokladna
;----------------KONIEC KASOWANIA-------------
STOPRE
;---------WPIS NOWYCH WARTOSCI----------------
$p_uifr[_NR_BAZY,X,tr]=_POZ_X; baza zgrubna
$p_uifr[_NR_BAZY,Y,tr]=_POZ_Y; baza zgrubna
$p_uifr[_NR_BAZY,Z,tr]=_POZ_Z; baza zgrubna
;---------------------------------------------
STOPRE
MSG("BAZA -"<< _NAZWA_BAZY<< "- ZOSTALA WPROWADZONA PRAWIDLOWO!")
_KONIEC:
RET
: 04 paź 2015, 16:10
autor: mc2kwacz
Może nie wiesz tego, ale sinumerik sinumerikowi nie równy i możliwości programowania różnych maszyn nie pokrywają się. W związku z tym pomysł nie ma sensu.
Ktoś kto trochę umie programować nie potrzebuje pomocy żeby napisać procedurę. Ten kto nie umie nie będzie umiał użyć gotowej.
Żeby ułatwić sobie życie trzeba się nauczyć składni i zasad programowania a nie grzebać na forum.
: 04 paź 2015, 20:30
autor: seites
Programuje kilka roznych sinumerikow i sa do siebie bardzo podobne jak ktos potrafi to dostosuje kod pod siebie takze temat jak najbardziej otwarty
: 05 paź 2015, 18:59
autor: djronin
Pomysł fajny może ktoś dużo podpatrzeć (jak zamieszczane cykle będą z komentarzami) albo uświadomić sobie, że czynności które prędzej zajmowały mu dużo czasu teraz zrobi o wiele szybciej.
mc2kwacz pisze:Może nie wiesz tego, ale sinumerik sinumerikowi nie równy i możliwości programowania różnych maszyn nie pokrywają się. W związku z tym pomysł nie ma sensu.
Ktoś kto trochę umie programować nie potrzebuje pomocy żeby napisać procedurę. Ten kto nie umie nie będzie umiał użyć gotowej.
Żeby ułatwić sobie życie trzeba się nauczyć składni i zasad programowania a nie grzebać na forum.
Odpowiednio napisany cykl jest niemal uniwersalny nie sądzisz chyba, że producent dla każdej maszyny pisze nowe cykle...
a oto przykład na potwierdzenie mojej tezy..
Kod: Zaznacz cały
; CYCLE NAME: SETSPEED.SPF
; VERSIONS: 1.2
; AUTOR: Artur Paszek
; e-mail: artur.p386 at gmail.com
; RELEASE DATE: 28.02.2014r.
;
; HISTORIA:
; 28.02.2014r. : POPRAWKI
; 27.02.2014r. : DODANIE OBSŁUGI NOWYCH WERSJI CYKLI
; I POPRAWIENIE FUNKCJONALNOŚCI
; 25.12.2013r. : DODANIE OGRANICZENIA POSUWU MAKSYMALNEGO (G0)
;------------------------------------------------------------------
;Cykl powstał na potrzeby użytkowników forum www.cnc.info.pl
;Cykl służy do prostej zmiany prędkości
;posuwu w cyklach pomiarowych oraz do ograniczania
;posuwu maksymalnego obrabiarki.
;Cykl został przetestowany w całym zakresie funkcji na:
;Frezarka DMC1035V eco $SINUMERIK 810D$ /djronin/
;Wytaczarka TOS Varnsdorf WHQ105CNC $SINUMERIK 840D sl$ /didul/
;------------------------------------------------------------------
N10 PROC SETSPEED(REAL _FEED_XY,REAL _FEED_G0,REAL _FEED_Z,REAL _FMAX_LIMIT) SBLOF DISPLOF
N20 DEF REAL _FEED_1, _FEED_2, _FEED_3, _FEED_4
;------------------------------------------------------------------
;wartości domyślne - wprowadź odpowiednie dla twojej maszyny
N100 _FEED_1 = 50 ;Posuw powrotu - podaj wartość FMAX w %
N110 _FEED_2 = 1000 ;Posuw XY
N120 _FEED_3 = 1000 ;Posuw Z
N130 _FEED_4 = 25000 ;Maksymalny posuw osi liniowych.
;Nie przekraczaj wartości Fabrycznych!!!
;------------------------------------------------------------------
;procedura wywołania ustawień domyślnych
IF (NOT _FEED_XY) AND (NOT _FEED_G0) AND (NOT _FEED_Z) AND (NOT _FMAX_LIMIT)
IF ISVAR("$SCS_MEA_FEED_RAPID_IN_PERCENT") AND ISVAR("$SCS_MEA_FEED_PLANE_VALUE") AND ISVAR("$SCS_MEA_FEED_FEEDAX_VALUE")
N140 $SCS_MEA_FEED_RAPID_IN_PERCENT = _FEED_1
N150 $SCS_MEA_FEED_PLANE_VALUE = _FEED_2
N160 $SCS_MEA_FEED_FEEDAX_VALUE = _FEED_3
N170 NEWCONF
ELSE
N180 _SPEED[0] = _FEED_1
N190 _SPEED[1] = _FEED_2
N200 _SPEED[2] = _FEED_3
ENDIF
N210 $MA_G00_ACCEL_FACTOR[AX1]=1
N220 $MA_G00_ACCEL_FACTOR[AX2]=1
N230 $MA_G00_ACCEL_FACTOR[AX3]=1
N240 $MA_MAX_AX_VELO[AX1]=_FEED_4
N250 $MA_MAX_AX_VELO[AX2]=_FEED_4
N260 $MA_MAX_AX_VELO[AX3]=_FEED_4
N270 NEWCONF
GOTOF _END
ENDIF
;------------------------------------------------------------------
;zmiana posuwu XY
IF _FEED_XY
IF ISVAR("$SCS_MEA_FEED_PLANE_VALUE")
N280 $SCS_MEA_FEED_PLANE_VALUE = _FEED_XY
N290 NEWCONF
ELSE
N300 _SPEED[1] = _FEED_XY
ENDIF
ELSE
IF ISVAR("$SCS_MEA_FEED_PLANE_VALUE")
N310 $SCS_MEA_FEED_PLANE_VALUE = _FEED_2
N320 NEWCONF
ELSE
N330 _SPEED[1] = _FEED_2
ENDIF
ENDIF
;------------------------------------------------------------------
;prędkość powrotu sondy wyrażona w procentach posuwu FMAX.
;Jesli wywolanie bedzie zawierac dane dla tej wartosci to
;_chbit[16] zostanie ustawiony na 1.
;Gdy pominiemy ten parametr przy wywołaniu lub gdy jego wartosc
;wyniesie "0" posuw powrotu sondy pomiarowej bedzie sie rownal
;wartosci posuwu dojscia (XY).
IF _FEED_G0
IF ISVAR("$SCS_MEA_FEED_RAPID_IN_PERCENT")
N340 $SCS_MEA_FEED_RAPID_IN_PERCENT = _FEED_G0
N350 $SCS_MEA_RETRACTION_FEED = 1
N360 NEWCONF
ELSE
N370 _SPEED[0]=_FEED_G0
N380 _CHBIT[16]=1
ENDIF
ELSE
IF ISVAR("$SCS_MEA_FEED_RAPID_IN_PERCENT")
N390 $SCS_MEA_FEED_RAPID_IN_PERCENT =_FEED_1
N400 $SCS_MEA_RETRACTION_FEED = 0
N410 NEWCONF
ELSE
N420 _SPEED[0] = _FEED_1
N430 _CHBIT[16] = 0
ENDIF
ENDIF
;------------------------------------------------------------------
;procedura zmiany posuwu osi Z
IF _FEED_Z
IF ISVAR("$SCS_MEA_FEED_FEEDAX_VALUE")
N440 $SCS_MEA_FEED_FEEDAX_VALUE = _FEED_Z
N450 NEWCONF
ELSE
N460 _SPEED[2] = _FEED_Z
ENDIF
ELSE
IF ISVAR("$SCS_MEA_FEED_FEEDAX_VALUE")
N470 $SCS_MEA_FEED_FEEDAX_VALUE = _FEED_3
N480 NEWCONF
ELSE
N490 _SPEED[2] = _FEED_3
ENDIF
ENDIF
;------------------------------------------------------------------
;ograniczenie posuwu FMAX (G0)
IF _FMAX_LIMIT
N500 _FMAX_LIMIT=TRUNC(ABS(_FMAX_LIMIT))
N510 $MA_G00_ACCEL_FACTOR[AX1]=1
N520 $MA_G00_ACCEL_FACTOR[AX2]=1
N530 $MA_G00_ACCEL_FACTOR[AX3]=1
N540 $MA_MAX_AX_VELO[AX1]=_FMAX_LIMIT
N550 $MA_MAX_AX_VELO[AX2]=_FMAX_LIMIT
N560 $MA_MAX_AX_VELO[AX3]=_FMAX_LIMIT
ENDIF
;------------------------------------------------------------------
_END:
N1000 newconf
N2000 RET