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:
| Format | Bedeutung | Beispiel |
|---|---|---|
now | Aktuelle UTC-Zeit | now |
-Ns | N Sekunden ab jetzt | -30s |
-Nm | N Minuten ab jetzt | -15m |
-Nh | N Stunden ab jetzt | -1h |
-Nd | N 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 }
]
}
]