Hello Guest it is March 28, 2024, 06:01:42 PM

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Marco A

Pages: 1
1
'**********************************************************************************
'*
'*   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

2

'**************************************************************************
'*   Macro for automatic tool changer (ATC) in the script M6Start.m1s
'*   with two axis moving the ATC.
'*
'*   Description:
'*
'*   We used two axis (B-Axis and C-Axis) to move two motors, one motor
'*   is used to move the ATC (with the B-axis). And, the C-axis
'*   (The second motor) is used to rotate the ATC and select the tool.
'*   It is used one out (output1) to hold or relase the tool, when it is
'*   necessary.
'*
'*    Process:
'*
'*    1. Z-axis goes to "Z zero".
'*    2. Then, Z-axis moves to the height of the ATC.
'*    3. The ATC comes to a programed position with the B-axis, and takes
'*      the tool.
'*    4. The output1 relases the tool and Z-axis goes up.
'*   5. Whith the C-axis we rotate the ATC to the new tool.
'*     6. The Z-axis goes down and holds the tool activating Output1.
'*    7. The ATC returns to the start position and Z-axis returns to
'*      home.
'*
'*
'*    Caution:
'*
'*   It is necessary consider two inputs for home, one for
'*   each axis (C and B) Because they need a start position to know
'*   when the ATC takes the tool or where is each tool.
'*   Also is necessary to edit the button´s script "Ref all home" with
'*   the code "DoButton( 25 ), DoButton( 26 )", letting ATC found a
'*   start position, and in the menu "General Config" indicate that
'*   axis B and C works like rotative axis.
'*   The units of the axis B and C are in degrees.
'*
'*               Marco A Perez C.
'*                Sadosa S.A. de C.V.
'*
'* '**************************************************************************



Sub Main()         'Definir variables
OldTool = GetOEMDRO (1200)    
x = GetToolChangeStart( 0 )
y = GetToolChangeStart( 1 )
z = GetToolChangeStart( 2 )
a = GetToolChangeStart( 3 )
b = GetToolChangeStart( 4 )
c = GetToolChangeStart( 5 )
tool = GetSelectedTool()
NewTool = tool
MaxToolNum = 5            'Maximum number of tools to use.
ToolDown   = -50       'Height for tool change.
ToolUp     = 0.0          'Height the Z-axis during tool change.
If NewTool = OldTool Then
   Exit Sub
End If
While NewTool > MaxToolNum
NewTool = Question ("Place valid tool number (1 to 5)")
Wend
Call MovePos(OldTool)      'The ATC identifies the old tool.
While IsMoving()
Wend
Code "G53 Z" & ToolDown      'The Z-axis goes to ATC height
Code "G4 P.75"
While IsMoving()
Wend
Code "G00 G53 B1.0"      'The ATC moves to Z-axis and takes the tool
While IsMoving()
Wend
ActivateSignal(Output1)    'Send signal to relase tool.
Code "G4 P1.0"          'Wait a second.
Code "G53 Z" & ToolUp      'The Z-axis goes up and waits here.
Call  MovePos(NewTool)      'The ATC moves to the new tool.
While IsMoving()
Wend
Code "G53 Z" & ToolDown      'Z-axis moves down and takes the tool
Code "G4 P.75"
While IsMoving()
Wend
DeActivateSignal(Output1)    'Send signal to hold tool.
Code "G4 P1.0"          'wait a second.
While IsMoving()
Wend
Code "G00 G53 B0.0"      'The ATC returns to start position.
While IsMoving()
Wend

Code "G53 Z" & ToolUp      'The Z-axis up, and it's ready to use.
Call SetUserDRO (1200,NewTool)
SetCurrentTool( NewTool )
End Sub

Sub MovePos(ByVal ToolNumber As Integer)

Select Case ToolNumber      'Positions to each tool in C-axis
       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   

3
Aquí esta la descripción del mismo macro pasado pero en español....

'********************************************************
'*
'*   Macro para intercambiador de herramientas automático del script M6Start.m1s
'*
'*   Descripción:
'*
'*   Se cuenta con posiciones fijas de diferentes herramientas,
'*   Primeramente se va a una posición segura el EjeZ y se posiciona en la última
'*    herramienta que utilizó y la deja. Después se mueve a la posición de la nueva
'*    herramienta y la toma, regresando al final a la misma posición segura.
'*
'*    Procedimiento:
'*
'*    1. Se manda al Eje Z a cero máquina.
'*    2. Se mueve el Eje Z a una posición segura para bajar
'*    3. El eje Z es posicionado a la altura de las herramientas.
'*    4. Se mueve a la posición de la herramienta pasada, primero en 'X' y despues en 'Y'.
'*   5. Se suelta la herramienta y sube el eje Z a una posición dada.
'*     6. Se mueve a la posición de la herramienta nueva.
'*    7. Se baja a la altura de las herramientas y toma la herramienta.
'*   8. Regresa a la posición segura y sube a cero 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
Code "G00 G53 Z" & ToolUp     'Subir a cero máquina el eje Z.
While IsMoving()
Wend
Code "G53 y10"        'Posición segura.
While IsMoving()
Wend
Code "G53 Z" & ToolDown      'Bajar a la altura de el cambia herramientas.
While IsMoving()
Wend
Call MovePos(OldTool)      'Mover a la posición de la herramienta anterior primero 'X' y despues en 'Y'.
While IsMoving()
Wend
ActivateSignal(Output1)    'Mandar señal para soltar herramienta y esperar a que la suelte.
Code "G4 P1.0"
Code "G53 Z" & ToolUp        'Subir el eje Z para alejarse de la herramienta. (o a una posición donde no pegue con las herramientas)
While IsMoving()
Wend
Call MovePos(NewTool)      'Moverse a la posición donde está la nueva herramienta.
While IsMoving()
Wend
Code "G53 Z" & ToolDown      'Bajar el Eje Z para tomar la Herramienta.
While IsMoving()
Wend
DeActivateSignal(Output1)    'Mandar señal para sostener la herramienta.
Code "G4 P1.0"
Code "G53 y10"        'Regresar a Posición segura.
While IsMoving()
Wend
Code "G53 Z" & ToolUp      'Subir el Eje Z y posicionar en donde estába anteriormente.
Call SetUserDRO (1200,NewTool)
SetCurrentTool( NewTool )
End Sub

