Fun with Ignition, Linux, and Raspberry Pi

Posted on

I have been a real fan of the Ignition SCADA platform for several years. It is modern, inexpensive, and extremely powerful. Another thing that it is is multi-platform. The server will run on Windows or Linux as will the client. The client will run on just about ANY platform, including iOS and Android and straight from the browser – no app needed.

I decided to practice installing the server on the newest operating systems, so I spun up a new VM of Windows Server 2016 Technical Preview 5 and installed Ignition 7.8.2. No sweat.

Then I went on to something I hadn’t done so often – installing on Linux. I know Ignition does not need a server operating system to install from, and I had an Ubuntu 14 ISO on my file server, so I spun up a VM on this operating system, installing the .run file graphically. Again, piece of cake.

Next, I was curious how Ignition would install on a Linux platform with no GUI, so I downloaded Ubuntu 16.05 LTS Server and spun up another VM. Cleverly enough, running the installer.run file for Ignition 7.8.2 presented a text-based installation that was very straightforward and easy to use with an equivalent process to the GUI installer. Well done, Inductive Automation. Connecting to it with a remote client worked just like a GUI installation as expected.

Continuing with the fun, I pulled out an old Raspberry Pi (1st generation) that I had run an Ignition client from before. However, I knew it was very slow. That being said, and knowing that Ignition’s server would install on client operating systems, I wondered if it, too, would allow a server installation. Alas, it would not install giving an error related to the ARM architecture of the processor that wasn’t supported.

I decided to search on the Ignition user forums to see what the latest developments were with using Raspberry Pi’s as clients and maybe even servers, and I learned that there was a Raspberry Pi 3 that was released earlier this year. I knew about the 2nd model with the Windows 10 IoT Core support and all, but the model 3 has built in Wifi and Bluetooth as well as a faster quad core processor. I got one of them ordered to play with. In the meantime, I found a post by one of the Ignition developers talking about an OPC UA server he had created to present the GPIO pins of a Raspberry Pi as OPC tags to clients of Ignition or any other OPC UA client application. I had to try this!

I grabbed his latest zip file from Github and tried running it. It would immediately crash and no one in the forum thread seemed to have this problem. I noticed an Issues tab on the Github site and one person had the same issue with it that I did. I don’t remember what the cause was, but a workaround was to call the service in a different way. After I did that, I had some related to a GPIO pin/tag definition file that wasn’t super straightforward, but I got something that it didn’t error out on eventually and the server was apparently up in this terminal window. I used Ignition to connect to this OPC UA server and it worked! I quickly got my GPIO pin ribbon cable and mini-prototyping board out and cabled up an LED and was able to turn the light on and off by toggling an OPC tag! Success!

I don’t know yet where I would use this in the industrial world, but this last exercise was fun and rewarding nonetheless.