锂电池化成产线上位机产品系统

我要开发同款
李云杰2026年06月07日
4阅读

技术信息

语言技术
C#HTTP.Net
系统类型
Windows
行业分类
能源工业互联网

作品详情

行业场景

1.立项原因: 原电池化成产线使用的上位机系统存在数据采集延迟高、与车间MES系统对接不畅、历史数据查询效率低下等问题,导致生产节拍受控,电池化成数据(如电压、电流、温度)无法实现全流程追溯。为解决产线数据“孤岛”与系统响应瓶颈,公司立项对现有上位机系统进行功能修改与性能优化。
2.行业场景: 在锂电池生产的化成、分容工序中,需要将电池放置于夹具中,通过下位机控制充放电过程。上位机系统需实时采集这些过程数据,判断电池质量。同时,生产管理层(MES)需要实时获取工单状态、设备参数和最终测试结果,以实现生产控制、质量统计和工艺溯源。本系统正是服务于这个“设备层-控制层-管理层”信息桥梁的关键环节。

功能介绍

设备通信与数据采集模块: 负责通过Modbus/TCP协议与现场20+台下位机进行高频数据交互,实时读取化成过程中电池的电压、电流、内阻、温度及设备告警状态。
数据处理与本地存储模块: 采用SQLite作为嵌入式数据库,设计高效的数据表结构,对高频采集的原始数据进行滤波、异常剔除和时间戳对齐处理。并实现按批次(Batch ID)进行数据的快速写入与归档。
MES对接中间件模块:MES 系统提供基于 WCF / SOAP 的 Web 服务接口,使用 BasicHttpBinding 进行通信。我通过 添加服务引用生成客户端代理,负责进站验证,在制品数据上传,即每台设备的工单信息、实时状态、化成结果曲线关键点以及出站与NG上报,通过异步队列可靠地推送到车间MES系统。以及MES工艺流程获取与创建。
人机交互与功能修改模块: 在原有界面上修改并增加了工艺选择、工艺批量绑定,报警记录等功能,修改了多线程下UI界面卡死、数据刷新不及时等问题

项目实现

独立分析并重构了旧系统的PLC通信层,将同步阻塞式读写改为基于System.Threading.Tasks的异步非阻塞模式,解决数据采集阻塞UI线程问题。
设计并实现了SQLite数据库的读写分离方案,采集线程写入一个连接,界面查询和MES读取使用另一个只读连接,大幅提升查询并发能力。
开发了基于WCF/SOAP的MES可靠对接模块:使用 BasicHttpBinding 绑定,通过 Visual Studio 的“添加服务引用”生成 IMESServicer 客户端代理,封装了 TEST 及实际生产数据上报方法(如 UploadBatchData、ReportNGResult)。
针对MES服务不稳定或网络闪断场景,设计了本地队列缓存+断点续传机制:上报失败时数据持久化到SQLite本地表,后台线程轮询重试。

技术栈: C# .NET Framework 4.7.2, WPF(UI层), Modbus TCP/RTU(PLC通信), SQLite(本地数据库),SOAP协议, NLog(日志记录)。
架构模式: MVVM,并引入生产者-消费者模式处理PLC数据流:采集线程为生产者,将数据放入 ConcurrentQueue;数据处理与存储线程为消费者,负责解析、写入数据库。

MES对接实现细节:
通过“添加服务引用”生成代理类,配置文件(app.config)中指定 basicHttpBinding 及MES服务地址、超时时间。
封装 MESServiceClient 单例管理器,处理代理类的创建、异常关闭和重建逻辑。

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论