Langsatz
Daten werden mit einem Langsatz an den M-Bus Teilnehmer gesendet. Der Langsatz setzt sich aus maximal 255 Bytes zusammen und wird mit dem Baustein FB_MBUS_General_Send() an den Zähler übertragen.
Aufbau des Protokolls:
Byte | Langsatz | Beschreibung | Belegung im Baustein "FB_MBUS_General_Send" |
---|---|---|---|
1 | Startzeichen | 68hex | Wird im Baustein hinzugefügt |
2 | L-Feld | Länge der Anwenderdaten plus 3 | Wird im Baustein hinzugefügt |
3 | L-Feld | Länge der Anwenderdaten plus 3 | Wird im Baustein hinzugefügt |
4 | Startzeichen | 68hex | Wird im Baustein hinzugefügt |
5 | C-Feld | Funktionsfeld | Wird an die Inputvariable "byC_Field" übergeben |
6 | A-Feld | Primäradresse der M-Bus Teilnehmers | Wird an die Inputvariable "usiAddress" übergeben |
7 | CI-Feld | Kennungsfeld | Wird an die Inputvariable "byCI_Field" übergeben |
8..x | Anwenderdaten (0..240) | Anwenderdaten | Werden an die Inputvariable "arrData" übergeben |
x+1 | Checksumme | Checksumme | Wird im Baustein hinzugefügt |
x+2 | Stoppzeichen | 16hex | Wird im Baustein hinzugefügt |
Es müssen nur die fett markierten Bytes an den Baustein übergeben werden.
Die Anwenderdaten im Array "arrData" müssen als letztes Zeichen "16hex" enthalten. Achten Sie darauf, dass die nachfolgenden Bytes leer sind.
Beispiel: Änderung der Primäradresse auf Adresse 14, alte Adresse ist 0
(*Übergabe der Anwenderdaten*)
fbSend.arrData[0]:=16#01; (*DIF / Datenformat 8 Bit Integer*)
fbSend.arrData[1]:=16#7A; (*VIF / Adresse ändern*)
fbSend.arrData[2]:=14; (*neue Adresse = 14*)
fbSend.arrData[3]:=16#16; (*Stoppzeichen/ Checksumme nicht übergeben, wird im Baustein errechnet*)
fbSend.byC_Field:=16#53; (*C-Feld*)
fbSend.byCI_Field:=16#51; (*CI-Feld*)
fbSend.usiAddress:=0; (*alte Adresse*)
fbSend(iComId:=1, (*Aufruf des Bausteins*)
bStart:=bStart,
bInit:=TRUE);
Das Senden wird mit der Variable "bStart" gestartet.