Protocols and Framing
Channels move bytes. Protocols interpret those bytes as operations such as “read holding register 10”.
Device (ModbusDevice / McDevice / S7Device / FinsDevice / HostLinkDevice / EtherNetIpDevice / custom DeviceBase)
↓
Session (FrameSession / ModbusClient / McClient / S7Client / FinsClient / HostLinkClient / EtherNetIpClient)
↓
Codec (length frame / RTU / MBAP / MC / S7 / FINS / Host Link ASCII / EtherNet/IP CIP)
↓
Channel (serial / TCP / UDP / virtual)
Protocol Packages
| Assembly | Scenario |
|---|---|
Zeus.Protocols.Framing | Vendor-specific [header][length][payload][checksum] frames |
Zeus.Protocols.Modbus | Function codes 01-08, 0F, 10, 11, 16, and 17 |
Zeus.Protocols.Mc | Mitsubishi MC 1E / 3E / 4E, Binary / ASCII, X/Y/M bits and D/W/R/ZR words |
Zeus.Protocols.S7 | Siemens S7 TCP DB/I/Q/M common scalar types |
Zeus.Protocols.Fins | Omron FINS UDP/TCP CIO/WR/HR/AR/DM/EM/TIM-CNT |
Zeus.Protocols.HostLink | Omron Host Link ASCII CIO/LR/HR/AR/DM |
Zeus.Protocols.EtherNetIp | Allen-Bradley EtherNet/IP CIP tags and attributes |
Protocol packages only depend on IChannel, so the same device code can run over serial, TCP, UDP, or virtual responders.
Request and Response
Most industrial buses are request/response and should be serialized per channel. FrameSession, ModbusClient, and other protocol clients handle this internally. If multiple devices share one channel, avoid concurrent direct protocol calls.
See Custom Framing, Modbus, Mitsubishi MC, Siemens S7, Omron FINS, Omron Host Link, and EtherNet/IP.