Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
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
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

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?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
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
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

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). ...





Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
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
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

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)


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
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
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

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


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo