Skip to content

TAG002: undefined-udt-parameter

{Param} in a UDT member names no parameter at all

Code TAG002
Name undefined-udt-parameter
Category Tags and gateway (TAG)
Default severity error
Enabled by default yes
Fix available no
ign-lint equivalent none

Checks the {Name} placeholders of parameter-bound properties ({"bindType": "parameter", "binding": "..."}) of UDT definition members. A name is reported when it is neither a built-in parameter (InstanceName, PathToParentFolder, PathToTag, TagName, ParentInstanceName, RootInstanceName) nor a parameter of any UDT definition or UDT instance of the tag provider. Names are compared case-insensitively.

The check is deliberately provider-wide: Ignition resolves a placeholder through the enclosing instances, so a member of a UDT that is nested in another UDT may use the outer UDT's parameters, and instances may add parameters of their own. A name that nothing in the provider defines can never be substituted. Placeholders that are not plain names (offsets, formats) are not checked, nor are providers whose tags are not in the workspace.

An undefined parameter is not substituted: the OPC item path, tooltip or other property keeps the literal {Name} text, so the member reads from the wrong address or shows the placeholder to operators.

The UDT declares DeviceName:

{"opcItemPath": {"bindType": "parameter", "binding": "ns=1;s=[{Device}]Speed"}}

Use instead:

{"opcItemPath": {"bindType": "parameter", "binding": "ns=1;s=[{DeviceName}]Speed"}}

Generated from the rule metadata by iglint generate-docs; iglint rule TAG002 prints the same page in the terminal. Source: docs/rules/TAG002.md.