Zum Hauptinhalt springen

ReadZenonArchiveData@1

Der Node ReadZenonArchiveData@1 fragt Historian-Daten für eine oder mehrere Variablen innerhalb eines benannten Zenon-Archivs über ein relatives Zeitfenster ab, optional mit Raster. Jedes Konfigurationsfeld kann entweder als Literal in YAML gesetzt oder zur Laufzeit über ein optionales JsonPath-Override aus dem DataContext der Pipeline aufgelöst werden.

Adapter-Voraussetzungen​

Node-Konfiguration​

Zu den Feldern path, targetPath, targetValueWriteMode und targetValueKind siehe Überblick.

transformations:
- type: ReadZenonArchiveData@1
archiveName: MASCHINEN # zenon archive identifier or name
variableNames: # list of variable names to query
- MachineOn
- CycleCount
startTimeOffset: "-1h" # relative to now; see below
endTimeOffset: "now" # relative to now; see below
raster: 0 # optional aggregation raster in seconds (0 = raw)
targetPath: $.archiveData
targetValueWriteMode: Overwrite

Relative Zeit-Offsets​

Sowohl startTimeOffset als auch endTimeOffset akzeptieren:

FormatBedeutungBeispiel
nowAktuelle UTC-Zeitnow
-NsN Sekunden ab jetzt-30s
-NmN Minuten ab jetzt-15m
-NhN Stunden ab jetzt-1h
-NdN Tage ab jetzt-7d

Positive Werte werden ebenfalls akzeptiert, sind aber selten sinnvoll (Zeitstempel in der Zukunft liefern keine Daten).

JsonPath-Overrides​

Jedes Konfigurationsfeld besitzt ein optionales *Path-Gegenstück, das den Wert zur Laufzeit aus dem Eingabedokument (ausgewählt über path) liest. Löst der Pfad auf, gewinnt der JsonPath-Wert; andernfalls wird der Literalwert aus der Konfiguration verwendet. So kann ein einzelner Node viele Anfragen mit unterschiedlichen Parametern bedienen.

transformations:
- type: ReadZenonArchiveData@1
path: $.request # input document root for the overrides
archiveNamePath: $.archiveName
variableNamesPath: $.variables # must resolve to a string array
startTimeOffsetPath: $.from
endTimeOffsetPath: $.to
rasterPath: $.raster
# literal fallbacks used when a path is missing or unresolvable:
archiveName: MASCHINEN
variableNames: []
startTimeOffset: "-1h"
endTimeOffset: "now"
raster: 0
targetPath: $.archiveData
targetValueWriteMode: Overwrite

Ausgabeform​

Eine Liste von ArchiveQueryResult-Objekten, eines pro Variable:

[
{
"VariableName": "MachineOn",
"Values": [
{ "Timestamp": "2026-04-17T08:00:00Z", "Value": true, "StatusBits": 0 },
{ "Timestamp": "2026-04-17T08:00:10Z", "Value": false, "StatusBits": 0 }
]
}
]