Skip to content

validate

Run built-in validation rules against a Vijeo Designer project and report errors, warnings, and passed checks.

Description

The validate command checks a .zdat project file against a set of built-in rules. It catches common issues like orphaned variables, missing alarm text, unreachable panels, and naming convention violations. Use it in CI pipelines or before deployment to catch problems early.

Usage

glyphsix-hmi validate [options] <project.zdat>

Options

FlagDescriptionDefault
--formatOutput format: text, json, yamltext
--rulesComma-separated list of rule IDs to runall
--severityMinimum severity to report: error, warn, infowarn
--strictExit with code 1 on any warning or erroroff
--output, -oWrite output to a filestdout
--providerForce a specific provider pluginauto-detect

Built-in rules

Rule IDDescription
orphaned-variableVariables not referenced by any widget
missing-alarm-textAlarms without message text
naming-conventionVariables not matching [A-Z].* pattern
panel-nav-reachablePanels unreachable from the main screen
duplicate-addressMultiple variables mapped to the same address
unused-panelPanels with no navigation path
widget-overlapOverlapping widgets on the same panel
script-syntaxScript syntax validation
alarm-severityAlarms without assigned severity
variable-type-mismatchWidget/variable type compatibility

Examples

Run all rules:

glyphsix-hmi validate plant-hmi.zdat
Validating: plant-hmi.zdat
Running 10 rules...

 WARN  orphaned-variable     PLC.OldSensor.Value is not used by any widget
 WARN  missing-alarm-text    Alarm #14 has no message text
 ERR   naming-convention     Variable "plc_pump1_status" does not match pattern [A-Z].*
 PASS  panel-nav-reachable   All panels reachable from MainScreen

Results: 1 error, 2 warnings, 7 passed

Strict mode for CI:

glyphsix-hmi validate --strict --format json plant-hmi.zdat
{
  "results": [
    { "rule": "orphaned-variable", "severity": "warn", "message": "PLC.OldSensor.Value is not used by any widget" },
    { "rule": "naming-convention", "severity": "error", "message": "Variable \"plc_pump1_status\" does not match pattern [A-Z].*" }
  ],
  "summary": { "errors": 1, "warnings": 1, "passed": 8 },
  "exit_code": 1
}
glyphsix

Pre-release preview