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>
4.5 KiB
manual: IM 36K10P30-01EN title: Data Set Service Language edition: 4th Edition, Feb. 2026 (R1.05); first written from the 3rd Edition, Sep. 2023 (R1.03). Revision table: contact information only; full text diff: no other change version: R1.05 (first written for R1.03) status: compiler run as a syntax check on a copy of the installed DSS files and on a deliberately broken test file (R1.03, 2026-10-01); syntax check of a copy of the installed R1.05 files on the R1.05 test server (2026-10-08, dictionary untouched); defining new datasets and updating the dictionary from docs only
Data Set Service Language (R1.05)
The DSS language describes datasets; the DSS compiler (dss.exe) checks the descriptions and
builds the data dictionary (%TLS_DAT_PATH%\tlsdic_dss.dic) and C include files. It is a system
integrator's tool: changing the dictionary changes CI Server itself and is only needed for
custom datasets, custom report destinations (IM36K10R40-01EN.md §3.3) or custom data access
servers. Section numbers refer to the manual.
1. DSS files (§2)
- Plain text, one dataset per file recommended, extension
.dss. The installed descriptions are in%TLS_ROOT_PATH%\tls\src\(253.dssfiles on the R1.03 test system, 256 on R1.05, plus.csources of the data access servers and.umhmessage files). Reading them is the best way to learn a dataset's fields, ranges, lists and defaults (dssqld -fshows the same information). - Syntax:
<KEYWORD value>or<KEYWORD <SUB …> …>; keywords case-insensitive; strings in double quotes with""for a quote;/* */and//comments. - Order in a file: includes (
<INCLUDE "dss_global.dss">), constants (<DEFINE_CONSTANT <LABEL …> <VALUE …>>), macros, field templates, storage nodes, then<DATASET <NAME …> <DESCRIPTION …> <FIELD …>… <PHYSICAL_FIELD …>… <INDEX …>… <DATA_FILE …> <DATA_ACCESS <SERVERNAME "dsilib:…">> <OPERATIONS> <STORAGE <NODES …>> …>. - A dataset needs a name (not an SQL keyword, unique), at least one field and one unique index.
- Texts (descriptions, headings, list entries) can carry translations (English, Dutch, German, French).
- Field properties: data type or field template, description, heading, format, transformation,
basic operations, range/step, list (
<ENTRY <NUMERIC n> <STRING "text">>), required, hidden, concealed, default, character restrictions/operations, password-encrypted, "maps upon" (relational field to another dataset), enabled, validate, group. Relational and compound (composed) fields and physical fields have their own sentences; indexes may be unique.
2. Compiler (§3)
Run dss in the folder that holds the .dss files; it compiles all of them.
| Flag | Effect |
|---|---|
| none | Syntax check only (errors on screen) |
-d[<dict>] |
Create/update a dictionary (default tlsdic_dss.dic in %TLS_DAT_PATH%) — host node only; other nodes get the change through DSSWTH |
-i |
Write C include files (.dsh) |
-l[<list>] |
List file (default tlsdic_dss.lst next to the files) |
-q / -w / -b |
Quiet / no warnings / no boundary check |
Installed (verified): a copy of the 253 installed files compiled in 2 s with no errors
(dss -l -w, 251 files plus the two include files) and tlsdic_dss.dic was not touched. A test
file with a missing > gave cieng_test_df.dss (15,2): EOF is not expected, expected 1 end-of-sentence characters ('>') and 1 errors found. The start script uses an undocumented
-u (compile without the DSS shared memory) on the first start.
R1.05 (2026-10-08): a copy of the 256 installed files (254 dataset files plus the include
files dss_global.dss and opcuap_global.dss) compiled with dss -l -w in a scratch folder:
the listing shows only Processing file … lines (no errors), and tlsdic_dss.dic kept its date.
New files since R1.03: alarm_attribute_temp_df, api_keys_df, iec61850_rcb_df,
uaserver_mapper_df, opcuac_method_call2_df (replaces opcuac_method_call_in_df /
_out_df); see IM36K10L50-01EN.md §7. dssxdb has a "beautify DSS
dictionary source" function to find unbalanced < > (IM36K10L50-01EN.md §1.2).
To add a value to an existing list (e.g. a report destination, R40 §3.3): edit the .dss in
tls\src, run dss -d in that folder, restart CI Server. Not practiced (would change the test
system's dictionary).
3. Include files (§4)
The .dsh output holds constants, dataset information, a C record structure and index
information for programs that use the DSS API. Not needed for engineering work.