CSV Writer
Beschreibung
Das "csvwriter" Modul konsumiert Kanaldaten und schreibt diese Daten in Comma Separated Values (CSV) Dateien.
Verwendete Schnittstellen und Protokolle
- KEINE
JSON-Konfiguration
Im folgenden Abschnitt soll die gesamte JSON-Konfiguration des Moduls beschrieben und die einzelnen Parameter erläutert werden.
Beispielkonfiguration (minimal)
{
"module":"CSVWriter",
"factory":"csvwriter",
"config":{
"channels":[
{
"name":"SomeChannelName"
}
]
}
}
Beispielkonfiguration (maximal)
{
"module":"CSVWriter",
"factory":"csvwriter",
"config":{
"fileName": "/sde/<tag>/<date>/<date>_<time>.csv",
"tag":"preview",
"forceFileName": false,
"pollingIntervalMs":1000,
"maxFileDurationMs":900000,
"timeoutMs":15000,
"gridUs":10,
"fieldSep":",",
"structureSep":" ",
"decimalSep":".",
"timeFormat":"<date>T<time>.<us>Z",
"timeHeader":"Date/Time",
"timeDescription":"UTC",
"channels":[
{
"name":"SomeChannelName",
"field":"SomeColumnTitle",
"description":"SomeColumnSubtitle",
"defaultValue":"SomeDefaultValue",
"format":{
"fieldWith":8,
"fillChar":"-",
"base":10,
"format":"g",
"precision":6
}
},
{
"name":"SomeBooleanChannelName",
"field":"SomeColumnTitle",
"description":"SomeColumnSubtitle",
"defaultValue":"SomeDefaultValue",
"format":{
"falseValue":"FALSE",
"trueValue":"TRUE"
}
}
]
}
}
Beispielkonfiguration (getriggerte Aufzeichnung)
{
"module":"CSVWriter",
"factory":"csvwriter",
"config":{
<KONFIGURATION>
"triggerChannel":"someBooleanTriggerChannel",
"triggerLeadTimeMs":30000,
"triggerFollowUpTimeMs":30000,
"triggerSeparateEvents":false,
"channels":[
<SPEZIFIKATION AUFZUZEICHNENDER KANÄLE>
]
}
}
Globale Modulparameter
Parametername | Erforderlich | Datentyp | sinnvoller Wertebereich | Default | Beschreibung |
---|---|---|---|---|---|
fileName | Nein | STRING | siehe unten | "/sde/"TAG"/"DATE"/"DATE"_"TIME".csv" | Dateiname bzw. Struktur des Dateinamens (siehe unten) |
forceFileName | Nein | BOOL | false, true | false | erzwinge konstanten spezifizierten Dateinamen |
tag | Nein | STRING | "preview" | Tag-Bezeichnung | |
pollingIntervalMs | Nein | INT | 1 - | 1000 | Polling Interval [ms] |
maxFileDurationMs | Nein | INT | 1 - | 900000 (15 min) | Maximale zeitliche Länge der Datei [ms] |
timeoutMs | Nein | INT | 1 - | 15000 (15 s) | Timeout, nach dem spätestens neue Zeile (unter Verwendung spezifizierter Default-Werte) in die CSV-Datei geschrieben wird [ms] |
triggerChannel | Nein | STRING | Name eines Booleschen Triggerkanals | ||
triggerLeadTimeMs | Nein | INT | 0 - | 15000 (15 s) | Trigger-Vorlaufzeit |
triggerFollowUpTimeMs | Nein | INT | 0 - | 15000 (15 s) | Trigger-Nachlaufzeit |
triggerSeparateEvents | Nein | BOOL | false, true | false | Abschließen der aktuellen Datei und Öffnen einer neuen Datei bei überlappenden Trigger-Ereignissen |
gridMs | Nein | INT | 1 - | 1000 (1 s) | Abtastungsgitterbreite [ms] (*) |
gridUs | Nein | INT | 1 - | 1000000 (1 s) | Abtastungsgitterbreite [us] (*) |
gridNs | Nein | INT | 1 - | 1000000000 (1 s) | Abtastungsgitterbreite [ns] (*) |
fieldSep | Nein | STRING | "," | Spaltenseparator-String | |
structureSep | Nein | STRING | " " | Strukturseparator-String | |
decimalSep | Nein | STRING | "." | Dezimalseparator-String | |
timeFormat | Nein | STRING | siehe unten | "<date>T<time>.<ms>Z " | Datums- und Uhrzeitsspezifikation |
timeHeader | Nein | STRING | "" | Datums- und Uhrzeitsüberschrift | |
timeDescription | Nein | STRING | "" | Datums- und Uhrzeitsunterüberschrift | |
channels | JA | siehe unten | Spezifikation aufzuzeichnender Kanäle |
(*) wahlweise
Spezifikation des Dateinamens 'fileName'
Der Dateiname wird hierbei über eine Pfadangabe spezifiziert, z.B.
/sde/<tag>/<date>/<date>_<time>.csv
Mögliche Variablen sind:
<year>
(z.B. 2022)<month>
(z.B. 01)<day>
(z.B. 01)<hour>
(z.B. 01, 23)<minute>
(z.B. 01)<second>
(z.B. 01)<msecond>
(z.B. 001)<date>
:= "<year><month><day>
"<time>
:= "<hour><minute><second>
"<tag>
(siehe Parameter 'tag')
Konfiguration aufzuzeichnender Kanäle 'channels'
Anders, als etwa im OSF Writer Modul, wo standardmäßig sämtliche Kanäle aufgezeichnet werden, muss im CSV Writer eine Auswahl von Kanälen spezifiziert werden. Dies erfolgt über eine Liste von JSON Objekten, die wie folgt zu parametrisieren sind
Parametername | Erforderlich | Datentyp | sinnvoller Wertebereich | Default | Beschreibung |
---|---|---|---|---|---|
name | JA | STRING | Name des smartCORE Kanals | ||
field | Nein | STRING | Name des smartCORE Kanals | Spaltenüberschrift des Kanals | |
description | Nein | STRING | "" | Spaltenunterüberschrift des Kanals | |
defaultValue | Nein | STRING | "" | Default-Wert, der im Falle eines Timeouts, falls keine Kanaldaten vorliegen in die Zelle des Kanalwerts geschrieben werden soll | |
format | Nein | siehe unten | Spezifikation bzgl. derer die Formatierung des Kanalwerts erfolgt |
Konfiguration der Formatierung von Kanalwerten 'format'
Werte Boolescher Kanäle können wie folgt formatiert werden
Parametername | Erforderlich | Datentyp | sinnvoller Wertebereich | Default | Beschreibung |
---|---|---|---|---|---|
trueValue | JA | STRING | Wert, der für den Fall von wahr in die Zelle des Kanalwerts geschrieben wird | ||
falseValue | JA | STRING | Wert, der für den Fall von unwahr in die Zelle des Kanalwerts geschrieben wird |
Alle anderen Werte können wie folgt formatiert werden
Parametername | Erforderlich | Datentyp | sinnvoller Wertebereich | Default | Beschreibung |
---|---|---|---|---|---|
fieldWidth | Nein | INT | Spaltenbreite | ||
fillChar | Nein | CHAR | Füllzeichen | ||
base | Nein | INT | 2, 8, 10, 16 | 10 | Basis der Zahlendarstellung |
format | Nein | CHAR | "e", "f", "g" | "g" | Notation der Zahlendarstellung ("e" => wissenschaftliche N., "f" => normale Darstellung, "g" => wahlweise normale oder wissenschaftliche N.) |
precision | Nein | INT | 0 - | Präzision (Anzahl der Nachkommastellen) |
Modul-Informationen
Information | Wert |
---|---|
Autoren | optiMEAS Measurement and Automation Systems GmbH |
seit smartCORE | 2.8 |
Modultyp | Consumer |
Abhängigkeiten | KEINE |