Realizzare macro mach3 turn

Sezione dedicata a Mach3
Rispondi
silver151190
Newbie
Newbie
Messaggi: 30
Iscritto il: giovedì 9 aprile 2015, 21:05
Località: Modena

Realizzare macro mach3 turn

Messaggio da silver151190 » giovedì 18 agosto 2016, 15:13

Ciao a tutti, scrivo qui, spero sia la sezione adatta.. sto costruendo un tornio cn e voglio utilizzare una torretta baruffaldi a 6 posizioni. Per poterla usare comodamente vorrei realizzare una macro che faccia alcuni semplici cose ma non ho esperienza in programmazione e vorrei chiedere qui a chi è più esperto un aiuto. In breve quando richiamo l utensile dovrebbe:
-Verificare la posizione
-Se diversa, disattiva output (freno elettromeccanico) azionare un output che attiva un relè per far ruotare il motore della torretta fino a che non legge l input della posizione corretta (6 input, 1 per posizione)
-quando corretta attica un secondo output che aziona il motore in senso contrario e blocca la torretta.
-spegni motore(spegni output)
-attiva output (freno)
-richiama posizione utensile.

Se qualcuno fosse in grado anche solo di aiutarmi a realizzarla ne sarei molto grato... grazie in anticipo...

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

Re: Realizzare macro mac3 turn

Messaggio da torn24 » giovedì 18 agosto 2016, 16:11

Ciao, il tuo "algoritmo" soluzione di cambio utensile, è praticamente quello adottato da macchine professionali, macchine grosse e che fanno grosse asportazioni, per torni hobbystici piccoli e che asportano poco materiale, 1 mm su diametro, può essere usato un sistema più semplice sia nella programmazione sia nella meccanica, ossia muovere la torretta con un motore passo passo, collegato alla torretta con cinghia o ingranaggio di riduzione, in questo modo puoi spostare una torretta pesante, e la torretta verrà tenuta ferma dal motore passo passo che ha una coppia resistente moltiplicata per la riduzione tra motore e torretta.

Per trovare codice di questo tipo è bene fare ricerche in inglese visto che la comunità USA è molto consistenze si trovano soluzioni che magari in Italia sono più rari e difficili.

Qui un link per soluzione con motore passo passo, senza fermi senza relè e senza sensori di posizione, si basa come gli assi del tornio con i passi del motore, l'asse torretta è asse A.
Link forum
https://www.machsupport.com/forum/index ... ic=25198.0

Codice da MODIFICARE E COMPRENDERE

Codice: Seleziona tutto

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 GetCurrentTool() = 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 GetCurrentTool() = 2 then
   Code"G0 A45"
   While Ismoving()
   Wend
   End If

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

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

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

If GetCurrentTool() = 6 then
   Code"G0 A225"
   While Ismoving()
   Wend
   End If

If GetCurrentTool() = 7 then
   Code"G0 A270"
   While Ismoving()
   Wend
   End If

If GetCurrentTool() = 8 then
   Code"G0 A315"
   While Ismoving()
   Wend
   End If

DeacctivateSignal(output1)              'Release air cylinder
Sleep(2000)                                          'Give it time to move to end of stroke

End
Se la tua macchina deve fare forte asportazione e si tratta di un tornio che necessita di fermi meccanici, allora il tuo sistema è da considerare, ma la cosa è molto più complicata e non so se trovi codice pronto o qualcuno che te lo realizzi, comunque un utente del forum ha fatto una torretta simile a quella che vorresti fare tu e magari se trovi il contatto potrebbe darti qualche dritta.

Ma se può andare userei il sistema che ti ho proposto per la sua semplicità di programma e di meccanica, se usi un motore con molta coppia "magari un nema 34, e una forte riduzione la torretta non dovrebbe muoversi"
CIAO A TUTTI !

silver151190
Newbie
Newbie
Messaggi: 30
Iscritto il: giovedì 9 aprile 2015, 21:05
Località: Modena

Re: Realizzare macro mac3 turn

Messaggio da silver151190 » giovedì 18 agosto 2016, 16:43

