Software per gestire motore PP in VB script

Sezione riservata ai sofware sviluppati in proprio
Avatar utente
Maker
Member
Member
Messaggi: 214
Iscritto il: giovedì 6 agosto 2015, 11:18
Località: Roma

Re: Software per gestire motore PP in VB script

Messaggio da Maker » venerdì 9 ottobre 2015, 19:52

Se "salti" Mach3, fai prima ad usare arduino e quest'ultimo lo colleghi alla scheda TB6600. Ciao!
Pressure pushing down on me.., ma il mondo gira come gli viene! (Maker)

Avatar utente
g_federico_g
Senior
Senior
Messaggi: 723
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, 20:36

Grazie per le dritte ..... voglio realizzare questo programmino come sfida personale.
Devo capire bene come funziona il tutto .....
lunedi provero' le modifiche e vi aggiornero'.
Intanto grazie tanto per la pazienza :) :)
Motoclub - www.roadeaters.it - Motoclub

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

Re: Software per gestire motore PP in VB script

Messaggio da g_federico_g » lunedì 12 ottobre 2015, 9:27

Novità.
Ho provato, l'asse X va in avanti e va indietro, impostando i valori 2 e 3.
Per provare i vari pin ho inserito una TXT chiamata PinTxtx, dove ho provato un po di valori, 1,2,3,e,5,9,52....
evitando di scriverli ogni volta a codice.
Con 2 e 3 la x va avanti e dietro, con il 9 ad esempio si muovono x e y insieme, con 52 la Z .....
ma come funziona ? Questa è la parte che ancora non mi è chiara, i valori che imposto ad esempio il 2 ed
il 3 sull'uscita LPT1 vengono convertiti in binario e mandati alla LPT1 ?
Come mai ad esempio il valore che imposto di 52 mi fa muovere l'asse Z e cosi come mai il 9 mi fa muovere X e Y insieme ?


Ecco il listato funzionante ad ora:

countit = 0
myTimer = 0
countit = UserForm1.ImpulsiMotore.Text
Out 888, 0
Dim myTimerText As Integer
myTimerText = UserForm1.TimerVelocità.Text
Do While countit > 0
myTimer = myTimerText
Out 888, Pintxt.Text
Do While myTimer > 0
myTimer = myTimer - 1
Loop
Out 888, 0
countit = countit - 1
Loop



Penso che capito questo possa far muovere i 4 assi !!!
Motoclub - www.roadeaters.it - Motoclub

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

Re: Software per gestire motore PP in VB script

Messaggio da g_federico_g » lunedì 12 ottobre 2015, 10:37

Non riesco a capire sta cosa del valore da mandare alla LPT1.....ho capito che devo mandare un valore che trasofrmato in binario mi "accenda" il PIN con valore 1....

Ad esempio, sapendo che i pin da 2 a 9 sono quelli degli input, e che su MACH3 ho impostato per l'asse X il PIN 2 cosi come da manuale dell'interfaccia,
e step 3, per Y pin 4 con step 5, per Z pin 6 e step 7, per C pin 8 step 9, volendo convertire questa cosa in codice da mabdare alla LPT1 per far muovere X,Y,Z,e C....

cosa dovrei scrivere ?

Supponiamo di voler muovere Y.
Y = PIN 4, quindi sulla parallela il Pin4 corrisponde al piedino D2, cosa dovrei scrivere cvome valore da mabndare alla LPT1 ?
00100000 che corrisponde a 32 in decimale ?


Ho provato a mandare 101010, cioè 42 in decimale, e si sono mossi i 3 assi insieme in un verso
ho mandato 111111,cioè 63 in decimale e si sono mossi i 3 assi insieme nel evrso opposto .
Come mai ?
Mandando 10 c0è il PIN di direzione attivo e 11, si attiva nel verso opposto ?
Motoclub - www.roadeaters.it - Motoclub

