This is my archive

Connect PLCnext Control via MQTT to Apache Kafka

Technical Background Kafka Apache Kafka is a framework for data ingestion, storage, processing, and redistribution. Nowadays, it is widely deployed at companies all over the world. Kafka’s official website offers more information about its idea and how to deploy it. One of its key features is the huge… Read More

Azure IoT Edge and PLCnext

Azure IoT Edge makes it possible to move cloud analytics and costum logic to to “the edge”, in our case to our PLCnext device. This has some benefits in decreasing used bandwidth and latency. With Azure IoT Edge you can develop and deploy your own applications form a central cloud… Read More

PLCnext Engineer – ehmi multilanguage

This tutorial I will show you how to handle Multi-language functions i PLCnext Engineer since this is supported from 2021.0 LTS. The following example will use English as default language and Swedish as alternative language Hardware: AXC F 2152 PLCnext controller (from FW 2021.0 LTS) Software: PLCnext Engineer 2021.0 LTS… Read More

pugixml a light-weight XML processing library with XPATH support

Abstract In this article I will explain how to use pugixml to process XML data. With this processing library you can use a DOM parser to read and manipulate nodes and the XPATH notation to query nodes. How to build To build the sources, you have to download a release from https://github.com/zeux/pugixml/tags. Now you can crosscompile… Read More

Linq the list processing library for C++

Abstract In this article I will explain how to use linq to process data. With this library you can use filtering, selections, aggregations, groupings and many more. For full support it requires clang or gcc, and boost How to use This library is a Header only library. You only have to integrate the C++ header in… Read More

c++ testing with catch2

Abstract In this article I will explain how to use catch2 to do unit testing. How to build To build the sources, you have to download a release from https://github.com/catchorg/Catch2/tags. Now you can compile the source with gcc. The following code-snippet will show the cmake script to compile. #Please set the environment variables… Read More

How to define complex GDS Ports and connect them to GDS Port in IEC code

Abstract In this article I will explain how to define complex GDS ports like data structures in C++ and connect them to GDS port in IEC code. Data Structures How to declare data structures. Lets look at C++. #pragma once #include "Arp/System/Core/Arp.h" #include "Arp/Plc/Commons/PlcTypes.h" namespace MyComponent { class MyData {… Read More

Use the IXMLSerializable interface to populate a class from a XML file

Abstract Did you know that the PLCnext Common Classes have built in support for XML serialization? This article shows how to use the IXmlSerializable interface to populate the data in a c++ class. You can find the Interface description in the API documentation of the PLCnext Common Classes. Requirements This article was written… Read More

Datalogging in IEC 61131-3: SFTP upload based on the power of Curl

Some weeks ago, I received following question. You need to upload a logging file towards a SFTP server, by using a program which runs in the ESM.The SSH File Transfer Protocol (also Secure File Transfer Protocol, or SFTP) is a network protocol that provides file access, file transfer, and file… Read More

Retrofitting the REST API – Setting up a reverse Proxy

The PLCnext REST Interface is a fantastic tool both to present and receive data from a back-end system. REST, or REpresentational State Transfer, is a software architecture style consisting of guidelines and best practices for creating scalable web services. There is a lot of great information already on the… Read More