关于西门子200指针的使用

LD     SM0.1
MOVW   300, VW0
MOVW   0, VW2
MOVW   0, VW12  //上电以上初始化赋值


LD     SM0.0
MOVD   &VB0, VD20   //将VB0开始的初始的地址(vw0)放到VD20
FOR    VW14, 1, 2     //循环2次
+I     *VD20, VW12      //将VD20指向的地址内的数据(vw0)与VW12相加,结果放到VW12
+D     2, VD20         //递增一个字节   


NEXT 
     输出为300吗????????


本程序是我看网上高手改的  不知道对不对    因暂时无PLC测试 还请高手先详解下   感觉西门子的指针和C指针有区别     知道的按我的格式解释下呀

问题补充:
MOVD   &VB0, VD20  //  这里用&VW0有什么区别

+D     2, VD20         //这里地址是VB2的    还是vw2的 (为什么)

最佳答案

LD     SM0.1
MOVW   300, VW0 
MOVW   0, VW2
MOVW   0, VW12  //上电以上初始化赋值

LD     SM0.0
MOVD   &VB0, VD20   //间接寻址将VB0开始的初始的地址(16#08000000)放到VD20,.   VD20的值是134217728.
FOR    VW14, 1, 2     //循环2次。
+I     *VD20, VW12      //将VD20指向的地址内的数据(vw0)与VW12相加,结果放到VW12
+D     2, VD20         //循环一次&VB0+2,结果放到VD20.

NEXT 
     输出为300吗????????不是,下面是我联机监控的数据。
VD20是134217732,VW12是65535,来回跳动。如果修改FOR    VW14, 1, 3 后,VD20是134217734.如果修改FOR    VW14, 1, 5 后,VD20是134217738.

<S7-200 可编程控制器系统手册>下载:
http://www2.ad.siemens.com.cn/download/Upload/AS/manual/1017[2].pdf

补充回答:MOVD   &VB0, VD20  //  这里用&VW0有什么区别,&VW0的间接寻址是VB0了,VB0的值是1。和&VB0区别很大,&VB0的值是16#08000000。


+D     2, VD20         //这里地址是VB2的    还是vw2的 (为什么)都不是,是间接寻址将VB0开始的初始的地址(16#08000000)放到VD20也就是这个MOVD   &VB0, VD20 指令执行后的数据,VD20是134217728.执行+D     2, VD20后,结果VD20是134217732。

手册的解释和这个有很大出入。

提问者对于答案的评价:
理解谢谢大家

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月31日
下一篇 2020年10月31日

相关推荐

  • 自由口通讯程序求解

    本人在学习别人写的自由口通讯程序时,再子程序中看到有循环的功能.本人不理解为啥要出现FOR  (NEXT)这一段指令呢。他们之间的程序不是一直循环执行,执行到设…

    2017年11月27日
  • 多个数据相加

    怎么实现多个VW区里面数据相加 问题补充:之前我也是一个一个相加的 可是程序好大  弄的我内存不够 现在我想减少程序  …

    SIMATIC S7-200 2020年10月31日
  • S7-200中,掉电保持的数据可以一键清零吗?可以的话应该怎么写

    S7-200中,掉电保持的数据可以一键清零吗?可以的话应该怎么写 最佳答案 你写入全部0,是不是就叫做清零? 提问者对于答案的评价:任意方法写入0即可

    SIMATIC S7-200 2021年7月5日
  • s7200PID串级调节回路

    怎样实现S7200PID串级调节 应该怎样进行参数整定 最佳答案 串级控制系统—–两只调节器串联起来工作,其中一个调节器的输出作为另一个调节器的给定值的系统;&nb…

    SIMATIC S7-200 2021年7月4日
  • 200SMATER与自制的PC板通讯问题

    近期,公司有一个项目,由嵌入式开发组做一个PC板,用QT做操作界面,要与200SMATER做以太网通讯。我在网上查了几次,没有可参考资料,我也没有相关经验。我想问的就是:1、自制的…

    SIMATIC S7-200 2021年7月5日
  • 未为库分配V储存区

    写modbus指令时下载显示未为库分配V储存区,怎么办 图片说明:       最佳答案 按图示方式,给库存储区分配V存储区地址: 图片说明…

    2021年7月5日
  • JMP指令是什么跳转,跳转的区间有什么标示?

    此处的跳转产生,跳转去LBL后面的程序吗?不执行LBL到JMP这一段的程序? 图片说明:       最佳答案 1、你的理解是对的。是跳转到…

    2017年8月18日
  • for next指令怎么应用?请实例说明一下

    看了半天 书上和帮助里的说明,还是没有理解透for和next的应用原理。说好的循环结束后才执行下面的程序,结果我在下面接next下面接一个常闭和q0.1,结果一商店q0.…

    SIMATIC S7-200 2017年11月1日
  • 子程序的用法

    子程序应用有规定吗,子程序之间的数据及开关量可以随意调用吗,我将模拟量的读取在子程序里完成,然后在另外一个子程序调用比较这样可以吗,那位大师有应用子程序的程序发个给我学习一下,谢谢…

    SIMATIC S7-200 2020年10月31日
  • em253子程序的使用

    我需要实现的功能:伺服电机(自带增量编码器)控制机械手从A点到B点再到再到C点再回到A原点。其中A点到B点距离已知L1,B点到C点距离已知L2。我的思路是:设A点为参考点,使用相对…

    2017年7月25日