Stimulationssteuerung

Diese Kategorie enthält die Testschritte Start Stimulus und Stop Stimulus, welche das Abspielen eines Stimulus steuern.

Eine Alternative zum Abspielen eines Stimulus ist der Testschritt Signal-Stimulation (kurz: Stimulus-Testschritt).

Während im Stimulus-Testschritt der Signalverlauf direkt im Testfall definiert wird und nur eine einzelne Zielgröße stimuliert werden kann, bestehen beim Start Stimulus Testschritt folgende Möglichkeiten:

  • Verwendung von STI- und STZ-Dateien nach ASAM XIL Standard.

  • Direkte Verwendung von weiteren Datendateitypen wie CSV, MAT, MDF4 etc.

  • Zuweisen von Eingangssignalen (StringSymbol als Segmenteigenschaft und Alias in Stopptrigger-Ausdrücken lt. ASAM-Standard) und Parametern, sofern diese in der verwendeten STI/STZ-Datei definiert sind.

  • Signale aus der zu stimulierenden Datei können mehreren Zielgrößen zugewiesen werden.

Einschränkungen und Besonderheiten

Die genannten Möglichkeiten der Stimulation sind nich bei allen Tools mit Stimulus-Unterstützung verfügbar. Das liegt daran, dass das eigentliche Abspielen der Stimulation Aufgabe des verwendeten Tools ist und ecu.test die zu stimulierenden Daten an dieses nur weiterreicht. Allerdings wird auch versucht, die zu stimulierenden Daten entsprechend der Tool-Anforderungen aufzubereiten:

  • Bei Tools, welche nur mit CSV stimulieren können, wird die angegebene Datendatei automatisch in ein CSV umgewandelt (z.B. Silver, VeriStand). Im Start Stimulus Testschritt können daher beliebige Dateitypen angegeben werden.

  • Falls ein Tool die Stimulation nativ mit einem bestimmten Dateiformat unterstützt, dann wird diese Datei unverändert zur Stimulation an das Tool durchgereicht.

  • Unterstützt ein Tool das STZ-Format und wird eine Datendatei angegeben (z.B. MAT), dann wird implizit eine temporäre STZ-Datei erzeugt. Die STZ-Datei enthält pro vom Testschritt verwendetes Signal ein Signal mit einem DataFileSegment, welches die Datendatei referenziert. In diesem Fall ist ggf. darauf zu achten, dass die verwendete Datendatei vom jeweiligen Tool unterstützt wird, da ecu.test nicht für alle Tools mit Stimulus-Unterstützung die referenzierten Dateien in ein toolkompatibles Format konvertieren kann. Siehe dazu Übersicht über die Stimulus-Fähigkeiten der Tools.

  • Bei den meisten Tools kümmert sich ecu.test vollständig um die toolgerechte Aufbereitung der Stimulus-Daten. Hierbei ist es folglich möglich beliebige Eingangsdatenformate zu verwenden, solange ecu.test in der Lage ist diese zu lesen.

Generell ist es sinnvoll in Erfahrung zu bringen, welche Möglichkeiten der Signal-Stimulation das verwendete Tool grundsätzlich bietet. Diese Information kann dem Handbuch des jeweiligen Tools entnommen oder beim Tool-Hersteller erfragt werden. Speziell beim ASAM XIL STI-Format kommt es vor, dass nur bestimmte Versionen (1.0, 2.0, 2.1, 2.2 etc.) unterstützt werden oder dass nicht alle definierten Signalabschnitte erlaubt sind.

Eine weitere Besonderheit stellen STI-Dateien mit extern referenzierten Datendateien dar (als DataFileSegment oder als SignalValueSegment). Insbesondere bei der Verwendung von Tool Server, bei welchem das Tool auf einem anderen Computer läuft, ist zu beachten, dass für die Stimulation die betreffenden Dateien von ecu.test auf den Zielrechner übertragen werden müssen. Dabei kann jedoch nicht immer sichergestellt werden, dass die referenzierten Dateien ebenfalls übertragen werden. Darüber hinaus befinden sich die Dateien auf dem Zielrechner zwangsläufig in anderen Dateisystempfaden (im ToolLibTemp-Verzeichnis). Manche Tools haben auch besondere Anforderungen daran, wie die referenzierten Dateien in der STI-Datei angegeben sind (mit absolutem oder relativem Pfad).

Um solche Probleme zu vermeiden, empfiehlt sich die Verwendung des STZ-Formats. Dabei handelt es sich um eine einfache ZIP-Datei (mit .stz-Endung), in welche die referenzierten Dateien mit eingepackt werden können.

Start Stimulus

