Saltar al contenido principal

CSV Writer

Descripción​

El módulo "csvwriter" consume datos de canal y los escribe en archivos de valores separados por comas (Comma Separated Values, CSV).

Interfaces y protocolos utilizados​

  • NINGUNO

Configuración JSON​

En la siguiente sección se describe la configuración JSON completa del módulo y se explican los distintos parámetros.

Configuración de ejemplo (mínima)​

{
"module":"CSVWriter",
"factory":"csvwriter",
"config":{
"channels":[
{
"name":"SomeChannelName"
}
]
}
}

Configuración de ejemplo (máxima)​

{
"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"
}
}
]
}
}

Configuración de ejemplo (registro por disparo)​

{
"module":"CSVWriter",
"factory":"csvwriter",
"config":{

<KONFIGURATION>

"triggerChannel":"someBooleanTriggerChannel",
"triggerLeadTimeMs":30000,
"triggerFollowUpTimeMs":30000,
"triggerSeparateEvents":false,

"channels":[

<SPEZIFIKATION AUFZUZEICHNENDER KANÄLE>

]
}
}

Parámetros globales del módulo​

Nombre del parámetroObligatorioTipo de datosRango de valores recomendadoValor predeterminadoDescripción
fileNameNoSTRINGvéase más abajo"/sde/"TAG"/"DATE"/"DATE"_"TIME".csv"Nombre del archivo o estructura del nombre del archivo (véase más abajo)
forceFileNameNoBOOLfalse, truefalseFuerza un nombre de archivo constante especificado
tagNoSTRING"preview"Denominación de la etiqueta (tag)
pollingIntervalMsNoINT1 -1000Intervalo de sondeo (polling) [ms]
maxFileDurationMsNoINT1 -900000 (15 min)Duración temporal máxima del archivo [ms]
timeoutMsNoINT1 -15000 (15 s)Tiempo de espera (timeout) tras el cual, como máximo, se escribe una nueva línea (con los valores predeterminados especificados) en el archivo CSV [ms]
triggerChannelNoSTRINGNombre de un canal de disparo booleano
triggerLeadTimeMsNoINT0 -15000 (15 s)Tiempo previo al disparo
triggerFollowUpTimeMsNoINT0 -15000 (15 s)Tiempo posterior al disparo
triggerSeparateEventsNoBOOLfalse, truefalseCierra el archivo actual y abre uno nuevo cuando los eventos de disparo se solapan
gridMsNoINT1 -1000 (1 s)Anchura de la rejilla de muestreo [ms] (*)
gridUsNoINT1 -1000000 (1 s)Anchura de la rejilla de muestreo [us] (*)
gridNsNoINT1 -1000000000 (1 s)Anchura de la rejilla de muestreo [ns] (*)
fieldSepNoSTRING","Cadena separadora de columnas
structureSepNoSTRING" "Cadena separadora de estructuras
decimalSepNoSTRING"."Cadena separadora decimal
timeFormatNoSTRINGvéase más abajo"<date>T<time>.<ms>Z"Especificación de fecha y hora
timeHeaderNoSTRING""Encabezado de fecha y hora
timeDescriptionNoSTRING""Subencabezado de fecha y hora
channelsSÍvéase más abajoEspecificación de los canales que se van a registrar

(*) alternativamente

Especificación del nombre de archivo 'fileName'​

El nombre del archivo se especifica mediante una ruta, p. ej.

/sde/<tag>/<date>/<date>_<time>.csv

Las variables posibles son:

  • <year> (p. ej. 2022)
  • <month> (p. ej. 01)
  • <day> (p. ej. 01)
  • <hour> (p. ej. 01, 23)
  • <minute> (p. ej. 01)
  • <second> (p. ej. 01)
  • <msecond> (p. ej. 001)
  • <date> := "<year><month><day>"
  • <time> := "<hour><minute><second>"
  • <tag> (véase el parámetro 'tag')

Configuración de los canales que se van a registrar 'channels'​

A diferencia, por ejemplo, del módulo OSF Writer, donde por defecto se registran todos los canales, en el CSV Writer debe especificarse una selección de canales. Esto se hace mediante una lista de objetos JSON que deben parametrizarse como sigue

Nombre del parámetroObligatorioTipo de datosRango de valores recomendadoValor predeterminadoDescripción
nameSÍSTRINGNombre del canal de smartCORE
fieldNoSTRINGNombre del canal de smartCOREEncabezado de columna del canal
descriptionNoSTRING""Subencabezado de columna del canal
defaultValueNoSTRING""Valor predeterminado que debe escribirse en la celda del valor del canal en caso de timeout, si no hay datos del canal
formatNovéase más abajoEspecificación con la que se formatea el valor del canal

Configuración del formato de los valores de canal 'format'​

Los valores de los canales booleanos pueden formatearse como sigue

Nombre del parámetroObligatorioTipo de datosRango de valores recomendadoValor predeterminadoDescripción
trueValueSÍSTRINGValor que se escribe en la celda del valor del canal en caso de verdadero
falseValueSÍSTRINGValor que se escribe en la celda del valor del canal en caso de falso

Todos los demás valores pueden formatearse como sigue

Nombre del parámetroObligatorioTipo de datosRango de valores recomendadoValor predeterminadoDescripción
fieldWidthNoINTAnchura de columna
fillCharNoCHARCarácter de relleno
baseNoINT2, 8, 10, 1610Base de la representación numérica
formatNoCHAR"e", "f", "g""g"Notación de la representación numérica ("e" => notación científica, "f" => representación normal, "g" => alternativamente notación normal o científica)
precisionNoINT0 -Precisión (número de decimales)

Información del módulo​

InformaciónValor
AutoresoptiMEAS GmbH
desde smartCORE2.8
Tipo de móduloConsumer
DependenciasNINGUNA