签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
同一个地址VD164,程序中两个地方的数值不一致,VD164是触摸屏传过来的
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1762441&b_id=64&s_id=0&num=14
数据格式导致的?或以二进制的形式看看每个位是否有实质性的差异?
数据格式查看一下
是不是在程序的第一行与第二行之间,触摸屏的VD164数值已经改变了,并且很多触摸屏有写优先功能,后台运行的中断程序在这两行之间改变了数值。
每个周期都准时在这个时刻写?你这个假设不合理。
我确实也觉得奇怪。想不到任何合理的假设。两个网络之间还能有什么原因修改地址数值?而且是恒定的。
楼主,你这两个数值都是始终固定不变的吗?
我确实也觉得奇怪。想不到任何合理的假设。
引用3楼详细内容:
不可能每个周期都准时在这个时刻写。
即使触摸屏设置了定时写,但由于通讯所消耗的时间不会总是=扫描周期,通讯时间数值还不是绝对固定。扫描周期的长短也不是固定,所以通讯中断也不是固定发生在第一第二行之间。即使通讯中断随机发生在第一第二行之间造成数值不一样,但下一个扫描周期数值肯定会被刷新成为最后的数值。
但实实在在截图显示VD164 的数值不一致,那只能解释为下面a+b或者c碰巧发生在同一个扫描周期内。
碰巧的事情是会有的,无巧不成书。
a. 触摸屏的VD164改变,通讯中断随机发生在第一第二行之间
b. 截屏完成也与a碰巧处于同一个扫描周期内。
c. 楼主碰巧在这个扫描周期内做了停止运行操作,plc数值不再刷新。
感觉是数据格式不一样。
引用4楼详细内容:
设置完这个值是一直不变的,还发现VD164下面,VD168两个地方也不一致
VD164,VD168有数据重叠。你交叉引用一下地址就知道了。
再次下载过程序没有?
楼上,就算重叠了。但是在两个不一致之间没有任何程序给动过,是不会不一致的。监视是执行时的值,上一个执行时是什么值,下一个就是什么值。两个比较触点之间没有什么改写的指令了 。如果两个比较触点中间有一些再赋值的程序,那么肯定可以造成这个影响。
现在有吗?
没有。
初步看了下,一个值按浮点解释,另一个值按整数解释。
楼主把程序发一下吧,大家帮你验证验证
版主可以看看 7L 的截图
T52前为true,说明 VD128 > VD168
T53前为false,说明 VD132 < VD168
但根据监控, VD128 = 2.9828,VD132 = 2.9975,得出 VD132 > VD128,
都是浮点比较,不管VD168显示格式是什么,值是多少,都上面结论矛盾了,嗯,前提是期间值没变的话;
-------------------
首先,VD168是HMI下置的,那HMI上设置的值是不是监控上显示的浮点数 -1.3422,还是别的;
通过监控表查看 VD168 对应的原始的4个16进制数,通过工具转换成浮点和整型,能不能和监控上的值对应;
如果猜测是通信不停写入导致的,那去掉 HMI 等带来干扰的通信;
如果猜测是程序问题,那把中断或者是子程序,通过 rtn / jmp / 使能false,或者干脆直接删除代码,只跑这一段,看看效果;
通过编程软件手动修改VD168的值,看看监控的值和手动下置的值能不能匹配上;
判断前,通过blkmov,把 VD168 赋值给某组寄存器,判断后,再赋值给另一组寄存器,两组寄存器查看16进制数,进行比对;
等等。。。
多找方法试试,先找到问题;
-----------
也许初始化下PLC,升级下固件,或者是换个PLC,就正常了呢
楼主用过什么方法检查过些什么?
找了个200smart,将程序下装到里面,在状态图表里直接给VD164赋值,程序段中的使用VD164地方的值一致,再测试占用VD164中的字节,使用VD162/VD167测试,最后VD164程序中的值是一致的。
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录