Dieser Testschritt startet die Wiedergabe von Stimuli aus einer Datei welche einen Signalverlauf enthält. Typischerweise werden Stimuli-Dateien (.sti) oder komprimierte Stimulus-Dateien (.stz) unterstützt. Zusammen mit ecu.test wird der Signal Editor ausgeliefert, mit welchem sich solche Dateien erstellen und bearbeiten lassen. Neben der Verwendung von .sti/.stz-Dateien können auch alle von ecu.test lesbaren Traceformate direkt für die Stimulation verwendet werden.

ecu.test erzeugt zur Ausführungszeit eine STI-Datei und bindet die ausgewählten Signale der angegebenen Tracedatei als DataFile-Segmente ein. ecu.test konvertiert (mit Ausnahme einiger Tools/Ports, siehe Übersicht über die Stimulus-Fähigkeiten der Tools) standardmäßig die angegebene Tracedatei in ein toolkompatibles Format. Dabei werden auch die in einer STI-Datei im DataFileSegment referenzierten Tracedateien automatisch in ein toolkompatibles Format umgewandelt.

Fügt man den Testschritt hinzu so öffnet sich folgendes Dialogfenster:

../../../_images/Utility_StartStimulus.png

In dem Feld Stimulus-Datei wird die Stimulus-Datei angegeben. Statt den Dateinamen als Text einzugeben kann man auch über den Öffnen-Button eine Datei im üblichen Öffnen-Dialog auswählen. Alle Dateipfade innerhalb des Workspace-Verzeichnis werden relativ ausgedrückt.

Info

Die Stimulus-Datei kann auch über eine Testfallvariable parametriert werden. Während der Testausführung wird der Stimulus dann zur Laufzeit aktualisiert. Je nach verwendetem Tool kann es dabei zu einer Verzögerung für das Setzen des neuen Stimulus kommen. Es wird daher empfohlen die Stimulus-Datei gegenüber dem Packagestart nicht zu verändern.

Signal-Zuordnung

Die Stimulation erfolgt portbasiert, daher ist es nicht zulässig, einem Start Stimulus Testschritt Mappings verschiedener Ports zuzuweisen. Sofern Testgrößen auf verschiedenen Ports stimuliert werden sollen, muss für jeden Port ein separater Start Stimulus Testschritt (und ggf. ein entsprechender Stop Stimulus Testschritt) im Testfall konfiguriert werden. Es ist erlaubt, ein und dieselbe Stimulus-Datei für mehrere Start Stimulus Testschritte zu verwenden.

Ausgangssignale

In der Tabelle Signal-Zuordnung werden in der linken Spalte alle in der aktuell ausgewählten Stimulus-Datei definierten Stimuli aufgezählt. In der rechten Spalte kann man Signal-Mappings auswählen, auf denen der jeweilige Stimulus abgespielt werden soll. Dabei kann man einem Stimulus mehrere Signal-Mappings zuordnen, aber jedes Signal-Mapping nur einem Stimulus zuweisen.

Info

Das Starten und Stoppen der Stimulation erfolgt portbasiert und unterliegt Port-/Tool-spezifischen Latenzen. Aus diesem Grund kann bei Verwendung der Ausführungsmodi kontinuierlich und Echtzeit (siehe Zeitverhalten) nicht davon ausgegangen werden, dass die Stimulationen der unterschiedlichen Start Stimulus Testschritte synchron verlaufen.

Über die Dropdown-Liste kann zwischen drei Modi der Signal-Zuweisung umgeschaltet werden. Standardmäßig ist Signale manuell zuweisen ausgewählt. Mit Signale automatisch zuweisen werden die Signale zur Testausführungszeit anhand ihrer Namen 1:1 den geladenen Mappings zugeordnet. Ebenso ist mit Nicht zugewiesene Signale automatisch zuweisen ein Mischbetrieb möglich, bei dem nur jene Signale für die automatische Zuordnung in Frage kommen, welche nicht bereits manuell in der Signal-Zuordnungs-Tabelle zugewiesen wurden.

Die (teil-)automatische Signalzuweisung kann von Vorteil sein, wenn in mehreren Testfällen viele Signale aus einer Messdatei stimuliert werden sollen. Dann kann man für die zu stimulierenden Signale einfach ein globales Mapping verwenden und mit der Testkonfiguration laden. In allen Testfällen, in denen der Start Stimulus Testschritt mit (teil-)automatischer Signalzuweisung verwendet wird, werden zur Testausführungszeit alle Signale stimuliert, für die eine eindeutige 1:1-Zuordnung des Signalnamens aus der Quelldatei zum Mappingnamen möglich ist.

