LabVIEWForum.de - FE3-Protokollierung

LabVIEWForum.de

Normale Version: FE3-Protokollierung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Guten Tag an alle,

ich bin dabei, ein Labview-Programm für einen Mehrkreisregler zu programmieren.
Leider komme ich in der unten genannten Erläuterung nicht wirklich weiter.


PRÜFSUMMENBERECHNUNG
Die Prüfsumme wird errechnet durch die Addition der ASCII-Werte aller im Telegramm
vorangegangenen Zeichen. Die letzten beiden Zeichen dieser Zahl, nun hexadezimal
betrachtet, werden als Prüfsumme in Großbuchstaben übertragen.




einige Beispiele:

Am Gerät 10, Kanal 5 soll der Sollwert auf 50 gesetzt werden.
der PC sendet:
G10K05P00=00500A{etx}
der Regler antwortet
G10{ack}{etx}

Vom Gerät 8, Kanal 11 soll der Istwert abgefragt werden
der PC sendet:
G08K11PII=7B{etx}
der Regler antwortet
G08=0120AF{etx} (120 ° Istwert)



http://www.fellereng.de/download/fe3bus-dt.pdf
Hallo yusuf,

es ist ja nicht das erste Mal, das hier nach einer Checksum-Berechnung gefragt wird. Hast du hier mal im Forum gesucht?

So könnte es gehen:
[attachment=41764]
String nach "ASCII-Werte" umwandeln, aufsummieren, Checksum-Zeichen nach Anleitung ausgeben...

Steht doch alles in diesem PDF...

Bevor gemeckert wird, es geht noch einfacher:
[attachment=41765]
danke sehr.
Hallo an alle,
ich muss eine Checksumme bilden. Jedoch weiß ich nicht, wie ich es machen soll.
Könnte mir jemand helfen bzw. erklären?

Anscheinend wird die Checksumme über die Aufsummierung von Bytes gemacht.

Vielen Dank.

PS: Im Dokument sind alle Infos enthalten.
Hallo yusuy,

mal überlegen:
"Die Prüfsumme wird über die einfache Addition aller vorherigen Bytes des Telegramms gebildet. Sie ist 2 Bytes lang. Das Highbyte wird vor dem Lowbyte gesendet."

Was denkst du hierzu:
[attachment=42155]
Man hat sein U8-Array mit den Bytes der Botschaft. Man summiert alle auf. Man hängt High- und Lowbyte der Checksumme an die Botschaft an...
Offtopic2
Da du genau dieselbe Checksummenberechnung (wenn auch bei einem anderen Gerät) schon mal gefragt hast...
Threads zusammengefügt.

Gruß, Jens
@GerdW:

Leider funktioniert es nicht ganz.
Wenn ich folgendes schicke "F1 00 36 10 00 01", dann sollte als Checksumme die 37 kommen (also wäre mein Telegramm:"F1 00 36 10 00 01 37") .
Leider kommt bei deinem Lösungsvorschlag zwei Ergebnisse heraus: die "1" und die "38".
Wie bekomme ich denn nun die richtige Checksumme heraus? Oder muss ich mit den beiden erhaltenen Werte weiterrechnen?
Ich wiederhole ungern das Zitat aus der Doku, das auch schon Gerd hier angebracht hat:

Zitat:Die Prüfsumme wird über die einfache Addition aller vorherigen Bytes des Telegramms gebildet. Sie ist 2 Bytes lang. Das Highbyte wird vor dem Lowbyte gesendet.

Du hast das Bsp ""F1 00 36 10 00 01 37" aus der Doku kopiert. Folglich bilden bei diesem Bsp die letzten beiden Bytes die Checksumme, also "01 37". Und oh Wunder, die Aufsummation der restlichen Bytes ergibt genau das!

Gruß, Jens
Kann mir noch jmd sagen, wie mein Protokoll aussehen muss, wenn ich ein Soll-Wert von 1V übertragen will...
mein Vorschlag:F1 00 32 0261 0900
Aber leider ist der falsch... wieso?
Hallo yusuf,

warum müssen wir dir die Anleitung für dein Gerät vorlesen?

Zitat:Aber leider ist der falsch... wieso?
Weil du die Checksumme falsch berechnet hast?
"F1 00 32 0261" (Befehl) ergibt 241+0+50+2+97=390 = 0186h

D.h. die vollständige Botschaft lautet F1 00 32 02 61 01 86...
Seiten: 1 2
Referenz-URLs