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

Troubleshooting

Common Issues

Control program won’t start

Symptom: acctl control start or acctl push control --start fails.

Check:

  1. Is the server running? sudo systemctl status autocore_server
  2. Is there a build error? Check the output of acctl push control for Rust compiler errors.
  3. Is the project loaded? acctl status should show your project as active.

Tick signal lost

Symptom: Control program starts but does not cycle. Logs show “Tick wait failed”.

Fix: The server should auto-reset timers. If not, restart the server:

sudo systemctl restart autocore_server

Variables not updating in the HMI

Check:

  1. Is the control program running? acctl control status
  2. Is the variable being written in process_tick? Add a log statement to verify.
  3. Is the WebSocket connected? Check the browser console for connection errors.

Hardware not responding (EtherCAT/Modbus)

Check:

  1. Is the module enabled in project.json? Check "enabled": true.
  2. Is the module executable configured in config.ini?
  3. Is the module running? acctl cmd system.get_domains lists all connected modules.
  4. Check module logs: acctl logs --follow will show output from all modules.
  5. For EtherCAT: Is the network cable connected? Is the correct interface configured?
  6. For Modbus: Can you ping the device? Is the IP address and port correct?

Build errors after changing project.json

Fix: Regenerate the global memory struct:

acctl push project
acctl codegen
acctl push control --start

“Permission denied” when starting the server

Fix: The server may need network capabilities to bind to port 80:

# If using systemd (default installation)
sudo systemctl start autocore_server

# If running manually
sudo setcap cap_net_bind_service=+ep /opt/autocore/bin/autocore_server

Diagnostic Commands

CommandWhat It Shows
acctl statusServer version, active project, available projects
acctl control statusControl program state (running/stopped/error)
acctl logs --followLive log stream from control program and modules
acctl cmd system.get_domainsAll registered domains (modules, services)
acctl cmd gm.read --name <var>Current value of a variable
sudo systemctl status autocore_serverServer process status
sudo journalctl -u autocore_server -fServer system log (systemd)