Software per gestire motore PP in VB script

Sezione riservata ai sofware sviluppati in proprio
Rispondi
Avatar utente
g_federico_g
Senior
Senior
Messaggi: 674
Iscritto il: mercoledì 31 ottobre 2007, 13:53
Località: Termoli

Software per gestire motore PP in VB script

Messaggio da g_federico_g » venerdì 9 ottobre 2015, 10:27

Ciao ragazzi, ho letto un mucchio di cose per la gestione dei motori passo passo con visual basic, i problemi, le librerie ecc...ecc...
ora mi sto cimentando nella realizzazione di un piccolo programma.
Vorrei far muovere un motore passo passo di un tot di giri e ad una certa velocità.
Ho realizzato una piccola interfaccia in VBscript da Excel, chiamato la libreria inpout32.dll, e programmato questo quando premo un pulsante.

Private Sub CommandButton2_Click()
myTimer = 0
countit = UserForm1.ImpulsiMotore.Text
Do While countit > 0
myTimer = UserForm1.TimerVelocità.Text

Out 888, 2
Do While myTimer > 0
myTimer = myTimer - 1
Loop
countit = countit - 1
Loop
End Sub


In Mach3 ho settatop il motore dell'asse X con STEP PIN 3 - PIN DIR 2.
la porta è la solita LPT1 (888)

Ma con il programmino che ho scritto io non si muove una mazza ... dove sbaglio ?

Grazie.
Motoclub - www.roadeaters.it - Motoclub

Alex_live
God
God
Messaggi: 7065
Iscritto il: giovedì 30 luglio 2015, 12:06
Località: Milano

Re: Software per gestire motore PP in VB script

Messaggio da Alex_live » venerdì 9 ottobre 2015, 12:41

Ti rispondo a memoria non avendo sotto mano la libreria inpout32.dll
Con out 888,2, se non ricordo male, scrivi sulla porta parallela il valore 2 in binario 10 per cui sulla parallela avrai un tensione sul pin del 2 bit. e 0 su tutti gli altri bit.
Poi non lo modifichi più pertanto sulla parallela non vengono variati i 8 bit.
Non conosco Mach3 ma sei sicuro che non devi variale i bit dell'uscita parallela durante il ciclo While?
Altro possibile errore è il mancato reset della parallela. Durante l'avvio, visibile se collegi 8 led sulla parallela, i bit D0-D7 cambiano restando attivi qualche bit.
Imposta come primissima fase il comando out 888,0 per resettare tutto almeno in una mia scheda auto costruita avevo questo problema.

Avatar utente
g_federico_g
Senior
Senior
Messaggi: 674
Iscritto il: mercoledì 31 ottobre 2007, 13:53
Località: Termoli

Re: Software per gestire motore PP in VB script

Messaggio da g_federico_g » venerdì 9 ottobre 2015, 12:53

variare come ? mandando 1 e 0 , 1 e 0 ... cosi per farlo muovere ?
Motoclub - www.roadeaters.it - Motoclub

Alex_live
God
God
Messaggi: 7065
Iscritto il: giovedì 30 luglio 2015, 12:06
Località: Milano

Re: Software per gestire motore PP in VB script

Messaggio da Alex_live » venerdì 9 ottobre 2015, 13:31

Dal manuale di Mach3:
"I driver per i vostri motori devono accettare impulsi step ed un segnale di direzione."
Spep indica un segnale variabile nel tempo.
Scarica il manuale da qui:
ftp://machsupport.com/Docs/mach3ita.pdf
a pag. 36 nel paragrafo 4.5.3 Come funzionano i segnali Step e Dir
vedi il segnale step che attraverso il driver posto sul motore alimenta ciclicamente le varie fasi e permette la rotazione del motore.
Spero di non aver detto cavolate non conoscendo Mach3 e relativa scheda.
Qui è presente un rallentamento

Do While countit > 0
myTimer = UserForm1.TimerVelocità.Text

