1
0
Fork 0
mirror of https://git.rwth-aachen.de/acs/public/villas/node/ synced 2025-03-09 00:00:00 +01:00
No description
Find a file
2017-03-27 12:46:41 +02:00
clients moved RTDS drafts 2017-03-12 23:28:39 -03:00
doc started documentation of advio and api for Markus 2017-03-13 22:58:17 -03:00
etc remove obsolete ‚combine‘ setting from example config 2017-03-27 12:46:41 +02:00
include/villas added new sample_io module for adding new IO formats 2017-03-27 12:28:13 +02:00
lib added json_to_config in order to support JSON as new config file format 2017-03-27 12:38:19 +02:00
plugins refactoring: simplified hook system 2017-03-17 01:08:48 -03:00
src set VILLASnode version via Makefile instead of config.h 2017-03-27 12:30:44 +02:00
tests added integration tests 2017-03-27 12:39:29 +02:00
thirdparty updated git submodules of dependencies 2017-03-27 12:45:45 +02:00
tools added integration tests 2017-03-27 12:39:29 +02:00
web Merge branch 'feature-mpmc-queue' into feature-curlio 2017-03-05 10:06:32 -04:00
.dockerignore build mandatory prerequisites as part of Docker build process 2016-10-13 22:10:06 -04:00
.gitignore rewrote build system to make it more modular and support out-of-tree builds 2016-10-06 17:56:01 -04:00
.gitlab-ci.yml make sure we have enough huge pages reserved for CI tests 2016-10-30 20:58:27 -04:00
.gitmodules removed libxil which is going to be maintained in a submodule 2017-03-06 12:09:47 -04:00
config.h set VILLASnode version via Makefile instead of config.h 2017-03-27 12:30:44 +02:00
CONTRIBUTING.md started contribution guide 2016-09-14 04:31:49 +02:00
Dockerfile Re-license source code to LGPLv2.1 (closes #56) 2016-11-22 11:14:25 -05:00
Doxyfile several updates to documentation structure 2017-03-12 16:52:42 -03:00
Makefile set VILLASnode version via Makefile instead of config.h 2017-03-27 12:30:44 +02:00
README.md several updates to documentation structure 2017-03-12 16:52:42 -03:00

VILLASnode

build status coverage report

This is VILLASnode, a gateway for processing and forwardning simulation data between real-time simulators. VILLASnode is a client/server application to connect simulation equipment and software such as:

  • OPAL-RT eMegaSim,
  • RTDS GTFPGA cards,
  • Simulink,
  • LabView,
  • and FPGA models.

It's designed with a focus on very low latency to achieve almost realtime exchange of simulation data. VILLASnode is used in distributed- and co-simulation scenarios and developed for the field of power grid simulation at the EON Energy Research Center in Aachen, Germany.

Overview

The project consists of a server daemon and several client modules which are documented here.

[TOC]

Server

The server simply acts as a gateway to forward simulation data from one client to another. Furthermore, it collects statistics, monitors the quality of service and handles encryption or tunneling through VPNs.

For optimal performance the server is implemented in low-level C and makes use of several Linux-specific realtime features. The primary design goal was to make the behaviour of the system as deterministic as possible.

Therefore, it's advisable to run the server component on a PREEMPT_RT patched version of Linux. In our environment, we use Fedora-based distribution which has been stripped to the bare minimum (no GUI, only a few background processes).

The server is a multi-threaded application.

Clients

There are two types of clients:

  1. The server handles diffrent types of nodes. The most commonly used node-type is the 'socket' type which allows communication over network links (UDP, raw IP, raw Ethernet frames). But there are also other specialized node types to retreive or send data to equipemnt, which is directly connected to or running on the server itself. An example for such a node is the 'gtfpga' type which directly fetches and pushes data to a PCIe card. Or the 'file' type which logs or replays simulation data from the harddisk.

  2. An other way to connect simulation equipment is by using a client-application which itself sends the data over the network to VILLASnode. In this scenario, VILLASnode uses the 'socket' node-type to communicate with the client-application.

Usually, new clients / equipemnt should be implemented as a new node-type as part of VILLASnode. Using a dedicated client-application which communicates via the 'socket' type is deprecated because it leads to code duplication.

Contact

EONERC ACS Logo

Institute for Automation of Complex Power Systems (ACS) EON Energy Research Center (EONERC) RWTH University Aachen, Germany