Ignition & Rockwell PlantPAx v5.0

I think I am getting tripped up on terminology:

  • Members of an AOI: these are the Parameters and Local Tags configured on the Add-On-Instruction itself, which results in the creation of a Data Type -> Add-On-Defined type. This type of datatype IS NOT optimized by the native IA driver and will be read/written as individual components. @pturmel's 3rd party driver can read this entire structure, but External Access must be set to at least "Read." "None" (which is the default value) will not work.

Follow up question: When use Automation Professionals driver, I believe this inherently means that all members of the AOI are read regardless of whether you want them to or not. This might be very suitable for smaller AOIs, but be problematic with with a PlantPAx instruction like P_PIDE that has >350 members and has a size >3650 bytes.

  • Local UDT instance members in an AOI that are externally readable: These would be variables that are UDTs that are listed as members of the AOI. The native IAI driver will read something like Sensor1.Status where Sensor1 is the instance of the AOI, and Status is a UDT of basic/atomic types that is a Usage Local and External Access "Read" or "Read/Write."

*Follow up question(s): This approach allows you to control which parameters via alias of an AOI are communicated to Ignition. Can you make several of these UDTs for each AOI that have different scan/polling characteristics. For example: .Status and .Command as a Direct Tags at 1s intervals, .Config as a Leased Tag where the default rate is some very long interval, but leased rate is 1s? Does the native IAI driver honor these tag groups? Does Automation Professional's 3rd party driver honor these tag groups? What happens if you nest these UDTs into a single UDT called "HMI" consisting of UDT Status, UDT Command, and UDT Config? Is these even possible with either driver and do Tag Groups still function? What happens if you make these UDTs into In/Out parameters such that you might pack/unpack them into arrays of UDTs to optimize comms as Phil has suggested?