OPC UA Equipment Monitor
A stale reading must never look live
Overview
Real-time industrial equipment monitoring in .NET 8, with both links shown separately
An operator is watching a machine on a dashboard and the connection drops. The question that matters is whether the screen carries on showing the last numbers as though they were live.
A .NET 8 service subscribes to node changes on an OPC UA server and streams them over SignalR to an Angular dashboard that charts them as they arrive.

Evidence
What it looks like running
Data-change notifications arriving on the subscription, then the OPC session dropping and the header showing the attempt, the server's own error and the countdown to the next retry Six monitored items on one subscription, each card carrying its value, source timestamp, age, status code and configured band Address space browsed one level at a time with each level's variables read as it is fetched, and a variable subscribed from the tree appearing as a new card The OPC session dropped: the attempt number, elapsed time, the server's own error and the backoff countdown are all on screen while the last received values stay up The browser's own socket to the service dropped, a different failure from the OPC session: the session field is marked last known and the held values are labelled as held The same build against a public demo server, browsing that server's address space and flagging a node whose subscription has reported nothing as quiet rather than broken
Engineering
How it was built
Frontend
- Angular dashboard charting values as they arrive
- Last-known values held and labelled on link loss, with the age since the last update
- Address-space tree for choosing which nodes to monitor
Backend & services
- .NET 8 OPC UA client, nodes resolved by browse path or node id
- Subscriptions with per-node quality, timestamp and value band
- SignalR hub streaming updates to every connected dashboard
- Equipment session state tracked and published separately from the dashboard socket
Testing & verification
- 81 tests
- Verified against a live public OPC UA server: session, browse paths and subscriptions
Applied
Skills on this project
Next step
Ready to bring your project to life?
Schedule a free 30-minute strategy call with our team.
No sales call. You will talk to the engineer who would do the work, and you will get a written summary either way.