quote:以下是引用纯属虚构在2014-03-13 19:24:41的发言:quote:以下是引用Zane在2014-03-13 18:50:01的发言:quote:以下是引用青春常在在2014-03-13 13:20:50的发言:quote:以下是引用纯属虚构在2014-03-12 16:24:54的发言:额我也再分享个吧----快速查找DB块中被激活的位地址,可用于查找报警,警告,提示等。
报警大家平时都需要用,报警产生了,可能会打开DB块或程序块去查找具体的位,我觉得这浪费了些时间,所以使用这个块可以直接显示其在DB块中的位置。
大致思路是建立一个专用DB块,用于存储离散量信息。程序从DBX0.0开始查询直至DB块最后一个位。没有激活的位两个输出皆为0,查找到激活的位o_BITACTIVE 为1;o_ACTIVENUMBER 显示该位在DB块中的位置。
附测试图片
我建立的离散量DB

现在第662位激活那么o_ACTIVENUMBER 显示662。很直接,很形象

点击此处查看附件
这个帖子对于经常维护的工程师很有用,感谢各位大侠高手慷慨分享,这属于秘籍类的,如果常用的也可以分享
同时有几个位被激活是如何处理的?
可以同时多个位被激活,但是显示的是低位被激活的地址。处理过程是以16个bit 为一组,和0比较。循环扫描DB块内的各个位地址。等于0 继续扫描下一组,不等于0,就的去查询是第几个位被激活的
那确切地说,就是越靠前的组越先被扫到,同一组里低位先被扫到,是有优先级的。