Running IoT Apps on Industrial PCs
IoT platforms control their devices with the use of agent software that runs on each IPC. and can remotely install apps from the IoT app store.
IoT platforms control their devices with the use of agent software that runs on each IPC. and can remotely install apps from the IoT app store.
IoT apps on industrial PCs (IPC) are taking over in industrial automation scenarios. IPCs are universal computing devices that consist of traditional PCs in a rugged housing with all kinds of interfaces. This common architecture allows the introduction of the vast software ecosystem (apps) that exists in the world of desktop and cloud computing into industrial application scenarios. These universal capabilities are what make the use of IPCs in industrial applications so attractive. Industrial PCs in IoT solutions are a fundamental building block and enable all kinds of advanced functionality for automation equipment.
Typical applications of industrial PCs at the edge are:
IPCs can be used to run all kinds of applications and are very similar in this aspect to mobile phones. And just like mobile phones use an app store to install apps on a device, most IoT platforms come with some kind of app store as well. IoT platforms control their devices with the use of agent software that runs on each IPC. This agent can remotely install apps from the IoT app store and monitor the applications on industrial PCs.
If the application on the industrial PC is a native Windows or Linux app, a display has to be connected to the IPC in order to use the software. Since IPCs are designed to operate without display, this is a painful process if you have many IPCs throughout your automation lines. Luckily, many software packages come with a web interface that allows access to the functionality with a laptop and a browser on the local network.
But there are some fundamental differences between a mobile app store and an IoT app store.
One important difference is that you must have multi-user access to an IPC. Phones are only used by one person. As discussed below, different worker profiles need to be able to install, update, configure, and start apps on an IPC.
Another difference between mobile app stores and IoT app stores is the way apps are used on either device. While mobile apps dominantly are used in direct interaction with a user, the apps on IPCs usually run unattended.
A third aspect is the kind of apps that are used:
In the mobile environment, there are mostly pre-made apps like Twitter, Instagram, or Google Maps. These provide the functionalities commonly desired by large groups of users.
However, users in industrial IoT environments usually are companies that require solutions that are very specific to the company’s own context of operation. So in industrial IoT environments, the desired functionality differs a lot from one user to another. These IoT solutions are also mostly embedded into an existing landscape of custom equipment from different vendors and of different age (brownfield scenarios). So most industrial IoT solutions require the creation of custom application logic.
At the same time, there is a class of apps whose main purpose is to provide an interface to the attached equipment. Often the apps need to be close to the equipment machinery to benefit from low latency and high bandwidth communication. In fact, many machine vendors have pre-integrated IPCs in their machinery to ease access for their users.
This class of apps needs no customisation and are is suitable for distribution over an IoT app store. Examples include:
If machine vendors manage their software distribution through app stores, they automatically benefit from over-the-air update mechanisms, release management functionalities, and even from the usage metering and automated billing that app stores can provide.
IPCs are operated and maintained by the same personnel that also takes care of the PLCs. This is because IPCs are usually operated side by side with PLCs. During integration projects, automation engineers are mainly responsible for installing the IPC hardware and edge applications on those IPCs.
Additionally, there are machine operators that may use the IPC functionality in their day-to-day work assignments through a human-machine interface (HMI). And for maintenance, there could be external maintenance experts who use IPCs to record more data from the workflow.
Of these three user profiles, the only internal staff might be the machine operator and he/she is most likely not an IT expert. This requires IPC software to be usable by non-IT experts and therefore to have a robust and easy user experience. Additionally, the solution should enable internal users to make adjustments to accommodate changes in the automation hardware. This includes the ability to easily scale the solution by adding additional hardware.
An industrial IoT solution usually consists of two components.
The deployment of dedicated IPC hardware is a straightforward task and can be accomplished relatively quickly. For the software, however, the usual starting point is characterized by a team of internal automation and operations experts that are busy handling the daily operations. They have little time and expertise to implement IoT functionality in the programming language that is required for the solution.
Many tasks like remote device and app management and over-the-air updates are common to any IoT solution. They do not depend on the functionality that is expected to run on IPCs. These tasks can be handled by an IoT platform and do not need to be implemented specifically. For implementing the main part of the desired functionality, companies often consult external automation experts.
These external consultancies are able to create custom code for the solution. This code exists in git repositories and usually is not realistically accessible by anyone else for further adjustments. To keep a solution alive, however, the IPC software regularly requires adjustments and improvements.
To successfully operate the solution internally, the company needs full control and ownership of the solution. And this includes the code base that external experts have built.
An IoT platform should serve as a bridge between internal and external staff.
To maintain the code base within the company, ideally, the IoT platform should provide a way to also manage the code base within the platform. The solution should present itself as an easily usable app in the platform’s app store. So internal users can install/deinstall, start/stop and parametrize the application on each connected IPC by themselves. If the company requires further assistance, the internal operators can hand out developer access privileges to the external experts again and continue a successful development partnership for a long-term IoT strategy.