Grazie della risposta Tom, io la torretta l ho già per questo ho necessità di questa macro... so che sarebbe più semplice ma è un ottima torretta e molto robusta, ora provo a fare qualche ricerca per vedere se trovo il ragazzo che dici tu!

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

Re: Realizzare macro mac3 turn

Messaggio da torn24 » venerdì 19 agosto 2016, 8:08

Ciao ho provato a mettere giù un esempio di programma.
SICURAMENTE NON FUNZIONA AL PRIMO COLPO.
Ma andrà modificato per adattarlo e farlo funzionare, ma LO SCHEMA IL CUORE del programma dovrebbe funzionare, FACENDO AGGIUNTE E CORREZIONI necessarie.

Il fatto che le macro sono in VBSCRIPT e un po conosco il linguaggio, MA poi ci sono funzioni proprie solo di MACH3, e non è che mi metto a fare macro
per mach3 tutte le settimane.

Una cosa strana provandolo, non mi compaiono le messagebox, e non so perché, comunque il programma è abbastanza commentato e puoi modificarlo
tu avendo una base di partenza CONSISTENTE e non dovendo pensare e inventarti tutto.


PROGRAMMA.

Codice: Seleziona tutto



' Inserire il codice dentro un file M
'******************************************
' COSA CERCA DI FARE IL PROGRAMMA
'**********************************
'**********************************
'Verificare la posizione
'-Se diversa, disattiva Output (freno elettromeccanico)
' azionare un Output che attiva un relè per far ruotare il motore della torretta fino a che non legge l Input della posizione corretta (6 Input, 1 per posizione)
'-quando corretta attica un secondo Output che aziona il motore In senso contrario e blocca la torretta. 
'-spegni motore(spegni Output)
'-attiva Output (freno)
'-richiama posizione utensile.
'**********************************

'DICHIARO LE VARIABILI NECESSARIE
Option Explicit

Dim FrenoElettromeccanico As Integer 
Dim Motore As Integer
Dim Utensile1 As Integer
Dim Utensile2 As Integer
Dim Utensile3 As Integer
Dim Utensile4 As Integer
Dim Utensile5 As Integer
Dim Utensile6 As Integer
Dim PosizioneX As Integer
Dim PosizioneZ As Integer

'ASSEGNO ALLE VARIABILI GLI OUTPUT E GLI INPUT
'Basta cambiare i valori delle variabili per scegliere quali 
'INPUT OUTPUT USARE senza modificare il codice programma


FrenoElettromeccanico=OUTPUT1
Motore=OUTPUT2
Utensile1 =INPUT1
Utensile2 =INPUT2
Utensile3 =INPUT3
Utensile4 =INPUT4
Utensile5 =5'INPUT5 ESISOTNO COSTANTI DA INPUT1 A INPUT4 SCEGLIERE NOMI DALLA LISTA PER PIN 5 E 6 
Utensile6 =6'INPUT6

'scegliere la posizione di cambio utensile, distanza dallo zero pezzo 

PosizioneX=20
PosizioneZ=2


'INIZIO CODICE CAMBIO UTENSILE




If GETOEMDRO(800)<PosizioneX Or GETOEMDRO(802) < PosizioneZ Then
    Print("POSIZIONE CAMBIO UTENSILE NON CORRETTA")
    Print GETOEMDRO(800)
    Print GETOEMDRO(802)
    print GetSelectedTool()	
	
