回复:请高手帮看看我这个语句为什么不执行

无——恋

  • 帖子

    12
  • 精华

    0
  • 被关注

    2

论坛等级:游民

注册时间:2009-09-29

普通 普通 如何晋级?

发布于 2012-10-29 09:13:09

2楼

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行··················看见就心烦了
再次感谢您!
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54711条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。