匠心智造-上位机硬件通讯之Modbus 客户端

匠心智造-上位机硬件通讯之Modbus 客户端 WPF硬件通讯中心初版正式发布上位机开发的道与术我们不布道我们只讲实战快快加入我们吧私信我领取优惠券一句话介绍从串口调试开始覆盖 网络通讯Modbus通讯以及相机的全栈工业硬件通信教学与开发平台。项目亮点1. 多协议通信引擎 — 10 协议统一接口不只是 demo每种协议都封装为可复用的独立通信库接口统一、开箱即用。模块功能封装库Serial串口调试、参数配置、HEX/文本收发YXGK.HardwareComm.Modules.SerialTCP Server/Client以太网服务端/客户端调试YXGK.HardwareComm.Modules.InternetUDP Server/ClientUDP 数据报收发YXGK.HardwareComm.Modules.InternetModbus ServerModbus TCP/RTU 服务端支持多客户端YXGK.HModbusServerLibModbus ClientModbus TCP/RTU 客户端读写YXGK.HModbusClientLibHTTP ClientGET/POST 请求调试YXGK.HardwareComm.Modules.HttpClientDemoMQTTBroker 连接、订阅/发布YXGK.HardwareComm.Modules.MQTTDemoSignalRHub 连接、消息广播YXGK.HardwareComm.Modules.SignalRDemogRPCProto 文件 服务端/客户端YXGK.HardwareComm.Modules.GRPCDemoRabbitMQ生产者/消费者消息队列YXGK.HardwareComm.Modules.RabbitMQDemo2. 平台化基础设施 — 拿来就能用的工业级框架2. 平台化基础设施 — 拿来就能用的工业级框架所有模块共享一套基础设施新建一个调试模块只需关注通信逻辑本身。Prism 模块化架构— 热插拔导航模块间完全解耦Attribute 自动发现Instant 操作模式— 每个操作实例自包含属性和命令照搬即可复用黑白工业主题— 一套 XAML 同时适配深色/浅色Segoe MDL2 图标系统中/英多语言— DynamicResource 运行时切换无需重启Markdown 文档渲染— 自定义 FlowDocument 渲染器学习文档存本地 .md 文件嵌入资源管理— 文档随 DLL 发布零外部依赖3. 工程化调试体验 — 不只是能跑更要好用每个模块面板都经过反复打磨面向真实的开发和调试场景。可折叠配置面板— 配好参数后折叠给数据显示腾出空间GridSplitter 分栏— 左侧文档 / 右侧操作面板自由拖拽双标签日志区— 原始数据帧和业务事件分开查看DataGrid 可编辑快照— Coil/Float/Int16/Int32 直接编辑即写入JSON 配置导入/导出— 一键保存和恢复所有参数实时连接状态指示— 绿色圆点 客户端计数状态一目了然4. 分层架构逐层解耦┌─────────────────────────────────────────┐ │ UI 层 Views / ViewModels / Instant │ ← WPF 面板 ├─────────────────────────────────────────┤ │ 服务层 IHModbusServerService 等 │ ← 接口抽象 ├─────────────────────────────────────────┤ │ 通信库层 HModbusServerLib 等 │ ← 协议封装 ├─────────────────────────────────────────┤ │ 基础层 Prism / Themes / i18n │ ← 共享框架 └─────────────────────────────────────────┘每层独立测试模块可以任意组合。从串口调试到 Modbus 服务器共享同一套 UI 范式。技术栈|层面|技术选型|| — | — ||框架|.NET 10 WPF||MVVM|Prism 9 DryIoc||通信|HSL Communication (Modbus), System.IO.Ports, System.Net.Sockets||UI|HandyControl 3.5, 自定义 Markdown 渲染器||主题|独立 Wpf.Themes 库, DynamicResource 体系||多语言|Wpf.Localization 库, zh-CN / en-US||日志|log4net|项目结构Modbus 客户端模块马斯克第一性原理之必背知识点详见上一篇Modbus服务器对应部分。中文界面英文界面心跳功能常用数据交互读写实战这个模块可以干什么XXMES 设备接口对接说明文档说明本文档说明传动 MES 系统接收设备测试数据的接口规范。接口地址南京厂区POST ----/mes/eam.sp?saveHyDataAcquisition珠海厂区POST ----/cnc_mes/eam.sp?saveHyDataAcquisition请求参数参数名必填说明eqNo是设备编码assemblyQrCode是总成条码endosomeQrCode内体条码eqName设备名称operator操作者testResult是测试结果testTime是测试时间productName产品名称manufacturer厂商名称fieldValue不固定字段列和值fieldValue 格式字段名:值,字段名:值例如刚度:22,角度:33请求体示例{eqNo:test-001,assemblyQrCode:code2232o32423,eqName:设备1,operator:百晓生,testResult:OK,testTime:2023-01-01 00:00:00,productName:产品名称,manufacturer:厂家1,fieldValue:刚度:22,角度:33}响应内容{success:true,msg:保存成功,code:200,result:null ,remark:null}响应参数|参数名|类型|说明|| — | — | — ||code|int|状态码200 表示正常其他为错误||message|string|错误信息提示|需求拆解说明1-常用PLC品牌信捷/汇川/三菱。。。可以实现无差别单打2-常用数据采集类型覆盖心跳信号float/int 16/int 32/Coil3-HttpClient实现跟MES的数据交互***Y**X**G**K***