由于点数限制,现需要上位拆分双字的某一位,脚本如下:VBS
HMIRuntime.Tags("tag1").Write HMIRuntime.Tags("tag2").Read And &H1
其中tag1为内部二进制变量,tag2为PLC给出的一个双字变量,我这句是取tag2的第一位的语句。
HMIRuntime.Tags("tag3").Write HMIRuntime.Tags("tag2").Read And &H80000000
这句是取tag2第32位的语句,我放在全局脚本里面,扫描周期设的2秒,发现有的读数正常,有的读数不正常,只要更改不正常读数的tag1位置的变量,就变正常,但是过一段时间又不正常了,是不是我的脚本有问题?请专家们帮忙看看
最佳答案
试试用c脚本,用SetTagDWordWait
提问者对于答案的评价:
-----------------------------------------------
找到问题所在了,在VBS环境下,双字的最后一位可能默认为符号位,通过实践,当这位为1时,其他位发生变化,脚本不动作,当这位为0时,其他位发生变化,脚本继续动作,所以不要用最后一位就可以了,恢复正常。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc274408.html