一、项目全景与需求分析
大家好,我是老张。做上位机开发十几年了,经手的电池化成项目少说也有七八个。今天咱们聊聊这个课程的第一章——项目全景与需求分析。
说实话,很多新手一上来就急着写代码,结果做到一半发现需求没搞清楚,推倒重来。我早期也犯过这个错。所以这一章,咱们先把地基打牢。
1.1 电池化成工艺简介
电池化成,说白了就是给新生产的锂电池做「激活」。你想想看,电池从生产线下来,里面的电极材料还没完全活化,直接给客户用肯定不行。
化成工艺一般分三步:
- 静置:让电池内部温度、电压稳定下来
- 充放电:按特定曲线进行小电流充放,形成SEI膜
- 老化:模拟使用环境,筛选不良品
我在项目中遇到过最头疼的事,就是客户突然说「工艺参数要改」。嗯,所以上位机必须支持灵活的配方配置,不能写死。
核心要点:化成工艺的核心是「精确控制」和「数据采集」。电压精度要到mV级,电流精度到mA级,采样频率至少1Hz。
1.2 上位机系统架构
咱们做上位机,不能只盯着界面好看。架构设计才是灵魂。我个人习惯用分层架构,大概分四层:
| 层级 | 职责 | 技术选型(我常用的) |
|---|---|---|
| UI层 | 数据显示、操作交互 | WPF / WinForms |
| 业务逻辑层 | 工艺控制、数据校验 | C# 类库 |
| 通信层 | 与PLC/下位机交互 | Modbus TCP / OPC UA |
| 数据层 | 存储、查询、报表 | SQLite / SQL Server |
为什么这么分?因为好维护。有一次客户要求把通信协议从Modbus改成CAN,我只需要改通信层,UI和业务逻辑完全不动。
我的小技巧:通信层一定要做「心跳检测」。我曾经遇到过下位机死机了,上位机还傻傻显示「运行中」,差点出事故。
1.3 功能需求分析
功能需求,就是「系统要干什么」。我习惯先列核心功能,再补充辅助功能。
1.3.1 核心功能
- 通道控制:每个通道独立控制充放电,支持批量启停
- 工艺编辑:支持多步骤、多条件跳转的配方编辑
- 实时监控:电压、电流、温度、容量实时显示
- 数据记录:每秒钟记录一次数据,支持断点续传
- 报警管理:过压、欠压、过温等异常报警
1.3.2 辅助功能
- 用户权限:操作员、工程师、管理员三级权限
- 报表导出:支持Excel、PDF格式
- 日志记录:操作日志、系统日志、错误日志
- 远程监控:通过Web或App查看状态
避坑指南:我曾经遇到一个项目,客户说「先做核心功能,辅助功能后面再加」。结果验收时客户说「没有报表功能不行」。所以,需求文档里一定要把辅助功能也写清楚,哪怕优先级低。
1.4 非功能需求分析
非功能需求,就是「系统要运行得多好」。很多新手只关注功能,忽略了非功能需求,结果系统上线后各种问题。
1.4.1 性能需求
- 响应时间:界面操作响应小于500ms
- 并发能力:支持同时监控512个通道
- 数据吞吐:每秒处理1000条以上数据记录
1.4.2 可靠性需求
- 系统可用性:7×24小时连续运行
- 数据完整性:断电后数据不丢失
- 故障恢复:系统崩溃后30秒内自动重启
1.4.3 安全性需求
- 通信加密:上位机与下位机通信采用AES加密
- 数据备份:每天自动备份数据库
- 防误操作:关键操作需要二次确认
经验之谈:非功能需求最好量化。别写「系统要稳定」,要写「系统连续运行7天不重启」。这样测试时才有标准。
1.5 需求文档怎么写
最后聊聊需求文档。我个人习惯用「用例图+功能列表+验收标准」的组合。
举个例子:
用例名称:启动化成工艺
前置条件:设备已连接,配方已加载
主流程:
1. 操作员点击「启动」按钮
2. 系统校验参数是否合法
3. 系统下发启动指令到下位机
4. 系统显示「运行中」状态
后置条件:所有通道开始执行工艺
验收标准:点击启动后2秒内,下位机收到指令
这样写的好处是,开发和测试都能看懂,客户也能确认。
我的习惯:需求文档写完后,我会找客户当面过一遍。别发邮件,一定要当面。因为很多问题当面聊才能发现。
小结
这一章咱们聊了电池化成的工艺背景、上位机的分层架构、功能需求和非功能需求。说白了,就是搞清楚「做什么」和「做多好」。下一章咱们开始动手搭开发环境,到时候我会分享一些我常用的工具和配置。
嗯,今天就到这儿。有问题欢迎交流。