Oppure

Loading
10/06/11 16:20
1n4148
Salve ho un problema con il Fluke45 che funziona benissimo in QB ma non riesce bene in visual basic.
Ho trovato già in questo forum una vecchia discussione con lo stesso argomento ma la risposta non ha dato risultati buoni. Spero che nel frattempo ci siano stati sviluppi e possiate aiutarmi.
Vi ringrazio anticipatamente ed allego i listati:

' FLUKE45.BAS
' FLUKE45.BAS Programma di registrazione dati di frequnza e magnetiche
' - inizializza la porta di comunicazione RS-232 e setta il FLUKE 45
' - testa la regolarit… dei comandi dal FLUKE 45
' - Visualizza e registra i dati in TESTDATA.PRN

CLS : 'KEY OFF
Valore$ = "" 'Definisce la stringa che conterr… i dati
Prompt$ = "" ' " " " di comando
CMD$ = "" ' " " " di comando del FLUKE 45
In$ = "" ' " " " di input dei dati
Esc$ = CHR$(27) ' " " " di comando per terminare
CONT = 0 'Inizializza il contatore delle letture
'
OPEN "COM1:9600,n,8,,cs,ds,cd" FOR RANDOM AS #1
'
' "ohms" Per misure di resistenze

IF ERRORCODE <> 0 THEN PRINT " ERROR NON E' POSSIBILE APRIRE LA COM1: ": END

CMD$ = "rems; ohms; format 1" 'Misure di resistenza
Inizio = TIMER
GOSUB Legge 'SUBRUTINE CHE INVIA IL COMANDO E ATTENDE LA RISPOSTA
'

LOCATE 25, 10: PRINT " Premi un tasto per registrare Premi ESC per uscire =;"
'
WHILE In$ <> Esc$
PRINT #1, "meas?" 'Richiesta della misura successiva
LINE INPUT #1, Valore$ 'Legge la misura
Prompt$ = INPUT$(5, #1) 'Legge il prompt + la portante <LF>

LOCATE 12, 36: PRINT Valore$

In$ = INKEY$ 'Legge la pressione di un tasto

IF In$ = "" OR In$ = Esc$ THEN GOTO Fine

Fine:
WEND
PRINT #1, "rst"
Fine = TIMER
LOCATE 14, 1: PRINT "Test Completato - il risultato Š memorizzato in 'TESTDATA.PRN'";
LOCATE 15, 1: PRINT "100 letture effettuate in "; Fine - Inizio; "secondi"
CLOSE #1, #2
END


Legge:
'
PRINT #1, CMD$
Prompt$ = INPUT$(4, #1) 'Preleva il prompt
PRINT "*"; Echo$; "*", "*"; Prompt$; "*"
IF INSTR(1, Prompt$, "=>";) <> 0 THEN RETURN 'Comando andato a buon fine
IF INSTR(1, Prompt$, "?>";) <> 0 THEN PRINT "Di sintassi nel comando!!"
IF INSTR(1, Prompt$, "!>";) <> 0 THEN PRINT "Comando errato!!"
PRINT "Esecuzione del programma terminata"
END

in VB6 i comandi sono i seguenti:

Private Sub BtnApri_Click()
Dim Comando As String

Dim Buffer As String

Comando = "" ' Stringa di comando del FLUKE 45

MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.InputLen = 0
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
Label1.Caption = "Comm Port " & MSComm1.CommPort & MSComm1.PortOpen
End If
Comando = "rems; ohms; format 1"
MSComm1.Output = Comando + vbCrLf
'Lo strumento si dovrebbe porre in MODE REMOTE OHMS
'ma questo non avviene; tutto il resto di conseguenza è inutile
Do
LblInput = MSComm1.Input
DoEvents
Loop Until LblInput <> ""
LblInput = MSComm1.Input
End Sub

Private Sub CmdChiudi_Click()
' Chiude la porta seriale.
MSComm1.PortOpen = False
End
End Sub


L'output va a buon fine. ma l'input non arriva mai. Si ha qualche successo se si procede passo passo.


aaa
10/06/11 17:07
GrG
di preciso vb6 che riga ti segnala? che errori da?

poi con:
"Si ha qualche successo se si procede passo passo. "
che intendi?
aaa