回复:在DB块循环采数的问题

cjesson

  • 帖子

    1
  • 精华

    0
  • 被关注

    0

论坛等级:游民

注册时间:2014-03-18

普通 普通 如何晋级?

发布于 2016-01-18 18:08:43

33楼

最近在看老外写的程序,其中学到最基本的编程手法便是指针循环,也发觉要是做大型的系统,指针也是必不可少的,现贴出我写的供你参考。


定义一个FB块,输入变量IN分别有DB类型的i_DB,此处是用来读你的DB块,还有布尔型的i_IO,用来读你的脉冲,另外还需定义静态变量,分别有s_IO、s_FP、s_Copy_FP,这些都是布尔型,s_Shift为Int型,假设你的DB块数据从地址0开始,那么s_Shift的初始值也定义为0,若为A值,则相应地定义为A,以此类推,好了,开始:


      OPN   #i_DB


      A     #i_IO

      =     #s_IO


      A     #s_IO

      FP    #s_Copy_FP

      =     #s_FP


      A     #s_FP

      JCN   AA99


      L     #s_Shift

      SLW   3

      LAR1  

      L     DBD [AR1,P#0.0]

      T     MD100


      L     #s_Shift

      L     4

      +I    

      T     #s_Shift

//the maximum length of DB is assumed to be 400(原则上来说所有的注释都是应该用英文来表达的,鉴于大家英文水平不统一,我用中文再说一遍好了。此处是做一个判断,当偏移位s_Shift超过DB的最大地址位400时(假设的),则重新初始化s_Shift,以此又来重新搜寻一遍DB块)

      L     #s_Shift

      L     400

      >I    

      JCN   AA99


      L     0

      T     #s_Shift


AA99: NOP   0

如果你想做更为大型的系统,而碰巧项目要用stl的话,强烈建议学习西门子的《STEP7指针编程》,这是最为基础也最有用的。

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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