博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
工控随笔_09_西门子_S7-200 Smart与V20 USS通信USS_RPM_R利用轮询的方式通讯异常
阅读量:6928 次
发布时间:2019-06-27

本文共 1404 字,大约阅读时间需要 4 分钟。

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

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

  

    图 USS_RPM_R读取信息

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

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

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

一轮的查询。

 

一、问题

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

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

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

 

二、分析

  同事搞了很久,没有找出原因,还和其他人一起把V20的参数恢复出厂设置了,但是还是不

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

  我一过去看就问是不是可以通过PLC控制V20的起停,说是没问题,我也测试过没有问题。

因此判断通讯没有中断,应该是PLC程序的问题,因为开始是可以的,且V20参数没有修改过。

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

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

 

 

 

 

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

导致USS通讯读取中断就不能自动恢复。

 

三、解决方法

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

不是最优方案。

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

3、方案三,就是检测所有的通讯返回状态, 当所有的状态在1s(或者其他任意设定时间)内通讯状态失败

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

 

四、小结

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

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

 

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

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

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

3、如果您觉得文章对您有帮助可转至页面上半部分打赏,或移步: 

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

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

 

转载于:https://www.cnblogs.com/volcanol/p/9983194.html

你可能感兴趣的文章
ubuntu 编译android 源码笔记
查看>>
ExtJS4.2学习(10)分组表格控件--GroupingGrid(转)
查看>>
【iCore3 双核心板】例程六:IWDG看门狗实验——复位ARM
查看>>
使用AppCompat_v7 21.0.0d的几个兼容问题
查看>>
MODBUS RTU协议中浮点数是如何存储,读到浮点数寄存器的数值如何转换成所需的浮点数...
查看>>
微信公众号通过链接实现关注(盗用广告主流量主)
查看>>
JS实现类似QQ好友头像hover时显示资料卡的效果
查看>>
离屏渲染优化
查看>>
php 中file_get_contents超时问题的解决方法
查看>>
Oracle 11g RAC oc4j/gsd Offline
查看>>
Ajax下载文件(页面无刷新)
查看>>
[译]Node.js - Event Loop
查看>>
Creating, Stopping, Re-Starting and Deleting a Timer in Oracle Forms
查看>>
laravel 使用 session
查看>>
数据库实例: STOREBOOK > 用户 > 编辑 用户: MGMT_VIEW
查看>>
AjaxPro因为汉字文件夹引发的IE兼容性问题
查看>>
GTK经常使用控件之行编辑( GtkEntry )
查看>>
Picking up Jewels
查看>>
Tween动画TranslateAnimation细节介绍
查看>>
PHP socket 服务器框架集
查看>>