Hello Guest it is April 16, 2024, 09:08:44 AM

Author Topic: Hot Swap ATC tool changer code example.  (Read 6097 times)

0 Members and 1 Guest are viewing this topic.

Offline poppabear

*
  • *
  •  2,235 2,235
  • Briceville, TN, USA
    • View Profile
Hot Swap ATC tool changer code example.
« on: July 30, 2009, 09:19:46 AM »
I have moved my ATC Hotswap code into a plugin, so I am releasing the VB m6 form for personal hobbie use.
this code is a hot swap for a 36 tool ATC. (arm, read-a-head, and screen set are not included), it is just a base example of the Meat of the Hot swap.

Sub Main()   'M6Start.m1s for HotSwap Tool changer
           
'Main Body of tool changer Code Rev1.0
'Copy Right by Scott Shafer of S S Systems LLC, Jan 2006
'You may use this for hobbie use for free, for commercial applications please contact me for terms.
'Email: poppabear@hughes.net
'This only show how to do the Hot-Swap code for the Tool Changer, and it moves a rotary caracell
'to the new position, the Arm and Draw bar code as well as the Status LED code has been removed.
'The logic for Tool desision tree for, Newtool vs. Oldtool and other error conditons have been removed.
'This example is for a 36 tool ATC.


'//////////////RESOURCES USED/////////////////////////////////
'DRO 1537 Z tool Change ht.
'range 1501-1536 Tool Slot DROs
'range 1200-1202 tool change location DROs
'range 1501-1536 Tool Slot LEDs (use this Slot LED)
'//////////////////////////////////////////////////////////////

XPos=GetUserDRO(1200)                  'X Axis tool change location in Machine coordinates
YPos=GetUserDRO(1201)                  'Y Axis tool change location in Machine coordinates
ZPos=GetUserDRO(1202)                  'Z Axis tool change location in Machine coordinates

OldTool = GetCurrentTool()                'Get tool # That is in the spindle             
NewTool = GetSelectedTool()             'Get Tool# of the New tool
CaptureToolZ = GetUserDRO(1537)          'The ZPos to come down to fit tool holder all the way in.
SlotNum = 0                          'will determine the degree position
OldSlot = 1500                        'Base count for Old tool replacement
UserDROnum = 1500                     'Loop base count for UserDRO's
UserLEDnum = 1500                     'Loop base count for UserLED's
IndexDRO = 0                        'set loop base for compares
IndexLED = 0                        'set loop base for compares

Call SetTicker (1,"")


Dim ToolPocket(1 To 36) As Integer           'DRO's for Tool pocket array
Dim I As Integer

   For I = 1 To 36
   UserDROnum = UserDROnum + 1
   ToolNum = GetUserDRO(UserDROnum)
   ToolPocket(I) = ToolNum
   Next I

Dim LedToolPocket(1 To 36) As Integer      'LED's for Tool Pocket Array
Dim J As Integer

   For J = 1 To 36
   UserLEDnum = UserLEDnum + 1
   LedState = GetuserLED(UserLEDnum)
   LedToolPocket(J) = LedState
   Next J

For K = 1 To 36
IndexDRO = IndexDRO + 1
IndexLED = IndexLED + 1
   If NewTool = ToolPocket(IndexDRO) And LedToolPocket(IndexLED) = 1 Then
       SlotNum = K
       OldSlot = OldSlot + K
       End If
   Next K
   
       If SlotNum = 0 And NewTool<>0 Then
       Call SetTicker (1,"          Requested Tool is NOT in the ATC!!!!")
       DoOEMButton(1001)                  ' Pause Machine
       Exit Sub
       End If
       
'===============================================================================================
   
    DoSpinStop()                         'Stop Spindle                                                
    DeActivateSignal(OUTPUT1)                'Flood Coolent
    DeActivateSignal(OUTPUT2)               'Mist Coolent
    Code "G90 G53 G0 Z" & ZPos               'Move Z tool change Pos
    Code "G90 G53 G0 X" & XPos & " Y" & YPos    'Move X, Y tool change Pos
    While IsMoving ()       
    Wend
   
'==================================================================================================
   
NumPositions = 36                         'Number of tool slots in the changer       
       OldPos = GetDRO (5)                'Get C axis pos       
       NewPos = (SlotNum-1)*360/NumPositions     'calc ABS pos of tool slot       
       MoveDist = NewPos - OldPos            'Calc the move distance       
          If Abs(MoveDist) >180 Then         'Find the shortest path         
             If MoveDist < 0 Then           
             MoveDist = 360 + MoveDist         
             Else           
             MoveDist = MoveDist - 360         
             End If       
          End If       
   
    Code "G00 G91 C" & MoveDist               'Move the C axis in Incermental the move distance
    While IsMoving ()         
    Wend
    Code "G90"       
              
SetUserDRO(OldSlot, OldTool)
SetOEMDRO(824, NewTool)

End Sub                 
Main   

'Have fun,

'Scott
fun times
Re: Hot Swap ATC tool changer code example.
« Reply #1 on: July 02, 2020, 05:23:22 AM »
Hii

How are you sir?

I plan to retrofit cnc milling machines.  Can you help with advice and make VB scrip Brain and Sketch Code related to ATC?  I would be very happy if you could help me.  Don't worry about the cost.  I have prepared it for you.  You can contact me at whatapps number 081284563662 (Indonesia)

Warm Regrads



Puguh Binarto