From 78431f4e8e6919bbaf9ccd65b598f706f052e93a Mon Sep 17 00:00:00 2001 From: Alexandra Date: Tue, 13 May 2025 09:20:07 +0200 Subject: [PATCH 01/34] Add first version of JOSS paper Signed-off-by: Alexandra --- paper.bib | 49 +++++++++++++++++++++++++++++++ paper.md | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 135 insertions(+) create mode 100644 paper.bib create mode 100644 paper.md diff --git a/paper.bib b/paper.bib new file mode 100644 index 000000000..3982acf22 --- /dev/null +++ b/paper.bib @@ -0,0 +1,49 @@ +@article{monti_global_2018, + title = {A Global Real-Time Superlab: Enabling High Penetration of Power Electronics in the Electric Grid}, + volume = {5}, + issn = {2329-9215}, + url = {https://ieeexplore.ieee.org/document/8458285}, + doi = {10.1109/MPEL.2018.2850698}, + shorttitle = {A Global Real-Time Superlab}, + abstract = {The Global Real-Time Superlaboratory (Global {RT} Superlab) represents a vendor-neutral distributed platform based on the virtual interconnection of digital real-time simulators ({DRTSs}) and hardware-in-the-loop ({HIL}) setups hosted at eight geographically distributed laboratories in the United States and Europe (Figure 1). This article describes the efforts toward the realization of this largescale virtual infrastructure and explains a demonstration of the multilab setup for simulation and testing of next-generation global power grids.}, + pages = {35--44}, + number = {3}, + journaltitle = {{IEEE} Power Electronics Magazine}, + author = {Monti, Antonello and Stevic, Marija and Vogel, Steffen and De Doncker, Rik W. and Bompard, Ettore and Estebsari, Abouzar and Profumo, Francesco and Hovsapian, Rob and Mohanpurkar, Manish and Flicker, Jack David and Gevorgian, Vahan and Suryanarayanan, Siddharth and Srivastava, Anurag K. and Benigni, Andrea}, + urldate = {2023-10-10}, + date = {2018-09}, + note = {Conference Name: {IEEE} Power Electronics Magazine}, + keywords = {Real-time systems, Internet, Power system stability, Laboratories, Distributed databases, Power electronics, Power grids} +} + +@inproceedings{Pitz2024, + author = {Manuel Pitz and Felix Wege and Niklas Eiling and Steffen Vogel and Vincent Bareis and Antonello Monti}, + title = {Automated Deployment of Single-Board Computer Based Grid Measurement and Co-Simulation Equipment}, + booktitle = {2024 Open Source Modelling and Simulation of Energy Systems (OSMSES)}, + year = {2024}, + location = {Vienna, Austria}, + pages = {1--6}, + doi = {10.1109/OSMSES62085.2024.10668996} +} + +@article{Mehlmann2023, + author = {Gert Mehlmann and Uwe Kühnapfel and Felix Wege and Alexander Winkens and Christian Scheibe and Steffen Vogel}, + title = {The Kopernikus ENSURE Co-Demonstration Platform}, + journal = {IEEE Open Journal of Power Electronics}, + volume = {4}, + pages = {987--1002}, + year = {2023}, + doi = {10.1109/OJPEL.2023.3332515} +} + +@article{Bach2025, + author={Bach, Alexandra and Monti, Antonello}, + journal={IEEE Access}, + title={Remote Real-Time Testing of Physical Components Using Communication Setup Automation}, + year={2025}, + volume={13}, + number={}, + pages={39066-39075}, + keywords={WebRTC;Testing;Protocols;Delays;Control systems;Automation;Security;Interoperability;Emulation;Containers;Communication automation;geographically distributed facilities;real-time experiment;remote coupling;remote physical component testing}, + doi={10.1109/ACCESS.2025.3546311} +} diff --git a/paper.md b/paper.md new file mode 100644 index 000000000..841ee017c --- /dev/null +++ b/paper.md @@ -0,0 +1,86 @@ +--- +title: 'VILLASnode: Open-source real-time coupling of distributed infrastructures' +tags: + - C/C++ + - Real-time + - Distributed experiments + - Electrical grid simulation +authors: + - name: Alexandra Bach + orcid: 0009-0005-7385-4642 + affiliation: 1 + - name: Leonardo Carreras + orcid: 0000-0002-9033-1051 + affiliation: 1 + - name: Laura Fuentes Grau + orcid: 0009-0004-8997-7009 + - name: Steffen Vogel + orcid: 0000-0003-3384-6750 + affiliation: "1, 2" # (Multiple affiliations must be quoted) + - name: Manuel Pitz + orcid: 0000-0002-6252-2029 + affiliation: 1 + - name: Niklas Eiling + orcid: 0000-0002-7011-9846 + affiliation: 1 + - name: Felix Wege + orcid: 0000-0001-6602-9875 + affiliation: 1 + - name: Andres Acosta + orcid: 0000-0003-3066-8354 + affiliation: 1 + - name: Iris Köster + affiliation: 1 + +affiliations: + - name: Institute for Automation of Complex Power Systems, RWTH Aachen University, Germany + index: 1 + - name: OPAL-RT Germany GmbH + index: 2 +date: 13 May 2025 +bibliography: paper.bib + +--- + +# Summary + +VILLASnode is a software tool, designed to facilitate real-time data exchange between various components involved in geographically distributed real-time experiments. Components can be test beds, real-time simulators, software tools, and physical devices. +Whereas distributed computing, systems or algortihms aim to solve a common task, geographically distributed experiments link infrastructures with different components to make these components accessible to other infrastructures. Thus, data exchanges are possible which would not be possible in one single infrastructure. +VILLASnode serves as the gateway that connects components across different infrastructures by providing a set of protocols and customized third-party implementations, e.g., different simulators. It enables seamless collaboration in research and testing environments while safeguarding the intellectual property of the infrastructures. The components at every infrastructure appear as a black box. The infrastructure does not need to share models or confidential information. + +VILLASnode is a Linux command line tool and can run as installation from source or as container. It is written in C/C++ and designed in a modular way. +All components which are interfaced by the VILLASnode gateway are represented by nodes. These nodes act as sinks / sources for data specific to the component. Every node is an instance of a node-type. In a single VILLASnode instance, multiple instances of the same node-type can co-exist at the same time. +The basic data package, common for all node-types, includes timestamped data, constituting a sample. Up to 64 values can form a sample. +Samples may need modification or filtering. VILLASnode supports hooks for this purpose. Hooks are simple callback functions, which are called whenever a message is processed by a path. +Paths specify where samples need to go or where it come from. +Node-types, hooks, and paths need to be initalized in a configuration file which is called when starting VILLASnode. +An API to interact with VILLASnode is available. It is used by the Python Wrapper allowing to control, configure and execute most of the functions of VILLASnode. This is useful if Python software tools are to be integrated in a distributed experiment. +In general, the interaction with VILLASnode is available for other tools and coding languages by using clients that implement basic functionalities, custom configurations and data conversions. +Since VILLASnode is written in C/C++ it supports real-time capabilites and can supports real-time tuning for Linux systems. + +# Statement of need + +VILLASnode supports the coupling of real-time simulators of different hardware and software vendors, specifications and implementation technologies [@monti_global_2018]. They play a crucial role in both academic research and industrial applications, especially within electrical power networks. They are primarily utilized for hardware-in-the-loop (HiL) simulations. For example, an electrical grid is emulated so that the physical component can interface safely via analog input and output signals [@Mehlmann2023]. +This approach not only reduces development costs but also allows for the validation of components under scenarios that are difficult or unsafe to replicate real-world field scenarios. Moreover, VILLASnode supports the linking of simulators and real-time simulators of different vendors so that models do not need to be shared. Local simulator and simulation infrastructure can be combined in a powerful arrangement unavailable at any individual infrastructure. This approach has the additional advantage of allowing to co-simulate with heterogeneus methods, algorithms and communication protocols. The communication with the components, sensors or actuators can also be implemented using VILLASnode. + +This can be extended to geographically distributed experiments. In this case, VILLASnode takes care of the communication between the different participants to the experiment which spans multiple infrastructures. Not only simulators can be included, but also physical devices can [@Bach2025]. Although communication latencies constrain the dynamics of the experiment for real-time applications, VILLASnode offers significant advantages such as leveraging existing infrastructure across sites and facilitating collaboration among interdisciplinary teams. Manufacturers, customers, and certifiers benefit from remote access and distributed testing while maintaining data confidentiality and intellectual property. Current work includes automation of integration of VILLASnode in practical field devices [@Pitz2024]. + +# Features +VILLASnode is a part of the VILLASframework, which offers several key features. +Firstly, it includes VILLASweb, a tool designed for the visualization and monitoring of experiments. +Secondly, there is VILLASfpga, which provides hard real-time capabilities for VILLASnode. +Lastly, VILLAScontroller is currently under development and aims to automate simulation equipment. + +# Acknowledgements +- [RESERVE](http://re-serve.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 727481. +- [VILLAS](https://villas.fein-aachen.org/website/): Funding provided by [JARA-ENERGY](http://www.jara.org/en/research/energy). Jülich-Aachen Research Alliance (JARA) is an initiative of RWTH Aachen University and Forschungszentrum Jülich. +- [Urban Energy Lab 4.0](https://www.uel4-0.de/Home/): Funding is provided by the [European Regional Development Fund (EFRE)](https://ec.europa.eu/regional_policy/en/funding/erdf/). +- [ERIGrid2.0](https://erigrid2.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 870620. +- [ENSURE](https://www.kopernikus-projekte.de/projekte/ensure): Federal Ministry of Education and Research supports the project under identification 03SFK1C0-3. +- [NFDI4Energy](https://nfdi4energy.uol.de/): Funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) – 501865131. +- [HYPERRIDE](https://hyperride.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 957788 +- [Erigrid2.0](https://erigrid2.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 870620 +- [AI-EFFECT](https://ai-effect.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 101172952 +- [EnerTEF](https://enertef.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 101172887 + +# References \ No newline at end of file From 3190ff21384ec6dc7cc81b0b89eaab1b67d83d60 Mon Sep 17 00:00:00 2001 From: Alexandra Date: Thu, 15 May 2025 08:23:34 +0200 Subject: [PATCH 02/34] Internal Feedback JOSS Signed-off-by: Alexandra --- paper.md | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/paper.md b/paper.md index 841ee017c..e012c361e 100644 --- a/paper.md +++ b/paper.md @@ -16,7 +16,7 @@ authors: orcid: 0009-0004-8997-7009 - name: Steffen Vogel orcid: 0000-0003-3384-6750 - affiliation: "1, 2" # (Multiple affiliations must be quoted) + affiliation: "1, 3" # (Multiple affiliations must be quoted) - name: Manuel Pitz orcid: 0000-0002-6252-2029 affiliation: 1 @@ -31,39 +31,44 @@ authors: affiliation: 1 - name: Iris Köster affiliation: 1 + - name: Prof. Antonello Monti + orcid: 0000-0003-1914-9801 + affiliation: "1,2" affiliations: - name: Institute for Automation of Complex Power Systems, RWTH Aachen University, Germany index: 1 - - name: OPAL-RT Germany GmbH + - name: Fraunhofer Institute for Applied Information Technology, Aachen, Germany index: 2 -date: 13 May 2025 + - name: OPAL-RT Germany GmbH + index: 3 +date: 15 May 2025 bibliography: paper.bib --- # Summary -VILLASnode is a software tool, designed to facilitate real-time data exchange between various components involved in geographically distributed real-time experiments. Components can be test beds, real-time simulators, software tools, and physical devices. +VILLASnode is a software tool, designed to facilitate real-time data exchange between various components in geographically distributed real-time experiments. Components can be test beds, real-time simulators, software tools, and physical devices. Whereas distributed computing, systems or algortihms aim to solve a common task, geographically distributed experiments link infrastructures with different components to make these components accessible to other infrastructures. Thus, data exchanges are possible which would not be possible in one single infrastructure. VILLASnode serves as the gateway that connects components across different infrastructures by providing a set of protocols and customized third-party implementations, e.g., different simulators. It enables seamless collaboration in research and testing environments while safeguarding the intellectual property of the infrastructures. The components at every infrastructure appear as a black box. The infrastructure does not need to share models or confidential information. VILLASnode is a Linux command line tool and can run as installation from source or as container. It is written in C/C++ and designed in a modular way. All components which are interfaced by the VILLASnode gateway are represented by nodes. These nodes act as sinks / sources for data specific to the component. Every node is an instance of a node-type. In a single VILLASnode instance, multiple instances of the same node-type can co-exist at the same time. The basic data package, common for all node-types, includes timestamped data, constituting a sample. Up to 64 values can form a sample. -Samples may need modification or filtering. VILLASnode supports hooks for this purpose. Hooks are simple callback functions, which are called whenever a message is processed by a path. -Paths specify where samples need to go or where it come from. -Node-types, hooks, and paths need to be initalized in a configuration file which is called when starting VILLASnode. -An API to interact with VILLASnode is available. It is used by the Python Wrapper allowing to control, configure and execute most of the functions of VILLASnode. This is useful if Python software tools are to be integrated in a distributed experiment. +Samples may need modification or filtering. VILLASnode supports hooks for this purpose. Hooks are simple callback functions, which are called whenever a message is processed. +Paths take care of the processing and define the connections and dataflows between nodes. +Node-types, hooks, and paths need to be initalized in a configuration file which is passed when starting VILLASnode. +VILLASnode can be controlled remotely by an Application Programming Interface (API). It is used by the Python Wrapper allowing to control, configure and execute most of the functions of VILLASnode. This is useful if Python software tools are to be integrated in a distributed experiment. In general, the interaction with VILLASnode is available for other tools and coding languages by using clients that implement basic functionalities, custom configurations and data conversions. Since VILLASnode is written in C/C++ it supports real-time capabilites and can supports real-time tuning for Linux systems. # Statement of need -VILLASnode supports the coupling of real-time simulators of different hardware and software vendors, specifications and implementation technologies [@monti_global_2018]. They play a crucial role in both academic research and industrial applications, especially within electrical power networks. They are primarily utilized for hardware-in-the-loop (HiL) simulations. For example, an electrical grid is emulated so that the physical component can interface safely via analog input and output signals [@Mehlmann2023]. -This approach not only reduces development costs but also allows for the validation of components under scenarios that are difficult or unsafe to replicate real-world field scenarios. Moreover, VILLASnode supports the linking of simulators and real-time simulators of different vendors so that models do not need to be shared. Local simulator and simulation infrastructure can be combined in a powerful arrangement unavailable at any individual infrastructure. This approach has the additional advantage of allowing to co-simulate with heterogeneus methods, algorithms and communication protocols. The communication with the components, sensors or actuators can also be implemented using VILLASnode. +VILLASnode supports the coupling of real-time simulators of different hardware and software vendors, specifications and implementations [@monti_global_2018]. They play a crucial role in both academic research and industrial applications, especially within simulation of electrical power networks. They are primarily utilized for hardware-in-the-loop (HiL) simulations. For example, an electrical grid is emulated so that the physical component can interface safely via analog input and output signals [@Mehlmann2023]. +This approach not only reduces development costs but also allows for the validation of components under scenarios that are difficult or unsafe to replicate real-world field scenarios. Moreover, VILLASnode supports the linking of simulators and real-time simulators of different vendors so that models do not need to be shared. It allows for conversation of intellectual property during collaboration. Local simulator and simulation infrastructure can be combined in a powerful arrangement unavailable at any individual infrastructure. This approach has the additional advantage of allowing to co-simulate with heterogeneus methods, algorithms and communication protocols. The communication with the components, sensors or actuators can also be implemented using VILLASnode. -This can be extended to geographically distributed experiments. In this case, VILLASnode takes care of the communication between the different participants to the experiment which spans multiple infrastructures. Not only simulators can be included, but also physical devices can [@Bach2025]. Although communication latencies constrain the dynamics of the experiment for real-time applications, VILLASnode offers significant advantages such as leveraging existing infrastructure across sites and facilitating collaboration among interdisciplinary teams. Manufacturers, customers, and certifiers benefit from remote access and distributed testing while maintaining data confidentiality and intellectual property. Current work includes automation of integration of VILLASnode in practical field devices [@Pitz2024]. +This can be extended to geographically distributed experiments. In this case, VILLASnode takes care of the communication between the different participants to the experiment which spans multiple infrastructures. Not only simulators can be included, but also physical devices can be integrated [@Bach2025]. Although communication latencies constrain the dynamics of the experiment for real-time applications, VILLASnode offers significant advantages such as leveraging existing infrastructure across sites and facilitating collaboration among interdisciplinary teams. Manufacturers, customers, and certifiers benefit from remote access and distributed testing while maintaining data confidentiality and intellectual property. Current work includes automation of integration of VILLASnode in practical field devices [@Pitz2024]. # Features VILLASnode is a part of the VILLASframework, which offers several key features. From 9d90fedb0f3fbb69dc0427fda5b86eec30820b55 Mon Sep 17 00:00:00 2001 From: Alexandra Date: Thu, 15 May 2025 09:34:07 +0200 Subject: [PATCH 03/34] JOSS: make pre-commit compliant Signed-off-by: Alexandra --- paper.bib | 4 ++-- paper.md | 51 +++++++++++++++++++++++++++++---------------------- 2 files changed, 31 insertions(+), 24 deletions(-) diff --git a/paper.bib b/paper.bib index 3982acf22..47775f379 100644 --- a/paper.bib +++ b/paper.bib @@ -38,8 +38,8 @@ @article{Mehlmann2023 @article{Bach2025, author={Bach, Alexandra and Monti, Antonello}, - journal={IEEE Access}, - title={Remote Real-Time Testing of Physical Components Using Communication Setup Automation}, + journal={IEEE Access}, + title={Remote Real-Time Testing of Physical Components Using Communication Setup Automation}, year={2025}, volume={13}, number={}, diff --git a/paper.md b/paper.md index e012c361e..38b05f05a 100644 --- a/paper.md +++ b/paper.md @@ -1,11 +1,14 @@ --- title: 'VILLASnode: Open-source real-time coupling of distributed infrastructures' tags: + - C/C++ - Real-time - Distributed experiments - Electrical grid simulation + authors: + - name: Alexandra Bach orcid: 0009-0005-7385-4642 affiliation: 1 @@ -14,7 +17,7 @@ authors: affiliation: 1 - name: Laura Fuentes Grau orcid: 0009-0004-8997-7009 - - name: Steffen Vogel + - name: Steffen Vogel orcid: 0000-0003-3384-6750 affiliation: "1, 3" # (Multiple affiliations must be quoted) - name: Manuel Pitz @@ -23,10 +26,10 @@ authors: - name: Niklas Eiling orcid: 0000-0002-7011-9846 affiliation: 1 - - name: Felix Wege + - name: Felix Wege orcid: 0000-0001-6602-9875 affiliation: 1 - - name: Andres Acosta + - name: Andres Acosta orcid: 0000-0003-3066-8354 affiliation: 1 - name: Iris Köster @@ -36,12 +39,14 @@ authors: affiliation: "1,2" affiliations: + - name: Institute for Automation of Complex Power Systems, RWTH Aachen University, Germany index: 1 - name: Fraunhofer Institute for Applied Information Technology, Aachen, Germany index: 2 - name: OPAL-RT Germany GmbH index: 3 + date: 15 May 2025 bibliography: paper.bib @@ -50,42 +55,44 @@ bibliography: paper.bib # Summary VILLASnode is a software tool, designed to facilitate real-time data exchange between various components in geographically distributed real-time experiments. Components can be test beds, real-time simulators, software tools, and physical devices. -Whereas distributed computing, systems or algortihms aim to solve a common task, geographically distributed experiments link infrastructures with different components to make these components accessible to other infrastructures. Thus, data exchanges are possible which would not be possible in one single infrastructure. -VILLASnode serves as the gateway that connects components across different infrastructures by providing a set of protocols and customized third-party implementations, e.g., different simulators. It enables seamless collaboration in research and testing environments while safeguarding the intellectual property of the infrastructures. The components at every infrastructure appear as a black box. The infrastructure does not need to share models or confidential information. - -VILLASnode is a Linux command line tool and can run as installation from source or as container. It is written in C/C++ and designed in a modular way. -All components which are interfaced by the VILLASnode gateway are represented by nodes. These nodes act as sinks / sources for data specific to the component. Every node is an instance of a node-type. In a single VILLASnode instance, multiple instances of the same node-type can co-exist at the same time. -The basic data package, common for all node-types, includes timestamped data, constituting a sample. Up to 64 values can form a sample. -Samples may need modification or filtering. VILLASnode supports hooks for this purpose. Hooks are simple callback functions, which are called whenever a message is processed. -Paths take care of the processing and define the connections and dataflows between nodes. -Node-types, hooks, and paths need to be initalized in a configuration file which is passed when starting VILLASnode. -VILLASnode can be controlled remotely by an Application Programming Interface (API). It is used by the Python Wrapper allowing to control, configure and execute most of the functions of VILLASnode. This is useful if Python software tools are to be integrated in a distributed experiment. +Whereas distributed computing, systems or algortihms aim to solve a common task, geographically distributed experiments link infrastructures with different components to make these components accessible to other infrastructures. Thus, data exchanges are possible which would not be possible in one single infrastructure. +VILLASnode serves as the gateway that connects components across different infrastructures by providing a set of protocols and customized third-party implementations, e.g., different simulators. It enables seamless collaboration in research and testing environments while safeguarding the intellectual property of the infrastructures. The components at every infrastructure appear as a black box. The infrastructure does not need to share models or confidential information. + +VILLASnode is a Linux command line tool and can run as installation from source or as container. It is written in C/C++ and designed in a modular way. +All components which are interfaced by the VILLASnode gateway are represented by nodes. These nodes act as sinks or sources for data specific to the component. Every node is an instance of a node-type. In a single VILLASnode instance, multiple instances of the same node-type can co-exist at the same time. +The basic data package, common for all node-types, includes timestamped data, constituting a sample. Up to 64 values can form a sample. +Samples may need modification or filtering. VILLASnode supports hooks for this purpose. Hooks are simple callback functions, which are called whenever a message is processed. +Paths take care of the processing and define the connections and dataflows between nodes. +Node-types, hooks, and paths need to be initalized in a configuration file which is passed when starting VILLASnode. +VILLASnode can be controlled remotely by an Application Programming Interface (API). It is used by the Python Wrapper allowing to control, configure and execute most of the functions of VILLASnode. This is useful if Python software tools are to be integrated in a distributed experiment. In general, the interaction with VILLASnode is available for other tools and coding languages by using clients that implement basic functionalities, custom configurations and data conversions. -Since VILLASnode is written in C/C++ it supports real-time capabilites and can supports real-time tuning for Linux systems. +Since VILLASnode is written in C/C++ it supports real-time capabilites and can supports real-time tuning for Linux systems. # Statement of need -VILLASnode supports the coupling of real-time simulators of different hardware and software vendors, specifications and implementations [@monti_global_2018]. They play a crucial role in both academic research and industrial applications, especially within simulation of electrical power networks. They are primarily utilized for hardware-in-the-loop (HiL) simulations. For example, an electrical grid is emulated so that the physical component can interface safely via analog input and output signals [@Mehlmann2023]. +VILLASnode supports the coupling of real-time simulators of different hardware and software vendors, specifications and implementations [@monti_global_2018]. They play a crucial role in both academic research and industrial applications, especially within simulation of electrical power networks. They are primarily utilized for hardware-in-the-loop (HiL) simulations. For example, an electrical grid is emulated so that the physical component can interface safely via analog input and output signals [@Mehlmann2023]. This approach not only reduces development costs but also allows for the validation of components under scenarios that are difficult or unsafe to replicate real-world field scenarios. Moreover, VILLASnode supports the linking of simulators and real-time simulators of different vendors so that models do not need to be shared. It allows for conversation of intellectual property during collaboration. Local simulator and simulation infrastructure can be combined in a powerful arrangement unavailable at any individual infrastructure. This approach has the additional advantage of allowing to co-simulate with heterogeneus methods, algorithms and communication protocols. The communication with the components, sensors or actuators can also be implemented using VILLASnode. -This can be extended to geographically distributed experiments. In this case, VILLASnode takes care of the communication between the different participants to the experiment which spans multiple infrastructures. Not only simulators can be included, but also physical devices can be integrated [@Bach2025]. Although communication latencies constrain the dynamics of the experiment for real-time applications, VILLASnode offers significant advantages such as leveraging existing infrastructure across sites and facilitating collaboration among interdisciplinary teams. Manufacturers, customers, and certifiers benefit from remote access and distributed testing while maintaining data confidentiality and intellectual property. Current work includes automation of integration of VILLASnode in practical field devices [@Pitz2024]. +This can be extended to geographically distributed experiments. In this case, VILLASnode takes care of the communication between the different participants to the experiment which spans multiple infrastructures. Not only simulators can be included, but also physical devices can be integrated [@Bach2025]. Although communication latencies constrain the dynamics of the experiment for real-time applications, VILLASnode offers significant advantages such as leveraging existing infrastructure across sites and facilitating collaboration among interdisciplinary teams. Manufacturers, customers, and certifiers benefit from remote access and distributed testing while maintaining data confidentiality and intellectual property. Current work includes automation of integration of VILLASnode in practical field devices [@Pitz2024]. -# Features -VILLASnode is a part of the VILLASframework, which offers several key features. -Firstly, it includes VILLASweb, a tool designed for the visualization and monitoring of experiments. -Secondly, there is VILLASfpga, which provides hard real-time capabilities for VILLASnode. +# Features + +VILLASnode is a part of the VILLASframework, which offers several key features. +Firstly, it includes VILLASweb, a tool designed for the visualization and monitoring of experiments. +Secondly, there is VILLASfpga, which provides hard real-time capabilities for VILLASnode. Lastly, VILLAScontroller is currently under development and aims to automate simulation equipment. # Acknowledgements + - [RESERVE](http://re-serve.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 727481. - [VILLAS](https://villas.fein-aachen.org/website/): Funding provided by [JARA-ENERGY](http://www.jara.org/en/research/energy). Jülich-Aachen Research Alliance (JARA) is an initiative of RWTH Aachen University and Forschungszentrum Jülich. - [Urban Energy Lab 4.0](https://www.uel4-0.de/Home/): Funding is provided by the [European Regional Development Fund (EFRE)](https://ec.europa.eu/regional_policy/en/funding/erdf/). - [ERIGrid2.0](https://erigrid2.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 870620. -- [ENSURE](https://www.kopernikus-projekte.de/projekte/ensure): Federal Ministry of Education and Research supports the project under identification 03SFK1C0-3. +- [ENSURE](https://www.kopernikus-projekte.de/projekte/ensure): Federal Ministry of Education and Research supports the project under identification 03SFK1C0-3. - [NFDI4Energy](https://nfdi4energy.uol.de/): Funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) – 501865131. - [HYPERRIDE](https://hyperride.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 957788 - [Erigrid2.0](https://erigrid2.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 870620 - [AI-EFFECT](https://ai-effect.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 101172952 - [EnerTEF](https://enertef.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 101172887 -# References \ No newline at end of file +# References From 00834b99952a4ce808cc611e56202eac1c750a12 Mon Sep 17 00:00:00 2001 From: Alexandra Date: Thu, 15 May 2025 09:51:17 +0200 Subject: [PATCH 04/34] JOSS: make reuse compliant Signed-off-by: Alexandra --- paper.bib | 4 ++++ paper.md | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/paper.bib b/paper.bib index 47775f379..bd876c7b4 100644 --- a/paper.bib +++ b/paper.bib @@ -1,3 +1,7 @@ +% Author: Alexandra Bach +% SPDX-FileCopyrightText: 2014-2025 Institute for Automation of Complex Power Systems, RWTH Aachen University +% SPDX-License-Identifier: Apache-2.0 + @article{monti_global_2018, title = {A Global Real-Time Superlab: Enabling High Penetration of Power Electronics in the Electric Grid}, volume = {5}, diff --git a/paper.md b/paper.md index 38b05f05a..5b620def3 100644 --- a/paper.md +++ b/paper.md @@ -1,3 +1,9 @@ + + --- title: 'VILLASnode: Open-source real-time coupling of distributed infrastructures' tags: From a33048593038812baab5fa1ba1ba200ba1405802 Mon Sep 17 00:00:00 2001 From: Alexandra Date: Thu, 15 May 2025 12:13:21 +0200 Subject: [PATCH 05/34] JOSS: make markdownlint compliant Signed-off-by: Alexandra --- paper.md | 87 +++++++++++++++++++++++++++----------------------------- 1 file changed, 42 insertions(+), 45 deletions(-) diff --git a/paper.md b/paper.md index 5b620def3..21069fa3a 100644 --- a/paper.md +++ b/paper.md @@ -7,51 +7,48 @@ SPDX-License-Identifier: Apache-2.0 --- title: 'VILLASnode: Open-source real-time coupling of distributed infrastructures' tags: - - - C/C++ - - Real-time - - Distributed experiments - - Electrical grid simulation +- C/C++ +- Real-time +- Distributed experiments +- Electrical grid simulation authors: - - - name: Alexandra Bach - orcid: 0009-0005-7385-4642 - affiliation: 1 - - name: Leonardo Carreras - orcid: 0000-0002-9033-1051 - affiliation: 1 - - name: Laura Fuentes Grau - orcid: 0009-0004-8997-7009 - - name: Steffen Vogel - orcid: 0000-0003-3384-6750 - affiliation: "1, 3" # (Multiple affiliations must be quoted) - - name: Manuel Pitz - orcid: 0000-0002-6252-2029 - affiliation: 1 - - name: Niklas Eiling - orcid: 0000-0002-7011-9846 - affiliation: 1 - - name: Felix Wege - orcid: 0000-0001-6602-9875 - affiliation: 1 - - name: Andres Acosta - orcid: 0000-0003-3066-8354 - affiliation: 1 - - name: Iris Köster - affiliation: 1 - - name: Prof. Antonello Monti - orcid: 0000-0003-1914-9801 - affiliation: "1,2" +- name: Alexandra Bach + orcid: 0009-0005-7385-4642 + affiliation: 1 +- name: Leonardo Carreras + orcid: 0000-0002-9033-1051 + affiliation: 1 +- name: Laura Fuentes Grau + orcid: 0009-0004-8997-7009 +- name: Steffen Vogel + orcid: 0000-0003-3384-6750 + affiliation: "1, 3" # (Multiple affiliations must be quoted) +- name: Manuel Pitz + orcid: 0000-0002-6252-2029 + affiliation: 1 +- name: Niklas Eiling + orcid: 0000-0002-7011-9846 + affiliation: 1 +- name: Felix Wege + orcid: 0000-0001-6602-9875 + affiliation: 1 +- name: Andres Acosta + orcid: 0000-0003-3066-8354 + affiliation: 1 +- name: Iris Köster + affiliation: 1 +- name: Prof. Antonello Monti + orcid: 0000-0003-1914-9801 + affiliation: "1,2" affiliations: - - - name: Institute for Automation of Complex Power Systems, RWTH Aachen University, Germany - index: 1 - - name: Fraunhofer Institute for Applied Information Technology, Aachen, Germany - index: 2 - - name: OPAL-RT Germany GmbH - index: 3 +- name: Institute for Automation of Complex Power Systems, RWTH Aachen University, Germany + index: 1 +- name: Fraunhofer Institute for Applied Information Technology, Aachen, Germany + index: 2 +- name: OPAL-RT Germany GmbH + index: 3 date: 15 May 2025 bibliography: paper.bib @@ -96,9 +93,9 @@ Lastly, VILLAScontroller is currently under development and aims to automate sim - [ERIGrid2.0](https://erigrid2.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 870620. - [ENSURE](https://www.kopernikus-projekte.de/projekte/ensure): Federal Ministry of Education and Research supports the project under identification 03SFK1C0-3. - [NFDI4Energy](https://nfdi4energy.uol.de/): Funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) – 501865131. -- [HYPERRIDE](https://hyperride.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 957788 -- [Erigrid2.0](https://erigrid2.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 870620 -- [AI-EFFECT](https://ai-effect.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 101172952 -- [EnerTEF](https://enertef.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 101172887 +- [HYPERRIDE](https://hyperride.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 957788. +- [Erigrid2.0](https://erigrid2.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 870620. +- [AI-EFFECT](https://ai-effect.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 101172952. +- [EnerTEF](https://enertef.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 101172887. # References From f263b416bd59915cb538d88f86b17136372795e0 Mon Sep 17 00:00:00 2001 From: Alexandra Date: Thu, 15 May 2025 12:21:12 +0200 Subject: [PATCH 06/34] JOSS: add blank lines Signed-off-by: Alexandra --- paper.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/paper.md b/paper.md index 21069fa3a..e2bf12624 100644 --- a/paper.md +++ b/paper.md @@ -7,12 +7,14 @@ SPDX-License-Identifier: Apache-2.0 --- title: 'VILLASnode: Open-source real-time coupling of distributed infrastructures' tags: + - C/C++ - Real-time - Distributed experiments - Electrical grid simulation authors: + - name: Alexandra Bach orcid: 0009-0005-7385-4642 affiliation: 1 @@ -43,6 +45,7 @@ authors: affiliation: "1,2" affiliations: + - name: Institute for Automation of Complex Power Systems, RWTH Aachen University, Germany index: 1 - name: Fraunhofer Institute for Applied Information Technology, Aachen, Germany From be5de28cff2225307650eb8cd40875c616bd6816 Mon Sep 17 00:00:00 2001 From: Alexandra Date: Tue, 20 May 2025 13:55:50 +0200 Subject: [PATCH 07/34] JOSS internal feedback Signed-off-by: Alexandra --- VILLASnode-modular.png | Bin 0 -> 155570 bytes paper.bib | 8 ++++++++ paper.md | 14 ++++++++++---- 3 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 VILLASnode-modular.png diff --git a/VILLASnode-modular.png b/VILLASnode-modular.png new file mode 100644 index 0000000000000000000000000000000000000000..5101432a21b764f6bc5bdcd8d014c8d2e404ab20 GIT binary patch literal 155570 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

-JZ{@m0LD@)iA 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%0A&&m1t~X&Pm!h(Hhl$8V;jyW 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 literal 0 HcmV?d00001 diff --git a/paper.bib b/paper.bib index bd876c7b4..4c51ba08f 100644 --- a/paper.bib +++ b/paper.bib @@ -2,6 +2,14 @@ @eonerc.rwth-aachen.de> % SPDX-FileCopyrightText: 2014-2025 Institute for Automation of Complex Power Systems, RWTH Aachen University % SPDX-License-Identifier: Apache-2.0 +@misc{villasnode_docs, + author = {Vogel, Steffen and Bach, Alexandra and Potter, Dennis and Stevic, Marija and Pitz, Manuel and Mirz, Markus}, + title = {VILLASnode Documentation}, + howpublished = {\url{https://villas.fein-aachen.org/docs/node/}}, + note = {Accessed: 2025-05-20}, + year = {2025} +} + @article{monti_global_2018, title = {A Global Real-Time Superlab: Enabling High Penetration of Power Electronics in the Electric Grid}, volume = {5}, diff --git a/paper.md b/paper.md index e2bf12624..c93e7f458 100644 --- a/paper.md +++ b/paper.md @@ -65,14 +65,20 @@ Whereas distributed computing, systems or algortihms aim to solve a common task, VILLASnode serves as the gateway that connects components across different infrastructures by providing a set of protocols and customized third-party implementations, e.g., different simulators. It enables seamless collaboration in research and testing environments while safeguarding the intellectual property of the infrastructures. The components at every infrastructure appear as a black box. The infrastructure does not need to share models or confidential information. VILLASnode is a Linux command line tool and can run as installation from source or as container. It is written in C/C++ and designed in a modular way. -All components which are interfaced by the VILLASnode gateway are represented by nodes. These nodes act as sinks or sources for data specific to the component. Every node is an instance of a node-type. In a single VILLASnode instance, multiple instances of the same node-type can co-exist at the same time. +All components which are interfaced by the VILLASnode gateway are represented by nodes (n). These nodes act as sinks or sources for data specific to the component. Every node is an instance of a node-type. In a single VILLASnode instance, multiple instances of the same node-type can co-exist at the same time. The basic data package, common for all node-types, includes timestamped data, constituting a sample. Up to 64 values can form a sample. -Samples may need modification or filtering. VILLASnode supports hooks for this purpose. Hooks are simple callback functions, which are called whenever a message is processed. -Paths take care of the processing and define the connections and dataflows between nodes. +Samples may need modification or filtering. VILLASnode supports hooks (h) for this purpose. Hooks are simple callback functions, which are called whenever a message is processed. +Paths (p) take care of the processing and define the connections and dataflows between nodes. Node-types, hooks, and paths need to be initalized in a configuration file which is passed when starting VILLASnode. +Figure 1 shows an example of an experiment where five different node-types are used, connected by three paths, using three hooks. +It includes queues (q) and registers (r). Queues temporarily store data before data is forwarded to registers. Registers provide the possibility to (de-)mulitplex data and to create new samples. + +![Example of modular exprimental design with nodes, paths, and hooks [@villasnode_docs].](VILLASnode-modular.png) + VILLASnode can be controlled remotely by an Application Programming Interface (API). It is used by the Python Wrapper allowing to control, configure and execute most of the functions of VILLASnode. This is useful if Python software tools are to be integrated in a distributed experiment. In general, the interaction with VILLASnode is available for other tools and coding languages by using clients that implement basic functionalities, custom configurations and data conversions. -Since VILLASnode is written in C/C++ it supports real-time capabilites and can supports real-time tuning for Linux systems. +Since VILLASnode is written in C/C++ it supports real-time capabilites and can supports real-time tuning for Linux systems. +To provide all necassary information, VILLASnode has a detailed documentation [@villasnode_docs]. It includes installation recommendations and best practices for development as well as example configurations and beginners guides, so-called labs. # Statement of need From cf2436012b0709fc3980087ab4337642b70dfa77 Mon Sep 17 00:00:00 2001 From: Alexandra Date: Tue, 20 May 2025 14:01:05 +0200 Subject: [PATCH 08/34] Add copyright to image Signed-off-by: Alexandra --- VILLASnode-modular.png | Bin 155570 -> 155847 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/VILLASnode-modular.png b/VILLASnode-modular.png index 5101432a21b764f6bc5bdcd8d014c8d2e404ab20..b64d04f597da46aa54b097c546be5e6eec97eac9 100644 GIT binary patch delta 296 zcmdnApY!-Z&IzIQ45cNm5hc#~1(ija=@}&q!2vE2x^9^{sc@l?)QS=-1tSAP6I~+% zBU1&>yyB9~lG2h?g|z%41;^5o{M^Kn%=|os{4@pU{M>?^)Cz@w{PNTyh2YBKlGNN{ z9fhFq5Dx{%#N>?BJcZD_%(B#?;>?mt&B^tr>lqjrI;uh0P^b25;y4+c+skK_KJhfBw>-jvm%cM<@S& zTshnB{`XyPotFiNd}MPzzUaixl Date: Tue, 20 May 2025 14:18:49 +0200 Subject: [PATCH 09/34] JOSS: fix reuse and pre-commit Signed-off-by: Alexandra --- REUSE.toml | 1 + paper.md | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/REUSE.toml b/REUSE.toml index 47f97d039..27f6bbf35 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -24,6 +24,7 @@ path = [ "etc/labs/lab3.pcap", "tests/valgrind.supp", "packaging/archlinux/villas-node.install", + "VILLASnode-modular.png" ] precedence = "aggregate" SPDX-FileCopyrightText = "2018-2023, Institute for Automation of Complex Power Systems, RWTH Aachen University" diff --git a/paper.md b/paper.md index c93e7f458..cffd8b172 100644 --- a/paper.md +++ b/paper.md @@ -70,15 +70,15 @@ The basic data package, common for all node-types, includes timestamped data, co Samples may need modification or filtering. VILLASnode supports hooks (h) for this purpose. Hooks are simple callback functions, which are called whenever a message is processed. Paths (p) take care of the processing and define the connections and dataflows between nodes. Node-types, hooks, and paths need to be initalized in a configuration file which is passed when starting VILLASnode. -Figure 1 shows an example of an experiment where five different node-types are used, connected by three paths, using three hooks. -It includes queues (q) and registers (r). Queues temporarily store data before data is forwarded to registers. Registers provide the possibility to (de-)mulitplex data and to create new samples. +Figure 1 shows an example of an experiment where five different node-types are used, connected by three paths, using three hooks. +It includes queues (q) and registers (r). Queues temporarily store data before data is forwarded to registers. Registers provide the possibility to (de-)mulitplex data and to create new samples. ![Example of modular exprimental design with nodes, paths, and hooks [@villasnode_docs].](VILLASnode-modular.png) VILLASnode can be controlled remotely by an Application Programming Interface (API). It is used by the Python Wrapper allowing to control, configure and execute most of the functions of VILLASnode. This is useful if Python software tools are to be integrated in a distributed experiment. In general, the interaction with VILLASnode is available for other tools and coding languages by using clients that implement basic functionalities, custom configurations and data conversions. -Since VILLASnode is written in C/C++ it supports real-time capabilites and can supports real-time tuning for Linux systems. -To provide all necassary information, VILLASnode has a detailed documentation [@villasnode_docs]. It includes installation recommendations and best practices for development as well as example configurations and beginners guides, so-called labs. +Since VILLASnode is written in C/C++ it supports real-time capabilites and can supports real-time tuning for Linux systems. +To provide all necassary information, VILLASnode has a detailed documentation [@villasnode_docs]. It includes installation recommendations and best practices for development as well as example configurations and beginners guides, so-called labs. # Statement of need From 59c97812a34ad95ad1f5d9085d02a2bb0b0e5905 Mon Sep 17 00:00:00 2001 From: Alexandra Date: Wed, 28 May 2025 08:27:00 +0200 Subject: [PATCH 10/34] JOSS Feedback Title Signed-off-by: Alexandra --- VILLASnode-modular.png | Bin 155847 -> 0 bytes VILLASnode_paths.svg | 1289 ++++++++++++++++++++++++++++++++++++++++ paper.md | 6 +- 3 files changed, 1292 insertions(+), 3 deletions(-) delete mode 100644 VILLASnode-modular.png create mode 100644 VILLASnode_paths.svg diff --git a/VILLASnode-modular.png b/VILLASnode-modular.png deleted file mode 100644 index b64d04f597da46aa54b097c546be5e6eec97eac9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 155847 zcmdRVg;$ha)Gr~ev~)9+-NMkIfaK6Qba&kG z{l5G9-ap}DRZJ6Yp9bMj7`!H!adt19P>H4~RSUbA&FzM*OP+^j@fY@0( zF}-xM_p)|#xA*YnN(ml72@vh~!oWkv!kfv(&DjPuF_VX{i#3zIiw6V^%_mz5T7~~Z z_MyCYu%dK_?LcEwgKiz+?OT`$6R{ogp2$-t8j4ljopQb6nktamse&B`oph79^Zo;yGW zrz^@?=`GfbZq5pU>x2uJbePQQsDW*um%piw3xMl%3$B^yllyO=nJDqcsE$2^!NEo! z_N?Q9^mDiBZs*ZDq2g9pYwK~Q=kDP>@<}ZW#sDuU#ZPG z-=Kyt3>6LdyV}0Zqp$`tZiCQVc9p1qwl_?)E%I!V6(+1X4@Z4u+>yl->Y5Yje;Ayn z^M7R`kHy3{7%Xeba7^qy1Hw}e7&Fj6HwaEha9>EkGy1jLo*xsQn4P?)2HT(Dg)XutW?(Hk{3f%bbWTI5)9a&4ggy2;g zYRK>rV=A_WS2!`O>$0mj1�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�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 Y`c<#=^9X=T}rQp(wBm7=I}Z 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�!?#45de<$bUjE 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

tD>Bqg|3utAW4{=xr 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + h1 + + + + + + + + + + OPALSim. + + + + LabVIEW + + + + VILLASnode + + + + RTDSSim. + + + + + h2 + + + + Web-Interf. + + + + + + r2 + + + + h3 + + + + + + + + + + + qo2 + + + + + + + + + qi1 + + p1 + + + + + + + + + + qo1 + + + + + + + + + + + qo3 + + + + + + + + + + + qo4 + + + + + + + + + + + qi5 + + + + + + + + + + + + + qi2 + + + + + + + + + + + qi3 + + + + + + + + + + + qi4 + + n1 + n2 + n5 + n4 + n3 + + + VILLASnode + p2 + p3 + + + + + + + + + + r1 + + + + r3 + + + diff --git a/paper.md b/paper.md index cffd8b172..4a5f42de6 100644 --- a/paper.md +++ b/paper.md @@ -5,7 +5,7 @@ SPDX-License-Identifier: Apache-2.0 --> --- -title: 'VILLASnode: Open-source real-time coupling of distributed infrastructures' +title: 'VILLASnode: A Open-Source Real-time Multi-protocol Gateway' tags: - C/C++ @@ -53,7 +53,7 @@ affiliations: - name: OPAL-RT Germany GmbH index: 3 -date: 15 May 2025 +date: 28 May 2025 bibliography: paper.bib --- @@ -73,7 +73,7 @@ Node-types, hooks, and paths need to be initalized in a configuration file which Figure 1 shows an example of an experiment where five different node-types are used, connected by three paths, using three hooks. It includes queues (q) and registers (r). Queues temporarily store data before data is forwarded to registers. Registers provide the possibility to (de-)mulitplex data and to create new samples. -![Example of modular exprimental design with nodes, paths, and hooks [@villasnode_docs].](VILLASnode-modular.png) +![Example of modular exprimental design with nodes, paths, and hooks [@villasnode_docs].](VILLASnode_paths.svg) VILLASnode can be controlled remotely by an Application Programming Interface (API). It is used by the Python Wrapper allowing to control, configure and execute most of the functions of VILLASnode. This is useful if Python software tools are to be integrated in a distributed experiment. In general, the interaction with VILLASnode is available for other tools and coding languages by using clients that implement basic functionalities, custom configurations and data conversions. From 0b5d883f38f53288c3304554c37f25243ad03b19 Mon Sep 17 00:00:00 2001 From: Alexandra Date: Mon, 2 Jun 2025 08:36:31 +0200 Subject: [PATCH 11/34] JOSS: Remove blank lines in metadata Signed-off-by: Alexandra --- .pre-commit-config.yaml | 2 ++ REUSE.toml | 2 +- paper.md | 7 ------- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c7baf4508..144dff9e2 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -9,6 +9,7 @@ repos: hooks: - id: trailing-whitespace exclude: \.patch$ + exclude: ^paper\.md$ - id: end-of-file-fixer exclude: \.(svg|patch)$ - id: check-ast @@ -19,6 +20,7 @@ repos: exclude: .devcontainer/devcontainer\.json - id: check-toml - id: check-added-large-files + exclude: ^paper\.md$ - id: pretty-format-json # black has its own mind of formatting Jupyter notebooks exclude: \.ipynb$|^.devcontainer/devcontainer\.json$|package-lock\.json$ diff --git a/REUSE.toml b/REUSE.toml index 27f6bbf35..e3199e444 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -24,7 +24,7 @@ path = [ "etc/labs/lab3.pcap", "tests/valgrind.supp", "packaging/archlinux/villas-node.install", - "VILLASnode-modular.png" + "VILLASnode-modular.svg", ] precedence = "aggregate" SPDX-FileCopyrightText = "2018-2023, Institute for Automation of Complex Power Systems, RWTH Aachen University" diff --git a/paper.md b/paper.md index 4a5f42de6..7febdd8e7 100644 --- a/paper.md +++ b/paper.md @@ -7,14 +7,11 @@ SPDX-License-Identifier: Apache-2.0 --- title: 'VILLASnode: A Open-Source Real-time Multi-protocol Gateway' tags: - - C/C++ - Real-time - Distributed experiments - Electrical grid simulation - authors: - - name: Alexandra Bach orcid: 0009-0005-7385-4642 affiliation: 1 @@ -43,19 +40,15 @@ authors: - name: Prof. Antonello Monti orcid: 0000-0003-1914-9801 affiliation: "1,2" - affiliations: - - name: Institute for Automation of Complex Power Systems, RWTH Aachen University, Germany index: 1 - name: Fraunhofer Institute for Applied Information Technology, Aachen, Germany index: 2 - name: OPAL-RT Germany GmbH index: 3 - date: 28 May 2025 bibliography: paper.bib - --- # Summary From 3b2d4a2678d020a1c7757e9f55ef929dd3014951 Mon Sep 17 00:00:00 2001 From: Alexandra Date: Mon, 2 Jun 2025 08:54:04 +0200 Subject: [PATCH 12/34] JOSS: fix pre-commit Signed-off-by: Alexandra --- .pre-commit-config.yaml | 4 ++-- REUSE.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 144dff9e2..785facb72 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -8,8 +8,7 @@ repos: rev: v5.0.0 hooks: - id: trailing-whitespace - exclude: \.patch$ - exclude: ^paper\.md$ + exclude: \.patch$|^paper\.md$ - id: end-of-file-fixer exclude: \.(svg|patch)$ - id: check-ast @@ -56,4 +55,5 @@ repos: rev: "v0.13.0" hooks: - id: markdownlint + exclude: ^paper\.md$ args: [-r, "~MD013,~MD033,~MD024"] diff --git a/REUSE.toml b/REUSE.toml index e3199e444..028c626ef 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -24,7 +24,7 @@ path = [ "etc/labs/lab3.pcap", "tests/valgrind.supp", "packaging/archlinux/villas-node.install", - "VILLASnode-modular.svg", + "VILLASnode_paths.svg", ] precedence = "aggregate" SPDX-FileCopyrightText = "2018-2023, Institute for Automation of Complex Power Systems, RWTH Aachen University" From e1763a9c5ec6d85dd0c771e56c4c8dd7b7c07642 Mon Sep 17 00:00:00 2001 From: Alexandra Date: Mon, 2 Jun 2025 11:39:31 +0200 Subject: [PATCH 13/34] JOSS: make JOSS CI compliant Signed-off-by: Alexandra --- REUSE.toml | 1 + paper.md | 9 ++------- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/REUSE.toml b/REUSE.toml index 028c626ef..508b24f71 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -25,6 +25,7 @@ path = [ "tests/valgrind.supp", "packaging/archlinux/villas-node.install", "VILLASnode_paths.svg", + "paper.md", ] precedence = "aggregate" SPDX-FileCopyrightText = "2018-2023, Institute for Automation of Complex Power Systems, RWTH Aachen University" diff --git a/paper.md b/paper.md index 7febdd8e7..57bc8e749 100644 --- a/paper.md +++ b/paper.md @@ -1,11 +1,5 @@ - - --- -title: 'VILLASnode: A Open-Source Real-time Multi-protocol Gateway' +title: 'VILLASnode: An Open-Source Real-time Multi-protocol Gateway' tags: - C/C++ - Real-time @@ -20,6 +14,7 @@ authors: affiliation: 1 - name: Laura Fuentes Grau orcid: 0009-0004-8997-7009 + affiliation: 1 - name: Steffen Vogel orcid: 0000-0003-3384-6750 affiliation: "1, 3" # (Multiple affiliations must be quoted) From 4ba4c2e13e21bd6bc995bb8a8bd4bc15c05c5f38 Mon Sep 17 00:00:00 2001 From: Alexandra Date: Wed, 4 Jun 2025 16:11:01 +0200 Subject: [PATCH 14/34] JOSS: fix ref Signed-off-by: Alexandra --- REUSE.toml | 1 + paper.bib | 4 ---- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/REUSE.toml b/REUSE.toml index 508b24f71..7529df160 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -26,6 +26,7 @@ path = [ "packaging/archlinux/villas-node.install", "VILLASnode_paths.svg", "paper.md", + "paper.bib", ] precedence = "aggregate" SPDX-FileCopyrightText = "2018-2023, Institute for Automation of Complex Power Systems, RWTH Aachen University" diff --git a/paper.bib b/paper.bib index 4c51ba08f..7214c1449 100644 --- a/paper.bib +++ b/paper.bib @@ -1,7 +1,3 @@ -% Author: Alexandra Bach -% SPDX-FileCopyrightText: 2014-2025 Institute for Automation of Complex Power Systems, RWTH Aachen University -% SPDX-License-Identifier: Apache-2.0 - @misc{villasnode_docs, author = {Vogel, Steffen and Bach, Alexandra and Potter, Dennis and Stevic, Marija and Pitz, Manuel and Mirz, Markus}, title = {VILLASnode Documentation}, From 9509e8708e1ff9b3f2438b24aecaa6660e3f9015 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Fri, 20 Jun 2025 09:56:21 +0200 Subject: [PATCH 15/34] fix(paper): Harmonize style of affiliations Signed-off-by: Steffen Vogel --- paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paper.md b/paper.md index 57bc8e749..87c96982e 100644 --- a/paper.md +++ b/paper.md @@ -34,7 +34,7 @@ authors: affiliation: 1 - name: Prof. Antonello Monti orcid: 0000-0003-1914-9801 - affiliation: "1,2" + affiliation: "1, 2" affiliations: - name: Institute for Automation of Complex Power Systems, RWTH Aachen University, Germany index: 1 From dde2ff3559b64d92fcfa81a35842647af8efea1e Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Fri, 20 Jun 2025 09:57:01 +0200 Subject: [PATCH 16/34] fix(paper): Remove duplicate ERIGrid acknowledgement Signed-off-by: Steffen Vogel --- paper.md | 1 - 1 file changed, 1 deletion(-) diff --git a/paper.md b/paper.md index 87c96982e..086435af7 100644 --- a/paper.md +++ b/paper.md @@ -91,7 +91,6 @@ Lastly, VILLAScontroller is currently under development and aims to automate sim - [ENSURE](https://www.kopernikus-projekte.de/projekte/ensure): Federal Ministry of Education and Research supports the project under identification 03SFK1C0-3. - [NFDI4Energy](https://nfdi4energy.uol.de/): Funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) – 501865131. - [HYPERRIDE](https://hyperride.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 957788. -- [Erigrid2.0](https://erigrid2.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 870620. - [AI-EFFECT](https://ai-effect.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 101172952. - [EnerTEF](https://enertef.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 101172887. From 3bac0c55f59cbe7ae207e3fafe4cfcf9c3ba9f7a Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Fri, 20 Jun 2025 10:56:13 +0200 Subject: [PATCH 17/34] fix(paper): Use LaTeX mode for referencing symbols in figure Signed-off-by: Steffen Vogel --- paper.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/paper.md b/paper.md index 086435af7..ca4466942 100644 --- a/paper.md +++ b/paper.md @@ -53,13 +53,13 @@ Whereas distributed computing, systems or algortihms aim to solve a common task, VILLASnode serves as the gateway that connects components across different infrastructures by providing a set of protocols and customized third-party implementations, e.g., different simulators. It enables seamless collaboration in research and testing environments while safeguarding the intellectual property of the infrastructures. The components at every infrastructure appear as a black box. The infrastructure does not need to share models or confidential information. VILLASnode is a Linux command line tool and can run as installation from source or as container. It is written in C/C++ and designed in a modular way. -All components which are interfaced by the VILLASnode gateway are represented by nodes (n). These nodes act as sinks or sources for data specific to the component. Every node is an instance of a node-type. In a single VILLASnode instance, multiple instances of the same node-type can co-exist at the same time. +All components which are interfaced by the VILLASnode gateway are represented by nodes ($n$). These nodes act as sinks or sources for data specific to the component. Every node is an instance of a node-type. In a single VILLASnode instance, multiple instances of the same node-type can co-exist at the same time. The basic data package, common for all node-types, includes timestamped data, constituting a sample. Up to 64 values can form a sample. -Samples may need modification or filtering. VILLASnode supports hooks (h) for this purpose. Hooks are simple callback functions, which are called whenever a message is processed. -Paths (p) take care of the processing and define the connections and dataflows between nodes. +Samples may need modification or filtering. VILLASnode supports hooks ($h$) for this purpose. Hooks are simple callback functions, which are called whenever a message is processed. +Paths ($p$) take care of the processing and define the connections and dataflows between nodes. Node-types, hooks, and paths need to be initalized in a configuration file which is passed when starting VILLASnode. Figure 1 shows an example of an experiment where five different node-types are used, connected by three paths, using three hooks. -It includes queues (q) and registers (r). Queues temporarily store data before data is forwarded to registers. Registers provide the possibility to (de-)mulitplex data and to create new samples. +It includes queues ($q$) and registers ($r$). Queues temporarily store data before data is forwarded to registers. Registers provide the possibility to (de-)mulitplex data and to create new samples. ![Example of modular exprimental design with nodes, paths, and hooks [@villasnode_docs].](VILLASnode_paths.svg) From df860777b5de67fc21c2e4996001afe842874bee Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Fri, 20 Jun 2025 10:57:25 +0200 Subject: [PATCH 18/34] fix(paper): Move JOSS paper into subdirectory Signed-off-by: Steffen Vogel --- VILLASnode_paths.svg => paper/figures/VILLASnode_paths.svg | 0 paper.bib => paper/paper.bib | 0 paper.md => paper/paper.md | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) rename VILLASnode_paths.svg => paper/figures/VILLASnode_paths.svg (100%) rename paper.bib => paper/paper.bib (100%) rename paper.md => paper/paper.md (99%) diff --git a/VILLASnode_paths.svg b/paper/figures/VILLASnode_paths.svg similarity index 100% rename from VILLASnode_paths.svg rename to paper/figures/VILLASnode_paths.svg diff --git a/paper.bib b/paper/paper.bib similarity index 100% rename from paper.bib rename to paper/paper.bib diff --git a/paper.md b/paper/paper.md similarity index 99% rename from paper.md rename to paper/paper.md index ca4466942..32f5f1304 100644 --- a/paper.md +++ b/paper/paper.md @@ -61,7 +61,7 @@ Node-types, hooks, and paths need to be initalized in a configuration file which Figure 1 shows an example of an experiment where five different node-types are used, connected by three paths, using three hooks. It includes queues ($q$) and registers ($r$). Queues temporarily store data before data is forwarded to registers. Registers provide the possibility to (de-)mulitplex data and to create new samples. -![Example of modular exprimental design with nodes, paths, and hooks [@villasnode_docs].](VILLASnode_paths.svg) +![Example of modular exprimental design with nodes, paths, and hooks [@villasnode_docs].](figures/VILLASnode_paths.svg) VILLASnode can be controlled remotely by an Application Programming Interface (API). It is used by the Python Wrapper allowing to control, configure and execute most of the functions of VILLASnode. This is useful if Python software tools are to be integrated in a distributed experiment. In general, the interaction with VILLASnode is available for other tools and coding languages by using clients that implement basic functionalities, custom configurations and data conversions. From 427ac7ef1966f9a2d1cc87c3db29073104f72613 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Fri, 20 Jun 2025 11:04:32 +0200 Subject: [PATCH 19/34] feat(paper): Add OpenJournals GitHub workflow Signed-off-by: Steffen Vogel --- .github/workflows/paper.yaml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 .github/workflows/paper.yaml diff --git a/.github/workflows/paper.yaml b/.github/workflows/paper.yaml new file mode 100644 index 000000000..8a0981a28 --- /dev/null +++ b/.github/workflows/paper.yaml @@ -0,0 +1,32 @@ +# SPDX-FileCopyrightText: 2025 OPAL-RT Germany GmbH +# SPDX-License-Identifier: Apache-2.0 + +--- +name: Draft PDF + +on: + push: + paths: + - paper/** + - .github/workflows/paper.yaml + +jobs: + paper: + runs-on: ubuntu-latest + name: Paper Draft + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Build draft PDF + uses: openjournals/openjournals-draft-action@v1.0 + with: + journal: joss + paper-path: paper/paper.md + + - name: Upload + uses: actions/upload-artifact@v4 + with: + name: paper + path: paper/paper.pdf From 93b0e71ef50300de8ae3103f40fc54943ea729cd Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Fri, 20 Jun 2025 11:11:35 +0200 Subject: [PATCH 20/34] fix(paper): Fix viewbox of SVG figure Signed-off-by: Steffen Vogel --- paper/figures/VILLASnode_paths.svg | 890 +++++++++++++---------------- 1 file changed, 410 insertions(+), 480 deletions(-) diff --git a/paper/figures/VILLASnode_paths.svg b/paper/figures/VILLASnode_paths.svg index 61d180b0a..c1f54a913 100644 --- a/paper/figures/VILLASnode_paths.svg +++ b/paper/figures/VILLASnode_paths.svg @@ -2,23 +2,23 @@ + inkscape:export-ydpi="90" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> + units="mm" + inkscape:showpageshadow="2" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" /> @@ -208,7 +211,6 @@ image/svg+xml - @@ -216,7 +218,7 @@ inkscape:label="Ebene 1" inkscape:groupmode="layer" id="layer1" - transform="translate(-6.53125,-10.771783)"> + transform="translate(4.7424423,-10.570241)"> + transform="translate(2.0644909)"> hh1 + style="font-size:3.98274px;baseline-shift:sub;fill:#000000">1 @@ -278,135 +279,92 @@ inkscape:connector-curvature="0" id="path10058" d="m 12.335082,103.57522 19.37075,0.16887" - style="fill:none;stroke:#37c837;stroke-width:0.96499997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#marker10062)" + style="fill:none;stroke:#37c837;stroke-width:0.965;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker10062)" sodipodi:nodetypes="cc" /> - - - OPALSim. - - - - LabVIEW - - - - VILLASnode - - - - + OPALSim. + + LabVIEW + + RTDSSim. - + y="29.888403" + style="font-size:4.23333px;line-height:1.25">RTDSSim. + transform="translate(2.257778)"> h2 + style="font-size:3.98274px;baseline-shift:sub">2 - - - + Web-Interf. - + sodipodi:role="line">Web-Interf. + transform="translate(-4.515556)"> r2 + transform="translate(2.257778)"> h3 + transform="translate(-15.804446)"> - + style="fill:none;stroke:#000000;stroke-width:1.77165;stroke-miterlimit:4;stroke-dasharray:none" + cx="-201.66058" + cy="126.56474" + r="16.403013" /> + d="m -76.374886,41.542984 h 21.104142 v 8.713967 h -21.104142" + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m -61.784854,41.790376 v 8.489713" + style="fill:none;stroke:#000000;stroke-width:0.282222px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> qqo2 + style="font-size:3.98274px;baseline-shift:sub">o2 - + + transform="matrix(0.28222224,0,0,0.28222224,125.04991,-4.4443064)" + cx="-201.66058" + cy="126.56474" + r="16.403013" /> + d="m 53.475093,27.030225 v 8.489711" + style="fill:none;stroke:#000000;stroke-width:0.282222px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m 50.231577,27.030224 v 8.489713" + style="fill:none;stroke:#000000;stroke-width:0.282222px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> qi1 pp1 + style="font-size:3.98274px;baseline-shift:sub">1 + transform="translate(5.0800004)"> - + transform="matrix(0.28222224,0,0,0.28222224,6.5464477,10.180582)" + cx="-201.66058" + cy="126.56474" + r="16.403013" /> + d="m -65.028371,41.727491 v 8.489711" + style="fill:none;stroke:#000000;stroke-width:0.282222px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -68.271887,41.790376 v 8.489713" + style="fill:none;stroke:#000000;stroke-width:0.282222px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> qqo1 + style="font-size:3.98274px;baseline-shift:sub">o1 + transform="translate(5.0800004)"> - + transform="matrix(0.28222224,0,0,0.28222224,6.5464477,10.180582)" + cx="-201.66058" + cy="126.56474" + r="16.403013" /> + d="m -65.028371,41.727491 v 8.489711" + style="fill:none;stroke:#000000;stroke-width:0.282222px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -68.271887,41.790376 v 8.489713" + style="fill:none;stroke:#000000;stroke-width:0.282222px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> qo3 + transform="translate(5.0800004)"> - + style="fill:none;stroke:#000000;stroke-width:1.77165;stroke-miterlimit:4;stroke-dasharray:none" + cx="-201.66058" + cy="126.56474" + r="16.403013" /> + d="m -76.374886,41.542984 h 21.104142 v 8.713967 h -21.104142" + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m -61.784854,41.790376 v 8.489713" + style="fill:none;stroke:#000000;stroke-width:0.282222px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> qqo4 + style="font-size:3.98274px;baseline-shift:sub">o4 + transform="translate(-15.804446)"> - + transform="matrix(0.28222224,0,0,0.28222224,6.5464477,10.180582)" + cx="-201.66058" + cy="126.56474" + r="16.403013" /> + d="m -65.028371,41.727491 v 8.489711" + style="fill:none;stroke:#000000;stroke-width:0.282222px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -68.271887,41.790376 v 8.489713" + style="fill:none;stroke:#000000;stroke-width:0.282222px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> qi5 + transform="translate(5.0800004)"> - + style="fill:none;stroke:#000000;stroke-width:1.77165;stroke-miterlimit:4;stroke-dasharray:none" + cx="-201.66058" + cy="126.56474" + r="16.403013" /> + d="m -76.374886,41.542984 h 21.104142 v 8.713967 h -21.104142" + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m -61.784854,41.790376 v 8.489713" + style="fill:none;stroke:#000000;stroke-width:0.282222px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> qqi2 + style="font-size:3.98274px;baseline-shift:sub">i2 + transform="translate(5.0800004)"> - + transform="matrix(0.28222224,0,0,0.28222224,6.5464477,10.180582)" + cx="-201.66058" + cy="126.56474" + r="16.403013" /> + d="m -65.028371,41.727491 v 8.489711" + style="fill:none;stroke:#000000;stroke-width:0.282222px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> + d="m -68.271887,41.790376 v 8.489713" + style="fill:none;stroke:#000000;stroke-width:0.282222px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> qi3 + transform="translate(5.0800004)"> - + style="fill:none;stroke:#000000;stroke-width:1.77165;stroke-miterlimit:4;stroke-dasharray:none" + cx="-201.66058" + cy="126.56474" + r="16.403013" /> + d="m -76.374886,41.542984 h 21.104142 v 8.713967 h -21.104142" + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + d="m -61.784854,41.790376 v 8.489713" + style="fill:none;stroke:#000000;stroke-width:0.282222px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" /> qqi4 + style="font-size:3.98274px;baseline-shift:sub">i4 nn1 + style="font-size:3.98274px;baseline-shift:sub">1 n2 nn5 + style="font-size:3.98274px;baseline-shift:sub">5 n4 nn3 + style="font-size:3.98274px;baseline-shift:sub">3 VILLASnode + style="font-size:6.35002px;line-height:1.25">VILLASnode p2 pp3 + style="font-size:3.98274px;baseline-shift:sub">3 + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:none;marker-mid:none;marker-end:url(#marker8742)" /> + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:none;marker-mid:none;marker-end:url(#marker8742)" /> + d="M 70.690686,60.300689 H 59.424943" + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:none;marker-mid:none;marker-end:url(#marker8742)" /> @@ -1227,11 +1132,11 @@ sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path3242-4" - d="m 100.13209,31.607116 5.57388,0" - style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:none;marker-mid:none;marker-end:url(#marker8742)" /> + d="m 100.13209,31.607116 h 5.57388" + style="fill:none;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-start:none;marker-mid:none;marker-end:url(#marker8742)" /> @@ -1247,18 +1152,17 @@ style="fill:#ffe6d5;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-dasharray:none" /> rr1 + style="font-size:3.98274px;baseline-shift:sub">1 rr3 + style="font-size:3.98274px;baseline-shift:sub">3 + + + + VILLASnode From ad8c99a88199e041f5fe8331b160e6afc4d347a4 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Fri, 20 Jun 2025 11:26:40 +0200 Subject: [PATCH 21/34] fix(paper): Add a paragraph highlighting which data exchange protocols are supported Signed-off-by: Steffen Vogel --- paper/paper.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/paper/paper.md b/paper/paper.md index 32f5f1304..73092c531 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -82,6 +82,8 @@ Firstly, it includes VILLASweb, a tool designed for the visualization and monito Secondly, there is VILLASfpga, which provides hard real-time capabilities for VILLASnode. Lastly, VILLAScontroller is currently under development and aims to automate simulation equipment. +The gateway supports a wide range of established data exchange protocols. Support for various message brokers like MQTT, AMQP, nanomsg, ZeroMQ, Redis or Kafka provide connectivity to existing software platforms. Support for process bus protocols such as CAN, EtherCAT, Modbus, IEC 61850-8-1 (GOOSE), IEC 61850-9-2 (Sampled Values) enable connectivity to physical devices. A range of web-based protocols like WebRTC, WebSockets, NGSI or a HTTP REST API facilitate integration into web-based interfaces. Lastly, a set of generic protocols add support for plain UDP/TCP/Ethernet sockets, Infiniband, file-based I/O or communication with other processes via standard I/O or shared memory regions. + # Acknowledgements - [RESERVE](http://re-serve.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 727481. From 5e9d5a0cb180dec5a836699d9780efc402566124 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Fri, 20 Jun 2025 11:36:36 +0200 Subject: [PATCH 22/34] fix(paper): Update date Signed-off-by: Steffen Vogel --- paper/paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paper/paper.md b/paper/paper.md index 73092c531..073de672d 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -42,7 +42,7 @@ affiliations: index: 2 - name: OPAL-RT Germany GmbH index: 3 -date: 28 May 2025 +date: 20 June 2025 bibliography: paper.bib --- From 9f9d43d32ed42d9fd981007a52e4b0fbf1920b6a Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Fri, 20 Jun 2025 11:49:18 +0200 Subject: [PATCH 23/34] fix(paper): Fix REUSE exceptions Signed-off-by: Steffen Vogel --- REUSE.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/REUSE.toml b/REUSE.toml index 7529df160..e3507eccf 100644 --- a/REUSE.toml +++ b/REUSE.toml @@ -24,9 +24,9 @@ path = [ "etc/labs/lab3.pcap", "tests/valgrind.supp", "packaging/archlinux/villas-node.install", - "VILLASnode_paths.svg", - "paper.md", - "paper.bib", + "paper/figures/**", + "paper/paper.md", + "paper/paper.bib", ] precedence = "aggregate" SPDX-FileCopyrightText = "2018-2023, Institute for Automation of Complex Power Systems, RWTH Aachen University" From 4c4ae2a55805517143ea77701e8422e65a8462a7 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Fri, 20 Jun 2025 11:49:44 +0200 Subject: [PATCH 24/34] fix(paper): Fix markdownlint errors Signed-off-by: Steffen Vogel --- paper/paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paper/paper.md b/paper/paper.md index 073de672d..2ca053b78 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -82,7 +82,7 @@ Firstly, it includes VILLASweb, a tool designed for the visualization and monito Secondly, there is VILLASfpga, which provides hard real-time capabilities for VILLASnode. Lastly, VILLAScontroller is currently under development and aims to automate simulation equipment. -The gateway supports a wide range of established data exchange protocols. Support for various message brokers like MQTT, AMQP, nanomsg, ZeroMQ, Redis or Kafka provide connectivity to existing software platforms. Support for process bus protocols such as CAN, EtherCAT, Modbus, IEC 61850-8-1 (GOOSE), IEC 61850-9-2 (Sampled Values) enable connectivity to physical devices. A range of web-based protocols like WebRTC, WebSockets, NGSI or a HTTP REST API facilitate integration into web-based interfaces. Lastly, a set of generic protocols add support for plain UDP/TCP/Ethernet sockets, Infiniband, file-based I/O or communication with other processes via standard I/O or shared memory regions. +The gateway supports a wide range of established data exchange protocols. Support for various message brokers like MQTT, AMQP, nanomsg, ZeroMQ, Redis or Kafka provide connectivity to existing software platforms. Support for process bus protocols such as CAN, EtherCAT, Modbus, IEC 61850-8-1 (GOOSE), IEC 61850-9-2 (Sampled Values) enable connectivity to physical devices. A range of web-based protocols like WebRTC, WebSockets, NGSI or a HTTP REST API facilitate integration into web-based interfaces. Lastly, a set of generic protocols add support for plain UDP/TCP/Ethernet sockets, Infiniband, file-based I/O or communication with other processes via standard I/O or shared memory regions. # Acknowledgements From beaa555b312e5cde6f0a456e7ea87a88326b4301 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Fri, 20 Jun 2025 11:53:10 +0200 Subject: [PATCH 25/34] feat(paper): Add badge to README file Signed-off-by: Steffen Vogel --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 31ef8adaa..3e20b0a60 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # VILLASnode [![build status](https://git.rwth-aachen.de/acs/public/villas/node/badges/master/pipeline.svg)](https://git.rwth-aachen.de/acs/public/villas/node/-/pipelines/) +[![status](https://joss.theoj.org/papers/37c2509d36586f4cec2885d5c2088e8f/status.svg)](https://joss.theoj.org/papers/37c2509d36586f4cec2885d5c2088e8f) This is VILLASnode, a gateway for processing and forwarding simulation data between real-time simulators. VILLASnode is a client/server application to connect simulation equipment and software such as: From 30ec5a58d2b8be5af52b1c522ccd20d03341e7f7 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Mon, 23 Jun 2025 10:00:29 +0200 Subject: [PATCH 26/34] fix(paper): Proposal for new author list Signed-off-by: Steffen Vogel --- paper/paper.md | 42 ++++++++++++++++++------------------------ 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/paper/paper.md b/paper/paper.md index 2ca053b78..db437b155 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -1,69 +1,63 @@ --- title: 'VILLASnode: An Open-Source Real-time Multi-protocol Gateway' tags: + - C/C++ - Real-time - Distributed experiments - Electrical grid simulation + authors: -- name: Alexandra Bach - orcid: 0009-0005-7385-4642 - affiliation: 1 -- name: Leonardo Carreras - orcid: 0000-0002-9033-1051 - affiliation: 1 -- name: Laura Fuentes Grau - orcid: 0009-0004-8997-7009 - affiliation: 1 + - name: Steffen Vogel orcid: 0000-0003-3384-6750 - affiliation: "1, 3" # (Multiple affiliations must be quoted) -- name: Manuel Pitz - orcid: 0000-0002-6252-2029 - affiliation: 1 + affiliation: "1, 3" - name: Niklas Eiling orcid: 0000-0002-7011-9846 affiliation: 1 -- name: Felix Wege - orcid: 0000-0001-6602-9875 - affiliation: 1 -- name: Andres Acosta - orcid: 0000-0003-3066-8354 +- name: Manuel Pitz + orcid: 0000-0002-6252-2029 affiliation: 1 -- name: Iris Köster +- name: Alexandra Bach + orcid: 0009-0005-7385-4642 affiliation: 1 +- name: Marija Stevic + affiliation: "1, 3" - name: Prof. Antonello Monti orcid: 0000-0003-1914-9801 affiliation: "1, 2" + affiliations: + - name: Institute for Automation of Complex Power Systems, RWTH Aachen University, Germany index: 1 - name: Fraunhofer Institute for Applied Information Technology, Aachen, Germany index: 2 - name: OPAL-RT Germany GmbH index: 3 + date: 20 June 2025 bibliography: paper.bib --- # Summary -VILLASnode is a software tool, designed to facilitate real-time data exchange between various components in geographically distributed real-time experiments. Components can be test beds, real-time simulators, software tools, and physical devices. +VILLASnode is a multi-protocol gateway, designed to facilitate real-time data exchange between various components of geographically distributed real-time experiments. Components can be test beds, digital real-time simulators, software tools, and physical devices. Whereas distributed computing, systems or algortihms aim to solve a common task, geographically distributed experiments link infrastructures with different components to make these components accessible to other infrastructures. Thus, data exchanges are possible which would not be possible in one single infrastructure. VILLASnode serves as the gateway that connects components across different infrastructures by providing a set of protocols and customized third-party implementations, e.g., different simulators. It enables seamless collaboration in research and testing environments while safeguarding the intellectual property of the infrastructures. The components at every infrastructure appear as a black box. The infrastructure does not need to share models or confidential information. -VILLASnode is a Linux command line tool and can run as installation from source or as container. It is written in C/C++ and designed in a modular way. +VILLASnode is a Linux command line tool and can run as installation from source or as container. It is written in C/C++ and designed in a modular and extensible way. All components which are interfaced by the VILLASnode gateway are represented by nodes ($n$). These nodes act as sinks or sources for data specific to the component. Every node is an instance of a node-type. In a single VILLASnode instance, multiple instances of the same node-type can co-exist at the same time. The basic data package, common for all node-types, includes timestamped data, constituting a sample. Up to 64 values can form a sample. Samples may need modification or filtering. VILLASnode supports hooks ($h$) for this purpose. Hooks are simple callback functions, which are called whenever a message is processed. Paths ($p$) take care of the processing and define the connections and dataflows between nodes. -Node-types, hooks, and paths need to be initalized in a configuration file which is passed when starting VILLASnode. +Node-types, hooks, and paths need to be initalized in a JSON configuration file which is passed when starting VILLASnode. Figure 1 shows an example of an experiment where five different node-types are used, connected by three paths, using three hooks. It includes queues ($q$) and registers ($r$). Queues temporarily store data before data is forwarded to registers. Registers provide the possibility to (de-)mulitplex data and to create new samples. -![Example of modular exprimental design with nodes, paths, and hooks [@villasnode_docs].](figures/VILLASnode_paths.svg) +![Example of modular experimental design with nodes, paths, and hooks [@villasnode_docs].](figures/VILLASnode_paths.svg) -VILLASnode can be controlled remotely by an Application Programming Interface (API). It is used by the Python Wrapper allowing to control, configure and execute most of the functions of VILLASnode. This is useful if Python software tools are to be integrated in a distributed experiment. +VILLASnode can be controlled remotely by an HTTP REST-style Application Programming Interface (API). It is used by the Python Wrapper allowing to control, configure and execute most of the functions of VILLASnode. This is useful if Python software tools are to be integrated in a distributed experiment. In general, the interaction with VILLASnode is available for other tools and coding languages by using clients that implement basic functionalities, custom configurations and data conversions. Since VILLASnode is written in C/C++ it supports real-time capabilites and can supports real-time tuning for Linux systems. To provide all necassary information, VILLASnode has a detailed documentation [@villasnode_docs]. It includes installation recommendations and best practices for development as well as example configurations and beginners guides, so-called labs. From d711b56a5ec31f673d803d50b0b14c2ed9a7f7b1 Mon Sep 17 00:00:00 2001 From: Alexandra Date: Wed, 9 Jul 2025 10:49:20 +0200 Subject: [PATCH 27/34] Add rest of the authors to acknowledgement Signed-off-by: Alexandra --- paper/paper.md | 1 + 1 file changed, 1 insertion(+) diff --git a/paper/paper.md b/paper/paper.md index db437b155..067e2ff35 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -79,6 +79,7 @@ Lastly, VILLAScontroller is currently under development and aims to automate sim The gateway supports a wide range of established data exchange protocols. Support for various message brokers like MQTT, AMQP, nanomsg, ZeroMQ, Redis or Kafka provide connectivity to existing software platforms. Support for process bus protocols such as CAN, EtherCAT, Modbus, IEC 61850-8-1 (GOOSE), IEC 61850-9-2 (Sampled Values) enable connectivity to physical devices. A range of web-based protocols like WebRTC, WebSockets, NGSI or a HTTP REST API facilitate integration into web-based interfaces. Lastly, a set of generic protocols add support for plain UDP/TCP/Ethernet sockets, Infiniband, file-based I/O or communication with other processes via standard I/O or shared memory regions. # Acknowledgements +We like to thank several colleagues and students who supported us. Especially, we thank Leonardo Carreras, Laura Fuentes Grau, Andres Costa, and Felix Wege. - [RESERVE](http://re-serve.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 727481. - [VILLAS](https://villas.fein-aachen.org/website/): Funding provided by [JARA-ENERGY](http://www.jara.org/en/research/energy). Jülich-Aachen Research Alliance (JARA) is an initiative of RWTH Aachen University and Forschungszentrum Jülich. From 04ebcc650cd1795436518a8d11d582a8ee80252f Mon Sep 17 00:00:00 2001 From: Alexandra Date: Wed, 9 Jul 2025 12:10:07 +0200 Subject: [PATCH 28/34] Add other project Signed-off-by: Alexandra --- paper/paper.md | 1 + 1 file changed, 1 insertion(+) diff --git a/paper/paper.md b/paper/paper.md index 067e2ff35..d86e688d7 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -90,5 +90,6 @@ We like to thank several colleagues and students who supported us. Especially, w - [HYPERRIDE](https://hyperride.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 957788. - [AI-EFFECT](https://ai-effect.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 101172952. - [EnerTEF](https://enertef.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 101172887. +- [Target-X](https://target-x.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 101096614. # References From 5e7e4cf096aad333bbc4d6630ec9db21f5c4c619 Mon Sep 17 00:00:00 2001 From: Alexandra Date: Wed, 9 Jul 2025 12:32:50 +0200 Subject: [PATCH 29/34] Fix markdownlint Signed-off-by: Alexandra --- paper/paper.md | 1 + 1 file changed, 1 insertion(+) diff --git a/paper/paper.md b/paper/paper.md index d86e688d7..0f863545c 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -79,6 +79,7 @@ Lastly, VILLAScontroller is currently under development and aims to automate sim The gateway supports a wide range of established data exchange protocols. Support for various message brokers like MQTT, AMQP, nanomsg, ZeroMQ, Redis or Kafka provide connectivity to existing software platforms. Support for process bus protocols such as CAN, EtherCAT, Modbus, IEC 61850-8-1 (GOOSE), IEC 61850-9-2 (Sampled Values) enable connectivity to physical devices. A range of web-based protocols like WebRTC, WebSockets, NGSI or a HTTP REST API facilitate integration into web-based interfaces. Lastly, a set of generic protocols add support for plain UDP/TCP/Ethernet sockets, Infiniband, file-based I/O or communication with other processes via standard I/O or shared memory regions. # Acknowledgements + We like to thank several colleagues and students who supported us. Especially, we thank Leonardo Carreras, Laura Fuentes Grau, Andres Costa, and Felix Wege. - [RESERVE](http://re-serve.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 727481. From e3eaab47303378c5bf6a5bac02452e1d08892431 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Wed, 9 Jul 2025 12:58:11 +0200 Subject: [PATCH 30/34] fix(lint): Remove trailing whitespace Signed-off-by: Steffen Vogel --- paper/paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paper/paper.md b/paper/paper.md index 0f863545c..427536711 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -80,7 +80,7 @@ The gateway supports a wide range of established data exchange protocols. Suppor # Acknowledgements -We like to thank several colleagues and students who supported us. Especially, we thank Leonardo Carreras, Laura Fuentes Grau, Andres Costa, and Felix Wege. +We like to thank several colleagues and students who supported us. Especially, we thank Leonardo Carreras, Laura Fuentes Grau, Andres Costa, and Felix Wege. - [RESERVE](http://re-serve.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 727481. - [VILLAS](https://villas.fein-aachen.org/website/): Funding provided by [JARA-ENERGY](http://www.jara.org/en/research/energy). Jülich-Aachen Research Alliance (JARA) is an initiative of RWTH Aachen University and Forschungszentrum Jülich. From aa8e125e90fdd46ceb2e30956b5139af698fd814 Mon Sep 17 00:00:00 2001 From: Alexandra Date: Thu, 10 Jul 2025 11:27:45 +0200 Subject: [PATCH 31/34] fix(paper): address comments Signed-off-by: Alexandra --- paper/paper.bib | 31 +++++++++++++++++++++++++++++++ paper/paper.md | 10 +++++++--- 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/paper/paper.bib b/paper/paper.bib index 7214c1449..91358f106 100644 --- a/paper/paper.bib +++ b/paper/paper.bib @@ -1,3 +1,34 @@ +@article{hardy_helics_2024, + title = {{HELICS}: A Co-Simulation Framework for Scalable Multi-Domain Modeling and Analysis}, + volume = {12}, + issn = {2169-3536}, + url = {https://ieeexplore.ieee.org/document/10424422}, + doi = {10.1109/ACCESS.2024.3363615}, + shorttitle = {{HELICS}}, + abstract = {As both the generation resources and load types have changed and grown over the past few decades, there is a growing need for analysis that spans traditional simulation boundaries; for example, evaluating the impact of distribution-level assets (e.g. rooftop solar, {EV} chargers) on bulk-power system operation. Co-simulation is a technique that allows simulators to trade information during run-time, effectively creating larger and more complex models. {HELICS} is a co-simulation platform that has been developed to enable these kinds of power system analysis, incorporating tools from a variety of domains including the electrical power grid, natural gas, transportation, and communications. This paper summarizes the technical design of {HELICS}, describes how tools can be integrated into the platform, and reviews a number of analyses that have been performed using {HELICS}. A short video summary of this paper can be found at https://youtu.be/{BIUiR}\_K87Wc.}, + pages = {24325--24347}, + journaltitle = {{IEEE} Access}, + author = {Hardy, Trevor D. and Palmintier, Bryan and Top, Philip L. and Krishnamurthy, Dheepak and Fuller, Jason C.}, + urldate = {2025-07-10}, + date = {2024}, + keywords = {co-simulation, energy system analysis, Government, {HELICS}, multi-domain analysis, multi-energy analysis, natural gas, Natural gas, Power system analysis computing, Power system dynamics, power system simulation, Power system stability, Renewable energy sources, Scalability, Simulation, Transactive energy, transportation}, +} + +@inproceedings{rohjans_mosaik_2013, + title = {mosaik - A modular platform for the evaluation of agent-based Smart Grid control}, + url = {https://ieeexplore.ieee.org/document/6695486}, + doi = {10.1109/ISGTEurope.2013.6695486}, + abstract = {Smart Grids rely on the use of {ICT} for managing large numbers of active components and sensors to keep demand and generation of electricity at equilibrium while operating multiple resources within their operational limits. Due to the distributed nature of these resources, their heterogeneity as well as their sheer number, is a challenging task. Control strategies as well as novel paradigms need to be developed and thoroughly evaluated through extensive simulations. In order to yield scientifically sound and reliable results, these simulations have to rely on valid and (ideally) established models, e.g., from industry. Therefore, it is desirable to reuse these models as often as possible by combining them into new, potentially large-scale test scenarios. The introduced mosaik framework presents a flexible architecture as well as a powerful modeling and specification language to automate the process of composing existing models and simulation platforms into large-scale simulation scenarios.}, + eventtitle = {{IEEE} {PES} {ISGT} Europe 2013}, + pages = {1--5}, + booktitle = {{IEEE} {PES} {ISGT} Europe 2013}, + author = {Rohjans, S. and Lehnhoff, S. and Schütte, S. and Scherfke, S. and Hussain, S.}, + urldate = {2025-07-10}, + date = {2013-10}, + note = {{ISSN}: 2165-4824}, + keywords = {Biological system modeling, Composition, Computational modeling, {ICT}, Integration, Load modeling, Mathematical model, Modeling, Simulation, Smart Grid Control, Smart grids, Topology}, +} + @misc{villasnode_docs, author = {Vogel, Steffen and Bach, Alexandra and Potter, Dennis and Stevic, Marija and Pitz, Manuel and Mirz, Markus}, title = {VILLASnode Documentation}, diff --git a/paper/paper.md b/paper/paper.md index 427536711..626ebaecc 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -43,6 +43,7 @@ bibliography: paper.bib # Summary VILLASnode is a multi-protocol gateway, designed to facilitate real-time data exchange between various components of geographically distributed real-time experiments. Components can be test beds, digital real-time simulators, software tools, and physical devices. +VILLASnode was originally designed for co-simulation of electrical networks, but was developped to bigger variety of use cases and domains. Whereas distributed computing, systems or algortihms aim to solve a common task, geographically distributed experiments link infrastructures with different components to make these components accessible to other infrastructures. Thus, data exchanges are possible which would not be possible in one single infrastructure. VILLASnode serves as the gateway that connects components across different infrastructures by providing a set of protocols and customized third-party implementations, e.g., different simulators. It enables seamless collaboration in research and testing environments while safeguarding the intellectual property of the infrastructures. The components at every infrastructure appear as a black box. The infrastructure does not need to share models or confidential information. @@ -57,14 +58,17 @@ It includes queues ($q$) and registers ($r$). Queues temporarily store data befo ![Example of modular experimental design with nodes, paths, and hooks [@villasnode_docs].](figures/VILLASnode_paths.svg) -VILLASnode can be controlled remotely by an HTTP REST-style Application Programming Interface (API). It is used by the Python Wrapper allowing to control, configure and execute most of the functions of VILLASnode. This is useful if Python software tools are to be integrated in a distributed experiment. +VILLASnode can be controlled remotely by an HTTP REST-style Application Programming Interface (API). It is used by the Python Wrapper allowing to control, configure and execute most of the functions of VILLASnode. In general, the interaction with VILLASnode is available for other tools and coding languages by using clients that implement basic functionalities, custom configurations and data conversions. Since VILLASnode is written in C/C++ it supports real-time capabilites and can supports real-time tuning for Linux systems. To provide all necassary information, VILLASnode has a detailed documentation [@villasnode_docs]. It includes installation recommendations and best practices for development as well as example configurations and beginners guides, so-called labs. +Other open-source co-simulation tools are available like Mosaik [@rohjans_mosaik_2013] or Helics [@hardy_helics_2024]. Mosaik uses a SimAPI to communicate with other simulators basd on fixed timesteps. Integrated simulators need to support the SimAPI which requires extra implementations. Simulators cannot reuse existing supported protocols which VILLASnode makes use of and takes core of protocol conversion. +Helics is designed for large-scale testing and supports bindings for different languages. It uses a broker which manages the communication between the simulators, whereas VILLASnode has a peer-to-peer architecture. + # Statement of need -VILLASnode supports the coupling of real-time simulators of different hardware and software vendors, specifications and implementations [@monti_global_2018]. They play a crucial role in both academic research and industrial applications, especially within simulation of electrical power networks. They are primarily utilized for hardware-in-the-loop (HiL) simulations. For example, an electrical grid is emulated so that the physical component can interface safely via analog input and output signals [@Mehlmann2023]. +VILLASnode supports the coupling of real-time simulators of different hardware and software vendors, specifications and implementations [@monti_global_2018]. They play a crucial role in both academic research and industrial applications, especially within simulation of electrical power networks. They are primarily utilized for hardware-in-the-loop (HiL) simulations. As an example, in the scope of the ENSURE project, the German electrical grid is emulated with the ability to couple dynamically simulators and physical components which can be interfaced safely via analog input and output signals [@Mehlmann2023]. This approach not only reduces development costs but also allows for the validation of components under scenarios that are difficult or unsafe to replicate real-world field scenarios. Moreover, VILLASnode supports the linking of simulators and real-time simulators of different vendors so that models do not need to be shared. It allows for conversation of intellectual property during collaboration. Local simulator and simulation infrastructure can be combined in a powerful arrangement unavailable at any individual infrastructure. This approach has the additional advantage of allowing to co-simulate with heterogeneus methods, algorithms and communication protocols. The communication with the components, sensors or actuators can also be implemented using VILLASnode. This can be extended to geographically distributed experiments. In this case, VILLASnode takes care of the communication between the different participants to the experiment which spans multiple infrastructures. Not only simulators can be included, but also physical devices can be integrated [@Bach2025]. Although communication latencies constrain the dynamics of the experiment for real-time applications, VILLASnode offers significant advantages such as leveraging existing infrastructure across sites and facilitating collaboration among interdisciplinary teams. Manufacturers, customers, and certifiers benefit from remote access and distributed testing while maintaining data confidentiality and intellectual property. Current work includes automation of integration of VILLASnode in practical field devices [@Pitz2024]. @@ -80,7 +84,7 @@ The gateway supports a wide range of established data exchange protocols. Suppor # Acknowledgements -We like to thank several colleagues and students who supported us. Especially, we thank Leonardo Carreras, Laura Fuentes Grau, Andres Costa, and Felix Wege. +We like to thank several colleagues and students who supported us. Especially, we thank Leonardo Carreras, Laura Fuentes Grau, Andres Acosta, and Felix Wege. - [RESERVE](http://re-serve.eu/): European Unions Horizon 2020 research and innovation programme under grant agreement No. 727481. - [VILLAS](https://villas.fein-aachen.org/website/): Funding provided by [JARA-ENERGY](http://www.jara.org/en/research/energy). Jülich-Aachen Research Alliance (JARA) is an initiative of RWTH Aachen University and Forschungszentrum Jülich. From b070360cca33865b9b6b83bfcb8fbd70d7fb3dff Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Sat, 16 Aug 2025 19:38:38 +0200 Subject: [PATCH 32/34] fix(paper): Address nit comments from reviewers Signed-off-by: Steffen Vogel --- paper/paper.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/paper/paper.md b/paper/paper.md index 626ebaecc..dfe05c2c2 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -43,7 +43,7 @@ bibliography: paper.bib # Summary VILLASnode is a multi-protocol gateway, designed to facilitate real-time data exchange between various components of geographically distributed real-time experiments. Components can be test beds, digital real-time simulators, software tools, and physical devices. -VILLASnode was originally designed for co-simulation of electrical networks, but was developped to bigger variety of use cases and domains. +VILLASnode was originally designed for co-simulation of electrical networks, but was developed to bigger variety of use cases and domains. Whereas distributed computing, systems or algortihms aim to solve a common task, geographically distributed experiments link infrastructures with different components to make these components accessible to other infrastructures. Thus, data exchanges are possible which would not be possible in one single infrastructure. VILLASnode serves as the gateway that connects components across different infrastructures by providing a set of protocols and customized third-party implementations, e.g., different simulators. It enables seamless collaboration in research and testing environments while safeguarding the intellectual property of the infrastructures. The components at every infrastructure appear as a black box. The infrastructure does not need to share models or confidential information. @@ -58,13 +58,13 @@ It includes queues ($q$) and registers ($r$). Queues temporarily store data befo ![Example of modular experimental design with nodes, paths, and hooks [@villasnode_docs].](figures/VILLASnode_paths.svg) -VILLASnode can be controlled remotely by an HTTP REST-style Application Programming Interface (API). It is used by the Python Wrapper allowing to control, configure and execute most of the functions of VILLASnode. +VILLASnode can be controlled remotely by an HTTP REST-style Application Programming Interface (API). It is used by the Python Wrapper allowing to control, configure and execute most of the functions of VILLASnode. In general, the interaction with VILLASnode is available for other tools and coding languages by using clients that implement basic functionalities, custom configurations and data conversions. Since VILLASnode is written in C/C++ it supports real-time capabilites and can supports real-time tuning for Linux systems. To provide all necassary information, VILLASnode has a detailed documentation [@villasnode_docs]. It includes installation recommendations and best practices for development as well as example configurations and beginners guides, so-called labs. -Other open-source co-simulation tools are available like Mosaik [@rohjans_mosaik_2013] or Helics [@hardy_helics_2024]. Mosaik uses a SimAPI to communicate with other simulators basd on fixed timesteps. Integrated simulators need to support the SimAPI which requires extra implementations. Simulators cannot reuse existing supported protocols which VILLASnode makes use of and takes core of protocol conversion. -Helics is designed for large-scale testing and supports bindings for different languages. It uses a broker which manages the communication between the simulators, whereas VILLASnode has a peer-to-peer architecture. +Other open-source co-simulation tools are available like Mosaik [@rohjans_mosaik_2013] or Helics [@hardy_helics_2024]. Mosaik uses a SimAPI to communicate with other simulators based on fixed timesteps. Integrated simulators need to support the SimAPI which requires extra implementations. Simulators cannot reuse existing supported protocols which VILLASnode makes use of and takes core of protocol conversion. +Helics is designed for large-scale testing and supports bindings for different languages. It uses a broker which manages the communication between the simulators, whereas VILLASnode has a peer-to-peer architecture. # Statement of need From 50e0137776fc4a898ca596d7d86cade7b2ae0e74 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Mon, 18 Aug 2025 13:18:33 +0200 Subject: [PATCH 33/34] fix(paper): Mention energy/power system related use case Signed-off-by: Steffen Vogel --- paper/paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paper/paper.md b/paper/paper.md index dfe05c2c2..dcd705e3a 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -42,7 +42,7 @@ bibliography: paper.bib # Summary -VILLASnode is a multi-protocol gateway, designed to facilitate real-time data exchange between various components of geographically distributed real-time experiments. Components can be test beds, digital real-time simulators, software tools, and physical devices. +VILLASnode is a multi-protocol gateway, designed to facilitate real-time data exchange between various components of geographically distributed real-time experiments. Components can be test beds, digital real-time simulators, software tools, and physical devices. It is designed for the co-simulation of power system and related energy applications. VILLASnode was originally designed for co-simulation of electrical networks, but was developed to bigger variety of use cases and domains. Whereas distributed computing, systems or algortihms aim to solve a common task, geographically distributed experiments link infrastructures with different components to make these components accessible to other infrastructures. Thus, data exchanges are possible which would not be possible in one single infrastructure. VILLASnode serves as the gateway that connects components across different infrastructures by providing a set of protocols and customized third-party implementations, e.g., different simulators. It enables seamless collaboration in research and testing environments while safeguarding the intellectual property of the infrastructures. The components at every infrastructure appear as a black box. The infrastructure does not need to share models or confidential information. From 43fbe7dcb364170a9e74020a43c3d97f219ea538 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Mon, 18 Aug 2025 13:31:09 +0200 Subject: [PATCH 34/34] fix(paper): Rephrase paragraph about integration of external tools Signed-off-by: Steffen Vogel --- paper/paper.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paper/paper.md b/paper/paper.md index dcd705e3a..0800aaaa1 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -58,8 +58,8 @@ It includes queues ($q$) and registers ($r$). Queues temporarily store data befo ![Example of modular experimental design with nodes, paths, and hooks [@villasnode_docs].](figures/VILLASnode_paths.svg) -VILLASnode can be controlled remotely by an HTTP REST-style Application Programming Interface (API). It is used by the Python Wrapper allowing to control, configure and execute most of the functions of VILLASnode. -In general, the interaction with VILLASnode is available for other tools and coding languages by using clients that implement basic functionalities, custom configurations and data conversions. +External software tools and programming languages can be interfaced with VILLASnode via several methods: Locally, they can be spawned as sub-processes and exchange data via shared-memory or standard I/O streams. Remotely, they can be interfaced via any of the supported node-types and protocols, such as MQTT or e.g. plain TCP sockets. +Additionally, VILLASnode can be configured and controlled remotely by an HTTP REST-style Application Programming Interface (API). An OpenAPI specification of the API is provided in order to generate API bindings for a variety of different programming languages. Since VILLASnode is written in C/C++ it supports real-time capabilites and can supports real-time tuning for Linux systems. To provide all necassary information, VILLASnode has a detailed documentation [@villasnode_docs]. It includes installation recommendations and best practices for development as well as example configurations and beginners guides, so-called labs.