General Driver Diagnostics
Task Processor Cycle Time Monitoring
Each driver which has one or more Taskprocessor configured, supports the option to monitor its queue cycle times. To enable the monitoring, define a group with the name "Diagnostics" right below the driver node.
Example of a device configuration with enabled diagnostics (see UHAL Plugins for the rest of your device implementation):
{
"Id": "9c16f2bd-f454-4d4e-b1c3-9664377771a9",
"Name": "MyDevice",
"DriverId": "f25f68f9-c720-4dd9-8a28-957c84aaa98c",
"Address": "",
"Groups": [
{
"Id": "0e120cac-25e1-48ca-a91a-2487549d9064",
"Name": "Diagnostics",
"Properties": [],
"DataNodes": [],
"ConstantNodes": [],
"Commands": [],
"Groups": []
}
],
...
}
Below the diagnostic group following structure is provided:
The diagnostic structure can be accessed by different PeSeL plugins, such as OPC-UA Server.
Some queues are system usable only. Others depend on the used plugin. In common the Low, Medium and High Priority Processing Queue can be used by every driver.
The queue names refer to following operations:
Queue | Description | System only | Queue Type | Multicycle | Use | Execution | Circular execution support |
---|---|---|---|---|---|---|---|
Realtime | "Realtime" operation | No | None | No | Driver specific | Every cycle | No |
Synchron | Synchron operations | No | FIFO | Yes | Driver specific | Every cycle | No |
Transfer | Synchron operations | Yes | FIFO | Yes | Driver specific | Every cycle | No |
High | High priority synchron operations | No | FIFO | Yes | Configuration specific | Every cycle | Yes |
Medium | Medium priority synchron operations | No | FIFO | Yes | Configuration specific | Every 2nd cycle | Yes |
Low | Low priority synchron operations | No | FIFO | Yes | Configuration specific | Every 4th cycle | Yes |
Cleanup | Cleanup operations | Yes | None | No | Driver specific | Every cycle | No |
Custom | Custom operations | No | None | No | Driver specific | Every cycle | No |
Monitoring | Monitoring operations | Yes | None | No | Driver specific | Every cycle | No |
Reporting | Reporting operations | Yes | None | No | Driver specific | Every cycle | No |
Complete | Complete time for all operations | Yes | None | No | Not configurable | None | No |
Every Queue has an item 'CycleTime' as a diagnostics value. Its Unit is Milliseconds (ms). For Queues which are not configuration specific, no interactions can be made from outside. It is either non configurable or depends on the driver implementation. Configuration specific means, the execution times (CycleTime) depends on the configured workload and the scheduling properties.