Checksumme berechnen?

mpexx

Level-1
Beiträge
31
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo allerseits.

Ich muss für eine RS232 Komunikation zwischen einer 313C-2 PtP und einem externen Gerät eine Checksumme berechnen.

Die zu übertragenden Daten sehen so aus:
http://img153.imageshack.us/my.php?image=rs232commbf1.jpg

Als checksum soll, Zitat: "xor of bytes between STX and checksum", übertragen werden.

Muss ich jetzt jedes Byte dieser Daten mit dem folgenden XOR-Verknüpfen, oder wie soll man das verstehn?

PS: Ich hab weder die SPS noch den Kommunikationsparter momentan da, deswegen kann ich das nicht einfach mal ausprobieren.
 
Also ich würde es so verstehen, dass alle Bytes auf einmal xor verknüpft werden sollen, aber sicher bin ich mir da nicht.
 
Die Bytes zwischen STX (StartofTransmission) und CHK (Checksum XOR) werden mit XOR verknüpft. Das Ergebnis dieser XOR-Verknüpfung wird dann mit dem Byte CHK (Checksum XOR) verglichen. Wenn beide Werte gleich sind, war die Datenübertragung erfolgreich.

Gruß Kai
 
Hallo,

ich hab hier ein Projekt vorliegen da ist das auch so gemacht.
Zwar einfach und umständlich aber dafür verständlich.

Bsp:

L #crc
L "DB_Daten_RFID".Write_Send.Laenge
XOW
T #crc
L "DB_Daten_RFID".Write_Send.COM_Adr
XOW
T #crc
L "DB_Daten_RFID".Write_Send.Befehl
XOW
T #crc
L "DB_Daten_RFID".Write_Send.DB_Adr
XOW
T #crc
L "DB_Daten_RFID".Write_Send.Daten1
XOW
T #crc
L "DB_Daten_RFID".Write_Send.Daten2
XOW
T #crc
L "DB_Daten_RFID".Write_Send.Daten3
XOW
T #crc
L "DB_Daten_RFID".Write_Send.Daten4
XOW
T "DB_Daten_RFID".Write_Send.CSUM

Gruß Philipp
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Morgen allerseits.

Ich hatte es bereits so ähnlich versucht wie PhilippL.
Allerdings habe ich ja verschiedene Datentypen im DB.
Daher habe ich auch im Datentyp WORD die Bytes einzeln genommen und "ge-XOR-t" :D.

Danke für eure Antworten!
 
Morgen allerseits.

Ich hatte es bereits so ähnlich versucht wie PhilippL.
Allerdings habe ich ja verschiedene Datentypen im DB.
Daher habe ich auch im Datentyp WORD die Bytes einzeln genommen und "ge-XOR-t" :D.

Danke für eure Antworten!

Wäre es da nicht einfacher gewesen aus dem einen BYTE ein WORD zu machen?! Da hättest du dir einige XOR gespart!
 
Zurück
Oben