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-25 15:23:46 +02:00
clients updated build-system to build AsyncIP by default 2017-04-24 13:49:00 +02:00
doc Merge branch 'node-shm' into develop 2017-04-18 01:50:12 +02:00
etc added web socket node to example config 2017-04-24 19:58:23 +02:00
include/villas added first version of web socket client support 2017-04-24 19:28:45 +02:00
lib minor improvements 2017-04-24 19:56:14 +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 valgrind: call atexit() handlers to release memory 2017-04-24 18:59:12 +02:00
tests valgrind: added make target 2017-04-24 19:29:21 +02:00
thirdparty updated submodule for OPAL-RT libraries 2017-04-24 12:11:16 +02:00
tools don't link libext against any external libraries 2017-04-15 20:38:58 +02:00
web changed byte-order for websocket messages to little-endian 2017-04-24 13:25:30 +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 add branch name as tag to Docker images 2017-04-24 13:50:23 +02:00
.gitmodules moved OPAL-RT libraries into submodule 2017-04-23 19:22:11 +02:00
config.h increase number of huge pages 2017-04-24 19:56:01 +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 updated build-system to build AsyncIP by default 2017-04-24 13:49:00 +02:00
Doxyfile several updates to documentation structure 2017-03-12 16:52:42 -03:00
Makefile updated build-system to build AsyncIP by default 2017-04-24 13:49:00 +02:00
README.md added logo to README 2017-04-25 15:23:46 +02: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