请教一下,单字和双字指针,事例如下:

大家好,麻烦帮看下面的例子:
1, L 80
      T MD10
    。。。
      L 80
      T MW10
   。。。。
2.  L L#80
    T MD10
  。。。
    L L#80
    T MW10

请问,1, 2 里面的 MD10和MW10的值分别是多少? 因为我看了篇文章,里面一会说是 80, 一会说是 10.0 (我知道10.0是怎么算出来的,但不知道为什么这边按80算,那边按10.0算)

谢谢了。

问题补充:
谢谢。不过,什么是“如果MD10用在了寻址的程序中”。是说:
L 80
T MD20
。。。
L MW【MD20】。 这里的 MD 就是用在了寻址的程序里吗?

最佳答案

楼主的问题补充是对的,这种就是32位指针的存储器间接寻址,所以
L 80
T MD20
。。。
L MW【MD20】就是L   MW10
还有楼主的第二部是不对的
L   L#80(双整数)
T   MW10(整数)这样虽然不会报错,但是如果这个双字值大于不带符号0--65535之后就会报错,具体的MW10是多少,是看你的程序下边怎么用,
如果这样用
L 80
T MD20(其实这里的值还是80,只是下一步的程序做了一个转化,转换成了32位指针的存储器间接寻址)
L MW【MD20】就是L   MW10其中MD20的值就是p#10.0
如果这样用
L 80
T MD20(值是80)
L   100
T  MD24(值是100)
L  MD20(值是80)
L  MD24(值是100)
+DI
T  MD28(值是180)
这中就不是寻址,只是计算,所以不会转换成地址。

提问者对于答案的评价:
谢谢。

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc233963.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 下午2:07
下一篇 2018年12月1日 下午2:08

相关推荐