ContentHub
Webcast_Sparmann_Saal_Docker_FINAL_V2.mp4
15 views
View transcript
Welcome to the new format of our webcasts, in which we are pleased to present exciting news and innovations from the world of WAGO. We hope you gain useful insights from the webcasts, “Docker Meets Automation” and “Docker Meets IT”. Feel free to use the live chat function in the video, or you can contact our support team with your questions if you are watching after the live stream is over. First, a round of introductions before we begin. My name is Jens Sparmann, and I am employed as a security system specialist; my colleague, Helmut Saal, works as an embedded Linux system specialist; and together we are going to present the docker world at WAGO. I would like to chat with you about “Docker Meets Automation”, and also show you want the Docker is, and what you can do with it. What actually is Docker? Docker is an open-source software for visualizing and isolating applications using container virtualization. What does that mean exactly? It functions similar to the virtual machine principle. Everything is organized into containers and images. It is platform dependent, which is the biggest disadvantage in the Docker world; however, one benefit is that it runs in a sandbox model, and has some serious security. To understand in more detail, I've made an overview. On the left, you can see the conventional path to constructing virtual machines. They have infrastructure, usually a notebook, their hypervisor which is generally Windows 7 or Windows 10, and then the virtual machines are built on this. You can use these virtual machines to emulate an entire PC. This also means that they need extra drivers for everything – for audio output, sound output, video output, keyboard entry – you need a driver for everything. If you want to operate several virtual machines, then they each need their own drivers, which drives up the overhead: one virtual machine operating according to Windows 10 requires around 10 gigabytes before it will do anything. In contrast, there is the Docker approach. In the Docker approach, we share operating system components from the host, which eliminates the guest OS layer. We only virtualize the individual applications that we need. This implementation provides everything that you need for its execution, but also includes nothing more and nothing less. Everything that the application needs, is included with it in the Docker container. Docker is flexible, lightweight, interchangeable, portable, and scaleable. How? Flexible, in that I can package all of the applications into one container and one image. It is lightweight, because these applications only include what they need to run, and no other drivers or libraries. Interchangeable means that it follows the microservices approach. I have to package each of my applications in an extra container. This enables me to use the microservices approach and replace each application separately, for example, during a security incident. It is portable, because it is not very large, and the applications only bring the necessary aspects with them. This means that the images and containers are relatively small; I can easily transport them and obtain them, for example, via the Internet. I can allocate resources to the containers using scalability. This means, I can tell them to take 10 percent from the CPU or pull 20 percent from RAM. And now, I would like to show you what you can with Docker and WAGO in the automation world. For example, we can realize an influx database and a chronograph in one Docker container. What does that mean? An influx database is a time-based database, which is designed to store a measured value with a timestamp. In general, we really don't want to do much more in automation than record a measured value and a timestamp. But then we want to display it beautifully, which is where the chronograph comes in. Two entities, two containers run in parallel with an e!COCKPIT project on the WAGO Touch Panel. Using this e!COCKPIT project, we collect data, for example from the potentiometers, from our Modbus® fieldbus coupler via the network per Modbus®, and then visualize them on the touch panel by using a buffer in the database. I can briefly show you the e!COCKPIT project. It looks like this: in principle, not much is done here besides collect data through Modbus®. A small mathematical conversion provides influxDB modules. We can use these modules to store measured values in an influx database, which runs on the display in a Docker container. When everything functions correctly, it looks like this: I realized the measured values in the chronograph, and I can display that both on my notebook and also directly on the touch panel. And now I would like to show you how to collect the measured values, so that you can see how easy it is. Click on “Explore”, then search for the database with the necessary table, and click on its measured values – and you can already visualize the measured values that you would like to have. There's really not much more to it. This was a short introduction into what we mean by “WAGO meets Docker”, and what you can do with it. Now, my colleague, Helmut Saal, will show you what you can do when “Docker meets IT”. “WAGO meets Docker with an IT Application” I have prepared a live application for you to provide a brief overview. We would like you to use a WAGO PFC that has a Docker daemon installed. The Modbus® container has made this PFC into a Modbus® slave. Actually, a PFC cannot be run as a Modbus® slave without an IEC application, but you can use the Modbus® container to transform a PFC into a Modbus® slave. We are using another container, in which a Node-RED image runs, with an IoT connector. This means that the PFC hardware sends an alarm to the Node-RED. You can monitor this on a Web UI – Nod-RED generates a web graphic user interface – which results quasi as a waste product from the IoT connector. We're also using a messaging app, which is called “Telegram”. Telegram is related to WhatsApp, just not as well known. WhatsApp has better marketing, but Telegram has a better API; therefore, we use Telegram at this point to realize a notification and a control. This lets you both receive an alarm message on your mobile phone, and also switch it back from your phone. So, let's take a look at a live demonstration. First, I prepared a node for you that has an executable Docker-Modbus® slave image. I fetched this node on line using our own WAGO-I/O-CHECK software, so that we can watch how the digital inputs and outputs switch in realtime. You will see a Node-RED in the web browser, since I also prepared a few flows for you. In detail, we have Modbus® flows, which query the digital input, extract the whole thing, which is a Modbus® array, and write it to a digital output. We can visualize everything in a web graphic user interface, which basically drops out of this node automatically. The automatically generated visualization in Node-RED is an HTML visualization in responsive design, which is well suited for smartphones and other mobile devices. What does this look like in detail? We query Modbus®, extract this, and write it to a digital output. Let me show that to you live. One DI switches here to a DO per Node-RED. We receive the whole thing via Telegram on a mobile phone. Instead of the mobile app on the phone, I opened the Telegram client in a web browser. One benefit of Telegram is that all clients are synchronized, which represents a major advantage over WhatsApp. Now, we switch the DI again and see that we receive the state of the DI relatively quickly (I'm trying to avoid realtime reactions). In the same way, we can send a keyword back, and then the chatbot returns a menu to us. And now I can switch a DO on or off using the menu. All of the applications that I have shown you are open-source, freeware, and can be downloaded from our Docker hub account and Github account. There are instructions available, so that you can start immediately – even without any PLC programming knowledge. I hope that we provided you with new information and exciting possibilities about the topics of “Docker meets IT” and “Docker meets Automation”. In conclusion, please feel free to use the “Meet the Speaker” function if you have additional questions. Thank you for your attention. Good luck!