工控随笔_09_西门子_S7-200 Smart与V20 USS通讯USS_RPM_R利用轮询的方式通信异常

  前两天处理过一个故障,是S7-200 Smart与V20的USS通信,设备厂家在程序里面利html

用USS_RPM _R程序循环轮询5个V20设备读取频率和电流值等信息。测试

  

    图 USS_RPM_R读取信息spa

  上图是第一个站点的读取,其采用的控制方式是利用状态位SM0.0 置位M13.0 = 1, 而后htm

经过上面的程序段进行读取参数,而后再利用M13.1这个标志位,再作为下一个站点的XMT和blog

EN信号,同时复位M13.0 = 0; 依次类推一直轮询完5个站点后,再从新设置M13.0 = 1 开始新get

一轮的查询。软件

 

1、问题循环

  那天个人同事要修改程序里面一个模拟量的量程,而后修改完后直接下载程序,在下载完毕后下载

从新运行程序,PLC有Stop状态切换至RUN状态,这个时候出现了一个问题,那就是USS_RPM_R程序

这个程序块卡主了,整个轮询再也不执行。

 

2、分析

  同事搞了好久,没有找出缘由,还和其余人一块儿把V20的参数恢复出厂设置了,可是仍是不

行, 后来就给我打电话,让我过去看看。

  我一过去看就问是否是能够经过PLC控制V20的起停,说是没问题,我也测试过没有问题。

所以判断通信没有中断,应该是PLC程序的问题,由于开始是能够的,且V20参数没有修改过。

后来我仔细分析了一下程序,发现了一个问题,就是厂家的程序利用SM0.0 一直在轮询,且轮

询启动后不会再利用SM0.0这个信号来从新置位M13.0这个信号。其程序以下所示:

 

 

 

 

  上面三张图是启动的程序,这样的作法存在一个问题,就是中途若是出现异常,比方说下载程序

致使USS通信读取中断就不能自动恢复。

 

3、解决方法

一、将PLC下电,而后从新上电,这样SM0.0 就会产生一个上升沿激活上面的轮询过程。这个解决方案

不是最优方案。

二、不要利用SM0.0作为启动脉冲,而改成SM0.1首次扫描状态位。

三、方案三,就是检测全部的通信返回状态, 当全部的状态在1s(或者其余任意设定时间)内通信状态失败

后,就自动激活通信过程。

 

4、小结

  S7-200 系列的PLC要注意断电重启和利用Smart软件将PLC从Stop切换到RUN状态是有区别的。比方

说SM0.0这个状态位,还有一些数据保持功能。

 

--------------------------------------------------------------分割线---------------------------------------------------------------

一、文章均为我的原创,欢迎转载,转载请保留出处:https://www.cnblogs.com/volcanol/

二、获取工控PLC、变频器、HMI、计算机、Windows、Linux、嵌入式资料点击:获取资料

三、若是您以为文章对您有帮助可转至页面上半部分打赏,或移步:打赏 

四、或者在页面右下角点推荐哟!!!

--------------------------------------------------------------分割线--------------------------------------------------------------

相关文章
相关标签/搜索