2201
General Mach Discussion / Re: CNC Lathe turret tool changer help?
« on: October 18, 2015, 11:20:46 AM »
made small modification,
because if tool = 8 then turretpos must be 1
else tool must be turretpos-1
because if tool = 8 then turretpos must be 1
else tool must be turretpos-1
Code: [Select]
Sub Main()
' -------------------------------------------------------------------------------
' TPS 09.10.2015
' simple Test for Toolchange
' -------------------------------------------------------------------------------
' pin2 is mapped to Input1
' pin3 is mapped to Input2
' pin4 is mapped to Input3
' pin5 is mapped to Input4
' charger seated is mapped to OEMTRIG1
'get the new tool ---------------------------------------------------------------
tool = GetSelectedTool()
' nothing to do
If GetSelectedTool() = GetCurrentTool() Then
message("Tool is the same NO tool change needed")
End
End If
If tool > 8 Or tool < 1 Then 'check tool number to be in range
Message (" Tool " & tool & " is not a valid Number 1-8 ONLY, ENDING Program RUN ")
DoButton(3)
End
End If
Dim ActTurretPos As Long
ActTurretPos = 0
'get actual starttime
Starttime = Timer
Message "Moving to Tool# " &GetselectedTool()
tryagain:
ActivateSignal(output5) 'unlocks stop dog
Sleep(1000) 'wait for a second
ActivateSignal(OutPut6) 'turn air motor on
While ActTurretPos <> tool 'turn until we are in the wright position
ActTurretPos = GetTurret()
'give the other inputs a chance
If ActTurretPos <> 0 Then
Sleep(50)
ActTurretPos = GetTurret() 'read Turretpos again
End if
Akttime = Timer
If Akttime - Starttime > 20 Then 'Timeout 20s
Message("Turret timeout")
DeActivateSignal(output5) 'locks stop dog
Sleep(1000) 'wait for a second
DeActivateSignal(OutPut6) 'turn air motor off
End
End If
Wend
DeActivateSignal(output5) 'locks stop dog
Sleep(1000) 'wait for a second
DeActivateSignal(OutPut6) 'turn air motor off
sleep(1000)
'recheck the turretpos and retry
If tool <> 8 then
If (GetTurret()-1) <> tool then ' from tool is 1-7 toolno -1
goto tryagain
End If
Else
If GetTurret() <> 1 then ' if tool = 8 then turretpos must be 1
goto tryagain
End If
End If
'look for OEMTRIG1
If Not IsActive(OEMTRIG1) Then
DOButton(3)
MsgBox("Tool changer not seated!")
End
End If
Message("Tool " & tool & " Loaded")
SetCurrentTool( tool )
End Sub
'function to get the actual turret positiom
Function GetTurret() As Long
GetTurret = 0
If IsActive(Input1) Then
GetTurret = GetTurret + 1
End If
If IsActive(Input2) Then
GetTurret = GetTurret + 2
End If
If IsActive(Input3) Then
GetTurret = GetTurret + 4
End If
If IsActive(Input4) Then
GetTurret = GetTurret + 8
End If
End Function