|
Mit dem Sequencer-Modul steht ein einfaches, aber dennoch sehr wirkungsvolles
Hilfsmittel für die Erzeugung von zeit- oder ereignisabhängiger
Nachrichtenfolgen zur Verfügung. Das Sequencer-Modul ist ein äußerst effektives
Tool für den Test von CAN-Geräten und -Netzwerken, z.B. durch Simulation des
Start-up-Verhaltens von Netzwerken. Für die Definition von Nachrichtensequenzen
stehen die nachfolgenden Befehle zur Verfügung:
|
Senden von Daten- oder Remote-Nachrichten |
|
Warten auf das Eintreffen von Daten oder
Remote-Nachrichten |
|
Einfügen von Wartezeiten |
|
Warten auf Benutzereingabe |
|
Wiederholen von Befehlsblöcken |
Die Kommandos der Skriptsprache sind:
| Befehl |
Bedeutung |
Aktion |
| td |
transmit data |
Senden einer Nachricht |
| tr |
transmit remote |
Senden einer Nachrichten-Anforderung |
| wd |
wait for data |
Warten auf das Eintreffen einer Nachricht |
| wr |
wait for remote |
Warten auf das Eintreffen einer
Nachrichten-Anforderung |
| delay |
delay |
Einfügen einer Wartezeit in ms |
| pause |
pause |
Warten auf Benutzereingabe |
| repeat |
repeat |
Wiederholung eines Blocks |
| endrep |
end repeat |
Ende eines Blocks |
|
Fügen Sie das Sequencer-Modul Ihrer Konfiguration hinzu, indem Sie das
Sequencer-Icon der Modulübersicht per Drag and Drop auf Ihren Controller
ziehen.
Ein Doppelklick auf den Eintrag im Konfigurationsbaum startet das
Seuqencer-Modul. Unterhalb der Menü- und Schalterleiste befindet sich ein
Eingabebereich, in welchem die Befehle in Skriptsprache eingetragen werden.
Nach dem Start des Skriptes dient der Eingabebereich als Anzeige, in dem durch
einen Laufbalken der aktuell bearbeitete Befehl angezeigt wird.
Beispielhaft ist hier die Syntax eines Sende- und eines Empfangsbefehls gegeben:
td <anzahl_der_wiederholungen> <verzögerungszeit>
<nachricht-id> <[datenfeld]>
Der Befehl zum Versenden einer Nachricht lautet td. Seine vier Parameter
werden jeweils durch mindestens ein Leer- oder Tabulatorzeichen getrennt. Durch
Angabe einer "verzögerungszeit" (in Millisekunden) kann bestimmt werden, ob und
wie lange das Sequencer-Modul nach dem Versenden der Nachricht die Abarbeitung
des Skriptes unterbricht. Nach dieser Wartezeit wird die Nachricht sooft
versandt, wie dies unter "anzahl_der_wiederholungen" angegeben ist. Die Angabe
eines Datenfeldes ist optional. Es darf bis zu 8 Ziffern enthalten, welche
ebenfalls durch Leerzeichen zu trennen sind.
wd <verzögerungszeit> <nachricht-id>
Der Befehl um auf den Empfang einer CAN-Nachricht mit "nachricht-id" zu warten,
lautet wd. Auch hier kann durch Angabe einer "verzögerungszeit" die
Abarbeitung des Skriptes unterbrochen werden.
Im folgenden Beispiel wird eine Sequenz von vier Nachrichten fünf mal
hintereinander gesendet. Danach wird auf den Empfang einer Nachricht mit dem
Identifier 60h gewartet. Schließlich wird die gesamte Sequenz drei mal
wiederholt. Das Semikolon leitet eine Kommentarzeile ein.
repeat 3
repeat 5
; Count Delay ID Data
td 1 50 41 12 13 14 15
td 1 50 0x3F 33 44 55
td 1 50 0x0A 22 33
td 1 50 32 76 65 43 26
endrep
wd 1 0x60
endrep
|
Dieses Beispiel können Sie markieren, in die Windows-Zwischenablage kopieren und
in den Eingabebereich Ihres Sequencer-Moduls einfügen. Starten
sie die Abarbeitung der Kommandofolge dann entweder
|
durch Auswahl des Menüpunktes Nachrichtensequenz |
Start oder |
|
durch Klick auf den Button
in der Schalterleiste |
Beobachten Sie dies mit dem Receive-Modul. Das Sequencer-Modul wird nach dem
Senden von vier Nachrichten am Warte-Befehl wd anhalten. Um die
Abarbeitung des Skriptes fortzusetzen, müssen Sie im Transmit-Modul eine
Nachricht mit dem Identifier 0x60 definieren und diese senden, sobald die
Abarbeitung stoppt.
|