Accelerating transformation for the industrial revolution
I have always been interested and somewhat fascinated by machines, especially the ones that are used to build other machines. I have good memories of my visits to an enormous foundry or a ship factory. This dates back 30 years when I was working in a machine shop as a high school senior. I loved the industrial saws used to cut 2” thick sheets of mica or the G-code programmed CNCs. Enough of this and back to the topic of the Fourth Industrial Revolution. I am no history buff so I will not provide history lessons here. However, I will go over this quickly.
Guest blog written by Michel Chabroux.
The First Industrial Revolution came with the steam engine in the late 1700s. This allowed a significant mechanisation of production. This was accompanied by social changes but I can’t really speak to the details as I wasn’t there.
The Second Industrial Revolution was a byproduct of the introduction of electricity and other scientific advancements in the late 1800s that led to an increase in production capacity. I wasn’t there either.
The Third Industrial Revolution started in the 1950s with the advent of computer leading to where we are. Still, I wasn’t there when this all started.
Now, I am here for this one. The Fourth Industrial Revolution (sometimes '4IR' or 'Industry 4.0') is another step in the process of mechanizing our world. It builds upon existing technologies and introduces others to increase production even more, expand productivity, and more importantly connect machines to machines and people at a massive scale, and at even faster pace.
This is so important that some governments (I understand that Germany was the first) have initiatives to help drive and orchestrate this significant shift.
So, the Fourth Industrial Revolution is here, and today’s situation in the world shows that there is a need for greater industrial adaptability.
But what does a Real Time Operating System (RTOS) like VxWorks has to do with this?
Part 1: Time Sensitive Networking
The Fourth Industrial Revolution brings in a lot of changes and leverages many technologies in just about every domain. But the one common denominator in everything is connectivity. Connectivity enables new business models, capabilities, services, access, etc. However, not all network traffic is born equal. Some is more important than other, for example YouTube vs. critical machine control. That is where the concept of Time Sensitive Networking (TSN) comes into play.
In a nutshell, TSN is a group of IEEE protocols that define how to shape network traffic to make sure that important things do not get dropped. A quick search would give you protocols like PTP1588v2, 802.1AS, 802.1Qbu, 802.1Qbv, and many others.
At Wind River, we have been focused on this requirement for a while now. VxWorks 7 had initial support for TSN back in 2017. Since then, we have been expanding our TSN functionality with each and every release. With the latest release of VxWorks 7 (SR0640 to be specific), we doubled down on our vision for TSN. Our goal is to provide precise time synchronisation and guaranteed bounded latency.
First, we have broadened our hardware support (yes, TSN requires hardware help to get into the micro seconds realms).
Second, we have expanded on the protocol standards we support with VxWorks 7 now coming with IEEE1588v2, 802.1AS, 802.1Qbv and 802.1Qbu out of the box. More is on the way for 2020.
Third, we added technology to reduce jitter and improve queuing discipline with ETF (Earliest TxTime First).
Finally, TSN configuration has been greatly simplified with the tsnconfig tool.
You may want to check out our Dr. Design blog post TSN and Real-Time Operation from Wind River for a more technical deep dive on this topic.
Part 2: OPC-UA - an Open Architecture for Machine to Machine Communication
At this point, you are used to seeing acronyms. OPC-UA stands for Open Platform Communications, Unified Architecture. Fundamentally, it is an open architecture for machine to machine communication, and is of the utmost importance because… Connectivity.
With expanded connectivity, the job of integrators will become more complex as they source from a variety of vendors. OPC-UA is there to ensure interoperability between widgets from different vendors using different operating systems running on a variety of silicon, from Arm to Intel to RISC-V. In other words, OPC-UA is the communication glue.
VxWorks 7 has had out-of-the-box support for OPC-UA since 2018, so what has changed? As part of our investments, we realised that in order to provide even more value, we needed our OPC-UA stack to be fully open, as in, open-source. Therefore, we have decided to engage with the team behind the open62541 project. Our first contribution to the project has been integrated into the library earlier this year, adding support for secure communication through OpenSSL 1.1.x.
“We are thrilled to have Wind River as an active contributor to the open62541 project.” said Julius Pfrommer, Fraunhofer IOSB and one of the open62541 core maintainers.
I am therefore very pleased to say that VxWorks 7 SR0640 has out-of-the box support for the open62541OPC-UA stack version 1.0.1. This will save you time and money and make your life easier knowing that you can rely on a maintained open source stack with contributors with the same goals as yours.
Part 3: Python
One of the rapidly emerging mandatory requirements of 4IR is Artificial Intelligence (AI). AI is transforming the world and is enabling the emergence of intelligent systems. I am not referring to Skynet (we are not there yet), rather the ability for a system to perform more intelligently, adapt, better deal with the unpredicted, etc. At Wind River, we believe intelligent systems and platforms are key to enabling our customers to be successful in their 'next-gen' (such an over-used term but I can’t think of a better one) endeavors.
Python happens to be at the center of a lot of AI frameworks. Therefore it seems fitting to be able to use it at the edge. The edge being a place rather than a thing, in this case I am referring to the electro-mechanical edge, i.e. that class of devices that drive and control machines at the mechanical level. In other words, devices running an RTOS such as VxWorks.
In October 2019, we announced that Python 3.8 was available on VxWorks 7 (I feel compelled to link to my blog on the topic). Well now, it is official. As of VxWorks 7 SR0640, you have built-in support for Python 3.8.
That is not enough. In order to be able to add enough AI there, we decided to include NumPy, the fundamental package for scientific computing with Python. With Python and NumPy, your machine learning (ML) needs are at your fingertips.
Let’s look at a simple predictive maintenance use case. Assume your VxWorks 7 device has a variety of parameters that in some cases indicate a maintenance situation. You could use ML to create a predictive model to avoid or minimise down time. As the device generates data, you use it as input to train the neural network until the model is good enough.
There are many resources available on the Internet. Towards Data Science is one of them.
This latest release of VxWorks 7 (SR0640) is one that really makes me proud of my team (Product Managers, Engineers, EPMs, and Testers). I encourage you to check it out. You are also welcome to go to Wind River Labs to download SDKs in order to evaluate the latest VxWorks.
Courtesy of Wind River.