上个月在天津滨海新区的一家新能源电池生产企业做项目,他们的电芯装配线需要一套实时数据采集系统——要对接产线上的12台PLC,读取每个电芯的电压、温度、内阻、极耳焊接质量等20多项数据,采集周期要求100ms,数据要同时存SQL Server做业务追溯和InfluxDB做实时看板。之前他们用的是进口组态软件,不仅Licensing费用高,定制化报表和对接MES系统特别麻烦,客户直接指定用C#写一套轻量级上位机,灵活可控还省钱。
整个项目从调研到上线用了三周,中间踩了不少坑——比如Modbus TCP的连接数限制、PLC寄存器的端序问题、数据库批量插入的性能瓶颈。今天把完整的架构设计、代码实现和优化方案分享给大家,都是经过7x24小时验证的实战内容。
整体架构设计
我们把系统分成五层,从下到上依次是现场设备层、通信协议层、数据采集层、数据存储层和可视化展示层: