程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

S7-200 SMART 间接寻址解读以及程序应用

balukai 2025-02-17 11:12:28 文章精选 15 ℃

#头条创作挑战赛#

间接寻址解读:

间接寻址是指数据存放在存储器或寄存器中,在指令中只出现所需数据所在单元的内存地址,即指令给出的是存放操作数地址的存储单元的地址,我们把存储单元地址的地址称为地址指针。在S7-200SMARTPLC中只允许使用指针对IQ、M、L V S T(仅当前值)C(仅当前值)存储区域进行间接寻址Lc而不能对独立位(bit)或模拟量进行间接寻址。

(1)建立指针

间接寻址前必须事先建立指针,指针为双字(即32位),存放的是另一个存储器的地址,指针只能为变量存储器(V)、局部存储器(L)或累加器(AC1、AC2、AC3)。建立指针时,要使用双字传送指令(MOVD)将数据所在单元的内存地址传送到指针中,双字传送指令(MOVD)的输人操作数前需加“&”号,表示送入的是某一存储器的地址,而不是存储器中的内容,例“MOVD&VB200,AC1”指令,表示将VB200的地址送人累加器AC1中,其中累加器AC1就是指针。

(2)利用指针存取数据

在利用指针存取数据时,指令中的操作数前需加“*”号,表示该操作数作为指针,如

“MOVW*AC1ACO”指令,表示把AC1中的内容送人ACO中,间接寻址图示如图1-18所示

间接寻址举例:

用累加器(AC1)作地址指针,将变量存储器VB200、VB201中的2个字节数据内容1234移人到标志位寄存器MB0、MB1中。

解析:如图1-19所示。

①建立指针,用双字节移位指令MOVD将VB200的地址移人AC1中。

②用字移位指令MOVW将AC1中的地址VB200所存储的内容(VB200中的值为12, VB201中的值为34)移人MW0中。

最近发表
标签列表