2016
« on: February 20, 2018, 05:27:27 AM »
ok here we go, code with comments in english:
' TPS 29.01.2018 Version 1.0
' BOXFORD 125TCL
' 8 position ATC with A-Axis
Sub Main()
Dim newtool As Integer
Dim acttool As Integer
Dim grad_pro_tool As Integer
Dim grad_nach_pin As Integer
Dim grad_rueckwaerts as Integer
Dim Anzahl_Takte As Integer
Dim Dist_schnell As Double
Dim F_fast As Integer
Dim F_slow As Integer
If IsLoading() Then
'do nothing during load GCode
' Exit Sub
Else
grad_pro_tool = 45 ' distance between TC places
grad_nach_pin = 10 ' overtravel pin
grad_rueckwaerts = 25 ' trafel back to pin
f_fast = 4000 ' Speed turn fast
f_slow = 2000 ' Speed slow reverse to pin
newtool = GetSelectedTool() ' get the actual tool number
acttool = GetCurrentTool() ' get the new tool number
'let's do some basic checks
' new tool and act tool = 0
If ((newtool = 0) and (acttool = 0)) Then
message("new and acttool = 0 -> do nothing")
Sleep(500)
Exit Sub
End If
' new tool = 0
If (newtool = 0) Then
message("new tool = 0 -> do nothing")
Sleep(500)
Exit Sub
End If
' new tool = act tool
If newtool = acttool Then
message("new tool = act tool -> do nothing")
Sleep(500)
Exit Sub
End If
'check toolnumber ?
If (((newtool > 8) Or (newtool < 1)) and (newtool <> 0)) Then
DoButton(3)
Sleep(500)
Message (" toolnumber " & newtool & " not in range (1-8). Abort ! ")
Exit Sub
End If
'X-Axis not in reference
If GetOEMLED(807) Then
DoButton(3)
Sleep(500)
Message ("X-Axis not referenced -> Abort !!")
Exit Sub
End If
'Z-Axis not in reference
If GetOEMLED(809) Then
DoButton(3)
Sleep(500)
Message ("Z-Axis not referenced -> Abort !!")
Exit Sub
End If
'let's do something
Message "change tool from: " +CStr(acttool) + " to: " + CStr(newtool)
'calculate number of tools between tools
If newtool > acttool Then Anzahl_Takte = newtool - acttool
If newtool < acttool Then Anzahl_Takte = 8 - acttool+newtool
'number of tool to steps
Dist_schnell = (Anzahl_Takte * grad_pro_tool) + grad_nach_pin
Message "ATC X-Axis to TC position"
Code "G90 G53 G0 X2"
While IsMoving()
Sleep(15)
Wend
Message "ATC Z-Axis to TC position"
Code "G90 G53 G0 Z2"
While IsMoving()
Sleep(15)
Wend
'set A-Axis zero
Code "G92 A0"
'incremental Mode , units per Minute , Exact Stop
Code "G91 G94 G61"
'A-Axis plus fast
Message "A-Axis plus fast to new tool"
Code "G01 A" & Dist_schnell & "F" & f_fast
While IsMoving()
Sleep(15)
Wend
'A-Axis slow back to pin
Message "A-Axis slow back to pin"
Code "G01 A-" & grad_rueckwaerts & "F" & f_slow
While IsMoving()
Sleep(15)
Wend
'anounce new tool to system
SetCurrentTool(newtool)
'back to absolute mode
Code "G90" ' back to absolute movement
Message ""
End If
End Sub
-put this code in your M6Start macro
-delete all code in M6End macro
-this code Needs A-axis for turn axis of TC
-this code requires that a G91 A360 makes exact one turn on TC
-X/Z axis must be referenced
-X-axis refpos = all way to the right side (away from spindle)
-Z-axis refpos = all way up (away from spindle)
Thomas