回复:关于BR与RLO~

伊默

西门子1847工业学习平台

  • 帖子

    4267
  • 精华

    118
  • 被关注

    220

论坛等级:至圣

注册时间:2003-10-24

白金 白金 如何晋级?

发布于 2006-06-19 19:35:05

0楼

BR仅仅是一个系统位,没啥特殊的。当你用梯型图编程的时候,系统会自动管理BR位。 而当你用STL编程的时候,并且如果你想知道在一段即有“字”操作,又有“位”操作的程序段中,“字”操作是否正常? 这时你可以借助管理BR位检测出来! 因为S7-200和S7-300里对于“字”的操作是不同的,前者要依赖于RLO状态,而后者不论RLO状态如何,L和T都会执行,比如:
LD I1.1
MOVW 2,VW0
以上为200系统,那么只有当I1.1为1时,下面的MOVE指令才会执行!

而对于300的系统
A I1.1
L 2
T DB1.DBW0 不论I1.1的状态如何,系统都会把2赋值给DB1.DBW0. 若想达到和S7-200同样的效果,则需要用跳转指令,比如指令JNB(当RLO为0时进行跳转,且不管RLO的状态如何,都会把RLO赋值给BR位),那么你可能会想如下操作:
A I1.1
JNB _001
L 2
T DB1.DBW0
_001:NOP 0
以上程序也是仅当I1.1为1时,系统会把2赋值给DB1.DBW0 。 可是光有这些还是不够的。 因为系统不是万能的,它也有出错的时候! 意思是即使你I1.1=1了,系统执行了那条赋值指令了,可是系统在执行赋值指令的时候出错了呢? 这是有可能的! 若你想检测那条赋值指令(即,关于“字”的操作)是否正确执行了?这时你就需要管理BR位了! 如下
A I1.1
JNB _001
L 2
T DB1.DBW0
SET //若以上的赋值操作正确执行了,系统才会往下执行(PLC是从上往下扫描的,这时强制RLO=1
SAVE //把RLO赋值给BR,即BR=1
CLR //清除掉RLO,即RLO=0 (因为上面的SET强制为1,这时要清零)
_001:NOP 0
A BR //仅当I1.1为1时,赋值指令才会执行,同是仅当赋值指令正确执行了,BR位才会为1 !!!
= Q0.0

再反过来如果你熟悉S7-200的话,知道它的字操作后面有个ENO吗? 就是这个能流表达了和BR同样的意义。

I can do it
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54652条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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