这篇复盘赢式科技在上海松江一家新材料工厂实施的上位机软件项目。项目同时包含数据采集和控制反控:上位机既要看设备数据,又要下发配方参数和启停指令。带反控的项目责任重,实施规矩必须比纯监控项目严,下面讲具体做法。
先把项目边界讲清楚
进场前先明确三条边界:安全联锁由设备 PLC 和硬件回路负责,上位机不替代;上位机做监控、参数管理、数据追溯和经过授权的指令下发;现场紧急停止按钮保持最高优先级,任何软件状态都不能屏蔽它。这三条写进方案,避免后期责任模糊。
同时和客户确认了 SCADA 和上位机的分工:这套系统服务于本车间十几台设备,不盲目做大而全的组态平台,软件以工厂自己的管理流程为核心定制,这也是上位机定制和成套 SCADA 产品的区别。
数据采集部分怎么做
设备 PLC 以西门子和三菱为主,通过车间工控网接入。采集数据分三层:状态和报警 500 毫秒、工艺参数 2 秒、能源和累计量 10 秒。点表由工艺、设备、软件三方确认,每个点标注地址、倍率、单位和用途。
针对工厂现场的两个具体问题做了处理:累计量防跳变(设备断电重启后读数可能回零或跳变,系统只认相邻差值在合理范围内的数据);时间戳统一以上位机服务器为准。采集完整率在试运行期间连续统计,作为验收依据。采集服务器一主一备,主机故障时备机接管,切换对现场透明;数据库每日自动备份到独立存储,备份保留三个月,误删也能恢复。
反控核心:指令怎么保证可靠
下发指令最怕两种情况:指令丢了现场没执行,或者指令重复执行。我们在通讯机制上做了完整约束:
- 指令编号:每条指令带唯一编号和时间戳,PLC 侧记录已执行的编号,编号重复直接丢弃;
- 执行回执:PLC 执行后回写状态字(收到、执行中、成功、失败及原因),上位机据此更新画面;
- 超时处理:规定时间内没收到回执,提示超时,由人工决定是否重发,系统不自动重复动作类指令;
- 参数校验:配方下发前在上位机和 PLC 两侧都做上下限校验,超限拒绝执行并报警。
调试时专门模拟了断网、延迟、PLC 忙等异常工况,验证每种情况下指令都不会被重复执行。这部分测试占了联调时间的三分之一,值得。
PLC联锁和操作权限
所有反控点在 PLC 程序里保留联锁条件:设备有人作业、门开关触发、参数不在允许窗口时,即使收到上位机指令也拒绝执行。软件不能绕过设备自身的安全逻辑,这是硬规矩。
上位机账号分四级:查看、操作、工程师、管理员。启停和配方下发只有工程师及以上权限能操作,关键操作二次确认;管理员负责账号和审计。所有反控操作留日志,谁、什么时间、发了什么、结果如何,全程可查。
网络安全和断网应对
| 层级 | 措施 |
|---|---|
| 设备层 | 独立工控网段,只对采集服务器开放 |
| 服务器层 | 上位机和数据库部署在车间机房,白名单访问 |
| 办公层 | 经防火墙单向读报表,不能直接访问设备 |
断网时设备照常由 PLC 控制,生产不受影响;上位机缓存期间数据,网络恢复后按时间戳补传。客户还要求远程运维支持,方案上只开放经过审批的 VPN 通道,且每次远程操作留记录。
验收指标和给上海企业的建议
验收按量化结果走:采集完整率 99.9%、指令回执率 100%、重复执行次数为 0、报警弹窗延迟小于 2 秒、异常工况测试全部通过。系统上线后半年内做了两次回访,根据使用情况补了报表和审计字段。
给上海企业的建议:反控功能宁少勿滥,先把必须远程下发的点梳理清楚,可做可不做的先不做;项目合同里写清联锁责任、权限模型和异常测试项。需要本项目脱敏资料或约现场交流,打 15001875806(微信同号),也可以发邮件到 ys_soft@163.com。
