Open source technologies powered by global tech communities are liberating engineering creativity for industrial automation and IIoT applications worldwide.
By Josh Eastburn, Opto 22
For many, open source software has a certain “Wild West” image associated with it. In contrast to proprietary software, which can be viewed as stodgy, expensive, and confining, open source software seems to let you do whatever you want at little or no cost, providing the ultimate in technological freedom. Both of these viewpoints are gross oversimplifications. Nevertheless, the idea of open source as an unconventional solution persists.
The reality, on the other hand, is that open source is all around us and is currently used in many popular and well-known software applications that are either fully open source or built on open source components.
Open source technologies are also making their way into industrial automation and IIoT applications, not just to replace existing methods like-for-like, but to enable new options for creative engineering. These industrial use cases are in a conservative technical sector, which has long been based on proprietary hardware and software products. For many years, that was really the only option to deliver the necessary real-time deterministic performance and reliability. What does this shift toward open source mean for industry, then, and what design possibilities does it create?
Defining open source
Many industries and creators go to great lengths to protect the work products they create, whether intellectual or tangible. Copyrights, patents, trademarks, custom parts, and encryption technologies might all be employed to provide either legal or physical/electronic protection from reuse or redistribution of a given work without permission.
Open source software, on the other hand, intentionally grants users rights to use, inspect, modify, and distribute that software freely. Typically, the only major restrictions are that attribution be given to the originators and that any derivative works also be freely distributable or open source.
Proprietary software is arguably benefitted by the vendor’s relationship with the market. In theory, they can only gain and maintain paying customers if the product performs well. However, the proprietary model can be expensive for end users because of licensing costs, and the fact that they may be wholly reliant on the vendor to provide related products and services—a concept known as vendor lock-in.
Open source software does not have the same for-profit motive, and is instead guided by the needs of a community of users and developers in a collaborative way, often with oversight by professional organizations. New features and bug fixes may also include contributions from commercial vendors who incorporate these open source libraries into their products. Vendors then take responsibility for post-sales support related to the open source components they use.
Open source in the real world
Most people have encountered open source software, often unawares. Here are just a few examples:
● Android mobile operating system
● Apache web server
● Mozilla Firefox web browser
● Linux operating system
● MySQL and PostgreSQL database management systems
● Eclipse interactive development environment
These technologies power much of the internet, the mobile devices we are familiar with such as smartphones and tablets, and even more far-flung systems like the Large Hadron Collider and the International Space Station.
In addition, there are other open source technologies particularly well-suited to industrial and IoT projects:
● For communications, the ISO-standard message queuing telemetry transport (MQTT) protocol, along with its Sparkplug data payload specification, are open source solutions for efficient communications, commonly used in IoT.
● Node-RED is an open source visual programming tool for defining data connectivity flows and is often used with IoT devices like Raspberry Pi.
● Secure Shell (SSH) is an open source method for operating network services in a secure manner, even over unsecured networks.
As industry and IoT merge, these technologies are appearing in a greater array of industrial products, like smart sensors and edge gateways.
IIoT-specific open source advantages
The exciting part of open source is the new avenues it opens, possible because of the lower barrier to entry, the ease of interoperability, and the broad talent pool of programmers creating these tools.
Familiar industrial applications, such as human-machine interfaces (HMIs) and supervisory control and data acquisition (SCADA) systems, like Ignition by Inductive Automation, have been built on open source code. This allows them to offer a wide array of reliable functionality without needing to build and maintain the codebase themselves.
Open source technologies also allowed for the creation of the latest class of industrial controllers, called edge programmable industrial controllers (EPICs) (Figure 1). EPICs can perform the same tasks as traditional and proprietary programmable logic controllers (PLCs), while offering additional functionality that bridges the gap between IT (information technology) and OT (operational technology) (Figure 2). They also enable users to further customize and expand functionality as needed.
This kind of customization is a major attraction for many industrial original equipment manufacturers (OEMs). OEMs often want to consolidate many forms of functionality within their product, such as incorporating advanced cloud network connectivity, or they may want to adjust it to the particular needs of their users. Rather than assembling many proprietary hardware and software components, OEMs can experiment with, customize, and embed existing open source libraries to give them the same features without incurring the overhead of long-term maintenance.
For end users and system integrators, industrial automation systems have traditionally operated as isolated islands, but incorporating IT-friendly open source elements makes it easier to connect these applications to on-site networks, the internet, and cloud resources, as well as finding engineers able to support these systems. They also benefit from the lower cost of ownership because many of the tools required for interoperability with open source systems are freely distributable. Just like technology vendors, end users and SIs have the flexibility to choose the best tools for their projects, similar to what industry has seen with the proliferation of products based on open industrial communications protocols like Modbus/TCP.
Is open source ready for mission-critical applications?
Some concerns are rightfully raised about the use of open source technology, whether in a consumer setting or a far more critical industrial application. Open source is not invulnerable from a security standpoint, as proven by the Heartbleed security bug affecting OpenSSL in recent years.
Proprietary systems can, of course, also be vulnerable. In the summer of 2019, Armis Security released the URGENT/11 announcement identifying 11 zero-day vulnerabilities in a mature real-time operating system used in networking equipment, medical devices, industrial systems and other devices requiring real-time performance.
The trade-offs between open and closed source in this respect are still open to debate. What the best open source projects do offer is a large community working to ensure the quality and reliability of the software. Careful developers will include only the components necessary for operation, as any extra code potentially creates more targets for attackers.
Industrial open source in action
If open source was simply an alternate way of handling industrial applications, there would be far less reason to move away from traditional proprietary products. However, the extra capabilities and IT-friendly features of open source components makes them a powerful option in many applications (Figure 3). Following are actual examples of how users have created advanced applications for themselves using open source tools:
● Cloud integration:
One user with a fleet of forklifts integrated their battery monitoring sensors via Node-RED and delivered that data to an Azure cloud database for further analysis.
● Advanced sensing:
A commercial developer embedded their own code into an off-the-shelf controller via SSH to integrate a 3D imaging sensor with automated equipment, providing visualization and unmanned operation of material stockpiling and reclaiming systems.
● Custom visualization:
Another user with specific data logging and graphing requirements was able to enhance these functions in their HMI, using Python to read data from their controller and generate a custom trend.
● Cost-efficient logging:
A user streamlined their datalogging by processing I/O signals into their SCADA via Node-RED and a MySQL server, all without requiring additional licenses.
Using available networking systems, one system integrator developed their own peer-to-peer communication solution in the field among remote pump skids through the use of Node-RED and MQTT.
● GPS integration:
Avoiding the use of additional PCs, a user integrated GPS and proximity sensors directly into EPICs running .NET Core to create mobile location and position sensing for a fleet of cargo trucks.
Using traditional methods, these industrial automation and IIoT applications would have been difficult, impractical, or even impossible to achieve. Open source is a key part of the success for each application.
An industrial open source future
Open source software already plays a large role in the everyday lives of anyone who uses PCs, mobile devices, or the internet. Within the enterprise IT world, open source is seen as the future.
Even for specialized industrial automation and IIoT applications, many innovative products are available to not just replace existing options for PLCs, HMIs, and SCADA, but to actively empower end users to create new and previously unachievable solutions.
Given these trends and the evidence of what people can do with open source today, there is a strong reason for end users to expect open source to play a growing role, even in the most critical industrial applications.
Filed Under: IoT • IIoT • internet of things • Industry 4.0