说说西门子200的SM0.0特殊标志位

已锁定

WWCWWC

西门子1847工业学习平台

  • 帖子

    9103
  • 精华

    157
  • 被关注

    1471

论坛等级:至圣

注册时间:2008-07-26

钻石 钻石 如何晋级?

说说西门子200的SM0.0特殊标志位

6507

14

2016-09-23 16:28:07

                                      说说西门子200的SM0.0特殊标志位

    一直以来总想说说西门子200的特殊标志位SM0.0那会事,这么说这个?对。没有错,今天就说它(SM0.0)。这有什么可以说?不就是在STEP7 MicroWIN软件中系统定义的SMB0 系统状态位,Always_On    SM0.0     该位总是打开,西门子编程人都知道的。

    该标志位常用在当指令前面没有可用的实际控制条件时,提供了cpu和用户程序之间传递信息的方法。如、数据赋值程序:


    如果不加这个特殊标志位,程序编译时会报错(输出指令前面必须有输入触点),在此相当于无条件调用该指令的含义是一致的,并且是每一个周期VB0都被刷新一次。

每一个周期刷新功能验证程序如下:


   上诉程序会随着SM0.0每一个周期的刷新自动加1,当VB0数据到达字节数最大值255后的下一个扫描周期时,VB0字节数据将被溢出数据值为256,会循环实现加1。

   至此,该特殊标志位这么简单的问题还需要过多的解释?请先不要拍砖,拍砖会伤头。

   曾经我刚刚开始学习编程时,与网友有过一次关于循环体指令的理解讨论。当时理解:这个特殊标志位SM0.0既然是严格按每一个周期刷新的工作机制,则很自然地去理解了循环体FOR/NEXT指令的含义。

   做一个简单的循环体(FOR/NEXT)指令,看看实际效果,程序如下:


   上诉指令当输入I0.0为ON且紧接着连接一个上升沿(P)接通一个周期后,VB0的数值应该是1?答案当然不是1,而是10。那这里的一个循环体仅仅有效了一个周期,为什么循环体内的加1程序会循环10次,怎么又不是按程序的扫描刷新机制工作了呢?糊涂了,彻底的糊涂了。其实答案前面已经说到了,这个特殊标志位另一个作用就是提供了cpu和用户程序之间传递信息的方法,说明详见200系统手册5-4,特殊存储器(SM)标志位内容,仅此说明,一点肤浅的认识,请勿拍砖。我对指令就是这样一个一个慢慢理解,逐渐累积起来的。

循环体(FOR/NEXT)指令注解:

FOR:

INDX:每次循环体次数的累积数存储地址

INIT:起始值

FINAL:结束值

NEXT:循环体返回标志。

当调用循环体指令时,循环体会按起始数(INIT指定)开始自动往下一个程序网络段运行,一直至遇到NEXT指令时返回,返回到FOR标记的网络段自动进行第二次循环……,循环次数到FINAL指定的数值为止,自动跳出循环体。一些通讯程序中如CRC校验程序常常被使用,非常方便。

 

 

 

 

                                                                   2016年9月23日星期五


说说西门子200的SM0.0特殊标志位 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33257条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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