4
« on: March 01, 2015, 03:47:27 PM »
macro to return the tool from the spindle to the magazine
example, of course,
'---------------------------------------------------------------------------------------------------------------
' oddanie narzędzia z wrzeciona do magazynu
' andmar2005
'---------------------------------------------------------------------------------------------------------------
Dim a, b, c
' ----------------------------------------------------------------------------
magazyn_zbazowanie
powietrze_C
wrzeciono_0
T_wrzeciono = GetUserLabel(9)
pozycja_magazyn = GetUserLabel(10)
If (pozycja_magazyn = T_wrzeciono) Then
Sleep(50)
Message("Oddaje narzędzie")
Oddaje
SetUserLabel(9,0)
Sleep(50)
End
End If
If (T_wrzeciono =0) Then
Sleep(150)
Message("Co mam Oddać jest T" & nowe_T)
Sleep(150)
End
End If
a=GetUserLabel(10) 'pozycja magazynu
b=GetUserLabel(9) ' T w wrzecinie
c=20 'ilość narzędzi w magazynie
x= a-b
y= b-a
' ----------------------------------------------------------------------------
If x<0 Then
z= x+c
End If
If x>0 Then
z= x
End If
' ----------------------------------------------------------------------------
If y<0 Then
t= y+c
End If
If y>0 Then
t= y
End If
' ----------------------------------------------------------------------------
If t>z Then ' w lewo
W_lewo
End If
If t<z Then ' w prawo
W_prawo
End If
' ----------------------------------------------------------------------------
If t=z Then ' warunek specjalny poniewaz mamy parzysta wartosc narzedzi
W_prawo
End If
Oddaje
End
' ----------------------------------------------------------------------------
'Oddaje narzędzie do magazynu
Sub Oddaje()
Code "G53 Z4 F2000" ' pozycja wymiany narzędzia
While IsMoving()
Sleep(50)
Wend
Sleep(20)
Code "G90"
ActivateSignal(OUTPUT13) 'Magazyn w prawo
If(Not GetUserLed(1307)) Then 'Sprawdzam czy jest w prawo
While GetUserLed(1307) =0
Sleep(20)
Wend
End If
DeActivateSignal(OUTPUT13)
Sleep(20)
ActivateSignal(OUTPUT16)'Blokada narzędzia - odblokuj
If(Not GetUserLed(1305)) Then 'Sprawdzam czy odblokował
While GetUserLed(1305) =0
Sleep(20)
Wend
End If
ActivateSignal(OUTPUT15)'Magazyn w dół
If(Not GetUserLed(1309)) Then 'Sprawdzam czy jest w dół
While GetUserLed(1309) =0
Sleep(20)
Wend
End If
DeActivateSignal(OUTPUT16)'Blokada narzędzia - zablokuj
Sleep(20)
DeActivateSignal(OUTPUT15)
Sleep(20)
ActivateSignal(OUTPUT12)'Magazyn w lewo
If(Not GetUserLed(1306)) Then 'Sprawdzam czy jest w lewo
While GetUserLed(1306) =0
Sleep(20)
Wend
End If
DeActivateSignal(OUTPUT12)
ActivateSignal(OUTPUT14)'Magazyn w góre
If(Not GetUserLed(1308)) Then 'Sprawdzam czy jest w góre
While GetUserLed(1308) =0
Sleep(20)
Wend
End If
DeActivateSignal(OUTPUT14)
Sleep(20)
Message("ODDAŁEM NARZĘDZIE T" & T_wrzeciono)
Sleep(50)
SetUserLabel(9,0)
czekam_na_wykonanie
End Sub
' ----------------------------------------------------------------------------
'Magazyn obraca sie w lewo
Sub W_lewo()
While (Not Szukam_T)
nrT_M = GetuserLabel(10)
ActivateSignal(OUTPUT18)' rozładowanie kondensatora - wylączone
Sleep(50)
SetUserLabel(11,"L")
ActivateSignal(OUTPUT10)
Sleep(800)
If(Not GetUserLed(1301)) Then
While GetUserLed(1301) =1
Sleep(10)
Wend
End If
DeActivateSignal(OUTPUT10) ' obroty w lewo - wyłączone
Sleep(50)
DeActivateSignal(OUTPUT18) 'rozładowanie kondensatora - wlączone
Sleep(20)
ActivateSignal(OUTPUT11)' obroty w prawo - włączone w celu wychamowania silnika
Sleep(50)
DeActivateSignal(OUTPUT11)' obroty w prawo - wyłączone
SetUserLabel(10,(nrT_M - 1))
Sleep(15)
a=GetuserLabel(10)
If a=0 Then
SetuserLabel(10,c)
End If
SetUserLabel(11,"")
If(GetuserLabel(10) = T_wrzeciono) Then
Szukam_T = true
End If
Sleep(50)
Wend
End Sub
' ----------------------------------------------------------------------------
'Magazyn obraca sie w prawo
Sub W_prawo()
While (Not Szukam_T)
nrT_M = GetuserLabel(10)
ActivateSignal(OUTPUT18)' rozładowanie kondensatora - wylączone
Sleep(50)
SetUserLabel(12,"")
ActivateSignal(OUTPUT11)
Sleep(800)
If(Not GetUserLed(1301)) Then
While GetUserLed(1301) =1
Sleep(10)
Wend
End If
DeActivateSignal(OUTPUT11) ' obroty w lewo - wyłączone
Sleep(50)
DeActivateSignal(OUTPUT18) 'rozładowanie kondensatora - wlączone
Sleep(20)
ActivateSignal(OUTPUT10)' obroty w prawo - włączone w celu wychamowania silnika
Sleep(50)
DeActivateSignal(OUTPUT10)' obroty w prawo - wyłączone
SetUserLabel(10,(nrT_M + 1))
Sleep(15)
a=GetuserLabel(10)
If a=c+1 Then
SetuserLabel(10,1)
End If
SetUserLabel(12,"")
If(GetuserLabel(10) = T_wrzeciono) Then
Szukam_T = true
End If
Sleep(50)
Wend
End Sub
' ----------------------------------------------------------------------------
'Sprawdzam zbazowanie magazynu
Sub magazyn_zbazowanie()
If GetUserLed(1032) =0 Or GetUserLabel(10) = "" Then
okno = MsgBox("MAGAZYN BRAK ZBAZOWANIA"& Chr(10) &""& Chr(10) &">> ZBAZUJ MAGAZYN <<" ,16, "BAZOWANIE MAGAZYNU")
Sleep(50)
End
End If
End Sub
' ----------------------------------------------------------------------------
' Jesli narzedzie to T0 w wrzecionie
Sub wrzeciono_0 ()
If GetUserLabel(9) = 0 Then
okno = MsgBox("CO MAM ODDAĆ "& Chr(10) &""& Chr(10) &">> WRZECIONO JEST PUSTE <<" ,16, " **** T0 **** ")
Sleep(50)
End
End If
End Sub
' ----------------------------------------------------------------------------
' Jesli brak ciśnienia powietrza
Sub powietrze_C ()
If GetUserLed(1005) = 1 Then
okno = MsgBox("Brak ciśnienia "& Chr(10) &""& Chr(10) &">> POWIETRZA <<" ,16, " POWIETRZE ")
Sleep(50)
End
End If
End Sub
' ----------------------------------------------------------------------------
Sub czekam_na_wykonanie ()
While IsMoving()
Sleep(50)
Wend
End Sub
'------------------------------------------------------------------------------