请教一下,step7里的单字指针和双字指针?

已锁定

Jackie114

  • 帖子

    230
  • 精华

    0
  • 被关注

    7

论坛等级:侠士

注册时间:2011-09-23

普通 普通 如何晋级?

请教一下,step7里的单字指针和双字指针?

3038

3

2014-04-06 05:24:33

大家好,刚看了篇 step7编程之地址概念详解 的文章。作者写的挺详细,但读完后有几个问题,不太明白,所以想请教一下:
1, 原文是:
L P#DB100.DBX26.4 //错误!DBX已经提供了存储区域,不能重复指定。
请问,DBX前面不需要加DB块吗?不加的话,怎么知道它属于哪个DB块?

2, 原文是:
L L#+10 //以32位形式,把10放进ACC1,此时,ACC2中的内容为:16位整数10  
  T MD104 //这个值再存进MD104,这是个32位的位存储区域
  A I[MD104] //对I1.2进行与逻辑操纵! 

现在,我们来分析一下上述例子中的A I[MD104] 为什么最后是对I1.2进行与逻辑操纵。 
  通过L L#+10 ,我们知道存放在MD104中的值应该是: 
  MD104:0000 0000 0000 0000 0000 0000 0000 1010  
  当作为双字指针时,就应该按照3-18bit指定byte,0-2bit指定bit来确定终极指令要操纵的地址,因此: 
  0000 0000 0000 0000 0000 0000 0000 1010 = 1.2


L DW#16#8 // 加载双字16进制数8,当把它用作双字指针时,按照BYTE.BIT结构,  
  结果演变过程就是:8H=1000B=1.0  
  T MD 2 // MD2=8H 
  OPN DB [MW 100] // OPN DB100 
  L DBW [MD 2] // L DB100.DBW1
  T MW[MD2] // T MW1   
  A DBX [MD 2] // A DBX1.0  
  = M [MD 2] // =M1.0

这2段话,我还可以理解,但是作者又举个例子:

【将DB100中的1-11数据字,传送到MW1-11中】
  L L#1 //初始化循环指针。这里循环指针就是我们要修改的寻址指针  
  T MD 102   
  M2: L MD 102  
  T #COUNTER_D
  OPN DB100  
  L DBW [MD 102]  
  T MW [MD 102]
  L #COUNTER_D  
  L L#2 // +2,是由于数据字的偏移基准是字节。   
  +D  
  T MD 102 //自加减循环指针,这是动态修改了寻址指针的关键  
  L L#11 //循环次数=n-1。n=6。这是由于,首次进进循环是无条件的,  
  但已事实上执行了一次操纵。  
  <=D   
  JC M2    
  有关于T MD102 ,L L#11, <=D的具体分析,请按照前面的内容推导。

照我对文章的理解和前面的2个例子,L L#1 中的 L#1 是双字指针,相当于 1H=0001B=0.1, 那么MD102 = 0.1 啊。

麻烦朋友们帮我看看这2个困惑,谢谢。

还有,请问,如何上传附件?
请教一下,step7里的单字指针和双字指针? 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54621条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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