S7 - Checksummen bilden

seeba

Level-1
Beiträge
1.867
Reaktionspunkte
62
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe Forumsgemeinde,
wie bilde ich am besten eine Checksumme über ca. 200 Bytes. Diese werden über ein CP341 (ASCII) gesendet und ich will auf der Gegenseite kontrollieren, ob das, was ankommt, auch stimmt?

Gruß Sebastian
 
Das kommt darauf an welche Steuerung eingesetzt wird und wie schnell die Checksumme gebildet werden muss.

Man könnte eine Routine erstellen, die Byte für Byte einliest und deren Hexwerte addiert.

Das Ergebnis müßte in einer eigenen Variable mitübergeben werden.


Der Partner der die Daten erhält nimmt die gleiche Berechnung vor und vergleicht anschließend mit der Prüfsumme die ihm als Parameter übermittlet wurde.


Bei 200 Bytes wird es wahrscheinlich notwendig sein die Berechnung auf mehrere Zyklen aufzuteilen, um die Zykluszeit nicht immens zu erhöhen.
(Z.B. 20 Byte pro Zyklus, nach 10 Zyklen steht die Prüfsumme zur Verfügung)

Bei einer CPU-318 könnte ich mir vorstellen, das dies auch innerhalb eines Zyklus vernünftig gelöst werden kann, weil diese Steuerung enorm schnell die Berechnungen durchführen kann.

Im Prinzip wird man testen müssen, wie viele Berechnungen pro Zyklus sinnvoll sind.
 
Hallo zusammen.

Ja, ich hatte diese Frage nach dem CRC auch schon mal hier im Forum gestellt. Jeder sagt hatten wir schon mal, aber eine richtige Lösung hat noch niemand bieten könne.

Es wird ein CRC-Check gesucht, keine Quersumme oder Mittelwerte oder sonst irgend etwas, worauf hier verschiedentlich auch mit Links verwisen wird.

Manch einer schreibt hier ein Generator-Polynom hin, toll. Die Seiten wie es funktioniert oder besser funktionieren könnte habe ich mir auch schon angeschaut. Aber eine Umsetzung auf ein SPS-Programm konnte noch keiner bieten.

Na, vielleicht hat einer von euch noch mal einen Gedankenblitz.
 
Prüfsumme in S7

Hallo,
seeba schrieb:
Diese werden über ein CP341 (ASCII) gesendet
Ja, nicht so gut. Einfacher wäre es, Du benutzt RK512, da ist das generieren der Prüfsumme bereits im Protokoll enthalten. Aufgrund Deiner Fragestellung nehme ich jedoch an, das Du bereits durch irgendwelche Vorgaben an das freie ASCII-Protokoll gebunden bist. Eine Prüfsumme im Sinne von CRC ist in der SPS nur sehr aufwendig zu erstellen. Mach doch einfach eine XOR-Verknüpfung über Deine 200 Bytes (BCC-Check), der Aufwand für die Berechnung in einer Schleife hält sich in Grenzen, und häng diese Prüfsumme an Deine Daten hintendran. Vorausgesetzt, Du hast Zugriff auf den Kommunikationspartner zur Auswertung und Verifizierung der Prüfsumme ?

Gruß
Question_mark
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Re: Prüfsumme in S7

Question_mark schrieb:
Hallo,
seeba schrieb:
Diese werden über ein CP341 (ASCII) gesendet
Ja, nicht so gut. Einfacher wäre es, Du benutzt RK512, da ist das generieren der Prüfsumme bereits im Protokoll enthalten. Aufgrund Deiner Fragestellung nehme ich jedoch an, das Du bereits durch irgendwelche Vorgaben an das freie ASCII-Protokoll gebunden bist. Eine Prüfsumme im Sinne von CRC ist in der SPS nur sehr aufwendig zu erstellen. Mach doch einfach eine XOR-Verknüpfung über Deine 200 Bytes (BCC-Check), der Aufwand für die Berechnung in einer Schleife hält sich in Grenzen, und häng diese Prüfsumme an Deine Daten hintendran. Vorausgesetzt, Du hast Zugriff auf den Kommunikationspartner zur Auswertung und Verifizierung der Prüfsumme ?

Gruß
Question_mark

Es handelt sich um Modems und ja, auf der anderen Seite werkelt meine Software. Werde es mal versuchen.
 
Zurück
Oben