D
Deleted member 103
Guest
Hallo Jungs,
eine Frage, wer kennt sich aus mit dem M-Bus Protokoll, hat schon jemanden etwas damit gemacht?
Ich versuche seit einiger Zeit ein Verbrauchsmeßzähler auszulesen, dabei habe ich schon vieles probiert, leider ohne Erfolg.
Ich kriege zwar eine Verbindung zum Verbrauchsmeßzähler, bekomme aber keine Daten wenn ich die Telegramme "SND_NKE" oder "REQ_UD2" sende.
Mache ich irgendwo ein Fehler beim senden der Protokolle?
Die Geräte die ich zu verfügung habe:
1) Auslesekopf mit Bluetooth und IRDA
2) Verbrauchsmeßzähler mit IRDA
Es wäre schön wenn mir jemand helfen könnte.
Filippo
eine Frage, wer kennt sich aus mit dem M-Bus Protokoll, hat schon jemanden etwas damit gemacht?
Ich versuche seit einiger Zeit ein Verbrauchsmeßzähler auszulesen, dabei habe ich schon vieles probiert, leider ohne Erfolg.
Ich kriege zwar eine Verbindung zum Verbrauchsmeßzähler, bekomme aber keine Daten wenn ich die Telegramme "SND_NKE" oder "REQ_UD2" sende.
B4X:
Sub go_SendSyncrostring '_sontex
Dim syncrostring(1000) As Byte
For i = 0 To 999
syncrostring(i)=0x55
Next
SendStream(syncrostring)
End Sub
Sub go_SteuerkommandoZVEI_even 'Steuerkommando ZVEI IRDA,8,E,1,9600
Dim b(13) As Byte 'Beim einer aktiven Verbindung
b(0)=0xFE
b(1)=0xFE
b(2)=0xFE
b(3)=Asc("B")
b(4)=Asc("L")
b(5)=Asc("U")
b(6)=Asc("E")
b(7)=0x30 'Asc("0")
b(8)=0x38 'Asc("8")
b(9)=0x45 'Asc("E")
b(10)=0x31 'Asc("1")
b(11)=0x35 'Asc("5")
b(12)=0xFF
SendStream(b)
End Sub
Sub go_SND_NKE
Dim b(5) As Byte
b(0)=0x10 'Start
b(1)=0x40 'C-Feld
b(2)=0x00 '0xFE 'A-Feld
b(3)=get_Checksumme(b,1,2) 'Checksumme
b(4)=0x16 'Ende
SendStream(b)
End Sub
Sub go_REQ_UD2
Dim b(5) As Byte
b(0)=0x10 'Start
b(1)=0x5B 'C-Feld 0x5B / 0x7B
b(2)=0x00 'A-Feld
b(3)=get_Checksumme(b,1,2) 'Checksumme
b(4)=0x16 'Ende
SendStream(b)
End Sub
Sub SendStream(buffer() As Byte)
Log("SEND <CAN>: " & BytesToString(buffer, 0, buffer.Length, "US-ASCII")) 'ISO-8859-1
'AStream.Write(buffer)
AStream.Write2(buffer,0,buffer.Length)
End Sub
Sub AStream_NewData (Buffer() As Byte)
Dim str As String
LogMessage("You", BytesToString(Buffer, 0, Buffer.Length,"US-ASCII")) 'ISO-8859-1
str=bConv.HexFromBytes(Buffer)
Log(str)
End Sub
Sub LogMessage(From As String, Msg As String)
txtLog.Text = txtLog.Text & Msg
txtLog.SelectionStart = txtLog.Text.Length
End Sub
Sub get_Checksumme(buffer() As Byte, Start As Int, Ende As Int) As Byte
Dim hex(1) As Byte
Dim byt As Long
For i = Start To Ende
byt=byt + buffer(i)
Next
hex(0)= byt Mod 256
Return hex(0) 'bConv.HexFromBytes(hex)
End Sub
Mache ich irgendwo ein Fehler beim senden der Protokolle?
Die Geräte die ich zu verfügung habe:
1) Auslesekopf mit Bluetooth und IRDA
2) Verbrauchsmeßzähler mit IRDA
Es wäre schön wenn mir jemand helfen könnte.
Filippo