Private Sub btn_Sensormodul_lesen_Click()
'________________________________________________________
'Rück- und Übergabe
Dim RUECKGABE As Integer
Dim FLIESSKOMMA As Double
Dim FESTPUNKT As Long
Dim PRIORITAET As Integer
'Busparameter
Dim Schnittstelle As Integer
Dim BasisAdresse As Integer
Dim Adresse As Integer
'Sensormoduldaten
Dim Seriennummer As Long
Dim Messwert As Double
Dim Einheit As String
Dim CharField(0 To 255) As Byte
'________________________________________________________
'Labels vorbelegen
lbl_Wert.Caption = ""
lbl_Typ.Caption = ""
lbl_Status.Caption = ""
frm_Sensormodul.Caption = ""
'Eingaben erfassen
'Schnittstelle
If opt_COM(1).Value Then Schnittstelle = 1
If opt_COM(2).Value Then Schnittstelle = 2
If opt_COM(3).Value Then Schnittstelle = 3
If opt_COM(4).Value Then Schnittstelle = 4
'Adresse
If IsNumeric(txb_Adresse) Then
If Val(txb_Adresse.Text) >= 0 And Val(txb_Adresse.Text) < 240 Then
Adresse = Val(txb_Adresse.Text)
'________________________________________________________
'Daten einlesen
'Schnittstelle öffnen
RUECKGABE = GMH_OpenCom(Schnittstelle)
If RUECKGABE < 0 Then
MsgBox GMH3000_Fehlermeldung(RUECKGABE)
Else
'Daten lesen
'Seriennummer lesen (nur auf obersten Kanal zugänglich: 01,11,21...)
If Adresse > 0 Then
BasisAdresse = Int(Adresse / 10) + 1
Else
BasisAdresse = 0
End If
RUECKGABE = GMH_Transmit(BasisAdresse, GMH_GetSerialNumber, _
PRIORITAET, FLIESSKOMMA, FESTPUNKT)
If RUECKGABE < 0 Then
MsgBox GMH3000_Fehlermeldung(RUECKGABE)
Else
Seriennummer = FESTPUNKT
frm_Sensormodul.Caption = "Meßgerät " & Format(Hex(Seriennummer), _
"00000000")
'Typ feststellen (anhand der Seriennummer)
RUECKGABE = GMH_GetType(Seriennummer, CharField(0))
lbl_Typ.Caption = C_NullString(CharField)
'Meßwert lesen
RUECKGABE = GMH_Transmit(Adresse, GMH_GetValue, PRIORITAET, _
FLIESSKOMMA, FESTPUNKT)
If RUECKGABE < 0 Then
lbl_Wert.Caption = GMH3000_Fehlermeldung(RUECKGABE)
Else
Messwert = FLIESSKOMMA
'Einheit lesen und in String übersetzen
RUECKGABE = GMH_Transmit(Adresse, GMH_GetDispUnitCode, _
PRIORITAET, FLIESSKOMMA, FESTPUNKT)
If RUECKGABE < 0 Then
MsgBox GMH3000_Fehlermeldung(RUECKGABE) & "Beim Einlesen der" & _
"Einheit"
Else
RUECKGABE = GMH_GetUnit(FESTPUNKT, CharField(0))
Einheit = C_NullString(CharField)
'Meßwert anzeigen
lbl_Wert.Caption = Messwert & " " & Einheit
End If
End If
'Meßwert lesen
RUECKGABE = GMH_Transmit(Adresse, GMH_GetStatus, PRIORITAET, _
FLIESSKOMMA, FESTPUNKT)
If RUECKGABE < 0 Then
MsgBox GMH3000_Fehlermeldung(RUECKGABE)
Else
lbl_Status.Caption = FESTPUNKT
End If
End If
'Schnittstelle schließen
RUECKGABE = GMH_CloseCom
If RUECKGABE < 0 Then
MsgBox GMH3000_Fehlermeldung(RUECKGABE)
End If
End If
'________________________________________________________
Else
MsgBox "Falsche Adresseingabe!"
End If
Else
MsgBox "Falsche Adresseingabe!"
End If
End Sub
Private Sub Form_Load()
'DLL-Version feststellen und ausgeben
Dim HauptVersion As String
Dim NebenVersion As String
'Berechnen
HauptVersion = Hex(GMH_GetVersionNumber() / 256)
NebenVersion = Hex(GMH_GetVersionNumber() Mod 256)
If Len(NebenVersion) = 1 Then NebenVersion = "0" & NebenVersion
'Bedingte Anzeige
#If Win16 Then
Me.Caption = "GMH3000.DLL V" & HauptVersion & "." & NebenVersion
#ElseIf Win32 Then
Me.Caption = "GMH3x32.DLL V" & HauptVersion & "." & NebenVersion
#End If
'Labels vorbelegen
lbl_Typ = ""
lbl_Wert = ""
lbl_Status = ""
End Sub |