Avatar utente
franc
Senior
Senior
Messaggi: 1152
Iscritto il: lunedì 13 novembre 2006, 20:10
Località: Ponte S.Giovanni-PG

Re: Software per gestire motore PP in VB script

Messaggio da franc » lunedì 12 ottobre 2015, 15:52

Ciao Fed,

non ho mai avuto la pazienza di imparare il Visual basic,
per cui non ho capito una mazza di quello che fai e quello
che ti è stato consigliato.

Il mio cam l'ho fatto con il vecchio basic migliorato
con il qbasic cominciato nel 2000 e tuttora in aggiornamento.

Ho usato l'azionamento dei motori agendo semplicemente sulle fasi
senza pensare alla direzione che viene scelta dal sw in funzione
delle coordinate attuali e quelle da raggiungere.

Per far girare i motori devi alimentare le varie fasi
in sequenza abcd-abcd... per ciò devi aprire la porta
(out 888, pe)mantenere la condizione per un certo periodo
che sarà la fase attiva, chiudere la porta (out 888,0)
mantenendo anche qui un periodo che concluderà
il ciclo. Ora incrementi il (pe) e ricominci.

Quando il (pe)supera il valore di 8 lo riporti a 1

La routine che vedi sotto fa questo mestiere. il (mot)
serve per scegliere il motore.

Nel mio cam ii pin delle fasi hanno i seguenti valori:
1 fase a (pin 1)
2 fase b (pin 2)
4 fase c (pin 3)
8 fase d (pin 4)
e per i motori
32 per X (pin 7)
16 per Y (pin 6)
64 per Z (pin 8 )

--- azionamento motori ---
OUT po, mot + pe
FOR n = 1 TO fa: NEXT
OUT po, 0
FOR n = 1 TO fr: NEXT
az = 1
RETURN


fa e fr stabiliscono i tempi del duty cicle e sono in funzione della
velocità impostata e anche del tipo di processore in uso.
az è una variabile di controllo per altra routine

spero di esserti stato d'aiuto
Ultima modifica di walgri il lunedì 12 ottobre 2015, 15:56, modificato 2 volte in totale.
Motivazione: modifica alla spaziatura per evitare uno smiley [ 8 ) ]
franc
cerco sempre di fare tutto con entusiasmo, ma a volte non è sufficiente.

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

Re: Software per gestire motore PP in VB script

Messaggio da g_federico_g » lunedì 12 ottobre 2015, 16:39

mmmmh insomma :) :)

Il mio problema è questo:

Ho la pedinatura della LPT1...

Vorrei capire una cosa ... se mando alla LPT1 il valore 17 che corrisponde in binario 00010001, cioè lo stato alto (1) sui PIN 2 e 6 della LPT1, significa che nel mio caso si dovrebbero muovere i motori sull'asse X e Z ? visto che in mach3 ce li ho settati come X-->PIN2,DIR3 - Z--> PIN6,DIR7 ?
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
Motoclub - www.roadeaters.it - Motoclub

Avatar utente
franc
Senior
Senior
Messaggi: 1152
Iscritto il: lunedì 13 novembre 2006, 20:10
Località: Ponte S.Giovanni-PG

Re: Software per gestire motore PP in VB script

Messaggio da franc » lunedì 12 ottobre 2015, 19:19

@fed
non conosco mach3 ma il 17 non è niente, il 2 e il 6 dovrebbe essere 18. prova cosi.

@walgri, cosa vuol dire ?
Ultima modifica di walgri il lun ott 12, 2015 3:56 pm, modificato 2 volte in totale.
Motivazione: modifica alla spaziatura per evitare uno smiley
franc
cerco sempre di fare tutto con entusiasmo, ma a volte non è sufficiente.

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

Re: Software per gestire motore PP in VB script

Messaggio da walgri » lunedì 12 ottobre 2015, 21:44

@franc: della tua riga

Codice: Seleziona tutto

