跳到主要内容

架构

Zeus 的架构目标很简单:通信、协议和采集不要写进窗口代码里。窗口只负责展示和操作,底层收发由 Zeus 管。

应用程序(WinForms / WPF / 控制台)
↓
Zeus.Presentation.* WinForms 控件绑定 / WPF MVVM 绑定源、线程切换
↓
Zeus.Hosting ZeusHost.Create、生命周期、采集循环
↓
Zeus.Configuration JSON 配置
↓
Zeus.Protocols.* 自定义帧、Modbus、Mitsubishi MC、Siemens S7、Omron FINS、Omron Host Link、Panasonic MEWTOCOL、EtherNet/IP、DL/T 645、IEC104、MQTT、SNMP
↓
Zeus.Communications 串口、TCP、UDP、虚拟通道
↓
Zeus.Runtime(程序集名 Zeus.Core)/ Zeus.Abstractions

分层​

层做什么不做什么
Zeus.Presentation.*WinForms 绑定控件;WPF 提供 MVVM 绑定源和 Dispatcher 封送不解析协议
Zeus.Hosting创建宿主、启动停止、运行采集循环不关心具体 UI
Zeus.Configuration从 JSON 声明通道、设备和点表;协议由各协议包登记绑定不引用、不打包全部协议实现
Zeus.Protocols.*处理自定义帧、Modbus、Mitsubishi MC、Siemens S7、Omron FINS、Omron Host Link、Panasonic MEWTOCOL、EtherNet/IP、DL/T 645、IEC104、MQTT 和 SNMP不拥有传输套接字或串口
Zeus.Communications提供串口、TCP、UDP、虚拟通道不理解寄存器和业务含义
Zeus.Runtime / Zeus.Abstractions提供基础接口、点表和通道状态机。NuGet 包名是 Zeus.Runtime,程序集名仍是 Zeus.Core不引用桌面框架

这样分层后,业务代码可以面向 IChannel、IDevice 和点表编写。你从虚拟通道换到串口,或从 WinForms 换到 WPF,不需要重写协议层。

三种用法​

  1. 推荐: ZeusHost.Create 加上 AddSerialPort / AddModbusRtu / AddModbusAscii / AddMitsubishiMc / AddSiemensS7 / AddOmronFins / AddOmronHostLink / AddPanasonicMewtocol / AddEtherNetIp / AddIec104 / AddMqtt / AddSnmp 等扩展方法。
  2. 自定义协议: 使用 FrameSession 或自己实现编解码,仍复用官方通道和宿主。
  3. 直接读写字节: 只使用 IChannel,适合很简单的协议或调试工具。

如果你是第一次看 Zeus,先不用深究这些分层。按 控制台示例 跑通,再回来看这页会更容易。