Beruflich Dokumente
Kultur Dokumente
SGBD-Generator
Version: 1.25
Stand: 06.02.2012
Status: freigegeben
Autor: Stephan Keitel, Firma ESG
Ablage: Anleitung_STATUS_STEUERN_UDS_V1.25.doc
Umfang: 33
Historie
Version Stand Autoren Änderung
0.10 10.01.2006 T. Müller Ersterstellung
0.20 16.01.2006 T. Müller Ergänzungen/ Änderungen
0.21 13.02.2006 T. Müller Ergänzungen/ Änderungen
0.22 31.03.2006 T. Müller Überarbeitung: Tabellen
0.30 20.04.2006 T. Müller “BITFIELD“ für Bitauswertungen hinzu
0.40 29.05.2006 T. Müller Service $31 und $2F hinzu
0.41 01.06.2006 T. Müller Definierte Datentypen
0.52 12.08.2006 T. Müller Erweiterung Service $31
0.53 13.11.2006 T. Müller Überarbeitung
0.54 04.12.2006 T. Müller Tipps für EDIABAS Toolset hinzugefügt
0.56 23.03.2007 T. Müller Erweiterungen
0.57 03.05.2007 T. Müller Kapitel „Kombinieren von Services“ hinzu
1.00 10.06.2007 T. Müller Allgemeine Überarbeitung
1.10 05.09.2007 T. Müller STATUS_BLOCK_LESEN ergänzt
1.11 18.12.2007 A. Reuß Allgemeine Überarbeitung
1.12 19.05.2008 A. Reuß Überarbeiten Definition Resultnamen
1.13 25.07.2008 A. Reuß Allgemeine Überarbeitung, Fehlerkorrektur
Verwendung der UDS STATUS / STEUERN Jobs im SGBD-Generator Seite 2 von 33
Inhaltsverzeichnis
Abkürzungsverzeichnis ......................................................................................................................... 4
1 Einleitung ....................................................................................................................................... 5
Abkürzungsverzeichnis
ARG / Argument Argumente die an das Steuergerät geschickt werden
B2S BEST/2 Quelldatei bzw. Source
BEST Beschreibungssprache für Steuergeräte
BMW-fast BMW "fast access for service and testing"
DID Data-Identifier
DS2 Diagnose System 2
DTC Der Diagnostic Trouble Code ist eine im Automobilbau verwendete hexade-
zimale Kennziffer zur Identifikation von Fehlfunktionen, die während des Be-
triebs eines Automobils auftreten können.
EDIABAS Das Elektronik Diagnose-Basis-System ermöglicht den Zugriff auf
DiagnoseInformationen am Fahrzeug.
iMAN Informationsmanager
ISO14229 Kommunikationsprotokoll Standard ISO14229
KompCheck Kompatibilitätscheck
KWP2000 Keywordprotokoll 2000 Kommunikationsprotokoll
LH Lastenheft
RES / Result Ergebnisse die vom Steuergerät geliefert werden
SAP Systeme, Anwendungen, Produkte in der Datenverarbeitung
SG Steuergerät
SG_Funktionen Standardtabelle „SG_Funktionen“
SGBD Die Steuergerätebeschreibungsdatei enthält über unterschiedliche
Applikationen (z.B. Toolset) aufrufbare Jobs, die in der SGBD zu
Diagnosetelegrammen aufbereitet werden.
Die Steuergeräteantworten werden in lesbare Results aufbereitet
Toolset EDIABAS Toolset Applikation, die mithilfe einer SGBD und frei zu
setzenden Parametern die Diagnostic Services einer SGBD über EDIABAS
ausführt. Erhältlich über GIS-BMW Standard Tools Entwicklung.
UDS Unified Diagnostic Services Kommunikationsprotokoll
XML Extensible Markup Language
ZEDIS Zentrales Diagnosesystem
1 Einleitung
Im Rahmen des Feed-forward-Prozesses Diagnose wurden zur L6 erstmalig Diagnosejobs,
die sich aufgrund ihrer Funktion in allen zukünftigen Baureihen befinden, in Form von Diag-
noseaufträgen standardisiert vorgegeben.
Alle Diagnoseumfänge, die für die Produktion und den Service benötigt werden und durch
die Standardjobs beschrieben sind, werden mittels ZEDIS in der Datenbank definiert. Die-
se steuergerätespezifischen Umfänge werden für jedes Steuergerät zusammengestellt
und anschließend aus ZEDIS in einem XML-Austauschformat exportiert und schließlich in
den SGBD-Generator importiert. Nach dem Import der Daten in den SGBD-Generator sind
die Umfänge in der Tabelle “SG_Funktionen“ sichtbar und können von dem Anwender noch
ergänzt werden.
Die in der Tabelle definierten Umfänge werden von fünf speziellen Standardjobs genutzt.
Gelbe Felder sind für den User nicht editierbar.
Zusätzlich zu den Diagnoseaufträgen können in der Diagnosedatenbank noch Fehlerorte
und Fehlertexte (DTC’s) eingepflegt und zugeordnet werden. Diese Umfänge werden zu-
sätzlich zu den Diagnoseaufträgen beim Import der Daten in den SGBD-Generator in die
Standardtabelle “FOrtTexte“ importiert.
In diesem Dokument wird beschrieben, wie diese fünf Standardjobs aufgerufen und steu-
ergerätespezifische Anpassungen in der Tabelle SG_Funktionen durchgeführt werden.
2.1 Standardjobs
Es stehen folgende fünf Standardjobs zur Verfügung, die von der Tabelle SG_Funktionen
genutzt werden:
Die Beschreibung der Jobs und der Standardtabelle „SG_Funktionen“ befindet sich in den
folgenden Kapiteln. Die genaue Definition der einzelnen Diagnose-Services befindet sich in
der ISO 14229.
Die oben aufgeführten Jobs benutzen die Tabelle „SG_Funktionen“.
Spaltendefinition:
Hinweis: Die Spalte SG_ADR wird zurzeit von den Standardjobs nicht ausgewertet!
*) Es dürfen nur Datentypen benutzt werden, die auch vom Steuergerät unterstützt wer-
den. In der Regel können nur wenige Steuergeräte Float-Zahlen verarbeiten.
**) Beim Datentyp „string“ kann optional die Stringlänge angegeben werden. Falls keine
Stringlänge angegeben wurde, wird als Endezeichen „0x00“ erwartet.
Der Datentyp „data“ erfordert zwingend eine Längenangabe.
• Analoge Ergebnisse (EINHEIT alles außer = "0/1", "0-n", „DATA“ und „TEXT“)
enden mit _WERT und sind vom Datentyp char, int, long, float, double, string oder
data.
Die Results _EINH und _INFO werden automatisch erzeugt.
Sonderfälle:
o EINHEIT = "TEXT": Beim Datentyp string wird zusätzlich das Result _TEXT
erzeugt.
Im Result _TEXT wird das Ergebnis in Textform ausgegeben.
o EINHEIT = "DATA": Beim Datentyp data wird zusätzlich das Result _DATA
erzeugt.
Im Result _DATA wird das Ergebnis in hexadezimaler Darstellung ausgege-
ben (Bsp.: _DATA= 05 07 06 1A FF …).
Das Result _WERT ist in diesen beiden Fällen leer und wird mit “0“ befüllt
(_WERT=0).
• Digitale Ergebnisse (EINHEIT = "0/1") dürfen nicht mit _WERT enden und sind
vom Datentyp char, int oder long wobei nur "0" oder "1" erlaubt sind.
Das Result _INFO wird automatisch erzeugt.
• Diskrete Ergebnisse (EINHEIT = "0-n") dürfen nicht mit _WERT enden und sind
vom Datentyp char, int oder long. Dem Ergebnisnamen wird die umgerechnete De-
zimalzahl des Antworttelegramms zugeordnet.
Die Results _EINH, _TEXT und _INFO werden automatisch erzeugt.
• HEX Ergebnisse (EINHEIT = "HEX") enden mit _WERT und sind vom Datentyp
char, int oder long.
Die Results _EINH und _INFO werden automatisch erzeugt.
Für diese Semantik „Bitfield“ ist dann nur die Einheit „Bit“ erlaubt und die Datenty-
pen „unsigned char“, „unsigned int“ und „unsigned long“.
o Aktuell ist nur das gesamt Ergebnis von einem Job als Bitfield definierbar
Sonderfall (neu):
o Verschachtelung von Ergebnissen eines Diagnoseauftrags mit mehreren Semantiken
z.B. Analog, Bitfield und Diskret.
Ergebnistabelle:
RESULTNAME EINHEIT L/H DATENTYP MASKE NAME MUL DIV ADD INFO
Tabelle „TAB_RAD“:
WERT TEXT
Argument 1: “ARGUMENT_SPALTE“
• Hier wird der Name der Spalte eingetragen, aus der das 2. Argument benutzt wer-
den soll. Aus der Tabelle “SG_Funktionen“ können die Spalten “ARG“, “ID“ oder
“LABEL“ ausgewählt werden.
Argument 2: “STATUS“
• Hier wird der Wert, aus der im 1. Argument gewählten Spalte, eingetragen werden.
Z.B “DID“ = 0xD001
Der Saugdruck soll aus einem Motorsteuergerät ausgelesen werden. Dazu sind drei ver-
schiedene Jobaufrufe möglich.
a: Dem Job wird ein Argument aus der Spalte “ARG“ übergeben
apiJob("<SGBD-Name>","STATUS_LESEN","ARG;IPSAU","")
b: Dem Job wird ein Argument aus der Spalte “ID“ übergeben
apiJob("<SGBD-Name>"," STATUS_LESEN ","ID; 0xD002","")
c: Dem Job wird ein Argument aus der Spalte “LABEL“ übergeben
apiJob("<SGBD-Name>"," STATUS_LESEN ","LABEL; MAP_MES","")
Tabelle „SG_Funktionen“:
Der Job kann wie folgt aufgerufen werden. Wenn das Steuergerät richtig antwortet, dann
werden die Results automatisch erzeugt. (Siehe Beispiel )
3.1.1.2 Beispiel 2: Auslesen von mehreren Data-Identifier (DID) aus dem Steuergerät
Mit dem Job “STATUS_LESEN“ ist es auch möglich mehrere Data-Identifier und somit
mehrere Ergebnisse mit einem Jobaufruf aufzurufen. Die Anzahl der DID’s die durch einen
Jobaufruf abgefragt werden können, sind bei den Steuergeräten unterschiedlich. Die ma-
ximale Anzahl der DIDs die aufgerufen werden können, legt jeder Entwickler für sein Steu-
ergerät im Feld “Konstanten“ im SGBD-Generator fest.
Defaulteinstellung: unsigned char MAX_ARGUMENT_STATUS_LESEN = 5;
Tabelle „SG_Funktionen“:
32 (°C) x 0,75
========== + 1 = 25 (°C - Luft-Temperatur) => Ausgabe in EDIABAS 25.000000E+000
1
Der Service $22 erlaubt dem Tester mehrere Ergebnisse mit einem Data-Identifier abzu-
rufen. Das bedeutet, dass ein DID zum Steuergerät geschickt wird und das Steuergerät
mehrere Ergebnissätze zurückgeben kann.
Die einzelnen Results, die vom Steuergerät geliefert werden, müssen in einer Subtabelle
definiert sein. Der Name der Subtabelle wird in der Spalte “RES_TABELLE“ in der Tabelle
“SG_Funktionen“ eingetragen. Die Reihenfolge der Results darf nicht vertauscht werden.
STAT_ FL_LINKS_EIN =1
STAT_ FL_LINKS_EIN_INFO = Fernlicht links 1=EIN, 0=AUS
STAT_ FL_RECHTS_EIN =0
STAT_ FL_RECHTS_EIN_INFO = Fernlicht rechts 1=EIN, 0=AUS
STAT_ AL_LINKS_EIN =0
STAT_ AL_LINKS_EIN_INFO = Abblendlicht links 1=EIN, 0=AUS
STAT_ AL_RECHTS_EIN =1
STAT_ AL_RECHTS_EIN_INFO = Abblendlicht rechts 1=EIN, 0=AUS
Tabelle „SG_Funktionen“:
RES_TABELLE
DATENTYP NAME MUL DIV ADD SG_ADR SERVICE ARG_TABELLE
- - - - - - 22 - RES_0xD020
Tabelle „RES_0xD020“:
RESULTNAME EINHEIT L/H DATENTYP MASKE NAME MUL DIV ADD INFO
Fernlicht links:
STAT_FL_LINKS_EIN 0/1 - INT - - - - -
1=EIN; 0=AUS
Fernlicht rechts:
STAT_FL_RECHTS_EIN 0/1 - INT - - - - -
1=EIN; 0=AUS
Abblendlicht links:
STAT_AL_LINKS_EIN 0/1 - INT - - - - -
1=EIN; 0=AUS
Abblendlicht
STAT_AL_RECHTS_EIN 0/1 - INT - - - - - rechts:
1=EIN; 0=AUS
In diesem Beispiel wird für jedes Result der Datentyp “INT“ benutzt. Wenn viele Status von
einem Steuergerät abgerufen werden sollen, können die Anzahl der Datenbytes verringert
werden, wenn der Datentyp “BITFIELD“ benutzt wird (siehe 3.1.2.2 ).
3.1.2.2 Beispiel 2: Auslesen von Lichtstatus mit Hilfe des Datentyps “BITFIELD“
Durch die Verwendung des Datentyps “BITFIELD“ in der Spalte “DATENTYP“ in der Ta-
belle SG_Funktionen können mehrere Status in einem Byte (oder mehreren Bytes) ausge-
wertet werden. Die Maske zum Ausmaskieren wird in der Subtabelle in der Spalte “Maske“
angegeben. Bei diskreten (0-n) und digitalen (0/1) Ergebnissen sind 1, 2 oder 4 Byte er-
laubt. Ist ein Diagnoseauftrag als Bitfield deklariert, werden alle darin enthaltenen Argu-
mente/Results als Bitfield behandelt. Darüber hinaus dürfen keine weiteren Argumen-
te/Results angelegt werden.
Tabelle „SG_Funktionen“:
NAME
DATENTYP MUL DIV ADD SG_ADR SERVICE ARG_TABELLE RES_TABELLE
BITFIELD RES_0xD020 - - - - 22 - -
Tabelle „RES_0xD020“:
RESULTNAME EINHEIT L/H DATENTYP MASKE NAME MUL DIV ADD INFO
Fernlicht links:
STAT_FL_LINKS_EIN 0/1 - INT 0x0001 - - - -
1=EIN; 0=AUS
Fernlicht rechts:
STAT_FL_RECHTS_EIN 0/1 - INT 0x0002 - - - -
1=EIN; 0=AUS
Schlusslicht:
STAT_SL 0-n - INT 0x0030 TAB_SL - - -
siehe Subtabelle
Abblendlicht rechts:
STAT_AL_RECHTS_EIN 0/1 - INT 0x0100 - - - -
1=EIN; 0=AUS
*1) *2)
Tabelle „TAB_SL“:
WERT TEXT
Im Gegensatz zu Beispiel 2 kann auch statt einem kompletten Diagnoseauftrag als Bitfield
zu deklarieren, innerhalb eines Diagnoseauftrags einzelne Results als Bitfield behandelt
werden. Somit ist es möglich Teile vom Antworttelegram einzeln als Bitfield auszulesen.
Tabelle „SG_Funktionen“:
- - - - - - 22 - RES_0xD040
Ergebnistabelle „RES_0xD040“:
M D A
L/ MAS
RESULTNAME EINHEIT DATENTYP NAME U I D INFO
H KE
L V D
-
STAT_ANALOG_WERT °C - char - - - - Analoges Ergebnis
Spannungsversorgung:
STAT_BITFIELD_ERG BIT - BITFIELD - BF_BITFIELD1 - - -
1=EIN; 0=AUS
Bitfield: einzelnen Er-
unsigned
STAT_DISKRETE_WERTE 0-n - - TAB_DISKRETE_ - - - gebnisse stehen in der
char WERTE Tabelle BF_BITFIELD1
Tabelle „BF_BITFIELD1“:
RESULTNAME EINHEIT L/H DATENTYP NAME NAME MUL DIV ADD INFO
In so einem Fall antwortet das SG mit einem Telegramm der Länge 4 Bytes (1+2+1). Die
genaue Beschreibung vom fachlichen Inhalt des Telegrams ist nun verschachtelt:
• STAT_ANALOG_WERT ist im 1. Byte
• STAT_BITFIELD_ERG von den 2. und 3. Bytes
o STAT_2A ist in den Bits 0 bis 7 (komplettes 2te Byte)
Stephan Keitel, Firma ESG 06.02.2012
Anleitung_STATUS_STEUERN_UDS_V1.25.doc freigegeben
Verwendung der UDS STATUS / STEUERN Jobs im SGBD-Generator Seite 17 von 33
0x01 1. Wert
0x02 2. Wert
0x03 3. Wert
WERT TEXT
0x0001 1. Wert
0x0002 2. Wert
0x0003 3. Wert
Zum Beispiel kann durch Senden eines bestimmten Data-Identifier (DID) eine Nummer ins
Steuergerät geschrieben werden.
Achtung:
Das Steuergerät kann den Zugriff auf verschiedene Data-Identifier einschränken oder ganz
untersagen (nur zum Lesen definierte Data-Identifier durch den Zulieferer oder Fahrzeug-
hersteller).
Argument 1: “ARGUMENT_SPALTE“
• Hier wird der Name der Spalte eingetragen, aus der das 2. Argument benutzt wer-
den soll. Aus der Tabelle “SG_Funktionen“ können die Spalten “ARG“, “ID“ oder
“LABEL“ ausgewählt werden.
Argument 2: “STATUS“
• Hier wird der Wert, aus der im 1. Argument gewählten Spalte, eingetragen werden.
Z.B “DID“=0xD001
Argument 3: “WERT“
• Hier wird der Wert eingegeben, der an das Steuergerät zum Steuern übergeben
werden soll. Z.B “Nr“=1234567
ARG_TABELLE
DATENTYP NAME MUL DIV ADD SG_ADR SERVICE RES_TABELLE
- - - - - - 2E ARG_0xD030 -
Tabelle „ARG_0xD030“:
ARG EINHEIT L/H DATENTYP MASKE NAME MUL DIV ADD MIN MAX INFO
Hinweis:
• Wenn ein Aufruf ein oder mehrere Argumente besitzt, dann befinden sich die Ar-
gumente in einer Subtabelle.
• Beim Service $2E muss mindestens ein Eintrag in der Argument Tabelle vorhanden
sein. Ein Aufruf ohne ein Argument ist nicht zulässig.
Argument 1: “AUSWAHL_SPIEGEL“
• Mit dem Argument wird der Spiegel ausgewählt, der verfahren werden soll.
Mögliche Eingaben: “1“= Fahrerspiegel oder “0“= Beifahrerspiegel
Argument 2: “RICHTUNG_SPIEGEL“
• Mit dem Argument wird die Richtung festgelegt.
Mögliche Eingaben: “rechts“, “links“, “oben“ oder “unten“
Argument 3: “ANSTEUER_ZEIT“
• Mit dem Argument wird die Ansteuerzeit in ms festgelegt.
Tabelle „SG_Funktionen“:
ARG_TABELLE
DATENTYP NAME MUL DIV ADD SG_ADR SERVICE RES_TABELLE
- - - - - - 2E 0xD040 -
Tabelle „ARG_0xD040“:
ARG EINHEIT L/H DATENTYP MASKE NAME MUL DIV ADD MIN MAX INFO
1=Fahrerspiegel,
AUSWAHL_SPIEGEL 0/1 - INT - - - - - - -
0=Beifahrerspiegel
0x01=rechts, 0x02=links,
RICHTUNG_SPIEGEL 0-n - INT - TAB_SP_RI - - - - -
0x03=oben, 0x04= unten
Tabelle „TAB_SP_RI“:
WERT TEXT
0x01 rechts
0x02 links
0x03 oben
0x04 unten
Hinweis:
• Beim Aufruf von diskreten Argumenten kann der Eintrag aus der Spalte “TEXT“
oder der Eintrag aus der Spalte “WERT“ übergeben werden.
Beispielaufruf:
Tabelle „TAB_SP_RI“:
WERT TEXT
0x01 rechts
0x02 links
0x03 oben
0x04 unten
Die einzelnen Argumente, die dem Steuergerät geliefert werden müssen, werden in einer
Subtabelle definiert. Der Name der Subtabelle wird in der Spalte “ARG_TABELLE“ in der
SG_Funktionen eingetragen.
Argument 1: “ARGUMENT_SPALTE“
• Hier wird der Name der Spalte eingetragen, aus der das 2. Argument benutzt wer-
den soll. Aus der Tabelle “SG_Funktionen“ können die Spalten “ARG“, “ID“ oder
“LABEL“ ausgewählt werden.
Argument 2: “STATUS“
• Hier wird der Wert, aus der im 1. Argument gewählten Spalte, eingetragen werden.
Z.B “RID“=0xA001
Argument 3: “STEUERPARAMETER“
• RoutineControlOptionRecord. Mögliche Eingaben:
o STR: Routine starten
o STPR: Routine stoppen
o RRR: Ergebnisse vom Steuergerät abfragen
Argument 4: “WERT“
• Hier wird der Wert eingegeben, der an das Steuergerät zum Steuern übergeben
werden soll. Dieses Argument wird nur benötigt, wenn in der Subtabelle ein Parame-
ter definiert ist.
Tabelle „SG_Funktionen“:
- - - - - - 31 - -
STAT_SUCHLAUF_EIN = 1
STAT_BEST_AM_SENDER = SENDER_A
STAT_BEST_FM_WERT = 96,65
STAT_BEST_FM_WERT_EINH = kHz
STAT_BEST_AM_WERT = 88,50
STAT_BEST_AM_WERT_EINH = kHz
Tabelle „SG_Funktionen“:
RES_TABELLE
DATENTYP NAME MUL DIV ADD SG_ADR SERVICE ARG_TABELLE
INT - - - - - 31 - RES_0xA055
Tabelle „RES_0xA055“:
DATEN-
RESULTNAME STR STPR RRR EINHEIT L/H MASKE NAME MUL DIV ADD INFO
TYP
0=Suchlauf aus,
STAT_SUCHLAUF_EIN - - + 0/1 - INT - - - - -
1=Suchlauf ein
Gibt den Namen
STAT_BEST_AM_SENDER - - + 0-n - STRING - - - - - des besten AM
Sender zurück
STAT_BEST_FM_WERT - + + kHz - INT - - 100 - Wert FM Sender
Eine Besonderheit des Jobs “STEUERN_ROUTINE“ ist, dass für jeden Steuerparameter
(STR, STPR, RRR) einzelne Results definiert werden können. Somit können unterschiedli-
che Results für Start, Stop oder beim Abfragen von Results definiert werden. Die Definition
erfolgt in der jeweiligen Subtabelle. In dieser Tabelle befinden sich immer alle Results, die
zu einer ID gehören. Die Auswahl der einzelnen Results wird festgelegt, indem die Spalten
STR, STPR, RRR mit einem “-“ oder “+“ befüllt werden.
Dabei gilt:
“-“: Das Argument/Result wird beim Aufruf der ID mit dem jeweiligen Steuerparame-
ter nicht benutzt
“+“: Das Argument/Result wird beim Aufruf der ID mit dem jeweiligen Steuerparame-
ter benutzt
Die einzelnen Argumente, die dem Steuergerät geliefert werden müssen, werden in einer
Subtabelle definiert. Der Name der Subtabelle wird in der Spalte “ARG_TABELLE“ in der
SG_Funktionen eingetragen.
Um den Standardjob “STEUERN_IO“ aufzurufen, müssen vier Argumente übergeben wer-
den.
Argument 1: “ARGUMENT_SPALTE“
• Hier wird der Name der Spalte eingetragen, aus der das 2. Argument benutzt wer-
den soll. Aus der Tabelle “SG_Funktionen“ können die Spalten “ARG“, “ID“ oder
“LABEL“ ausgewählt werden.
Argument 2: “STATUS“
• Hier wird der Wert, aus der im 1. Argument gewählten Spalte, eingetragen werden.
Z.B “DID“=0xD001
Argument 3: “STEUERPARAMETER“
• ControlOptionRecord. Mögliche Eingaben:
o RCTECU: ReturnControlToECU
o RTD: ResetToDefault
o FCS: FreezeCurrentState
o STA: ShortTermAdjustment
Argument 4: “WERT“
• Hier wird der Wert eingegeben, der an das Steuergerät zum Steuern übergeben
werden soll. Z.B. “Drehzahl“= 2300 1/min
apiJob("<SGBD-Name>"," STEUERN_IO","ARG;
DREHZAHL_VORGEBEN;STA;2300","")
STAT_IST_DREHZAHL_WERT = 2312
STAT_IST_DREHZAHL_EINH = 1/min
STAT_ FL_LINKS_INFO = Aktuelle Drehzahl in 1/min
Tabelle „SG_Funktionen“:
Tabelle „ARG_0xD080“:
ARG EINHEIT L/H DATENTYP MASKE NAME MUL DIV ADD MIN MAX INFO
Motordrehzahl
DREHZAHL 1/min - INT - - 1 1 0 800 6000
Eingabe in 1/min
Tabelle „RES_0xD080“:
RESULTNAME EINHEIT L/H DATENTYP MASKE NAME MUL DIV ADD INFO
Aktuelle Drehzahl in
STAT_IST_DREHZAHL_WERT 1/min - INT - - - - -
1/ min
Argument 1: “BLOCK_NR“
• Hier wird die Nummer des Blockes angegeben, der ausgelesen werden soll. Erlaub-
ter Bereich 0 – 255.
Argument 2: “NEU_DEFINIEREN“
• Wird “JA“ oder “YES“ eingegeben, dann wird der Block im SG gelöscht und neu ins
SG geschrieben. Wird “NEIN“ oder “NO“ eingegeben, dann wird der Block im SG
nicht gelöscht und nicht geschrieben.
Anschließend wird der Block gelesen.
Hinweis: Der erste Aufruf für einen Block erfolgt immer mit YES. Anschließend kann z.B.
eine zyklische Abfrage mit NO erfolgen, da ein löschen und neu anlegen jedes mal ineffi-
zient ist und der Aufruf mit YES wesentlich länger dauert als mit NO.
Argument 3: “ARGUMENT_SPALTE“
• Hier wird der Name der Spalte eingetragen, aus der das 2. Argument benutzt wer-
den soll. Aus der Tabelle “SG_Funktionen“ können die Spalten “ARG“, “ID“ oder
“LABEL“ ausgewählt werden.
Argument 4: “STATUS“
• Hier wird der Wert, aus der im 1. Argument gewählten Spalte, eingetragen für die
gewünschten Data-Identifier. z.B “DID“ = 0xD002 und 0xD003
apiJob("<SGBD-Name>"," STATUS_BLOCK_LESEN","1;YES;ID;
0xD002;0xD003","")
Tabelle „SG_Funktionen“:
Bei diesem Aufruf werden die angeforderten Werte der Data-Identifier im Steuergerät be-
reitgestellt und können anschließend mit dem JOB “STATUS_BLOCK_LESEN“ ausgele-
sen werden.
Wurde ein Block angelegt wie im Beispiel 1, so kann dieser Block erneut ausgelesen wer-
den.
Hinweis: Die Reihenfolge der angegeben DIDs darf nicht vertauscht werden. Da die Daten
sonst falsch interpretiert werden.
Folgender Aufruf wäre falsch, da der DID 0xD003 im Beispiel 1 nicht als erstes, sondern
als zweites Argument übergeben wurde:
Bei Auswahl einer der UDS-Standardjobs in der Jobauswahl wird in der Job-Info auf die Tabelle
SG_Funktionen verwiesen. Mit Doppelklick wird die Tabelle SG_Funktionen in der Tabelleninfo ange-
wählt.
1. Doppelklick
1. Doppelklick
2. Der Eintrag im
Eingabefeld wird
automatisch befüllt.
Diese Funktion ist für die Spalten “ARG“, “ID“ und “LABEL“ implementiert.
1. Doppelklick
table Gang[2][] = {
{ "WERT", "UWTEXT" },
{ "0x01", "@Gang@: 1" },
{ "0x02", "@Gang@: 2" },
{ "0x03", "@Gang@: 3" },
{ "0x04", "@Gang@: 4" },
{ "0x05", "@Gang@: 5" },
{ "0x06", "@Gang@: R" },
{ "0xXY", "@Gang@: @unplausibel@" }
};
Die Tabelle Tab_0x00AA ist ein Beispiel für die Aufteilung eines Bytes in 3 digitale / 1 diskrete Um-
weltbedingungen. Eine solche Aufteilungstabelle darf nur Indizes für digitale (hier: 0x0005, 0x0006,
0x0007) oder diskrete Umweltbedingungen (hier: 0x0010) enthalten.
Die Spaltennamen beginnen nach UW_ANZ mit UW1_NR und gehen bis zur n-ten Umweltbedingung
(hier: UW4_NR). Die Anzahl der Umweltbedingungen (hier: 4) muss dabei in der 1. Spalte UW_ANZ
eingetragen werden. Ferner ist zu beachten, dass die Anzahl der Spalten der Tabelle bei der Tabellen-
definition angegeben werden muss (im Beispiel: TAB_0x00AA[5][]).
table Tab_0x00AA[5][] = {
{ "UW_ANZ", "UW1_NR", "UW2_NR", "UW3_NR", "UW4_NR" },
{ "4" , "0x0005", "0x0006", "0x0007", "0x0010" }
};
E-Mail: referenz@bmw.de
https://gis.bmw.com