First time user architecture (RPI + Ignition)

Hi Everyone,

First time poster, and I'm a mid career professional in IT/OT. I'm starting to better understand ignition, and hear so many great things, so I'm trying to wedge it into a project at work.

I work in a small factory, and our COO has a directive to get some IoT projects going (we have temp+humidity chambers to start).

I initially put together a project plan to develop a simple GUI + monitoring program using python + tkinter (GUI), and while that can be done in a week, I feel like Ignition is a great building block that will pay dividends immediately in standard coding + templates, and scalability long term.

So I've put together an architecture to use Ignition and you can find it here.

Assuming it's passable - I have some follow up questions:

  • To interface with RPI GPIO - I will write a python script to start an OPC UA server, and then update local tags (sensor threshold, start/stop etc.) based on update from main ignition server GUI. Is my understanding correct?
  • A VLAN will manage traffic so all packets for IoT will be appropriately tagged
  • At a high level - RPI collects data, transmits to Ignition, and ignition broadcasts 2 HMIs to 2 separate URLs (1 HMI for 1 application, and 1 HMI aggregating data across 2 other RPI)
  • Assuming my RPI had HDMI out, could I also use it for a local GUI (same ignition GUI being broadcast from server?)

Thank you all in advance!

Yes, to all, with one observation and one caveat:

First, Ignition doesn't "broadcast" to HMIs. It serves to clients what information the clients choose to display, using display definitions that it also served to the clients.

Second, RPis have specific feature limitations due to their ARM processors, and the lack of JavaFX for the platform. So the Designer won't run on them, Vision clients need special startup scripts, and cannot use the embedded web browser component, and Perspective Workstation is incompatible. Perspective clients in a browser may be the best choice for the RPi.

1 Like

Thank you - great insight, I really appreciate it.

Few more questions:

  • Could I use an OPC Client on the RPI instead of a server?
  • Where can i better understand the distinction between serving and "broadcasting"..So the ignition edge devices choose which tags to view, along with the HMI. Is the HMI provided by the server, or does the edge host the HMI itself?
  • Is the main approach in the architecture to serve web friendly (perspective) HMIs across a network of URLs, based on a shared pool of tags?
    I'm open to reading any additional content to help improve my understanding. Thank you
  1. Technically, yes. Practically, no.
  • Ignition can expose its tags to OPC clients, but securing that is problematic.
  • You could use a simulator device in Ignition, and let both Ignition and the OPC client interact through its nodes, but any other OPC devices the Ignition server is polling will also be exposed.
  1. An Ignition gateway is a web server.
  • Clients request data from it and send data to it with a variety of API calls.
  • Perspective clients request user-designed web pages that carry the javascript to make the UI dynamic (via more API calls). Perspective upgrades the HTTP connection to a websocket for performance.
  • Vision clients request user-designed java Swing UI resources via API that drive that client's dynamic requests. (Vision clients run in a truly local Java Swing application that contains very little hard-coded visuals.) Vision clients poll for changes to data values that the UI elements have subscribed to.
  • Ignition gateways communicate with each other over a "Gateway Area Network" using web API calls.
  1. The main approach is a shared pool of tags distributed on request via authenticated web API calls.

You should go through the initial sections of Inductive University where the overall architecture is presented. And/or browse the User Manual.

1 Like

Thank you Phil, I really appreciate your clarifications and answers. I've got more reading to do! Appreciate you