TIA CRC32 Checksumme

neibeck

Level-2
Beiträge
184
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich schreibe mir gerade einen Baustein für eine serielle Kommunikation zwischen einer S7-1500 und einem Inkjet Drucker.
Ich möchte hier eine CRC32 Checksumme einbauen und hab mir hierfür den Baustein aus der LGF Bibliothek gezogen.
Jedoch komme ich einfach nicht auf den korrekten Wert und weiß nicht warum?!

Beispiel: Die korrekte Checksumme für ^0?RS ist hex E4F2_E323 mit einem Polynom von EDB8_8320 (auch laut https://miniwebtool.com/de/crc32-checksum-calculator/)
Bei mir gibt der Baustein allerdings
0078_4D00 bei einem Startwert von 0000_0000 und
1F04_0CE0 bei einem Startwert von FFFF_FFFF aus.

Hat jemand eine Ahnung was ich falsche mache?

SG Neibeck
 
Hallo Neibeck,

String -> Byte Array Wandlung hast du berücksichtigt?
Gib die Zeichen mal als Byte an. Ist RS ein R und ein S oder ein "record seperator"?

Normalerweise funktioniert das nach einem Serialisieren ziemlich gut.
Prüfe auch mal auf bspw. folgender Seite ( https://crccalc.com/ ), ob IRGENDEINE der dort angegebenen CRC32 Prüfsummen passt, dort stehen dann auch die notwendigen Parameter.

Viele Grüße!
 
Hallo,

nach https://crccalc.com und http://www.sunshine2k.de/coding/javascript/crc/crc_js.html ist das Polynom 0x04C11DB7 und nicht 0xE4F2E323

letzterer Link wird auch in der Siemens Dokumentation angegeben. Für den advanced Baustein siehst Du bei dem Link auch die ganzen Einstellungen, z.B. reflected beide True

Gruß

Tatsächlich, jetzt stimmts. Ich hatte zwar dieses Polynom schon probiert, aber scheinbar nicht in Kombination mit dem reflected.... Danke und schöne Feiertage (trotz Lockdown)!
 
Zurück
Oben