DCS
Documentation

Version Latest

Checks in Problems

The DCS module's checks of open DeltaV exports in Problems: duplicate tags, paths, overrides, sequences, batch, alarm limits and scales, expressions and the site's naming rules.

Verification state: modelled. On the real DeltaV 14.5.1 export, all checks together gave 110 information findings, each checked by hand, and no errors, in 1.3 to 1.6 s. Errors planted in that text were found, and only those. The false positive rate on other databases is unknown, and whether DeltaV rejects what the expression checks report is not known. Not seen in the running Editor; not on Windows.

When exports are checked

Every open .fhx export is checked when it opens and 300 ms after typing stops. Findings appear in Problems at their place, with source "our check". Markers go when the file closes and when the environment stops. Exports that are not open are not checked.

Large exports (2 million characters or more) are checked in a background worker, so the window stays responsive: on the real export, no task of the window took over 50 ms after an edit. If the worker cannot start or does not answer in 10 s, the check runs on the window's thread and this is logged once.

The checks

CheckSeverity
A tag used by more than one moduleError, on each
Two function blocks or two parameters with one name in a moduleError, on each
Text the reader cannot readError, where the reader stopped
A module class or area the export does not define (only in an export that defines classes or areas)Information
In a sequential function chart: a connection to a missing step or transition, a missing initial stepError
A step no connection reaches from the initial stepInformation
In a function block diagram: a wire end the diagram does not haveError
Batch: a class, phase class or process cell named but not definedInformation
A module path naming a module the export does not have (in an export that defines areas; aliases, paths from the module itself, I/O paths and units are left alone)Information
A path whose next part names nothing its module or class hasError
An instance overriding a parameter its class does not declareError
Alarm limits out of order within a block (high-high below high, high below low, low-low above low)Information
A scale or range whose high end is not above its low end; an alarm limit outside the scale of the parameter it watchesInformation
Inside expressions: unbalanced parentheses, an unclosed quoted path or (* comment, IF, WHILE, FOR or REPEAT without its end, or an end without its blockError
A tag or class name that does not match the site's naming ruleInformation

Rules are placed on a value the owner writes, so a class's mistake is reported once, and an instance's AI1$... names are resolved through its class's exposed parameters. Inside expressions, (* *) comments, REM lines, strings and paths are skipped, and IF closes with ENDIF or END_IF. A missing module on a //X/OUT path is not reported, since it may be a device output. Units of connected blocks are not compared: the export does not say which scale a block input is in.

The site's naming rules

SettingMeaning
neuralInverse.dcs.naming.moduleTagA regular expression a whole module tag must match, for example \d{3}[A-Z]{2,4}\d{3}[A-Z]?
neuralInverse.dcs.naming.moduleClassA regular expression a whole module class name must match

Empty means no rule. A rule that is not a valid regular expression is logged in Output > DCS and not applied. Changing a rule checks the open exports again.

Last reviewed 18 October 2026View as Markdown

Checks in Problems · Docs · Neural Inverse