You are on page 1of 33

BMW Group

SGBD Generator

Using the UDS Jobs


STATUS / STEUERN
in SGBD-Generator

Version: 1.25
Date: 06.02.2012
Status: Released
Author: Stephan Keitel, Firma ESG
File: Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc
No. of pages: 33

History
Version Date Authors Revised
0.10 10.01.2006 T. Müller First issue
0.20 16.01.2006 T. Müller Amendments / changes
0.21 13.02.2006 T. Müller Amendments / changes
0.22 31.03.2006 T. Müller Revision of tables
0.30 20.04.2006 T. Müller Addition of “BITFIELD“ for bit evaluation
0.40 29.05.2006 T. Müller Service $31 and $2F added
0.41 01.06.2006 T. Müller Defined data types
0.52 12.08.2006 T. Müller Extension of Service $31
0.53 13.11.2006 T. Müller Revision
0.54 04.12.2006 T. Müller Addition of tips for EDIABAS Toolset
0.56 23.03.2007 T. Müller Extensions
0.57 03.05.2007 T. Müller Addition of chapter "Combination of Services“
1.00 10.06.2007 T. Müller General revision
1.10 05.09.2007 T. Müller Amendment of STATUS_BLOCK_LESEN
1.11 18.12.2007 A. Reuß General revision
1.12 19.05.2008 A. Reuß Definition Resultnamen revised
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 2 of 33

1.13 25.07.2008 A. Reuß General revision, correction of errors


1.14 01.08.2008 A. Reuß Addition of tips for EDIABAS Toolset
1.15 29.08.2008 A. Reuß Bugfix STATUS_BLOCK_LESEN
1.16 30.09.2008 A. Reuß Images revised
1.18 02.03.2009 A. Schandl Correction of error example $2F
1.19 14.05.2009 A. Schandl Extension
1.20 18.05.2010 S.Keitel Update of Introduction and contact data,
Reorganization of the chapter structure,
Extension of the SG-Funktionen description,
Adjustment of the data types,
Example of mixed results with Bitfield,
Abbreciations
1.21 13.01.2011 M.Saller Revision
1.22 04.10.2011 S. Keitel Remove cover note and renaming of the title, after
consultation with Gerd Huber (TI-538)
1.23 05.10.2011 S. Keitel Update chapter 3.53.5 (Service 2C) and Update
chapter 2.4 and 2.4.1
1.24 07.12.2011 S. Keitel Update chapter 2.4, new 2.4.2
1.25 06.02.2012 G. Huber Little adjustments (particularly title and chapter 6)

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 3 of 33

Contents

List of Abbreviations .............................................................................................................................. 4

1 Introduction .................................................................................................................................... 5

2 Table “SG_Funktionen” for Standard jobs ................................................................................. 6


2.1 Standard Jobs ............................................................................................................................. 6
2.2 Table "SG_Funktionen" ............................................................................................................... 7
2.3 Defined data types ....................................................................................................................... 8
2.4 Definition of result name for the SG_Funktionen table................................................................ 9
2.4.1 Rules for results ................................................................................................................ 9
2.4.2 Rules for developer-results ............................................................................................. 10
2.4.3 Example of a result table showing all possible result types ............................................ 11
3 Description of jobs ...................................................................................................................... 12
3.1 JOB: STATUS_LESEN ($22- ReadDataByIdentifier) ................................................................ 12
3.1.1 Readout one Data-Identifier (DID) from the control unit ................................................. 12
3.1.1.1 Example 1: Readout the suction pressure value ......................................................................... 12
3.1.1.2 Example 2: Readout several Data-Identifiers (DID) from control unit .......................................... 13
3.1.1.3 Example 3: Readout suction pressure value and air temperature ............................................... 13
3.1.2 Exception: Several results per job call up ....................................................................... 14
3.1.2.1 Example 1: Readout of light status from light control unit. ........................................................... 14
3.1.2.2 Example 2: Readout of light status with the help of data type “BITFIELD“ ................................ 15
3.1.2.3 Example 3: result table with mixed result-types and BITFIELD ................................................... 16
3.2 JOB: STEUERN ($2E- WriteDataByIdentifier) .......................................................................... 18
3.2.1 Example 1: Setting the engine speed ............................................................................. 19
3.2.2 Exception: Transferring several arguments per job call-up ............................................ 20
3.2.2.1 Example 2: Transferring several arguments per job call-up ........................................................ 20
3.3 JOB: STEUERN_ROUTINE ($31- RoutineControl) .................................................................. 22
3.3.1 Example 1: Start (or stop) routine ................................................................................... 22
3.3.2 Example 2: Requesting results with service $31 ............................................................ 23
3.4 JOB: STEUERN_IO ($2F- InputOutputControlByIdentifier) ...................................................... 24
3.4.1 Example 1: Defining engine speed ................................................................................. 24
3.5 JOB: STATUS_BLOCK_LESEN ($2C- DynamicallyDefineData-Identifier) ............................... 26
3.5.1 Example 1: Creation of 2 data identifiers ........................................................................ 26
3.5.2 Example 2: Reading of 2 data identifiers ........................................................................ 27
4 Combination of services ............................................................................................................. 28

5 Information on Toolset32 (Tool32.exe)...................................................................................... 29


5.1 Tip1: Loading the table "SG_Funktionen" ................................................................................ 29
5.2 Tip 2: Take over parameters from a table ................................................................................. 30
5.3 Tip3: Navigation between sub-tables ....................................................................................... 31
6 Use of Environment-Conditions-Texts ...................................................................................... 32

7 Contacts and links ....................................................................................................................... 33


7.1.1 Hotline EDIABAS and SGBD-Generator: ........................................................................ 33
7.1.2 Hotline ZEDIS: ................................................................................................................ 33
7.1.3 Links (BMW-Intranet): ..................................................................................................... 33

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 4 of 33

