Der Ausnutzer

Damit hatte ich zwar noch nichts zu tun, aber das sieht so aus, als wenn bestimmte festgelegte Einheiten über einen Code angegeben werden in diesem Byte 7/8.

Denke, man kann mit dem Protokoll Werte übermitteln und im Byte 7/8 ist dann die Einheit codiert. Steht dort also eine 05, dann sind es kWh usw.
 
Ja klar, sieht man ja auch, wird ja zusätzlich binär angegeben in der Tabelle und drüber steht Hex-Code.

Dieses Byte 7/8 scheint sich wohl auf die Bits im Byte zu beziehen.
Der VIB (Value Information Block) ist 1 Byte lang. Im höchsten Bit steht aber das sogenannte "Extension Bit", welches anzeigt, ob danach noch weitere Extensions zu diesem Thema folgen. Also werden für die Einheit 7 von 8 Bits genutzt.

Hier noch ein Link: http://www.m-bus.com/files/default.html
und: http://www.m-bus.com/files/w4b21021.pdf
 
das stimmt,aber nicht alle lesen das und dann wundern sie sich warum das nicht so funkt wie es soll.haben wir ja hier schon alles erlebt,oder?darum hab ich es nochmals erwähnt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen,

Im höchsten Bit steht aber das sogenannte "Extension Bit", welches anzeigt, ob danach noch weitere Extensions zu diesem Thema folgen. Also werden für die Einheit 7 von 8 Bits genutzt.

Also mein grösstes Problem ist es zu verstehen wie die ankommenten Zahlenwerte sortiert und vorallem zusammengesetzt werden.
Habe da auch ASCII Zeichen drin. Wie weiss ich nun, was sich Hinter der Nummernfolge verbirgt?:confused:

Viele Gruesse
wero
 
Habe da auch ASCII Zeichen drin. Wie weiss ich nun, was sich Hinter der Nummernfolge verbirgt?:confused:
das lässt sich der tabelle nicht entnehmen.
durchaus möglich, dass grundsätzlich alles im ascii code vorliegt.
um was genaueres dazu zu sagen müsstes du mal den inhalt der bytes posten
 
Ich hab dir ja den 2. Link mit angegeben. Hab das auch nur mal kurz überflogen, weils mich interessiert hat. Aber anscheinend wird das alles in einer festen Reihenfolge hintereinanderweg hingeschrieben, ja nach Gerät. Dazu gibt es dann noch diese Extension-Bits (siehe oben), welche mit einer 1 anzeigen, daß noch eine Ergänzung angehängt ist. Steht da eine 0 drin, kommt wohl die nächste darauffolgende logische Einheit. Man muß also die richtige Reihenfolge kennen und auch die Extension-Bits beachten. Es kann natürlich auch noch sein, daß sich das nach hinten noch weiter aufsplittet, je nachdem, welche Geräte, Spezifikationen man wählt, das weiß ich nicht genau, muß man mal aus der PDF rauslesen. Da kommst du wohl nur durch, wenn du das mal von Anfang bis Ende durchließt. Falls du ein einziges feststehendes Gerät einlesen willst, mußt du dir sicher dafür die Codes alle raussuchen. Wenn unterschiedliche Geräte dranhängen, wird so eine Art Parser sinnvoll sein, in welchem man implementiert, was nach welcher Angabe in den Daten folgt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen,

glücklicherweise konnte ich die Liste der Telegrammbytes des Herstellers auftreiben. Vielen Dank an Herrn P. der Firma S.;)
Die Reihenfolge gewusst, bleibt mein Problem das Zusammensetzen.
Wie bildet man nun eine Zahlenkette, aus mehreren Bytes?
Habe schon einige Threads hier gelesen, scheitere aber an meinen bescheidenen Programmierkenntnisen:oops:.

Viele Grüsse,
wero
 
Danke fuer deine Hilfe Gerhard.

Was zu posten ware meiner Meinung sinnlos, weil du im Grossen und Ganzen eh nur ein Array of Byte sehen würdest.
Ein Array mit Hexadezimalzahlen,wo ich die einzelnen Bytes zusammensetzen müsste (z.B Array[1] mit Array[5] und Array[80]).
Damit wuerde ein sinnvoler Wert rauskommen.

Viele Gruesse
wero
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Entweder du überträgst das byteweise von einem Array in ein Zielarray oder du nimmst den SFC20 (Block_Move) und kannst dann beliebige Blöcke übertragen. Es gibt hier im Forum auch einen FC, der den Block_move so kapselt, daß man sich nicht mehr mit Any-Pointern befassen muß, sondern nur noch QuellDB + StartByte + Länge und ZielDB + StartByte angeben muß.
 
Zurück
Oben