上位机与西门子S7-1500通过OPC UA采集数据异常的案例
一、故事背景
某工业现场,MES上位机通过OPC UA采集S7-1500里的数据,遇到漏采集的问题。PLC工程师认为是MES问题,MES认为是PLC漏触发数据,两方吵得不可开交。下面分享这个有趣的案例。
二、采集流程
PLC程序与MES交互过程分析:
1.生产完成后,PLC置位PLC内的“可采集”信号。
2.MES发现PLC内有可采集数据后,进行数据采集(读取)。
3.MES采集数据完成后,复位PLC内的“可采集”信号。
流程很简单,设置有握手信息和超时监控。
三、解决思路
由于两边各执己见,我们只好找个中间人做个公正的检测,我们在MES电脑上面安装了PLC-Recorder数据采集软件,进行PLC数据采集。
为什么这样做?由于MES特性,没办法实时记录完整数据,另外,MES采集数据最快也只能做到100ms。所以,就祭出了专业数据采集软件,该软件环境适应能力强,几乎可以在各种windows版本下运行。并且比较小,几乎对MES不会造成任何影响。
四、软件配置与分析
01 PLC-Reocrder软件配置
在PLC-Recorder里启用触发记录功能,用“可采集”信号进行采集的启动和停止控制。并启动循环录波功能,实现无人监控下的逐个产品记录。
02 启动采集
03 PLC异常数据记录与处理方式
PLC置位“可采集”信号后,开始计时,如果30S内,MES没有复位“可采集”信号,PLC在30s计时到后复位“可采集”信号,触发报警计数。
这样看下来也符合一个MES标准采集流程,由于这套MES程序已经在多个项目项目使用过了,并且没有问题,于是我们还是怀疑PLC程序问题。
04 PLC触发数据量与PLC-Recorder采集数据量分析
经过20小时,记录了450个产品的生产过程。PLC触发了450次,其中报警了30次(MES丢失了30个产品的数据)。PLC-Recorder也采集到450个数据文件。PLC触发采集次数与PLC-Recorder软件记录的数据文件一致,初步排除PLC程序问题。
以下是HMI软件记录的数据(见左下角):
这是PLC-Recorder软件记录的文件个数:
丢失这么多数据,问题很严重,客户很生气!
五、问题解决
通过PLC触发采集数据量对比,我们没有发现PLC程序问题,于是我们怀疑是PLC参数设置问题,我们发现OPC UA服务器参数Subscriptions里面最短采样间隔时间与其他项目不一致。
于是,将最短采样间隔从1000ms修改成100ms
修改PLC OPC UA 参数后,MES采集数据一天,未再发现漏采集的情况:
上图MES错误计数为0,未发生数据漏采集的现象。
六、小结
到现在我们还是没有想通背后的原因,毕竟软件设置的超时有30s呢,这个1s的周期为什么会有影响?但问题通过设置最小采集时间解决了。
有时候通讯故障就是这么麻烦,需要握手两边的人员共同排查解决,如果碰到扯皮,没有专业的工具从中间一刀切两半式的确定问题的故障方向,想要解决可能要花费很多倍的时间。
最后我们也来看下西门子对这个参数解释,做一个不完美的结尾:
sunwheel
2024年8月