中国·金沙-www.3983.com|App Store下载

料中心 DOWNLOAD
按钮按下时/弹起时置1置0部分情况下不起作用问题及解决方法汇总?
时间:2018-08-16 浏览次数:4267

现场问题:

鼠标按下弹起关联一个IO离散变量,按下置1,弹起置0,经过现场测试,有时置1之后没有置0,或者有时根本无法置1,一直是0。

问题分析:

此问题的产生,很大可能是由于以下4点共同相互作用引起的。

运行系统基准频率:用户可自行设置,组态王数据词典中的变量值(也就是所谓的实时库)多长时间从变量队列中更新一次,更新一次后,变量队列中的数据清空。然后会触发曲线,动画连接和数据库等所有与之相关的作相应的更新。组态王默认的是500ms。在客户的环境中,主要是文本的文本色更新,关联PLC输出寄存器,检测赋值操作是否正常。

组态王数据词典中的变量采集频率,也就是多少时间从设备采集一次数据。这点主要是涉及到画面的变量的更新,多长时间从设备上采集数据,实时的在画面上显示。

按钮按下和弹起的时间间隔,根据客户沟通按钮是点动,最短时间是500ms,也就是至少间隔500ms,变量会下发两次。(也要解决按钮间隔100ms,不会出现一直置1的情况,防止现场出现事故)。


在运行系统设置特殊属性页中勾选“写变量时变化时下发”。当实时库的值和下发的值相同时,不给设备下发。

经过长时间的测试分析,假如需要点动置1的变量为WR308,读写类型,采集频率为500ms。WR308与之关联的输出位变量为Q10000,采集频率为500ms。鼠标按下时,WR308置1,弹起时置0,文本文本色关联Q10000。

按钮按下时,置1,首先判断下发的变量的值是否跟实时库中的值相等,如果相等,当勾选“写变量时变化时下发”,此变量就不下发。其他情况,将下发的指令添加到采集队列,位置为;读包之前。

按钮弹起时,置1。处理过程和按钮按下一致。

问题1:有时置1之后没有置0。

分析及结果:

由于客户现场的使用其他设备,必须得勾选“写变量时变化时下发”。按钮弹起没有置0,应该是检测到下发的变量值跟实时库中变量的值相等,没有下发。为什么会出现相等的情况呢?

这跟变量采集的快慢,以及按钮按下,弹起时的间隔有关。假如按钮按下弹起的间隔为100ms,也就是瞬间完成的单击操作;而此变量的采集频率为500ms,与之关联的输出变量Q10000采集频率为500ms。按钮按下时,更新了实时库里面的值,恰好采集时间节点到了,采集了WR308的设备上的值为0,之后再向设备写值,100ms后弹起,向设备写0,实时库此时的值恰好为0,导致写包没有下发。500m后采集设备的值,值一直显示1。与之关联的输出变量Q10000也一直变红。

解决方案:

将WR308等点动变量从读写变量修改成只写变量,采集频率为0。

问题2:文本框颜色未变化。

分析及结果:

这跟输出变量的采集频率有关系,按钮按下弹起,间隔100ms,设备中的值已经从0变化到1,再从1变化到0,然后再去采集的话,会出现,采集到的值一直是0的情况,从而文本颜色未变化。

解决方案:

将需要观测的变量的采集频率设置低一点。还应该把运行系统基准频率也设置的低一点。


最佳方案:

最佳设置参数分别如下:

运行系统基准频率:100ms。

变量采集的频率:100ms (最高),需要实时监测的变量。

按钮按下弹起间隔至少:100ms以上。

点动变量:修改成只写变量,采集频率为0.

注意点:

点动太快了,如果小于100ms或者出现电脑卡顿什么的特殊情况,还是有可能会出状况(超出组态王的极限)。


-->