Ignition & Rockwell PlantPAx v5.0

Every good integrator I know does this internally, but I don't know of any publicly available libraries

We've got a large library of AOI/UDTs; some of them directly mirror PlantPAX functions (CmdSrc, Intlk, Perm, etc.) while most are our own creations, but most are paired with Ignition resources.

2 Likes

Hi @Brian_Stilson,
i've a start of a library with plc code and ignition faceplates.
It's near off be polish like it should but at least some folks use it in project or to start the development of their own library.

It would be nice. As much as we like to pile on FactoryTalk View and Panelviews, I will say that there is very little you can do to screw them up. More traditional HMIs like PVPlus, C-More, Weintek, etc. pretty much operate in a walled garden of sorts whereas anything the software lets you do, it's okay to do it, and you almost never run into performance issues. If you want to accomplish something, there is one well-documented, prescribed way to do it.

The other side of that coin is that the manufacturer had to think of that feature and purposely give you the ability to do it. Ignition (and really, SCADA in general because these issues exist in Aveva, iFix, etc.) is more wide open, and being so script-reliant to expand functionality means there is no possible way IA engineers can imagine every single scenario their software can be used. They're also using a lot of industry standard functionality like python/jython, css, etc. that they don't have 100% control over.

So I can understand why every single possible programming scenario isn't covered in the manual. It can't be. It's the same reason Rockwell doesn't tell you how to program absolutely everything. For every "here's how to do x," there's 1,000 other scenarios that will crop up they didn't cover. Learning how to program is easy. Learning how to program well takes time, and making lots of mistakes.

I have an existing Rockwell PLC program that uses PlantPAx 4.0. I need Ignition to connect to a few tags in each AOI. Would it be best to move the data from the AOI in Logix to either an AOI that I create or individual tags in order for Ignition to efficiently communicate to the PLC?

not an AOI you create, but a UDT.

1 Like

I think it's important to get terminology correct. AOI Parameters can't be grouped into a single read due to the two EnableIn and EnableOut parameters which cannot be set to at least readOnly external access. However, AOI Local tags are perfectly fine to read and can be read efficiently.

UDT type members similarly can also be read efficiently.

I found no significant difference between reading UDT members, members of aliased UDTs, members of UDTs within arrays, or nested UDTs' members.

I noticed a very slight degredation in read speed of AOI Local tags, whether they were UDT types or basic types, but I would consider it negligible.

Reading AOI Parameters have significant impacts to PLC response time. On an L82 it was approximately 10x the response time compared to the other tests.

Note: all of these results were performed where every tag/member/parameter in the structures read was set to at least readOnly external access. Setting just one to None destroyed performance to approximately AOI Parameter read levels, regardless if the item is read by SCADA or not

1 Like

Was doing some digging on PlantPAx 5.0 and this is in the documentation for recommended tag limitations for HMI communications (what they call their data server):

The L8xP were on a different chart, but had the same limitation as the standard L8x processors.
So while the L8x series more than doubles the tag count you can read, in PlantPAx, 50k tags doesn't get you very far.

1 Like

That's only a handful of devices, right? :grin:

1 Like

I guess it does say 50k per second, but I've seen in person other integrators just bring all the tags in for each datatype at the same 1000ms direct rate, then see it perform badly so they bumped it up to 100ms to try to make it faster. When I got involved, I immediately just set their only tag group to a leased 30000ms and 1000ms leased rate and responsiveness of the system went from 7-8 sec update rate to about 1.5 sec update rate. Their system still isn't fully optimized but with the amount of time I was given that one change helped them considerably.

I think a motor block has over 150 parameters and who knows how many local tags.