Skip to main content

DataTS ingest contract

DataTS does not expose REST. It has no listen port and no /live, /ready, or /health. Supervision can see whether the Windows service is running.

The time-series page, the wait step that judges stability, and the observe step that evaluates objectives and constraints all read the time-series store. They do not connect to a DataTS process.

Current kinds

Only opc and dcct are registered. When point tables are scanned, a process file with Driver.time_interval_us is treated as dcct. Otherwise it is opc. An unregistered kind must not start.

IdTypical sourceInterval key
opcSubscribe to field OPCDriver.time_interval_ms (poll interval)
dcctStreaming points through ZeroMQ or a similar sourceDriver.time_interval_us (sample interval; this key also selects the kind)

During integration, VirtualPlant writes the store itself. Do not start another DataTS process to write the same paths.

Point rows

Each row is one point. The process reads these identity and address keys: group, system, device, tag, address, and datatype. The scripts key must be present. An empty string means no transform.

These switches decide where the point is written:

KeyMeaning
iotdbWrite to IoTDB
streamWrite to the data stream
cacheCache recent values
subscriptionSubscribe to changes

Process keys

Both kinds need Driver.server (the field address from that site’s point table) and the time-skew threshold Driver.max_allowed_timedelta.

OPC uses Driver.time_interval_ms as the poll interval. DCCT uses Driver.time_interval_us as the sample interval, and also needs Driver.cutoff_min_value, Driver.changes_deadband, and Driver.sub_sample_points.

The IoTDB block needs whether writing is on, the batch interval, whether only changes are stored, and whether a write still happens after a quiet interval. The Redis block must still exist when it is off. Turning it off does not block closed-loop reads of the main store.