Store PLCnext CommunityPLCnext on LinkedInPLCnext on Instagram  PLCnext on YouTube Github PLCnext CommunityStore PLCnext Community


 How to create a Blog Entry

Find user stories of interesting ideas and solutions in this blog.
Note: The Makers Blog shows applications and user stories of community members that are not tested or reviewed by Phoenix Contact.

For questions, please go to the FORUM section and create a new entry there.

Want to add your own solution here? Just login as a registered user and click the "Create Blog entry" button. Find a short intro video by clicking the "How to create a blog entry" button. If you experience any problems with editing or publishing please contact us at This email address is being protected from spambots. You need JavaScript enabled to view it..

This Makers blog shows a way to communicate Bacnet MSTP devices from Emalytics to the PLCnext platform.

As this is a serial protocol and the ILC 2050 BI has as first IO channel onboard 2x serial ports, the port 1 is used in this example (=COM1).

First of all Open the Emalytics workbench -> go to your station->config-> drivers and add from the Palette the BacnetNetwork by drag and drop.

Following on my previous blog "Datalogging in IEC 61131-3: The basic principle", I want to show you something extra.
To read and write data, you only need to implement some basic commands.

In this blog, we are going to create the following methods:

  • Create a file
  • Create a file and directly write a header line
  • Delete a file
  • Read a line
  • Write a line

Please note that some extra error handling is needed for real life applications.

If you are interested in the complete PLCnext Engineer project, just let me know. (This email address is being protected from spambots. You need JavaScript enabled to view it.)

How to enable remote VPN access for PLCnext using IXON Cloud

About 90 percent of operating problems faced by engineers can be solved by remote access to the control system. With remote access, you can remotely troubleshoot and program your PLCnext controller. 

A prerequisite for remote access is that machines can be accessed from the internet in a secure way. After all, nobody wants to undermine the security or daily operations of the parties involved.

Introduction for FW >= 2021.0:

On the PLC, the file /etc/plcnext/Components.acf.settings contains a list of environment variables and their default values. Some of these environment variables are used to enable/disable various system services on the PLC.

It is possible to change the values of these environment variables, but this should not be done by editing this (or any other) system configuration file.



1. Open the directory /etc/plcnext on the PLCnext target.

2. Copy the /etc/plcnext/Components.acf.settings file to the PLC directory /opt/plcnext/appshome

3. Rename the /opt/plcnext/appshome/Components.acf.settings file to XML file with the extension .acf.settings  e.g. /opt/plcnext/appshome/Disable.acf.settings   

4. Open the /opt/plcnext/appshome/Disable.acf.settings file and delete all settings and environment variables except the environment variables, whose value should change from the default. The important attribute here is "override", which overrides the default value of the named environment variable.

The contents of this file should be structured the same as follows:


5. This step can be scipped. If the FW >= 2021.0 is used, it is not neccessary to delete the not valid connectors in file ".gds.config". 

6. Restart the PLCnext Controller via command "sudo reboot".

Here is a basic guide to installing PLCnext CLI version 2020.0 LTS on a Linux operating system, when there is an earlier version of the CLI already installed.

The procedure below assumes that there is an existing PLCnext CLI installation on the Linux host, in the directory ~/plcncli.

  1. Download the file "SDK und PLCnCLI für Linux 64-Bit" from the Downloads page for the AXC F 2152.

PLCnext Technology offers different possibilities to capture data.

Some examples:

  • PLCnext Engineer library: The function blocks for Data Logging are used to collect data of any data types and store into csv or binary files. In combination with the PLCnextBaseLibrary it is possible to copy the data to an FTP server.
  • Datalogger: A service component of the PLCnext Technology firmware. This component transfers real-time data from the GDS to a database for recording and storage purposes. When starting and stopping the PLCnext Technology firmware, the DataLogger is started and stopped automatically. XML configuration files are used for configuration of the DataLogger. The DataLogger can record data from any IN or OUT ports and variables.
  • App available in the PLCnext Store: DataLogger powered by FourZero

If you want to build something specific for your application, this blog is what you need.

For those who are unfamiliar with the details of the PLCnext architecture, the following diagram might proof helpful.


As you can see non real-time components can communicate with the PLCnext runtime via Remote Service Calls and Access to shared data with the GDS and the the Operating System APIs. There are services running on the PLC exposing a part of this functionality to the network and these are the service we are going to use to create a simple GUI-Application that will use some of the available services.

Depending on the  project at hand, sometimes there is a need to rely on Time table and schedule functionality. Especially in building applications, but can be practical in lots of situations.

Because this is really well integrated in the Emalytics (Niagara) framework (which we have on the ILC2050 BI controller), I decided to make a makersblog where I explaine the functionality of this and integrate the output of this schedule/calendar function into the AXC F 2152  via Modbus TCP.