List of Abbreviations
ARG / Argument Arguments, which are sent to the control unit
B2S BEST/2 source file respectively source
BEST Description language for control units
BMW-fast BMW "fast access for service and testing"
DID Data-Identifier
DS2 Diagnose System 2
DTC The Diagnostic Trouble Code is a hexadecimal code used in the automotive
industry for the identification of malfunctions, which can occur during the op-
eration of an automobile.
EDIABAS The Electronic Diagnosis-Basis-System provides access to diagnosis infor-
mation on the vehicle.
iMAN Information manager
ISO14229 Communication protocol standard ISO14229
KompCheck Compatibility check
KWP2000 Keyword protocol 2000 Communication protocol
LH Functional specifications
RES / Result Results supplied by the control unit
SAP Systems, Applications, Products in data processing
SG Control unit
SG_Funktionen Standard table „SG_Funktionen“
SGBD The control unit description file contains over different applications (e.g.
Toolset) callable jobs, which are processed to diagnosis telegrams in the
SGBD. The control unit answers will be processed into readable results.
Toolset EDIABAS Toolset Application, that uses a SGBD and freely-setting parame-
ters, to run the diagnostic services of a SGBD over EDIABAS. Available
through GIS – BMW Standard Tools Development.
XML Extensible Markup Language
ZEDIS Central diagnostic system

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 5 of 33

1 Introduction
Starting with L6 series diagnosis jobs, which due to their function are located in all future
model ranges, will be specified in the form of standardized diagnosis jobs within the scope of
the diagnosis feed forward process.
All diagnosis volumes required for production and service that have be described in standard
jobs will be defined by ZEDIS in the diagnostic database. The control unit specific volumes
will be compiled for each control unit and will then be exported from ZEDIS in an exchange
form and will finally be imported into the SGBD generator. After importing the data into the
SGBD generator, the volumes are shown in the table “SG_Funktionen“ and can be com-
pleted by the user.

Fig. 1: Form “SG Funktionen“ in SGBD generator

The volumes defined in the table are used by five special standard jobs. Yellow fields can-
not be edited by the user.
In addition to diagnosis jobs, defect locations and defect texts (DTCs) can be entered and
assigned in the diagnostic database. These volumes will be imported into the standard
table “FOrtTexte“ in addition to the diagnostic jobs when data is imported into the
SGBD generator.

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 6 of 33

This document describes how to call up the five standard jobs and carry out the control
unit specific adjustments in the table “SG_Funktionen”.

2 Table “SG_Funktionen” for Standard jobs

2.1 Standard Jobs

The following five additional standard jobs are available and used from the table
“SG_Funktionen”:

a. JOB: STATUS_LESEN (see chapter 3.1)


Service: $22 (ReadDataByIdentifier)
File: UDS_22_STATUS_LESEN.b2s

b. JOB: STEUERN (see chapter 3.2)


Service: $2E (WriteDataByIdentifier)
File: UDS_2E_STEUERN.b2s

c. JOB: STEUERN_ROUTINE (see chapter 3.3)


Service: $31 (RoutineControl)
File: UDS_31_STEUERN_ROUTINE.b2s

d. JOB: STEUERN_IO (see chapter 3.4)


Service: $2F (InputOutputControlByIdentifier)
File: UDS_2F_STEUERN_IO.b2s

e. JOB: STATUS_BLOCK_LESEN (see chapter 3.5)


Service: $2C (DynamicallyDefineData-Identifier)
File: UDS_2C_STATUS_BLOCK_LESEN.b2s

The jobs and the standard table “SG_Funktionen“ are described in the following chap-
ters. The exact definition of the individual diagnosis service is contained in ISO 14229.
The aforementioned jobs use the table “SG_Funktionen“.

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 7 of 33

2.2 Table "SG_Funktionen"


The aforementioned jobs require the standard table "SG_Funktionen" that is located in
the SGBD generator under "SG Funktionen" after the diagnositc data has been imported
into the SGBD generator (see: Fig. 1: Form "SG Funktionen" in SGBD generator). The ta-
ble "SG_Funktionen" is made up of the following columns:

Definition of columns:

• ARG Identifier as string. No identifier may be featured twice.


• ID Data or Routine Identifier (DID or RID) as 2 byte value.
• RESULTNAME Name of result (see chapter 2.4 "Definition Resultnamen").
• INFO Detailed information on ID and diagnosis job.
• EINHEIT The unit is created automatically using the resultname + ending
"_EINH".
• LABEL SG-internal variable name.
• L/H Byte-Order low/high (permitted values: "h", "l", "-")
"high" and "-" => in SG response: First high byte, then low byte
"low" => in SG response: First low byte, then high byte
This column is only required for data types consisting of at least 2 byte,
otherwise "-" is entered.
• DATENTYP Permitted data type (see chapter 2.3 "Defined data type")
• NAME Table name for discrete values (EINHEIT = "0-n").
If filled with "-" no result is created. Otherwise, _TEXT is created with
"RESULTNAME" plus ending _and the corresponding text is assigned
from the table.
• MUL Analogue value = analogue value * MUL. With "-" no operation.
• DIV Analogue value = analogue value / DIV. With "-" no operation.
With 0  division by zero defects
• ADD Analogue value = analogue value + ADD. With "-" no operation.

The conversion of analog values:

• SG_ADR Optional: Is not used by the current jobs.


• SERVICE Indication of diagnosis service to be used.
• ARG_TABELLE Indication of the sub-table in which arguments are defined that are re-
quired for the call up of the diagnosis job.
• RES_TABELLE Indication of the sub-table in which the results are defined that are re-
quired for the call up of the diagnosis job.

N.B.: The column "SG_ADR" is currently not evaluated by the standard jobs!

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 8 of 33

2.3 Defined data types


The data type, displayed in the SG-Funktionen table, is interpreted by the standard job
(see 2). The value displayed in EDIABAS is thereof independent and always “real” or
“string”.

Datentyp Länge Wertebereich


char 1 Byte signed (default): -128 bis+127
unsigned: 0 bis +255
int 2 Byte signed (default): -32768 bis +32767
unsigned: 0 bis +65535
long 4 Byte signed (default): -2147483648 bis +2147483647
unsigned: 0 bis +4294967295
Intel float* 4 Byte Intel float (default), Little Endian

Motorola float* 4 Byte Motorola float, Big Endian


einfache Genauigkeit
Intel double 8 Byte Intel double (default), Little Endian

Motorola double 8 Byte Motorola double, Big Endian


doppelte Genauigkeit
string dynamisch 0-255 Zeichen
Hex0: String Enderkennung
string[n] **) max. 255 Byte 1 ≤ n ≤ 255
n = Anzahl der Bytes
data[n] **) max. 255 Byte 1 ≤ n ≤ 255
n = Anzahl der Bytes
BITFIELD - Sonderfall: SG_Funktionen Datentyp für Bitfield
Ergebnisse

*) Use only data types that are supported by the control unit. In general, only very few con-
trol units support float numbers.

