FE3-Protokollierung - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: FE3-Protokollierung (/Thread-FE3-Protokollierung) Seiten: 1 2 |
FE3-Protokollierung - yusuf 89 - 05.10.2012 11:59 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 RE: FE3-Protokollierung - GerdW - 05.10.2012 13:04 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] RE: FE3-Protokollierung - yusuf 89 - 05.10.2012 13:53 danke sehr. Checksumme - yusuf 89 - 07.11.2012 16:17 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. RE: Checksumme - GerdW - 07.11.2012 16:50 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... RE: FE3-Protokollierung - jg - 07.11.2012 17:25 Da du genau dieselbe Checksummenberechnung (wenn auch bei einem anderen Gerät) schon mal gefragt hast... Threads zusammengefügt. Gruß, Jens RE: FE3-Protokollierung - yusuf 89 - 08.11.2012 18:31 @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? RE: FE3-Protokollierung - jg - 08.11.2012 19:05 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 RE: FE3-Protokollierung - yusuf 89 - 08.11.2012 20:13 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? RE: FE3-Protokollierung - GerdW - 08.11.2012 20:33 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... |