GithubHelp home page GithubHelp logo

modelica-3rdparty / realtimecoordinationlibrary Goto Github PK

View Code? Open in Web Editor NEW
6.0 9.0 4.0 4.42 MB

Enables modeling asynchronous and synchronous communication and rich real-time constraints for complex coordination protocols.

Modelica 100.00%
modelica-library modelica award-winning

realtimecoordinationlibrary's Introduction

RealTimeCoordinationLibrary

The RealTimeCoordinationLibrary contains an extension to the StateGraph2 library that enables modeling asynchronous and synchronous communication and rich real-time constraints for complex coordination protocols.

Library description

We present a Modelica library for modeling communication under hard real-time constraints. Our library extends the Modelica_StateGraph2 library by providing support for (1) synchronous and asynchronous communication and (2) rich modeling of real-time behavior.

Adequate modeling constructs for synchronous as well as asynchronous communication and for real-time behavior are essential for modern embedded systems. Here, we consider synchronous and asynchronous communication to be a message-based communication where the former means that the sender always waits as long as the receiver is not able to consume the message. The latter means that the sender does not wait on a reaction of the receiver and proceeds with its execution that, in particular, might include sending further messages. For asynchronous communication, this implies that the receiver has to have a message buffer which is sufficiently large to prevent loss of messages.

screenshot

For the modeling of synchronous communication, we extended transitions by synchronization ports (sync ports). Sync ports sub-divide into sender sync ports and receiver sync ports. A sender sync port of one transition is connected to a receiver sync port of another transition by a synchronization connector.

For the modeling of asynchronous communication, we introduce two new components named Message and Mailbox. Each instance of the Message component has two purposes. On the one hand, it defines a certain message type by specifying an array of formal parameters which might be of type Integer, Boolean or Real. As an example one message type might be defined by the array (Integer[2];Boolean[1];Real[1]). The parameter array of a message type is also called its signature. On the other hand, an instance of the Message component is responsible for sending a message whenever a connected transition fires. A transition is able to signal to a Message component instance to send a message if the firePort of the transition is connected to the condition- Port of the Message component instance.

For the modeling of real-time behavior according to timed automata, we extended the StateGraph2 library by three components named Clock, Invariant and Clock- Constraint. Clocks are real-valued variables whose values increase continuously and synchronously with time. Clocks might be reset to zero upon activation of a generalized step or firing of a transition. An invariant is an inequation that specifies an upper bound on a clock, e.g., c < 2 or c <= 2 where c is a clock. Invariants are assigned to generalized steps and are used to specify a time span in which this generalized step is allowed to be active. A clock constraint might be any kind of inequation specifying a bound on a certain clock, e.g., c > 2, c >= 5, c < 2, c <= 5 where c is a clock. Clock constraints are assigned to transitions in order to restrict the time span in which a transition is allowed to fire.

Install Instructions

  1. Copy the folder "RealTimeCoordinationLibrary" into the folder of your "MODELICAPATH" (e.g., "C:\Program Files (x86)\Dymola 2013\Modelica\Library")
  2. Start Dymola
  3. FileLibrariesRealTimeCoordinationLibrary

Current release

Download Latest development version

Release notes

License

This Modelica package is free software and the use is completely at your own risk; it can be redistributed and/or modified under the terms of the Modelica License 2.

Development and contribution

Main developer:

Uwe Pohlmann
Research Fellow
Fraunhofer Institute for Production Technology IPT
Project Group Mechatronic Systems Design
Software Engineering
Zukunftsmeile 1
33102 Paderborn

Phone: +49 5251 5465-174
Fax: +49 5251 5465-102
Room: 02-48

Additional contributors:

[Stefan Dziwok] (mailto:[email protected])
Research Fellow
Heinz Nixdorf Institute
Software Engineering Group
Zukunftsmeile 1
33102 Paderborn

Student assistants:

Boris Wolf
Sebastian Thiele

You may report any issues with using the Issues button.

Contributions in shape of Pull Requests are always welcome.

Acknowledgments

This work was partially developed in the Leading-Edge Cluster ’Intelligent Technical Systems OstWestfalenLippe’ (it’s OWL). The Leading-Edge Cluster is funded by the German Federal Ministry of Education and Research (BMBF).

This work was partially developed in the project ‘ENTIME: Entwurfstechnik Intelligente Mechatronik’ (Design Methods for Intelligent Mechatronic Systems). The project ENTIME is funded by the state of North Rhine-Westphalia (NRW), Germany and the EUROPEAN UNION, European Regional Development Fund, ‘Investing in your future’.

realtimecoordinationlibrary's People

Contributors

caesarion avatar dietmarw avatar marcus-h avatar tbeu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

realtimecoordinationlibrary's Issues

Circular Dependency

This library lists itself as a dependency. I cannot say if this is strictly in violation of the specification, but this seems like something that could trip up tools. I would recommend correcting this.

Add Resources directory

Folders docs and images should be moved one level down to a new folder Resources to meet Modelica compliance.

HTML errors

The documentation of the library contains a couple of HTML errors which should be fixed.

Simply have a look at https://build.openmodelica.org/Documentation/tidy.filtered which gets automatically generated any other day and also checks the latest version of this library (simply search for "RealTimeCoordinationLibrary" and you'll see what issues there are).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.