我们设备上的WinCC中设备诊断画面中有个面板实例,它的背景颜色变化由一个vbs脚本控制,但我看脚本时却发现脚本内容和实际运行效果对不上,脚本和图形请各位老师看我上传的图片,我的问题是:
问题1:我理解 (valByte And 1) = 1 就是指字节Byte_44的各个位都为1,我的理解对吗?
问题2:如果我的理解是对的,那么这个脚本的意思就是,当面板实例的属性Byte_1所对应的字节变量Byte_41 中的各个位都等于1时,这个面板实例的背景颜色变为绿色。但实际运行的效果是,只有当4个字节变量Byte_41、Byte_42、Byte_43和Byte_44的各个位全部为1时,面板实例的背景颜色才变为绿色。我就晕了,怎么在脚本里看不到在哪里检查Byte_42、Byte_43和Byte_44里各个位的值呢?是我哪里理解错了吗?
图片说明:
最佳答案
1、你的理解错了。
(valByte And 1) = 1,是判断valByte的最低位是不是1,如果是1,则(valByte And 1) =1;如果最低位是0,则(valByte And 1) =0。
比如valByte=5(二进制:0101),(valByte And 1)=1;
valByte=6(二进制:0110),(valByte And 1)=0。
2、你重新整理思路吧。
提问者对于答案的评价:
太感谢了!
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc364279.html