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
2.02
Wild Gallery