FEP3¶
Bisheriger/interner Bezeichner: FEP3
Herstellerinformationen
Hersteller |
Webseite |
Produktname |
Version |
|---|---|---|---|
Functional Engineering Platform |
3.0 |
Kategorien
MDL 🛈 |
APL 🛈 |
BAN 🛈 |
BMA 🛈 |
SVC 🛈 |
DGN 🛈 |
FIU 🛈 |
EES 🛈 |
FCT 🛈 |
DBG 🛈 |
IMG 🛈 |
AUDIO 🛈 |
ENVSIM 🛈 |
ENVCOM 🛈 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
✓ |
Plattform
Betriebssystem |
Unterstützung |
|---|---|
Windows |
✓ |
Linux |
Ports¶
Besonderheiten¶
Diese Toolanbindung ermöglicht:
Lesen und Schreiben der Properties der Teilnehmer
Lesen und Schreiben von Signalen auf dem Simulationsbus
Aufnahme von Signalen mit anschließender Traceanalyse
Zustandssteuerung (Initialisieren, Starten, Stoppen, …) des Simulationsverbunds
Voraussetzungen¶
Für die Nutzung dieser Anbindung müssen folgende Voraussetzungen erfüllt sein:
- Umgebungsvariable
Damit diese Anbindung in der Liste verfügbarer Tools in ecu.test angezeigt wird, muss auf dem genutzten Toolhost die Umgebungsvariable
FEP3_PARTICIPANT_COMPONENTS_FILE_PATHgesetzt sein. Diese muss den absoluten Pfad des zu benutzenden FEP Component Configuration File (*.fep_components) enthalten. Details zu dieser Datei und dem Komponenten-System von FEP sind in der FEP User Documentation bzw. in der Dokumentation zum FEP SDK zu finden.- Launch des FEP-Systems
Das zu steuernde FEP-System muss bereits ausgerollt und gestartet sein. Dafür ist evtl. externes Tooling (FEP Agent, FEP Access, FEP Control etc.) notwendig.
- Systembeschreibung
In der Testbenchkonfiguration wird der Pfad zur Systembeschreibungsdatei des FEP-Systems angegeben. Damit ecu.test die Beschreibung des Systems einlesen und im Modellzugriffs-Reiter den Signalbaum anzeigen kann, müssen alle relevanten Informationen im selben Verzeichnis liegen.
Dabei handelt es sich um folgende Dateien:
Systembeschreibungsdatei (
*.mm3_system.yml)Elementbeschreibungsdateien (
*.mm3_element_type.yml)DDL-Informationen (
*.description)
Die Elementbeschreibungsdateien müssen dabei denselben Dateinamen haben, wie ihre Conan Reference in der Systembeschreibungsdatei.
Beispielhafter Auszug aus einer Systembeschreibungsdatei:
system: name: FepDemo element_instances: car_ego: conan_reference: fep_simple_car/..@..
In diesem Fall muss die Elementbeschreibungsdatei den Dateinamen
fep_simple_car.mm3_element_type.ymlbesitzen.- Participant-Prioritäten
ecu.test wendet beim Initialisieren und Starten des FEP-Systems die in der Systembeschreibungsdatei angegebenen Init- und Start-Prioritäten an (Participants mit größerer Zahl werden vor Participants mit kleinere Zahl gestartet, negative Zahlen sind erlaubt). Gegebenenfalls zusätzlich vom Anwender eingebrachte, aber nicht in der Systembeschreibung aufgeführte Participants erhalten die Priorität 0. Gleiches gilt für die von ecu.test zur Steuerung und Überwachung des Systems eingebrachten Participants.
Es ist Aufgabe des Anwenders die Init- und Start-Prioritäten in der Systembeschreibung entsprechend der Abhängigkeiten der Participants untereinander zu setzen. Dabei ist zu beachten, dass die zusätzlich eingebrachten Participants in der Regel nach jenen in der Systembeschreibung initialisiert bzw. gestartet werden und der Timing-Master ganz zum Schluss. Dies lässt sich sehr einfach dadurch realisieren, dass man dem Timing-Master eine negative Priorität zuweist und für die anderen Participants in der Systembeschreibung ausschließlich Prioritäten >0 vergibt.
Einschränkungen¶
Folgende Einschränkungen sind bei der Verwendung dieser Anbindung zu beachten:
- Systemproperties
Die in der Systembeschreibungsdatei für die einzelnen Participants ggf. angegebene Property-Bedatung (insb. Timing-Einstellungen und Signal-Renamings) wird nicht automatisch durch ecu.test appliziert. Dafür ist ggf. externes Tooling (FEP Access, FEP Control etc.) notwendig.
- Lesen & Schreiben von FEP-Signalen
Bei allen Signalen, die im Modellbaum von ecu.test in erster Ebene unter dem Knoten Signale aufgelistet sind, handelt es sich um FEP-Signale. Wenn eines dieser Signale weiter aufgeklappt werden kann, so handelt es sich um ein komplexes Signal mit einem oder mehreren Untersignalen, auch Elemente genannt. Lese- und Schreibschritte beziehen sich jeweils auf eins dieser Signalelemente. Das Lesen bzw. Schreiben mehrerer Elemente eines Signals erfordert daher mehrere Testschritte.
Werden nacheinander mehrere Elemente eines Signals ausgelesen, ist nicht sichergestellt, dass die gelesenen Werte aus demselben Sample des Signals stammen.
Wird eines dieser Elemente geschrieben, so wird immer das vollständige, komplexe Signal versendet, wobei alle anderen Elemente ihre aktuellen Werte behalten. Dies sind die Werte aus dem letzten Sample des Signals, das von ecu.test empfangen oder versendet wurde. Existiert kein letztes Sample, wird 0 bzw. der dem vollständig genullten Pufferspeicher des Elements entsprechende Wert als aktueller Wert verwendet.
Werden mehrere Elemente durch aufeinanderfolgende Schreibschritte verändert, so wird bei jedem Schreibschritt ein vollständiges, komplexes Signal versendet.
Zyklisches Senden und Muten von FEP-Signalen wird nicht unterstützt. Existiert in dem FEP-System ein Participant, der dasselbe Signal (zyklisch) sendet, so werden die von ecu.test gesendeten Werte des Signals wieder überschrieben.
- Unterstützte Signaltypen
ecu.test unterstützt ausschließlich DDL-Signale, deren Struktur in einer Description-Datei definiert ist (
stream_meta_type: "ddl-fileref"). RAW-Signale und andere Signaltypen werden nicht unterstützt.- Signalnamen
Die Umbenennung von Signalen muss statisch in der Systembeschreibung spezifiziert und genauso im Status
INITIALIZEDbzw.RUNNINGaktiv sein. Eine davon abweichende, dynamische Festlegung bzw. Änderung wird von ecu.test nicht unterstützt.Info
Die im Modellzugriffs-Reiter von ecu.test angezeigten Signale ergeben sich aus den Input- und Output-Spezifikationen in den Elementbeschreibungsdateien und etwaigen Signalumbenennungen an den Element-Instanzen in der Systembeschreibung. Jeder der angezeigten Signalnamen ist der neue Name in einer Signalumbenennung und/oder der Originalname eines Inputs bzw. Outputs, für den es keine Signalumbenennung gibt.
- Traceaufzeichnung
Pro Signalgruppe wird nur eine Aufnahmegruppe unterstützt.
Jede Aufnahmegruppe kann im Testfall nur einmal gestartet und gestoppt werden.
Traceaufzeichnung von FEP-Signalen ist nur möglich, wenn sich das FEP-System bei Start des Testfall-Packages im Status UNLOADED befindet und am Testfallende wieder in den Status UNLOADED gebracht wird. Es ist also nicht möglich, die Schritte Load, Start, Stop und Unload auf mehrere Testfall-Packages (z.B. innerhalb eines Projektes) zu verteilen, wenn FEP-Signale aufgezeichnet werden sollen.
Zeitmodi¶
Die Toolanbindung unterstützt ecu.test-seitig den Echtzeit- und den kontinuierlichen Simulationszeitmodus (siehe Zeitmodus). Das angesteuerte FEP-System kann in den synchronisierten FEP-Timing-Modes Continuous Timing und Discrete Timing oder unsynchronisiert (No Timing Master) laufen.
Standardmäßig aktiviert diese Toolanbindung den kontinuierlichen Simulationszeitmodus. Dieser stellt in allen (synchronisierten) FEP-Timing-Modes sicher, dass die Zeit im Testfall und die FEP-Zeit synchron laufen. Der vom FEP-System verwendete Timing-Mode wird dabei automatisch erkannt.
Die Auflösung, mit der die FEP-Zeit im kontinuierlichen Simulationszeitmodus in ecu.test zur Verfügung steht, wird automatisch konfiguriert. Läuft das FEP-System im Modus Discrete Timing, wird die Zeitschrittgröße des Timing-Master übernommen. In allen anderen FEP-Timing-Modes wird standardmäßig eine Auflösung von 100ms verwendet. Bei Bedarf kann die automatische Bestimmung der Auflösung auch in der Testbenchkonfiguration deaktiviert und über die Eigenschaft Zeitraster auf einen nutzerdefinierten Wert gesetzt werden.
Das Zeitraster bestimmt die Genauigkeit von Testschritten mit Zeitangaben. Zum Beispiel würde ein Warte-Testschritt von 250ms bei einem 100ms-Zeitraster 300ms warten. Für eine hohe Genauigkeit ist ein möglichst kleines Zeitraster wünschenswert. Allerdings erhöhen kleine Zeitraster die von ecu.test zu verarbeitende Rate von Zeitstempeln, welche begrenzt ist.
Info
Generell ist darauf zu achten, dass die von ecu.test zu verarbeitende Zeitstempelrate 100 Zeitstempel pro Sekunde nicht überschreitet. Die Zeitstempelrate ergibt sich als Quotient aus TimeFactor_float-Einstellung des Timing-Masters geteilt durch die Zeitraster-Einstellung in ecu.test. Zum Beispiel ergeben ein Zeitfaktor von 2,0 (doppelte Echtzeit) und ein Zeitraster von 50ms (0,05s) eine Rate von 40 Zeitstempeln pro Sekunde.
Im Echtzeitmodus werden die Zeit im Testfall und die FEP-Zeit nicht synchronisiert. Der Echtzeitmodus ist daher nur für die FEP-Timing-Modes Discrete Timing mit TimeFactor_float = 1.0 oder Continuous Timing geeignet und ggf. für unsynchronisierte FEP-Systeme (No Timing Master), da andernfalls die Zeiten im Testfall und im FEP-System stark auseinanderlaufen.
Eigenschaften 🛈¶
Name |
Verfügbar wenn |
Standardwert |
Gültige Werte |
Typ |
Beschreibung |
|---|---|---|---|---|---|
Allgemein |
|||||
Systembeschreibungsdatei |
Allgemein |
string |
Pfad zur Systembeschreibungsdatei des Metamodells (Dateiendung ist optional). Der Pfad kann absolut oder relativ zum Basispfad angegeben werden. |
||
Raster zur Übertragung der FEP-Zeit manuell einstellen |
Allgemein |
☐ |
bool |
Erlaubt eine feste Vorgabe der Auflösung, mit der die FEP-Zeit ecu.test zur Verfügung gestellt wird, wenn FEP als Zeitquelle verwendet wird. Ohne Vorgabe wird eine geeignete Auflösung automatisch bestimmt. |
|
Zeitraster |
Allgemein » Raster zur Übertragung der FEP-Zeit manuell einstellen |
100 |
int |
Auflösung in ms bezogen auf FEP-Zeit (Simulationszeit). Achtung: Das Zeitraster beeinflusst die Genauigkeit zeitbasierter Testschritte und die Performance von ecu.test (siehe Anwenderhilfe). |
|
Timeout für Toolzugriffe ❲in Sek.❳ |
‚600‘ |
string |
Zeit nach der eine Anfrage an das Tool abgebrochen wird. |
Jobs 🛈¶
GetProperties¶
Gibt eine Liste der Pfade der verfügbaren Properties eines Participants zurück. Achtung: Manche Properties sind erst ab dem Systemstatus loaded verfügbar.
Parametrierung
Parameter
Name |
Verfügbar wenn |
Standardwert |
Gültige Werte |
Typ |
Beschreibung |
|---|---|---|---|---|---|
ParticipantName |
string |
Name des Participants |
Rückgabewert
Name |
Verfügbar wenn |
Standardwert |
Gültige Werte |
Typ |
Beschreibung |
|---|---|---|---|---|---|
result |
object |
Liste der Pfade der verfügbaren Properties |
GetPropertyValue¶
Gibt den Wert einer Property eines Participants zurück. Achtung: Manche Properties sind erst ab dem Systemstatus loaded verfügbar.
Parametrierung
Parameter
Name |
Verfügbar wenn |
Standardwert |
Gültige Werte |
Typ |
Beschreibung |
|---|---|---|---|---|---|
ParticipantName |
string |
Name des Participants |
|||
PropertyPath |
string |
Pfad der zu lesenden Property |
Rückgabewert
Name |
Verfügbar wenn |
Standardwert |
Gültige Werte |
Typ |
Beschreibung |
|---|---|---|---|---|---|
result |
object |
Gelesener Wert der Property |
Load¶
Bringt das FEP-System vom Zustand unloaded in den Zustand loaded.
Parametrierung
Parameter
Name |
Verfügbar wenn |
Standardwert |
Gültige Werte |
Typ |
Beschreibung |
|---|---|---|---|---|---|
Timeout |
10 |
int |
Zeit in Sekunden, die pro FEP-Teilnehmer beim Laden nicht überschritten werden darf. |
SetPropertyValue¶
Setzt eine Property eines Participants auf den angegebenen Wert. Achtung: Manche Properties sind erst ab dem Systemstatus loaded verfügbar.
Parametrierung
Parameter
Name |
Verfügbar wenn |
Standardwert |
Gültige Werte |
Typ |
Beschreibung |
|---|---|---|---|---|---|
ParticipantName |
string |
Name des Participants |
|||
PropertyPath |
string |
Pfad der zu schreibenden Property |
|||
Value |
object |
zu schreibender Wert |
Start¶
Bringt das FEP-System vom Zustand loaded in den Zustand running.
Parametrierung
Parameter
Name |
Verfügbar wenn |
Standardwert |
Gültige Werte |
Typ |
Beschreibung |
|---|---|---|---|---|---|
Timeout |
10 |
int |
Zeit in Sekunden, die pro FEP-Teilnehmer beim Starten nicht überschritten werden darf. |
Stop¶
Bringt das FEP-System vom Zustand running in den Zustand loaded, von wo aus es erneut gestartet werden kann.
Parametrierung
Parameter
Name |
Verfügbar wenn |
Standardwert |
Gültige Werte |
Typ |
Beschreibung |
|---|---|---|---|---|---|
Timeout |
10 |
int |
Zeit in Sekunden, die pro FEP-Teilnehmer beim Stoppen nicht überschritten werden darf. |
Unload¶
Bringt das FEP-System vom Zustand loaded in den Zustand unloaded.
Parametrierung
Parameter
Name |
Verfügbar wenn |
Standardwert |
Gültige Werte |
Typ |
Beschreibung |
|---|---|---|---|---|---|
Timeout |
10 |
int |
Zeit in Sekunden, die pro FEP-Teilnehmer beim Entladen nicht überschritten werden darf. |