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