Device Info

Query PLC device information and runtime state. Requires feature flag DeviceInfo enabled.

Get Device Info

Endpoint: Get Device Info API_DEVICE_INFO
status: implemented
component: DeviceInfo
method: GET
route: /api/plcs/{plcId}/device/info
policy: ReadAccess
implements: FEAT_DEVICE_INFO

Returns the PLC’s device name, version and ADS state.

curl http://localhost:5000/api/plcs/Line1/device/info
{
  "data": { "deviceName": "Plc30 App", "version": "3.1.1964", "adsState": "Run" },
  "error": null
}

Get Device State

Endpoint: Get Device State API_DEVICE_STATE
status: implemented
component: DeviceInfo
method: GET
route: /api/plcs/{plcId}/device/state
policy: ReadAccess
implements: FEAT_DEVICE_INFO

Returns the PLC’s current ADS state with a timestamp.

{
  "data": { "state": "Run", "timestamp": "2026-03-18T15:35:38.908618+00:00" },
  "error": null
}

Possible states: Invalid, Idle, Reset, Init, Start, Run, Stop, SaveConfig, LoadConfig, PowerFailure, PowerGood, Error, Shutdown, Suspend, Resume, Config, Reconfig, Stopping, Incompatible, Exception

Changed in the 0.5.0 migration. These values now come straight from TwinCAT’s own AdsState enum rather than an adsify-specific copy of it. Two names changed as a result — SaveCfg became SaveConfig and LoadCfg became LoadConfig — and the remaining TwinCAT states, which adsify previously could not express, are now reachable. A client string-matching the old two names must be updated.