Unfortunately, the KBL standard (by Prostep) leaves space for interpretation and so there are different "dialects" to comply with different customer conventions. The "kbl2edb" does not support all available dialects, but it has switches for: -dsa, -zuken, -bmw, -ego, -rivian, -vw. These dialect switches mostly define, what naming rules apply to distinguish different component types like ECUs, Inliner, Splices, Eyelets, etc. They also define, how to group connectors to components. And they also define which built-in component images are displayed on the different component boxes (usually derived from component's first character).
The "kbl2edb" is expected to fail if run on KBL dialects that are new to us (in that case, kbl2edb has undefined behavior and is expected to create unpredictable edb contents).
There are a few public available .kbl example files from Prostep. From the Volkswagen Old Beetle example, you can e.g. try the Main harness and convert it to beetle_m.edb, or try all harnesses and convert them to one beetle.edb like here:
The .kbl files as well as the resulting .edb file stores a so-called 150% data model,
that means it includes multiple variants of a vehicle in one data model. As a consequence
just loading the resulting beetle.edb (or beetle_m.edb) into EEvision will display
multiple variants in parallel. This usually results in parallel wires, like in the
schematic diagram below - showing an extraction from XA.W1 based on beetle.edb:
The EEvision's start-up page
supports the "Filter EDB" function. There you can check
some configuration modules to choose a 100% subset of the data model.
Based on beetle.edb you can e.g. select the modules
aaa108a12241C and aaa108a1aaa and start EEvision again. An extraction form XA.W1 will
now display the screen shot
below, without any parallel wires.
EEvision supports an alternative way to do the 100% filtering. If the .edb file stores Boolean expressions (which is not part of an KBL files), then a more convenient selection of the wanted configuration can be done by specifying Boolean variables. But before, the Boolean expressions must be added to the .edb file, e.g. with the -exprf command line option:
The expressions.txt is a simple line-oriented text file with each line storing the module name, followed by a colon and followed by a Boolean expression. Afterwards, those modules will be selected, whose Boolean expressions evaluate to true. Normally, this expressions.txt should assign an Boolean expression to each configure module, but here we use a simplified mock-up: if the expressions.txt looks like below, then specifying the Boolean variable C would select the modules aaa108a12241C and aaa108a1aaa, resulting in the same 100% schematic diagram as shown in the screen shot above.
aaa108a1224: No aaa108a12241B: B aaa108a12241C: C aaa108a1aaa: No | C
The EEvision's start-up page still supports the "Filter EDB" function, but
if the given beetle.edb includes Boolean expressions, then the configuration
by Boolean variables is available as shown below:
Less common is the option to have kbl2edb actually perform this 100%-filtering before creating an .edb file. In this case, the resulting .edb file stores a 100% data model (not the usual 150% data model - so EEvision does not need to filter again). This can be done in kbl2edb with the -filterby option; this option must appear after the .kbl files. The argument(s) after the -filterby option are URL parameters, as they are passed to EEvision at start-up. Here, we specify the fv parameter to set the Boolean variable "C":
The so created beetle_f.edb will be displayed by EEvision (without extra filtering) as the same 100% schematic diagram as shown in the screen shot above.