Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

KIEM - KIELER Execution Manager

...

Image Added

Topics

Table of Contents
maxLevel2
minLevel2

...

How does it work?

Scheduling

KIEM OverviewImage RemovedImage Added

All components have in common that they are called by the Execution Manager in a linear order. This can be defined by the user in an execution setting and exactly reflects the order of the DataComponent list in the KIEM View shown in the example figures below. Because the execution is an iterative process --- so far only iteratable simulations are supported --- all components (e. g., a simulation engine or a visualizer) should also preserve this iterative characteristic. During an execution KIEM will stepwise activate all components that take part in the current execution run and ask them to produce new data or to react to older data. As KIEM is meant to be also an interactive debugging facility, the user may choose to synchronize the iteration step times to realtime. However, this might cause difficulties for slow DataComponents as discussed below.

...

This illustrates the famous ABRO example, the "hello world" of the synchronous world. It is simply a Java plug-in implementing an observing and producing DataComponent that reacts to signals A, B, R with producing a present signal O whenever signal A and B just became present (in any order or even at the same time). The SyncChart then goes into the done state and is reset by signal R, i.e. it becomes ready and again waits for signals A and B. The strong abortion of the reset transition indicates that whenever R is present, in the same tick no O will be produced.

ABROImage RemovedImage Added

The above example observer and producer DataComponent can be executed by the execution manager. This is illustrated in the following screen snapshot. Signals can be injected (= made present) by marking the check boxes [X] in the left raw table view. Note that the variables first have to be declared as being signals by using the adequate toggle button. By using the step button of the execution manager the execution can proceed to the next step. The Synchronous Signal Resetter DataComponent just resets all present signals at the beginning of the next tick to be absent again so that the whole execution follows the synchronous semantics. An alternative to this could be to let all signal emitters reset their own signals with the drawback of introducing relative (macro) ticks.

ABRO in actionImage RemovedImage Added

...

Simple Rail Control

As another case study there exists a SimpleRailControlEditor for the  model railway of the Christian-Albrechts University of Kiel. It lets you create controllers for the model railway by modeling them with a generated Eclipse GMF editor. These models can be transformed into executable C-Code by a model2text-Xpand-transformation on the one hand. On the other there exists a complete Xtend-transformation which generates executable and I/O-equivalent  Ptolemy models out of them. The SimpleRailCtrl Ptolemy Simulator DataComponent is then capable of executing these Ptolemy models using the  Triq Ptolemy Eclipse plug-in. Together with the KIELER model visualizer the active states (nodes) of the controller model can then be illustrated during the execution. 

Image Added

 

There also exists a  demo video that shows the just described behavior. Whenever the execution is being initialized the Ptolemy simulator will transform the currently saved EMF model of the opened diagram into a semantically equivalent but executable ptolemy moml-File.