上位机与西门子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月