#software-architecture
9 posts tagged software-architecture.
· 9 min readWho is the client? Industrial roles, bidirectional RPC and publish/subscribe
Does the participant that opens the connection always control the conversation? Not in OCPP, where chargers dial out and then answer remote commands; not in KNX, where there is no client at all; and not in OPC UA, where reverse connect and PubSub change the picture. Connection ownership, application roles and message direction are separate design concerns.
- #software-architecture
- #protocols
- #networking
· 11 min readTime, freshness and ordering in industrial communication
When an industrial measurement arrives, what do you actually know about its age? Source time, acquisition time and receive time differ; sampling and publishing intervals differ; arrival order is not occurrence order; and a value can look perfectly plausible long after it went stale. How Modbus, OPC UA, DNP3, IEC 104, IEC 61850, EtherNet/IP, PROFINET and CANopen help, and where they do not.
- #software-architecture
- #protocols
- #scada
- #data
· 12 min readIndustrial events and alarms: delivery, persistence and recovery
When something changes while you are disconnected, can you find out afterwards? BACnet, OPC UA, IEC 104, DNP3, IEC 61850, CANopen, KNX and OCPP answer differently, from recovered history with time stamps to a known gap to silent loss. Support for notifications is not the same as guaranteed event history.
- #software-architecture
- #protocols
- #scada
- #alarms
· 13 min readDesigning a multi-protocol OT gateway without hiding the differences
How should a software engineer design an application that talks to Modbus, OPC UA, DNP3, IEC 104, PROFINET and OCPP at once? Not with one universal device client. Capability-driven adapters, separate polling, event, cyclic and command paths, explicit lifecycle state machines, and values that carry time, quality and provenance keep the protocol contracts intact.
- #software-architecture
- #protocols
- #interop
- #engineering
· 11 min readReading industrial data: polling, subscriptions, events and cyclic I/O
Who decides when your application receives a measurement? In Modbus and S7 the client does; in OPC UA and BACnet a subscription hands that decision to the server; in DNP3 and IEC 104 the device reports and keeps events; in PROFINET, EtherNet/IP and CANopen a configured cycle does. Each choice has a cost in freshness, device load and correctness.
- #software-architecture
- #protocols
- #scada
- #automation
· 11 min readReconnecting is not recovering: industrial connection and session lifecycles
What state must be rebuilt after an industrial connection fails? A new socket is only the first of several steps. OPC UA, IEC 104, DNP3, PROFINET, EtherNet/IP, CANopen, OCPP, OpenADR and IEEE 2030.5 each need their own sequence of session setup, resynchronization and replay before data can be trusted again.
- #software-architecture
- #protocols
- #networking
- #scada
· 11 min readWriting to industrial equipment: why an acknowledgement is not the same as execution
What does a successful command actually guarantee? A Modbus write, a DNP3 select-before-operate, an IEC 104 command, an IEC 61850 control, a PROFINET output, an OCPP remote start and an IEEE 2030.5 DER control each confirm something different. Separating delivered, accepted, executed and verified makes retries safe and results honest.
- #software-architecture
- #protocols
- #scada
- #energy
· 16 min read14 industrial protocols, 5 communication patterns: a software architect’s guide to OT
Industrial communication is not one architecture with fourteen wire formats. Modbus, OPC UA, BACnet, IEC 104, IEC 61850, S7, DNP3, EtherNet/IP, PROFINET, CANopen, KNX, OCPP, OpenADR and IEEE 2030.5 make different promises about who speaks, when data moves, what an acknowledgement means and what survives a failure. This guide maps them onto five patterns, and those patterns onto software architecture.
- #software-architecture
- #protocols
- #interop
- #engineering
· 11 min readWhy industrial real-time communication is not just faster TCP
PROFINET, EtherNet/IP, CANopen, IEC 61850 GOOSE and Sampled Values bypass ordinary request/response networking for a reason. Real time is about bounded latency, jitter, deadlines, watchdogs and freshness, not raw speed, and it changes what your software, your containers and your test networks must provide.
- #software-architecture
- #protocols
- #networking
- #automation