useR!2017 has ended
Back To Schedule
Thursday, July 6 • 2:24pm - 2:42pm
*GNU R* on a Programmable Logic Controller (PLC) in an Embedded-Linux Environment

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

Feedback form is now closed.
Keywords: GNU R, PLC, Embedded, Linux
Abstract Being one of the leading institutions in the field of applied energy research, the Bavarian Center for Applied Energy Research (ZAE Bayern) combines excellent research with excellent economic implementation of the results. Our main research goal is to increase the capacity of low-voltage grids for installed photovoltaics. Therefore the influences were analysed by taking measurements in grid nodes and households. In this context we applied several open-source programming languages, but we found GNU R to be best suiting. This results from being capable of analysing, manipulating and plotting the measurement data as well as simulating and controlling our real test systems. We have installed multiple storages and modules in different households. In order to control these test sites, we use Wago PLC 750-8202, that are currently programmed in Codesys. As strategies can get quite complex (due to individual forecasting, dynamic non-linear storage models, …), we see that Codesys isn’t capable of this. With choosing R for complex computations, we have access to a wide rage of libraries and our self-developed strategies used for analysis and simulation relying on the measurement data from the grid and the weather. To bring the strategy to the PLC, we divided the whole system into two parts. One of it is running on our central servers and is preparing external data from our databases for each test site. Therefore, we set up a control platform using node-red and the httpuv package in order to run R scripts on demand. The second half will be computed on the Wago PLCs. With the board support package (BSP), Wago provides a tool-chain to its customers for build their own customised firmware. Our proposed idea is to get R and Python together with the basic Codesys running on the PLC. As for that, Python will serve as an asynchronous local controller, that is able to start calculations in R and provide control quantities to Codesys. We try to apply the rzmq package for inter process communication (IPC) and data exchange. For example, the information delivered to the Python controller will be cyclically forwarded to the global.environment of a continuously running R instance. This helps us to reduce the start-up and initialization effort for our models. On demand, R is instructed to calculate a given strategy, that is chosen for a specific day and situation by the central servers. R will hand the result back to the Python controller and forward it to Codesys, where short-term closed control-loops can be established. Our approach will be tested and verified on our Wago PLCs in our environment.

Schematic procedure


Thursday July 6, 2017 2:24pm - 2:42pm CEST
2.02 Wild Gallery