Hi,
Please see below issue with nested UDT and OPC Item pathing.
UDT Instance has bindings to a direct modbus register, which works perfectly fine on the root UDT instances, where all parameters are defined as integer types.
[PLC_M340]HRS{AddressOffsetDescription+BaseAddress+(DeviceNum*BlockLength-BlockLength)}:16
# Parameter values
AddressOffsetDescription = 0
BaseAddress = 10000
DeviceNum = 1
BlockLength = 22
# Results in the following OPC Item Path
[PLC_M340]HRS10000:16
# Which has a 16 character string at this address
Now, the issue is when this UDT is nested, and the same parameters provided, the OPC path has .0 added to it.
[PLC_M340]HRS{AddressOffsetDescription+BaseAddress+(DeviceNum*BlockLength-BlockLength)}:16
# Parameter values
AddressOffsetDescription = 0
BaseAddress = 10000
DeviceNum = 1
BlockLength = 22
# Results in the following OPC Item Path
[PLC_M340]HRS10000.0:16
# This OPC tag is incorrect, and invalid
The resulting OPC tag is different, given the same parameters.
I believe this issue is that the calculated number is formatted incorrectly because the solution I have for now is to format the parameter with |#00
[PLC_M340]HRS{AddressOffsetDescription+BaseAddress+(DeviceNum*BlockLength-BlockLength)|#00}:16
# Parameter values
AddressOffsetDescription = 0
BaseAddress = 10000
DeviceNum = 1
BlockLength = 22
# Results in the following OPC Item Path
[PLC_M340]HRS10000:16
# Which has a 16 character string at this address
Version
8.1.19
Thanks,