恳请斑竹帮忙解答?

已锁定

滕海石

  • 帖子

    298
  • 精华

    3
  • 被关注

    4

论坛等级:侠客

注册时间:2006-02-27

普通 普通 如何晋级?

恳请斑竹帮忙解答?

411

4

2006-04-10 17:29:29

我在例子程序中看到如下程序:

NetWork2:

A(

L #OB40_MDL_ADDR

T MW 10

SET

SAVE

CLR

A BR

)

JNB _001

L #OB40_POINT_ADDR

T MD 12

_001: NOP 0

把其转化成LAD理解其意思就是两个move块串联,意思就是

L #OB40_MDL_ADDR

T MW 10

如果结果没有错误,在执行:

L #OB40_POINT_ADDR

T MD 12

可是小弟单从语句表来分析却怎么也分析不出来执行以下语句:

L #OB40_POINT_ADDR

T MD 12

从语句表来分析,请问整个程序是怎么执行的啊?

而且我现在对JNB指令也很迷惑,《语句表参考手册》中是这么说的:

{

如果逻辑运算结果为“1”,则不执行跳转。RLO 被置为“1”,程序扫描从下一

语句继续。

RLO 被拷贝到该指令的 BR 中,与 RLO 无关。

}

我理解的意思就是在rlo为0时跳转,将0拷贝br中,如果rlo为1,则不跳转。但是,是不是也把1拷贝到br中呢??这点是一个问题,请指教。

奇怪的是我在一本书中,它是这样说的:当rlo为0,且br为1时跳转。

请问到底哪个说的是正确的?还是我没有理解到这两个说法是一样的。



我在看例子的程序时,经常看见都用到br位,请问斑竹和高手们在编程时也那么用吗?还是就是由LAD转成STL时而成的固定形式,如果不是,那是出于别的特殊的考虑呢?

如果单从语句表理解,感觉特饶圈子,不知道这么用到底有什么特殊的用意。

如上的程序,为什么不这样写:

L #OB40_POINT_ADDR

T MD 12

L #OB40_POINT_ADDR

T MD 12



请斑竹,高手耐心,细心的帮帮忙解答一下,小弟感激不尽。
恳请斑竹帮忙解答? 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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