Here are some macro's I found that are designed for Orac 8 station turret, would this work for my one or could it be adapted?
Thanks
Mike
LinkBack Thread Tools Search this Thread Rate Thread Display Modes
#1 07-07-2008, 09:26 PM
shaftalignment Join Date: Mar 2006
Location: USA
Posts: 13
toolchanger macro doesn't work!
--------------------------------------------------------------------------------
Hi Everyone,
I have an 8 position Denford toolchanger that I am trying to make
work with Mach3.
The toolchanger has a dc motor that runs on 24vdc forward for a
toolchange then reverses on 12vdc to lockup in position. It stays
running in reverse at 12vdc to maintain a positive lock. It has 3
opto sensors that read a slotted disc to determine the tool position
and when to reverse. I have provided 5vdc to the sensors and pinned
them to input 1, 2, & 3. The dc motor has a DPDT Relay with 24vdc
applied to the normally open contacts (polarity for forward motion),
12vdc applied to the normally closed contacts (polarity for reverse)
and the motor leads connected to the common poles on the relay. the
relay is configured to Output 3 in Mach.
I can run the toolchanger manually thru mach by toggling output 3 on
and off. All the input LEDs turn on and off properly in mach. But my
M6 macro doesn't work. I know very little (nothing) about vbscript
and the macro is something I pieced together from others on this site
and another forum. I would greatly appreciate any help from the
experts on this site.
Here is the macro I have tried:
Tool = GetSelectedTool()
OldTool = GetCurrentTool()
NewTool = Tool
MaxToolNum = 8 'Max number of tools for the changer
While NewTool > MaxToolNum
NewTool = Question ("Enter New Tool Number up to " & MaxToolNum)
Wend
Call StartTool
While SelectedTool <> NewTool
Call CheckPins
Wend
SelectedTool = NewTool
Call StopTool
SetCurrentTool(NewTool )
'//// Subroutines /////////
Sub StartTool
ActivateSignal(Output3)
'Code "G4 P4.0" 'Wait for the tool to rotate past the sensor
While Ismoving()
Wend
End Sub
Sub CheckPins
If IsActive(Input3) And Not IsActive(Input2) And Not IsActive
(Input1) Then
NewTool = 1
End If
If Not IsActive(Input3) And Not IsActive(Input2) And Not IsActive
(Input1) Then
NewTool = 2
End If
If Not IsActive(Input3) And Not IsActive(Input2) And IsActive
(Input1) Then
NewTool = 3
End If
If IsActive(Input3) And Not IsActive(Input2) And IsActive(Input1)
Then
NewTool = 4
End If
If IsActive(Input3) And IsActive(Input2) And IsActive(Input1) Then
NewTool = 5
End If
If Not IsActive(Input3) And IsActive(Input2) And IsActive(Input1)
Then
NewTool = 6
End If
If Not IsActive(Input3) And IsActive(Input2) And Not IsActive
(Input1) Then
NewTool = 7
End If
If IsActive(Input3) And IsActive(Input2) And Not IsActive(Input1)
Then
NewTool = 8
End If
End Sub
Sub Stoptool
DeActivateSignal(Output3)
End Sub
shaftalignment
View Public Profile
Send a private message to shaftalignment
Find all posts by shaftalignment
Add shaftalignment to Your Contacts
#2 07-11-2008, 07:39 AM
PoppaBear10 Join Date: Feb 2005
Location: usa
Posts: 472
Denford Lathe ATC M6 for Mach3 Turn
--------------------------------------------------------------------------------
Here you go, this will do it for you.........
Remember Lathe tools are called from the code/mdi T0606 M6 (for tool 6, offset 6) then M6.
'M6Start.M1s
Sub Main()
NewTool = GetSelectedTool()
OldTool = GetCurrentTool()
MaxToolNum = 8 'Max number of tools for the changer
While NewTool > MaxToolNum
NewTool = Question ("Enter New Tool Number up to " & MaxToolNum)
Wend
If NewTool = OldTool Or NewTool = 0 Then
Exit Sub
End If
If OldTool <> NewTool Then
While Slot <> NewTool
ActivateSignal(OUTPUT3) 'start rotating forward
If IsActive(INPUT3) And Not IsActive(INPUT2) And Not IsActive (INPUT1) Then
Slot = 1
End If
If Not IsActive(INPUT3) And Not IsActive(INPUT2) And Not IsActive (INPUT1) Then
Slot = 2
End If
If Not IsActive(INPUT3) And Not IsActive(INPUT2) And IsActive (INPUT1) Then
Slot = 3
End If
If IsActive(INPUT3) And Not IsActive(INPUT2) And IsActive(INPUT1) Then
Slot = 4
End If
If IsActive(INPUT3) And IsActive(INPUT2) And IsActive(INPUT1) Then
Slot = 5
End If
If Not IsActive(INPUT3) And IsActive(INPUT2) And IsActive(INPUT1) Then
Slot = 6
End If
If Not IsActive(INPUT3) And IsActive(INPUT2) And Not IsActive (INPUT1) Then
Slot = 7
End If
If IsActive(INPUT3) And IsActive(INPUT2) And Not IsActive(INPUT1) Then
Slot = 8
End If
Wend
Sleep(100)
DeActivateSignal(OUTPUT3) 'stop rotating forward, rotate backward now
End If
SetOEMDRO(824,NewTool)
Code "G4 P2" 'A pause time of 2 seconds to give your reverse turret time to seat
While IsMoving
Wend
End Sub
Main
'have fun,
'Scott
__________________
Commercial Mach3: Screens (regular and flash), Wizards, Plug-ins, Brains, Controls, PLCs, Macros, ATC's, machine design/build, retrofit/repair, and EMC2.
http://www.FusionCNC.com