quote:以下是引用n次看你的背影在2012-10-28 20:21:01的发言:
楼主:建议用
NEXT:
。
。
LOOP NEXT
做循环比较规范,不容易错。另外STEP7有16位整数取反(INVI)、32位整数(取反INVD)指令;就9个字节,直接用双字取反赋值可能效率高一点,也简单些。
比如:
L DB13.DBD 22
INVD
T DB13.DBD 2
L DB13.DBD 26
INVD
T DB13.DBD 6
L DB13.DBW 30
INVI
T LW 30
L LB 30
T DB13.DBB 10
首先谢谢背影大哥的热心与帮助,我马上就用NEXT试试
还有一点怪我没说清楚,这些字节是WORD格式,不能用整数取反,因为INVI取反出来的结果是带有符号位的,比如FFFF取反结果应该是0000,但是用INV取出来的结果却是-1,我找了半天没有找到直接取反WORD格式的命令,所以想出来这个笨办法,这些数据是我调用SFC51读出的DP从站状态,然后做到触摸屏里的离散量报警,但是报警要求是1才能触发故障报警,所以要求正常状态是0,就是bit用NOT指令才能得到的结果,一句句的写要写80行··················看见就心烦了
再次感谢您!