回复:数组赋值列表请教

鲁小花

  • 帖子

    186
  • 精华

    1
  • 被关注

    32

论坛等级:侠士

注册时间:2015-08-02

普通 普通 如何晋级?

发布于 2016-08-26 08:41:40

5楼

展开查看
以下是引用RENHQ在2016-08-25 18:54:28的发言 >

楼上的程序虽然有注释,表示一点都没看懂....等有空学习一下

用间接寻址的话,比如5个数据,从MB20中采集数据,送到MB21-25

    L     24

    L     8

    *I    

    LAR1  

    L     5

NEXT: T     MW     0

    L     MB [AR1,P#0.0]

    T     MB [AR1,P#1.0]

    L     -8

    +AR1  

    L     MW     0

    LOOP  NEXT

每执行一次,从M20读一个数据,送入MB21,并往下堆

感谢超哥指点,我学习了一下你的程序,不知道我理解是否正确。有几点不太理解还要请教一下。




      LAR1  P##anySendOfst  //FB temp区,数据类型Any

      L     B#16#10                     //for s7

      T     B [AR1,P#0.0]

      L     B#16#5                      //int  指定数据类型

      T     B [AR1,P#1.0]

      L     B#16#84                     //memoey area = db 指定读写的区域

      T     B [AR1,P#6.0]

      L     B#16#0                      //always 0

      T     B [AR1,P#7.0]


//////////以上都是#anySendOfst是any的Temp进行赋值操作

/////////这边是已经就直接保存在#anySendOfst里了吗?




      L     64                          //rep. factor  指定读取的个数

      T     W [AR1,P#2.0]

      L     #DBNO                       //db number 指定读取的DB号

      T     W [AR1,P#4.0]

      L     #OFFSET                     //address  info 指定读取的DB偏移地址

      SLW   3

      T     W [AR1,P#8.0]


//////////以上是根据接口输入来指定DB号,以及开始的地址,DB数据的寻址



      CALL  "BLKMOV"

       SRCBLK :=#anySendOfst //FB temp区,数据类型Any   

             //这边就是经过赋值指向DB的any#anySendOfs

       RET_VAL:=#SFC20RET_S

       DSTBLK :=#arySendOffset  //FB temp区,STAT区都可以数据类型Array

            //这边数据类型为何是Array?  是不是any?  





有错的地方还希望超哥帮忙解释下,谢谢啦~


希望多年以后看看自己会发现如今的努力没有白费。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54621条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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