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

Workbench

The workbench is a web UI over a project folder, and the same UI over one running engine. A build with the ui feature carries it (cargo install taktwerk --features ui); the desktop app in desktop/ wraps it.

A project folder

taktwerk serve examples/campaign
# taktwerk workbench: http://127.0.0.1:8470/#token=…

Open the printed URL. The token in it lets the page start and stop runs and write values; serve listens on loopback only.

  • Project: the folder’s project, scenario, campaign and model files; a project’s plan as check resolves it (instances, signals with units, recorders, connectors) or its problems.
  • Runs: start a project with a scenario, speed, stop, seed, overrides and a record directory. A run starts without the project’s own connectors unless asked, so it talks to no PLC by accident. Each run serves an HTTP API on a free loopback port that serve proxies; stop ends it as SIGTERM would.
  • Live: status, cycle, heartbeat and counters; every signal with its value, unit and age; trends of the signals picked, one chart per unit; inputs and tunables written in place; the event log.
  • Records: every run recorded below the folder; a run’s metadata, overrides, events and columns plotted (long runs thinned to a minimum and maximum per bucket); a second run overlaid dashed, with the largest difference per column.
  • Campaigns: each campaign’s runs with their values, status, stop and wall time; up to eight runs plotted together; two runs compared in the records view.

One engine

An engine with an http connector serves the live view itself, on a PC or a PLC:

taktwerk run plant.toml --http 127.0.0.1:8480 --http-writes

Writes need the token the connector writes to its token file (see HTTP API); the page asks for it on the first write.