Jak zrobić pomiar sondą i wprowadzić korekcję narzędzia

Dyskusje na temat systemu Sinumerik
Awatar użytkownika

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

#11

Post napisał: djronin » 20 paź 2012, 20:34

Witam!
Jestem już po testach na maszynie. Jednym słowem SUKCES!! :)

W pracy napisalem maly programik który frezuje dwa końce plaskownika z korekcją promienia. Przed uruchomieniem programu zmieniłem promien freza o 0.01 mm.
Następnie uruchomiłem programik z pomiarem wyspy i po zakonczeniu cyklu wartość promienia znów się zmieniła.

Napisałem w domu program który rozróżnia czy detal jest większy lub mniejszy i odpowiednio kieruje programem.
Jak by ktoś widzial cos co można by tu było zmienić to smiało niech pisze:

Program START.MPF (WYKONAWCZY):

@@@@@@@@@@
G90 G17
G54
;==============================
;=PARAMETRY WEJSCIOWE POMIARU:=
;==============================
;
; :TOLERANCJA DODATNIA:
R2=0.03
;
; :TOLERANCJA UJEMNA:
R3=-0.03
;
; :DELTA KOREKCJI SREDNICY FREZA:
R0=0; ZWIĘKSZENIE LUB ZMNIEJSZENIE KOREKCJI
;
; :ODSTEP MIEDZY POMIARAMI
R7=10
;
;==============================
;
PLANOWANIE
KONTUR
WYKONCZENIE
POMIAR
IF R1==0
M0
ENDIF
OTWORY
FAZA
T="GLOWICA_63"
M6
M30

@@@@@@@@@@@

Program POMIAR.MPF:

@@@@@@@@@@@
G90 G17
R1=1
IF R8>R7 OR R8<0
R8=R7
ENDIF
IF R8<>0
R8=R8-1
M17
ELSE
;================================================
;PODAJ DLUGOSC POMIARU (ODLEGLOSC MIEDZY P1 i P2)
R6=105 ;MM
;================================================
R0=R6+R0
T="SONDA"
M6
G0 X0Y0Z50
Z10
_MVAR=4 _SETVAL=R0 _PRNUM=1 _KNUM=2001 _FA=6 _TSA=1 _MA=1 _VMS=0 _NMSP=1 _ID=-20
_TZL=0.01 _TDIF=0.2 _TUL=0.15 _TLL=-0.15 _CHBIT[4]=0 _TMV=0.1 _K=1 _EVNUM=0 _TNUM=0 _TNAME="FREZ_14"
CYCLE977
Z100
R8=R7
ENDIF
R11=_OVR[4]
R11=R11*1000
R11=ROUND(R11)
R11=R11/1000
R10=0
IF R11 == _SETVAL
R10=1
ENDIF
IF _OVR[4] > _SETVAL
R4=R11-_SETVAL
R10=2
ELSE
IF _OVR[4] < _SETVAL
R5=_SETVAL-R11
R3=(R3)*(-1)
R10=3
ENDIF
ENDIF

IF R10==1
GOTOF MSG1
ENDIF
;
;-------
;
IF R10==2
IF R2>=R4
GOTOF MSG2
ELSE
WYKONCZENIE
GOTOF KONIEC
ENDIF
ENDIF
;
;-------
;
IF R10==3
IF R3>=R5
GOTOF MSG3
ELSE
GOTOF MSG4
ENDIF
ENDIF
;
;-------
;
MSG1:
MSG("DOKLADNOSC ZACHOWANA")
G4F6
GOTOF KONIEC
;-------

MSG2:
MSG("POMIAR W ZAKRESIE TOLERANCJI DODATNIEJ: "<<R11<<"mm")
G4F6
GOTOF KONIEC
;-------


MSG3:
MSG("POMIAR W ZAKRESIE TOLERANCJI UJEMNEJ: "<<R11<<"mm")
G4F6
GOTOF KONIEC
;--------

MSG4:
MSG("POMIAR PONIZEJ TOLERANCJI: "<<R11<<"mm")
G4F2
MSG()
G4F1
REPEAT MSG4 P=6
R1=0

KONIEC:
R8=R8-1
M17

@@@@@@@@@@


Mam tylko jeszcze małe pytanie wie ktoś jak zrobić żeby wyświetlana wartość _OVR[4] była zaokrąglona do 3 albo 2 miejsca po przecinku?? bo ja mam tam aż 7 miejsc po przecinku.
Obrazek

Funkcja ROUND() załatwiła problem



Tagi:

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Siemens Sinumerik CNC”