64 per Z (pin 8)
gli ultimi due caratteri venivano interpretati come 8) , inserendo uno spazio tra 8 e ) si evita che questo avvenga.
...stop chasing shadows, just enjoy the ride.
Aìna pantografoTelemetria per KFlopBlenderCAM STL + DXF

Avatar utente
franc
Senior
Senior
Messaggi: 1152
Iscritto il: lunedì 13 novembre 2006, 20:10
Località: Ponte S.Giovanni-PG

Re: Software per gestire motore PP in VB script

Messaggio da franc » lunedì 12 ottobre 2015, 23:05

Grazie Walgri

@Fed
ho scritto una cavolata; il 17 va bene solo che non posso andare oltre perchè non so
come la tua scheda utilizza queste tensioni.
franc
cerco sempre di fare tutto con entusiasmo, ma a volte non è sufficiente.

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

Re: Software per gestire motore PP in VB script

Messaggio da g_federico_g » martedì 13 ottobre 2015, 8:22

Ciao ragazzi, ho delle bellissime ottime novità !!!
Sono riuscito a far muovere tutti gli assi, i 4, nel verso che volevo io e quelli che volevo io.
Il problema ? Mi ero appuntato male i pin di movimento e li avevo scambiati con quelli di direzione :)

(Il problema è che ho la cnc da una parte, ed il programma lo preparo da un'altra)

In sostanza, ho fatto in excel uno script con una riga dove inserisco il binario di quello che mi interessa, pigio un pulsante
per convertire il valore in decimale da mandare alla porta parallela per far muovere il motorino di interesse.

Ad esempio, per far muovere l'asse X, con PIN di movimento (STEP) 3 , scrivo 00000010 in decimale 2 e si muove in un verso
per dargli la direzione opposta attivo il pin di direzione PIN 2, scrivendo 00000011 e voilà, e cosi per gli altri motori.

Spero a breve di pubblicare qualcosa di più interessante.


Solo una domanda, invece ho il PIN 15 adibito a STOP manuale, per leggerlo come si fa ?

Devo attribuire ad una variabile boolena la lettura con Inp 888 ???
Motoclub - www.roadeaters.it - Motoclub

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

Re: Software per gestire motore PP in VB script

Messaggio da g_federico_g » martedì 13 ottobre 2015, 11:02

...da quello che ho letto, dovrei leggere i pin di stato, ovvero dal 10 al 15.... identificati con il valore 889, e leggendo questo valore identificare i 3 bit meno significativi ....
quindi per capire il valore del pin 15 (quello che interessa a me) dovrei fare un piccolo programmino di controllo ?
Qui ancora la cosa non mi è chiara.
Motoclub - www.roadeaters.it - Motoclub

Avatar utente
g_federico_g
Senior
Senior
Messaggi: 723
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ì 16 ottobre 2015, 11:21

Ragazzi, nessuno mi sa aiutare su come leggere il valore del PIN 15 della parallela ?
Mi manca solo questo per poter condividere una bozza di progetto opensource, e verificare la fattibilità.
Motoclub - www.roadeaters.it - Motoclub

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

Re: Software per gestire motore PP in VB script

Messaggio da Alex_live » martedì 27 ottobre 2015, 14:28

Vedo di spiegarti come va impostato il numero da assegnare al comando OUT 888, ?
Nella parallela le uscite sono indicate da D0 a D7 (D0 è il bit basso). La numerazione binaria si evolve così dopo l'uguale il valore in decimale
0=0
1=1
10=2
11=3
100=4
101=5
110=6
111=7
1000=8
1001=9
1010=10
1011=11
ecc.
Ogni bit è dato dalla relazione 2 elevato ad n (dove n vale 0,1,2,3,4,ecc)
Ogni bit può valere o 0 o 1.
Se D0 (pin2) da la direzione variando il valore da 0 a 1 e D1 da la rotazione alternando 0 e 1 (asse X)
I valori per D0 saranno dati dalla formula VALORE BIT X 2^0 se Do è zero in decimale 0 (0*2^0) se 1 in decimale (1*2^0).
D1 vale 0*2^1=2 o 1*2^1=3
D2 vale 0*2^2=4 o 1*2^2=4
D3 vale 0*2^3=6 0 1*2^3=7
ecc.
Il peso 2^n dei bit è
D0 =0
D1=2
D2=4
D3=8
D4=16
D5=32
D6=64
D7=128
Ovviamente sommando il pesi dei singoli bit si ottiene la rotazione di più motori.
Per l'asse Y interverranno i bit D2 direzione rotazione D3 rotazione
Per l'asse Z interverranno i bit D4 direzione rotazione D5 rotazione
Con D6 e D7 si può attivare il 4 motore.

Per capire come avviene la conversione binaria <-> decimale leggi qui:
http://www.lezionidimatematica.net/Bina ... one_04.htm

Spero di essere stato chiaro altrimenti chiedi pure

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

Re: Software per gestire motore PP in VB script

Messaggio da g_federico_g » mercoledì 28 ottobre 2015, 9:16

Ecco qui, vi allego un "embrione" !!
Questa è la BETA VERSION, ragazzi, non vi aspettate chissà che, è una sfida con me stesso perchè volevo realizzarlo, volevo fare qualcosa.
Non dispongo de di visual basic e ne altri programmi, e ho pensato che realizzarlo in EXCEL, ovvero un programma che bene o male hanno tutti, potesse essere
di spunto per qualcuno.
Mi piacerebbe, visto che distribuisco i sorgenti gratuitamente, che qualcuno di buona volontà mi aiutasse a migliorare il codice, apportare modifiche e renderlo migliore ....s senza grosse pretese, un software free per windows, senza particolari caratteristiche tecniche o prestazioni eccezionali. Ma che cmq, possa pilotare 4 passo passo per fresare un pezzo.
Ho testo il programma, ed impostandolo, si riescono a far muovere i 4 assi insieme.


Ora la base, a mio modestissimo avviso c'è, magari si puo' implementare.
Manca una schermata per settare tutti quei param,etri che ora vengono inseriti a mano nei vari files di testo, o i percorsi (PATH) dei file .... inoltre una schermata per scegliere il file CNC, che al momento si deve chiamare per forza FileCNC.tap. Inoltre, anche la lettura del file ed il suo disegno vanno migliorati perchè ho dato per scontato che le coppie X,Y, ovvero i movimenti fossero sempre accoppiati mentre X o Y si possono anche muovere indisitintamente, e quando avremo un disegno cosi come deve essere, si dovranno implemnetare i movimenti automatici che al posto di siegnare, andranno a fresare il pezzo ...

Insomma, eccolo qua :) :)

Dimenticavo, per far si che il progrmma comunichi con la LPT1, bisogna copiare il file inpout32.dll in system32.
Lanciare il file Excel, entrare nella macro ed eseguire il form MenuPrincipale, premere il pulsante leggi e poi quello interpreta, oppure, si possono anche testare i passo passo con i pulsanti dedicati. Controllare solo i PIN e i vari settati nei file TXT dentro la cartella.
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
Motoclub - www.roadeaters.it - Motoclub

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

Re: Software per gestire motore PP in VB script

Messaggio da Alex_live » giovedì 29 ottobre 2015, 12:14

Stasera controllo il tuo codice.
Intanto alcuni suggerimenti.
I comandi per OUT sulla parallela devi inserirli in una funzione passando i parametri necessari.
Devi avere una variabile globale che contenga il valore dell'attivazione motori da passare a OUT 888, ?
Il valore da passare alla funzione deve poter essere modificato in base al motore attivo e senso di rotazione. Devi poter controllare il numero passato se deve restare uguale o essere modificato.
Certo che lavorare con VBA di Excell è molto limitativo rispetto al Visual Basic completo.
Domani vedo di darti ulteriori suggerimenti dopo aver analizzato il tuo lavoro.

Rispondi

Torna a “Home Made”