PODPROGRAMY

Dyskusje na temat systemu Sinumerik

Autor tematu
seites
Stały bywalec (min. 70)
Stały bywalec (min. 70)
Posty w temacie: 2
Posty: 70
Rejestracja: 06 lut 2011, 15:46
Lokalizacja: Nowa Huta

PODPROGRAMY

#1

Post napisał: seites » 03 paź 2015, 10:04

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



















Tagi:


mc2kwacz
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 2920
Rejestracja: 27 maja 2013, 22:18
Lokalizacja: gdzieś

#2

Post napisał: mc2kwacz » 04 paź 2015, 16:10

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.


Autor tematu
seites
Stały bywalec (min. 70)
Stały bywalec (min. 70)
Posty w temacie: 2
Posty: 70
Rejestracja: 06 lut 2011, 15:46
Lokalizacja: Nowa Huta

#3

Post napisał: seites » 04 paź 2015, 20:30

Programuje kilka roznych sinumerikow i sa do siebie bardzo podobne jak ktos potrafi to dostosuje kod pod siebie takze temat jak najbardziej otwarty

Awatar użytkownika

djronin
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 1
Posty: 262
Rejestracja: 22 kwie 2011, 01:19
Lokalizacja: Jarocin

#4

Post napisał: djronin » 05 paź 2015, 18:59

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
...Programowanie ma to do siebie, że urzeczywistnienie nawet najbardziej
oczywistego pomysłu jest znakomitą definicją słowa "frustracja"...

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Siemens Sinumerik CNC”