Hello Guest it is April 18, 2024, 03:28:11 PM

Author Topic: CNC KNEE MILL ATC HELP!  (Read 7280 times)

0 Members and 1 Guest are viewing this topic.

Offline Hood

*
  •  25,835 25,835
  • Carnoustie, Scotland
    • View Profile
Re: CNC KNEE MILL ATC HELP!
« Reply #10 on: February 09, 2015, 02:53:33 AM »
Work out what the original motors torque was then multiply by the reduction of the gearbox. If going direct drive then it may require a fair bit more than a 200w motor, if using the original gearbox then it may be fine.

Hood

Offline mike^3

*
  •  116 116
    • View Profile
Re: CNC KNEE MILL ATC HELP!
« Reply #11 on: February 09, 2015, 07:07:12 AM »
Thanks hood ;) if I remember right u have a csmio also right?

Offline Hood

*
  •  25,835 25,835
  • Carnoustie, Scotland
    • View Profile
Re: CNC KNEE MILL ATC HELP!
« Reply #12 on: February 09, 2015, 02:53:25 PM »
Yes, have the IP-S on the wee lathe and the IP-A on the Chiron  VMC. When threading gets sorted, either in Mach3 or probably have to wait for Mach4, I will be putting an IP-A on the big lathe.

Hood

Offline mike^3

*
  •  116 116
    • View Profile
Re: CNC KNEE MILL ATC HELP!
« Reply #13 on: February 09, 2015, 03:11:18 PM »
Awesome, ya I'm gonna stick mach3 on the mill then when mach 4 is up and running then switch over..
Re: CNC KNEE MILL ATC HELP!
« Reply #14 on: March 01, 2015, 02:14:37 PM »
hi
You can do as it Hurco magazine 20 tools
- Have a position sensor on the tool T20
- The engine turns 60W 200V and has a sensor that checks performed rotation of 360 degrees
the rest is just a VB macro that will look for the path to the tool change

Offline mike^3

*
  •  116 116
    • View Profile
Re: CNC KNEE MILL ATC HELP!
« Reply #15 on: March 01, 2015, 03:04:49 PM »
Not sure how I could write that.... in vb
Re: CNC KNEE MILL ATC HELP!
« Reply #16 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
'------------------------------------------------------------------------------