MbsDimEdit 409
MbsDimEdit 409
Database Editor
Support
In case of unsolvable problems with this product or other IXXAT products please
contact IXXAT in written form by:
Copyright
Duplication (copying, printing, microfilm or other forms) and the electronic distribution
of this document is only allowed with explicit permission of IXXAT Automation GmbH.
IXXAT Automation GmbH reserves the right to change technical data without prior
announcement. The general business conditions and the regulations of the license
agreement do apply. All rights are reserved.
Contents
1 Overview 1
1.1 The Data Interpreter Module (DIM) . . . . . . . . . . . . . . . . . . . . . . . . . 1
5 Restrictions 35
6 File format 37
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.2 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.2.1 Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.2.2 Start tag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.2.3 Project data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.2.4 Message data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.2.5 Mux mask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.2.6 Mux value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.2.7 ElseValue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.2.8 Signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.2.9 State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Overview
• Digital signals, to which pairs consisting of value and state description are allocated.
During the interpretation phase, the bit patterns of the CAN telegram are converted into mean-
ingful numerical values and thus provided as physical values or states.
The Data Interpreter Module consists of three program parts (Abb. 1.1):
• The Data Interpreter Server forms the central element. It receives CAN telegrams and
carries out interpretation with a given database.
• With the Database Editor, the user can draw up and process Data Interpreter databases.
The signal definitions are deposited in the DIM data base.
• The Signal module displays the signals and their current value
The following sections describe the basic principles which are a prerequisite for using the Data
Interpreter Module. In section "Quick Start - Definition of an example database", an example
database is drawn up with the aid of the Database Editor. Working through this section will
provide a quick introduction to the Data Interpreter Module.
• Data
Protocol information is described by the Data Interpreter Module with so-called Data Inter-
preter multiplexers whereas contained data are described by signal definitions.
The Data Interpreter Module handles both information within one database.
The position of the bits carrying information is described by stating the start bit and bit length.
Thus, the Data Interpreter Module cannot process any information which is distributed over un-
related fields in a bit stream.
In the following, the definition of signals and multiplexers is explained.
• Name
• Codification
– Byte-Order (INTEL/Motorola)
– Data format
Figure 2.1: For Intel signals the start bit is at the LSB.
The remaining settings are used to parameterise the output of the signals within the Signal
module:
• colour
Signed binary
For Signed Binaries the sign is expected in the most significant bit (MSB).
There are three different supported codifications:
• 1’s complement
• 2’s complement
IEEE floating points consists of a sign bit, a mantissa and an exponent. Two different IEEE
formats are supported:
Value Unsigned Signed inte- 1’s compl. 2’s compl. Unsigned Signed
binary ger BCD BCD
+15 1111 - - - - -
+14 1110 - - - - -
+13 1101 - - - - -
+12 1100 - - - - -
+11 1011 - - - - -
+10 1010 - - - - -
+9 1001 - - - 1001 0000 1001
+8 1000 - - - 1000 0000 1000
+7 0111 0111 0111 0111 0111 0000 0111
+6 0110 0110 0110 0110 0110 0000 0110
+5 0101 0101 0101 0101 0101 0000 0101
+4 0100 0100 0100 0100 0100 0000 0100
+3 0011 0011 0011 0011 0011 0000 0011
+2 0010 0010 0010 0010 0010 0000 0010
+1 0001 0001 0001 0001 0001 0000 0001
+0 0000 0000 0000 0000 0000 0000 0000
-0 - 1000 1111 0000 - 1000 0000
-1 - 1001 1110 1111 - 1000 0001
-2 - 1010 1101 1110 - 1000 0010
-3 - 1011 1100 1101 - 1000 0011
-4 - 1100 1011 1100 - 1000 0100
-5 - 1101 1010 1011 - 1000 0101
-6 - 1110 1001 1010 - 1000 0110
-7 - 1111 1000 1001 - 1000 0111
-8 - - - 1000 - 1000 1000
-9 - - - - - 1000 1001
-10 - - - - - -
-11 - - - - - -
-12 - - - - - -
-13 - - - - - -
-14 - - - - - -
-15 - - - - - -
• The multiplexer mask determines the area by start bit and length
• The multiplexer value which determines a position within the area or alternatively an else
value.
Example:
Assuming a protocol transmits a function number in the first byte, the value of this function
number determines the meaning of the remaining bytes in the telegram.
Figure 2.4: Structure of a CAN layer 2 message within the Data Interpreter Module
In order to interpret this protocol with the Data Interpreter Module, define a multiplexer mask
which determines the first byte as area. With the aid of the multiplexer values below this, each
function number can now be described. For example, you can assign a certain function name to
the value 0.
Below the multiplexer value, the signal definitions for this function number are inserted and thus
the meaning of the remaining data is defined.
• Message independent (global) signals are extracted from the telegram and interpreted.
– The first Mux mask is placed over the telegram and the Mux value is determined
– If the corresponding Mux value is not defined, the assigned Else branch is used for
the interpretation
– The signals belonging to the current Mux value or Else branch are extracted from the
telegram and interpreted
– Then the next sub multiplexer is determined and the interpretations are carried out
recursively.
• The same steps are taken for every message if a global Mux mask is defined
The interpretation process can be shown graphically by means of a tree structure. Fig. 2.6 shows
the correlation in an exemplary way .
The project is situated on the root level with the project data belonging to it.
Under the root node the message objects are placed.
The multiplexer independent signals and the first multiplexer mask are situated one level deeper.
The multiplexer values (Mux values) below that with the multiplexer mask (Mux mask) together
make up the multiplexer.
The given alternative branch (Else value) is brought in for the interpretation if none of the Mux
values applies at the same level.
Below a Mux value, further multiplexers (Mask value pairs) can be situated.
Example
Offset = PhysMin
For the values shown in Fig. 2.8 scale and offset evaluates to:
• Offset = -30 °C
3.1 Overview
With the Database Editor you are able to edit the interpretation database for the Data Interpreter
Module.
Generally, for all input fields which require integral values, the data can be entered decimally or
hex decimally with prefixed "0x".
• Project
• Message
3.3.1 Project
The project data record is situated at root level. All project specific data are assigned to it. This
includes:
Attribute Comment
Project name max. 63 characters
Customer max. 63 characters
User max. 63 characters
Version max. 63 characters
Comment max. 63 characters
Date max. 63 characters (is updated when saved)
Frame type 11 or 29 bit identifier
The input of the project data is made over the input mask in Fig. 3.2.
3.3.2 Message
In a message definition the message to be interpreted is specified over its CAN identifier and the
payload length (data length code, DLC) in bytes. A message object can be seen as a message
filter depending on the message identifier and the message length.
Attribute Comment
Identifier DWORD
Name max. 63 characters
Payload DWORD
Cycletime resolution in 100 ns
The input of the data is made over the input mask in Fig. 3.3.
Attribute Comment
Name max. 63 characters
Start bit Integer [0..telegram length-1]
Length Integer [1..telegram length]
The input of the data is made over the input mask in Fig. 3.4.
Attribute Comment
Name max. 63 characters
Value integral
A MuxValue describes the value of a Multiplexers. The attribute "Value" is a comparison value
when the data are interpreted.
One level lower, the following data record-types are permissible:
The input of the data is made over the input mask in Fig. 3.5.
Attribute Comment
Name max. 63 characters
Status (not shown by Database Editor)
• Signal
ElseValue nodes are coupled to use with Mux masks and are thus deposited automatically in the
Database Editor.
The input of the data is made over the input mask in Fig. 3.6.
Attribute Comment
Name max. 63 characters
Unit max. 63 characters
Start bit Integral [0..telegram length]
Bit length Integral [0..telegram length]
Scale Double
Offset Double
Default value DIM_VALUE
Min value DIM_VALUE
Max value DIM_VALUE
data type DWORD
Format string max. 11 characters (not yet supported)
Colour DWORD (not yet supported)
Status DWORD (Read, Write, Enabled)
This information is necessary, since the Data Interpreter Module core carries out a translation of
signals from a source type into a target type.
The source type of the signals results from the start bit and bit length as well as from the attribute
’Signal type’. This attribute is coded according to bits. The meaning of the individual bits is given
in the appendix. Since the Database Editor decodes the coding, it is not relevant at this point.
(The three input fields Conversion, Display and Encoding are deposited there).
The attributes ’Scaling’ and ’Offset’ are used for a linear conversion of the signals.
The attributes "Default value", "Min value" and "Max value" are of the type DIM_VALUE, i.e. their
meaning or their value depends on the source type of the signals.
The attributes "FormatString" and "Colour" are planned for future versions but are not currently
supported.
The input of the data is made over the input mask in Fig. 3.7.
3.3.7 States
In a state data record, the state which the signal above can accept is specified. These states are
described by a name and an assigned value.
States only make sense for signals with an integral value result.
Attribute Comment
Meaning max. 63 characters
Value DWORD
3.5 Toolbar
The toolbar (Fig. 3.10) provides the most important functions of the menu again:
3.6 Clipboard
The clipboard is a software program that is used for short-term storage of data as it is transferred
between Database Editor documents or the Database Editor, via copy and paste operations. It is
a part of the GUI environment and is implemented as an anonymous, temporary block of memory
that can be accessed from the Database Editor within the environment. A selected DIM-node is
copied to clipboard by the function "copy" or "cut". By "paste" a node can be inserted in the tree
structure. The Clipboard menu provides the following functions:
3.8.2 Drag
"Drag" the object/cursor/pointing device to the desired location.
3.8.3 Drop
"Drop" the object by releasing the left button.
• The unit is fitted with a switch with three positions, a pressure sensor and a temperature
sensor
• After switching on the unit, the unit transmits its process signals (switch position, pressure
and temperature) cyclically via the CAN bus. The CAN identifier used is ID 5
• The switch position is transmitted in the first data byte and can take on the values 0.1 and
2 for (Off, middle position and full load)
• The next two bytes contain the pressure in hPa in INTEL-Format as DWORD without sign
First determine the settings for the signal "Pressure". According to the default, the pressure
information is in byte 2 and byte 3 of the data field. The unit is hPa, the maximum pressure was
fixed at 10000 hPa. The value is transmitted directly, therefore Scale is set to 1 and Offset to 0
(Fig. 3.16).
We have set the source data type to a DWORD in INTEL format without sign. Carry out the
appropriate settings in the fields Conversion and Encoding. In the Display field, you can param-
eterise the display by means of the Signal module. Scale and Offset are two parameters of a
linear equation with the aid of which a conversion is applied to the signal. The signal values can
be checked/preallocated via MinValue, MaxValue and DefaultValue.
Then define the signal "Temperature". It is deposited in byte 3 and 4 of the data field and has
a maximum value of 2000 °C. The value is transmitted dircetly, therefore Scale is set to 1 and
Offset to 0 (Fig. 3.17).The source data type is in this case a signed DWORD in INTEL format.
Finally define the signal "Switch". The state of the switch is in byte 0 of the data field (Fig. 3.18).
The signal Switch is a signal which describes states. The switch has the three positions or states:
• Off (0)
Restrictions
• The position of the bits carrying information is described by stating the start bit and bit
length. Thus, the Data Interpreter Module cannot process any information which is dis-
tributed over unrelated fields in a bit stream.
• States could be defined for all type of variables, but the definition of states is only usable
for variables with data type "Unsigned Binary".
• Remote Request Messages are not handled by the Data Interpreter Module. This is not a
serious restriction because in RTR Frames no data is contained.
File format
6.1 Introduction
The project data is stored in a project file which conforms to the XML standard. This appendix
describes the elements (tags) used for the structuring of the file and the format of the defined
data.
6.2 Structure
6.2.1 Header
Each XML file, and thus also the Data Interpreter project file begins with the following character
string:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE DIM-PROJECT SYSTEM ’dimprj.dtd’>
Here the XML version is given to which the file conforms, as well as the codification of the
characters contained. The !DOCTYPE-Tag gives the name of the start tag (DIM-PROJECT) as
well as the possible presence of a DTD-file (Document-Type-Definition).
</DIM-PROJECT>
<PRJ-NAME>Demo project</PRJ-NAME>
<PRJ-CUSTOMER>IXXAT Automation GmbH</PRJ-CUSTOMER>
<PRJ-USER>U.R.</PRJ-USER>
<PRJ-VERSION>1</PRJ-VERSION>
<PRJ-COMMENT>Comment</PRJ-COMMENT>
<PRJ-DATE>05/06/2004</PRJ-DATE>
<PRJ-FRAMEFORMAT>0xb</PRJ-FRAMEFORMAT>
<PRJ-NUMIDBITS>0xb</PRJ-NUMIDBITS>
<PRJ-NUMDATABITS>0x40</PRJ-NUMDATABITS>
</PRJ-DATA<
</DIM-PROJECT<
The individual Tags contain the project data and have the following meaning:
Tag Meaning
PRJ-NAME Project name
PRJ-CUSTOMER Company
PRJ-USER User
PRJ-VERSION Version
PRJ-COMMENT Comment (max. 1024 characters)
PRJ-DATE Date
PRJ-FRAMEFORMAT Default frame format used when creating new MESSAGE descriptions
PRJ-NUMIDBITS number of identifier bits
PRJ-NUMDATABITS> number of payload bits
constant Meaning
0x02 DIM_FF_CAN11BIT
0x03 DIM_FF_CAN29BIT
0x05 DIM_FF_FLEXRAY
0x06 DIM_FF_CANFD_STD
0x07 DIM_FF_CANFD_EXT
<MSG-STATUS>0x7</MSG-STATUS>
</MSG-DATA>
</Message>
The individual Tags have the following meaning:
Tag Meaning
MSG-NAME Message name
MSG-LENGTH Message length
MSG-ID CAN identifier
MSG-FRAMEFORMAT Message format. The same values as for PRJ-FRAMEFORMAT are
allowed.
MSG-CYCLETIME Cycle time
MSG-STATUS Status
Later versions from 02/2016 added the following tags to enable message matching by id and
mask/value pair:
Tag Meaning
MSG-IDMASK id mask
MSG-IDVALUE id match value
</MUXMASK>
The individual Tags define a Mux mask:
Tag Meaning
MM-NAME Name
MM-STARTBIT Start bit
MM-BITLENGTH Bit length
</MUXVALUE>
</MUXMASK>
The individual Tags define a Mux value:
Tag Meaning
VAL-NAME Name
VAL-VALUE Value
VAL-STATUS Status
6.2.7 ElseValue
An Else value represents an alternative branch and thus possesses only the Tags Name and
Status.
...
<ELSEVALUE>
<VAL-DATA>
<VAL-NAME>else</VAL-NAME>
<VAL-STATUS>0x7</VAL-STATUS>
</VAL-DATA>
</ELSEVALUE>
...
The individual Tags have the same meaning as with normal Mux values. The Tag <VAL-VALUE>
is ignored within an Else value.
6.2.8 Signal
Signals are the central structure for the Data Interpreter Module. They are included in the tag
<VARIABLE>:
...
<VARIABLE>
<VAR-DATA>
<VAR-NAME>Var_1</VAR-NAME>
<VAR-STARTBIT>0x20</VAR-STARTBIT>
<VAR-BITLENGTH>0x8</VAR-BITLENGTH>
<VAR-UNIT></VAR-UNIT>
<VAR-DEFVALUE>0</VAR-DEFVALUE>
<VAR-SCALE>1</VAR-SCALE>
<VAR-OFFSET>0</VAR-OFFSET>
<VAR-MINVAL>0</VAR-MINVAL>
<VAR-MAXVAL>255</VAR-MAXVAL>
<VAR-STATUS>0x7</VAR-STATUS>
<VAR-TYPE>0x48010</VAR-TYPE>
<VAR-DISPCOLOR>0</VAR-DISPCOLOR>
<VAR-FORMATSTR></VAR-FORMATSTR>
</VAR-DATA>
</VARIABLE>
...
The following Tags characterise the signal definition:
Tag Meaning
VAR-NAME Name
VAR-STARTBIT Start bi
VAR-BITLENGTH Bit length
VAR-UNIT Unit
VAR-DEFVALUE Default value
VAR-SCALE Scaling
VAR-OFFSET Offset
VAR-MINVAL Minimum value
VAR-MAXVAL Maximum value
VAR-STATUS Status
VAR-TYPE Source type
VAR-DISPCOLOR Colour
VAR-FORMATSTR Format string
VAR-TYPE is a 32 bit unsigned value, which specifies the source data type of the signal. Encod-
ing of this value is given in the following table:
Bit Meaning
0-7 Data type:0x10 = Direkt; 0x11 = 1’s Complement; 0x12 = 2’s Complement; 0x13 =
BCD; 0x20 = IEEE; 0x30 = String
8 - 14 reserved
15 Encoding:0x0 = Intel; 0x1 = Motorola
16 - 23 Display Format:0x00 = Format string; 0x01 = Ascii; 0x02 = Binary; 0x03 = Octal; 0x04
= Decimal; 0x05 = Hexadecimal
24 - 30 reserved
31 Sign:0x0 = unsigned; 0x1 = signed
6.2.9 State
States are arranged below signal definitions.
[...]
<VARIABLE>
<VAR-DATA>
...
</VAR-DATA>
<STATE>
<STATE-DATA>
<STATE-MEANING>Aus</STATE-MEANING>
<STATE-VALUE>0</STATE-VALUE>
</STATE-DATA>
</STATE>
</VARIABLE>
...
The following Tags belong to a state-data record:
Tag Meaning
STATE-MEANING Meaning of the state
STATE-VALUE Value