**) With data type "string" the entry of string length is optional. If no string length is speci-
fied, the end characters "0x00" must be entered.
With data type "data" length input is mandatory.

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 9 of 33

2.4 Definition of result name for the SG_Funktionen table


Each result name starts with "STAT_". There are four different result types (semantics).
The result type is defined by the unit.

2.4.1 Rules for results

RESULT-TYPE RESULTNAME UNIT DATATYPE


Dummy Result DUMMY_... DATA data[n]
1 ≤ n ≤ 255
Analog Result STAT_..._WERT char, int, …
TEXT Result STAT_..._TEXT TEXT string[n]
1 ≤ n ≤ 255
DATA Result STAT_..._DATA DATA data[n]
1 ≤ n ≤ 255
Digital Result STAT_... 0/1 char, int, …
(except _DATA,
_TEXT, _WERT)
Discret Result STAT_.. 0-n char, int, …
(except _DATA,
_TEXT, _WERT)
Hex Result STAT_..._WERT HEX char, int, …
Bit-Field Result …. BIT BITFIELD
(except _DATA,
_TEXT, _WERT)

• Analogue results end with "_WERT" and are data type char, int, long, float, double,
string or data.
The results _EINH und _INFO are created automatically.

Special cases:
- With data type "string" the result " _TEXT" is created additionally. The
result "_TEXT" is shown in textual figures.
- With data type "data" the result " _DATA" is created additionally. The
result "_DATA" is shown in hexadecimal figures.
(Example: _DATA= 05 07 06 1A FF …).
The result " _WERT" is empty in both cases and is filled with "0" (_WERT=0).

• Digital results (EINHEIT = "0/1") may not end with _WERT and are data type char,
int or long , whereby only "0" or "1" are permitted.
The result _INFO is created automatically.

• Discrete results (EINHEIT = "0-n") may not end with "_WERT" and have data type
char, int or long. The converted decimal number of the response telegram is as-
signed to the result name.
The results _EINH, _TEXT and _INFO are created automatically.

• HEX results (EINHEIT = "HEX") end with "_WERT" and have data type char, int or
long.
The results _EINH and _INFO are created automatically.

• Bit-Field results (EINHEIT = “BIT”) from data type “BITFIELD”.


For this semantic “Bitfield” only the unit “Bit” and the data types “unsigned char”,
“unsigned int” and “unsigned long” are allowed.

o Current only the general result of a job is definable as a Bitfield


Stephan Keitel, Firma ESG 06.02.2012
Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 10 of 33

Special case (new):


o Interlacing of results of a diagnostic job with several semantics e.g. Ana-
logue, Bitfield and Discrete.

For further information on definition of results, please refer to the Specification


Book Diagnosis Part 5, "Guidelines for control unit description files" (SAP:
10000786).

2.4.2 Rules for developer-results

RESULT-TYPE RESULTNAME UNIT DATATYPE


Analog Result _STAT_..._WERT char, int, …
TEXT Result _STAT_..._TEXT TEXT string[n]
1 ≤ n ≤ 255
DATA Result _STAT_..._DATA DATA data[n]
1 ≤ n ≤ 255
Digital Result _STAT_... 0/1 char, int, …
(except _DATA,
_TEXT, _WERT)
Discret Result _STAT_... 0-n char, int, …
(except _DATA,
_TEXT, _WERT)
Hex Result _STAT_..._WERT HEX char, int, …
Bit-Field Result _.... BIT BITFIELD
(except _DATA,
_TEXT, _WERT)

• Developer-results wiht „_“…


Results for developers have been excluded from the review, this does not apply
anymore, because the standardjob now also checks developers results.
Developer Results vary by 'normal' result only by a "_" is prefixed to the name. Oth-
erwise, the same rules apply as for a "normal” -result. In particular, there is almost
always a "_STAT_" will be prefixed.

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 11 of 33

2.4.3 Example of a result table showing all possible result types

Result table:

RESULTNAME EINHEIT L/H DATENTYP MASKE NAME MUL DIV ADD INFO

STAT_SPANNUNG_WERT V - CHAR - - - - - Voltage


- Power supply:
STAT_VERSORGUNG_EIN 0/1 - INT - - - -
1=EIN; 0=AUS
Wheel position;
assignment ac-
STAT_RAD 0-n - CHAR - TAB_RAD - - -
cording to
TAB_RAD
STAT_ANTWORT_WERT HEX - INT - - - - - Response telegram

Table "TAB_RAD":
WERT TEXT

0x01 Wheel front left

0x02 Wheel front right

0x03 Wheel rear left

0x04 Wheel rear right

0xFF nicht definiert

Calling up the diagnosis job leads to the following results:

STAT_SPANNUNG_WERT (Semantics analogue):


STAT_SPANNUNG_EINH =V
STAT_SPANNUNG_INFO = Voltage
STAT_SPANNUNG_WERT = 8.000000E+000

STAT_VERSORGUNG_EIN (Semantics digital):


STAT_VERSORGUNG_EIN =1
STAT_VERSORGUNG_EIN_INFO = Power supply: 1=ON; 0=OFF;

STAT_RAD_NR (Semantics discrete):


STAT_RAD =2
STAT_RAD_EINH = 0-n
STAT_RAD_INFO = Wheel position; assignment ac-
cording to TAB_RAD
STAT_RAD_TEXT = Wheel rear left

STAT_ANTWORT_WERT (Semantics HEX):


STAT_ANTWORT_EINH = hex
STAT_ANTWORT_INFO = Response telegram
STAT_ANTWORT_WERT = AFFE

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 12 of 33

3 Description of jobs

3.1 JOB: STATUS_LESEN ($22- ReadDataByIdentifier)


The ReadDataByIdentifier service allows the test engineer to retrieve specific data that has
been defined via a data identifier from a control unit. A query may contain one or more data
identifiers. When the control unit receives the ReadDataByIdentifier from the test engineer,
it must send the corresponding data defined by the Data Identifier to the test engineer in
the form of a positive response. For example, by sending a specific data identifier (DID),
information about the voltage of the vehicle's electrical system can be retrieved.
For further information, please refer to the specification books or to ISO/DIS 14229.

3.1.1 Readout one Data-Identifier (DID) from the control unit

To call up the standard job “STATUS_LESEN“ two arguments have to be assigned:

