Ignition: Perspective vs. Vision
If you haven’t heard the Corso Systems episode of the Inductive Conversations Podcast or are unfamiliar with the Corso Systems story, we’ve been working with Ignition since before it was even named Ignition. Needless to say, we’ve seen it all when it comes to Ignition. Back in 2018, when Perspective was first released, we built the first Ignition Perspective project put into production on a beta version.
While Vision did have “mobile” capabilities, there were plenty of limitations. Moving beyond the world of the Vision Module into a truly mobile capable environment enabled many new and exciting developments. The Ignition Perspective module enabled features like map-based interfaces, made cloud-based SCADA a feasible tool, and made it easy to implement projects like plant-floor dashboards on Smart TVs.
If you’re interested in learning more about how Corso Systems can convert your Vision windows to Perspective Views, please read our recent post - Ignition: Vision to Perspective Conversions
The question we now hear at every ICC event (and answer on nearly every call with anyone who is interested in Ignition) is “What is going to happen with Vision?”
While we can’t speak on behalf of Inductive Automation, everything they have said so far is along the lines of “Vision is here to stay, and we are still maintaining it on our roadmap.”
Since Vision won’t out of the picture anytime soon, we figured now is a good time to share our take on Vision and Perspective—since we are nearing 5 years into the journey with the Ignition Perspective Module.
What’s (Mostly) the Same?
Both Perspective and Vision allow you to create an interface for interacting with your business and automation systems. They are both a front-end that ties into any of the backend systems in Ignition. You can build database interactions with Named Queries, handle complex business data structures and interaction with scripting, and manage all of your tags, alarms, alerts, and security in one place—and then use Vision or Perspective interchangeably.
For large systems you still have the concept of clients, with each client having their own set of data available (Client Tags in Vision, Session Properties in Perspective). This allows you to build your system in a flexible way where each client can manage particular information or configuration data specific to their needs. One way we have used this for implementing local client fallback on individual pieces of equipment.
Using Perspective and Vision interchangeably assumes you are building a lot of your Ignition functionality outside of the client. The ability to use scripting is the same in both environments, so you have complete flexibility with what you can develop. However, if you have a lot of scripting in the client, say on particular button presses in Vision, you will need to recreate this functionality in Perspective on button presses. Or, you could move scripting out of the client and into the project or gateway ,enabling a more object oriented approach with shared libraries instead of hardcoded scripts.
Another benefit to Ignition’s client/server architecture is how ease it is to integrate new technology like MQTT with Ignition. This is because MQTT data is managed at the gateway level and is accessible to your clients—whether they are Vision or Perspective.
Why Is Perspective Different?
The first major functionality difference Perspective brings to the table is Mobile. Not only can you load a Perspective View in a web browser on any computer, if you pull it up on your phone (and you’ve designed your project with responsive containers) it will scale the view to match your screen. With Ignition Perspective, you can build views for your operators on desktop machines with a detailed P&ID view, while giving operators on the plant floor a streamlined portal into the process built for a smaller screen. Perspective also provides a mobile app with native features like GPS, Bluetooth, Camera Access, and Accelerometers accessible in your projects. This is very useful for Geofencing applications, and using your phone’s camera as a barcode scanner.
The next major difference between Perspective and Vision is built-in support for Themes. We had some tricks up our sleeve for doing this in Vision using Client tags, but it was never a fully supported solution. With Perspective, you can use the power of the web with CSS files to define themes for your projects. With Perspective and Themes, you can implement light/dark mode, color-blind correction modes, and general branding across different projects. Using CSS, it is easy to control and define fonts, colors, and line weights to meet the architecture and branding guidelines you have set for your project.
Perspective enables the use of Message Handlers to greatly improve interactions between components on views. Message handlers enable powerful scripting capabilities while simplifying the overall development workflow across multiple users. In Perspective, Message Handlers also allow you to set up a component to “listen” for a message handler called from elsewhere in the project and execute a script when it is called. This simplifies the overall workflow by defining the code for a message handler in one location and calling it from anywhere. So, if you are performing similar actions based on multiple buttons on a screen with a different value—used to look something up or change a tag value—you can define the message handler on the root container in a view. Then add one line of code on each button to call the message handler with the correct parameter, instead of using copy-paste versions of the code on each button. Should you need to update the script, you now only need to change it in one location instead of on every button.
The other major difference is that Perspective runs most of its cycles on the server, then sends views over to the clients much like loading any webpage on the internet. For a large scale deployment, you will need a greater capacity server than for a similarly sized Vision project. While this isn’t a dealbreaker, it is something to consider when specifying your overall hardware requirements.
Perspective also brings a slight paradigm shift to the development workflow. It is built on a React workflow and is very web-centric. So, there can be some additional complexity involved, and functionality you might encounter in Vision (like buttons to toggle a tag value) can require a little more effort to configure in Perspective. The benefit of this approach is that you can usually open a Perspective session on any machine with a web browser. This makes easily obtained equipment like smart TVs perfectly viable solutions for viewing data when and where you want it.
Why Is Vision Different?
Vision has had over a decade of use in manufacturing facilities, so most of its kinks are worked out. Since it has been around for so long, there isn’t a big need for new features in a SCADA environment since just about all of the common use cases are already accounted for.
Vision has a very What You See Is What You Get development style. You set up the size of a window and put components on the window. You don’t need to worry about screen sizes for mobile devices. If your client session is larger or smaller than the windows you have open, it will scale to fit the session. This doesn’t mean you are limited in what you can build, instead it means you can get up and running quickly with what you commonly do in a SCADA application such as view tag values, click buttons, manage alarms, and look at historical data trends. If you want to go deeper than that with database interactions, reports, dashboards, and larger scale business system integrations you can easily make the leap, although you can avoid the complexity if you wish.
This makes it very easy to build complex P&ID style screens Vision because you don’t need to worry about how the screen will scale depending on the device’s screen dimensions. Since this is a common use case for SCADA systems, Vision is a great choice when you want to see a more traditional style layout.
Vision primarily uses resources on the client machine making it very easy to build a highly performant system at a large scale.
Ignition gives you the tools to do just about anything you could imagine in Vision. You can interact directly with the Java backend running Vision to do impressive animations, build any component imaginable, or even break into existing components and change them as needed for your use case. Vision is a powerful tool and has been battle tested over the years in just about every industry.
Why Not Both?
Given the similarities and differences between Vision and Perspective, the most common implementation strategy is to use both modules. Use Vision for plant floor integrations where you will have the largest number of clients—and likely the most complex screens. Then, use Perspective for analytics and dashboard style screens. This works well because there can be usability issues when clicking buttons on a mobile device—a real problem in a fast-paced scenario when you need to manage an out of bounds condition. Managing multiple screens can also be cumbersome for the user on a mobile device. This is alleviated by giving them just the information they need, when they need it, while leaving the complexity of operating the system to an operator in a control room.
Using both in parallel can also help spread out the resource burden across a large number of clients. The most complex clients will run Vision, while the simpler use cases (especially screens requiring no user interaction) can be developed in Perspective—giving users dashboards anywhere in the facility. This gives your team the information they need without taxing your servers with running dozens or hundreds of Perspective sessions to control the entire facility.
Using Perspective and Vision concurrently is also a great way to decide where Perspective can fill any gaps in your SCADA system. If you already have a Vision system, it is easy to add Perspective sessions into the mix and build them out over time. You can build what you need to start with and avoid the cost of a full migration before you know the full scope of the issues. As you observe how Perspective can solve problems, then you can build new functionality or migrate existing functionality to meet your team’s demands.
Wrapping Up
As far as we are aware, Vision is here to stay. And Perspective is only getting better. If you have any Vision screens now, there is no reason to scrap them in favor of Perspective. Instead, you can simply add Perspective to your license and start using it today. If you don’t have Ignition now, you can consider the overall performance of your system and decide where Vision makes sense and where you can use Perspective as your system grows.
Vision will help you get started fast—and grow as you better understand what is possible with Ignition. Perspective will give you powerful tools on any device. And while you can build 1:1 replicas of anything in Vision in Perspective, you will want to consider the usability of mobile devices for your team.
It isn’t a question of “Vision or Perspective?” It is a question of “how do we use Vision and Perspective together to meet our needs, solve our problems, and get us to where we want to go?”
Start Solving Your Most Difficult SCADA Challenges!
Schedule a short, no-obligations intro call with Cody Johnson in sales ASAP
Or Contact Us with your project details.