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.