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
checkresolves 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
serveproxies; 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.