Argument 1: “ARGUMENT_SPALTE“
• Enter the name of the column from which the 2nd argument is to be used. In the ta-
ble “SG_Funktionen“ you may select the columns “ARG“, “ID“ or “LABEL“.

Argument 2: “STATUS“
• Enter the value from the column selected in the 1st argument, e.g. “DID“=0xD001

3.1.1.1 Example 1: Readout the suction pressure value

Reading out suction pressure from an engine control unit. Three different job call-ups are
possible:

a: An argument of column “ARG“ is assigned to the job


apiJob("<SGBD-Name>","STATUS_LESEN","ARG;IPSAU","")

b: An argument of column “ID“ is assigned to the job


apiJob("<SGBD-Name>"," STATUS_LESEN ","ID; 0xD002","")

c: An argument of column “LABEL“ is assigned to the job


apiJob("<SGBD-Name>"," STATUS_LESEN ","LABEL; MAP_MES","")

Excerpt from table “SG_Funktionen”

Table "SG_Funktionen":

ARG ID RESULTNAME INFO EINHEIT LABEL L/H

Suction pres-
IPSAU 0xD002 STAT_SAUGROHRDRUCK_WERT
sure
hPa MAP_MES -

DATENTYP NAME MUL DIV ADD SG_ADR SERVICE ARG_TABELLE RES_TABELLE

unsigned int - 0,82 1 1 0x12 22 - -

The job can be called up as described in the following. If the control unit responds cor-
rectly, the results are created automatically (see example).

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 13 of 33

apiJob("<SGBD-Name>"," STATUS_LESEN ","ID; 0xD002","")

STAT_ SAUGROHRDRUCK _EINH = hPa


STAT_ SAUGROHRDRUCK _INFO = Suction pipe pressure
STAT_ SAUGROHRDRUCK _WERT = 9.000000E+000

3.1.1.2 Example 2: Readout several Data-Identifiers (DID) from control unit


With the job "STATUS_LESEN" it is also possible to call up several data identifiers and
several results with one job call-up. The number of DIDs that can be called up with one job
call-up differs from control unit to control unit. The maximum number of DIDs that can be
called up in job call-up is defined by the development engineer for the respective control
unit in the field“Konstanten“ in the SGBD-Generator.
Default setting: unsigned char MAX_ARGUMENT_STATUS_LESEN = 5;

3.1.1.3 Example 3: Readout suction pressure value and air temperature

apiJob("<SGBD-Name>"," STATUS_LESEN ","ID; 0xD002;0xD003","")

STAT_ SAUGROHRDRUCK _EINH = hPa


STAT_ SAUGROHRDRUCK _INFO = Suction pipe pressure
STAT_ SAUGROHRDRUCK _WERT = 9.000000E+000

STAT_ LUFTTEMPERATUR _EINH = °C


STAT_ LUFTTEMPERATUR _INFO = Air temperature
STAT_ LUFTTEMPERATUR _WERT = 25.000000E+000

Excerpt from table “SG_Funktionen”

Table "SG_Funktionen":

ARG ID RESULTNAME INFO EINHEIT LABEL L/H

IPSAU 0xD002 STAT_SAUGROHRDRUCK_WERT Suction pipe pressure hPa MAP_MES -

ITANS 0xD003 STAT_LUFTTEMPERATUR_WERT Air temperature °C TIA -

DATENTYP NAME MUL DIV ADD SG_ADR SERVICE ARG_TABELLE RES_TABELLE

unsigned int - 0,82 1 1 0x12 22 - -

unsigned char - 0,75 1 1 0x12 22 - -

The above conversion e.g. for STAT_LUFTTEMPERATUR_WERT means, that a value was
returned from the control unit, which was interpreted from the standard job as an unsigned
char and put out in EDIABAS as real :

32 (°C) x 0,75
========== + 1 = 25 (°C – air- temperature) => Output in EDIABAS 25.000000E+000
1

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 14 of 33

3.1.2 Exception: Several results per job call up

The service $22 allows the test engineer to call up several results with only one data iden-
tifier. This means that one DID is sent to the control unit and the control unit can return
several results.

The individual results provided by the control unit have to be defined in a sub-table. The
name of the sub-table is entered in the column "RES_TABELLE" in the table
"SG_Funktionen". The sequence of results must not be mixed up.

3.1.2.1 Example 1: Readout of light status from light control unit.


The call up should provide the status of several light bulbs of the light module.

The job call up is as follows:

apiJob("<SGBD-Name>"," STATUS_LESEN ","ID; 0xD020","")

STAT_ FL_LINKS_EIN =1
STAT_ FL_LINKS_EIN_INFO = High beam left 1=ON, 0=OFF

STAT_ FL_RECHTS_EIN =0
STAT_ FL_RECHTS_EIN_INFO = High beam right 1=ON, 0=OFF

STAT_ AL_LINKS_EIN =0
STAT_ AL_LINKS_EIN_INFO = Low beam left 1=ON, 0=OFF

STAT_ AL_RECHTS_EIN =1
STAT_ AL_RECHTS_EIN_INFO = Low beam right 1=ON, 0=OFF

Excerpt from table “SG_Funktionen”:

Table "SG_Funktionen":

ARG ID RESULTNAME INFO EINHEIT LABEL L/H

Readout low beam and high


FL_AL_LICHT 0xD020 - - - -
beam

RES_TABELLE
DATENTYP NAME MUL DIV ADD SG_ADR SERVICE ARG_TABELLE

- - - - - - 22 - RES_0xD020

Table „RES_0xD020“:
RESULTNAME EINHEIT L/H DATENTYP MASKE NAME MUL DIV ADD INFO

High beam left:


STAT_FL_LINKS_EIN 0/1 - INT - - - - -
1=ON; 0=OFF
High beam right:
STAT_FL_RECHTS_EIN 0/1 - INT - - - - -
1=ON; 0=OFF
Low beam left:
STAT_AL_LINKS_EIN 0/1 - INT - - - - -
1=ON; 0=OFF
Low beam right:
STAT_AL_RECHTS_EIN 0/1 - INT - - - - -
1=ON; 0=OFF

In this example, data type “INT“ is used for each result. If numerous status messages are
to be called up from one control unit, the number of data bytes can be reduced by using
data type “BITFIELD“ (see 3.1.2.2 ).

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 15 of 33

