Skip to content

Commit c776e2f

Browse files
committed
Document static URCB InformationReport server trial
1 parent 6d81145 commit c776e2f

1 file changed

Lines changed: 107 additions & 0 deletions

File tree

‎docs/MMS_SERVER_URCB_REPORT.md‎

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
# MMS Server Static URCB / InformationReport Trial
2+
3+
This tranche adds a runnable server-side unbuffered report path on top of the bounded MMS server core.
4+
5+
## Model
6+
7+
Domain: `ESP32S3IOLD0`
8+
9+
Static DataSet:
10+
11+
`ESP32S3IOLD0/LLN0.Outputs`
12+
13+
Members, in fixed order:
14+
15+
- `GGIO1$ST$SPCSO1$stVal`
16+
- `GGIO1$ST$SPCSO2$stVal`
17+
- `GGIO1$ST$SPCSO3$stVal`
18+
- `GGIO1$ST$SPCSO4$stVal`
19+
- `GGIO1$ST$SPCSO5$stVal`
20+
- `GGIO1$ST$SPCSO6$stVal`
21+
- `GGIO1$ST$SPCSO7$stVal`
22+
- `GGIO1$ST$SPCSO8$stVal`
23+
24+
URCB:
25+
26+
`ESP32S3IOLD0/LLN0$RP$Outputs01`
27+
28+
Default `RptID`: `ARSTACK-Outputs01`.
29+
30+
The object bank exposes `RptID`, `RptEna`, `Resv`, `DatSet`, `ConfRev`, `OptFlds`, `BufTm`, `TrgOps`, `IntgPd`, `GI`, and `SqNum` as MMS variables.
31+
32+
## First acceptance profile
33+
34+
The first live gate is deliberately deterministic and GI-driven:
35+
36+
1. associate;
37+
2. inspect the static DataSet and URCB;
38+
3. reserve the URCB if the client uses `Resv`;
39+
4. set `RptEna=true`;
40+
5. set `GI=true`;
41+
6. receive one MMS `InformationReport` carrying all eight ordered DataSet values;
42+
7. verify `SqNum` advances only after a complete report frame is encoded;
43+
8. disable/release and disconnect.
44+
45+
The initial `OptFlds` enable sequence number, reason, DataSet name, data references, and configuration revision. Report time is intentionally omitted in this first profile so timestamp semantics do not obscure the basic interoperability gate.
46+
47+
## Safety and ownership boundary
48+
49+
This executable currently serves one client at a time.
50+
51+
`RptEna` and `Resv` are explicitly reset to false at connection boundaries so one disconnected client cannot leave a live reservation/enable state for the next client.
52+
53+
No dynamic DataSet mutation is available on this server. `LLN0.Outputs` is static and non-deletable.
54+
55+
No automatic report-control takeover or retry is performed.
56+
57+
## Build
58+
59+
```powershell
60+
powershell.exe -ExecutionPolicy Bypass -File .\scripts\build_mms_direct_control_server.ps1
61+
```
62+
63+
The helper builds/tests both server trial executables.
64+
65+
## Run
66+
67+
```powershell
68+
.\build-mms-direct-control\Release\ariec61850_mms_urcb_server.exe `
69+
--bind 0.0.0.0 `
70+
--port 8102 `
71+
--mask 0x55
72+
```
73+
74+
Expected startup marker:
75+
76+
```text
77+
MMS_URCB_SERVER_READY ... dataset=ESP32S3IOLD0/LLN0.Outputs urcb=ESP32S3IOLD0/LLN0$RP$Outputs01 members=8 ...
78+
```
79+
80+
On each emitted report the server prints:
81+
82+
```text
83+
MMS_URCB_REPORT_SENT index=0 sqNum=<n> reason=8 bytes=<n>
84+
```
85+
86+
Reason `8` is General Interrogation.
87+
88+
For TCP 102, use a laboratory host configuration that permits binding the standard MMS port.
89+
90+
## IEDScout trial
91+
92+
Connect IEDScout to the server host and browse `ESP32S3IOLD0`.
93+
94+
Verify the `LLN0.Outputs` DataSet and `LLN0$RP$Outputs01` URCB are visible. Enable the report and issue GI. The expected evidence is one report with eight Boolean values matching the configured `--mask` bit order.
95+
96+
Retain console output and PCAP/PCAPNG. Until this live run is performed, this tranche is classified as software/offline-tested rather than live-proven server interoperability.
97+
98+
## Still pending
99+
100+
- event-on-change/data-change triggering;
101+
- multiple URCBs and concurrent-client ownership;
102+
- BRCB retention/replay/EntryID/PurgeBuf on the runnable server adapter;
103+
- Direct/SBO enhanced server control and CommandTermination;
104+
- server-side MMS file services;
105+
- GPIO/lwIP hardware adapter;
106+
- runtime SCL/CID model generation;
107+
- TLS/security profiles and broader multi-vendor evidence.

0 commit comments

Comments
 (0)