Full manual diffs (C50, R30, C60, L20, C40, L35, R10, R20, J10, L30, L50, P30, G10, C10) and read-only checks on the shared R1.05 test server where the permission system allowed them. Skills and summaries moved to R1.05. Issues ISS-092..129 (gaps 104-107, 114-115, 130-131 unused); ISS-074 closed (manual and software agree), ISS-091 corrected by ISS-119. version-differences: unlisted manual changes and installed-only changes. r105-verification: V5-V9 and new not-tested rows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
11 KiB
manual: IM 36K10L50-01EN
title: Data Set Service Engineering
edition: 5th Edition, Feb. 2026 (R1.05); first written from the 3rd Edition, Sep. 2023 (R1.03). Changed since: R1.04 App. 1 (OPC UA client method dataset renamed to OPCUAC_METHOD_CALL2_DF); full text diff: otherwise only §3.9 -c wording, same meaning
version: R1.05 (first written for R1.03)
status: R1.03 (2026-10-01): process layout, dss.sup, dssqld directives (macro, include, memo from file), dssutl read and the dataset notes checked on the test system; dssana.sup tabs from docs (covered by skill authorization); dsschk see IM36K10J10 notes. R1.05 (2026-10-08, read-only on the test server): processes, database_start.cmd, dss.sup, dssqld.sup, dssqld help text, dataset definitions and dsschk -e -v re-checked; macro/include/memo loads and dssutl not re-run
Data Set Service Engineering (R1.05)
DSS (Data Set Services) is the layer through which every CI Server tool and user interface reads
and changes configuration and run-time data: items, alarms, classes, users, history, reports …
all appear as datasets (tables of records with fields). dssqld, the Engineering Module,
REPORT Service, ODBC and the Java/PROCESS APIs are all DSS clients. Section numbers refer to the
manual; "installed" means checked on the R1.03.00 test system.
1. Building blocks (§1)
| Part | Process / file | Job |
|---|---|---|
| API | linked into every client | Opens datasets, talks to the core over the BUS Service (DUR/MDUR) |
| Manager | DSSMAN (one per node) |
Hands each client a DSSSDA/DSSEVT instance (the one it already uses, else the least loaded) and cleans up when clients or servers disappear |
| Data access | DSSSDA (several, -n <name>) |
Executes read / insert / update / delete through the mapping layer |
| Events | DSSEVT (several, -n <name>) |
Event channels (change notifications, flow control) to clients |
| Locks | DSSLCK (-c clears all locks) |
Record locks on the dataset's primary node; frees locks of vanished processes/nodes |
| Watch | DSSWTH |
Creates the DSS shared memory and the authorization/user files, copies dictionary changes from the host node to other nodes, cleans up after crashed clients, moves memo "file containers" |
| Mapping layer | PML + data access servers (dsilib:dsid_das_*) |
Maps a dataset onto ISAM files or another service (ITEM, HISTORY, ALARM …) |
| Data dictionary | %TLS_DAT_PATH%\tlsdic_dss.dic |
Description of every dataset and field; built by the DSS compiler (IM36K10P30-01EN.md) on the host node only |
| Tools | dssqld, dssutl, dsschk, dssxdb |
Quick load/export, interactive read/modify, consistency check/repair, debugger (service use) |
DSS processes start with DATABASE Service (tls\com\database_start.cmd). Installed: besides
DSSWTH, DSSANA, DSSANC, DSSADB, DSSLCK, DSSMAN and the dsschk -s server, the script
starts DSSSDA00–03 (count from %TLS_MAX_SDA_ID%, default 3), DSSSDAOPC00–03,
DSSSDAPRC, DSSSDAOPX (and DSSSDAEEM on an enterprise engineering server) and DSSEVT00–03,
DSSEVTOPC, DSSEVTPRC, DSSEVTFTE — 10 dsssda.exe and 7 dssevt.exe on the test system,
more than the manual's "about 5 per node" advice. On the very first start (database.new) the
script compiles all tls\src\*.dss into the dictionary (dss -d -q -u).
R1.05 (installed, 2026-10-08), not in the manual: 12 dsssda.exe and 7 dssevt.exe. The
script starts DSSSDA00–03 as fixed lines (%TLS_MAX_SDA_ID% no longer read) plus two new
dedicated servers: DSSSDARST for the RESTful API server (JRSTSRV) and DSSSDAPY for pyTOOLS
(PYDSS*). After an upgrade (database.new) it runs the R1.04/R1.05 dataset conversion
programs (*_u0104, *_u0105, e.g. opcuac_method_u0104, dss_ath_grp_u0104,
iec61850_rcb_u0105) and keeps database.new when one fails so the conversion is retried at
the next start. It ends by calling ?*_database_start.cmd extension scripts.
2. Tuning — dss.sup (§2.2)
Heartbeats and DUR queue sizes per process (DSSEVT_HBEAT, DSSSDA_QUESZ …), PML dataset cache
time (DATASET_CACHE_TIME, 600 s), client event slots (EVENT_Q_SLOTS, 100), flow-control
interval (FLOWC). DSSSDA_SRV = <node|-1>, "<client>", "<DSSSDA name>" ties clients to a
dedicated DSSSDA (start that instance in the start script first).
Installed dss.sup: DSSEVT_QUESZ = 1000, DSSSDA_QUESZ = 252, FLOWC = 120; DSSSDA_SRV
routes OPCEXE1–4, OPCACT, OPCJACT, OPCLOA, ALNMGR to DSSSDAOPC00–03, OPX* to
DSSSDAOPX, PRC* to DSSSDAPRC, everything else (*) to DSSSDA00–03; DSSEVT_SRV lines do
the same for events. Further undocumented keywords: EXCL_ACC_EXCEPTION_PROCESS,
CLOG_EXCEPTION_PROCESS, CLOG_EXCEPTION_DATASET (a long list of run-time datasets).
R1.05 dss.sup: DSSSDA_QUESZ = 1000 (was 252), new DSSMAN_QUESZ = 1000, and
DSSSDA_SRV lines for JRSTSRV → DSSSDARST and PYDSS* → DSSSDAPY; rest unchanged.
3. Authentication — dssana.sup (§2.3)
DSSANA keeps the list of logged-in users and decides who may start which user interface from
where. The Setup File Editor tabs: General (logout retain time 1440 min, max logged-in /
logged-out users, max 5 UIs per remote client, password hashing Maximal), User Interfaces
(each UI, e.g. JWUIGED = Edit Module, with the hosts/logins allowed and the authorization
action needed), Clients System Trust (host/IP list, Always or Deny, top-down, <remote> /
<local> last), Login control (per client and UI: Automatic, Manual CI Server, Manual
OS, No, SSO, Deny; profile for No login; failed-login delay 5 s), Active Directory
and Single Sign On (phase 13), Password rules (length, digits, punctuation, mixed case;
all off by default), Logging (Basic/Extended/Maxima into tls\log\dssana.log, cyclic,
10 MB). Practical use: skill authorization (users-groups.md, login methods).
4. Quick load files and dssqld (§3)
File format (.qli): ! comment lines; marker lines starting with @ (@<DATASET>, @MACRO,
@INCLUDE, @LANGUAGE, @SELECT, @FIELDS); data lines with comma-separated fields; \ at the
end of a line continues it. Unquoted text is upper-cased, quoted text kept; "" inside a string
is a quote. Escape character, separator and continuation character can be changed in
dssqld.sup.
| Directive | Use | Verified |
|---|---|---|
@FIELDS |
Field list for the next dataset block only; missing fields get defaults (dssqld -f) |
yes (all phases) |
@SELECT |
Filter for the next dataset on export only, in single quotes, strings in double quotes | yes (ISS-003) |
@MACRO |
<name>,<text…>; later occurrences of the name are replaced (nesting ≤ 10); must come before the data |
yes: field list as macro |
@INCLUDE |
One file name per line (.qli default), nesting ≤ 10 |
yes |
@LANGUAGE |
ENGLISH makes a file load on any language version |
yes (all sample files) |
Field types: string, number, date/time (exported as "dd-mm-yyyy hh:mm:ss", the form to load),
interval ("10 Minutes", "1 Days", "1 Weeks"), memo (@""@ empty, @" … "@ inline
text, or @"<file>"@ text from a file).
Installed — memo from a file: the file name is read on the server side, so a relative name
fails (CRL-E-ENOENT); an absolute path works but is limited to 82 characters
(DSSG-E-STRBUFSMAL). Inline memos are the safer choice (ISS-046).
Options: -i insert, -m modify, -r remove, -e <out> [<qli>] export (all datasets except the
NO-EXPORT list in dssqld.sup, or what the qli names), -c CSV, -a concealed fields, -d
one dataset, -f dictionary report, -l listing, -s setup file. Exports may need reordering
before re-import (circular references: stations ↔ items, first-out groups, classes).
%TLS_DAT_PATH%\dss_export.qli is a ready-made export list (identical on R1.05; it does not
cover the IEC 61850, MQTT, OPC UA client method/tag, UASERVER_MAPPER_DF or API_KEYS_DF
datasets). R1.05 dssqld.sup adds NO-EXPORT=API_KEYS_DF; dssqld -h text is identical to
R1.03. Exporting OBJECT_DF on R1.05 leaves about one 0-byte dss_*.tmp per object in
tls\lst (not removed by CI Server). Task files: skill system-management
(export-dataset.md, load-remove-records.md).
5. dssutl (§4)
Interactive menu tool to read and modify single records via the primary index: choose a dataset
(numbered list), a field set (Primary index only, All fields or a saved selection of ≤ 20
fields), then Read equal, Read sequential or Modify (change fields, Perform update).
Installed: works with piped answers; values are shown raw (dates as seconds since 1970 in
local time, intervals as <count>.<unit>, e.g. 10.1 = 10 minutes, 1.3 = 1 day; memos as their
file path). Modifying data on a running system affects running applications — prefer dssqld -m.
Task: skill system-management, dss-tools.md.
6. Consistency (dsschk, §5)
dsschk -s (server, started per node) and the client dsschk [-d <set>] [-n <node>] [-e] [-r] [-v] (extended test, repair, verbose). See IM36K10J10-01EN.md and task
consistency-check.md.
7. Dataset notes (Appendix 1)
Special behaviour per dataset (only the ones not covered elsewhere): ALARM_ASA_DF compiles when
COMPILE is set; ALARM_CURRENT only ACK can change; ARCHIVE_COMMAND drives the archive
engine (initialise/mount/register tape, manual archive, retrieve, cancel; phase 9 notes);
AUDIT_EVENT_CLAS_DF only STORAGE changes; AUTH_ACTION_DF, DATASET_*, HOST_NODE_DF,
LOCAL_NODE_DF read-only; CLASS_DF COMPILE/RESET; DISPLAY_DF / SYMBOL_DF names only,
insert copies a template, REBUILD; FOLDER_DF deletable only when empty; HIS_GROUP_DF only
item groups can be added, FORCE_ROLLOVER; HIS_UNITS deleting a record deletes the unit;
ITEM_HISTORY always needs ITEM_NAME, inserts only into Direct groups, no events; ITEM_VAL
value/status/quality (BLOCKED_UPDATE for blocked items, status must be written too over ODBC);
OBJECT_DF prompts via ATTR_VALUE_n, DEBUG; OPC_SERVER_DF / OPC_STATION_TAG_DF read with
mandatory filter; PRINTER_* devices/destinations (written by the printer manager for _OVV
and _TYPE); REPORT_DF / REPORT_VAL see IM36K10C30-01EN.md; SEQUENCE_DF COMPILE;
STATION_DF REDUN_LINE.
R1.04/R1.05 datasets (manual App. 1 and the installed tls\src, 2026-10-08): the OPC UA client
method dataset is now OPCUAC_METHOD_CALL2_DF (App. 1, R1.04; replaces
OPCUAC_METHOD_CALL_IN_DF and OPCUAC_METHOD_CALL_OUT_DF, both gone). New definitions not in
App. 1: API_KEYS_DF (API keys per user), UASERVER_MAPPER_DF (OPC UA Information Model Mapper
project), IEC61850_RCB_DF (IEC 61850 report control blocks), ALARM_ATTRIBUTE_TEMP_DF (alarm
attributes; purpose not documented). Changed definitions include ITEM_VAL (new fields
ENG_UNIT, SCALE_HIGH_LIMIT, SCALE_LOW_LIMIT), AUTH_GROUP_DF (ACTION_NAME_1…250
instead of …200), the IEC 104 / IEC 61850 datasets, several OPC UA client/PubSub
datasets, EXTERNAL_ALARM_DF, AUDIT_TRAIL and dss_global.dss (OPC UA node ID type
OPAQUE, parameter-type template for methods). Practical use: skills data-access and
equipment.