Sub MovePos(ByVal ToolNumber As Integer)

Select Case ToolNumber      'Subrutina donde estan las posiciones de cada herramienta.
       Case Is = 1
         Code "G00 G53 x12.0"
    Code "G00 G53 y5.0"
       Case Is = 2
         Code "G00 G53 x24.0"
    Code "G00 G53 y5.0"
       Case Is = 3
         Code "G00 G53 x36.0"
    Code "G00 G53 y5.0"
       Case Is = 4
         Code "G00 G53 x48.0"
    Code "G00 G53 y5.0"
       Case Is = 5
         Code "G00 G53 x60.0"
    Code "G00 G53 y5.0"
End Select

End Sub
Main   

4
Here is a macro for automatic tool changer.

'********************************************************
'*
'*   Macro for the Automatic tool changer in script M6Start.m1s
'*
'*   Description:
'*
'*   We have defined fixed positions for each tool.
'*   When you input M6 code and a new tool,
'*   First, the Z axis goes to "machine zero",
'*   then goes to the position of the last tool used
'*   and leaves the tool. After that, the Z axis goes
'*   to the new tool position and takes the new tool. 
'*   Finaly, returns to "Machine zero".
'*   Before the program begins, the macro checks if the
'*   tool number is valid.
'*
'*    Process:
'*
'*    1. Z-axis goes to "Machine zero"
'*    2. Then, Z-axis goes to the safe position defined by the user.
'*    3. The Z axis goes down to the height to the tools.
'*    4. Z axis moves to the position of the last tool, moving the
'*   X-axis before the Y-axis.
'*   5. The spindle releases the actual tool and the z-axis moves to
'*   the position of the new tool.
'*    6. The Z-axis takes the new tool and returns at the safe position
'*   7. Z-axis goes to "Machine Zero".
'*
'*
'*                                               Marco A. Perez C.
'*                   Sadosa S.A. de C.V.
'*
'* ***********************************************************************

Sub Main()         'Define variables
OldTool = GetOEMDRO (1200)    
x = GetToolChangeStart( 0 )
y = GetToolChangeStart( 1 )
z = GetToolChangeStart( 2 )
a = GetToolChangeStart( 3 )
b = GetToolChangeStart( 4 )
c = GetToolChangeStart( 5 )
tool = GetSelectedTool()
NewTool = tool
MaxToolNum = 5            'Maximum number of tools to use.
ToolDown   = -50       'Height for the tool change.
ToolUp     = 0.0          'Height the Z-axis for the tool change.
PosSec      = 50.0      'Safe Position.
If NewTool = OldTool Then
   Exit Sub
End If
While NewTool > MaxToolNum
NewTool = Question ("Place valid tool number (between 1 y 5)")
Wend
Code "G00 G53 Z" & ToolUp     'The z-axis is going to "machine zero"
While IsMoving()
Wend
Code "G53 y" & PosSec       'Going to safe position.   
While IsMoving()
Wend
Code "G53 Z" & ToolDown      'Down to the height of tools
While IsMoving()
Wend
Call MovePos(OldTool)      'Going to the last position to relase the old tool.
While IsMoving()
Wend
ActivateSignal(Output1)    'Relase the tool.
Code "G4 P1.0"
Code "G53 Z" & ToolUp        
While IsMoving()
Wend
Call MovePos(NewTool)      'Go to the new tool position.
While IsMoving()
Wend
Code "G53 Z" & ToolDown      'down the z-axis to hold the tool.
While IsMoving()
Wend
DeActivateSignal(Output1)    'hold the new tool.
Code "G4 P1.0"
Code "G53 y" & PosSec       'Returns to the safe position.
While IsMoving()
Wend
Code "G53 Z" & ToolUp      'Returns z-axis to "machine zero".
Call SetUserDRO (1200,NewTool)
SetCurrentTool( NewTool )
End Sub

Sub MovePos(ByVal ToolNumber As Integer)

Select Case ToolNumber      'Here set the position of each tool.
       Case Is = 1
         Code "G00 G53 x12.0"
    Code "G00 G53 y5.0"
       Case Is = 2
         Code "G00 G53 x24.0"
    Code "G00 G53 y5.0"
       Case Is = 3
         Code "G00 G53 x36.0"
    Code "G00 G53 y5.0"
       Case Is = 4
         Code "G00 G53 x48.0"
    Code "G00 G53 y5.0"
       Case Is = 5
         Code "G00 G53 x60.0"
    Code "G00 G53 y5.0"
End Select

End Sub
Main   

Pages: 1