UDT instance is no longer able to run and expression on another UDT instance in the same tag folder?

#1

In 7.9.2 I had a UDT instance that contained Long Integer Modbus registers that contained packed alarm bits in them for things like digital input alarm bits. In another UDT instance I would run an expression to break out individual bits for alarming purposes. I did this by using parameters of the UDT in the expression that provided the UDT with the path to the packed bit UDT, register within it and the bit number I was interested in retrieving from that register. This worked fine until i upgraded the project to V8.0.5. Any idea why this would have stopped functioning?
The expression is shown below. It used the “Path_To_DI_Alarm_Bits” parameter which contained the full path the the tag folder, the UDT name and register within the folder. The second part “({DI_Number}-1)” is another parameter of the UDT to specify which bit I wanted.
getBit({Path_To_DI_Alarm_Bits},({DI_Number}-1))

Clint

0 Likes

#2

Hi @clintag

Have you noticed any errors in the gateway?
And are you able to send us a tag export?

Thanks!

0 Likes

#3

I had not checked the Gateway logs. The error in the diagnostics in 8.0.5 on the expression is “[null, Error_ExpressionEval(“Error trying to coerce ‘null’ to a number.”), Mon Nov 04 08:01:11 CST 2019 (1572876071060)]” I do not get this error in 7.9.7 (in my original post, I mistakenly said the working project is 7.9.2).

I have attached the UDT Data Types and Instances being used in the projects for 7.9.7 and 8.0.5

AI_UDT_DataType_7-9-7.xml (8.0 KB)
AI_UDT_DataType_8-0-5.xml (15.1 KB)
UDT_tag_Instances_7-9-7.xml (3.4 KB)
UDT_tag_Instances_8-0-5.xml (4.8 KB)

0 Likes