Handlungsanweisung

Transcrição

Handlungsanweisung
www.bmwcoders.com
Fahrzeugprogrammierung
Handlungsanweisung
Handlungsanweisung
SG-Programmierung mit E-Sys
Projekt :
Autoren:
Version:
Gültig ab:
Datum:
Fahrzeugprogrammierung
Wolfgang Schühle, ESG
Tobias Thiemann, ESG
6.1
E-Sys 3.12
18.11.2009
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
Inhaltsverzeichnis
1 Einleitung
4
1.1 Änderungsdokumentation
4
1.2 Vertraulichkeit
4
1.3 Zweck des Dokuments
5
1.4 Referenzen
5
1.5 Abkürzungen
5
1.6 Abbildungsverzeichnis
7
2 Grundlagen
9
2.1 Programmierablauf
9
2.2 Konfiguration
9
2.2.1 Programm
9
2.2.2 Systemdaten / Fingerprint
10
2.2.3 FSC
11
2.2.4 Optionen
12
2.2.5 Verbindungen
13
2.2.6 Externe Applikationen
14
2.2.7 EST
15
2.2.8 ODX
15
3 Erstellung eines PDX-Komponentencontainers
17
3.1 Laden des PDX-Templates
17
3.2 Hinzufügen der SG-Software
17
3.3 Einfügen von BLUP-/FLUP-Dateien und BLUMap
18
3.4 Einfügen von Benutzerdokumenten
20
3.5 ActivationCode für EraseMemory
21
3.6 Festlegung der Programmierreihenfolge
21
3.7 Abspeichern des Komponentencontainers
22
3.8 ODX-Checker
23
3.9 Import des Komponentencontainers ins PSdZ
24
3.10 Containerupdate
24
4 Erstellung der TAL
26
4.1 Manuelle Erstellung der TAL im TAL-Editor
26
4.2 Automatische TAL-Berechnung
28
4.3 Erzeugung einer TAL im PDX-Charger
28
4.4 Erstellen einer TAL mit BLUP/FLUP
29
4.4.1 Automatische Berechnung im Modul „TAL-Berechnung“
Seite 2 von 44
29
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
4.4.2 Automatisch Berechnung im PDX-Charger
29
4.4.3 Manuelle Erzeugung der TAL
29
5 Verbindungsaufbau
32
5.1 Auswahl des TargetSelectors
32
5.1.1 Verbindung über Gateway
32
5.1.2 Direkte Verbindung
33
5.2 Auswahl des physikalischen Interface
5.2.1 Verbindung über Ethernet
33
33
Verbindung über Gateway-URL
34
Verbindung über Fahrgestellnummer (VIN)
34
5.2.2 Verbindung über CANCard
34
5.2.3 Verbindung über OMITEC
35
5.2.4 Verbindung über Funk
36
5.3 Test der Verbindung
36
6 TAL-Abarbeitung
38
7 Besonderheiten bei Übernahmesteuergeräten
40
7.1 Mapping
40
7.2 AIFContents
41
8 Individualdatenrettung
42
8.1 IDRlight
42
8.1.1 IDBackup
42
Automatische Berechnung der TAL
42
Manuelle Erstellung der TAL
42
Auslesen und Speichern der Individualdaten
43
8.1.2 IDRestore
43
Automatische TAL-Berechnung
43
Manuelle Erstellung der TAL
43
Zurückschreiben der Individualdaten
44
Seite 3 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
1 Einleitung
1.1 Änderungsdokumentation
Version
Datum
Beschreibung
Autor
0.1
07.12.06
Erstanlage des Dokuments
Wolfgang Schühle, ESG
1.0
11.01.07
Dokument komplett überarbeitet
Tobias Thiemann, ESG, ES-71
1.1
02.02.07
Beschreibung des Komponentennamens in 3.4 ergänzt
Tobias Thiemann, ESG, ES-71
1.2
04.05.07
Kapitel 7 „Übernahme-ECUs“ eingefügt
Tobias Thiemann, ESG, ES-71
2.0
22.05.07
2.1
19.07.07
Wechsel auf E-Sys 3.0
Kapitel 2, 5 und 6 überarbeitet
Umstrukturierung von Kapitel 4
Neuanlage der Abschnitte 4.2 und 4.3
Tobias Thiemann, ESG, ES-71
Tobias Thiemann, ESG, ES-71
Wechsel auf E-Sys 3.1
3.0
11.09.07
Neuanlage des Abschnitts 3.4
Tobias Thiemann, ESG, ES-71
Abschnitte 4.3 und 5.2.1 geändert
3.1
13.12.07
4.0
20.12.07
5.0
25.03.08
5.1
23.04.08
Kleinere Anpassungen an E-Sys 3.3.1
Wechsel auf E-Sys 3.3
Abschnitt 3.4 komplett überarbeitet
Wechsel auf E-Sys 3.4
Abschnitt 2.2 ergänzt und überarbeitet
Tobias Thiemann, ESG, ES-71
Tobias Thiemann, ESG, ES-71
Tobias Thiemann, ESG, FZ-620
Wechsel auf E-Sys 3.5
Abschnitt 3.6 neu angelegt
Tobias Thiemann, ESG, FZ-620
Abschnitt 4.3 überarbeitet
5.2
12.06.08
Wechsel auf E-Sys 3.6
Tobias Thiemann, ESG, FZ-620
Wechsel auf E-Sys 3.7
5.3
07.08.08
Abschnitt 3.3 neu angelegt
Tobias Thiemann, ESG, FZ-620
Abschnitt 4.4 neu angelegt
5.4
05.09.08
5.5
04.11.08
5.6
10.12.08
6.0
05.06.09
Abschnitt 3.4 neu angelegt
Tobias Thiemann, ESG, FZ-620
Lizenzhinweis in Abschnitt 3.8 eingefügt
Layout der Hinweiskästen geändert
Kapitel 8 neu angelegt
Tobias Thiemann, ESG, FZ-620
Tobias Thiemann, ESG, FZ-242
Wechsel auf E-Sys 3.10
Abschnitt 2.2 aktualisiert
Tobias Thiemann, ESG, FZ-242
Kapitel 5 wegen Entfall des B2V komplett überarbeitet
Wechsel auf E-Sys 3.12
6.1
18.11.09
Einige Screenshots angepasst
Tobias Thiemann, ESG
Kapitel 5.2.2 überarbeitet
1.2 Vertraulichkeit
Das vorliegende Dokument ist nur zur Einsicht für direkt am Projekt beteiligte Personen bestimmt. Eine
Weitergabe, insbesondere bei Vertragspartnern außerhalb der BMW Group, ist mit dem jeweiligen
Seite 4 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
Projektverantwortlichen abzustimmen und richtet sich nach den Bestimmungen zur Geheimhaltung im
Entwicklungsvertrag.
1.3 Zweck des Dokuments
Dieses Dokument beschreibt den Prozess der SG-Programmierung mit E-Sys. Es wird vorausgesetzt, dass
bereits gültige Softwareeinheiten (SWEn) mit einer aktuellen Version des SWE-Generators erzeugt wurden.
Der Umgang mit dem SWE-Generator wird in [SWEGEN] beschrieben.
1.4 Referenzen
Referenz
Version
Datum
Beschreibung
Autor
[SWEGEN]
1.0
28.11.2006
Handlungsanweisung SWE-Generator
Patrick Wagner, ESG
Auf GIS unter „BMW Standard Tools Entwicklung/
Standard Tools/ Datei-Generatoren und Vorlagen/
SWE-Generator (L6)/ Applikation“
[LH_FP_SWL]
9
18.04.2008
LH „FP Teil 2 Softwarelogistik“, 10000967 - 000 – 09
Dr. Olaf Kluge, BMW
Verfügbar in SAP
[FA_GEN]
4
02.07.2009
FA-Generator
Auf GIS unter „BMW Standard Tools Entwicklung/
Standard Tools/ Datei-Generatoren und Vorlagen/
FA-Generator (L6)/ Applikation“
1.5 Abkürzungen
Abkürzung
Bedeutung
CAF
Coding Application File
E-Sys
Neues Programmiersystem für das E-Ressort
FA
Fahrzeug-Auftrag
FP
Fahrzeugprofil
FSC
Freischaltcode
GIS
Global Information Service
GUI
Grafical User Interface
KIFA
Fachbereiche: Karosserie, Interieur, Fahrwerk, Antriebsstrang
KIS
Kompatibilitäts- und Informations-System
LAN
Local Area Network
ODX
Open Diagnostic Data Exchange
Seite 5 von 44
Markus Wolf, BMW
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
Abkürzung
Bedeutung
PDX
Packed ODX
PSdZ
ProgrammierSystem der Zukunft
SG
Steuergerät
SG-ID
Steuergeräte-Identifier
SGBM
Steuergerätebeschreibungsmodell
SGBM-ID
Steuergerätebeschreibungsmodell-Identifier
SWLdZ
Software-Logistik der Zukunft
SREC
Datenformat Motorola SREC
SVK
Steuergeräte-Verbau-Kennung
SVT (Ist)
System-Verbau-Tabelle des Programmier-Istzustands
SVT (Soll)
System-Verbau-Tabelle des Programmier-Sollzustands
SWE
Softwareeinheit
TAL
Transaktionsliste
VCM
Vehicle Configuration Management
VIN
Vehicle Identification Number (Fahrgestellnummer)
Seite 6 von 44
18.11.2009
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
1.6 Abbildungsverzeichnis
Abbildung 1: Maske für Programmeinstellungen..............................................................................................10
Abbildung 2: Einstellungen für Codierung und Fingerprint...............................................................................11
Abbildung 3: Einstellungen für Freischaltcodes ...............................................................................................12
Abbildung 4: Sonstige Optionen .......................................................................................................................13
Abbildung 5: Verbindungseinstellungen ...........................................................................................................14
Abbildung 6: Einstellungen für externe Applikationen ......................................................................................14
Abbildung 7: Einstellungen für Entwicklersofttoken .........................................................................................15
Abbildung 8: Einstellungen für ODX .................................................................................................................16
Abbildung 9: PDX-Charger mit geöffnetem PDX-Template .............................................................................17
Abbildung 10: Hinzufügen eines BLUPs zum Komponentencontainer ............................................................18
Abbildung 11: Hinzufügen einer BLUMap-Datei zum PDX-Container .............................................................19
Abbildung 12: Anzeige der BLUMap im PDX-Charger .....................................................................................19
Abbildung 13: Hinzufügen von Anwenderdokumentation zum PDX-Container ...............................................20
Abbildung 14: Anwenderdokumentation im PDX-Container ............................................................................20
Abbildung 15: Anlage eines ECUVariantPattern unterhalb der SG-Variante...................................................21
Abbildung 16: SWESEQ-Editor mit geöffneter SWESEQ-Datei ......................................................................22
Abbildung 17: Meldungen nach ODX-Check....................................................................................................23
Abbildung 18: Auszug aus dem Datei-Explorer nach Import der ODX-Daten .................................................24
Abbildung 19: Update des PDX-Containers .....................................................................................................25
Abbildung 20: Hinzufügen einer neuen Transaktion ........................................................................................26
Abbildung 21: TAL-Editor-Maske mit geöffneter TAL .......................................................................................27
Abbildung 22: Berechnung der TAL aus SVT-Ist und SVT-Soll .......................................................................28
Abbildung 23: TAL/SVT-Erzeugung aus einer SG-Variante ............................................................................29
Abbildung 24: Hinzufügen einer BlFlash-Transaktion ......................................................................................30
Abbildung 25: Löschen des vorgegebenen BLFlashTA-Eintrags.....................................................................30
Abbildung 26: Hinzufügen einer BLFlashTA auf Basis einer Datei ..................................................................31
Abbildung 27: TAL-Line mit BLUP-Transaktion................................................................................................31
Abbildung 28: Button zum Öffnen des Verbindungsdialogs .............................................................................32
Abbildung 29: Verbindungsdialog von E-Sys ...................................................................................................32
Abbildung 30: Mögliche Targetselektoren für eine Verbindung über ZGW ......................................................33
Abbildung 31: Mögliche Targetselektoren für eine direkte ECU-Verbindung...................................................33
Abbildung 32: Aufbau einer Verbindung über Gateway-URL...........................................................................34
Abbildung 33: Aufbau einer Verbindung über Fahrgestellnummer (VIN) .........................................................34
Abbildung 34: Beispielzuordnung von „ProDiaS-CAN-Driver CAN 1/2“ ...........................................................35
Abbildung 35: Aufbau einer direkten CAN-Verbindung über FA-CAN .............................................................35
Abbildung 36: Einstellungen für Verbindung über OMITEC-Interface .............................................................36
Abbildung 37: Einstellungen für Verbindung über Funk-Interface ...................................................................36
Abbildung 38: SVK lesen ..................................................................................................................................37
Seite 7 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
Abbildung 39: TAL-Abarbeitung .......................................................................................................................38
Abbildung 40: TAL-Matrix zur gezielten Auswahl von Transaktionen ..............................................................39
Abbildung 41: Container mit Mapping-Dateien für AMP_TOP und MULF_Basis ............................................40
Abbildung 42: TAL für MULF_Basis mit AifContents .......................................................................................41
Abbildung 43: Einstellungen für IDRestore bei der TAL-Berechnung ..............................................................43
Abbildung 44: Manuell erstellte TAL für IDRestore ..........................................................................................44
Seite 8 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
2 Grundlagen
2.1 Programmierablauf
Zur Programmierung eines Steuergerätes mit E-Sys sind folgende Einzelschritte erforderlich:
Erstellung eines PDX-Komponentencontainers
Laden des PDX-Templates
Anlegen von SG-Varianten und Hinzufügen der SG-Software (Bootloader, Programm, Daten,
Codierdaten) in Form von SWEn
Hinzufügen von Konfigurationsdateien (Mapping, SWE-Reihenfolge, …)
Abspeichern des Komponentencontainers
2) Import des Komponentencontainers ins PSdZ.
3) Erstellung einer Transaktionsliste (TAL), in der die vom Programmiersystem durchzuführenden
Aktionen vom Anwender spezifiziert werden
4) Aufbau einer Verbindung zum Steuergerät
5) Abarbeitung der TAL (Programmierung der Daten auf das Steuergerät)
Die Durchführung der genannten Schritte ist Gegenstand dieses Dokuments.
2.2 Konfiguration
Sämtliche Programm- und Benutzereinstellungen können im Menü „Optionen Einstellungen“ geändert
werden. Systemspezifische Informationen werden in der Datei
ESYS_INSTALL\config\Esys.properties
abgelegt, benutzerspezifische Einstellungen werden unter
C:\Dokumente und Einstellungen\<user>\Esys\EsysUser.properties
gespeichert. Die wichtigsten Einstellungen werden im Folgenden noch einmal genauer erläutert.
2.2.1 Programm
Allgemeine Einstellungen befinden sich auf der Karteikarte „Programm“ (vgl. Abbildung 1), folgende
Einstellungen können vorgenommen werden:
„Verzeichnisse“: Hier kann der Pfad für das Datenverzeichnis festgelegt werden, indem die E-SysDatenstruktur angelegt wird. Dieses Verzeichnis wird im Folgenden als ESYS_DATA bezeichnet. In
das Verzeichnis ESYS_DATA/psdzdata wird später der PDX-Container importiert.
„Speicherbedarf“: Legt den maximalen Arbeitsspeicher für E-Sys (bzw. die Java Virtual Machine)
fest. Der Wert darf den physikalischen Arbeitsspeicher nicht übersteigen!
„Sprache“: Schaltet die E-Sys-Oberfläche zwischen Deutsch und Englisch um.
„Logging“: Legt die Einstellungen für das Logging von E-Sys fest. Die Logdateien werden
automatisch beim Start von E-Sys im Verzeichnis ESYS_DATA/Logs nach dem Muster
E-Sys_yyyymmdd_hhmmss.log erzeugt. Alte Logdateien können durch Auswahl der Checkbox
jeweils beim Start von E-Sys gelöscht werden.
Seite 9 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
Abbildung 1: Maske für Programmeinstellungen
2.2.2 Systemdaten / Fingerprint
Auf der Karteikarte „Systemdaten“ (vgl. Abbildung 2) können die Einstellungen für Codierung und Fingerprint
konfiguriert werden. Der Fingerprint enthält das Programmierdatum sowie Informationen zum
Programmiersystem, die bei der Programmierung in das Steuergerät geschrieben und dort gespeichert
werden. Er setzt sich folgendermaßen zusammen:
Byte 1-3: Aktuelles Systemdatum.
Byte 4, Bit 7..4: Länge des Fingerprints, immer 0x8 (langer Fingerprint).
Byte 4, Bit 3..0: „Testereinsatzkennung“ gemäß Einstellung in Systemdaten.
Byte 5-6: „PlantID/DealerID/SystemSupplierNr“, je nach verwendeter Testereinsatzkennung.
Byte 7: „Programmiergerätetyp“, immer 0x01.
Byte 8-11: „Programmiergeräte-Seriennummer“ gemäß Einstellung in Systemdaten.
Byte 12-13: Km-Stand, immer 0x00 00.
Bewegt man den Cursor über eines der Eingabefelder erscheint ein Tooltip mit den für das Feld zulässigen
Werten.
Die Option „ignoreErrors“ erhöht die Fehlertoleranz des Systems bei der Programmiervorbereitung, es wird
trotz negativer oder ausbleibender SG-Antworten mit der Programmierung fortgefahren, sofern dies möglich
ist.
Achtung: Ist „ignoreErrors“ aktiviert, können unter Umständen auch fehlerhafte Steuergeräte
erfolgreich programmiert werden.
Seite 10 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
Abbildung 2: Einstellungen für Codierung und Fingerprint
2.2.3 FSC
In der Karteikarte „FSC“ (vgl. Abbildung 3) können Einstellungen für den Umgang mit Freischaltcodes
festgelegt werden. Ist „Verifizieren“ aktiviert, werden die verwendeten Freischaltcodes beim Laden und
Speichern auf Gültigkeit überprüft.
Für einige FSC-Aktionen ist außerdem ein Zertifikat nötig, das im Kasten „FSC-Aktionen“ spezifiziert werden
kann. „Periodische Prüfung“ sorgt dafür, dass bei einigen FSC-Aktionen zusätzliche Statusabfragen im FSCSteuergerät durchgeführt werden.
Seite 11 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
Abbildung 3: Einstellungen für Freischaltcodes
2.2.4 Optionen
Auf der Karteikarte „Optionen“ (vgl. Abbildung 4) können folgende Einstellungen vorgenommen werden:
„Meldung nach Abbruch …“: Legt fest, ob nach dem Abbruch einer Aktion eine Meldung
angezeigt wird.
„Abfrage beim Verlassen …“: Legt fest, ob beim Verlassen eines Moduls mit einer noch nicht
gespeicherten Datei eine Sicherheitsabfrage durchgeführt werden soll.
„VCM nach TAL-Abarbeitung aktualisieren“: Legt fest, ob das VCM (Vehicle Configuration
Module) nach der TAL-Abarbeitung automatisch aktualisiert werden soll. Dabei werden nach der
Programmierung FA, FP, I-Stufe und SVT in das VCM-Modul sowie FA und I-Stufe in das VCMBackup geschrieben. Ist kein Steuergerät mit VCM- bzw. VCM-Backup-Modul verbaut, kommt es
beim VCM-Update zu einem Timeout-Fehler.
„Vor der TAL-Generierung …“: Legt fest, ob bei der TAL-Generierung im PDX-Charger der Dialog
mit den Funktionseinschränkungen angezeigt werden soll.
„SWEn-Verfügbarkeitsprüfung …“: Legt fest, ob die Verfügbarkeit aller in der TAL verwendeten
SWEn vor der TAL-Abarbeitung geprüft werden soll. Steht eine der SWEn in der TAL nicht zur
Verfügung, wird die TAL-Abarbeitung mit einer entsprechenden Fehlermeldung abgebrochen.
„MSM nach TAL-Abarbeitung aktualisieren“: Legt fest, ob das MSM (Master Security Module)
nach der TAL-Abarbeitung automatisch aktualisiert werden soll. Dabei werden nach der TALAbarbeitung Transportschlüssel für alle CSM-Steuergeräte (Client Security Modules) an das MSM
(im ZGW) übertragen und deren Weiterverteilung im Bordnetz angestoßen. Welche Steuergeräte für
das Update zu berücksichtigen sind, wird zuvor aus der SVT im VCM ermittelt.
„Meldung nach dem Aufbau einer Verbindung anzeigen“: Legt fest, ob ein erfolgreicher
Verbindungsaufbau durch einen Infodialog bestätigt wird oder nicht.
Seite 12 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
Abbildung 4: Sonstige Optionen
Mit den Radiobuttons im Kasten „E-Sys Modus“ kann E-Sys zwischen dem PKW- und dem Motorrad-Modus
umgeschaltet werden. Der Funktionsumfang ist dann speziell auf den gewählten Modus zugeschnitten.
2.2.5 Verbindungen
In der Karteikarte „Verbindungen“ (vgl. Abbildung 5) kann ein zusätzliches Transmission-Timeout spezifiziert
werden, das auf das normale Service-Timeout addiert wird und somit die Übertragungszeit eines
Diagnoseservice zwischen Tester und Steuergerät berücksichtigt. Der maximale Wert für diesen Timeout
beträgt 1000ms.
Außerdem können spezielle Einstellungen für die Verbindungen über Funk und ICOM spezifiziert werden.
Seite 13 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
Abbildung 5: Verbindungseinstellungen
2.2.6 Externe Applikationen
In der Karteikarte „Externe Applikationen“ (vgl. Abbildung 6) können ein externer Editor, ein Browser sowie
der Pfad des SWE-Generator eingestellt werden, um geeignete Dateiformate aus E-Sys heraus in den
spezifizierten Anwendungen öffnen zu können.
Abbildung 6: Einstellungen für externe Applikationen
Seite 14 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
2.2.7 EST
In der Karteikarte „EST“ (vgl. Abbildung 7) wird der Ablageort des EntwicklerSoftToken(EST) angegeben,
welches für die Codierung einer Funktionsdatenliste (FDL) benötigt wird.
Abbildung 7: Einstellungen für Entwicklersofttoken
2.2.8 ODX
In der Karteikarte „ODX“ (vgl. Abbildung 8) kann unter „ODX-Regel-Pfad“ der Ablageort der ODX-CheckerRegeln angegeben werden, die der ODX-Checker im Modul PDX-Charger nutzt, um die ODX-Struktur eines
PDX-Containers/-Templates zu überprüfen. Ab E-Sys 3.4.0 wird hier bei der Installation standardmäßig das
Verzeichnis C:\Data\Rules eingetragen, in das die Regeln bei der E-Sys-Installation kopiert werden.
Unter „Componenten-Dokumentation“ kann die maximale Größe der Zusatzdokumente festgelegt werden,
die in den PDX-Container eingefügt werden können (siehe Kapitel 3.4).
Seite 15 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
Abbildung 8: Einstellungen für ODX
Seite 16 von 44
18.11.2009
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
3 Erstellung eines PDX-Komponentencontainers
Im folgenden Kapitel wird die Erstellung eines PDX-Komponentencontainers auf Basis eines PDX-Templates
sowie dessen Import in das PSdZ beschrieben.
3.1 Laden des PDX-Templates
Um einen Komponentencontainer erstellen zu können, muss zunächst das aktuelle PDX-Template im Modul
Datenhandling → PDX-Charger geladen werden. Das jeweils aktuellen Templates für die verschiedenen
Baureihen finden Sie auf dem GIS unter
BMW Standard Tools Entwicklung
Standard Tools/ Programmierung/ E-Sys/ PDX-Templates
3.2 Hinzufügen der SG-Software
In der Ordnerstruktur des PDX-Templates können Sie nun über das Kontextmenü per Klick mit der rechten
Maustaste auf das Element PDX-Container neue SG-Varianten anlegen. Jede neue SG-Variante muss
zunächst einer Basisvariante zugeordnet werden. Dies geschieht durch Auswahl der gewünschten
Basisvariante aus der DropDown-Box des gleichnamigen Elements. Für jede SG-Variante kann ein
beliebiger Name vergeben werden, der allerdings nicht identisch mit dem Namen einer Basisvariante sein
darf.
Abbildung 9: PDX-Charger mit geöffnetem PDX-Template
Schließlich können unterhalb der Basisvariante die jeweiligen Softwareeinheiten durch Rechtsklick auf das
Element SWE und Auswahl von Hinzufügen ergänzt werden. Die entsprechenden SWE-Dateien werden
Seite 17 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
dann über einen Dateidialog ausgewählt. Die SWEn werden im BSW-Format in das Template eingepflegt.
Sie werden beim Import automatisch extrahiert und verarbeitet.
Die für die Codierung notwendigen Coding Application Files (CAFs) werden nicht bei der SG-Variante,
sondern unterhalb des Elementes CAF in das Template eingehängt. Sie sind somit keiner SG-Variante
zugeordnet. Dasselbe gilt für die SVT-Dateien, die den Soll-Stand der Komponente beschreiben. Sie können
beim Element SVT hinzugefügt werden. Alle übrigen Konfigurationsdateien, beispielsweise die
Mapping-Dateien für die Übernahmesteuergeräte oder die SWESEQ-Datei (siehe 3.6) zur Steuerung der
Programmierreihenfolge, werden unterhalb des Elements Config eingefügt.
3.3 Einfügen von BLUP-/FLUP-Dateien und BLUMap
Bootloader-Updater der Prozessklassen BLUP/FLUP werden analog zu den herkömmlichen BootloaderSWEn der Prozessklasse BTLD zusammen mit den anderen Softwareeinheiten unterhalb von SWE in die
ECU-Variante eingefügt (vgl. Markierung in Abbildung 10). Die Auswahl der Dateien wird wie gewohnt in
einem Dateidialog vorgenommen.
Abbildung 10: Hinzufügen eines BLUPs zum Komponentencontainer
Enthält eine ECU-Variante (in unserem Beispiel EVAL__S12X) mindestens eine SWE der Prozessklasse
BLUP oder FLUP, kann über das Kontextmenü der Basisvariante die zugehörige BLUMap-Datei hinzugefügt
werden (vgl. Abbildung 11).
Die Auswahl der BLUMap-Datei erfolgt wiederum über einen Dateidialog. Nach der Auswahl kann der Name
für die BLUMap-Datei geändert werden. Die Namenskonvention für die BLUMap-Dateien lautet
blumap_<Basisvarianten-Name>_<EE-Komponenten-Name>.xml.
Wurde die BLUMap-Datei zum Container hinzugefügt, erscheint die Datei in der Baumstruktur des PDXChargers unterhalb von Config/blumaps, nicht unterhalb der ECU-Variante (vgl. Markierung in Abbildung
12). Dass für eine ECU-Variante eine BLUMap im Container hinterlegt wurde, erkennt man an dem Knoten
„Bootloader Map vorhanden: ja“ unterhalb der ECU-Variante (vgl. roter Kreis in Abbildung 12).
Seite 18 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
Abbildung 11: Hinzufügen einer BLUMap-Datei zum PDX-Container
Beim Import des PDX-Containers werden die BLUP/FLUP-SWEn im Verzeichnis psdzdata\swe\blup bzw.
psdzdata\swe\flup, die BLUMap im Verzeichnis psdzdata\mainseries\<BRV>\<Projekt>\mapping\blumaps
abgelegt.
Abbildung 12: Anzeige der BLUMap im PDX-Charger
Seite 19 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
3.4 Einfügen von Benutzerdokumenten
Durch das Hinzufügen von Benutzerdokumenten hat der Entwickler die Möglichkeit, auch ODX-fremde
Inhalte über den Komponentencontainer zu verteilen (TAL, Anleitungen, etc.). Hinzugefügt werden die
Dokumente über das Kontextmenü des Knotens DOC (vgl. Abbildung 13).
Abbildung 13: Hinzufügen von Anwenderdokumentation zum PDX-Container
Die hinzugefügten Dateien werden im Container in einem ZIP-Archiv mit dem Namen
<Komponentenname>_Doku.zip abgespeichert und im PDX-Charger unterhalb von DOC aufgelistet (vgl.
Abbildung 14).
Abbildung 14: Anwenderdokumentation im PDX-Container
Die maximale Größe des ZIP-Archivs ist per Default auf 1MB beschränkt, kann aber unter Optionen →
Einstellungen → ODX angepasst werden.
Seite 20 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
3.5 ActivationCode für EraseMemory
Der ActivationCode ist ein zusätzlicher Parameter des Diagnoseservice EraseMemory, er dient zum Schutz
des Steuergerätes vor ungewolltem Löschen des Speichers. SC-Steuergeräte verwenden den
ActivationCode, weswegen er für jede neue SG-Variante standardmäßig aktiviert ist. Wird er von einem
Steuergerät nicht unterstützt, ist er in der entsprechenden SG-Variante abzuschalten. Hierzu ist die Angabe
der Bootloader-ID bzw. der Diagnoseadresse notwendig, um die jeweilige ECU-Variante bei der
Programmierung eindeutig zu identifizieren (Variantenidentifikation).
Abbildung 15: Anlage eines ECUVariantPattern unterhalb der SG-Variante
Zum diesem Zweck muss zunächst unterhalb der SG-Variante ein ECUVariantPattern angelegt werden, zu
dem dann entweder die Bootloader-ID oder die Diagnoseadresse angegeben werden muss. Die
(De-)Aktivierung für EraseMemory erfolgt dann über den Schalter Activation (vgl. Abbildung 15).
3.6 Festlegung der Programmierreihenfolge
Durch Einbinden einer Reihenfolgedatei in den PDX-Container ist es möglich, eine Programmierreihenfolge
für die SWEn eines Steuergerätes anzugeben. Diese Datei muss der Namenskonvention
sweseq_<Bootloader-ID>.xml.xxx_yyy_zzz gehorchen, wobei <Bootloader-ID> die achtstellige BootloaderSGBM-ID des Steuergeräts bezeichnet, beispielsweise sweseq_01020304.xml.001_002_003 für den
Bootloader des SC-Templates.
Abbildung 16 zeigt den SWESEQ-Editor, mit dessen Hilfe in E-Sys SWESEQ-Dateien erstellt werden
können. Es können jedoch lediglich Abhängigkeiten für die Programmierung vorgeben werden („A muss vor
B und C programmiert werden“), keine feste Programmierreihenfolge. Das Programmiersystem ermittelt
dann aus den vorgegebenen Abhängigkeiten eine mögliche Programmierreihenfolge und durchläuft diese.
Achtung: Enthält die SWESEQ-Datei zyklische Abhängigkeiten („A vor B“ und „B vor A“), kommt es
zu einem Abbruch bei der Programmierung.
Für jede Abhängigkeit ist innerhalb der SWESEQ-Datei ein neuer EcuDependencies-Abschnitt anzulegen.
Innerhalb eines solchen Abschnitts sind die folgenden Elemente zu befüllen:
BootloaderId: Die BootloaderId des Steuergeräts, für das die Abhängigkeit festgelegt werden soll
BaseVariant: Die Basisvariante des betroffenen Steuergeräts
PhysicalOffset: Die Diagnoseadresse des Steuergeräts (hexadezimal)
PreConditions: Eine Liste von SGBM-IDs der SWEn, die vor den SWEn aus Dependors
Seite 21 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
programmiert werden müssen
Dependors: Eine Liste von SGBM-IDs der SWEn, die nach den SWEn aus PreConditions
programmiert werden müssen
Im Beispiel aus Abbildung 16 muss also auf ein SG mit SC-Template (Bootloader-ID 01020304,
Diagnoseadresse 0x7E, Basisvariante EVALBOARD) die SWE 11121314 vor den SWEn 21222324,
31323334 und 41424344 programmiert werden. Die Reihenfolge unter den drei letztgenannten SWEn kann
vom Programmiersystem beliebig gewählt werden.
Abbildung 16: SWESEQ-Editor mit geöffneter SWESEQ-Datei
Achtung: Die sweseq-Datei kann auch herangezogen werden, um Abhängigkeiten zwischen MasterBootloader (BTLD) und Slave-Bootloader (FLSL) festzulegen. Ist keine Abhängigkeit in der sweseqDatei festgelegt, wird der Slave-Bootloader zuerst programmiert! Strukturelle Abhängigkeiten (z.B.
BTLD vor SWFL, SWFL vor CAFD) müssen nicht extra angegeben werden. Widersprechen die vom
Anwender spezifizierten Abhängigkeiten diesen Grundregeln, wird die Programmierung mit einer
entsprechenden Fehlermeldung abgebrochen.
3.7 Abspeichern des Komponentencontainers
Enthält der Container alle gewünschten SG-Varianten und Konfigurationsdateien, muss er zur späteren
Verwendung (z.B. Import in das PSdZ) abgespeichert werden. Sinnvoll ist hierbei die Verwendung der
„Speichern unter…“-Funktion, da ansonsten das verwendete PDX-Template überschrieben wird. Bei der
Benennung des E/E-Komponentencontainers ist die Namenskonvention BBBB_KKK.xxx_yyy_zzz.eee (vgl.
Tabelle 1) einzuhalten. Ein gültiger Containername wäre dementsprechend beispielsweise
F001_EVAL__1.001_002_003.pdx.
BBBB
Baureihenverbund
KKK
Komponentenname (variable Länge) gemäß
[LH_FP_SWL], FP_4758 (Bindestriche sind durch
zwei Unterstriche zu ersetzen).
Seite 22 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
Xxx
Hauptversion (dezimal)
Yyy
Unterversion (dezimal)
Zzz
Patchversion (dezimal)
Eee
Dateiendung, standardmäßig pdx
18.11.2009
Tabelle 1: Legende für Benennung des Komponentencontainers
3.8 ODX-Checker
Nach dem Abspeichern kann der Container mit Hilfe des ODX-Checkers (vgl. Abbildung 17, grüner Kasten)
auf formale Korrektheit geprüft werden. Die vom ODX-Checker benötigten Regeln werden bei der E-SysInstallation in das Verzeichnis C:\Data\Rules kopiert (vgl. 2.2.8). Der ODX-Checker erkennt Fehler in der
ODX-Struktur, wie beispielsweise Kleinschreibung in ECU-Variant-Patterns, und listet diese im unteren
Fensterbereich auf (vgl. Abbildung 17: Meldungen nach ODX-Check, roter Kasten).
Achtung: Das E-Sys-Installationspaket beinhaltet sowohl für BMW geschriebene ODX-Regeln, als
auch ODX-Regeln aus einem zugekauften Paket (ASAM). Wird E-Sys auf einem Rechner installiert,
der nicht der BMW Group gehört, dann muss der Benutzer entweder
1) eine Lizenz für die ASAM-Regeln kaufen (nähere Informationen erhalten Sie unter
http://www.asam.net) oder
2) die ASAM-Regeln löschen. Diese finden Sie im E-Sys-Datenverzeichnis:
C:\Data\Rules\asamrules.jar
Geschieht dies nicht, verstößt der Benutzer gegen das Lizenzrecht!
Abbildung 17: Meldungen nach ODX-Check
Seite 23 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
3.9 Import des Komponentencontainers ins PSdZ
Bevor die Inhalte des PDX-Containers für die Programmierung in E-Sys verwendet werden können, muss
dieser über den Button „Import into PsdZ“ in das PSdZ importiert werden. Beim Import des PDX-Containers
kann ein vom Containername abweichender Projektname angegeben werden, unter dem das Projekt unter
anderem beim Öffnen einer Verbindung angezeigt wird. Damit die im Container enthaltenen Bibliotheken
eingebunden werden können, muss E-Sys unter Umständen nach dem Import neu gestartet werden! Die
Applikation zeigt dann eine entsprechende Meldung an.
Beim Import werden die Daten aus dem Container aufbereitet und im Verzeichnis ESYS_DATA/psdzdata
lokal für die Verwendung in E-Sys bereitgestellt. Um unerwartete Effekte aufgrund inkonsistenter
Datenstände zu vermeiden, empfiehlt es sich bei Verwendung von Containern mit unterschiedlichen
Templateversionen, die Unterverzeichnisse von ESYS_DATA/psdzdata vor dem Import des PDX-Containers
zu löschen. Die Inhalte von ESYS_DATA/psdzdata können in E-Sys jederzeit im Datei-Explorer (vgl.
Abbildung 18) eingesehen und auch gelöscht werden.
Achtung: Da Dateien im Verzeichnis psdzdata/extLibs von der Java VM benutzt werden, lässt sich
dieses Verzeichnis nicht löschen, solange E-Sys geöffnet ist.
Abbildung 18: Auszug aus dem Datei-Explorer nach Import der ODX-Daten
3.10 Containerupdate
Es ist außerdem möglich, einen vorliegenden Komponentencontainer automatisch auf den Stand eines
neueren PDX-Templates zu bringen. Dazu muss der Komponentencontainer zunächst im PDX-Charger
geöffnet werden. Die Updatefunktionalität wird dann über den Button Update angestoßen (vgl. Abbildung
19). Über einen Dateidialog wird das neue PDX-Template ausgewählt und bestätigt. E-Sys ersetzt daraufhin
die Template-spezifischen Inhalte im Komponentencontainer durch die des gewählten Templates, die
komponentenspezifischen Inhalte bleiben unverändert. Der so generierte Container kann dann mittels Datei
→ Speichern unter… unter einem neuen Namen abgespeichert werden (vgl. 3.7).
Achtung: Ein Containerupdate ist nur dann möglich, wenn die Templateversion des vorliegenden
Containers und die Version des neuen Templates in der Hauptversion übereinstimmen.
Seite 24 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
Abbildung 19: Update des PDX-Containers
Seite 25 von 44
18.11.2009
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
4 Erstellung der TAL
Um ein Steuergerät in E-Sys programmieren zu können, muss vom Entwickler zunächst eine
Transaktionsliste (TAL) erstellt werden. Diese kann entweder manuell im TAL-Editor, durch automatische
TAL-Berechnung oder aus einer SG-Variante im PDX-Charger erzeugt werden.
4.1 Manuelle Erstellung der TAL im TAL-Editor
Im TAL-Editor im Modul „Editoren & Viewer“ kann über die Funktion Datei → Neu oder das entsprechende
Symbol in der Werkzeugleiste eine leere TAL erzeugt oder über Datei → Öffnen eine bereits bestehende
TAL editiert werden.
Bei Neuerstellung der TAL im TAL-Editor muss pro Steuergerät und Aktionsklasse eine eigene TAL-Line
mit einer eindeutigen ID verwendet werden. Darüber hinaus ist in jeder TAL-Line die Basisvariante (nicht
der Komponentenname) sowie die hexadezimale Diagnoseadresse des gewünschten Steuergerätes
einzutragen (vgl. Tabelle 2). Die übrigen Attribute (ExecutionStatus, FlashPreReqs, CodingPreReqs, …)
verbleiben im Defaultzustand.
TalLine
Eindeutige ID für die jeweilige TAL-Line (dezimal)
BaseVariant
Basisvariante des zu programmierenden Steuergerätes wie im PDX-Container
DiagAddress
Diagnoseadresse des zu programmierenden Steuergerätes (hexadezimal)
Tabelle 2: Basiselemente einer TAL-Line
Elementarer Bestandteil jeder TAL-Line sind natürlich die SWEn, die programmiert werden sollen. Diese
können durch einen Rechtsklick auf das Element TalLine_ID=0 und Auswahl von Neu (vgl. Abbildung 20)
hinzugefügt werden. Beim Hinzufügen einer Transaktion ist es wichtig, die richtige Aktionsklasse zu
verwenden, beispielsweise SWDeploy für die Programmierung von Applikation und Daten. Eine
Zusammenfassung gängiger Transaktionsklassen gibt Tabelle 3.
Abbildung 20: Hinzufügen einer neuen Transaktion
Seite 26 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
In Abbildung 21 ist beispielhaft eine TAL zur Programmierung der SWEn des SC-Templates dargestellt. Zu
diesem Zweck wurde eine TAL-Line für den Bootloader (ID=1) und eine für die Software erstellt (ID=2). Für
die Applikations-SWEn wurden in TAL-Line 2 vier Transaktionen vom Typ SWDeploy eingefügt. Die
Attribute unterhalb des Elements SgbmIdentifier (ProcessClass, ID, MainVersion, …) wurden dabei
übereinstimmend mit den Dateinamen der zu programmierenden SWEn befüllt.
Achtung: Stimmen die Versionen in der TAL nicht mit denjenigen im Dateinamen überein, führt dies
zu einem Abbruch bei der Programmierung!
Abbildung 21: TAL-Editor-Maske mit geöffneter TAL
Die TAL-Line für den Bootloader wurde analog mit einer BLFlash-Transaktion befüllt.
SWDeploy
Applikationssoftware und Daten (SWFL)
CDDeploy
Codierdaten (CAFD)
BLFlash
Bootloader/Slave-Bootloader (BTLD/FLSL)
Tabelle 3: Gängige Transaktionsklassen in der TAL
Seite 27 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
4.2 Automatische TAL-Berechnung
Im Modul „TAL-Berechnung“ kann eine TAL durch Angabe einer SVT-Ist und einer SVT-Soll berechnet
werden (Abbildung 22). Die SVT-Ist, die den momentanen Verbauzustand angibt, kann entweder aus dem
VCM oder direkt aus den Steuergeräten ausgelesen oder aus einer Datei geladen werden. Der angestrebte
Verbauzustand SVT-Soll wird, sofern vorhanden, aus dem KIS berechnet oder ebenfalls aus einer Datei
geladen. Bei der Berechnung eines Soll-Verbaustandes aus KIS muss zusätzlich ein FA geladen und
aktiviert sowie eine Ziel-I-Stufe angegeben werden.
Ist sowohl eine SVT-Ist als auch eine SVT-Soll geladen, wird die Differenz im linken Fenster farbig
dargestellt. Über den Button „Berechnen“ kann nun eine TAL generiert werden, die das Fahrzeug (den SGVerbund) vom Ist-Zustand in den Soll-Zustand überführt. Die berechnete TAL kann nun gespeichert, im TALEditor bearbeitet oder direkt abgearbeitet werden. Ist die Checkbox „ECUs aus SVTsoll“ aktiviert, werden nur
Steuergeräte bei der Berechnung berücksichtigt, die in der SVT-Soll enthalten sind. Steuergeräte, die nur in
der SVT-Ist auftauchen, werden verworfen.
Achtung: Die TAL-Berechnung funktioniert nur mit geöffneter Verbindung.
Abbildung 22: Berechnung der TAL aus SVT-Ist und SVT-Soll
4.3 Erzeugung einer TAL im PDX-Charger
Steht keine KIS-Wissensbasis zur Verfügung, kann es nützlich sein, eine TAL direkt aus den Daten des
PDX-Containers zu erzeugen. Die TAL-Erzeugung ist sowohl für den gesamten Container als auch für
einzelne ECU-Varianten möglich. Angestoßen wird die Erzeugung der TAL durch den Menüpunkt „Generiere
TAL“ im Kontextmenü der ECU-Variante (vgl. Abbildung 23) bzw. des Container-Wurzelelements. In die TAL
werden dann automatisch alle SWEn übernommen, die der ECU-Variante direkt zugeordnet sind. Je nach
Beschaffenheit des Containers kann es danach notwendig sein, in einem Wizard die Zuordnung von
Versionsnummern, Diagnoseadressen und CAF-Dateien zu der ECU-Variante manuell vorzunehmen, falls
diese Zuordnung aus den ODX-Daten nicht eindeutig möglich ist.
Auf analoge Art und Weise kann anstatt einer TAL auch eine SVT_soll im PDX-Charger berechnet werden
(„Generiere SVT“). Mit dieser SVT kann dann im Modul „TAL-Berechnung“ eine TAL auf Basis eines aktuell
ausgelesenen Ist-Standes berechnet werden (vgl. Kapitel 4.2). Vorteil: es werden nur die tatsächlich
notwendigen Transaktionen in der TAL erzeugt.
Achtung: Zur Erzeugung einer TAL/SVT im PDX-Charger muss eine Verbindung geöffnet werden (vgl.
Kapitel 5), es muss jedoch kein reales Steuergerät vorhanden sein. Die Verbindungsart kann in
diesem Fall beliebig gewählt werden.
Seite 28 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
Abbildung 23: TAL/SVT-Erzeugung aus einer SG-Variante
4.4 Erstellen einer TAL mit BLUP/FLUP
4.4.1 Automatische Berechnung im Modul „TAL-Berechnung“
Die automatische TAL-Berechnung funktioniert auch mit BLUP/FLUP-SWEn wie in Kapitel 4.2 beschrieben.
Die SVT_ist bzw. SVT_soll enthält jeweils den Ist-/Soll-Bootloader der Prozessklasse BTLD/FLSL. Anhand
der Informationen aus der BLUMap werden daraus die benötigten BLUP/FLUP-SWE für die TAL berechnet.
Achtung: Für diese Methode ist eine Verbindung mit einem Projekt notwendig, das gültige BLUMaps
für die jeweiligen Steuergeräte enthält.
4.4.2 Automatisch Berechnung im PDX-Charger
Achtung: Die Berechnung einer TAL mit BLUP/FLUP-SWEn im PDX-Charger ist nicht möglich. Der für
die Berechnung notwendige Ist-Stand der Steuergeräte ist im PDX-Charger nicht verfügbar.
4.4.3 Manuelle Erzeugung der TAL
Um eine BLUP-Transaktion manuell in eine TAL einzufügen, gehen Sie folgendermaßen vor:
1. Erzeugen Sie eine TAL-Line für die BLUP-Transaktion und fügen Sie eine BLFlash-Transaktion
hinzu (vgl. Abbildung 24).
Seite 29 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
Abbildung 24: Hinzufügen einer BlFlash-Transaktion
2. Löschen Sie den standardmäßig erzeugten BLFlashTA-Eintrag
BLFlash_BTLD_00000000_001_000_000 (vgl. Abbildung 25).
Abbildung 25: Löschen des vorgegebenen BLFlashTA-Eintrags
3. Erzeugen Sie eine neue BLFlashTA aus einer Datei (vgl. Abbildung 26).
Seite 30 von 44
18.11.2009
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
Abbildung 26: Hinzufügen einer BLFlashTA auf Basis einer Datei
4. Wählen Sie im Dateidialog die gewünschte BLUP-Datei aus. Es wird eine BLFlash-Transaktion
erzeugt, die sowohl die SGBM-ID des BLUP (SgbmIdentifier) als auch die SGBM-ID des
gekapselten BTLD (ContainedBootloader) enthält (vgl. Abbildung 27).
Abbildung 27: TAL-Line mit BLUP-Transaktion
Seite 31 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
5 Verbindungsaufbau
Bevor mit der SG-Programmierung bzw. –Codierung begonnen werden kann, muss eine Verbindung zum
Fahrzeug aufgebaut werden. Grundvoraussetzung dafür ist ein erfolgreich importierter PDX-Container (vgl.
Abschnitt 3). Der Dialog zum Aufbau einer Verbindung wird in E-Sys über den Verbindungsbutton in der
Toolbar (vgl. Abbildung 28) geöffnet.
Abbildung 28: Button zum Öffnen des Verbindungsdialogs
Der E-Sys-Verbindungsdialog (vgl. Abbildung 29) gliedert sich in zwei Teile. In dem Textfeld in der oberen
Hälfte wird der „TargetSelector“ ausgewählt. Hier entscheidet sich, welcher der importierten PDX-Container
als Datenquelle für die Verbindung verwendet wird. Im unteren Teil des Dialogs wird spezifiziert, über
welches physikalische Interface die Verbindung aufgebaut werden soll. Welche Parameter für welche
Verbindung ausgewählt werden müssen, wird in den folgenden Abschnitten erklärt.
Abbildung 29: Verbindungsdialog von E-Sys
5.1 Auswahl des TargetSelectors
Jeder „TargetSelector“ setzt sich aus zwei Teilen zusammen, dem „Project“ und der „VehicleInfo“. Über das
„Project“ wird ausgewählt, welcher der importierten ODX-Container für die Verbindung verwendet wird. Über
die „VehicleInfo“ entscheidet sich, ob eine direkte Verbindung zum Steuergerät aufgebaut werden soll, oder
ob das Steuergerät über ein Gateway (ZGW) angeschlossen wird. Folglich werden für jeden importierten
Container im Verbindungsdialog je zwei Target-Selektoren angeboten, einer für die direkte Verbindung und
einer für die Verbindung über ZGW.
5.1.1 Verbindung über Gateway
Diese Verbindungsart ist zu wählen, wenn sich ein Gateway (ZGW) zwischen Tester und Steuergerät(en)
befindet. Alle Services werden von E-Sys an das ZGW geschickt, von wo aus sie auf Basis der
Seite 32 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
Routingtabelle im ZGW auf die Subbusse weitergeleitet werden.
Achtung: Soll eine Verbindung über ZGW aufgebaut werden, muss im Verbindungsdialog als Ziel
stets ein TargetSelector OHNE den Zusatz „_DIRECT“ verwendet werden (vgl. Abbildung 30).
Abbildung 30: Mögliche Targetselektoren für eine Verbindung über ZGW
5.1.2 Direkte Verbindung
Bei der direkten Verbindung wird der Testrechner, beispielsweise über eine CANCard, direkt mit dem zu
programmierenden SG verbunden, es wird kein ZGW verwendet.
Achtung: Soll eine direkte Verbindung aufgebaut werden, muss im Verbindungsdialog als Ziel stets
die VehicleInfo MIT dem Zusatz „_DIRECT“ verwendet werden (vgl. Abbildung 31).
Abbildung 31: Mögliche Targetselektoren für eine direkte ECU-Verbindung
5.2 Auswahl des physikalischen Interface
Über die Auswahlknöpfe im unteren Teil des Verbindungsdialogs entscheidet der Benutzer, welches
physikalische Interface für die Verbindung zum Steuergerät/ZGW verwendet werden soll.
5.2.1 Verbindung über Ethernet
Eine Verbindung über Ethernet kann entweder durch Angabe der Gateway-URL oder durch Auswahl eines
Fahrzeugs über die Fahrgestellnummer (VIN) aufgebaut werden. Damit eine Verbindung zum Fahrzeug
Seite 33 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
hergestellt werden kann, müssen sich der Testrechner und das Fahrzeug (ZGW) im gleichen IP-Subnetz
befinden. Befindet sich kein DHCP-Server in diesem Subnetz, verwendet das ZGW standardmäßig eine IPAdresse der Form 169.254.x.y. Das bedeutet, der Testrechner muss ebenfalls eine Adresse der Form
169.254.u.v erhalten, damit eine Netzwerkverbindung aufgebaut werden kann. Als Subnetzmaske ist in
diesem Fall 255.255.0.0 einzustellen. Windows XP unterstützt diese Adressklasse als „Alternative
Konfiguration“ in den TCP/IP-Eigenschaften einer Netzwerkverbindung.
Verbindung über Gateway-URL
Ist die IP-Adresse des Gateways bekannt, kann die Verbindung direkt unter Angabe der URL geöffnet
werden (vgl. Abbildung 32). Hierbei darf die Angabe des Protokolls (tcp://) und des Ports (6801) nicht
vergessen werden, eine gültige Gateway-URL lautet also beispielsweise tcp://169.254.47.11:6801.
Abbildung 32: Aufbau einer Verbindung über Gateway-URL
Verbindung über Fahrgestellnummer (VIN)
Beim Öffnen des Verbindungsdialogs werden per Broadcast automatisch die erreichbaren Fahrzeuge
ermittelt und im Verbindungsdialog von E-Sys unter „Verbindung über Fahrgestellnummer (VIN)“ angezeigt
(vgl. Abbildung 33). Ist kein Fahrzeug verfügbar, ist diese Verbindungsart deaktiviert. Nach Auswahl des
gewünschten Fahrzeugs kann daraufhin die Verbindung hergestellt werden.
Abbildung 33: Aufbau einer Verbindung über Fahrgestellnummer (VIN)
5.2.2 Verbindung über CANCard
Die von E-Sys unterstützte CAN-Hardware sowie die unterstützten Treiberversionen entnehmen Sie bitte
jeweils den Release-Notes der jeweiligen Version. Aktuelle Treiber für die CAN-Karten erhalten Sie auf der
Vector-Homepage (http://www.vector-informatik.de).
Achtung: Vor der Programmierung muss über „Systemsteuerung → Vector Hardware Config“ der
Anbindungstreiber „ProDiaS-CAN-Driver CAN 1“ dem zum Programmieren genutzten CAN-Kanal und
„ProDiaS-CAN-Driver CAN 2“ einem anderen gültigen Kanal zugeordnet werden (vgl. Abbildung 34)!
Seite 34 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
Abbildung 34: Beispielzuordnung von „ProDiaS-CAN-Driver CAN 1/2“
Im Verbindungsdialog von E-Sys ist die „Verbindung über Bus“ auszuwählen. In der linken DropDown-Box
ist der Bus anzugeben, über den die Verbindung aufgebaut werden soll. In der rechten DropDown-Box ist als
Interface „VECTOR_DIRECT“ einzustellen (vgl. Abbildung 35).
Abbildung 35: Aufbau einer direkten CAN-Verbindung über FA-CAN
5.2.3 Verbindung über OMITEC
Voraussetzung für die Benutzung des OMITEC-Interface ist die Installation der OMITEC-EDIBAS-Treiber.
Sie finden das Installationspaket mit Anleitung auf dem GIS unter:
BMW Standard Tools Entwicklung
Standard Tools/ Fahrzeug-Kommunikation/ EDIABAS/ HW-Interface/
EDIABAS Interface OMITEC
Im Verbindungsdialog ist dann die „Verbindung über Bus“ sowie der Busname und das Interface
„STD_OMITEC“ auszuwählen (vgl. Abbildung 36).
Seite 35 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
Abbildung 36: Einstellungen für Verbindung über OMITEC-Interface
5.2.4 Verbindung über Funk
Voraussetzung für die Benutzung des Funkinterface ist die Installation von EDIBAS. Sie können EDIBAS im
Rahmen des Standard Tools Setup vom GIS unter
BMW Standard Tools Entwicklung
Standard Tools/ Programmierung/ Tool Installation Entwicklung/ Für Windows XP/
WINKFP 5.1.6 - EDIABAS 7.0.0.500 - NFS 4.8.0.4 - INPA 5.0.2.0
herunterladen. Für eine Verbindung über Funk wählen Sie bitte „Verbindung über Bus“ unter Angabe des
Busnamens und des Interface „STD_FUNK“ (vgl. Abbildung 37).
Hinweis: Für eine Funk-Verbindung sind noch weitere Einstellungen in E-Sys notwendig (vgl. Abschnitt
2.2.5).
Abbildung 37: Einstellungen für Verbindung über Funk-Interface
5.3 Test der Verbindung
Um die Verbindung zu prüfen und zu kontrollieren, ob alle angeschlossenen Steuergeräte tatsächlich
reagieren, empfiehlt es sich nach dem Herstellen der Verbindung die aktuelle SVK aus den Steuergeräten
auszulesen. Diese Funktionalität befindet sich im Modul „Experten-Modus → Codierung“ (vgl. Abbildung 38).
Ist die Verbindung hergestellt, wird auf der linken Seite der Verbaustand sämtlicher angeschlossener
Steuergeräte angezeigt. Erscheint eine Fehlermeldung oder eine leere SVT, überprüfen Sie bitte nochmals
die Verbindungseinstellungen!
Seite 36 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
Abbildung 38: SVK lesen
Seite 37 von 44
18.11.2009
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
6 TAL-Abarbeitung
Der eigentliche Programmiervorgang erfolgt im Modul TAL-Abarbeitung (vgl. Abbildung 39), bei der die in
der TAL eingetragenen Transaktionen (vgl. Erstellung der TAL) ausgeführt werden. Voraussetzung für die
TAL-Abarbeitung sind somit eine geladene TAL sowie eine gültige Fahrgestellnummer (Vehicle Identification
Number, VIN). Die VIN kann entweder aus einem geladenen Fahrzeugauftrag (FA) ausgelesen oder direkt in
das dafür vorgesehene Feld eingetragen werden. Sowohl FA als auch VIN können, falls verfügbar, aus dem
VCM ausgelesen werden (Buttons Lesen (VCM) bzw. VIN lesen (VCM)). TAL und FA können über den
Button „Bearbeiten“ direkt in dem dafür vorgesehenen Editor geöffnet werden.
Achtung: Enthält die gewählte TAL Codiertransaktionen, ist eine VIN für die Abarbeitung nicht
ausreichend, es wird ein geeigneter FA (faVersion="3") benötigt. Fahrzeugaufträge können
komfortabel mit dem Tool [FA_GEN] erstellt werden.
Abbildung 39: TAL-Abarbeitung
Folgende Steuerelemente sind für die TAL-Abarbeitung relevant:
Start: Hier wird die TAL-Abarbeitung gestartet. Läuft gerade eine TAL-Abarbeitung, ändert sich die
Beschriftung in „Pause“ und die Abarbeitung kann unterbrochen werden.
Stop: Bricht die TAL-Abarbeitung ab, wird erst beim Start der Abarbeitung aktiviert.
Leeren: Löscht den Inhalt des Log-Fensters.
Events: Gibt an, ob während der TAL-Abarbeitung Events im Logfenster angezeigt werden sollen
oder nicht. Die gewählten Events werden während der Abarbeitung der TAL im Logfenster angezeigt
(Karteikarte „Log“).
Event Typ: Gibt an welche Typen von Ereignissen bei der TAL-Abarbeitung angezeigt werden.
Weiterhin ist es möglich, bestimmte Steuergeräte oder Transaktionsklassen von der Bearbeitung
auszuschließen. Zu diesem Zweck dient die Karteikarte „SG“ (vgl. Abbildung 40). Über eine Matrix kann
gezielt gesteuert werden, welche Transaktionen der geladenen TAL für welches Steuergerät ausgeführt
werden sollen. Somit kann eine beliebige Untermenge einer vorliegenden TAL ausgeführt werden.
Seite 38 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
Abbildung 40: TAL-Matrix zur gezielten Auswahl von Transaktionen
Seite 39 von 44
18.11.2009
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
7 Besonderheiten bei Übernahmesteuergeräten
7.1 Mapping
Um die Übernahmesteuergeräte im L6-Umfeld behandeln zu können, müssen die logistischen Informationen
im Übernahme-SG (ZB-Nummer, Hardwarenummer, Hardwarereferenz, …) auf die L6-SGBM-Identifier
abgebildet werden. Dies geschieht mit Hilfe von Mapping-Dateien, die im Eintrittskarten-Editor erzeugt und
im PDX-Charger unter Config in den Komponentencontainer eingebunden werden (vgl. Abbildung 41).
Abbildung 41: Container mit Mapping-Dateien für AMP_TOP und MULF_Basis
Im Folgenden wird kurz skizziert, welche Datei welche Mapping-Informationen enthält und wie das jeweilige
Mapping durchgeführt wird:
_BTLD: Mapping der Hardwarereferenz auf die SGBM-ID und die Version des Bootloaders (BTLD).
_CAFD: Mapping der ZB-Nummer auf die SGBM-ID der CAF-Datei (CAFD). Als Hauptversion wird
der BMW_vehicleManufacturerCodingIndex aus dem Service „Ident_Lesen“ herangezogen. Die
Unterversion und die Patchversion der Codierdaten werden über den Service „Aenderungsindex der
Codierdaten lesen“ ermittelt.
_HWEL: Mapping von Hardwarenummer (PECUHN) und Hardwarereferenz (ZZZPPP) auf SGBM-ID
und Version der Hardware-Elektronik (HWEL). Kann keine Hardwarenummer aus dem Steuergerät
gelesen werden, erfolgt das Mapping nur auf Basis der Hardwarereferenz.
_TYPNR: Mapping der ZB-Nummer auf die Typprüfnummer.
_ZB: Mapping von ZB-Nummer und Programmreferenz auf den Softwarestand des Steuergeräts
(SGBM-IDs und Versionen). Stimmen alle Angaben bis auf die Programmversion mit den MappingDateien überein, wird nur die SGBM-ID mit der Version 000.000.000 vom Mapping zurückgeliefert.
Seite 40 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
7.2 AIFContents
Bei der Programmierung eines Mischverbau-ECUs in E-Sys müssen in der TAL zusätzlich die Inhalte des
Anwender-Info-Felds (AifContents) befüllt werden (vgl. Abbildung 42).
Abbildung 42: TAL für MULF_Basis mit AifContents
Folgende Eintragungen sind dort vorzunehmen:
BmwAssemblyNumber: Die Zusammenbau-Nummer, die nach der Programmierung in das AIF/UIF
geschrieben wird
BmwCalibrationDataSetNumber: SW-Nummer aus der _TYPNR-Mappingdatei für Steuergeräte
mit "großem" AIF (51 oder 64 Byte), sonst "0000000"
BmwExhaustRegulationOrTypeApprovalNumber: Typprüfnummer aus der _TYPNRMappingdatei für abgasrelevante Teile, sonst "0000000"
PrgRef: Die Programmreferenz der zu programmierenden Software
Achtung: Die in der TAL eingetragenen AifContents werden am Ende eines erfolgreichen
Programmiervorgangs in das Steuergerät geschrieben. Sind diese Informationen inkorrekt, kann
anschließend für dieses Steuergerät kein Mapping mehr durchgeführt werden. Damit ist das
Steuergerät mit E-Sys nicht mehr programmierbar!
Seite 41 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
8 Individualdatenrettung
Die Individualdatenrettung (IDR) dient dazu, bei einem defekten, aber noch diagnosefähigen SG vor dem
SG-Tausch individuelle Daten des Fahrzeugs/Fahrers aus dem betroffenen Steuergerät auszulesen und
diese nach dem Tausch in das neue SG einzuspielen.
8.1 IDRlight
IDRlight ist eine Variante der IDR, die von EA eingesetzt wird.
8.1.1 IDBackup
Als IDBackup bezeichnet man das Auslesen und Speichern der Individualdaten. Um ein IDBackup
durchführen zu können, benötigt man zunächst eine passende TAL. Diese TAL kann entweder mit
geeigneter SVTist/SVTsoll automatisch berechnet oder manuell erstellt werden.
Automatische Berechnung der TAL
Um eine TAL für den IDBackup mit E-Sys automatisch berechnen zu können, benötigt man eine
SVTist/SVTsoll, die folgende Voraussetzungen erfüllen:
Bei dem Steuergerät, aus dem die Individualdaten gelesen werden sollen, muss sich in der
SVTist/SVTsoll mindestens ein Hardwareelement (HWEL) entweder in der SGBM-ID oder in der
Version unterscheiden.
Steht keine KIS-Datenbank zur Verfügung, um eine geeignete SVTsoll automatisch auszuleiten, empfiehlt es
sich, die SVTist im TAL-Editor geeignet anzupassen und als SVTsoll zu verwenden. Werden diese Dateien
im Modul „Komfort-Modus → TAL-Berechnung“ geladen, kann aus ihnen eine geeignete TAL berechnet
werden (siehe 4.2).
Achtung: Bei der TAL-Berechnung kann es zu Warnings kommen, wenn keine KIS-DB zur Verfügung
steht oder bestimmte Module nicht genutzt werden können. I.d.R. können diese Warnungen aber
vernachlässigt werden.
Die berechnete TAL kann anschließend abgespeichert und im Modul „Editoren & Viewer → TAL-Editor“ oder
in einem beliebigen XML-Editor geöffnet werden.
Manuelle Erstellung der TAL
Die TAL für das IDBackup kann auch manuell im TAL-Editor erstellt werden. Folgende Elemente müssen für
ein funktionierendes IDBackup in der TAL mindestens angelegt werden:
Eine HWInstall-Transaktion für das betroffene SG (beliebiger Inhalt)
Eine HWDeinstall-Transaktion für das betroffene SG (beliebiger Inhalt)
Eine IDBackup-Transaktion für das betroffene SG
Für jede der genannten Transaktionen muss eine eigene TAL-Line erstellt werden (vgl. 4.1). Innerhalb der
IDBackup-Transaktion muss ein IDBackupLight-Element eingefügt werden.
Achtung: Innerhalb einer IDBackup-Transaktion kann entweder ein IDBackup- oder ein
IDBackupLight-Element eingefügt werden. Das beim Erstellen einer neuen IDBackup-Transaktion
automatisch erzeugte IDBackupTA-Element muss daher zuerst gelöscht werden, bevor ein
IDBackupLight-Element angelegt werden kann.
Seite 42 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
Auslesen und Speichern der Individualdaten
Um die Individualdaten auszulesen, muss die erzeugte TAL nun im Modul „Experten-Modus → TALAbarbeitung“ ausgeführt werden (vgl. Kapitel 6). Wenn die Individualdatenrettung erfolgreich verläuft, endet
die TAL-Abarbeitung mit dem Status „FinishedForHWTransactions_BackupOK". Wird dieser Status erreicht,
kann über den Menüpunkt „Extras → Individualdatenrettung…“ ein Verzeichnis spezifiziert werden, in dem
die Individualdaten gespeichert werden sollen. Die Daten werden daraufhin in der XML-Datei IDBackup.bak
im angegebenen Verzeichnis abgelegt.
8.1.2 IDRestore
Auch das IDRestore, also das Zurückschreiben der gelesenen Daten in das Steuergerät, wird über eine TAL
gesteuert. Auch hier kann die TAL entweder automatisch berechnet oder manuell erstellt werden. Die
automatische Berechnung setzt voraus, dass Backupdaten in Form der Datei IDBackup.bak vorhanden sind.
Automatische TAL-Berechnung
Zur Berechnung der IDRestore-Transaktion im Modul „Komfort-Modus → TAL-Berechnung“ müssen sich
SVTist und SVTsoll nicht unterscheiden. Es empfiehlt sich, beide Felder mit der aktuellen SVTist zu belegen,
damit eine korrekte InstalledECUList erzeugt wird. Damit tatsächlich eine IDRestore-Transaktion berechnet
wird, muss zusätzlich der Haken in der Checkbox „Individualdatenrettung“ gesetzt und das Verzeichnis mit
der Datei IDBackup.bak im nebenstehenden Feld angegeben werden (vgl. Abbildung 43). Anschließend
kann die TAL-Berechnung angestoßen und die TAL abgespeichert werden, die dann genau die Daten
enthält, die in der Datei IDBackup.bak gespeichert waren.
Achtung: Bei der TAL-Berechnung kann es zu Warnings kommen, wenn keine KIS-DB zur Verfügung
steht oder bestimmte Module nicht genutzt werden können. I.d.R. können diese Warnungen aber
vernachlässigt werden.
Abbildung 43: Einstellungen für IDRestore bei der TAL-Berechnung
Manuelle Erstellung der TAL
Auch die TAL für das IDRestore kann manuell erzeugt werden. Dazu muss im TAL-Editor in einer TAL
lediglich eine TAL-Line mit einer IDRestore-Transaktion erstellt werden (Basisvariante und Diagnoseadresse
nicht vergessen). Innerhalb dieser IDRestore-Transaktion muss ein IDRestoreLight-Element eingefügt
werden, in dem dann beliebig viele DataRecords mit jeweils einem DataIdentifier und den zugehörigen
Daten (Values) angelegt werden können (vgl. Abbildung 44).
Achtung: Innerhalb einer IDRestore-Transaktion kann entweder ein IDRestore- oder ein
IDRestoreLight-Element eingefügt werden. Das beim Erstellen einer neuen IDRestore-Transaktion
automatisch erzeugte IDRestoreTA-Element muss daher zuerst gelöscht werden, bevor ein
IDRestoreLight-Element angelegt werden kann.
Seite 43 von 44
www.bmwcoders.com
Bedienungsanleitung: SG-Programmierung mit E-Sys
18.11.2009
Abbildung 44: Manuell erstellte TAL für IDRestore
Zurückschreiben der Individualdaten
Um die Individualdaten ins Steuergerät zurückzuschreiben, muss nun nur noch die berechnete oder manuell
erstellte TAL im Modul „TAL-Abarbeitung“ abgearbeitet werden. Ist das Zurückschreiben der Daten
erfolgreich, endet die TAL-Abarbeitung im Status „Finished“.
Seite 44 von 44

Documentos relacionados