Cannot read some tags inside Rockwell AOI

I am trying to see tags inside an AOI.
I went back to basics and dragged and dropped the tags from the OPC browser into the Tags Folder, but the quality is bad and there is a red x next to them.
What is more confusing is that some are working and some are not. I cannot see any similarities between the few that aren’t working. Data type, In and Out types are working and not working.
I can create a new UDT as an In/Out but this seems cumbersome. In this case, I would need to create tags only for HMI display.

Tags are set to default, readin at 1 second intervals.

PLC is an L84ES.

Ignition running on localhost and currently plugged in to PLC bench testing.

Are the tags in the AOI all set external read/write?

What Mike said, but also:

Don’t. All AOI’s have EnableIn and EnableOut booleans that are locked to “Hidden” and therefore prevent most optimization of the data traffic to read instances of these data types. Do very much of this and your Logix driver will choke.

I strongly recommend that any AOI you design yourself use one or more InOut parameters of another data type, with instances of those datatypes elsewhere. Place all of your externally visible/writable stuff in the InOut parameter datatypes. If you absolutely have to access a non-optimizable datatype (built-in FBD instructions, perhaps), create a mimic datatype with all-visible members and use CPS to copy over every scan. Do any writes to such with system.opc.write*() so there won’t be any subscription to the non-optimizable data.

5 Likes

Wow. Is this really the case? We’ve used custom and builtin AOI’s quite heavily on many systems. It makes development on both the PLC and HMI side much faster. Has this always been the case or is it something more recent? I haven’t really noticed any issues with older 7.9 systems, but 8.0 possibly is slower to read stuff?

We have several templates going to AOI’s and I had them working pretty well on 8.0.14, but was suggested by tech support to update to 8.0.16 and now they run super slow. Think it is mostly because of the tag() function within expressions tho? This seems to be a bug in 8.0.16 Vision. How much of that could be due to AOI’s?

AOIs being inefficient isn’t a matter of 7.9 vs 8.0, it’s firmware v21+ (…and 20.15+), when Rockwell deprecated the direct memory access and introduced the new services for reading tags. If you’re using the legacy driver accessing AOIs is fast, if you’re not it’s subject to the limitations @pturmel mentioned.

Any slowness you’re seeing in Vision templates between 8.0.x versions is unrelated to the driver and unrelated to your use of AOIs, though Phil will surely jump on the chance to talk about how you should never use the tag() function and always use indirect properties :wink:

1 Like

Well, less necessary since you mention it. (:

This would be an appropriate search to find my rants on the topic:

https://forum.inductiveautomation.com/search?q=%40pturmel%20%22tag()%22%20order%3Alatest

Thanks for the feedback. All good to know.