mach3 e torretta originale emco 120

Sezione dedicata a Mach3
Rispondi
cncmarco
Newbie
Newbie
Messaggi: 3
Iscritto il: martedì 28 aprile 2020, 15:09

mach3 e torretta originale emco 120

Messaggio da cncmarco » mercoledì 7 dicembre 2022, 21:38

Buonasera a tutti,
è la prima volta che scrivo qui anche se sono iscritto al Forum da tempo, che seguo spesso con interesse.
Provo a chiedere aiuto per la compilazone di una macro che gestisca la torretta del tornio in oggetto con configurazione originale, ovvero i quattro input che ne danno la posizione univoca.
Ho già adattato un "brain" che sente correttamente ed imposta il giusto numero di utensile nella casella "Tool N."(ovvero CurrentTool), quando faccio girare la torretta i numeri variano in sequenza da 1 a 8 , come impostato dal "brain".
Quello che proprio non riesco a fare è sfruttare il numero che si aggiorna nel "Tool N.".
L'intento è quello di fare ruotare la torretta (output1 on) ed al raggiungimento del numero utensile desiderato (leggendo appunto il valore nel Tool N )
invertire la rotazione (output1 off).
Inoltre vorrei eseguire un controllo finale prima di uscire dalla macro, che attesti che l'utensile posizionato sia effettivamente quello indicato nel "Tool N."
Questo perchè il perno di blocco potrebbe tardare ad inserirsi in posizione, quindi perdendo la posizione effettiva.
Ho già cercato su tutti i forum che trattano questi argomenti ma non c'è nulla che risolva questo problema, in tanti hanno retrofittato con un motore passo passo ma la posizione non è univoca e questo alla lunga si paga.

Ringrazio anticipatamente chi avrà la bontà di aiutarmi.

Saluti.

torn24
God
God
Messaggi: 5073
Iscritto il: venerdì 1 febbraio 2008, 11:28
Località: Modena

Re: mach3 e torretta originale emco 120

Messaggio da torn24 » giovedì 8 dicembre 2022, 5:06

Per il brain non saprei cosa fare, ma un cambio utensile tornio si può creare solo con macro.
Esistono macro per tornio cambio utensile e si può adattare o almeno prendere spunto da esse per farlo.Non conosco la macchina e la scheda di controllo, se ha un blocco meccanico o meno, normalmente per la rotazione della torretta viene gestito assegnando il 4 asse A alla torretta, da qui il posizionamento, poi se avesse un fermo meccanico bisogna che la scheda abbia segnali di input e output, per sentire la posizione e attivare il blocco mediante qualche attuatore.
Se mi descrivi come è fatto meccanicamente il cambio utensile, se è collegato all'asse A, se ha un blocco e segnali di posizionamento, quali sono i segnali input e output di mach3 e che funzione svolgano. Forse potrei modificarti una macro esistente ma abbandonando il brain, perché non so come usarlo.
CIAO A TUTTI !

torn24
God
God
Messaggi: 5073
Iscritto il: venerdì 1 febbraio 2008, 11:28
Località: Modena

Re: mach3 e torretta originale emco 120

Messaggio da torn24 » giovedì 8 dicembre 2022, 5:31

Questo è un esempio di macro che ho modificato senza brain, il cambio utensile non ha blocco meccanico. Funziona cosi, se l'utensile programmato è uguale all'utensile attuale non fare niente, altrimenti ruota l'asse A torretta dei gradi corrispondenti all'utensile, alla fine utensile attuale è uguale all'utensile programmato. Può essere modificata dando la giusta posizione X Z, numero di utensili giusti, e eventuale aggiungere blocco torretta diverso.

Solo un esempio di macro senza brain.

Codice: Seleziona tutto


SUB MAIN
tool = GetSelectedTool()
NewTool = tool
Oldtool=GetCurrentTool()
If NewTool = OldTool Then
   Exit Sub
End If

Code"G53 X0.2"                              'Move to tool change location
While Ismoving()
Wend                          
Code"G53 Z0.2"
While Ismoving()
Wend

ActivateSignal(output1)              'unlock the turrent
Sleep(1000)                                    'Give it time to move to end of stroke

If NewTool = 1 then        ' Check for the Tool #
   Code"G0 A0.000"         ' Move to position
   While Ismoving()           'wait for the movement to stop
   Wend
   End If

If NewTool = 2 then
   Code"G0 A45"
   While Ismoving()
   Wend
   End If

If NewTool = 3 then
   Code"G0 A90"
   While Ismoving()
   Wend
   End If

If NewTool = 4 then
   Code"G0 A135"
   While Ismoving()
   Wend
   End If

If NewTool = 5 then
   Code"G0 A180"
   While Ismoving()
   Wend
   End If

If NewTool = 6 then
   Code"G0 A225"
   While Ismoving()
   Wend
   End If
SetCurrentTool( NewTool )   
END SUB

CIAO A TUTTI !

cncmarco
Newbie
Newbie
Messaggi: 3
Iscritto il: martedì 28 aprile 2020, 15:09

Re: mach3 e torretta originale emco 120

Messaggio da cncmarco » venerdì 9 dicembre 2022, 8:31

Buongiorno,
ringrazio per la risposta.
Nel mio caso la macro deve gestire il classico posizionamento con motore dc originale, quindi va tenuto conto dei quattro input della torretta.
Sono però riuscito a risolvere il mio problema e pertanto condivido la soluzione, nel caso qualcuno potesse essere interessato.
Allego il brain che "scrive" in automatico nel "Tool N." la posizione effettiva (non farina del mio sacco ma disponibile in rete).
Io l'ho usato per fare il controllo finale prima di uscire dalla macro.
Di seguito la macro che gestisce in modo ottimale il tutto:

'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(OUTPUT1) 'rotazione torretta
If IsActive(INPUT1) And IsActive(INPUT2) And IsActive (INPUT3) And Not IsActive (INPUT4) Then
Slot = 1
End If
If IsActive(INPUT1) And IsActive(INPUT2) And Not IsActive (INPUT3) And Not IsActive (INPUT4) Then
Slot = 2
End If
If IsActive(INPUT1) And IsActive(INPUT2) And Not IsActive (INPUT3) And IsActive (INPUT4) Then
Slot = 3
End If
If IsActive(INPUT1) And Not IsActive(INPUT2) And Not IsActive (INPUT3) And IsActive(INPUT4) Then
Slot = 4
End If
If IsActive(INPUT1) And Not IsActive(INPUT2) And IsActive(INPUT3) And IsActive (INPUT4) Then
Slot = 5
End If
If Not IsActive(INPUT1) And Not IsActive(INPUT2) And IsActive(INPUT3) And IsActive (INPUT4) Then
Slot = 6
End If
If Not IsActive(INPUT1) And IsActive(INPUT2) And IsActive (INPUT3) And IsActive (INPUT4) Then
Slot = 7
End If
If Not IsActive(INPUT1) And IsActive(INPUT2) And IsActive(INPUT3) And Not IsActive (INPUT4) Then
Slot = 8
End If
Wend
Sleep(100)
DeActivateSignal(OUTPUT1) 'rotazione opposta
End If


Code "G4 P2" 'pausa
While IsMoving
Wend

CurrPos = GetCurrentTool()


If NewTool <> CurrPos Then
MsgBox("Selezione utensile errato")
DoButton(3)
End
End If

End Sub
Main

Funziona molto bene e spero che possa interessare ad altri.

Saluti.
Non hai i permessi necessari per visualizzare i file e le foto allegati in questo messaggio. Per visualizzare tali file devi registrarti ed effettuare il Login

Rispondi

Torna a “Mach3”