Hello,
IDE: Automation Studio 6.7.0.187, mapp View 6.7.0
Every time I open my project, the Output Results window fills with ~840 errors like:
A binding with target brease.St25ManualsContent.Manual_MomentaryPushButton17.style already exists!XML syntax error. The object cannot be loaded.
A binding with target brease.St25ManualsContent.Manual_MomentaryPushButton17.value already exists!XML syntax error. The object cannot be loaded.
...
As soon as I rebuild the configuration, the build completes with 0 errors and 0 warnings, and the errors are gone — until the next time I open the project, when all of them come back.
Project structure
The machine has 3 HMI clients that must be able to operate manual functions independently. Following the usual multi-client pattern, I have:
- One set of shared contents/pages (e.g.
St25ManualsContentwith momentary push buttons). - Three visualizations (
vis_1,vis_2,vis_service), one per physical client. - Three binding set variants per content (
St25ManualsContent,St25ManualsContent_Hmi2,St25ManualsContent_Hmi3), each binding the same widget targets to a different PV index, e.g.:
<!-- Bindings/Hmi1/St25/St25ManualsContent.binding (BindingsSet id="St25ManualsContent") -->
<Binding mode="twoWay">
<Source xsi:type="opcUa" refId="::AsGlobalPV:PanelCom.HMI[1].HandFunctions.Button[17].cmd" attribute="value" />
<Target xsi:type="brease" contentRefId="St25ManualsContent" widgetRefId="Manual_MomentaryPushButton17" attribute="value" />
</Binding>
<!-- Bindings/Hmi2/St25/St25ManualsContent_Hmi2.binding (BindingsSet id="St25ManualsContent_Hmi2") -->
<Binding mode="twoWay">
<Source xsi:type="opcUa" refId="::AsGlobalPV:PanelCom.HMI[2].HandFunctions.Button[17].cmd" attribute="value" />
<Target xsi:type="brease" contentRefId="St25ManualsContent" widgetRefId="Manual_MomentaryPushButton17" attribute="value" />
</Binding>
Each .vis file references exactly one of the three binding sets:
<!-- vis_1.vis --> <BindingsSet refId="St25ManualsContent" />
<!-- vis_2.vis --> <BindingsSet refId="St25ManualsContent_Hmi2" />
<!-- vis_service.vis --> <BindingsSet refId="St25ManualsContent_Hmi3" />
So within any single visualization every binding target is unique — which is exactly why the build is clean.
What I found
- Each of my three binding set folders contains 841 bindings; the targets (content + widget + attribute) are identical across the three variants by design. The number of errors at project open matches almost exactly the number of targets that exist in more than one binding set (~840).
- The compiler validates bindings per visualization → no errors at build time.
- The check at project open apparently loads all binding sets of the configuration into one global registry (design-time cache in
Temp\Objects\<Config>\<PLC>\.mappView\), so every target that exists in more than one binding set variant is flagged as a duplicate — even though the sets are never active in the same visualization. - Deleting the Temp folder only helps for a single open; after the next build the cache is regenerated and the errors return on the following open.
Questions
- Is this a known issue in AS 6.x? It looks like the project-open validation ignores the visualization scoping that the compiler correctly applies.
- Is there a way to suppress or correctly scope this design-time check, so the Output window is not flooded with false positives at every project open? With ~840 spurious errors it is easy to miss a real one.
- Is there a recommended project structure for multi-client HMIs (same contents, per-client PVs) that avoids duplicate binding targets across binding sets? I’m aware of the session-variable /
clientInfo.slotIdlist-binding approach, but for a machine with fixed clients the per-visualization binding sets are much simpler to maintain — and they do build cleanly.
Thanks in advance!