Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

taktwerk

taktwerk runs compiled models at a fixed step on Linux, beside or on a PLC, and exchanges their signals over OPC UA.

  • Models are FMI 3 or FMI 2 co-simulation FMUs, or plain C libraries described by a small descriptor. A model is size-generic; an instance binds its sizes.
  • The engine owns a process image. A real-time thread steps every model on absolute deadlines and reads a snapshot of the image at each tick; connectors sync the image with the outside in the background.
  • An own OPC UA server exposes every signal, the engine status and a heartbeat, so any OPC UA client doubles as a UI. taktwerk tui is one.
  • One TOML project file per engine describes models, instances, wiring and connectors.
taktwerk FMU or C library step thread fixed period process image OPC UA server OPC UA client taktwerk tui, any OPC UA client PLC

What it is not

  • Not hard real time: a fixed step on stock Linux, with optional SCHED_FIFO, CPU pinning and locked memory. Jitter is measured on the target, never assumed.
  • Not a safety controller: models run in the engine’s process. Whoever consumes the outputs, typically the PLC, owns the safe state once the heartbeat stops (see Concepts).

Where to go next

taktwerk is licensed under MIT or Apache-2.0 and published on crates.io.