3.1.2.2 Example 2: Readout of light status with the help of data type “BITFIELD“
By using data type “BITFIELD“ in column “DATENTYP“ of table SG_Funktionen several
status can be evaluated in one or several byte. The mask for masked reading is entered in
the sub-table in column “Maske“. With discrete (0-n) and digital (0/1) results, 1, 2 or 4
byte are allowed. Once a diagnosis job has been declared as a bitfield, all argu-
ments/results contained therein are treated as bitfield. Over and above that, no further ar-
guments/results may be entered.

Excerpt from table “SG_Funktionen”:

Table "SG_Funktionen":

ARG ID RESULTNAME INFO EINHEIT LABEL L/H

Readout low beam and high


FL_AL_SL_LICHT 0xD020 - BIT - -
beam

NAME
DATENTYP MUL DIV ADD SG_ADR SERVICE ARG_TABELLE RES_TABELLE

BITFIELD RES_0xD020 - - - - 22 - -

Table "RES_0xD020":

RESULTNAME EINHEIT L/H DATENTYP MASKE NAME MUL DIV ADD INFO
High beam left:
STAT_FL_LINKS_EIN 0/1 - INT 0x0001 - - - -
1=ON; 0=OFF
High beam right:
STAT_FL_RECHTS_EIN 0/1 - INT 0x0002 - - - -
1=ON; 0=OFF
Tail light:
STAT_SL 0-n - INT 0x0030 TAB_SL - - -
See search table
Low beam right:
STAT_AL_RECHTS_EIN 0/1 - INT 0x0100 - - - -
1=ON; 0=OFF
*1) *2)

*1): Permitted units: “0/1“ and “0-n“


*2): Permitted data types: char, int and long. Within one bitfield, all data types must be
identical.

TAB_SL: Sub-table for discrete values

Table "TAB_SL":
WERT TEXT

0x01 Tail light left rear

0x02 Tail ligth right rear

0xFF undefined

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 16 of 33

3.1.2.3 Example 3: result table with mixed result-types and BITFIELD

In contrast to example 2 single results, instead to declare the complete diagnosis order as
a Bitfield, within a diagnosis order can be handled as a Bitfield. So it is possible to read out
parts from the answer telegram as a Bitfield.

Excerpt from the table “SG_Funktionen”:

Table „SG_Funktionen“:

ARG ID RESULTNAME INFO EINHEIT LABEL L/H

TEST_BSP3 0xD040 - TEST GEMISCHTE ERG - - -

DATENTYP NAME MUL DIV ADD SG_ADR SERVICE ARG_TABELLE RES_TABELLE

- - - - - - 22 - RES_0xD040

Result table „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

Table „BF_BITFIELD1“:
RESULTNAME EINHEIT L/H DATENTYP NAME NAME MUL DIV ADD INFO

STAT_2A 0-n - unsigned int 0x00FF TEingangVideoSwitch - - - Test 2A

STAT_2B 0-n - unsigned int 0x0F00 - - - Test 2B

STAT_2C 0-n - unsigned int 0xF000 - - - Test 2C

Interpretation of the result table:


• STAT_ANALOG_WERT, analog result with data-type „char“ (1 Byte)
• STAT_BITFIELD_ERG, Bitfield result (new) with data-type „unsigned int“ (2 Byte)
o STAT_2A, discrete result with data-type “unsigned int“, Maske 0x00FF
o STAT_2B, discrete result with data-type “unsigned int“, Maske 0x0F00
o STAT_2C, discrete result with data-type “unsigned int“, Maske 0xF000
• STAT_DISKRETE_ERG, discrete result with data-type „unsigned char“ (1 Byte)

In such a case the SG responds with a message of the length of 4 Bytes (1+2+1). The exact
description of the technical content of the telegram is now interlaced:
• STAT_ANALOG_WERT is in the 1. Byte

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 17 of 33

• STAT_BITFIELD_ERG of the 2. und 3. Bytes


o STAT_2A is in the bits 0 till 7 (complete 2nd byte)
o STAT_2B is in the bits 8 till 11 (part of the 3rd byte)
o STAT_2C is in the bits 12 till 15 (part of the 3rd byte)
• STAT_DISKRETE_ERG is in 4. byte

The sub-tables referenced from the results:

Table „BF_BITFIELD1“describes the Bitfield result from the data-type „char“:

WERT TEXT

0x01 1. Wert
0x02 2. Wert
0x03 3. Wert

Table „TEingangVideoSwitch“describes the discrete result from the data-type „unsigned


int“:
WERT TEXT

0x0001 1. Wert
0x0002 2. Wert
0x0003 3. Wert

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 18 of 33

3.2 JOB: STEUERN ($2E- WriteDataByIdentifier)


The WriteDataByIdentifier-Service allows the test engineer to describe the memory of a
control unit defined by a data identifier.
Applications for this service are as follows:

• Writing configuration information into the control unit


• Setting/resetting of values
• Deletion of non-volatile memory

For example: By sending a specific data identifier (DID), a number can be written into the
control unit.

Attention:
The control unit may limit or prohibit access to various data identifiers (data identifiers for
read access only as defined by the supplier or automobile manufacturer).

To call up the standard job “STEUERN“ three arguments have to be entered.

Argument 1: “ARGUMENT_SPALTE“
• Enter the name of the column from which the 2nd argument is to be used. From the
table “SG_Funktionen“ you may select the columns “ARG“, “ID“ or “LABEL“.

Argument 2: “STATUS“
• Enter the value from the column of the 1st argument, e.g.“DID“=0xD001

Argument 3: “WERT“
• Enter the value to be transmitted to the control unit for controlling, e.g.
“Nr“=1234567

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 19 of 33

3.2.1 Example 1: Setting the engine speed


The idle speed of the engine is to be set in the control unit. There are three possible job
call-ups (see 3.1.1.1). The parameters are transferred to the control unit and if the call-up
is successful, the response is as follows: “JOB_STATUS = OKAY“.

The job call-up is as follows:

apiJob("<SGBD-Name>"," STEUERN ","ARG;MOT_DREHZAHL;2500","")

Excerpt from table “SG_Funktionen”:

Table „SG_Funktionen“:

ARG ID RESULTNAME INFO EINHEIT LABEL L/H

Setting engine speed. enter


MOT_DREHZAHL 0xD030 - - MDREH -
in 1/min

ARG_TABELLE
DATENTYP NAME MUL DIV ADD SG_ADR SERVICE RES_TABELLE

- - - - - - 2E ARG_0xD030 -

