TS-DataPro offers the Possibility to generate custom CSV-Files. Once TS-DataPro is active it will add a new row into the CSV-File after each process. The user interface allows the user to configure the appearance and the content of the File freely. Furthermore it is possible to generate more than just one file, if for example a Machine with more than one control channel is present.


The configuration is done in the user interface of TS-DataPro, which you find here:

Service -> Settings-> Data export-> TS-DataPro

To adjust the configuration for a file it is necessary to create a new task first.

After a name for the task was chosen, the new task it is created with a click on "Add new task".

The name of the task is also the name of the CSV-File


The next step is to configure the task, thus the content of the file and also general settings.

The upper area of the user interface contains the general options for this task. The following options can be found there:

Target Path: The directory in which the CSV-Files are put. The path is relative to the "Log" directory on the ToolScope.

In the shown example configuration this will result in the following entire path: ".../Logs/TS-DataPro/Custom CSV 2017-11-06 13.19.10.csv"

Storage interval for new files: Determinates in which interval new files are created

Maximum number of rows: Sets a limit for the file sizes by limiting the number of rows a single file will have. If this number is exceeded, a new file is started.

Add another data source: Add new data source, thus a new column in the CSV-File


In the next step it is necessary to configure the data source and thus the content of this column.


For each column you need to select a data source. The head line of the column can be changed through the "Name of data source" field.

The option "Monitoring window (Index)" defines which monitoring channel is used as data source.

For each column you can select three kinds of data sources:

Parameter: Allows access to certain internal parameters of a monitoring channel. The availability of the parameters depend on the selected monitoring channel ("Monitoring window (Index)").

Data channel:  Direct access to the value of the selected data channel. The value will be read at the moment at which we have the event of the falling trigger in the selected monitoring.

Fixed value: Here you can put a fixed string for a column. Furthermore you can also put special variables here to generate dynamic content. More information on those variables you will find in chapter "Variables".


With the option "hidden" it is possible to hide a column in the CSV-File. This can be useful, if this column is used for an intermediate result, which is not important for the final result.

To delete a data source / column simply press the button .

The buttons and allow you to change the order of the columns.

You can use the button  to assign a new name to the task and thus the CSV-File.


The following parameters can be selected:

Parameter Description Tolerance based monitoring Avarage monitoring Control / AFC
Process length Length of the current process [sec] x x x
Learned process length The length of the last learned process [sec] x x x
Sum of time span for Override-value = 0 The time span in which the Override-value was zero. This can be used to record, when and how long a machine was standing still due to Override = 0.

(not control output value)
x x x
Override-value (Average) Average value of Override-value

(not control output value)
x x x
Override-value (Minimum value) Minimum value of Override-value

(not control output value)
x x x
Override-value (Maximum value) Maximum value of Override-value

(not control output value)
x x x
Alarm Flag that is enabled if we had an alarm in the process (0/1) x x x
Learning Flag that is enabled if this process was learned (0/1) x x x
Rework Flag that is enabled if we had rework in this process  (0/1) x x x
Batch counter Value of the batch counter / piece counter x x x
Batch counter (Maximum value) Maximum value of the batch counter (Alarm limit) x x x
Total tool life time (Tool) [s] The total time the tool was used within processes x x x
Total tool life time (Maximum value) (Tool) [s] Maximum value (Alarm limit) for the total tool life time x x x
Maximum override (Control) The maximum override value that was output by the control / AFC     x
Minimum override (Control) The minimal override value that was output by the control / AFC     x
Saved time (Control) The saved time [sec]     x
Target value (Control) The target value of the control     x
Control variable (Maximum value) The maximum value of the control variable     x
Control variable(Minimum value) The minimum value of the control variable     x
Control variable(Average) Average value of the control variable     x



The following variables can be put used in the field "Fixed Value".

Variable Description
$time$ The current date/time in this format:

The current date and/or time. X specifies the format:

0: yyyy-MM-dd HH:mm:ss.S
1: dd.MM.yyyy
2: dd.MM.yyyy HH:mm:ss
3: HH:mm:ss
4: dd.MM.yyyy HH:mm:ss.S
5: HH:mm:ss.S
6: yyyy-MM-dd
7: yyyy-MM-dd.HH
8: yyyy-MM-dd
unix: Seconds since 1.1.1970 00:00 UTC
unix_ms: Milliseconds since 1.1.1970 00:00 UTC

When you are not using one of the mentioned formatting keys, then it will use the value of X as formating pattern according to the Java documentation.

The formatting behind the keys 1-5 can be changed by the user in the internal settings.

$auto_increment$ Automatic counting value that starts with 1. Will not be reset once a new file is started.
$auto_increment(X)$ Automatic counting value that starts with "X". Will not be reset once a new file is started.
$x1$ - $xn$

Variable which is a reference to data source #1.
$x1$ will be replaced by the value of data source #1.

It is possible to do concatenations
Example: "$x1$ [Nm] / $x3$"
Assumed that data source #1 delivers 5 and data source #3 delivers the text "T: 4711".
Result: "5 [Nm] / T: 4711"

$xr-n$ - $xr+n$

Works in general like "$x1$ - $xn$" but the reference to the other data source is relative. Example:
$xr-5$: Value of the data source with the index: "#current index - 5"
$xr+3$: Value of the data source with the index: "#current index + 3"

$xnNameOfDataSource$ Works in general like "$x1$ - $xn$" but the reference to the other data source is given by the name of the data source. A data source with the name "Tool Counter" is referenced by: $xnTool Counter$

Reference to a function within the driver "SignalProcessingScript". By this it is possible to do complex operations.
DRIVER_ID: The index of the referenced SignalProcessingScript driver
PARAMETER: The arguments that are given to the function (separated by commas).

The function within the SignalProcessingScript driver must look like this:

meta has the following structure:

  • "scall" (Source of the call)
  • Name of the task (Name of the CSV-File)
  • The index of the data source
  • The index of the "script" driver
  • Reference to the internal message-object (not relevant)

args contains the content of "PARAMETER".

The return value of the function "call" will be put in the CSV-File



Calles the function "call" im Script-Driver #1 with the arguments 5 and 7.

$MS( ... )MS$

By this it is possible to do small calculations.

Example percentage calculation:

"$MS($x1$/$x2$ * 100.0)MS$ %"

If we assume that data source #1 delivers "50" and data source #2 delivers "200", then the following value is written into the CSV-File:

"25.000 %"


If the value "Fixed Value" has focus, it is possible to call input help by pressing this button: