The term “human machine interface” originated from the factory floor. In the context of HMI, machine refers not to the computer, but to a machine tool or other instrument the computer was attached to. For decades, if an HMI was needed, it was implemented on a PC or single-board computer running Microsoft Windows. Real-time processing often came from dedicated processors running an RTOS, or microcontrollers running code on bare metal, elsewhere in the system.
Each side wanted what the other had. The PC guys tried to incorporate elements of real-time control, using virtualization techniques to guest an RTOS on Windows. The real-time guys tried to add graphics capability. In some situations, these approaches worked, but the integration was somewhat fragile. This was especially true when integrating graphics on an RTOS. The GPU market on Windows PCs moves so quickly, it was hard to keep from being eaten by obsolescence on a unique chip and driver with limited support.
Speaking of fragile, the evolution of Windows caused problems. In the age of Windows NT, things were pretty good: it integrated with enterprise networks and management tools, it was stable, and developers liked it. Windows 7 was a hot mess of instability, resulting in the Windows Embedded Standard 7 fork to tailor out unneeded pieces. Windows 8 brought issues with a new presentation layer and changes to administration. As a result, many HMI applications tried to stay on Windows NT – until the bitter end, when it was recently end-of-supported. A few went the Windows Embedded Compact route, trying to capture near-real-time needs. Again, some of that worked, but some are still looking for a more modern solution.
This is the post-PC era. A single multicore SoC can now handle what it used to take several boards worth of computers to do. Cores can be dedicated to real-time, or networking, or user interface, or a thread-optimized approach can be used. High performance mobile GPUs can handle most HMI needs. A powerful device can be built around a single SoC.
What operating system should run on a multicore SoC in industrial automation? Linux? Certainly a DIY option, but it doesn’t exactly handle real-time control all by itself. Android? An apps-based strategy might be cool, but again stability and robustness is a question. RTOS? Super for control, but IT guys and OT guys don’t see eye to eye on deployment. And, what is the right graphics approach? How is connectivity handled?
Just as multicore SoCs are heterogeneous, what best fits industrial automation is a heterogeneous OS that blends all these environments into a single framework.
Mentor Embedded has created that industrial automation framework. They have taken all their knowledge about multicore SoC software development and debug, combined it with their knowledge on multicore OS virtualization, added their RTOS and Linux and Android experience, and pulled graphics, safety, and connectivity from the industrial ecosystem. We’ve covered the Mentor Sourcery software development tools recently, but several new pieces in the industrial automation context merit discussion.
First is their selection of Qt. There is no better choice for a cross-platform, open source user interface development framework. Many developers are already familiar with it from mobile apps space. It natively supports OpenGL to run on a mobile GPU, or has a Quick 2D renderer plugin. It has charting and data visualization capability. It has a pre-packaged virtual keyboard, and a library of common controls like gauges, buttons, dials, and other user input and display items.
Image courtesy Mentor Embedded and Digia plc
Qt is a registered trademark of Digia plc and/or its subsidiaries
The next news here is the Nucleus RTOS is now IEC 61508 certified for safety-critical use. Also, Mentor has obtained Wurldtech Achilles Communication Certification, a cybersecurity specification becoming a checklist item for industrial control.
Another interesting area is the top of the stack. Mentor has teamed with Softing to get much of the connectivity, such as Fieldbus, Ethernet/IP, and an OPC UA toolkit. The thing with many industrial automation applications is they enter a brownfield, with legacy protocols already deployed. Having legacy interfaces side by side with modern industrial IoT wired and wireless capability is a big plus.
Finally, there is the enterprise integration aspect. Mentor has worked with Icon Labs on the Floodgate family of solutions. Floodgate Defender provides an embedded firewall with stateful packet inspection, rules- and threshold-based filtering to help secure networks. Icon Labs is also integrating with McAfee ePO, providing policy-based endpoint management.
As Mentor demonstrated at the recent 2015 ARC Industry Forum, this all rolls together nicely:
The combination of a multicore SoC with this Mentor Embedded industrial automation software solution allows small, safe, and highly functional industrial devices to be built. Designers creating SoCs for industrial automation environments should consider this suite of software when evaluating designs, rather than just verifying under Linux. Mentor Embedded has the tools and knowledge to assist designers in constructing their solutions.