Skip to content

TUE-EE-ES/activity-execution-engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ActivityExecutionEngine

Introduction

This project is the Activity Execution Engine (AEE). It is an automated execution engine for the activity modeling formalism. Activities are specified using LSAT (https://esi.nl/research/output/tools/lsat). The engine reads the '.activity', '.setting', '.machine' and the '.dispatching' files, for feed-forward models, and executes the individual actions. For models that have feedback, it reads '.ioa' file instead of the dispatching file. More information about event outcomes can be found in Time- and Behavior-Preserving Execution of Determinate Supervisory Control, Alireza Mohammadkhani et al., to be published.

"Time- and Behavior-Preserving Execution of Determinate Supervisory Control", Alireza Mohammadkhani et al., IET-CPS,2025, to be published.

The Activity Execution Engine sends message to an Action Controller. The Action Controller is a layer specific to the machine being controlled that translates the action descriptions in the '.activity' file into API calls for the machine. You can find the Action Controller for xCPS as an application in the xCPS software git (https://git.ics.ele.tue.nl/cps/xcps/software/-/tree/main/API/apps). The return messages from API are then passed to the AEE. These are either action completion messages, or event outcomes.

This repository contains the Activity Execution Engine as a cmake project in the folder 'ActivityExecutionEngine' and the base library for Action Controllers as a cmake project in the ActionController folder. The ActionController folder also contains a 'dummy' Action Controller, ACLogger, which is a stand-in Action Controller that does not actually controls any machine, but instead logs the activities. It can log the activities to the terminal, to a trace file that can be passed to the cmtrace tool to make a Gantt chart visualization, or to a trace file that can be used with the Trace4CPS tool to create a Gantt chart visualization and analysis.


Instructions on building

The software can be built using cmake from the ActivityExecutionEngine directory. See the readme file.

An Activity Execution Engine needs a plant-specific Action Controller that it wil control. ACLib is a library on which specific ACs can be built. This repository includes a demonstration AC, called ACLogger. Check the readme file in the ActionController folder for instructions on how to build them.


Usage

(only for internal users for now, see Replication of Published Results for a public demo usage.)

The activity execution engine can be used with the xCPS (virtual) as follows.

  • from the xCPS/software repository (https://git.ics.ele.tue.nl/cps/xcps/software)
    • build and run VxCPS following the instructions in the repository. This includes:
      • running the sioserver application (HAL\VHAL\sioserver) to set up the Socket.IO network
      • running the dttranslationlayer application (VxCPS\dttranslationlayer) to translate between HAL layer and messages to the VxCPS digital twin.
      • running the VxCPS Unreal model (VxCPS\UnrealEngine\VxCPSUE51.uproject)
      • set up the VxCPS model with the right initial configuration of top/bottom products
    • Build and run the xCPS Action Controller (HAL\apps\AC)
      • build it with the HAL with cmake.
      • run it with the command: ./AC -o TTA
    • run the activity execution engine with the command ./AEE -m <path to model> -t 3
  • if everything is OK so far, the virtual xCPS model should start moving now...

Replication of Published Results

To replicate the published results of "Time- and Behavior-Preserving Execution of Determinate Supervisory Control", IET-CPS,2025, please look at models/iet-cps-paper-2025 folder after you have built and successfully run one experiment from the instructions above.

About

Activity Execution Engine for automatic execution of activity models

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors