Hello Guest it is March 28, 2024, 06:09:40 AM

Author Topic: CNC Lathe turret tool changer help?  (Read 17037 times)

0 Members and 1 Guest are viewing this topic.

Offline mike^3

*
  •  116 116
    • View Profile
Re: CNC Lathe turret tool changer help?
« Reply #50 on: October 18, 2015, 04:19:38 PM »
Awesome, I think that part is essential for reliable parts, lol and non broken machines lol

Offline mike^3

*
  •  116 116
    • View Profile
Re: CNC Lathe turret tool changer help?
« Reply #51 on: October 18, 2015, 10:23:36 PM »
It works!!! https://www.youtube.com/watch?v=sqyWY0Dk5fk

Thank you TPS! Question tho, you notice that the tool changer does one tool at a time when the wrong tool is sensed? Can we just do that  instead of free spin the turret and try to catch the correct tool?

Meaning when we ask for a tool, it will goto each tool, sit down for like 1/2 second, read input, if not at right tool, keep going, etc etc till it gets the right tool?

That would complete the tool changer!!!!
Re: CNC Lathe turret tool changer help?
« Reply #52 on: October 18, 2015, 10:30:36 PM »
Congrats! Good to see you got it working finally. I'm thinking that since it finds the tool reliably while only stepping through the tools one tool at a time, its not a hardware issue and can probably be fine tuned to work all the time every time.
joanthon

Offline mike^3

*
  •  116 116
    • View Profile
Re: CNC Lathe turret tool changer help?
« Reply #53 on: October 18, 2015, 10:37:47 PM »
Thanks joanthon!

Offline TPS

*
  •  2,501 2,501
    • View Profile
Re: CNC Lathe turret tool changer help?
« Reply #54 on: October 19, 2015, 04:29:46 AM »
Hi Mike,

by reviewing the script i found a mistake,
pls try corrected code again.

Code: [Select]
Sub Main()
' -------------------------------------------------------------------------------
' TPS 18.10.2015 
' Toolchange for a 8 place turret
' V 4.0.1
' -------------------------------------------------------------------------------

' 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 NextTurretPos As Long
NextTurretPos = 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 NextTurretPos <> tool 'turn until we are in the wright position
      NextTurretPos = GetNextTurret()

      'give the other inputs a chance
      If NextTurretPos <> 0 Then
        Sleep(50)
        NextTurretPos = GetNextTurret() 'read NextTurretpos 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  GetTurret() <> tool then
        GoTo tryagain
   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 position
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
   

'function to get the next actual turret position
Function GetNextTurret() As Long
GetNextTurret = 0
    If IsActive(Input1) Then
        GetNextTurret = GetNextTurret + 1
    End If
   
    If IsActive(Input2) Then
        GetNextTurret = GetNextTurret + 2
    End If

    If IsActive(Input3) Then
        GetNextTurret = GetNextTurret + 4
    End If

    If IsActive(Input4) Then
        GetNextTurret = GetNextTurret + 8
    End If
   
    If GetNextTurret = 8 Then
        GetNextTurret = 1
    Else   
        GetNextTurret = GetNextTurret + 1
    End If
   
End Function


Thomas
anything is possible, just try to do it.
if you find some mistakes, in my bad bavarian english,they are yours.

Offline TPS

*
  •  2,501 2,501
    • View Profile
Re: CNC Lathe turret tool changer help?
« Reply #55 on: October 19, 2015, 04:42:07 AM »
Ok,

her the first try of the "single step" version

Code: [Select]
Sub Main()
' -------------------------------------------------------------------------------
' TPS 18.10.2015 
' Toolchange for a 8 place turret (single step)
' V 5.0.0
' -------------------------------------------------------------------------------

' 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 StopDog as boolean

tryagain:

'get actual starttime
Starttime = Timer

Message "Moving to Tool# " &GetselectedTool()


   Akttime = Timer
   While Akttime - Starttime < 40 'try until timeout

    ActivateSignal(output5)  'unlocks stop dog
    StopDog = True
    Sleep(1000)              'wait for a second
    ActivateSignal(OutPut6)  'turn air motor on

   'wenn we left the turretpos lock the stop dog
    If GetTurret() = 0 Then
       DeActivateSignal(output5)    'locks stop dog
       StopDog = false
    End if

    If ((GetTurret() <> 0) and (StopDog = False)) Then
       DeActivateSignal(OutPut6)    'turn air motor off
       sleep(1000)
    End if

    'check the position
    If GetTurret() = tool Then
       GoTo finished
    End If   
       
    Akttime = Timer
    If Akttime - Starttime > 30 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
   
finished:

   'recheck the turretpos and retry
   If  GetTurret() <> tool then
        GoTo tryagain
   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 position
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
   

Thomas
anything is possible, just try to do it.
if you find some mistakes, in my bad bavarian english,they are yours.

Offline mike^3

*
  •  116 116
    • View Profile
Re: CNC Lathe turret tool changer help?
« Reply #56 on: October 19, 2015, 07:34:16 AM »
Hi!,

The last code just spins the turret, it doesn't stop, and then I hit etop after like 10 secs lol

Offline TPS

*
  •  2,501 2,501
    • View Profile
Re: CNC Lathe turret tool changer help?
« Reply #57 on: October 19, 2015, 08:25:42 AM »
Hi,

next try, the problem is i have no real trigger to lock the stop dog

Code: [Select]
Sub Main()
' -------------------------------------------------------------------------------
' TPS 19.10.2015 
' Toolchange for a 8 place turret (single step)
' V 5.0.1
' -------------------------------------------------------------------------------

' 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


tryagain:

'get actual starttime
Starttime = Timer

Message "Moving to Tool# " &GetselectedTool()


   Akttime = Timer
   While Akttime - Starttime < 50 'try until timeout

    ActivateSignal(OutPut5)  'unlocks stop dog
    Sleep(1000)              'wait for a second
    ActivateSignal(OutPut6)  'turn air motor on
    Sleep(1000)              'wait for a second
    DeActivateSignal(OutPut5)    'locks stop dog
    Sleep(1000)              'wait for a second
    DeActivateSignal(OutPut6)    'turn air motor off
    Sleep(1000)

    'check the position
    If GetTurret() = tool Then
       GoTo finished
    End If   
       
    Akttime = Timer
    If Akttime - Starttime > 40 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
   
finished:

   'recheck the turretpos and retry
   If  GetTurret() <> tool then
        GoTo tryagain
   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 position
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
   

Thomas
anything is possible, just try to do it.
if you find some mistakes, in my bad bavarian english,they are yours.

Offline mike^3

*
  •  116 116
    • View Profile
Re: CNC Lathe turret tool changer help?
« Reply #58 on: October 19, 2015, 08:28:53 AM »
Ohh I see, ill play with the sleep times to see If i can get it to work....few min :)

Offline mike^3

*
  •  116 116
    • View Profile
Re: CNC Lathe turret tool changer help?
« Reply #59 on: October 19, 2015, 08:46:03 AM »
its working great, but it keeps saying tool changer not seated, but it is... ...checked the oem trigger and it is getting the signal;