Page tree

Versions Compared


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

This is a rough concept of the aspects that should/can be covered in this project.

SCCharts Railway Controller

  • SCCharts Railway Controller
    The Controller from the previous railway project was nice, but you can surely make a better one.
    Goal is to develop a modular controller using inheritance that can schedule as many trains as possible (max. 11).
    Modular means that you should be able to write uni unit tests or do model checking for small components, e.g. a point or a station.
    For this project, all previous Documentation documentation and SCCharts are available for inspection.
    The environment simulation developed in the Railway Project 2017 should be used as an interface.
  • Railway Simulation and Visualization
    At the end of the project the controller should be testable with the existing environment and your modular controller inside KIELER or KEITH.

Whether all these goals are mandatory depends on the number of students who want to do the railway project.

Optional / additional aspectsAdditional Aspects:

  • Railway Modeling DSL
    Philip Eumann developed a DSL for railway control. Use it.

  • Lighthouses
    Extend your controller to be able to control the two mini-lighthouses in H0 scale that were build In a previous student project
    They should be included in the railway installation physically.

  • Train Tracking
    Develop a method to track identify the positions of the trains from start, giving the controller the information which train is where on the track (this might be necessary to develop your controller).

  • Dataflow or Hybrid modelModel
    Develop your controller or part of your controller in SCCharts dataflow.

  • Distributed SCCharts
    Configure the railway system to run only the SCCharts that are necessary for the specific hardware component.
    Multiple controllersSplit up your SCChart model to be executable on independent segment controllers. Each Raspberry Pi should only run the code for the components it is controlling.

  • Multiple Controllers
    Enable the railway system to support the execution of multiple controllers at once.

  • Model Checking
    Use model checking to validate your controller.