我做了 3 年工控上位机开发,接过最大的一个项目,是给浙江一个汽配工厂做整线生产数据采集系统,现场一共 86 台 PLC、120 个传感器,需要同时轮询采集数据,实时刷新到上位机界面,延迟不能超过 100ms。
一开始我用网上找的基础 Modbus TCP demo,单设备调试完全没问题,结果一到现场,同时连接 20 台设备就开始卡顿,界面直接卡死,设备掉线了不会自动重连,数据频繁丢包,客户现场的工程师围着我看笑话,说 “你这 demo 级的程序,根本用不了工业现场”。
那一次我在现场熬了 3 个通宵,推翻了原来的所有代码,重新设计了一套支持高并发、多设备轮询、自动掉线重连、线程安全、异常容错的工业级 Modbus TCP 通信框架,最终实现了 86 台设备同时轮询,数据刷新延迟稳定在 50ms 以内,到现在已经在现场稳定运行了 18 个月,零崩溃、零数据丢失。
这篇文章,我把这套经过工厂现场验证的框架完整分享给大家,带全注释可运行源码,不用任何第三方库,新手也能直接复制到项目里用。