Professional Documents
Culture Documents
TTControl GmbH
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
1 Introduction
The Control Library is a comprehensive set of functions, templates and examples de-
veloped for all CoDeSys®-enabled TTControl ECUs including the TTC 200 family, the
TTC 50 family as well as the Vision family.
This user manual describes the function provided with the Control Library in detail.
Control Library User Manual
2 2 Bistable Functions
2 Bistable Functions
CoDeSys block
Input ports
Output ports
This function returns the variable output of type DINT containing the result of the latch
element.
Example
VAR
res : DINT;
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
2.2 cl d latch real 3
fb_latch : cl_d_latch_dint;
END_VAR
This function block implements a simple memory element known as D-Latch. Whenever
the clock-input enable is TRUE the D-Latch passes the input directly through to the output
and stores it in an internal memory. If the clock-input enable is FALSE, the D-Latch
outputs the value stored in the memory.
CoDeSys block
Input ports
Output ports
This function returns the variable output of type REAL containing the result of the latch
element.
Example
VAR
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
4 2 Bistable Functions
res : REAL;
fb_latch : cl_d_latch_real;
END_VAR
CoDeSys block
Input ports
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
2.3 cl jk flip flop 5
• k of type BOOL
K-input of flip flop. See truth table for effect on the flip flop output state.
Output ports
• q of type BOOL
Output of JK Flip Flop. Output is defined by the truth table depicted in the previous
paragraph.
• qn of type BOOL
Negated output. Corresponds to NOT (Q).
Example
VAR
fb_jk_flip_flop : cl_jk_flip_flop;
q : BOOL;
END_VAR
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
6 3 Bit and Byte Manipulation
CoDeSys block
Input ports
Output ports
This function returns a value of type BOOL, which is TRUE if the selected bit is set to 1 and
returns FALSE if the selected bit is 0.
Example
VAR
res : BOOL;
END_VAR
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
3.2 cl set bit 7
This function is particularly useful in case the bit-position to be extracted is not a con-
stant (as in the example above), but a variable. For constants the following, easier-to-use,
CoDeSys syntax is recommended:
VAR
res : BOOL;
value : WORD := 16#0003;
END_VAR
CoDeSys block
Input ports
Output ports
This function returns a value of type WORD, containing the modified input variable.
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
8 3 Bit and Byte Manipulation
Example
VAR
value1 : WORD := 16#0000;
value2 : WORD := 16#FFFF;
END_VAR
This function is particularly useful in case the bit-position to be set is not a constant (as in
the example above), but a variable. For constants the following, easier-to-use, CoDeSys
syntax is recommended:
VAR
value1 : WORD := 16#0000;
value2 : WORD := 16#FFFF;
END_VAR
CoDeSys block
Input ports
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
3.4 cl make dword 9
Output ports
This function returns a value of type WORD with byte0 as its least significant byte and
byte1 as its most significant byte.
Example
VAR
my_word : WORD;
END_VAR
This function takes four BYTE values as input and packs them into a DWORD variable.
CoDeSys block
Input ports
Output ports
This function returns a value of type DWORD, byte0 as its least significant byte, then byte
1 and byte 2, and byte3 as its most significant byte.
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
10 3 Bit and Byte Manipulation
Example
VAR
my_dword : DWORD;
END_VAR
This program takes one WORD value as input and splits it into two BYTE variables.
CoDeSys block
Input ports
Output ports
Example
VAR
byte0 : BYTE;
byte1 : BYTE;
END_VAR
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
3.6 cl split dword 11
This program takes one DWORD value as input and splits it into four BYTE variables.
CoDeSys block
Input ports
Output ports
Example
VAR
byte0 : BYTE;
byte1 : BYTE;
byte2 : BYTE;
byte3 : BYTE;
END_VAR
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
12 3 Bit and Byte Manipulation
This function takes eight BOOLean variables and packs them into one BYTE variable.
CoDeSys block
Input ports
Output ports
This function returns a value of type BYTE, containing the packed input values.
Example
VAR
res : BYTE;
END_VAR
This POU splits a BYTE into its single bits of type BOOL.
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
3.8 cl unpack bits 13
CoDeSys block
Input ports
Output ports
This function returns eight BOOLean variables, bit0 . . . bit7. The output variable bitx is
TRUE if the bit at position x is 1, else it is FALSE.
Example
VAR
bit0 : BOOL;
bit1 : BOOL;
bit2 : BOOL;
END_VAR
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
14 4 Mathematical Functions
4 Mathematical Functions
4.1 cl ceil
This function rounds the input value up to the closest integer value. For both positive and
negative REAL input values the rounding direction is towards the next larger integer value.
CoDeSys block
Input ports
Output ports
This function returns a variable of type DINT containing the rounded value.
Example
VAR
res : DINT;
END_VAR
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
4.2 cl floor 15
4.2 cl floor
This function rounds the input value down to the closest integer value. For both positive
and negative REAL input values the rounding direction is towards the next smaller integer
value.
CoDeSys block
Input ports
Output ports
This function returns a variable of type DINT containing the rounded value.
Example
VAR
res : DINT;
END_VAR
4.3 cl round
This function rounds the input value towards the closest value with n decimals.
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
16 4 Mathematical Functions
CoDeSys block
Input ports
Output ports
This function returns a variable of type REAL containing the input value rounded to the
number of specified decimals.
Example
VAR
res : REAL;
END_VAR
This function applies the sign function to the specified input value of type DINT.
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
4.5 cl sign real 17
CoDeSys block
Input ports
Output ports
This function returns a variable of type DINT. The following value is returned:
Example
VAR
res : DINT;
END_VAR
CoDeSys block
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
18 4 Mathematical Functions
Input ports
Output ports
This function returns a variable of type REAL. The following value is returned:
Example
VAR
res : REAL;
END_VAR
This function implements a dead-zone. The function returns 0 as long as the input value is
within a certain, predefined range, else it returns the input value minus the specified offset
(start for input values ≤ start and end for input values ≥ end).
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
4.6 cl dead zone 19
CoDeSys block
Input ports
Output ports
This function returns a variable of type REAL, which is the input value with applied dead
zone.
Example
VAR
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
20 4 Mathematical Functions
res : REAL;
END_VAR
The basic formula that this function applies to the input signal is:
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
4.8 cl scaling dint 21
CoDeSys block
Input ports
Output ports
This utility function maps a value input from an input range [inmin , inmax ] to a value output
of an output range [outmin , outmax ]. A typical application for this function is the scaling of
a value to percent.
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
22 4 Mathematical Functions
CoDeSys block
Input ports
Output ports
Example
VAR
res : DINT;
END_VAR
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
4.9 cl scaling real 23
This utility function maps a value input from an input range [inmin , inmax ] to a value output
of an output range [outmin , outmax ]. A typical application for this function is the scaling of
a value to percent. It is the same function as cl scaling dint, but operates on REAL
values instead of DINT.
CoDeSys block
Input ports
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
24 4 Mathematical Functions
Output ports
Example
VAR
res : REAL;
END_VAR
This function maps an input signal range [in min . . . in mid . . . in max] to an output signal
range [out min . . . out mid . . . out max]. Furthermore a deadband can be applied around
in mid. A typical use for this function is the scaling of sensor inputs that have three defined
positions, where the middle position represents the “neutral” or “off” state. An example
for this kind of input device is an analog joystick. The following graph shows an example
of the mapping from the input range to the output range with a specified deadband.
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
4.11 cl range check 25
CoDeSys block
Input ports
Output ports
This utility function checks whether an input value is within a predefined range. Unlike the
standard function LIMIT, this function block allows also to specify a debouncing period,
i.e. the value is flagged to be out of range only after violating the specified boundaries for
the time specified in the debouncing parameter.
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
26 4 Mathematical Functions
CoDeSys block
Input ports
Output ports
This function block returns the variable output of BOOL. output is TRUE if a range vio-
lation was detected (after debouncing), else the value is FALSE.
Example
VAR
range_check_fb : cl_range_check;
res : BOOL;
END_VAR
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
4.13 cl crc32 27
CoDeSys block
Input ports
Output ports
This function returns a variable of type BOOL. The return value is TRUE if the element was
found, else FALSE is returned.
4.13 cl crc32
This function implements the calculation of a CRC (Cyclic Redundancy Check) sum. The
CRC polynomial used is a reversed CRC-32-IEEE 802.3, i.e. 16#EDB88320 with a final
XOR operation with the value 16#FFFFFFFF.
CoDeSys block
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
28 4 Mathematical Functions
Input ports
Output ports
This function returns a variable of type DWORD containing the calculated CRC.
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
5 Filters 29
5 Filters
CoDeSys block
Input ports
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
30 5 Filters
Output ports
This utility function implements a very simple filter. It is typically used to reduce noise in
incoming sensor signals. From the signal processing point-of-view this filter is a infinite
impulse response (IIR) filter with a first order feedback, following the following basic
formula:
x[n] + α · y[n − 1]
y[n] =
1+α
where y[n] is the new output, x[n] is the current input and y[n − 1] is the previous output
of this function. It is the same as cl pt1 filter dint, but works with REAL values.
In order to initialize the filter to a certain value, set input to the desired value and set
filter range to 0 for one cycle.
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
5.3 cl mov average dint 10 31
CoDeSys block
Input ports
Output ports
This POU implements a moving average filter over 10 DINT values. It is typically used to
reduce noise in incoming sensor signals.
CoDeSys block
Input ports
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
32 5 Filters
Output ports
This POU implements a moving average filter over 10 REAL values. It is typi-
cally used to reduce noise in incoming sensor signals. This POU is equivalent to
cl mov average dint 10, but works with REAL values.
CoDeSys block
Input ports
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
5.5 cl mov average dint 50 33
Output ports
CoDeSys block
Input ports
Output ports
This POU implements a moving average filter over up to 50 REAL values. It is typ-
ically used to reduce noise in incoming sensor signals. This POU is equivalent to
cl mov average real 50, but works with REAL values.
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
34 5 Filters
CoDeSys block
Input ports
Output ports
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
6 Signal Manipulation 35
6 Signal Manipulation
6.1 cl blink
This function block outputs a configurable square wave signal. Typical use for this func-
tion is the implementation of a blinking light like the turn signals or other devices that
need to be enabled / disabled periodically.
CoDeSys block
Input ports
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
36 6 Signal Manipulation
Output ports
The following diagram shows different examples of this function block, with high time
set to t#1s and low time set to t#0.5s. Different combinations of the hold and
timer continue values are shown.
This function implements a hysteresis for DINT numbers allowing the user to define two
distinct points for enabling and disabling the output value.
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
6.2 cl hysteresis dint 37
CoDeSys block
Input ports
Output ports
This function returns a variable of type BOOL containing the result of the hysteresis func-
tion.
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
38 6 Signal Manipulation
Example
VAR
res : BOOL;
fb_hysteresis : cl_hysteresis_dint;
END_VAR
This function implements a hysteresis for REAL numbers allowing the user to define two
distinct points for enabling and disabling the output value. It is the same function as
cl hysteresis dint, but operates on REAL values instead of DINT.
CoDeSys block
Input ports
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
6.4 cl debounce 39
Output ports
This function returns a variable of type BOOL containing the result of the hysteresis func-
tion.
Example
VAR
res : BOOL;
fb_hysteresis : cl_hysteresis_real;
END_VAR
6.4 cl debounce
This utility function implements a debouncing function. Digital input switches or sensors
very often do not provide a “clean” signal transition between the state open and close and
vice versa. This is due to the fact that a switch contact may “bounce” several times before
coming to its resting position. In order to get a reliable signal, this kind of digital input
signal is typically debounced, i. e. after a state transition is detected the new state is used
only after a certain period of time (the debouncing period) passed.
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
40 6 Signal Manipulation
CoDeSys block
Input ports
Output ports
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
6.5 cl dither 41
6.5 cl dither
This utility function can be used to add a dither to a PWM output signal. Dither is typi-
cally applied to PWM outputs controlling the solenoid of a valve in order to reduce static
friction and therefore increase the responsiveness and minimize the stiction induced hys-
terisis of the valve itself. The function allows to specify the amplitude and frequency of
the dither.
CoDeSys block
Input ports
Output ports
This function returns a value of type UINT containing the duty cycle with the applied
dither.
Example
VAR
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
42 6 Signal Manipulation
fb_dither : cl_dither;
END_VAR
(* limit set duty cycle to min and max -> e.g. 5% - 95% to
detect short circuits etc. *)
The example shown above would generate the following PWM signal assuming that the
PWM output stage is configured with a frequency of 200 Hz.
6.6 cl pid
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
6.6 cl pid 43
max val, trying to minimize the error between the setpoint and feedback value. The fol-
lowing formula is used for the PID:
f w gain p gain d gain i gain
104 ∑
out put = · set point + · error + · ∆(error) + · (error)
103 103 104
Please note that fw gain and p gain are scaled by a factor of 1 000 and d gain as well
as i gain by a factor of 10 000 to improve the resolution on small gains.
CoDeSys block
Input ports
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
44 6 Signal Manipulation
Output ports
Primary output of this function block is the calculated setpoint which should be applied
to the system being controlled. In case of a PWM current control this is the duty cycle for
the PWM output stage.
Example
VAR
pid_control : cl_pid;
END_VAR
pid_control(setpoint := 850, (* in mA *)
feedback := current_feedback, (* in mA *)
output => pwm_duty_cycle); (* 0..65535 *)
The following table shows the effect on the control loop response obtained by increasing
one of the gains.
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
6.7 cl start stop ramp 45
For PIDs used for current control in combination with the PWM outputs with current mea-
surement typical values of the gains for controlling standard valve solenoids are (software
cycle time of 10 ms and PID output in range [0, 65535] are assumed):
The optimal settings depend on several factors including supply voltage, valve type, soft-
ware cycle time, acceptable overshoot and much more and may therefore deviate substan-
tially from the abovementioned gains.
Please note that the PID works over the full DINT range, but no internal over-/underflow
checks are performed by this function block.
With this function two ramps can be specified, which can be used to define the ramp-up
and ramp-down of a signal. Typically this function is used to smoothly switch on and off
actuators (like proportional valves), by limiting the gradient (“steepness”) of the signal
and by predefining the “shape” of the signal. The following graph shows an example
signal, where a start and stop ramp have been applied.
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
46 6 Signal Manipulation
CoDeSys block
Input ports
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
6.7 cl start stop ramp 47
values in descending order that define the output after 0 ms, stop time / 1/5 ms,
stop time / 2/5 ms, stop time / 3/5 ms . . . and stop time ms. The function will
then interpolate the output between the provided values (see the figure below). The
function uses the stop ramp whenever the difference between the new input value
and the previously provided input value is negative.
• stop time of type UINT
Defines the time in [ms] that is needed to go from the value defined in
stop time[0] to the value defined in stop time[5].
Please note that the first value of the start ramp has to be the same as the last value of
the stop ramp (i. e. the minimum value). Same restriction applies to the last value for the
start ramp and first value of the stop ramp (i. e. the maximum value). Typically the first
value for the ramps is 0, but other minimum values can be provided as well in case a
fixed offset is desired. Finally, the values provided in the start ramp need to be monoton-
ically increasing wheras the values provided in the stop ramp need to be monotonically
decreasing.
Output ports
This function block returns the variable output of type UINT containing the signal value
with the applied ramp function.
The following figure shows the definition of a start ramp using the above specified inputs.
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
48 6 Signal Manipulation
Example
The following code shows a simple example with a linear start and stop ramp.
VAR
start_ramp : ARRAY[0..5] OF UINT := 0, 200, 400, 600, 800, 1000;
stop_ramp : ARRAY[0..5] OF UINT := 1000, 800, 600, 400, 200, 0;
fb_ramp : cl_start_stop_ramp;
input_signal : UINT;
output_signal : UINT;
END_VAR
fb_ramp(input := input_signal,
start_ramp := start_ramp,
start_time := t#2500ms,
stop_ramp := stop_ramp,
stop_time := t#1000ms,
output => output_signal);
This utility function toggles its BOOLean output on every rising edge on its input. A
typical use case for this function (in combination with a debouncing block) is the en-
abling / disabling of devices with a push button.
CoDeSys block
Input ports
Output ports
This function returns a value of type BOOL which toggles its value at every rising edge on
the input of the function block.
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
6.9 cl toggle rising edge2 49
Example
VAR
fb_toggle : cl_toggle_rising_edge;
output : BOOL;
END_VAR
This utility function toggles its BOOLean output on every rising edge on its in-
put. A typical use case for this function (in combination with a debouncing
block) is the enabling / disabling of devices with a push button. Only difference to
cl toggle rising edge is the possibility to initialize the output variable.
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
50 6 Signal Manipulation
CoDeSys block
Input ports
In-Out ports
This utility function toggles its BOOLean output on every falling edge on its input. A
typical use case for this function (in combination with a debouncing block) is the en-
abling / disabling of devices with a push button.
CoDeSys block
Input ports
Output ports
This function returns a value of type BOOL which toggles its value at every falling edge on
the input of the function block.
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
6.11 cl toggle falling edge2 51
Example
VAR
fb_toggle : cl_toggle_falling_edge;
output : BOOL;
END_VAR
This utility function toggles its BOOLean output on every falling edge on its in-
put. A typical use case for this function (in combination with a debouncing
block) is the enabling / disabling of devices with a push button. Only difference to
cl toggle rising edge is the possibility to initialize the output variable.
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
52 6 Signal Manipulation
CoDeSys block
Input ports
In-Out ports
CoDeSys block
Input ports
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
6.13 cl characteristic curve 53
Output ports
This function returns a variable of type REAL. The variable is the y-value corresponding
to the input value on the x-axis.
This function implements an optimized and easier-to-use lookup table for the mapping of
input sensors to outputs. A typical example for the use of this function is the mapping of
a linear potentiometric jostick input to a non-linear solenoid output current. The number
of data points is limited to 5 and the accepted data type is DINT.
CoDeSys block
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
54 6 Signal Manipulation
Input ports
Output ports
This function returns a variable of type DINT. The variable is the output value correspond-
ing to the specified input value.
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
7 Safe Casts 55
7 Safe Casts
This class of POUs provide functionality for the downcasting of variables with overflow
and underflow detection. If the value of the input data type is larger / smaller than allowed
by the target data type, the output will be set to the maximum / minimum allowed value
and the detected overflow / underflow will be signaled through a dedicated error output.
Please note that all these POUs are defined as PROGRAM in order to be able to return both
the down-casted output value as well as the error flag.
All POUs follow the following naming scheme:
cl safecast <input datatype> to <output datatype>, e. g.:
The following section shows the exemplary interface description for the POU
cl safecast dint to int.
CoDeSys block
Input ports
Output ports
The POU returns the value casted to the target data type. For this example the target data
type is INT.
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
56 7 Safe Casts
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
8 Other Functions 57
8 Other Functions
8.1 cl version
CoDeSys block
Input ports
None.
Output ports
Copyright 2010 TTControl GmbH. All rights reserved. Document number D-TTCSW-M-20-001
Control Library User Manual
58 9 Icons and Symbols Library
Document number D-TTCSW-M-20-001 Copyright 2010 TTControl GmbH. All rights reserved.
Disclaimer
While every precaution has been taken in the preparation of this document, the publishers
assume no responsibility for any remaining errors or omissions, or for damages resulting
from the use of the information herein.