Hello Guest it is December 11, 2019, 10:39:56 PM

Author Topic: ATC Geneva wheel for mill  (Read 2825 times)

0 Members and 1 Guest are viewing this topic.

Offline jve

*
  •  128 128
    • View Profile
ATC Geneva wheel for mill
« on: April 04, 2018, 11:19:19 AM »
HI Guys,

I need some help, I am doing a retrofit in a mill that have a ATC with a geneva wheel
It  is working fine with the inputs and output the problem that i have is the count and i cannot figerout what is the problem
when the ATC is in tool1 for example and i insert T2M6 the ATC go to tool 2 but when the ATC is in tool 1 and i insert T3M6 it go to tool 2 so it is only counting 1


Offline TPS

*
  •  1,411 1,411
    • View Profile
Re: ATC Geneva wheel for mill
« Reply #1 on: April 04, 2018, 12:21:41 PM »
Hello,

i think the Problem is in this Sub:


'Sequence to determine the least travel to move for TC, CW or CCW
'atp = Actual tool position, rtp = Requested tool positon
Sub LeastTravel()
   NTool = 16 ' Number of tools changer holds
   CWPos = GetSelectedTool() - GetCurrentTool() ' Assume a CW move
   If CWPos < 0 Then ' CWPos < 0 ==> rtp < atp
      CWPos = CWPos + NTools
   End If
   CCWPos = NTools - CWPos
   If CWPos < CCWPos Then
      call CW()
   Else
      call CCW()
   End If
End Sub

should be IMHO


'Sequence to determine the least travel to move for TC, CW or CCW
'atp = Actual tool position, rtp = Requested tool positon
Sub LeastTravel()
   NTools = 16 ' Number of tools changer holds
   CWPos = GetSelectedTool() - GetCurrentTool() ' Assume a CW move
   If CWPos < 0 Then ' CWPos < 0 ==> rtp < atp
      CWPos = CWPos + NTools
   End If
   CCWPos = NTools - CWPos
   If CWPos < CCWPos Then
      call CW()
   Else
      call CCW()
   End If
End Sub

« Last Edit: April 04, 2018, 12:23:19 PM by TPS »
anything is possible, just try it.
if you find some mistakes, in my bad bavarian english,they are yours.

Offline jve

*
  •  128 128
    • View Profile
Re: ATC Geneva wheel for mill
« Reply #2 on: April 05, 2018, 12:52:54 AM »
I Change the Ntools to Ntool and vice versa but no luck i think that the problem is in the count of OEMTrig 9 it is only counting 1 , i spend long hours but i cannot see the mistake 

'Sequence to determine the least travel to move for TC, CW or CCW
'atp = Actual tool position, rtp = Requested tool positon
Sub LeastTravel()
   NTool = 16 ' Number of tools changer holds
   CWPos = GetSelectedTool() - GetCurrentTool() ' Assume a CW move
   If CWPos < 0 Then ' CWPos < 0 ==> rtp < atp
      CWPos = CWPos + NTool
   End If
   CCWPos = NTool - CWPos
   If CWPos < CCWPos Then
      call CW()
   Else
      call CCW()
   End If
End Sub

Function CW()'Rotation CW
   Dim x As Integer
   Dim CTPos As Integer 'Carrousel Tool Position Relative to OldTool Position
   CTPos=0
   ActivateSignal(OUTPUT9)'Turns the AC Motor On cw

   Sleep(50)

   For x=0 To CWPos
           While IsActive(OEMTrig9)'Wait for OEMTrig9 is off
      Sleep(10)
      Wend
           While NOT IsActive(OEMTrig9)'Wait for OEMTrig9 is on
      Sleep(10)
      Wend

            x=x+1
        Next x
    CTPos=x
   DeactivateSignal(OUTPUT9)

End Function

Function CCW()'Rotation CCW
   Dim y As Integer
   Dim CTPos As Integer 'Carrousel Tool Position Relative to OldTool Position
   CTPos=0
   Activatesignal(OUTPUT9)'atc motor revirsing relay
   ActivateSignal(OUTPUT10)'Turns the AC Motor On
    Sleep(50)
   
     For y=0 To CCWPos
           While IsActive(OEMTrig9)'Wait for OEMTrig9 is off
      Sleep(10)
      Wend
           While NOT IsActive(OEMTrig9)'Wait for OEMTrig9 is on
      Sleep(10)
      Wend

            y=y+1
        Next y
   CTPos=y
   DeactivateSignal(OUTPUT9)
   Deactivatesignal(OUTPUT10)'atc motor revirsing relay
End Function

