Beispiel: Checksummenberechnung

<< Click to Display Table of Contents >>

Navigation:  Plug-ins > Mitgelieferte User-Plug-ins > Formel >

Beispiel: Checksummenberechnung

 

Im Folgenden soll anhand eines Beispiels verdeutlicht werden, wie das Formel Plug-in eingesetzt werden kann.

 

Ziel soll es sein, für eine Botschaft und die darin enthaltenen Signale eine Checksumme zu berechnen. Für dieses Beispiel ist das Vorhandensein eines realen Steuergeräts nicht notwendig, eine Überprüfung der Checksumme sowie das Vortäuschen eines erkennbaren Übertragungsfehlers kann simuliert werden.

 

Für dieses Beispiel wird das Vorhandensein folgender Botschaften und Signale vorausgesetzt:

 

Botschaft

Zykluszeit

Signal

Position in Botschaft

Wertebereich

Datenpaket

100 ms

Signal1

0 bis 15

0 bis 65535



Signal2

16 bis 23

0 bis 255



Signal3

24 bis 35

0 bis 4095



Signal4

36 bis 47

0 bis 4095



Signal5

48 bis 55

0 bis 255



Checksumme

56 bis 63

0 bis 255

Anzeige

10 ms

ChecksummenFehler

0

0 bis 1

 

Zunächst wird das Formel-Plug-in über das Kontextmenü des Baumes geladen (das Hauptfenster wird angezeigt). Alle nachfolgenden Formeln sollen hier eingegeben werden. Sie finden diese hier zum Kopieren via Copy & Paste:

 

Formel Nr.1
Durch Doppelklick auf einen leeren Eintrag wird der Formel-Editor geöffnet, in den die folgende erste Formel eingegeben werden soll:

 

Beispiel1
Beispielformel zum Kopieren

 

 

Formel Nr.2
In der nächsten neuen Formel werden die Signalwerte zyklisch verändert, damit ständig neue Botschaftsdaten vorliegen.

 

Beispiel2
Beispielformel zum Kopieren

 

 

Formel Nr.3
Ebenfalls vor dem Senden findet die Berechnung der Checksumme statt. Dabei werden die ersten sieben Botschaftsbytes durch ein Exklusiv-ODER miteinander verknüpft. Das Ergebnis wird dem Signal „Checksumme“ zugewiesen, welches sich im (bei der Berechnung ausgelassenen) achten Botschaftsbyte befindet.

 

Beispiel3
Beispielformel zum Kopieren

 

 

Formel Nr.4

Mit der nächsten Formel wird eine Manipulation von Signal1 durchgeführt nachdem die Checksumme berechnet wurde. Damit soll später bei der Checksummenprüfung ein Fehler provoziert werden. Diese Formel soll zunächst einmal nicht ausgewertet werden, deshalb wird das Aktiv-Checkhäkchen nicht gesetzt.

 

Beispiel4
Beispielformel zum Kopieren

 

 

Formel Nr.5
Die nächste Formel wird nach dem Senden der Botschaft ausgewertet. Dies soll die Prüfung nach Empfang der Botschaft simulieren (der Auswertungszeitpunkt „bei Empfang“ kann nur verwendet werden, wenn die Botschaften durch ein real vorhandenes Steuergerät versendet werden).

 

Beispiel5
Beispielformel zum Kopieren

 

 

Wenn die Formeln alle eingetragen wurden, ergibt sich im Hauptfenster folgende Übersicht:

 

Hauptfenster

 

 

Nun kann die Simulation gestartet werden. Während die Simulation läuft, wird über das Setzen des Häkchens in der Checkbox die Formel aktiviert, die für das Verfälschen der Botschaftsdaten vorgesehen ist (Formel Nr. 4). Werden alle Signale in einem Plot überwacht kann man folgendes sehen:

 

Plot_Ergebnis

 

Die Signalwerte ändern sich entsprechend Formel Nr.2, nachdem sie durch Formel Nr.1 beim Start der Simulation auf einen Startwert initialisiert wurden. Kurz nach drei Sekunden Laufzeit wurde die Formel Nr.4 zur Verfälschung der Botschaftsdaten aktiviert. Wie im untersten Signalverlauf „ChecksummenFehler“ zu sehen ist wird dieser Fehler erkannt, der Signalwert wechselt auf 1. Nach insgesamt sechs Sekunden seit Beginn der Simulation wurde Formel Nr.4 wieder deaktiviert, die Checksumme wird wieder als korrekt anerkannt.