ogni volta il ciclo while deve leggere il valote del text box ed è una lettura che impiega più di un ciclo macchina. Modificala così

myTimer = UserForm1.TimerVelocità.Text
Do While countit > 0

Così esegui una sola lettura e il ciclo while accede ad una variabile con un ciclo macchina (spero di non aver confuso il numero dei cicli macchina).

Alex_live
God
God
Messaggi: 7065
Iscritto il: giovedì 30 luglio 2015, 12:06
Località: Milano

Re: Software per gestire motore PP in VB script

Messaggio da Alex_live » venerdì 9 ottobre 2015, 14:03

Forse ho compreso male la richiesta.
Non capisco se vuoi comandare direttamente il motore tramite l'uscita parallela o tramite Mach3.
Se fosse tramite Mach3 il software non dovrebbe essere già in grado di comandare il motore direttamente.

Avatar utente
g_federico_g
Senior
Senior
Messaggi: 674
Iscritto il: mercoledì 31 ottobre 2007, 13:53
Località: Termoli

Re: Software per gestire motore PP in VB script

Messaggio da g_federico_g » venerdì 9 ottobre 2015, 14:41

Mach3 è solo un riferimento.
Sto cercando di fare in modo che premendo un pulsante, mi si muova un motorino (quello dell'assi X).
Tutto qua.
Grazie dei suggerimenti, ora li provo e ci aggiorniamo.
Motoclub - www.roadeaters.it - Motoclub

Alex_live
God
God
Messaggi: 7065
Iscritto il: giovedì 30 luglio 2015, 12:06
Località: Milano

Re: Software per gestire motore PP in VB script

Messaggio da Alex_live » venerdì 9 ottobre 2015, 15:03

Se devi comandare un motore passo passo con la parallela allora devi utilizzare tanti pin di out, della parallela, quante sono le fasi di ogni motore.
Leggi questo sito con relativo programma:
http://www.ettorepanella.com/dmdocument ... Basic6.htm
Aggiungendo due integrati si possono utilizzare 2 pin della parallela e comandare fino ad un motore con 4 fasi.

Avatar utente
g_federico_g
Senior
Senior
Messaggi: 674
Iscritto il: mercoledì 31 ottobre 2007, 13:53
Località: Termoli

Re: Software per gestire motore PP in VB script

Messaggio da g_federico_g » venerdì 9 ottobre 2015, 15:34

Mi sono dimenticato di scrivere perchè erroneamente lo davo per scontato io ....
non li devo comandare direttamente, infatti al momento ora ho un sistema PC+ scheda di controllo + mach3 + motori passo passo, e impostato mach3 con i valori della scheda funziona tutto.
Io vorrei far muovere i motorini utilizzando la scheda comandata dalla LPT1, vorrei simulare quello che fa mach3, ovvero premere un pulsante,
e far fare al motorino dell'asse X 5 giri.
Conosco i PIN riservati ai motori PASSO passo nella scheda, vorrei solo capire che valore mettere dopo OUT 888, ? ,dentro ad un ciclo, per far fare all'asse X un passo ...
Motoclub - www.roadeaters.it - Motoclub

Alex_live
God
God
Messaggi: 7065
Iscritto il: giovedì 30 luglio 2015, 12:06
Località: Milano

Re: Software per gestire motore PP in VB script

Messaggio da Alex_live » venerdì 9 ottobre 2015, 15:44

Serve allora un analizzatore logico per analizzare come invia i segnali, attraverso la parallela, Mach3.
Senza conoscere il protocollo non puoi sapere che dati inviare all'interfaccia.

Avatar utente
walgri
Moderator
Moderator
Messaggi: 4716
Iscritto il: giovedì 13 gennaio 2011, 18:37
Località: Cagliari

Re: Software per gestire motore PP in VB script

Messaggio da walgri » venerdì 9 ottobre 2015, 16:48

@Federico: che scheda è connessa alla lpt ?
...stop chasing shadows, just enjoy the ride.
Aìna pantografoTelemetria per KFlopBlenderCAM STL + DXF

Avatar utente
g_federico_g
Senior
Senior
Messaggi: 674
Iscritto il: mercoledì 31 ottobre 2007, 13:53
Località: Termoli

Re: Software per gestire motore PP in VB script

Messaggio da g_federico_g » venerdì 9 ottobre 2015, 17:06

E' una 4 assi, 4 ampere, TB6600 ....
Motoclub - www.roadeaters.it - Motoclub

Avatar utente
walgri
Moderator
Moderator
Messaggi: 4716
Iscritto il: giovedì 13 gennaio 2011, 18:37
Località: Cagliari

Re: Software per gestire motore PP in VB script

Messaggio da walgri » venerdì 9 ottobre 2015, 17:17

Cambiando lo stato del pin 3 (step) ripetutamente dovresti poter muovere il motore. Non conosco nulla del VBScript e della libreria che stai utilizzando quindi non so aiutarti nei dettagli.
...stop chasing shadows, just enjoy the ride.
Aìna pantografoTelemetria per KFlopBlenderCAM STL + DXF

Avatar utente
g_federico_g
Senior
Senior
Messaggi: 674
Iscritto il: mercoledì 31 ottobre 2007, 13:53
Località: Termoli

Re: Software per gestire motore PP in VB script

Messaggio da g_federico_g » venerdì 9 ottobre 2015, 17:31

Do While countit > 0
myTimer = UserForm1.TimerVelocità.Text (fuori dal ciclo non funziona)
Out 888, 2
Do While myTimer > 0
myTimer = myTimer - 1
Loop
countit = countit - 1
Out 888, 0 (aggiungendo l'invio di 0, l'asse X si muove ...)
Loop

Cosi l'asse X si muove, settando i 2 valori Impulsi motore a 500 e timer a 800 premo il pulsante ed il motore gira ... ma non capisco perchè gira !!!
E se volessi far girare l'asse Y ?
Lo so che sto andando a "tentoni" ma per me è una novità e sono anni che non programmo niente ... quindi mi perdonerete :) Spero :) :)
Motoclub - www.roadeaters.it - Motoclub

