Beruflich Dokumente
Kultur Dokumente
2019
VW-MCD
ODX-Converter
Inhaltsverzeichnis
4 Bedienung ..................................................................................................... 6
6 Systemanforderungen ................................................................................ 27
7 Installation ................................................................................................... 29
1 Übersicht VW-MCD
PDX-Builder
ODX Files
Source-PDX
Runtime DB Files
Application
Runtime-PDX
DB
ODX-ProjectUpdater Connector MCD-Kernel
D-PDU-API Library
VCI-Driver
In Abhängigkeit von der Applikation lädt der MCD-Kernel die jeweils benötigten Projektdaten
und kommuniziert über eine standardkonforme D-PDU-API mit einem Fahrzeug.
2 Übersicht ODX-Converter
VW-MCD verwendet ein binäres Laufzeitformat, welches durch den ODX-Converter aus
ODX-Daten erstellt wird. Ein binäres Laufzeitformat hat verschiedene wesentliche Vorteile.
Es ermöglicht eine deutlich bessere Performanz des Gesamtsystems, bei der Erstellung
werden zusätzliche Konsistenzprüfungen der ODX-Daten durchgeführt, und es ermöglicht
eine deutlich größere Flexibilität.
• Flexibilität
Der ODX-Converter ist fähig, alle wesentlichen ODX Standards in ein gemeinsames
Laufzeitformat zu transformieren. Der MCD-Kernel kann dadurch unabhängig von der
ODX-Version implementiert werden.
• Laufzeitdatenmodularisierung
3 Unterstützte ASAM-ODX-Standards
4 Bedienung
Der ODX-Converter ist eine Konsolenapplikation und wird wie folgt gestartet:
converter.exe
–project <project name>
Name des Projekts
ist die Option –create_pdx gesetzt, bezeichnet das Argument
den Namen des zu erstellenden PDX ohne Dateiendung
-in <input directory>
Pfad und Name des Verzeichnisses mit den zu konvertierenden
ODX-Dateien;
alternativ: Pfad und Name eines Source-PDX mit den zu
konvertierenden ODX-Dateien
-out <output directory>
Pfad und Name des Verzeichnisses, in das die entstehenden
Laufzeitdatenbanken abgelegt werden sollen;
ist die Option –create_pdx gesetzt, bezeichnet das Argument
den Pfad des zu erstellenden PDX
[-create_pdx]
Ist diese Option gesetzt, benennt das Argument zu –out den
Pfad und das Argument zu –project den Namen des zu
erstellenden PDX ohne Dateiendung, die entsprechend dem
Converter-Modus ergänzt wird.
[-out_reduced]
Ist diese Option gesetzt, wird ein entsprechend der
Konfiguration reduziertes Laufzeitdatenprojekt erstellt.
Das Argument zu –out bezeichnet das Zielverzeichnis. Ist die
Option –create_pdx gesetzt, wird ein reduziertes
Laufzeitdaten-PDX erstellt.
[-filetrace <loglevel>]
Loglevel für Dateiausgabe; Voreinstellung 0
[-consoletrace <loglevel>]
Loglevel für Konsolenausgabe; Voreinstellung 5
[-ignoreerror <ignore error>]
V13.0.0 / 10.05.2019 4. Bedienung 7
[-dontziptxtdb]
Die gegebenenfalls im Verlauf der Konvertierung erstellten
Textdatenbankdateien werden nicht komprimiert.
Sollten wegen des gewählten Transformationsmodus keine
Textdatenbankdateien erzeugt werden, wird die Option
ignoriert.
[-licenses]
Anzeige der Lizenztexte lizensierter Fremdsoftware
• full
Transformation des kompletten Projekts
• ecu_full <selection>
Transformation aller Daten des Quellprojekts, die für die Basisvariante <selection>
relevant sind
• ecu_basic <selection>
Transformation der Basisdaten des Quellprojekts, die für die Basisvariante <selection>
relevant sind
• ecu_basic_vit <selection>
Zusätzliche Transformation der VIT zur Basisvariante <selection>
• ecu_variant <selection>
Transformation aller Daten des Quellprojekts, die für die Variante <selection> relevant
sind; das Quellprojekt muss in sich geschlossen sein, die Ausgabe umfasst nur die Daten
der Variante und damit einen geringeren Umfang als die im Prozess konvertierten Daten
• protocol <selection>
Transformation der zum Protokoll <selection> gehörenden Daten des Quellprojekts
• functional_group <selection>
Transformation der zur Funktionalen Gruppe <selection> gehörenden Daten des
Quellprojekts
• cps
Transformation aller ComparamSpecs und ComparamSubsets des Quellprojekts
• vit
Transformation aller VITs des Quellprojekts
• vit <selection>
Transformation der VIT <selection> des Quellprojekts
• ecu_config
Transformation aller ECU-Config-Daten des Quellprojekts
• ecu_config <selection>
V13.0.0 / 10.05.2019 4. Bedienung 9
• flash
Transformation aller Flash-Daten des Quellprojekts
• function_dictionary
Transformation aller Function-Dictionary-Daten des Quellprojekts
MULTIPLE-ECU-JOB-SPEC
FUNCTION-DICTIONARY
PROGRAMMING-DATA
FUNCTIONAL-GROUP
COMPARAM-SUBSET
VEHICLE-INFO-SPEC
ECU-SHARED-DATA
COMPARAM-SPEC
other CATEGORY
BASE-VARIANT
ECU-VARIANT
ECU-CONFIG
PROTOCOL
ODX-JOB
FLASH
LIB
full a a a a a a a a a a a a a a a a
ecu_full s s s s a - - a a s - a a a a a
ecu_basic s s s s a - - - a - - a a - - -
ecu_basic_vit s s s s a - - - a s - a a - - -
ecu_variant s - - - - - - - a - - a a a a a
protocol - - - s a - - - a - - a a a a a
functional_group - - s s a - - - a - - a a a a a
cps - - - - - a a - a - - a a - - -
vit - - - - - - - - a s/a - a a - - -
ecu_config - - - - - - - s/a - - - - a a - -
flash - - - - - - - - a - - - a a - -
function_dictionary - - - - - - - - - - - a a - - -
frf-flash - - - - - - - - a - - - a a - -
Legende
- keine
a alle
s spezifisch
Grundsätzlich gilt, dass, wenn das Eingabeverzeichnis über eine index.xml verfügt oder die
Eingabe aus einem Source-PDX besteht, das eine index.xml enthält, nur Dateien für die
Erstellung des Laufzeitprojekts herangezogen werden, die in der index.xml referenziert sind.
Enthält das Eingabeverzeichnis keine index.xml, werden alle ODX-Dateien transformiert und
die resultierenden Laufzeitdatenbanken, gemäß Transformationsmodus gefiltert, zusammen
mit den in den ODX-Daten referenzierten Job-, CompuCode- und Flash-Dateien, gemäß
10 4. Bedienung V13.0.0 / 10.05.2019
Sollte ein Verzeichnis bereits existieren, werden zuvor alle enthaltenen Dateien gelöscht.
Datenbanken anderer Projekte sind davon nicht betroffen.
Weiter kann die Arbeitsweise und das Ergebnis eines ODX-Converter-Laufs über eine
Konfigurationsdatei gesteuert werden.
Diese Datei converter.ini befindet sich nach der Installation im selben Verzeichnis wie das
ausführbare Programm.
[BASICS]
# data modularization
#
# Base variants and their variants can be stored either in separate databases or
# in one common database. In case of large numbers of variants, the latter behaviour
# should be preferred to prevent the runtime system from running into problems
# due to too many file handles.
#
# 0: a base variant and the corresponding variants are stored in a common database
# 1: for each base variant and variant, an own database is created
STORE_VARIANTS_IN_SEPARATE_FILES=0
# free configurable log file extension for the active logfile(e.g. "log" instead of "lg0")
LogfileExtension=log
[REDUCED_DATA]
LONGNAMES=0
DESCRIPTIONS=0
SDGS=0
AUDIENCES=0
OIDS=0
TEXTIDS=0
[TEXT_DATABASE]
USE_REFERENCE_DATABASE=0
ENLARGE_REFERENCE_DATABASE=0
[DATA_PROPERTIES]
# Some data properties determined by authoring rules could lead to a higher performance
# if known in advance.
#
# ESD_IMPORT_ALLOWED
# 0: It is not allowed to import ECU-SHARED-DATAs by IMPORT-REF.
# Those base libraries can only be included by PARENT-REF.
# 1: It is allowed to import ECU-SHARED-DATAs by IMPORT-REF. Default behaviour.
#
# EV_IMPORT_ALLOWED
# 0: ECU-VARIANTs of the same BASE-VARIANT must not import items from each other.
# 1: ECU-VARIANTs of the same BASE-VARIANT are allowed to import items from each other.
# Default behaviour.
#
#
# ENV_DATA_DESCS_IN_ESD_ALLOWED
# 0: ECU-SHARED-DATAs must not contain ENV-DATA-DESCs.
# 1: ECU-SHARED-DATAs are allowed to contain ENV-DATA-DESCs. Default behaviour.
#
# ENV_DATA_DESCS_IN_EV_ALLOWED
# 0: ECU-VARIANTs must not contain ENV-DATA-DESCs.
# 1: ECU-VARIANTs are allowed to contain ENV-DATA-DESCs. Default behaviour.
ESD_IMPORT_ALLOWED=1
EV_IMPORT_ALLOWED=1
ENV_DATA_DESCS_IN_ESD_ALLOWED=1
ENV_DATA_DESCS_IN_EV_ALLOWED=1
[CHECKER_RULES]
# The ODX-Converter performs different data consistency checks to provide runtime databases
# usable within an MCD-Kernel runtime session.
# In some scenarios (e.g. ECU development) an ODX data project might contain errors or might
# be incomplete but shall be transformed anyway, since the application does not use the faulty
# data.
#
# IMPORTANT:
# For those scenarios it is possible to ignore certain types of errors.
# For the creation of runtime projects used in an non-experimental environment
# the default settings MUST NOT BE CHANGED!
#
# ODXCONV_CHECK_UNRESOLVED_REF
# 0: unresolved references (e.g. odxlinks) are ignored as far as possible
# 1: in case of unresolved references the runtime data project is removed (default)
#
# ODXCONV_CHECK_INVALID_BITMASK
# 0: bitmasks with invalid length are accepted
# 1: in case of invalid bitmasks the runtime data project is removed (default)
#
# ODXCONV_CHECK_NOT_UNIQUE_TROUBLE_CODE
# 0: not unique trouble codes in context of one DTC-DOP are accepted
V13.0.0 / 10.05.2019 4. Bedienung 13
# 1: in case of not unique trouble codes the runtime data project is removed (default)
#
# ODXCONV_CHECK_JAVA_COMPILE_ERROR
# 0: no error if java code cannot be compiled
# 1: a java compilation error triggers removing the runtime data project (default)
#
# ODXCONV_CHECK_MISSING_EXTERNAL_DATA
# 0: no error in case of missing external flash-, config-, or java-data files
# 1: missing external flash-, config-, or java-data files trigger removing the runtime data
# project (default)
ODXCONV_CHECK_UNRESOLVED_REF=1
ODXCONV_CHECK_INVALID_BITMASK=1
ODXCONV_CHECK_NOT_UNIQUE_TROUBLE_CODE=1
ODXCONV_CHECK_JAVA_COMPILE_ERROR=1
ODXCONV_CHECK_MISSING_EXTERNAL_DATA=1
[MULTI_CORE]
# ODXCONV_USE_CORES=0
# number of cores to use
# 0: use all available cores
# n > 0: use <n> cores
ODXCONV_USE_CORES=0
• LONG-NAMEs
• DESCs
• SDGs
• AUDIENCEs
• OIDs
• TIs
Eine 0 bedeutet, dass die entsprechenden Daten nicht in dem Laufzeitdatenprojekt enthalten
sein sollen, bei einer 1 werden sie in das Projekt übernommen.
Man beachte, dass die jeweiligen Einstellungen keinen Einfluss auf Laufzeitdatenprojekt
haben, wenn die Konvertierung ohne –out_reduced angestoßen wird.
Die Verwendung eines reduzierten Laufzeitdatenprojekts bietet sich insbesondere für den
Produktionsbereich an, wo derartige Informationen in der Regel nicht benötigt werden.
4.2 Textdatenbank
Einen Großteil des Datenvolumens eines Projektes wird bestimmt durch Texte aller Art. Um
sowohl in den Laufzeitdatenprojekten als auch zur Laufzeit Redundanzen zu vermeiden,
14 4. Bedienung V13.0.0 / 10.05.2019
werden die Texte mit einem eindeutigen Schlüssel versehen, in einer Textdatenbank
abgespeichert und von den verwendenden Stellen über diesen Schlüssel referenziert.
Findet der MCD-Kernel zur Laufzeit im Projektverzeichnis eine Textdatenbank, wird diese
bedarfsgetrieben herangezogen. Die globale Referenztextdatenbank wird in diesem Fall
ignoriert. Ansonsten werden Schlüssel in der globalen Referenztextdatenbank gesucht.
Texte, die direkt in die Laufzeitdatenbanken geschrieben werden, benötigen keine
Textdatenbank.
Einstellungen:
• USE_REFERENCE_DATABASE=0, ENLARGE_REFERENCE_DATABASE=0
Der ODX-Converter erstellt eine projektspezifische Textdatenbank. Sie enthält alle ODX-
Texte, die zum aktuellen Projekt gehören. Andere Laufzeitdatenprojekte dürfen diese
Textdatenbank wegen der projektspezifischen Schlüsselvergabe nicht verwenden.
Möglicher Anwendungsfall:
Das Projekt wird stets isoliert und nicht in Kombination mit anderen Teilprojekten
verwendet.
• USE_REFERENCE_DATABASE=0, ENLARGE_REFERENCE_DATABASE=1
Diese Kombination ist eigentlich ungültig. Das Verhalten entspricht allerdings der obigen
Einstellung 0, 0.
• USE_REFERENCE_DATABASE=1, ENLARGE_REFERENCE_DATABASE=0
Möglicher Anwendungsfall:
V13.0.0 / 10.05.2019 4. Bedienung 15
• USE_REFERENCE_DATABASE=1, ENLARGE_REFERENCE_DATABASE=1
Möglicher Anwendungsfall:
4.3 Laufzeitdatenmodularisierung
Zu jeder Laufzeitdatenbank gehören jeweils zwei Dateien, die sich bezogen auf den Namen
nur in der Endung unterscheiden. „.db“-Dateien enthalten die serialisierten und
komprimierten Laufzeitdatenströme, „.key“-Dateien die Schlüsselinformationen, mit denen
bestimmte Elemente in den .db-Dateien gefunden werden können.
Der <Base Name> und der <Type> einer Laufzeitdatenbank bedingen einander, wie aus den
nachfolgenden Tabellen hervorgeht. Die folgenden Arten von Laufzeitdatenbanken werden
unterschieden:
ECU-SHARED-DATA
<Version Info> 0.0.0, interpretiert als major.minor.revision, falls gegeben und nicht
über ODX-Converter-Option überschrieben; sonst wie von außen
vorgegeben;
<Type> sd
PROTOCOL
<Version Info> 0.0.0, interpretiert als major.minor.revision, falls gegeben und nicht
über ODX-Converter-Option überschrieben; sonst wie von außen
vorgegeben;
<Type> pr
FUNCTIONAL-GROUP
<Version Info> 0.0.0, interpretiert als major.minor.revision, falls gegeben und nicht
über ODX-Converter-Option überschrieben; sonst wie von außen
vorgegeben;
<Type> fg
BASE-VARIANT
<Version Info> 0.0.0, interpretiert als major.minor.revision, falls gegeben und nicht
über ODX-Converter-Option überschrieben; sonst wie von außen
vorgegeben;
<Type> bv
ECU-VARIANT
<Version Info> 0.0.0, interpretiert als major.minor.revision, falls gegeben und nicht
über ODX-Converter-Option überschrieben; sonst wie von außen
vorgegeben;
<Type> ev
MULTIPLE-ECU-JOB
<Version Info> 0.0.0, interpretiert als major.minor.revision, falls gegeben und nicht
über ODX-Converter-Option überschrieben; sonst wie von außen
vorgegeben;
<Type> mj
FLASH
<Version Info> 0.0.0, interpretiert als major.minor.revision, falls gegeben und nicht
über ODX-Converter-Option überschrieben; sonst wie von außen
vorgegeben;
18 4. Bedienung V13.0.0 / 10.05.2019
<Type> fl
ECU-CONFIG
<Version Info> 0.0.0, interpretiert als major.minor.revision, falls gegeben und nicht
über ODX-Converter-Option überschrieben; sonst wie von außen
vorgegeben;
<Type> ec
FUNCTION-DICTIONARY
<Version Info> 0.0.0, interpretiert als major.minor.revision, falls gegeben und nicht
über ODX-Converter-Option überschrieben; sonst wie von außen
vorgegeben;
<Type> fd
VEHICLE-INFO-SPEC
<Version Info> 0.0.0, interpretiert als major.minor.revision, falls gegeben und nicht
über ODX-Converter-Option überschrieben; sonst wie von außen
vorgegeben;
<Type> vi
COMPARAM-SPEC
<Version Info> 0.0.0, interpretiert als major.minor.revision, falls gegeben und nicht
über ODX-Converter-Option überschrieben; sonst wie von außen
V13.0.0 / 10.05.2019 4. Bedienung 19
vorgegeben;
<Type> cp
COMPARAM-SUBSET
<Version Info> 0.0.0, interpretiert als major.minor.revision, falls gegeben und nicht
über ODX-Converter-Option überschrieben; sonst wie von außen
vorgegeben;
<Type> cs
Über die Option –ignorecodefiles kann gesteuert werden, ob die in den ODX-Daten
referenzierten Job-Jars und –Classes sowie die bei LIBRARY aufgeführten Bibliotheken mit
in das Laufzeitdatenprojekt kopiert werden – Wert 1 - oder nicht – Wert 0. Da der MCD-
Kernel die Dateien erst zum Zeitpunkt der erstmaligen Verwendung benötigt, beeinflusst die
Einstellung nicht das Verhalten zur Laufzeit. Sie hat jedoch Einfluss auf die Größe des zu
verteilenden Laufzeitdatenpakets, auf die Prozesssicherheit, da bei dem Wert 0 die
Verantwortung für die Existenz der Dateien in die Laufzeit transferiert wird, auf die
Flexibilität, da bei einem Wert 1 Daten, die häufig von dritter Stelle beigestellt werden, bereits
zur Konvertierungszeit vorliegen müssen.
Beispiel:
In einem ABLOCK der Kategorie "ODX-JOB" sei ein Jar mit einem relativen Pfad
angegeben: "common_flash_jobs/FlashJob.jar", weil das Eingabeprojekt entsprechend
strukturiert ist.
In den ODX-Daten wird das Job-Jar mit oder ohne Angabe eines Pfades / Package
referenziert. Der ODX-Converter erwartet bei der Transformation die Jar-Daten so, wie sie in
den ODX-Daten angegeben sind.
Der ODX-Converter ist neben der Konvertierung von ODX-Dateien auch für die Verarbeitung
der in diesen Dateien gegebenenfalls referenzierten Java-Jobs zuständig. Dabei wird bei
SYNTAX = JAVA Java-Quellcode kompiliert; das Resultat wird zusammen mit den anderen
referenzierten .class- oder .jar-Dateien in einem Verzeichnis Jobs unter <output
directory> abgelegt. Falls .java-Dateien referenziert werden, muss sich zur Laufzeit
des ODX-Converters ein Java-Compiler im Kommandopfad befinden.
Über die Option –classpath <classpath> müssen alle JARs und Klassen angegeben
werden, die zur Kompilation der Java-Datei erforderlich sind, insbesondere auch die zum
MCD-Kernel gehörenden JARs ASAMJavaInterfaces.jar und DAS_MCD3_Java.jar.
Der Wert zu diesem Konfigurationsparameter ist ein relativer Pfad, dessen Bezugspunkt das
Zielverzeichnis ist. Ist der Wert leer, wird kein Unterverzeichnis erstellt.
Ist die Ausgabe des Konvertierungslaufs ein Laufzeit-PDX, so wird eine projektspezifische
Konfigurationsdatei MCD3D_CURR_PROJECT.INI erstellt, in die der Wert des
Konfigurationsparameters ODXCONV_Upload_Files_Subdir eingetragen wird.
• 0 (fehlerfrei)
• -1 (Warnungen vorhanden)
• -2 (Fehler aufgetreten)
Die Rückgabe 0 bedeutet, dass die Konvertierung warnungs- und fehlerfrei durchgeführt
wurde. Bei –1 sind Warnungen aufgetreten, das Konvertieren ist trotzdem fortgesetzt und
beendet worden. In diesem Fall kann das Projekt erstellt und theoretisch verwendet werden,
wobei die aufgetretenen Warnungen, aufgeführt in der Log-Datei, analysiert und bewertet
werden sollten. Die Rückgabe –2 weist auf gravierende Fehler hin, die vom ODX-Converter
nicht ignoriert werden können. In diesem Fall bricht die Konvertierung ab und kann nicht
beendet werden.
22 4. Bedienung V13.0.0 / 10.05.2019
Man beachte, dass bei schwerwiegenden Fehlern, also solchen, die mit einem
Rückgabewert –2 quittiert werden, auch bei -ignoreerror 1 keine Laufzeitdatenbanken
erstellt werden, da der Konvertierungslauf nicht ordnungsgemäß beendet werden kann.
Für sehr spezielle Anwendungsfälle bietet der ODX-Converter die Möglichkeit, gewisse
ODX-Daten aus dem Flash-Kontext durch Werte aus einer externen Datei meta_data.xml zu
überschreiben.
Die Struktur der meta_data.xml Datei ist über das Schema metadata.xsd definiert (Version
1.0).
o SECURITY-METHOD
o FW-SIGNATURE
o FW-CHECKSUM
o VALIDITY-FOR
</DATABLOCK>
<DATABLOCK>
<SHORT-NAME>DATABLOCK_2</SHORT-NAME>
<SECURITY>
<SECURITY-METHOD TYPE="A_UINT32">11</SECURITY-METHOD>
<FW-SIGNATURE>new_SIGNATURE</FW-SIGNATURE>
<FW-CHECKSUM TYPE="A_UINT32">33</FW-CHECKSUM>
<VALIDITY-FOR>new_VALIDITY</VALIDITY-FOR>
</SECURITY>
</DATABLOCK>
</DATABLOCKS>
</SESSION-DESC>
<SESSION-DESC>
<SHORT-NAME>SESSION_DESC_A2</SHORT-NAME>
<PARTNUMBER>new_A2</PARTNUMBER>
</SESSION-DESC>
</SESSION-DESCS>
</ECU-MEM-CONNECTOR>
<ECU-MEM-CONNECTOR>
<SHORT-NAME>EMC_B</SHORT-NAME>
<SESSION-DESCS>
<SESSION-DESC>
<SHORT-NAME>SESSION_DESC_B1</SHORT-NAME>
<DATABLOCKS>
<DATABLOCK>
<SHORT-NAME>DATABLOCK_1</SHORT-NAME>
<SECURITY>
<FW-CHECKSUM>77</FW-CHECKSUM>
<VALIDITY-FOR TYPE="A_BYTEFIELD">88</VALIDITY-FOR>
</SECURITY>
</DATABLOCK>
</DATABLOCKS>
</SESSION-DESC>
</SESSION-DESCS>
</ECU-MEM-CONNECTOR>
</ECU-MEM-CONNECTORS>
</META-DATA>
Bei der Verarbeitung von ODX-Projekten nimmt der ODX-Converter syntaktische und
semantische Überprüfungen vor, um inkonsistente Laufzeitdaten zu vermeiden, die bei der
Verwendung durch den MCD-Kernel zu Problemen führen können.
Der ODX-Converter unterscheidet zurzeit zwölf Fehlerkategorien, von denen sechs per
Konfiguration toleriert werden können. Die Konfiguration findet in der converter.ini in der
Sektion [CHECKER_RULES] statt (siehe oben).
Das Converter-Aufrufargument „-ignoreerror 1“ hat denselben Effekt wie das Abstellen aller
konfigurierbaren Fehlerprüfungen und wird vorrangig gegenüber den Werten in der
Konfigurationsdatei betrachtet.
Der ODX-Converter verarbeitet ODX 2.0.1-, ODX 2.1- und ODX 2.2-Daten und transformiert
diese in ein vom ODX-Standard unabhängiges Laufzeitdatenformat. Unter Berücksichtigung
gewisser Randbedingungen kann ein ODX-Datenprojekt ODX-Dateien unterschiedlicher
Standardversionen beinhalten. Auch können zur Laufzeit Teilprojekte zu einem
übergreifenden Laufzeitdatenprojekt kombiniert werden, die auf ODX-Daten
unterschiedlicher Standardversionen beruhen.
a) Wie bei homogenen Datenprojekten gilt, dass Referenzen auf andere Elemente auflösbar
sein müssen. Hat also auf ODX-Ebene beispielsweise eine BASE-VARIANT eine
PARENT-REF auf ein PROTOCOL, so ist es unerheblich, ob die BASE-VARIANT dem
ODX 2.0.1- oder ODX 2.2-Schema entspricht und ob dieses Schema auch dem
PROTOCOL zugrunde liegt. Maßgeblich ist, dass das Ziel von der Quelle aus erreichbar
ist.
b) Wenn eine COMPARAM-SPEC nach ODX 2.0.1 verwendet wird, sollte das PROTOCOL
ebenfalls nach ODX 2.0.1 definiert sein, da es andernfalls keine Möglichkeit gibt, den zur
Laufzeit erforderlichen PROTOCOL-TYPE zu bedaten. Hintergrund: In ODX 2.2 und
ODX 2.1 wird diese Information nicht mehr am PROTOCOL, sondern als PDU-
PROTOCOL-TYPE am PROT-STACK definiert, ein Element, das es in ODX 2.0.1 nicht
gibt.
c) Kombiniert man eine COMPARAM-SPEC nach ODX 2.1 oder ODX 2.2 und ein
PROTOCOL nach ODX 2.0.1 mit einer VEHICLE-INFO-SPEC nach ODX 2.1 oder ODX
2.2, müssen die LOGICAL-LINKs der VEHICLE-INFO-SPEC die PROT-STACK-SNREF
enthalten, da die andere Möglichkeit, diese erforderliche Referenz einzutragen, nur für
PROTOCOLs nach ODX 2.1 oder ODX 2.2 gegeben ist, nicht aber für PROTOCOLs
nach ODX 2.0.1.
d) Daraus ergibt sich, dass eine Kombination aus COMPARAM-SPEC nach ODX 2.1 oder
ODX 2.2 mit einem PROTOCOL nach ODX 2.0.1 und einer VEHICLE-INFO-SPEC nach
ODX 2.0.1 mangels Angabe einer PROT-STACK-SNREF nicht zulässig ist.
An diesen Beispielen wird deutlich, dass die Restriktionen eher theoretischer Natur sind. Der
typische Anwendungsfall für den gleichzeitigen Einsatz unterschiedlicher ODX-
Standardversionen wird sein, dass die Kernbedatung (COMPARAM-SPEC und der
überwiegende Teil von Steuergerätebedatungen) auf ODX 2.2 beruht und einzelne „alte“
Steuergerätebedatungen nach ODX 2.0.1 hinzugenommen werden. In diesem Szenario
muss lediglich in der VEHICLE-INFO-SPEC dafür Sorge getragen werden, dass die
Bedingung c) erfüllt wird.
V13.0.0 / 10.05.2019 6. Systemanforderungen 27
6 Systemanforderungen
6.1 Betriebssysteme
Der ODX-Converter ist als 32-Bit Applikation sowohl auf Windows XP als auch Windows 7
32 / 64 Bit lauffähig.
Der für den ODX-Converter-Prozess verfügbare Hauptspeicher ist in Abhängigkeit von der
Systemausstattung beschränkt. Wenn der Hauptspeicherbedarf diese Grenze während eines
Transformationslaufs überschreitet, ist eine weitere ordnungsgemäße Datenkonvertierung
nicht mehr möglich, und der Transformatorlauf bricht mit einer entsprechenden
Fehlermeldung ab.
Bei einer 32-Bit Applikation auf einem Windows-System liegt die kritische Grenze in der
Regel bei ca. 2 GB Hauptspeicherbedarf für den Konvertierungsprozess.
Der Speicherbedarf eines Transformationslaufs ergibt sich aus dem Inhalt und der Struktur
der zu konvertierenden Daten und kann daher nicht vorhergesagt werden. Da die in den
ODX-Daten enthaltenen Informationen für die Verwendung zur Laufzeit optimal aufbereitet
werden müssen, benötigt der Transformationslauf zeitweise deutlich mehr MB
Hauptspeicher, als die Größe der jeweils verarbeiteten ODX-Daten beträgt. Das frühzeitige
Entladen nicht mehr benötigter Informationen sorgt jedoch für problemlose und schnelle
Verarbeitung aller zum jetzigen Zeitpunkt existierenden Fahrzeugprojekte.
28 6. Systemanforderungen V13.0.0 / 10.05.2019
Prinzipiell sind stets solche ODX-Daten als kritisch zu erachten, bei denen die Bedatung
eines einzelnen Layers, z.B. einer einzelnen Basisvariante, bereits mehrere hundert MB groß
ist, da der ODX-Converter steuergeräteweise arbeitet und bestimmte Teile der aufbereiteten
Daten einer Basisvariante zusammen mit denen der zugehörigen Varianten und den
referenzierten Protokollen, Funktionalen Gruppen und Shared-Datas im Speicher hält.
Entsprechend kann man in einen kritischen Speicherbedarf gelangen, wenn zu einer
Basisvariante mehrere hundert (> 750) Varianten mit vielen echt neuen Daten existieren.
Speicherintensive Daten sind in der Regel die mit großem Textanteil, also zum Beispiel
Special Data Groups.
Eine Restriktion mit Rückschluss auf die ODX-Daten ergibt sich durch die MCD-3D API, die
auch im Flashkontext nicht beliebige Datengrößen unterstützt. Als Start- und Endadresse
eines Flashsegments ist der Datentyp A_UINT32 vorgesehen. Es muss also sicher gestellt
werden, dass die zu einem einzelnen Flashsegment gehörenden Daten diesen Umfang (~ 4
GB) nicht überschreiten. Dies gilt auch für externe Flashdaten.
Eine für das Laufzeitsystem relevante Randbedingung ist an die Anzahl der ODX-Kategorien
und DIAG-LAYER im Projekt geknüpft. In Abhängigkeit von der Konfiguration des ODX-
Converters wird je Kategorie bzw. Layer eine Laufzeitdatenbank bestehend aus zwei Dateien
erstellt. Zur Laufzeit werden diese Dateien bedarfsweise nach und nach geöffnet und nach
der Projektinitialisierung offen gehalten, um die Ausführungsgeschwindigkeit auch in
„multithreaded“ Applikationen hoch zu halten. Sollten die ODX-Kategorien und DIAG-LAYER
SDGs enthalten, so werden hierfür wegen gesonderter Verwaltung zwei weitere
Laufzeitdatenbankdateien angelegt.
Zu beachten ist, dass Dateihandles eine limitierte Systemressource darstellen; auf Windows-
Systemen beträgt die maximale Anzahl 2048 pro Prozess.
Sollte ein Projekt mehr als 1024 ODX-Kategorien und Layer umfassen, kann das Problem
dadurch drastisch entschärft werden, dass eine Basisvariante zusammen mit allen ihren
Varianten per Konfiguration in eine einzige Laufzeitdatenbank (= zwei Dateien) geschrieben
werden kann. Wenn zu einer Basisvariante also 100 Varianten gehören, werden nur zwei
statt 202 Dateihandles benötigt – zuzüglich etwaiger SDG-Dateihandles.
Besteht das Projekt jedoch aus mehreren hundert Basisvarianten, Protokollen, Funktionalen
Gruppen, Basisbibliotheken zuzüglich ECU-Config und Flash pro Steuergerät, kann die
kritische Grenze von 1024 Laufzeitdatenbanken auch bei zusammengefassen BV- und EV-
Datenbanken erreicht werden.
Für den Einsatz des ODX-Converters auf ressourcenlimitierten Systemen ist zu beachten,
dass bei der Konvertierung sehr großer Projekte auch sehr große Einzeldateien entstehen
können, z.B. Textdatenbanken (AstringData.* / UstringData.*) mit Dateigrößen über 256 MB.
V13.0.0 / 10.05.2019 7. Installation 29
7 Installation
SetupVWMCD_Converter_32_V<version>.exe
SetupVWMCD_Converter_64_V<version>.exe
SetupVWMCD_32_V<version>.exe
beziehungsweise
SetupVWMCD_64_V<version>.exe
aktiviert werden.
Zur Integration in übergeordnete Setups ist für das Einzelsetup auch ein sogenannter
„silent“-Modus wählbar:
/dir <Installationspfad>
Fehlt der Parameter, wird das zuletzt gewählte Installationsverzeichnis bzw. bei
Erstinstallation das Verzeichnis C:/%ProgramFiles%/Volkswagen/VW-MCD angenommen.
/confdir <Konfigurationspfad>
Fehlt der Parameter, wird das zuletzt gewählte Konfigurationsverzeichnis bzw. bei
Erstinstallation das Verzeichnis C:/ %ProgramFiles%//Volkswagen/VW-MCD (WinXP) oder
C:/users/public/Volkswagen/VW-MCD/config angenommen.
/overwrite
Standardmäßig werden bei der Installation Startmenüeinträge erstellt. Durch Angabe von
/NOICONS
30 8. Hinweis auf Fremdkomponenten V13.0.0 / 10.05.2019
/nosetenv
• boost*.dll; V 1.57
• expat_vc120.dll; V 2.0.1
• libxml2_vc120.dll; V 2.9.1
• zlib1.dll; V 1.2.6
• pbl; V 1.03
• loki; 2003_04_13
• ZipArchive; V 4.1.2
• LtXmlLib15_vc120_xp.dll; V 15.1.0.7451