Here is my tag:
Here is the UDT:
Notice the OPC Item Path uses a binding that involves parameters in the tag.
{
"parameters": {
"SensorLocation": {
"dataType": "String",
"value": "A01.2 Reach-In Frozen"
}
},
"name": "CleanModeSts",
"tagType": "UdtInstance",
"tags": [
{
"name": "Value",
"tagType": "AtomicTag"
},
{
"name": "ValueOverrideTimerSP",
"tagType": "AtomicTag"
},
{
"name": "HighestAlarmPri",
"tagType": "AtomicTag"
},
{
"name": "ValueOverrideMode",
"tagType": "AtomicTag"
}
]
}
Here is the json, it makes sense since there are no overrides, the opcItemPath doesn't exist. However when I try and script an opcItemPath change like this:
path = '[014Edge]Beaverton/Refrigeration/Rack1/A01/Case02/CleanModeSts'
system.tag.writeBlocking(path+'.opcItemPath','Test')
print(system.tag.readBlocking(path+'.opcItemPath')[0].value)
The console read's back
[Good]
Test
and when I copy the tag JSON I get:
{
"opcItemPath": "Test",
"parameters": {
"SensorLocation": {
"dataType": "String",
"value": "A01.1 Reach-In Frozen"
}
},
"name": "CleanModeSts",
"tagType": "UdtInstance",
"tags": [
{
"name": "HighestAlarmPri",
"tagType": "AtomicTag"
},
{
"name": "ValueOverrideTimerSP",
"tagType": "AtomicTag"
},
{
"name": "Value",
"tagType": "AtomicTag"
},
{
"name": "ValueOverrideMode",
"tagType": "AtomicTag"
}
]
}
Which looks great. HOWEVER... when I open the tag editor it looks like this:
And it appears to take priority over the binding rather than the overwritten opcItemPath 'Test' (Which should give an error configuration)

The tag server is on 8.1.21, so to me it would seem like a bug. Not sure if this is fixed on newer versions.
But any clarity onto why this might be the case and the overwrite isn't actually setting would be greatly appreciated.