Username: Password: oppure
Visual Basic 6 - RS 232
Forum - Visual Basic 6 - RS 232

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
flappy64 (Normal User)
Newbie


Messaggi: 5
Iscritto: 30/07/2009

Segnala al moderatore
Postato alle 13:10
Mercoledì, 21/07/2010
ciao,
sono nuovo un saluto a tutti.

linguaggio VB6.

sto usando il controllo MSComm per inviare dei dati ad un azionamento a 19200 Baud,questo è il massimo che l'azionamento mi concede.

la stringa che devo inviare è questa "w01 04 300", tutto funziona alla perfezione.

il mio problema è che tale stringa va inviata ogni 10 millisecondi, e usando il controllo MSComm
non riesco a tenere tale parametro, è troppo lento.

è possibile usare un altro sistema, esiste un altro modo di cominicare con la seriale
a tale volocita?

grazie

Flavio

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 17:09
Mercoledì, 21/07/2010
Tanto per cominciare, Windows non può gestire intervalli di tempo così brevi.

In secondo luogo, a quale velocità comunica la seriale con il tuo dispositivo?

PM Quote
Avatar
Alfonso (Ex-Member)
Guru


Messaggi: 688
Iscritto: 30/09/2009

Segnala al moderatore
Postato alle 18:35
Mercoledì, 21/07/2010

PM Quote
Avatar
flappy64 (Normal User)
Newbie


Messaggi: 5
Iscritto: 30/07/2009

Segnala al moderatore
Postato alle 20:02
Mercoledì, 21/07/2010
Testo quotato

Postato originariamente da nessuno:

Tanto per cominciare, Windows non può gestire intervalli di tempo così brevi.

In secondo luogo, a quale velocità comunica la seriale con il tuo dispositivo?



ciao,

se intendi la velocita, a 19200 baud, lo avevo stritto......

Flavio

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 20:28
Mercoledì, 21/07/2010
Testo quotato

Postato originariamente da flappy64:

se intendi la velocita, a 19200 baud, lo avevo stritto......



Mi era sfuggito ...

Comunque, quello che volevo dirti è che non potrai lavorare ad intervalli minori di 12-15 ms con il normale timer (come quello implementato in VB6).

Potresti utilizzare un timer ad alta risoluzione (ma non lo farei in VB6, semmai in C).
Per farlo, dovrai usare le API

QueryPerformanceCounter
http://msdn.microsoft.com/en-us/library/ms644904(VS.85).aspx

QueryPerformanceFrequency
http://msdn.microsoft.com/en-us/library/ms644905(v=VS.85). ...




PM Quote
Avatar
flappy64 (Normal User)
Newbie


Messaggi: 5
Iscritto: 30/07/2009

Segnala al moderatore
Postato alle 20:42
Mercoledì, 21/07/2010
Testo quotato

Postato originariamente da nessuno:

Testo quotato

Postato originariamente da flappy64:

se intendi la velocita, a 19200 baud, lo avevo stritto......



Mi era sfuggito ...

Comunque, quello che volevo dirti è che non potrai lavorare ad intervalli minori di 12-15 ms con il normale timer (come quello implementato in VB6).

Potresti utilizzare un timer ad alta risoluzione (ma non lo farei in VB6, semmai in C).
Per farlo, dovrai usare le API

QueryPerformanceCounter
http://msdn.microsoft.com/en-us/library/ms644904(VS.85).aspx

QueryPerformanceFrequency
http://msdn.microsoft.com/en-us/library/ms644905(v=VS.85). ...






Grazie,

ma il problema non ' il timer, la routine è dentro ad un loop,
la routine legge un encoder che trasmette i dati ad un azionamento.

senza la trasmissione seriale funziona perfettamete, ma se inserisco in questo loop
la routine della seriale il tutto rallenta drasticamente.....

questa e la stringa che mi rallenta il tutto:

Stringa = "p01" & " " & Ottica(N1)
MSComm1.Output = Stringa


Flavio

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 20:45
Mercoledì, 21/07/2010
Il problema è il VB6 ... queste istruzioni

Stringa = "p01" & " " & Ottica(N1)
MSComm1.Output = Stringa

sono pesanti (la gestione delle stringhe soprattutto)

PM Quote
Avatar
flappy64 (Normal User)
Newbie


Messaggi: 5
Iscritto: 30/07/2009

Segnala al moderatore
Postato alle 21:45
Mercoledì, 21/07/2010
Testo quotato

Postato originariamente da nessuno:

Il problema è il VB6 ... queste istruzioni

Stringa = "p01" & " " & Ottica(N1)
MSComm1.Output = Stringa

sono pesanti (la gestione delle stringhe soprattutto)



che sia pesante lo avevo notato, hai qualche consiglio?

Grazie

Flavio

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 22:05
Mercoledì, 21/07/2010
Scrivi il programma in C

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo