docs(r2-12): document 5 alarm operator CLI commands; fix StyleGuide product name; add minimal .editorconfig (07/U-3, 07/C-5)
- docs/Client.CLI.md: added ### ack / confirm / shelve / enable / disable sections (synopsis + options + example + expected output), each noting the AlarmAck LDAP-role gate and that --event-id comes from a prior `alarms` notification. Doc now covers all 13 CLI commands (was 8). Overview operations list updated. - StyleGuide.md: 'ScadaBridge' -> 'OtOpcUa' (header line 3) + the ScadaBridge:Timeout config-key example -> OpcUa:Timeout. - .editorconfig (new, root): minimal code-style anchor; all C# analyzer rules at suggestion severity so nothing fails a TreatWarningsAsErrors build (verified: 808 warnings unchanged from baseline, 0 errors).
This commit is contained in:
+109
-1
@@ -4,7 +4,7 @@
|
||||
|
||||
`ZB.MOM.WW.OtOpcUa.Client.CLI` is a cross-platform command-line client for the OtOpcUa OPC UA server. It targets .NET 10 and uses the shared `IOpcUaClientService` from `Client.Shared` for all OPC UA operations. Commands are routed and parsed by [CliFx](https://github.com/Tyrrrz/CliFx).
|
||||
|
||||
The CLI is the primary tool for operators and developers to test and interact with the server from a terminal. It supports all core operations: connectivity testing, browsing, reading, writing, subscriptions, alarm monitoring, history reads, and redundancy queries. Any driver surface exposed by the server (Galaxy, Modbus, S7, AB CIP, AB Legacy, TwinCAT, FOCAS, OPC UA Client) is reachable through these commands — the CLI is driver-agnostic because everything below the OPC UA endpoint is.
|
||||
The CLI is the primary tool for operators and developers to test and interact with the server from a terminal. It supports all core operations: connectivity testing, browsing, reading, writing, subscriptions, alarm monitoring, alarm operator actions (acknowledge / confirm / shelve / enable / disable), history reads, and redundancy queries. Any driver surface exposed by the server (Galaxy, Modbus, S7, AB CIP, AB Legacy, TwinCAT, FOCAS, OPC UA Client) is reachable through these commands — the CLI is driver-agnostic because everything below the OPC UA endpoint is.
|
||||
|
||||
## Build and Run
|
||||
|
||||
@@ -240,6 +240,114 @@ otopcua-cli alarms -u opc.tcp://localhost:4840/OtOpcUa \
|
||||
| `-i` / `--interval` | Publishing interval in milliseconds (default: 1000) |
|
||||
| `--refresh` | Request a `ConditionRefresh` after subscribing to get current retained alarm states |
|
||||
|
||||
### ack
|
||||
|
||||
Acknowledges an active alarm condition via the OPC UA Part 9 `Acknowledge` method. The server gates this on the **`AlarmAck`** LDAP role (fail-closed — a session without `AlarmAck` group membership gets `BadUserAccessDenied`; see [ScriptedAlarms.md](ScriptedAlarms.md) §"AlarmAck gate"). The `--event-id` is the hex-encoded `EventId` taken from a prior `alarms` subscription notification for the same condition.
|
||||
|
||||
```bash
|
||||
otopcua-cli ack -u opc.tcp://localhost:4840/OtOpcUa \
|
||||
-n "ns=1;s=TestMachine_001" -e 0A1B2C -c "Investigating"
|
||||
```
|
||||
|
||||
| Flag | Description |
|
||||
|------|-------------|
|
||||
| `-n` / `--node` | Condition node ID of the alarm to acknowledge (**required**) |
|
||||
| `-e` / `--event-id` | `EventId` from the alarm notification, hex-encoded (e.g. `0A1B2C`) (**required**) |
|
||||
| `-c` / `--comment` | Operator comment for the acknowledgment (optional) |
|
||||
|
||||
Example output:
|
||||
|
||||
```text
|
||||
Acknowledge successful: ns=1;s=TestMachine_001
|
||||
```
|
||||
|
||||
### confirm
|
||||
|
||||
Confirms an already-acknowledged alarm condition via the OPC UA Part 9 `Confirm` method — the second stage of two-stage acknowledgment. Same `AlarmAck` role gate and same `--event-id` source (a prior `alarms` notification) as `ack`.
|
||||
|
||||
```bash
|
||||
otopcua-cli confirm -u opc.tcp://localhost:4840/OtOpcUa \
|
||||
-n "ns=1;s=TestMachine_001" -e 0A1B2C -c "Root cause cleared"
|
||||
```
|
||||
|
||||
| Flag | Description |
|
||||
|------|-------------|
|
||||
| `-n` / `--node` | Condition node ID of the alarm to confirm (**required**) |
|
||||
| `-e` / `--event-id` | `EventId` from the alarm notification, hex-encoded (**required**) |
|
||||
| `-c` / `--comment` | Operator comment for the confirmation (optional) |
|
||||
|
||||
Example output:
|
||||
|
||||
```text
|
||||
Confirm successful: ns=1;s=TestMachine_001
|
||||
```
|
||||
|
||||
### shelve
|
||||
|
||||
Shelves or unshelves an active alarm condition via the OPC UA Part 9 `ShelvedStateMachine` (`OneShotShelve` / `TimedShelve` / `Unshelve`). Gated on the `AlarmAck` role. `--duration` is given in **seconds** (converted to milliseconds for the OPC UA call) and is required only for `--kind Timed`.
|
||||
|
||||
```bash
|
||||
# One-shot shelve until the next clear
|
||||
otopcua-cli shelve -u opc.tcp://localhost:4840/OtOpcUa \
|
||||
-n "ns=1;s=TestMachine_001" -k OneShot
|
||||
|
||||
# Timed shelve for 300 seconds
|
||||
otopcua-cli shelve -u opc.tcp://localhost:4840/OtOpcUa \
|
||||
-n "ns=1;s=TestMachine_001" -k Timed -d 300
|
||||
|
||||
# Unshelve
|
||||
otopcua-cli shelve -u opc.tcp://localhost:4840/OtOpcUa \
|
||||
-n "ns=1;s=TestMachine_001" -k Unshelve
|
||||
```
|
||||
|
||||
| Flag | Description |
|
||||
|------|-------------|
|
||||
| `-n` / `--node` | Condition node ID of the alarm to shelve/unshelve (**required**) |
|
||||
| `-k` / `--kind` | Shelve operation: `OneShot` \| `Timed` \| `Unshelve` (**required**) |
|
||||
| `-d` / `--duration` | Shelving duration in **seconds** (must be > 0; **required for `--kind Timed`**) |
|
||||
|
||||
Example output:
|
||||
|
||||
```text
|
||||
Timed successful: ns=1;s=TestMachine_001
|
||||
```
|
||||
|
||||
### enable
|
||||
|
||||
Enables an alarm condition via the OPC UA Part 9 `ConditionType.Enable` method (resumes evaluation/reporting for a previously disabled condition). Gated on the `AlarmAck` role.
|
||||
|
||||
```bash
|
||||
otopcua-cli enable -u opc.tcp://localhost:4840/OtOpcUa -n "ns=1;s=TestMachine_001"
|
||||
```
|
||||
|
||||
| Flag | Description |
|
||||
|------|-------------|
|
||||
| `-n` / `--node` | Condition node ID of the alarm to enable (**required**) |
|
||||
|
||||
Example output:
|
||||
|
||||
```text
|
||||
Enable successful: ns=1;s=TestMachine_001
|
||||
```
|
||||
|
||||
### disable
|
||||
|
||||
Disables an alarm condition via the OPC UA Part 9 `ConditionType.Disable` method (stops evaluation/reporting). Gated on the `AlarmAck` role.
|
||||
|
||||
```bash
|
||||
otopcua-cli disable -u opc.tcp://localhost:4840/OtOpcUa -n "ns=1;s=TestMachine_001"
|
||||
```
|
||||
|
||||
| Flag | Description |
|
||||
|------|-------------|
|
||||
| `-n` / `--node` | Condition node ID of the alarm to disable (**required**) |
|
||||
|
||||
Example output:
|
||||
|
||||
```text
|
||||
Disable successful: ns=1;s=TestMachine_001
|
||||
```
|
||||
|
||||
### redundancy
|
||||
|
||||
Reads the OPC UA redundancy state from a server: redundancy mode, service level, server URIs, and application URI.
|
||||
|
||||
Reference in New Issue
Block a user