前言
数字化转型加速的时代,工业互联网(IIoT)作为连接物理世界与数字世界的桥梁,正变得越来越重要。它不仅促进了设备间的高效通信,还为智能制造、自动化控制等领域带来了前所未有的变革。
然而,面对市场上众多的通信协议和复杂的设备接口,如何快速、稳定地实现设备间的数据交换成为了一个亟待解决的问题。
本文将介绍一款名为 Ping9719.IoT 的工业互联网通讯库,它支持多种主流PLC及其它常用协议,帮助大家简化开发过程,提升工作效率。
项目介绍
Ping9719.IoT 是一个开源的工业互联网通讯库,它实现了包括 ModBus、CIP、MC、FINS 在内的多种常用协议。
该库不仅提供了对主流PLC的支持,还涵盖了从 TCP、串口到 USB 等多种通信方式的切换功能。不管是新手开发还是有技术大神,都能通过 Ping9719.IoT 快速搭建起高效稳定的工业物联网系统。
项目特性
1、统一的设备访问接口
Ping9719.IoT 定义了 IIoT 接口,允许用户通过简单的 API 调用即可实现数据的读写操作。例如:
client.Read<bool>("abc"); // 读取单个值
client.Write<int>("abc", 10, 20, 30); // 写入多个值
2、灵活的客户端配置
基于 ClientBase 类,Ping9719.IoT 支持轻松切换不同的通信方式,如 TCP、串口等。
var tcpClient = new TcpClient(ip, port);
var omronClient = new OmronCipClient(tcpClient);
omronClient.Client.Open(); // 打开连接
3、事件驱动机制
Ping9719.IoT 提供了丰富的事件处理机制,使开发者能够根据实际需求定制连接状态变化、数据接收等行为。
client1.Opened += (sender) => Log.AddLog("连接成功");
client1.Received += (sender, data) => Log.AddLog($"收到消息: {data}");
支持的协议与设备
1、Modbus 协议支持
ModbusRtuClient
功能:支持串口 Modbus RTU 协议通信
状态:已实现,可稳定使用
ModbusTcpClient
功能:支持基于 TCP 的 Modbus TCP 协议通信
状态:已实现,可稳定使用
ModbusAsciiClient
功能:支持 ASCII 模式的 Modbus 协议通信
状态:已实现,功能完整
2、PLC 设备支持
| 品牌 | 客户端类名 | 说明 | 状态 |
|---|---|---|---|
| 罗克韦尔 | AllenBradleyCipClient | CIP 协议 | ❗未通过测试 |
| 汇川 | InovanceModbusTcpClient | Modbus TCP 协议 | ✅已实现,可用 |
| 三菱 | MitsubishiMcClient | MC 协议 | ✅已实现,可用 |
| 欧姆龙 | OmronFinsClient, OmronCipClient | FINS / CIP 协议 | ✅已实现,可用 |
| 西门子 | SiemensS7Client | S7 协议(适配S7系列PLC) | ✅已实现,可用 |
3、机器人设备支持
| 品牌 | 设备类名 | 协议/接口 | 状态 |
|---|---|---|---|
| 爱普生 | EpsonRobot | 自定义协议 | ⏳进行中 |
4、通讯模块
| 模块名 | 类名 | 协议/技术栈 | 状态 |
|---|---|---|---|
| TcpClient | TcpClient | TCP 协议 | ✅已实现,可用 |
| TcpServer | TcpServer | TCP 协议 | ⏳待开发 |
| SerialPortClient | SerialPortClient | 串口通信 | ✅已实现,可用 |
| UdpClient | UdpClient | UDP 协议 | ⏳待开发 |
| UdpServer | UdpServer | UDP 协议 | ⏳待开发 |
| HttpServer | HttpServer | HTTP / REST API | ⏳待开发 |
| MqttClient | MqttClient | MQTT 协议 | ⏳待开发 |
| MqttServer | MqttServer | MQTT 协议 | ⏳待开发 |
5、算法模块
| 算法名称 | 类名 | 状态 |
|---|---|---|
| CRC 校验 | CRC | ✅已实现 |
| 傅立叶变换 (Fourier) | FourierAlgorithm | ⏳待开发 |
| PID 控制 | PIDController | ⏳待开发 |
| RSA 加密 | RSAEncryptor | ⏳待开发 |
6、设备和仪器支持(Device)
FCT 测试设备
| 品牌 | 类名 | 接口类型 | 状态 |
|---|---|---|---|
| 盟讯电子 | MengXunFct | 自定义 | ✅可用 |
激光刻印机(Marking Devices)
| 品牌 | 类名 | 协议 | 状态 |
|---|---|---|---|
| 大族激光 | DaZhuMark | 自定义 | ✅可用 |
| 华普激光 | HuaPuMark | 自定义 | ✅可用 |
无线射频识别(RFID)
| 品牌 | 类名 | 协议 | 状态 |
|---|---|---|---|
| 倍加福 | BeiJiaFuRfid | 自定义 | ✅可用 |
| 泰和森 | TaiHeSenRfid | 自定义 | ✅可用 |
| 万全 | WanQuanRfid | 自定义 | ✅可用 |
扫码枪(Scanner)
| 品牌 | 类名 | 协议 | 状态 |
|---|---|---|---|
| 霍尼韦尔 | HoneywellScanner | 串口/USB | ✅可用 |
| 民德 | MindeoScanner | 串口/USB | ✅可用 |
螺丝机(Screw Machine)
| 品牌 | 类名 | 协议 | 状态 |
|---|---|---|---|
| 快克螺丝机 | KuaiKeDeskScrew, KuaiKeScrew, KuaiKeTcpScrew | 自定义协议 | ❌不推荐使用 |
| 米勒螺丝机 | MiLeScrew | 自定义协议 | ✅可用(推荐) |
温控设备(Temperature Control)
| 品牌 | 类名 | 协议 | 状态 |
|---|---|---|---|
| 快克温控 | KuaiKeTemperatureControl | 自定义协议 | ❌不推荐使用 |
焊接机(Welding Machine)
| 品牌 | 类名 | 协议 | 状态 |
|---|---|---|---|
| 快克焊接机 | KuaiKeWeld | 自定义协议 | ❌不推荐使用 |
项目文档
IoT 文档
IoT.WPF 文档
IoT.Avalonia 文档
项目源码
Gitee:gitee.com/ping9719/Io…
GitHub:github.com/ping9719/Io…
总结
Ping9719.IoT 是一个面向工业自动化领域的通用通信库,旨在提供包括 PLC、ModBus、机器人、RFID、扫码枪等多种设备的接入能力。目前项目已完成基础通信框架与多种主流设备的支持,部分高级功能(如 MQTT、HTTP Server、PID 等)正在规划或开发中。
以上仅展示了物联网设备通讯协议的部分功能。更多实用特性和详细信息,请大家访问项目源码。
希望通过本文能为.NET在物联网设备通讯协议开发方面提供有价值的参考。欢迎在评论区留言交流,分享您的宝贵经验和建议。
最后
如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。
也可以加入微信公众号 [DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!
优秀是一种习惯,欢迎大家留言学习!