Skip to main content

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

AssemblyScenario
Zeus.Protocols.FramingVendor-specific [header][length][payload][checksum] frames
Zeus.Protocols.ModbusFunction codes 01-08, 0F, 10, 11, 16, and 17
Zeus.Protocols.McMitsubishi MC 1E / 3E / 4E, Binary / ASCII, X/Y/M bits and D/W/R/ZR words
Zeus.Protocols.S7Siemens S7 TCP DB/I/Q/M common scalar types
Zeus.Protocols.FinsOmron FINS UDP/TCP CIO/WR/HR/AR/DM/EM/TIM-CNT
Zeus.Protocols.HostLinkOmron Host Link ASCII CIO/LR/HR/AR/DM
Zeus.Protocols.EtherNetIpAllen-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.