Rsapi.dll mit einer Messuhr
27.11.2003 08:02:06
Thomas
Mit Hilfe des Buches "MSR mit Word und EXCEL" habe ich ein Excel sheet versucht zu machen womit ich folgenes messen kann:
Ich habe eine Messuhr, welche nach Aufforderung den angezeigten Wert über die RS232 sendet.
Sende ich ein "R" an die Uhr gibt sie zB. "RNM -1.234" zurück.
Mit "C" kann ich die Uhr zurücksetzen (antwort dann "AC").
Sobald ich die Messung starte, wird die uhr kontinuierlich abgefragt und sobald der Messwert nicht mehr null ist werden die Werte ins sheet übertragen. 24 Werte in einem definierbaren intervall und dann ist fertig.
Soweit funktioniert mein Programm.
Aber leider habe ich nach ca. 10 übertragenen Werten auf einmal nicht mehr die korrekte Antwort der Uhr sondern irgenwas mit "Fehler -1.234". Danach werden nur noch Nullen übertragen.
Ich habe schon etliches versucht (Timeout verändern) aber irgendwie komme ich nicht mehr weiter.
Vielleicht kann mir jemand weiterhelfen?
Sub measure1()
OPENCOM "COM1,2400,N,8,0"
STRLENGTH 14
Display$ = "............"
Do
SENDSTRING Chr$(82) + Chr$(13)
STRREAD (Display$)
DELAY 300
Rem Cells(2, 7) = Display$
If Display$ <> "Fehler" Then
w = Val(Mid$(Display$, 5))
'Numerischen Wert isolieren und umwandeln
End If
Loop Until w <> "0"
Messdauer = Range("total")
Intervall = Range("interval")
TIMEOUT 100
STRLENGTH 14
Display$ = "............"
Zeile = 11
t = 0
TIMEINIT
While TIMEREAD < Messdauer
'w = 0
Do
SENDSTRING Chr$(82) + Chr$(13)
DELAY 100
STRREAD (Display$)
Rem Cells(5, 7) = Display$
If Display$ <> "Fehler" Then
w = Val(Mid$(Display$, 5))
'Numerischen Wert isolieren und umwandeln
End If
Loop Until TIMEREAD >= t
Cells(Zeile, 3).Value = w
Cells(Zeile, 2).Value = t / 1000
Zeile = Zeile + 1
t = t + Intervall
Wend
CLOSECOM
End Sub