Zeitverhalten: Echtzeit- und Simulationszeit-Modi

ecu.test erlaubt die Testfallausführung in verschiedenen Zeitmodi. Der Zeitmodus bestimmt die Zeitquelle, die im Testfall (z.B. von Wait-Testschritten) verwendet wird. Dies kann entweder die lokale Rechneruhr oder aber die Simulationszeit in einem Simulationstool sein. Außerdem legt der Zeitmodus fest, ob die zeitgebende Simulation schrittweise und durch die Testausführung getrieben oder aber kontinuierlich und parallel zur Testausführung abläuft. Die Eigenschaften der verschiedenen Zeitmodi werden im Folgenden erklärt. Details zur Aktivierung eines bestimmten Zeitmodus einschließlich zugehöriger Einstellungen sind im Abschnitt über das Tab Ausführung der Testkonfiguration zu finden.

Echtzeit

Wird der Testfall in Echtzeit ausgeführt, so nimmt ecu.test an, dass alle angesteuerten Werkzeuge auch fähig sind, in Echtzeit zu arbeiten. Es wird in diesem Fall keine Synchronisation der Zeiten in Testfall und in den Tools vorgenommen. Wird ein Wait-Testschritt ausgeführt, wartet ecu.test selbst die angegebene Zeitspanne in Echtzeit, bis der Testfall weitergeführt wird. Dieses Verhalten bietet sich bei Echtzeit-Modellen in einer HiL-Umgebung an, da das Modell mit realitätsnahen Zeitverhalten ausgeführt wird.

../../_images/RealTime_timing.png

In einer MiL- oder SiL-Umgebung kann ein realistisches Zeitverhalten in Echtzeit hingegen häufig nicht realisiert werden. Wenn ecu.test in einer solchen Situation selbst die Zeitspanne wartet, kann es passieren, dass die simulierte Zeit stark davon abweicht.

Wie viel schneller die Simulation im Vergleich zur Echtzeit abläuft, kann für einen konreten Zeitraum über einen Speedup-Faktor beschrieben werden: Dauer in Echtzeit * Speedup-Faktor = Dauer in Simulationszeit.

ecu.test bietet die Möglichkeit, den Testfall statt in Echtzeit in Simulationszeit auszuführen. Hierbei stehen zwei Modi zur Verfügung:

Schrittweise Ausführung in Simulationszeit

Ist dieser Modus aktiviert, verwendet ecu.test die Modellzeit der Simulations-Plattform als Zeitbasis für die Testausführung. Das macht den Testfall völlig unabhängig von der Echtzeit und hat zur Folge, dass Testschritte im Testfall keine reale Verzögerung aufweisen. Nur explizit formulierte Verzögerungen werden simuliert. Die Verwendung des Testschritts Wait hat also bspw. zur Folge, dass ecu.test das jeweilige Tool anweist, die angegebene Zeit zu simulieren, anstatt aktiv zu warten. Selbiges gilt für die Zeitoptionen im Lesen Testschritt.

Info

Bei einigen Tools erfolgt die Auswertung von Warte-Bis-Wahr-Zeitoptionen in diesem Modus direkt in dem Tool, von dem gelesen wird. Dies hat eine deutliche Beschleunigung der Auswertung zur Folge.

I/O Testschritte haben in diesem Modus keine zeitliche Ausdehnung. Soll diese künstlich hinzugefügt werden, ist dies über die Option Wartezeit nach jedem I/O Testschritt in der Testkonfiguration auf dem Tab Ausführung möglich.

../../_images/Stepwise_timing.png

Kontinuierliche Ausführung in Simulationszeit

In diesem Modus läuft die Simulation kontinuierlich, ohne unterbrochen zu werden. ecu.test ermittelt derweil die Zeitstempel über einen als Zeitquelle konfigurierten Port. Diese Zeitstempel werden analog zur Echtzeit für explizite Verzögerungen wie Wait verwendet. Alle anderen Aktionen im Testfall werden ebenfalls ausgeführt, während die Simulationszeit voranschreitet. Zu beachten ist, dass die Ausführungszeit einer Berechnung in ecu.test den Ressourcen des PCs und der Echtzeit unterworfen sind, da sie nicht simuliert werden. Das führt zu stark unterschiedlichen Ausführungszeiten für Berechnungen im Report, abhängig von Speedup-Faktor der Simulation.

../../_images/Continuous_timing.png

Info

Bei Verwendung eines Port als Zeitstempelquelle wird von einer parallelen Ausführung von Packages abgeraten.