Alex_live
God
God
Messaggi: 7065
Iscritto il: giovedì 30 luglio 2015, 12:06
Località: Milano

Re: Software per gestire motore PP in VB script

Messaggio da Alex_live » venerdì 9 ottobre 2015, 17:33

Se ho capito il funzionamento della scheda se il pin 2 della parallela è impostato a zero gira in un senso se a 1 gira nel verso opposto.
Mentre il pin 3 va inviato un treno di impulsi allora nel ciclo while devi impostare 2 timer uno per il tempo off e uno per il tempo on (non so se fissi o variabili per controllare la velocità).

Alex_live
God
God
Messaggi: 7065
Iscritto il: giovedì 30 luglio 2015, 12:06
Località: Milano

Re: Software per gestire motore PP in VB script

Messaggio da Alex_live » venerdì 9 ottobre 2015, 17:46

Do While countit > 0
myTimer = UserForm1.TimerVelocità.Text (fuori dal ciclo non funziona)

sai perchè non funziona perchè a fine ciclo lo azzeri con la riga
myTimer = myTimer - 1

Scrivilo così

myTimerText = UserForm1.TimerVelocità.Text
Do While countit > 0
myTimer = myTimerText
Out 888, 2

ecc..
Usi due variabili aumento lo spazio occupato in memoria ma aumenti la velocità del programma

non sono sicuro se questa porzione è corretta:
Out 888, 2
Do While myTimer > 0
myTimer = myTimer - 1
Loop
countit = countit - 1
Out 888, 0

così in uscita hai un valore 1 per un tempo maggiore rispetto allo 0. Nei grafici il segnale step è a 1 per minor tempo inverti Out 888, 2 con Out 888, 0

Se al posto di out 888,2 metti out 888,3 dovrebbe girare nell'altro senso.

Rispondi

Torna a “Home Made”