Else 
    DeactivateSignal(FrenoElettromeccanico)'DISATTIVO IL FRENO
    ActivateSignal(Motore)'ATTIVO IL MOTORE IN UN UNICA DIREZIONE
    Dim SENSORE As Integer
    
    'Seleziono il sensore da leggere
    'in base all'utensile programmato 
    ' ESEMPIO T4M6
    
    Select Case GetSelectedTool() ' FORSE BISOGNA USARE GetSelectedTool() DA PROVARE
        Case 1
            SENSORE=Utensile1
        Case 2
            SENSORE=Utensile2
        Case 3
            SENSORE=Utensile3
        Case 4
            SENSORE=Utensile4
        Case 5
            SENSORE=Utensile5
        Case 6
            SENSORE=Utensile6
        Case Else
             Print("UTENSILE PROGRAMMATO NON VALIDO")
             End
    End Select
    
    'IL WHILE LEGGE IL SENSORE E TERMINA QUANDO IL SENSORE DIVENTA ATTIVO
    'CIOE' QUANDO LA RUOTA DEL CAMBIO UTENSILE E IN POSIZIONE DI UN DATO UTENSILE
    
    While IsActive(SENSORE) = False 
        Sleep 10
    Wend
    	
    DeactivateSignal(Motore)' RAGGIUNTA LA POSIZIONE DELL'UTENSILE FERMO IL MOTORE
    ActivateSignal(FrenoElettromeccanico)'BLOCCO LA TORRETTA CON IL FRENO

End If
  




CIAO A TUTTI !

silver151190
Newbie
Newbie
Messaggi: 30
Iscritto il: giovedì 9 aprile 2015, 21:05
Località: Modena

Re: Realizzare macro mac3 turn

Messaggio da silver151190 » venerdì 19 agosto 2016, 9:53

Troppo gentile grazie mille.... ora mi ci metto a provarla voglio vedere se riesco a capirci qualcosa anche io :D funziona con mach3 anche se non ho ancora la scheda del controller pronta vero? Mi sembrava che ci fosse una finestra in mach3 che ti fa vedere gli input e output come led o mi confondo con la cnc planet?

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

Re: Realizzare macro mac3 turn

Messaggio da torn24 » venerdì 19 agosto 2016, 10:16

DAL MENU
config
poi
port e pin
poi
INPUT

dovrai scegliere i nomi dei pin da usare, e metterli in input5 e input6, poi configurare i pin in mach3, ma qui bisogna che te lo spieghi qualcuno
d'altro perchè non l'ho mai fatto.

Poi hai i pin INPUT OUTPUT, SU MACH3 TRE, MA DEVI AVERE UNA SCHEDA CONTROLLER, CHE ABBIA TUTTI QUESTI INGRESSI E USCITE FISICAMENTE.

anche qui ti devi fare aiutare da altri, perché non l'ho mai scelto una scheda...
CIAO A TUTTI !

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

Re: Realizzare macro mac3 turn

Messaggio da torn24 » venerdì 19 agosto 2016, 10:40

A provarla senza scheda e sensori NON FUNZIONA.

PERCHE il while aspetta che il sensore diventi "attivo", se non ci sono scheda e sensori, non esce mai dal ciclo e il programma SI BLOCCA,

perche WHILE è sempre vero e quindi non termina mai il loop....
CIAO A TUTTI !

silver151190
Newbie
Newbie
Messaggi: 30
Iscritto il: giovedì 9 aprile 2015, 21:05
Località: Modena

Re: Realizzare macro mac3 turn

Messaggio da silver151190 » venerdì 19 agosto 2016, 13:33

È un ottima base di partenza da cui provare ad imparare qualcosa... per quanto riguarda la scheda so già cosa prendere...

Giustamente come dici tu se non legge input non riesce a terminare il ciclo... appena riesco a procurarmi la scheda provo... intanto me la studio un po per capire bene come funziona questa macro... la torretta inoltre avrebbe un sensore interno che legge se è bloccata prima di partire con la lavorazione ma credo che sia megljo aggiungere poco alla volta e prima accertarsi che funzioni la base... non ho capito però perché da input 1 a 4 ci sono costanti ed invece da 5 a 6 no c'è un motivo?

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

Re: Realizzare macro mac3 turn

Messaggio da torn24 » venerdì 19 agosto 2016, 16:10

nella tabella input di mach3, esistono INPUT1 , INPUT2 , INPUT3 , E INPUT4, e sono nomi che puoi usare per i pin

Adesso ho messo 5 e 6 perchè non sapevo quale nome scegliere, vai tu nella tabella input di mach3 , ti scegli dei nomi e li scrivi ESATTAMENTE nel programma.

Esempio due nomi potrebbero essere

Probe
Index

se non servono a altri scopi .
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
CIAO A TUTTI !

Rispondi

Torna a “Mach3”