您现在所在的是:

PLC论坛

回帖:0个,阅读:3095 [上一页] [1] [下一页]
6047
liaosun
文章数:1398
年度积分:50
历史总积分:6047
注册时间:2003/5/4
发站内信
2015论坛贡献奖
2014论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011博客贡献奖
2010博客杰出贡献奖
发表于:2010/12/22 8:59:38
#0楼
操作数是指令操作或运算的对象,寻址方式是指令取得操作数的方式,操作数可以直接给出或者间接给出。
      间接寻址是PLC学习中的一个难点,S7-300/400的间接寻址最为复杂,学习的难度更大。
      在指令中直接给出操作数(常数),称为立即寻址。在指令中给出操作数的地址(例如M5.2),称为直接寻址。
      间接寻址在指令中给出的不是操作数或操作数的地址,而是给出一个被称为地址指针的存储单元的地址,地址指针里存放的是真正的操作数的地址。
      地址指针就像收音机调台的指针,改变指针的位置,指针指向不同电台。改变地址指针中的地址值,地址指针“指向”不同的地址。
      再打一个比喻,邮递员的摩托车就好像一个地址指针。邮递员根据信封上的地址,将摩托车开到用户A的家门口,这个时候指针(摩托车)指向了这个地址,把信送给用户A,就好像将数据写入这个地址。送下一封信的时候,相当于修改了地址指针中的值,摩托车开到下一个用户的门口,地址指针指向了另外一个地址。
      我们入住酒店的时候,在前台办完入住手续,酒店就会给我们一个房卡,房卡上面有房号,旅客根据房号使用宾馆的房间,每天每间房间可能住不同的旅客。在这里房卡就是指针,房间就是存储单元,旅客就是存储单元中存放的数据。
      间接寻址用来在程序运行期间,通过改变指针中地址的值动态地修改指令中的地址。间接寻址常用于循环程序和查表程序。例如循环程序用来累加一片连续的存储区中的数值,每次循环累加一个数值。累加后修改地址指针的值,使它指向下一个存储单元,为下一次循环的累加运算做好准备。没有间接寻址,就不能编写循环程序。
      间接寻址分为存储器间接寻址和寄存器间接寻址。它们分别用存储单元和地址寄存器来作地址指针。
      S7-200的地址指针为双字,只能用V、L区的存储单元或累加器作指针。首先用双字传送指令MOVD将存储器地址送到指针中,例如指令“MOVD &VB200, VD300”将VB200的地址送到VD300。&VB200表示VB200的地址,而不是VB200中的值。
      指令“MOVW  *VD300, VW20”表示将指针VD300中的地址(VB200)中的值送到VW20。*VD300是VD300所指的地址中的数据。
      S7-200的间接寻址不能用于位(bit)地址、HC或L存储区的寻址。地址指针中地址值以字节为单位。

     



----------------------------------------------
此篇文章从博客转发
原文地址: Http://blog.gkong.com/more.asp?id=131249&Name=liaochangchu



[此贴子已经被jint于2010/12/22 15:59:03编辑过]
我是廖常初,是一个高校的老师,曾在企业从事机械、电气技术工作,长期从事工业控制和PLC应用的教学、科研和工程应用工作。博客中的日志除注明外均为原创。愿意在此与大家探讨工控的问题!
廖常初工控博客地址:http://blog.gkong.com/blog.asp?name=liaochangchu
我曾写过几本小书: 《PLC编程及应用》第3版(S7-200)、《S7-300/400 PLC应用技术》第3版、《FX系列PLC编程及应用》第2版、《S7-200 PLC编程及应用》、《PLC基础及应用》第2版(FX系列大专教材)、《西门子人机界面(触摸屏)组态与应用技术》、《西门子工业通信网络组态编程与故障诊断》、《S7-1200 PLC编程及应用》第2版、《跟我动手学S7-300/400 PLC》、《跟我动手学FX系列PLC》
机械工业出版社廖常初图书专题:http://www.gkong.com/zt/liaochangchu/

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

31.2002