I'm sure this is an age-old debate on here, but I'm seeking advice for a new project. Before the debate begins:
Yes: I am aware that Perspective is newer, responsive, and more portable.
No: I don't need that.
This projects would consist of two stationary multi-monitor operator stations, perhaps a Windows tablet or two in the future, and possible some remote users (off-prem) connected via VPN.
I'm new to both Perspective and Vision, but I come from the SCADA / DCS world so Vision seems much more natural to me. I know the world is moving towards HTML5 based operator interfaces, but is Perspective 'there yet' in terms of capability, maturity, and stability? Can you do everything in Perspective that can be done in Vision?
I've been plowing through the Inductive University courses on both platforms, and I just can't get a good feel for what a better option is. I know Vision will do the job, it's easy for me to understand, but I can't shake this feeling maybe I'd be leaving something valuable on the table to turn down Perspective.
The interface I am attempting to build is somewhat intense. Something analogous to PlantPAx for AB ControlLogix (faceplates, nested pop-ups, etc.) There would also be a good deal information on each view (P&ID style, schematic representations of equipment) with probably in the 500-1000 tags per view. I just can't imagine trying to make this responsive an usable on a cell phone. Maybe I just lack the design experience of doing responsive web design.
I thought a nice compromise could be to license both platforms, and use Vision as the primary control interface, but Perspective for high level / summary information / report viewing (something similar to Aveva/OSIsoft PI Vision, a web based interface that is feature lack-luster compared to its predecessor, Process Book.) The idea here being that Perspective would be used for more managerial process information, but leave operations to Vision. Thoughts on this approach?
That is my general preference. In particular, if you really need to restrict certain operations on the plant floor to unique machines, only Vision can robustly do so.
Perspective is definitely prettier, and obviously wins when mobile devices are involved.
Perspective will also load your gateway down substantially more than Vision. If you expect more than a dozen or so Perspective clients, consider using two servers. Everything but Perspective on the "OT" server, and Perspective and the Historian on the "IT" server. Use remote tag providers in the "IT" server to pull your realtime data over. If you bog the IT server down, operations will not be affected.
Restricting based on machine / user account is definitely a use case for me.
How about multi-monitor support? Specifically the ability do click something on one screen, and make it interact with another screen. For example, I might want to make all popups use screen 4, or certain pages (like the alarm list) only open on a specific screen?
I've not rly used vision (apart from some minor things in older projects). But i did not really see anything that cant be done in perspective.
You could lock out certain pages to ip address, or only open certain popups on a certain pageId (for multiscreen).
You could install uri on locked pc's to trigger some local things...
But you will need more knowledge about different stuff. some Css knowledge for responsiveness in a big projects is kinda a must. Especcially if you plan on making things for a very big (multi) screen aswell as small phones/tablets.
If you do both you can sell both as separate features though ;p Aswell as being able to first sell the things you know more about (vision) while getting more familiar with ignition in a whole.
Note: There will be biases here as I have a whole lot more experience with Vision than Perspective.
For me, when it comes to making standard HMI screens for the plant floor - so ignoring mobile and responsive designs - Perspective can feel like a…fight…to make those screens as compared to Vision. Most of it comes down to experience, but there are a few pain points where fixes are still in the Perspective development pipeline.
I have no doubt all of these pains will be fixed with time. Vision went through its own growing pains and has many years of development behind it to make it what it is today. Perspective will get there.
This was just a long winded way of saying I agree with Phil on using both, if you have the option. I just figured some additional insight into specific pain points would be helpful.
hey! thanks to my dodgy css injections we now have a stylesheet. Now just gotta wait for a a similar thing to happen for js and it wont be dodgy anymore
But yes it does require more knowledge if you want to go beyond the defaults. for vision you can kinda do this too though with the java classes. something most people also rarely interact with, while its possible.
Apart from that though, I would choose Perspective over Vision hands down, simply due to its creature comforts like binding transforms and CSS styling / Perspective Styles. The latter makes standardising styling so damn nice, especially compared to vision which simply doesn't have a nice way to do this. Perspective can handle multi monitors, I'm not sure about the opening of popups on specific monitors though, but definitely you can choose to open specific pages on specific monitors in the config
Reliable device IDs are not available in Perspective. IP address is a poor substitute, as it doesn't prevent spoofing or malicious device substitution, and tells you nothing about devices behind a NAT router. (Which would commonly be the case if Perspective is in a plant's DMZ in order to permit external access.)
Vision can get all of the device's real MAC addresses, and with some external executables, bios serial numbers and any other local unique identifiers.
And how do you get multiple browser windows onto the different screens? And tell which one is on which physical screen? A single Vision client can run multiple independent screens with tight coordination and reliable physical screen identification. Single gateway connection. Shared traffic for tag subscriptions and any shared data in Vision client tags.
If you have to install something hacked up in the local browser (nothing like that from IA), why can't you simply install a Vision Client Launcher? (From IA, supported by IA, giving you all the missing functionality in one fell swoop.)
Hate to break this to you, but CSS is not intuitive to the vast majority of potential users. Far less so than jython.
Yes ip address should never be used as the only security.
If you design something for a specific setup with multi screen i would except that setup to not change to much so there wouldnt be a real need to know the real phisical location, if they want to swap the popups to the left and the overview to the right, they just open a different link on each screen.
If you need something on a specific local pc, i would expect it to only need to work on a few pc's, so you could 'hack' something there locally. Ofc using vision works too, but if only one feature requires acces to something on a specific computer, while everything else is preffered to be mobile, than this would not require you to get both vision and perspective
No idea what is more intuitive, i've had a web dev education so css/ js come easier to me than java
I do find it also a lot easier to find info on js/css on the internet and it has many examples you can even change to see life results (since the website is made in those langagues)
I definitely was not trying to knock your work in these areas. Frankly, I’m amazed at the things you’ve been able to come up with in CSS and the JS injections. The CSS “magic” is more just my generalization for some of the really complex workarounds that only you or others with web dev experience would be able to figure out. The JS injection just scares me…but it’s necessary for matching some of the Vision functionality, which adds to my Perspective concerns in its current state. I don’t want to train new hires on how to do the JS injection in the first place as I would worry about the consequences of how they may expand the use, opening up potentially huge security holes.
While I do agree, IMO, there is a key difference. For screens with many objects, in order to make a performant and maintainable project in Perspective, you are pretty much forced to use CSS. This is not the case for Java (or even python/jython) in Vision. You can make a large performant and maintainable screen with templated objects and with no Java knowledge. Styling is not as easy to handle as Nick mentioned, but I personally never had too many headaches with it.
From my experience, I don’t see many people with web dev experience trying to get into roles developing control systems for industrial settings. The few web dev people I’ve talked to about Ignition have had zero desire to work within Ignition - granted it’s a small subset but I would guess that is more often the case than not. More likely to find PLC programmers who want to develop HMIs and I feel that control logic more closely aligns with programming languages like python/Java than CSS.
To me, the biggest hurdle with CSS, is that it doesn’t seem to have many guardrails. It’s a double edged sword as it leaves a lot of flexibility open to you but it also means that you can take it down a lot of wrong paths to set yourself up for future headaches. It’s definitely a mental hurdle for me being used to the guardrails imposed by PLC control logic and Python/Java in Vision, but maybe that’s just me.
Anyways, not trying to knock Perspective as we are working to roll it out. Has a LOT of great things. It is just a steep learning curve at the moment as it is still working to achieve parity in some ways with Vision in terms of providing users simple ways of developing screens without having to fully dive into a new programming language. If performance can be improved for screens with many embedded views then a lot of my concerns go away as I feel like then CSS is then more like Java in Vision, less of a necessity and more for those advanced use cases (note that for smaller screens/projects, CSS is less of a necessity so I’m more focused on larger screens/projects with these comments).
Just my opinions and I know they may not be popular opinion, so take it with a grain of salt!
I completely disagree. JS injection is like Java in Vision. CSS is a cornerstone of Perspective, but perhaps because it's overshadowed by Perspective Styles configuration that this isn't made inherently obvious. Perspective Styles create CSS style rules. The Perspective Style editor, however, contains only a subset selection of the full array of available CSS properties though, and it's extremely useful to know some of the more useful CSS properties that aren't included in this, such as gap
Sorry, I wasn’t clear there. More meant that styling in Vision hasn’t been as big of a headache for me as it sounds like it has been for you. That said, we don’t go too crazy with our styling. More just color management.
I also wasn’t very clear here either…I agree with you. I was more saying that CSS becomes less of a necessity if embedded view performance is improved. Same as Java is to Vision in that it is not a necessity to build out screens with many objects.