In den Modi Signale automatisch zuweisen und Nicht zugewiesene Signale automatisch zuweisen kann man über der Tabelle Patterns definieren, falls eine 1:1-Zuordnung zwischen Signal- und Mappingnamen jeweils nur für Teilbereiche der Bezeichner möglich ist. Das ist nützlich, wenn die Signalnamen in der Stimulus-Datei etwa noch einen Prefix gegenüber den Mappingnamen haben.

Beispiel für die Verwendung von Patterns:

Ausgangssignal recording/10ms/velocity soll dem Mapping velocity [m/s] zugewiesen werden. Dafür können folgende Patterns verwendet werden:

  • Ausgangssignal-Pattern: recording/*/(*)

  • Mapping-Pattern: (*) [*

Dabei werden aus den Bezeichnern jeweils die Teilstrings, die zwischen den runden Klammern ermittelt werden extrahiert und für den Vergleich herangezogen.

Pattern-Syntax

Jedes Pattern muss exakt ein rundes Klammerpaar enthalten, um den für den Vergleich interessanten Teilstring zu definieren. Folgende Sonderzeichen werden unterstützt:

* … Wildcard für beliebigen String

? … Wildcard für beliebiges Zeichen

Für die Signalzuweisung werden nur Signale bzw. Mappings berücksichtigt, auf welche das jeweilige Pattern anwendbar ist. Dabei muss das Pattern vom ersten bis zum letzten Zeichen auf den Bezeichner passen.

Info

Im Modus Signale automatisch zuweisen funktioniert die Prüfung, ob der Testschritt fehlerfrei ausgeführt werden kann, nur eingeschränkt. Das liegt daran, dass zur Laufzeit des Testschritts potentiell eine andere Stimulusdatei vorliegen könnte als während der Testfallbearbeitung. Die dynamische Signalzuweisung bezieht sich aber auf die Stimulusdatei zum Zeitpunkt der Ausführung.

Darüber hinaus ist es abhängig vom verwendeten Tool, ob zur Laufzeit andere Zielgrößen stimuliert werden können als jene, welche zu Beginn der Packageausführung schon dafür vorgesehen waren. Das muss im Einzelfall geprüft werden.

Eingangssignale

Wurden in der Stimulus-Datei Eingangssignale vergeben (z.B. als StringSymbol in Segmenteigenschaften oder als Alias in einem Stopptrigger-Ausdruck), können diese ebenfalls mit dem Testschritt zugeordnet werden.

../../../_images/Utility_StartStimulus_InputSignals.png

Info

Der ASAM-Standard erlaubt es Alias und StringSymbol identische Namen zu geben. In diesem Fall kann nur ein und dasselbe Mappingziel sowohl für das StringSymbol-Eingangssignal, als auch für das Alias-Eingangssignal zugewiesen werden. Sollte es notwendig sein, diesen Eingangssignalen unterschiedliche Mappings zuzuordnen, müssen die Alias-Eingangssignale und StringSymbol-Eingangssignale eindeutig voneinander unterscheidbar sein.

Optionen

Es gibt zwei Ausführungsmodi:

Asynchrone Ausführung

Die Testausführung wird nach dem Starten des Stimulus direkt fortgesetzt und es wird nicht gewartet, bis der Stimulus komplett abgespielt wurde. Dies ist das Standardverhalten.

Synchrone Ausführung

Die weitere Testfallausführung wird pausiert bis der Stimulus komplett abgespielt wurde. Dieser Ausführungsmodus wird über das Auswahlkästchen Synchrone Ausführung aktiviert.

Falls die Synchrone Ausführung aktiviert ist, kann zusätzlich die Option Stimulus automatisch stoppen ausgewählt werden. Falls aktiviert, wird der Stimulus implizit automatisch gestoppt, sobald dieser vollständig abgespielt wurde. Ein zusätzlicher Stop Stimulus-Testschritt im weiteren Verlauf des Testfalls ist nicht erforderlich.

Es ist möglich, die ermittelte Zeitdauer des Stimulus einer Testfallvariable zuzuweisen, um diese dann im Testfall z.B. in einem Wait-Testschritt zu verwenden. Bei der Ermittlung der Zeitdauer werden nur die tatsächlich zugewiesenen Signale der Stimulus-Datei berücksichtigt.

Stop Stimulus

Dieser Testschritt beendet die Wiedergabe von Stimuli aus einer Stimulus-Datei.

Die Zuordnung zum jeweiligen Start Stimulus erfolgt über den Instanzbezeichner, daher muss man hier den gleichen Bezeichner auswählen, der schon im Start Stimulus definiert wurde.