1
VB and the development of wizards / Re: Macro for automatic tool changer (ATC) in the script M6Start with two axis
« on: September 01, 2011, 12:19:54 PM »
'**********************************************************************************
'*
'* Macro para intercambiador de herramientas automático del script M6Start.m1s
'*
'* Descripción:
'*
'* Se usan dos ejes el B y C para mover dos motores,
'* El eje B se usa para acercar o alejar el carrusel de herramientas;
'* El eje C se usa para girar el carrusel y seleccionar la herramienta deseada;
'* adicional mente se utiliza una saluda (Output1) para sujetar o soltar la herramienta.
'*
'* Procedimiento:
'*
'* 1. Se manda al eje Z a casa.
'* 2. El eje Z es posicionado a la altura del carrusel de herramientas.
'* 3. Se acerca el carrusel con una posición dada al eje B y toma la herramienta..
'* 4. Se suelta la herramienta con Output1 y sube el eje Z.
'* 5. Con el eje C se gira el carrusel de herramientas.
'* 6. El eje Z baja y toma la herramienta con Output1.
'* 7. Se aleja el carrusel de herramientas y el eje Z vuelve a casa.
'*
'* Advertencia:
'*
'* Para estar seguro que el eje C y B no se muevan y pierdan su posición
'* es necesario colocar limites de casa y habilitarlos en "ports and pins",
'* además se debe editat el script del boton "Ref all home" colocandole las siguientes
'* dos líneas al final "DoButton( 25 )" y "DoButton( 25 )", esto para que busque casa
'* de esos ejes cuando se mande a casa toda la máquina.
'*
'*
'* Sadosa S.A. de C.V.
'*
'* ********************************************************************************
Sub Main() 'Definir variables
OldTool = GetOEMDRO (1200) 'Tomar el valor de la herramienta actual.
x = GetToolChangeStart( 0 )
y = GetToolChangeStart( 1 )
z = GetToolChangeStart( 2 )
a = GetToolChangeStart( 3 )
b = GetToolChangeStart( 4 )
c = GetToolChangeStart( 5 )
tool = GetSelectedTool()
NewTool = tool
MaxToolNum = 5 'Número máximo de herramientas que se puede utilizar.
ToolDown = -50 'Posición de Z a la altura del carrusel de herramientas.
ToolUp = 0.0 'Posición de Z arriba del carrusel.
If NewTool = OldTool Then
Exit Sub
End If
While NewTool > MaxToolNum
NewTool = Question ("Ingresa nùmero de herramienta vàlido (Entre 1 y 5)")
Wend
Call MovePos(OldTool)
While IsMoving()
Wend
Code "G53 Z" & ToolDown
Code "G4 P.75"
While IsMoving()
Wend
Code "G00 G53 B1.0"
While IsMoving()
Wend
ActivateSignal(Output1) 'Mandar señal para soltar herramienta
Code "G4 P1.0" 'Espera mietras se suelta la herramienta
Code "G53 Z" & ToolUp
Call MovePos(NewTool)
While IsMoving()
Wend
Code "G53 Z" & ToolDown
Code "G4 P.75"
While IsMoving()
Wend
DeActivateSignal(Output1) 'Mandar señal para sostener la herramienta
Code "G4 P1.0" 'Tiempo de espera para sostener la herramienta
While IsMoving()
Wend
Code "G00 G53 B0.0"
While IsMoving()
Wend
Code "G53 Z" & ToolUp
Call SetUserDRO (1200,NewTool)
SetCurrentTool( NewTool )
End Sub
Sub MovePos(ByVal ToolNumber As Integer)
Select Case ToolNumber 'Posiciones del eje C donde se encuentra cada herramienta
Case Is = 1
Code "G00 G53 C1.0"
Case Is = 2
Code "G00 G53 C2.0"
Case Is = 3
Code "G00 G53 C3.0"
Case Is = 4
Code "G00 G53 C4.0"
Case Is = 5
Code "G00 G53 C5.0"
Case Is = 6
Code "G00 G53 C6.0"
Case Is = 7
Code "G00 G53 C7.0"
Case Is = 8
Code "G00 G53 C8.0"
End Select
End Sub
Main
'*
'* Macro para intercambiador de herramientas automático del script M6Start.m1s
'*
'* Descripción:
'*
'* Se usan dos ejes el B y C para mover dos motores,
'* El eje B se usa para acercar o alejar el carrusel de herramientas;
'* El eje C se usa para girar el carrusel y seleccionar la herramienta deseada;
'* adicional mente se utiliza una saluda (Output1) para sujetar o soltar la herramienta.
'*
'* Procedimiento:
'*
'* 1. Se manda al eje Z a casa.
'* 2. El eje Z es posicionado a la altura del carrusel de herramientas.
'* 3. Se acerca el carrusel con una posición dada al eje B y toma la herramienta..
'* 4. Se suelta la herramienta con Output1 y sube el eje Z.
'* 5. Con el eje C se gira el carrusel de herramientas.
'* 6. El eje Z baja y toma la herramienta con Output1.
'* 7. Se aleja el carrusel de herramientas y el eje Z vuelve a casa.
'*
'* Advertencia:
'*
'* Para estar seguro que el eje C y B no se muevan y pierdan su posición
'* es necesario colocar limites de casa y habilitarlos en "ports and pins",
'* además se debe editat el script del boton "Ref all home" colocandole las siguientes
'* dos líneas al final "DoButton( 25 )" y "DoButton( 25 )", esto para que busque casa
'* de esos ejes cuando se mande a casa toda la máquina.
'*
'*
'* Sadosa S.A. de C.V.
'*
'* ********************************************************************************
Sub Main() 'Definir variables
OldTool = GetOEMDRO (1200) 'Tomar el valor de la herramienta actual.
x = GetToolChangeStart( 0 )
y = GetToolChangeStart( 1 )
z = GetToolChangeStart( 2 )
a = GetToolChangeStart( 3 )
b = GetToolChangeStart( 4 )
c = GetToolChangeStart( 5 )
tool = GetSelectedTool()
NewTool = tool
MaxToolNum = 5 'Número máximo de herramientas que se puede utilizar.
ToolDown = -50 'Posición de Z a la altura del carrusel de herramientas.
ToolUp = 0.0 'Posición de Z arriba del carrusel.
If NewTool = OldTool Then
Exit Sub
End If
While NewTool > MaxToolNum
NewTool = Question ("Ingresa nùmero de herramienta vàlido (Entre 1 y 5)")
Wend
Call MovePos(OldTool)
While IsMoving()
Wend
Code "G53 Z" & ToolDown
Code "G4 P.75"
While IsMoving()
Wend
Code "G00 G53 B1.0"
While IsMoving()
Wend
ActivateSignal(Output1) 'Mandar señal para soltar herramienta
Code "G4 P1.0" 'Espera mietras se suelta la herramienta
Code "G53 Z" & ToolUp
Call MovePos(NewTool)
While IsMoving()
Wend
Code "G53 Z" & ToolDown
Code "G4 P.75"
While IsMoving()
Wend
DeActivateSignal(Output1) 'Mandar señal para sostener la herramienta
Code "G4 P1.0" 'Tiempo de espera para sostener la herramienta
While IsMoving()
Wend
Code "G00 G53 B0.0"
While IsMoving()
Wend
Code "G53 Z" & ToolUp
Call SetUserDRO (1200,NewTool)
SetCurrentTool( NewTool )
End Sub
Sub MovePos(ByVal ToolNumber As Integer)
Select Case ToolNumber 'Posiciones del eje C donde se encuentra cada herramienta
Case Is = 1
Code "G00 G53 C1.0"
Case Is = 2
Code "G00 G53 C2.0"
Case Is = 3
Code "G00 G53 C3.0"
Case Is = 4
Code "G00 G53 C4.0"
Case Is = 5
Code "G00 G53 C5.0"
Case Is = 6
Code "G00 G53 C6.0"
Case Is = 7
Code "G00 G53 C7.0"
Case Is = 8
Code "G00 G53 C8.0"
End Select
End Sub
Main