With the user's approval: item blocking and string length, alarm raise / acknowledge / delay / repeat and INFO event, report generate / print / item trigger / rptstp / SPOOL, class change and reset and attribute change. All results match R1.03 (ISS-028 still holds). Everything was removed again; before/after snapshot identical. ISS-129 and ISS-158 closed. Test package saved in examples/CI-Eng-Sample/shared/write_test; snapshot.ps1 now removes the dss_*.tmp files its own exports leave. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3.8 KiB
task: Change a class that already has objects (compile and reset) version: R1.05 (first written for R1.03) source: IM 36K10L10-01EN 4th ed. (Feb. 2026) §4 (Reset class); IM 36K10P11-01EN 4th ed. §2.3, §10.4; practiced with CI-Eng-Sample class CIENG_TANK 2026-09-30 status: verified on R1.03 (2026-09-30, Engineering Module reset 2026-10-01). Not re-tested on R1.05; it needs the sample loaded again on the shared test server (awaiting decision, ISS-158). Manuals unchanged and CLASS_DF / CLASS_RESET_COMMAND definitions identical on R1.05 (2026-10-09), so the R1.03 results are expected to hold Re-tested on R1.05 2026-10-09 on the shared test server with the user's approval (temporary sample records, everything removed, before/after snapshot identical): compile sets RESET_REQUIRED 1 and the object keeps the old code; dssqld RESET 1 still does nothing (ISS-028); opcdbg Classes action 8 resets (RESET_REQUIRED 0, new PRINT text at once); OBJECT_ATTR_VAL CAPACITY 400 → volume 200 at level 50 (V15). Compile and reset leave opc_t*.asc/.lst/.rst files in %TLS_LST_PATH%; delete them after a test.
Change a class that has objects
Objects keep running the old compiled code until their class is reset (verified). A reset
restarts every object of the class; by the manual, ONCE trigger groups fire again. Items the
objects created were kept, with their values (verified).
1. New source and compile
dssqld -m with the class name, COMPILE 1 and the new METHOD:
@FIELDS
NAME,COMPILE,METHOD
@CLASS_DF
"CIENG_TANK",1,@"
CLASS CIENG_TANK;
…
ENDCLASS CIENG_TANK;
"@
Errors 0 = compiled. On a compile error the old code stays; see load-class-object.md for
reading the error listing.
Export the class (load-class-object.md §2): after the compile RESET_REQUIRED = 1 and
OBJECTS_RESET = 0 of OBJECTS n. Verified: the object still printed the old text.
2. Reset the class
Works — opcdbg, Classes, action 8 Reset class: class name, node (0 = this node), file
for a reset report (empty = none; this prompt is not in the manual):
printf '2\n8\n<CLASS>\n0\n\n-1\n-1\n' | timeout 30 opcdbg 0
(Bash. Interactively, type the same answers.) Keep the time-out: opcdbg repeats its last
prompt forever when the input runs out.
Afterwards RESET_REQUIRED = 0 and the object used the new code at once (verified).
Also works — Engineering Module: Configuration › I/O processing › Classes › right-click the
class › Reset. The Class - reset window shows Reset required / Extended reset required,
options Force extended reset and Abort after first failure, progress (reset n of m, failed)
and a reset report; click Reset (verified by the user 2026-10-01: 1 of 1 object reset,
RESET_REQUIRED 0). This window is the front end of dataset CLASS_RESET_COMMAND.
Does not work (verified 2026-09-30, ISS-028):
dssqld -mwithNAME,RESET="<class>",1(also withRESET_NODE= the host node name): accepted with 0 errors but nothing happens.dssqld -monOBJECT_DFwithRESET1: refused withOPC-E-OBJ_RSTREQ, The class needs to be reset first.CLASS_RESET_COMMAND(system-wide reset, fieldsRESET,GENERATE_REPORT,PROGRESS,OBJECTS_RESET…): the dataset allows only read and update,dssqld -ereturns no record,dssqld -mgives Not found,dssqld -iis refused (DSS-E-NO_AUTH). Verified 2026-10-01.
3. Changing prompts or signals
Only a change in the method bodies was practiced. When the class prolog changes (new
signals, prompts, attributes, created items), check EXTENDED_RESET_REQUIRED in CLASS_DF
after compiling; what an extended reset does was not tested. The safe way is to recreate the
objects (remove, load) — note that removing an object deletes the items it created, with their
history links.