Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenFAST ZMQ connection (1 WT) #2281

Open
wants to merge 15 commits into
base: dev
Choose a base branch
from

Conversation

lorenzoschena
Copy link

yes

Feature or improvement description

This update enables ZMQ communication with OpenFAST. Two connections are possible:

  1. PUB-SUB: OpenFAST results are published to a socket and all subscriber can receive updates in real-time
  2. REQ-REP: OpenFAST can query with specific requests a socket.

Both updates can follow different time steps, default is intended to be the DT input of openfast.

FAST_Registry has been modified to handle all variables that are useful in the context of these communications. The .fst templates are to be found in /zmq_coupling_tests/templatesDir/.

In this PR, the communication is possible for only single wind turbines; developments to FAST.Farm is going to follow.

Related issue, if one exists

Impacted areas of the software

Most of the modifications made are in FAST_Subs. However, minor adjustments have also been made to ServoDyn to handle possible override from ZMQ.

Additional supporting information

Needs two requirements:

  1. cJSON: to compact inbound and outbound message with JSON format
  2. ZMQ: to open connection sockets in C Language. The connections are handled by C modules and imported in Fortran.

A brief white paper will be added in the documentation to use this module.

Test results, if applicable

  • ex01 tests consistency between received values via PUB-SUB socket and output of OpenFAST.
  • ex02 tests consistency between sent values via REQ-REP socket and input received by OpenFAST.
  • ex03 tests both connections at the same time.

@andrew-platt
Copy link
Collaborator

Does this PR add to #2153, or replace it?

Apologies for our delays on merging #2153. I am a little behind on merges.

@lorenzoschena
Copy link
Author

Hello Andy,

No problems at all! It replaces is, we can delete the previous one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants