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-04-09 16:25:22 +02:00
clients moved RTDS drafts 2017-03-12 23:28:39 -03:00
doc updated documentation 2017-04-09 16:18:03 +02:00
etc fix web root (htdocs) in example config 2017-04-03 08:58:11 +02:00
include/villas whitespace cleanup 2017-04-09 16:25:22 +02:00
lib refactor: api_ressource => api_action and introduced new subdirectories 2017-04-09 16:24:55 +02:00
packaging fix packaging Makefile 2017-04-07 17:48:40 +02:00
plugins Overhaul of build and packaging system: 2017-03-29 04:04:20 +02:00
src Run libwebsockets in a worker thread 2017-04-07 17:39:37 +02:00
tests add integration test for api command ‚nodes‘ 2017-04-02 13:03:49 +02:00
thirdparty fix some problems with GitLab CI deployment 2017-04-06 20:28:16 +02:00
tools Overhaul of build and packaging system: 2017-03-29 04:04:20 +02:00
web updated jQuery and jQuery-UI to latest versions 2017-04-07 17:25:19 +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 renamed Docker image to ‚villas-node‘ (#79) 2017-04-06 20:29:43 +02:00
.gitmodules fix some problems with GitLab CI deployment 2017-04-06 20:28:16 +02: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 fix some problems with GitLab CI deployment 2017-04-06 20:28:16 +02:00
Doxyfile several updates to documentation structure 2017-03-12 16:52:42 -03:00
Makefile fix GitLab CI 2017-04-02 02:14:33 +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