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-29 19:16:17 +02:00
clients moved RTDS drafts 2017-03-12 23:28:39 -03:00
doc added new Dia figures which are soon to be incorporated into the documentation 2017-03-29 04:18:19 +02:00
etc Merge branch 'eric-lab' into develop-try-merge 2017-03-29 06:02:58 +02:00
include/villas removed unused function 2017-03-29 08:11:45 +02:00
lib fix coverage and some other test related issues 2017-03-29 19:16:17 +02:00
packaging Overhaul of build and packaging system: 2017-03-29 04:04:20 +02:00
plugins Overhaul of build and packaging system: 2017-03-29 04:04:20 +02:00
src Merge branch 'eric-lab' into develop-try-merge 2017-03-29 06:02:58 +02:00
tests fix coverage and some other test related issues 2017-03-29 19:16:17 +02:00
thirdparty fix coverage and some other test related issues 2017-03-29 19:16:17 +02:00
tools Overhaul of build and packaging system: 2017-03-29 04:04:20 +02:00
web Overhaul of build and packaging system: 2017-03-29 04:04:20 +02:00
.distignore Overhaul of build and packaging system: 2017-03-29 04:04:20 +02:00
.dockerignore Overhaul of build and packaging system: 2017-03-29 04:04:20 +02: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 fix coverage and some other test related issues 2017-03-29 19:16:17 +02:00
.gitmodules removed libxil which is going to be maintained in a submodule 2017-03-06 12:09:47 -04:00
config.h Overhaul of build and packaging system: 2017-03-29 04:04:20 +02:00
CONTRIBUTING.md started contribution guide 2016-09-14 04:31:49 +02:00
Dockerfile Overhaul of build and packaging system: 2017-03-29 04:04:20 +02:00
Dockerfile.dev do not add dnf repo yet because its password protected 2017-03-29 05:12:01 +02:00
Doxyfile several updates to documentation structure 2017-03-12 16:52:42 -03:00
Makefile fix coverage and some other test related issues 2017-03-29 19:16:17 +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