Table „ARG_0xD030“:

ARG EINHEIT L/H DATENTYP MASKE NAME MUL DIV ADD MIN MAX INFO

DREHZAHL 1/min - INT - - 1 1 0 - - Engine speed in 1/min

N.B.:
• If a call up has one or several arguments, these are located in a sub table.
• For service $2E there must be at least one entry in the argument table. Call up
without argument is not permitted.

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 20 of 33

3.2.2 Exception: Transferring several arguments per job call-up


Service $2E allows the test engineer to transfer several arguments with one data identifier.
This means that one DID with several arguments can be transmitted for control purposes.
This mechanism only works if the table“SG_Funktionen“ is completed correctly. The
individual arguments to be supplied to the control unit are defined in a sub-table. The
name of the sub-table is entered in the column “ARG_TABELLE“ in the table
SG_Funktionen. All arguments must be transmitted. The sequence of arguments must
not be mixed up.

3.2.2.1 Example 2: Transferring several arguments per job call-up


The exterior mirrors of a vehicle are to be adjusted. For this purpose, the control unit re-
quired the following 3 arguments:

Argument 1: “AUSWAHL_SPIEGEL“
• This argument selects the mirror, which is to be adjusted.
Possible input: “1“= Mirror driver's side or “0“= Mirror co-
driver's side

Argument 2: “RICHTUNG_SPIEGEL“
• This argument defines the direction.
Possible input: “right“, “left“, “upward“ or “downward“

Argument 3: “ANSTEUER_ZEIT“
• This argument defines the adjustment time in ms.

The job call-up is as follows:

apiJob("<SGBD-Name>"," STEUERN ","ARG; SPIEGEL_VERFAHREN;1;RECHTS;1000","")

Excerpt from table “SG_Funktionen”:

Table „SG_Funktionen“:

ARG ID RESULTNAME INFO EINHEIT LABEL L/H

SPIEGEL_VERFAHREN 0xD040 - Adjustment of outside mirrors - SP_VERFAHREN -

ARG_TABELLE
DATENTYP NAME MUL DIV ADD SG_ADR SERVICE RES_TABELLE

- - - - - - 2E 0xD040 -

Table „ARG_0xD040“:

ARG EINHEIT L/H DATENTYP MASKE NAME MUL DIV ADD MIN MAX INFO

1=Mirror driver's side,


AUSWAHL_SPIEGEL 0/1 - INT - - - - - - -
0=Mirror co-driver's side
0x01=right, 0x02=left,
RICHTUNG_SPIEGEL 0-n - INT - TAB_SP_RI - - - - - 0x03=upward, 0x04=
downward

ANSTEUER_ZEIT ms - INT - - - - - - - Adjustment time in ms

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 21 of 33

Table „TAB_SP_RI“:
WERT TEXT

0x01 right

0x02 left

0x03 upward

0x04 downward

N.B.:
• When calling up discrete arguments the entry in column “TEXT“ or the entry in
column“WERT“ may be transmitted.

Example:

Table „TAB_SP_RI“:
WERT TEXT

0x01 right
0x02 left

0x03 upward

0x04 downward

