Distributed TDL

Abstract

TDL (Time Definition Language) was created within the MoDECS project as a successor of the Giotto language for time triggered deterministic computation. Its hard real-time properties makes it ideal for use in automation and control engineering.

We will present the concepts and a runtime infrastructure for distributed TDL execution (bus scheduling and distributed E-machine). The key concept is transparent distribution, i.e. there is no difference observable between local and distributed excution of modules. A sample case study will be presented as a proof of concept.

Sample TDL source code

The following source code is an example of TDL usage for a basic counter. The application contains one task and has only one mode of operation.

module counter {
  const
    z = 0; // a constant for easy initialization

  actuator
    int a := z uses set_act; // use external function set_act

  task inc [wcet = 1ms] {
    output
      int o := z; // initialized with 0 at startup
    uses inc_func(o); // use external function inc_func with parameter o
  }

  start mode main [period = 1000ms] {
    task
      [1] inc();
    actuator
      [1] a := inc.o; // set actuator with output of task
  }
}

Copyright © 2004 MoDECS Team