LabVIEWwilliam hill官网
直播中

xxx

8年用户 570经验值
擅长:电源/新能源 制造/封装
私信 关注
[问答]

labview通过OPC与PLC通讯,第一次读取值错误!


我做了一个简单的调试程序,一个事件结构,内容是读取PLC中M20.0这个变量的值。
这个变量的值一直是置高(即TRUE)的。但是在运行过程中,第一次读取的却是FALSE,第二次及后面的才能读到TRUE。无论点击快慢,无论是否等待,都是这个结果。
2.png

回帖(10)

潘杨

2016-10-11 11:07:30

最佳答案

这个是OPC变量设置的问题,在OPC变量设置中 【网络】,将缓冲区设置勾掉
4 举报
  • 张建东: 请问你说的 OPC变量设置中网络是在哪里?没找到,实在NI OPC Servers 里面吗?
  • 卫先生 回复 张建东: 在lv中  你创建的OPC库里面修改,就是共享局部变量修改
  • 卫先生: 赞!!!!
  • jf_98571103: 我哭了啊,解决了我困扰好久的问题,赞

ssl

2016-10-12 20:07:38
把变量放在事件外面,实时读取,只是在事件时赋值到显示空间就行了
OPC建立的变亮需要实时把变量里的值读出来,不然会在变量里累积,导致读取延迟,我是这么理解的!
举报

xxx

2016-10-13 10:33:55
引用: ssl 发表于 2016-10-12 20:07
把变量放在事件外面,实时读取,只是在事件时赋值到显示空间就行了
OPC建立的变亮需要实时把变量里的值读出来,不然会在变量里累积,导致读取延迟,我是这么理解的!

唔,拿出来第一次读取的还是错误的,不过有解决方案,就是像你说的放在外面,然后给事件结构加超时。这样第一次错误的数据就会进入超时结构从而无效,再点确定的时候就是正确数据了。
这个问题貌似不影响实际使用,不停地扫这个值就行了,实时性也没有那么强的要求。。。不过还是值得研究。。
举报

秦萱

2016-12-7 14:26:09
应该是你PLC中M200这个变量最开始默认状态是FALSE,当程序第一次运行时就是FALSE,你可以将这个变量的默认状态设置成TRUE
举报

更多回帖

发帖
×
20
完善资料,
赚取积分