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.
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