apiJob("<SGBD-Name>"," STEUERN ", apiJob("<SGBD-Name>"," STEUERN ",


"ARG; "ARG;
SPIEGEL_VERFAHREN;1;0x01; SPIEGEL_VERFAHREN;1;RIGHT;
1000","") 1000","")

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 22 of 33

3.3 JOB: STEUERN_ROUTINE ($31- RoutineControl)


Service $31 allows the test engineer to

- Start a routine [0x01: StartRoutine (STR)]


- Stop a routine [0x02: StopRoutine (STPR)]
- Request results from control units [0x03: RequestRoutineResults (RRR)]

The individual arguments to be supplied to the control unit are defined in a sub-table. The
name of the sub-table is entered in column “ARG_TABELLE“ in table SG_Funktionen.

To call up the standard job “STEUERN_ROUTINE“ three or four arguments have to be en-
tered.

Argument 1: “ARGUMENT_SPALTE“
• Enter the name of the column from which the 2nd argument is to be used. In table
“SG_Funktionen“ you may select the columns “ARG“, “ID“ or “LABEL“.

Argument 2: “STATUS“
• Enter the value of the column selected for argument 1, e.g. “RID“=0xA001

Argument 3: “STEUERPARAMETER“
• RoutineControlOptionRecord. Possible input:
o STR: Start routine
o STPR: Stop routine
o RRR: Request results from control unit

Argument 4: “WERT“
• Enter the value that is to be transferred to the control unit for controlling. This ar-
gument is only required if a parameter has been defined in the sub-table.

3.3.1 Example 1: Start (or stop) routine

The job call-up is as follows:

apiJob("<SGBD-Name>"," STEUERN_ROUTINE ","ARG; SENDER_SUCHLAUF;STR","")

Excerpt from table “SG_Funktionen”:

Table „SG_Funktionen“:

ARG ID RESULTNAME INFO EINHEIT LABEL L/H

SENDER_SUCHLAUF 0xA055 - Search for channel - SENDER_SL -

DATENTYP NAME MUL DIV ADD SG_ADR SERVICE ARG_TABELLE RES_TABELLE

- - - - - - 31 - -

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 23 of 33

3.3.2 Example 2: Requesting results with service $31

apiJob("<SGBD-Name>"," STEUERN_ROUTINE ","ARG;


SENDER_SUCHLAUF;RRR","")

STAT_SUCHLAUF_EIN = 1
STAT_BEST_AM_SENDER = CHANNEL_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

The job call-up is as follows:

Excerpt from table “SG_Funktionen”:

Table „SG_Funktionen“:

ARG ID RESULTNAME INFO EINHEIT LABEL L/H

SENDER_SUCHLAUF 0xA055 - Search for channel - SENDER_SL -

RES_TABELLE
DATENTYP NAME MUL DIV ADD SG_ADR SERVICE ARG_TABELLE

INT - - - - - 31 - RES_0xA055

Table „RES_0xA055“:
DATEN-
RESULTNAME STR STPR RRR EINHEIT L/H MASKE NAME MUL DIV ADD INFO
TYP
0=Channel
search off,
STAT_SUCHLAUF_EIN - - + 0/1 - INT - - - - -
1=channel
search on
Shows name of
STAT_BEST_AM_SENDER - - + 0-n - STRING - - - - -
best AM channel
Value FM chan-
STAT_BEST_FM_WERT - + + kHz - INT - - 100 -
nel
Value AM chan-
STAT_BEST_AM_WERT - + + kHz - INT - - - 100 -
nel

One of the special features of the job“STEUERN_ROUTINE“ is that individual results can be
defined for each control parameter (STR, STPR, RRR). Therefore, different results can be
defined for Start, Stop or Request of results. The definition is carried out in the respective
sub-table. This table contains all results pertaining to one ID. The selection of results is
carried out be entering “-“ or “+“ in the columns STR, STPR and RRR.

The following applies:


“-“: The argument/result is not used when calling up the ID with the respective con-
trol parameter
“+“: The argument/result is used when calling up the ID with the respective control
parameter

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 24 of 33

3.4 JOB: STEUERN_IO ($2F- InputOutputControlByIdentifier)


Service $2F is used to set a value for an input signal, an internal server function and/or and
output signal by means of a data identifier.
If the request of the test engineer is successful, the control unit sends a positive response.
The service allows control of the respective controlOptionRecord of an individual re-
quest via a single data identifier.

The respective arguments that have to be supplied ot the control unit are defined in a sub-
table. The name of the sub-table is entered in column “ARG_TABELLE“ in table
SG_Funktionen.
To call up the standard job “STEUERN_IO“ four arguments have to be entered.

Argument 1: “ARGUMENT_SPALTE“
• Enter the name of the column from which the 2nd argument is to be used. In the
table“SG_Funktionen“ you may select the columns “ARG“, “ID“ or “LABEL“.

Argument 2: “STATUS“
• Enter the value of the column selected for the first argument, e.g.“DID“=0xD001

Argument 3: “STEUERPARAMETER“
• ControlOptionRecord. Possible input:
o RCTECU: ReturnControlToECU
o RTD: ResetToDefault
o FCS: FreezeCurrentState
o STA: ShortTermAdjustment

N.B.: If no control parameter is entered, ShortTermAdjustment (STA) is used.

Argument 4: “WERT“
• Enter the value that is to be transferred to the control unit for controlling,
e.g.“Drehzahl“= 2300 1/min

3.4.1 Example 1: Defining engine speed


An engine speed of 2300 1/min is to be set in the control unit. The currently valid engine
speed is returned as return value.

The job call-up is as follows:

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 = Current engine speed
in 1/min

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 25 of 33

Excerpt from table “SG_Funktionen”:

Table „SG_Funktionen“:

ARG ID RESULTNAME INFO EINHEIT LABEL L/H

Set engine speed in


DREHZAHL_VORGEBEN 0xD080 - - DREHZAHL_SOLL -
1/min

DATENTYP NAME MUL DIV ADD SG_ADR SERVICE ARG_TABELLE RES_TABELLE

INT - - - - - 2F ARG_0xD080 RES_0xD080

Table „ARG_0xD080“:

ARG EINHEIT L/H DATENTYP MASKE NAME MUL DIV ADD MIN MAX INFO

Engine speed input


DREHZAHL 1/min - INT - - 1 1 0 800 6000
in 1/min

Table „RES_0xD080“:
RESULTNAME EINHEIT L/H DATENTYP MASKE NAME MUL DIV ADD INFO

Current engine speed


STAT_IST_DREHZAHL_WERT 1/min - INT - - - - -
in 1/ min

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 26 of 33

3.5 JOB: STATUS_BLOCK_LESEN ($2C- DynamicallyDefineData-


Identifier)
Service $2C allows the test engineer to combine one or several data identifiers in a block
in one control unit. In the call-up, the respective data identifiers have to be entered for sub-
sequent readout. Use the job “STATUS_BLOCK_LESEN“ to readout the requested identifi-
ers. The data identifiers for readout have to be defined in the table “SG_Funktionen“.
The service should only be used if results are required synchronously. The easier solution
is the use of service $22 with several results (see chapter 3.1.1.2)

Argument 1: “BLOCK_NR“
• Enter the number of the block that is to be read out. Permitted range 0 – 255.

Argument 2: “NEU_DEFINIEREN“
• Enter “JA“ or “YES“ to delete the block in the control unit and to re-enter a new
block in the control unit. Enter “NEIN“ or “NO“ if you do not want to delete or rede-
fine the block in the control unit.
Afterwards, the block is read out.

Note: The first call for a block is always YES. Subsequently, e.g. a cyclic query can be with
NO. The call lasts much longer with YES and delete and recreate each time is inefficient.

Argument 3: “ARGUMENT_SPALTE“
• Enter the name of the column from which the 2nd argument is to be used. From the
table“SG_Funktionen“ you may select the columns “ARG“, “ID“ or “LABEL“.

Argument 4: “STATUS“
• Enter the value from the column selected in the first argument, e.g.“DID“=0xD001

3.5.1 Example 1: Creation of 2 data identifiers

The job call-up is as follows:

apiJob("<SGBD-Name>"," STATUS_BLOCK_LESEN","1;YES;ID;
0xD002;0xD003","")

Table „SG_Funktionen“:

ARG ID RESULTNAME INFO EINHEIT LABEL L/H

IPSAU 0xD002 STAT_SAUGROHRDRUCK_WERT Suction pipe pressure hPa MAP_MES -

ITANS 0xD003 STAT_LUFTTEMPERATUR_WERT Air temperature °C TIA -

DATENTYP NAME MUL DIV ADD SG_ADR SERVICE ARG_TABELLE RES_TABELLE

unsigned int - 0,82 1 1 - 22;2C - -

unsigned char - 0,75 1 1 - 22;2C - -

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 27 of 33

In this call-up, the requested values of the identifiers are provided in the control unit and
can be read out subsequently with the job “STATUS_BLOCK_LESEN“.

3.5.2 Example 2: Reading of 2 data identifiers

If a block as in Example 1 is applied, this block can be read again.

Note: The order of the specified DIDs can not be reversed. Since the data is otherwise mis-
interpreted.

The call looks like this:


ApiJob ("<SGBD-Name>"," STATUS_BLOCK_LESEN ","1; NO; ID; 0xD002; 0xD003","")

STAT_ SAUGROHRDRUCK _EINH = hPa


STAT_ SAUGROHRDRUCK _INFO = Saugrohrdruck
STAT_ SAUGROHRDRUCK _WERT = 9.000000E+000

STAT_ LUFTTEMPERATUR _EINH = °C


STAT_ LUFTTEMPERATUR _INFO = Luft-Temperatur
STAT_ LUFTTEMPERATUR _WERT = 25.000000E+000

The following call would be wrong, because the DID 0xD003 in Example 1 is not the first,
but was passed as the second argument:

ApiJob ("<SGBD-Name>"," STATUS_BLOCK_LESEN ","1; NO; ID; 0xD003; 0xD002","")

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 28 of 33

4 Combination of services
The following combinations of services per data identifier (DID) are possible:

a) $22 and $2E:


b) $22 and $2F: This combination is only possible if the call-up of service 2F provides
the same results as service $22.

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 29 of 33

5 Information on Toolset32 (Tool32.exe)


To facilitate the use of tables in the toolset, add-ons have been incorporated. Parameters
in the tables can be easily selected and navigation between tables and sub-tables is now
possible.

5.1 Tip1: Loading the table "SG_Funktionen"

When selecting one of the UDS standard jobs, job information refers to the table "SG_Funktionen".
Double click on "SG_Funktionen" to select the table.

1. Double click

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 30 of 33

5.2 Tip 2: Take over parameters from a table


Double click to insert a parameter from the table into the input field for arguments. The
column name is added automatically.

1. Double click

2. Entry in input
field is carried out
automatically.

This function is available for the columns "ARG", "ID" and "LABEL".

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 31 of 33

5.3 Tip3: Navigation between sub-tables


Navigation between several tables has been optimized. Move from one table to another by
double click on the respective table name.

1. Double click

2. Table is opened

3. Navigation with the help of


the arrow keys.

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 32 of 33

6 Use of Environment-Conditions-Texts
Related to table SG_Funktionen the tables FUmwelt- und IUmweltTexte are used. The
exact using is documented in the specification Diagnostics part 5 (SAP: 10000786).

In the following example there is described a table FUmweltTexte with different elements.
The table can reference other tables, in this example the table Tab_0x00AA and the table
Gang.
table FUmweltTexte[9][] = {
{"UWNR" , "UWTEXT" , "UW_EINH" , "L/H" , "UWTYP" ,"NAME","MUL","DIV","ADD" },
{"0x0001", "@Batteriespannung@", "@Volt@" , "-" , "unsigned char", "-" , "25","255", "0"},
{"0x0002", "@Aussentemperatur@", "@Grad C@", "high", "signed int" , "-" , "1" , "1" , "0"},
{"0x0003", "@Motordrehzahl@" , "@1/min@" , "low" , "signed long" , "-" ,"1.97", "1", "7"},
{"0x0004", "@SHD-Position@" , "@mm@" , "-" , "Intel float" , "-" , "-" , "-" , "-"},
{"0x00AA", "SUB-Tabelle" , "0/1" , "-" , "0xFF" , "-" , "-" , "-" , "-"},
{"0x0005", "@Magnetventil@ 1" , "0/1" , "-" , "0x80" , "-" , "-" , "-" , "-"},
{"0x0006", "@Magnetventil@ 2" , "0/1" , "-" , "0x40" , "-" , "-" , "-" , "-"},
{"0x0007", "@Magnetventil@ 3" , "0/1" , "-" , "0x20" , "-" , "-" , "-" , "-"},
{"0x0009", "@Klappenposition@" , "@Grad@" , "-" , "signed char" , "-" ,"27","100","-50"},
{"0x000A", "@Taste XY@" , "0/1" , "-" , "0x01" , "-" , "-" , "-" , "-"},
{"0x0010", "@Waehlhebel@" , "0-n" , "-" , "0x07" ,"Gang", "-" , "-" , "-"},
{"0x0031", "@Schalter@ 1" , "0/1" , "high", "0x0001" , "-" , "-" , "-" , "-"},
{"0x0032", "@Schalter@ 2" , "0/1" , "high", "0x0002" , "-" , "-" , "-" , "-"},
{"0x0033", "@Schalter@ 3" , "0/1" , "high", "0x0004" , "-" , "-" , "-" , "-"},
{"0x0034", "@Stoerlampe@" , "0/1" , "high", "0x0010" , "-" , "-" , "-" , "-"},
{"0x0035", "@Bremse betaetigt@", "0/1" , "high", "0x0100" , "-" , "-" , "-" , "-"},
{"0x0040", "@Adresse@ XY" , "Hex" , "high", "unsigned int" , "-" , "-" , "-" , "-"},
{"0x0050", "@Audioquelle@" , "Text" , "high", "3" , "-" , "-" , "-" , "-"},
{"0xFFFF", "@ohne Bedeutung@" , "1" , "-" , "unsigned char", "-" , "1" , "1" , "0"},
{"0xXXYY", "@unbekannte UW@" , "1" , "-" , "unsigned char", "-" , "1" , "1" , "0"}
};

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@" }
};

