I have a perspective application using tabbed containers. This application is working with a ControlLogix PLC Add On Instruction (AOI). Ideally the PLC would control the View (screen) the application is on, at the very least the PLC needs to know which View the application is on. Is there a way to accomplish this?
And what happens if there is more than one client active or a client and Designer?
The screen would change on all clients.
So me changing the view on my Perspective session would change the view on yours? This seems dodgy.
What's the real design problem you're trying to solve? Why does the PLC need to know which view I'm looking at?
Rockwell offers standard AOI's for many of their devices. These AOI's come with standard HMI (PanelView) templates. I can put the template on multiple HMI's so they can all monitor the same device (AOI). I'm trying to duplicate this functionality in Ignition, to get an Ignition application that will work with these AOI's. Is this doable?
With the Rockwell setup the HMI will request a screen change but the actual screen change takes place in the PLC . The AOI controls the screen the HMI displays and the AOI executes specific code depending on the screen that is being displayed.
Yes you can achieve this in Ignition. No I would not recommend it as Rockwell do it as a hack to get around shortcomings in their platforms. You could just subscribe to the AOI tags instead and make a nice multi-user faceplate instead.
With a giant asterisk, a lot of AOIs crush Ignition's driver performance and changes have to be made PLC side to avoid issues.
Just write a value to a PLC tag and then in Ignition set your view based on that.
ex:
compressorView = 1 show regular faceplate
compressorView = 2 show commissioning faceplate
compressorView = 3 show out of service
Or if it’s already in the AOI read that tag into your view and then set your display enable based upon that.
Yeah, Rockwell does some very hacky things like this to only execute certain code in the PLC when a certain tab is open on the faceplate in some things I’ve seen. The sad thing is it only works well if there’s a single client using that faceplate at a time. It doesn’t scale…at all. They really need to rewrite any AOI that does this to not be so tightly coupled to the HMI, but that’s also why I don’t use any of their AOIs unless I absolutely need to.
Most of the time that this is done (screen control via plc) is with standalone machine hmis (usually by OEM's) . If that's what you've got, then ehh although I can guess what operator opinions are though if they've got a trend view open with a specific set of pens displayed, and their screen just changes and they lose their trend. I'd be pretty annoyed
That description by Rockwell is for a instance of their faceplate on a single panelview, not multiple panelviews. It’s essentially processing logic to display different tabs of info on a single faceplate. I wouldn’t do this at all. Build your own faceplate with Ignition side UDT and indirect bindings. Massage the AOI to process all the data you want to see on the faceplate. And as others have mentioned, do not access the AOI tag structure directly with the Ignition AB driver.
Better yet, if the customer allows it, write your own AOIs that do exactly what you need without the bloat. Yes it takes time but you can make sure they're optimized for efficient communication and work with multiple users and not just one at a time.