原创 组态软件小技巧,减少点数的方法之一(组态王)

2008-1-16 21:33 6397 7 7 分类: 工业电子
    刚才写了好多好多,可是突然间firefox死掉了,气死人,现在一下也想不起来太多了。
    思路:用一个整型或者长整型或字节分成位,每一个位来代表一个点,这样只占一个组态的一个点。如PLC的输出,用一个整型代表16位,就是16个输出点。
    方法:用组态自带的内部函数,Bit(变量,位),将整型拆成离散型。
    测试:
      1、定义一个内部变量,整型。如variable;
      2、画一个矩形,用填充属性;
      3、在填充属性的条件表达式中输入Bit(变量,位),如Bit(variable,1);
      4、在下面的填充颜色中,修改0为“红色”,1为“绿色”;
      5、再写一个字符,动画连接中选择“模拟输入”和“模拟输出”,变量为         variable;
      6、然后在运行软件,在变量中输入1,绿色亮,再改为0,红色亮。

    测试完成。
    如果有兴趣可以进行更有趣的测试,把刚才的矩形复制8个,依次改成Bit(variable,2); Bit(variable,3); Bit(variable,4); Bit(variable,5);至8。
    然后输入1,2,4,8,16,32,64,128测试是否正常。

    输出测试完成,输入测试更有趣。
    把刚才画的8个矩形复制,当作按钮输入。刚才的属性可以不改变,然后再新增加动画连接“按下时”,在按下时中填加语句。
    第一个按钮添加如下:
    if(variable&1)variable=variable&254;
    else          variable=varialbe|1;
    第二个按钮添加如下:
    if(variable&2)variable=variable&253;

    else          variable=varialbe|2;
    等,依次增加八个,之后再测试。发现输入输出功能皆己实现。
  
   这个组态软件唯一的缺陷是,不能写十六进制,如0x10,写十进制有时候不太会写,1、2、4、还好算,后来就不好算了。
    因为这个工作是在办公室完成的,所以在家只能凭记忆写了,不过绝对可靠,如有疑问,请写出。或者有更好的方法请出。

    今天心得:无意从函数手册中发现一个函数Bitset,这个功能可以省略掉我前面一句复杂的语句,
    if(variable&1)variable=variable&254;
    else          variable=varialbe|1;
    用如下替换:
    if(variable&1)Bitset(variable,1,0);

    else          Bitset(variable,1,1);

    这样当数字较大时避免了用十进制难以计算和表达!



PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
7
关闭 站长推荐上一条 /3 下一条