VEGA VEGASCAN 850 VEGA-ASCII signal output User Manual
Page 19
VEGA-ASCII signal output VEGASCAN 850
19
Example program for enquiry VEGASCAN 850
Private Sub DecodeFrame(Rec As String)
Dim idx As Integer
Dim Value As Long
Dim PlsString As String
Dim SingleValue As String
Dim p As Integer
' Alle characters aufsammeln
ReceiveBuffer = ReceiveBuffer + Rec
' Schon 1 Wert empfangen
p = InStr(ReceiveBuffer, Chr$(13))
If p > 0 Then
' -> Einzelnen Wert ausschneiden
SingleValue = Left$(ReceiveBuffer, p -
1)
ReceiveBuffer = Mid$(ReceiveBuffer, p +
1)
Else
SingleValue = ""
End If
If Len(SingleValue) > 9 Then
' Frame pruefen
' =001#FAULTCR
' =001#- 100.1CR
If Left(SingleValue, 1) = "=" Then
If Mid$(SingleValue, 5, 1) = "#"Then
idx = Val(Mid$(SingleValue, 2,3))
If Mid$(SingleValue, 9, 1) > "9"
Then
Status(idx) = False
Else
Status(idx) = True
' Zahlenwert ausschneiden
PlsString = Mid$(SingleValue,
6)
' Vorzeichen or ' '
beachten
If Mid$(PlsString, 1, 1) =
" " Then
PlsString =
Mid$(PlsString, 2)
End If
' Wenn '.' im Telegramm ->
entfernen
p = InStr(PlsString, ".")
If p > 0 Then
PlsString =
Left$(PlsString, p - 1) +
Mid$(PlsString, p + 1)
End If
' Ende erkennen
p = InStr(PlsString, "%")
If p > 0 Then
PlsString =
Left$(PlsString, p - 1)
End If
' Text in Zahl wandeln
PLS(idx) = CLng(PlsString)
End If
' Ende erreicht ?
If idx = (StartIndex + LenIndex)
- 1 Then
' Fehlerzaehler = 0
InAction = 0
' Werte Anzeigen
DisplayValues
End If
End If
End If
End If
End Sub
Public Sub DisplayValues()
Dim i As Integer
Dim Disp As String
' Anzeige loeschen
List1.Clear
' Schleife ueber alle Werte
For i = StartIndex To (StartIndex +
LenIndex) - 1
' Anzeige Text aufbereiten
Disp = "PLS " + Format$(i, "000")
+ " = "
If Status(i) Then
Disp = Disp + Format$(PLS(i),
"000000000")
Else
Disp = Disp + "---"
End If
' Anzeigen
List1.AddItem Disp
Next i
End Sub
Public Sub ClearValues()
Dim i As Integer
' Alle Statusinformation loeschen
For i = StartIndex To (StartIndex +
LenIndex) - 1
Status(i) = False
Next i
End Sub