Function AtcUp()'MAG UP
   DeActivateSignal(OUTPUT11)'relay for solonoid to lower/MAG UP
   code("G04 p01")'pause
           While IsActive(OEMTrig5)'Wait for OEMTrig5 is off Mag up
      Sleep(10)
      Wend
           While NOT IsActive(OEMTrig5)'Wait for OEMTrig5 is on Mag up
      Sleep(10)
      Wend
End Function

Offline TPS

*
  •  1,411 1,411
    • View Profile
Re: ATC Geneva wheel for mill
« Reply #3 on: April 05, 2018, 01:27:32 AM »
try to use a Input instead of OEMTrig.

what Controller are you using?
anything is possible, just try it.
if you find some mistakes, in my bad bavarian english,they are yours.

Offline jve

*
  •  128 128
    • View Profile
Re: ATC Geneva wheel for mill
« Reply #4 on: April 05, 2018, 03:46:08 AM »
Hi ,
I am Using CSMIO IPS

Offline TPS

*
  •  1,411 1,411
    • View Profile
Re: ATC Geneva wheel for mill
« Reply #5 on: April 05, 2018, 03:50:34 AM »
so why do you not read the Input drectly.
this work 100%, if have used it many times.

for eample

While GetCsmioIn(91,15) = False  
   Sleep(20)
Wend


'CSMIO read input
Public Function GetCsmioIn (ByVal adr As Integer, ByVal n As Integer) As Boolean
   If(GetInBit(adr, n)) Then
      GetCsmioIn = true
   Else
      GetCsmioIn = false
   End If
End Function




here is a links witch Shows the adresses:

http://en.cs-lab.eu/wp-content/uploads/2016/06/csmio-ip-s-konfiguracja-we_wy-artykul.pdf

« Last Edit: April 05, 2018, 03:52:31 AM by TPS »
anything is possible, just try it.
if you find some mistakes, in my bad bavarian english,they are yours.

Offline jve

*
  •  128 128
    • View Profile
Re: ATC Geneva wheel for mill
« Reply #6 on: April 05, 2018, 04:13:53 AM »
i Try with INPUT4 but still no luck i cannot understand why it is count 1 pulse on input4

Offline jve

*
  •  128 128
    • View Profile
Re: ATC Geneva wheel for mill
« Reply #7 on: April 05, 2018, 04:24:35 AM »
Hi I Can see the input is reading i can see from csmio input21 and from mach3 it is true input 4 i can see the led on and off

i dont know if it is from the logic since for example input 4 if the ATC jump for 2 tools it need to count 2 pulse in input 4 and it is always counting 1

Offline TPS

*
  •  1,411 1,411
    • View Profile
Re: ATC Geneva wheel for mill
« Reply #8 on: April 05, 2018, 04:24:43 AM »
if you put some Addition MSGBox instruction to your CW Routine you can how often
Input gets triggered

Function CCW()'Rotation CCW
   Dim y As Integer
   Dim CTPos As Integer 'Carrousel Tool Position Relative to OldTool Position
   CTPos=0
   Activatesignal(OUTPUT9)'atc motor revirsing relay
   ActivateSignal(OUTPUT10)'Turns the AC Motor On
    Sleep(50)
    
     For y=0 To CCWPos
           While IsActive(OEMTrig9)'Wait for OEMTrig9 is off
      Sleep(10)
      Wend
MSGBox "Input is off"
           While NOT IsActive(OEMTrig9)'Wait for OEMTrig9 is on
      Sleep(10)
      Wend
MSGBox "Input is on"
            y=y+1
        Next y
   CTPos=y
   DeactivateSignal(OUTPUT9)
   Deactivatesignal(OUTPUT10)'atc motor revirsing relay
End Function
anything is possible, just try it.
if you find some mistakes, in my bad bavarian english,they are yours.

Offline TPS

*
  •  1,411 1,411
    • View Profile
Re: ATC Geneva wheel for mill
« Reply #9 on: April 05, 2018, 04:31:48 AM »
sorry seems i going to get bild

Function CW()'Rotation CW
   Dim x As Integer
   Dim CTPos As Integer 'Carrousel Tool Position Relative to OldTool Position
   CTPos=0
   ActivateSignal(OUTPUT9)'Turns the AC Motor On cw

   Sleep(50)

   For x=0 To CWPos
           While IsActive(OEMTrig9)'Wait for OEMTrig9 is off
      Sleep(10)
      Wend
           While NOT IsActive(OEMTrig9)'Wait for OEMTrig9 is on
      Sleep(10)
      Wend

            x=x+1
        Next x
this is wrong,not needed, the for next Loop is counting itselv.
anything is possible, just try it.
if you find some mistakes, in my bad bavarian english,they are yours.