请问存储器间接寻址能这样表示吗?L MW [MW0, P#2.0] 谢谢!
最佳答案
1、请问存储器间接寻址能这样表示L MW [MW0, P#2.0]吗?
不能这样表示。与地址常数P#2.0进行偏移量运算只有在地址寄存器间接寻址时才可,例如L M [AR1, P#2.0].。地址寄存器间接寻址的一般格式是:
〖地址标识符〗〖寄存器,P#byte.bit〗,比如:DIX[AR1,P#1.5] 或 M[AR1,P#0.0] 。
2、要弄清存储器间接寻址与地址寄存器寻址的基本概念:
a、存储器间接寻址具有两个指针格式:单字和双字。
单字指针是一个16bit的结构,从0-15bit,指示一个从0-65535的数值,这个数值就是被寻址的存储区域的编号。
双字指针是一个32bit的结构,从0-2bit,共三位,按照8进制指示被寻址的位编号,也就是0-7;而从3-18bit,共16位,指示一个从0-65535的数值,这个数值就是被寻址的字节编号。 。例:
A DB[MW100].DBX[MD2] //读入DB10.DBX6.5数据位状态
MW100:为单字指针,其内容为10;MD2双字指针,其内容为6.5。
从上面系列举例我们至少看出来一点:单字指针只应用在地址标识符是非位的情况下,它确定的数值是0-65535。而对于byte.bit这种具体位结构来说,只能用双字指针。
b、地址寄存器寻址:
地址寄存器是专门用于寻址的一个特殊指针区域,西门子的地址寄存器共有两个:AR1和AR2,每个32位。
地址寄存器间接寻址的一般格式是:〖地址标识符〗〖寄存器,P#byte.bit〗,〖寄存器,P#byte.bit〗统称为:寄存器寻址指针。
更详细的说明见:
、见《关于S7-300和S7-400指针寻址的说明与例程(更新版)》下载:
http://www.ad.siemens.com.cn/download/SearchResult.aspx?searchText=F0215
、详见《step7编程之地址概念详解》连接:
http://ishare.iask.sina.com.cn/f/22746895.html
http://www.gongkong365.com/bbs/job.php?action=download&aid=96
提问者对于答案的评价:
非常感谢阿鸣大哥!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc235984.html