回复:关于取值和取指针的问题

艾星落尘

  • 帖子

    996
  • 精华

    1
  • 被关注

    179

论坛等级:至圣

注册时间:2010-02-26

白金 白金 如何晋级?

发布于 2017-05-31 12:59:43

1楼

首先,我觉得程序有DB块数据相加的程序,有些错误,你的疑问是为什么取是的Word,而不是DWORD,这个问题要看你定义的DB块的里的数据

      L     P##start_adress    //应该是一个pointer指针,包含了DB块的信息和地址数据

      LAR1   

      L     0

      L     W [AR1,P#0.0]    //这个是DB块的号的数据,

      ==I   

      JC    _001     //进行比较,如果为0的话,就跳转到_001,我觉得干脆调到最后不执行算了

      T     #db_number

      OPN   DB [#db_number]

      L     D [AR1,P#0.0]

      LAR1                    //注意这里,再次使用了LAR1,这个数据是指针数据

      L     0

      T     #result            //一个双字的类型,初始化

      L     #number

back: T     #cycle_nmber

      L     W [AR1,P#0.0]      //这个时候取得的数,才是DB块的数据

      ITD   

      L     #result

      +D                       //进行加法运算

      T     #result              

      +AR1  P#2.0               //地址寄存器自加后才能实现数据的累加

      L     #cycle_nmber

      LOOP  back

      L     #result

      T     MD100                //最后得到的DB块数据的累加

_001: Nop 0

可以按照这个程序的功能,自己编写一个程序仿真下,就能够理解了。

一个人在战斗
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54658条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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