The table Tab_0x00AA is an example for the splitting of one byte in 3 digital / 1 discrete environment
conditions. Such a splitting-table may contain only indices for digital (this case: 0x0005, 0x0006,
0x0007) or discrete environment conditions (this case: 0x0010).

The names of the columns start after UW_ANZ with UW1_NR and continue up to the n. Environment
condition (this case: UW4_NR). The number of environment conditions (this case: 4) has to be listed in
the 1. column UW_ANZ. Furthermore please note, that the number of columns of the table has to be
set with the definition of the table (in the example: TAB_0x00AA[5][]).

table Tab_0x00AA[5][] = {
{ "UW_ANZ", "UW1_NR", "UW2_NR", "UW3_NR", "UW4_NR" },
{ "4" , "0x0005", "0x0006", "0x0007", "0x0010" }
};

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491
Using the UDS STATUS / STEUERN Jobs in SGBD-Generator Page 33 of 33

7 Contacts and links

7.1.1 Hotline EDIABAS and SGBD-Generator:


Tel.: 089/382-68878
Dept: TI-538, 1.5/013.5-2

E-Mail: referenz@bmw.de

7.1.2 Hotline ZEDIS:


E-Mail: ee_servicedesk@bmw.de
Tel: +49-89-382-61664

7.1.3 Links (BMW-Intranet):


ZEDIS Homepage:
http:\\zedis.muc
Global-Information-Service (GIS):

https://gis.bmw.com

Stephan Keitel, Firma ESG 06.02.2012


Anleitung_STATUS_STEUERN_UDS_English_V1.25.doc Released
Translation: Jeanette Zill, TI-491

You might also like