ClearSCADA embedded symbols can accept one base object FullName parameter and resolve individual OPC properties with indirect tags. This reduces parameter maintenance and supports runtime object substitution, but it also hides references from design-time tools and adds runtime data-resolution work in ViewX.
How the indirect-tag pattern works
Instead of defining a separate embedded-mimic parameter for every required property, define a parameter that contains the base object's full name. Build the required OPC property path inside square brackets:
["Parameter:Group.Value.FullName" + '.CurrentValueFormatted']
The expression inside the brackets must evaluate to the full name of an OPC property. ViewX cannot determine the final reference until runtime because the parameter value may change. A relative expression such as ("..Tags.Position.FullName") can supply the base full name when the surrounding hierarchy supports that path.
Choose direct parameters or indirect tags
| Decision factor | Direct property parameters | Base FullName plus indirect tags |
|---|---|---|
| Parameter setup | Define every required property. | Define the base reference, then append property names in expressions. |
| Future property additions | Add parameters and repair affected mappings. | Add another indirect expression if the target exposes the property. |
| Runtime object switching | Switch every passed property independently. | Switch the base FullName once. |
| Reference visibility | References remain available to design-time analysis. |
Display References cannot identify the final runtime target. |
| Runtime work | ViewX can resolve fixed references earlier. | ViewX must evaluate the path and then fetch the referenced OPC property. |
Use indirect tags when reduced configuration or runtime substitution outweighs traceability and latency concerns. Keep direct parameters where reference auditing, predictable display loading, or property-specific animation at the embedding level is more important.
Configure the embedded symbol
- Create an embedded-mimic parameter that receives the base database object's
FullName. - Pass the required object's full name into that parameter. If the object is available through the local hierarchy, validate the relative
FullNameexpression before using it in an indirect tag. - Append the required OPC property name and enclose the completed string expression in square brackets. For a formatted current value, use
["Parameter:Group.Value.FullName" + '.CurrentValueFormatted']. - For conditional object selection, change the base full name passed to the symbol rather than duplicating the condition for every property.
- If the embedded-mimic sharing option is enabled, review whether
Shared with other Embedded Mimicsis necessary. The evidence identifies frequent input changes combined with sharing as a performance risk.
Do not assume that every point type or driver exposes the same OPC properties. Locate the target in the OPC database and confirm that the required property, such as .CurrentValueFormatted, exists.
Troubleshoot expression and parameter errors
An Unexpected symbol popup after adding square brackets does not by itself prove that the indirect-tag syntax is invalid. In the documented case, existing parameter defaults conflicted with the new expressions; removing those defaults restored editing. Treat that as a case-specific cause and inspect defaults before rebuilding the symbol.
Spaces introduce a separate ambiguity. The available evidence shows parameter and object names containing spaces working in animations, while ClearSCADA warns that a spaced parameter name must be accessed through the GetParameter function in script. Therefore, test animation access and script access separately; do not infer that successful drag-and-drop parameter assignment guarantees later script compatibility.
If a property resolves for one point but not another, inspect both points in the OPC Data Explorer. A missing property can require separate symbols for different point types or protocols rather than a revised indirect expression.
Verify function and performance
- Open the mimic and confirm that each indirect expression resolves to the intended runtime value.
- Change the supplied base
FullNameand verify that all dependent properties switch to the new object together. - Confirm each appended property in the OPC Data Explorer for every supported object type.
- Run
Display Referenceswith the understanding that indirect targets will not appear; maintain another design record if reference traceability is required. - Measure page-opening latency, network activity, and update behavior under the intended change rate and embedded-mimic sharing configuration.
A test with 50 embedded symbols reported no noticeable lag, but that observation is not a capacity limit or performance guarantee. Indirect tags add runtime evaluation, data fetches, subscription activity, and network traffic; validate the actual display, server, and update workload before standardizing the pattern.
FAQ
What value goes in a ClearSCADA FullName symbol parameter?
Pass the full database name of the base object whose OPC property the expression must read. The indirect expression then appends a property such as .CurrentValueFormatted.
Why does ClearSCADA show Unexpected symbol for an indirect tag?
Check existing parameter defaults before removing the square brackets. In the documented case, deleting incompatible defaults allowed the bracketed expressions to be edited again.
Do ClearSCADA indirect tags affect ViewX performance?
They add runtime path evaluation, property fetching, subscription activity, and display latency. A 50-symbol test showed no noticeable lag, but verify the intended update rate and the Shared with other Embedded Mimics setting on the actual system.