分享

让你快速掌握S7-200SMART间接寻址使用技巧

 PLC发烧友 2022-03-15

对S7-200SMART PLC来说,寻址可分为直接寻址和间接寻址,直接寻址就是直接对数据进行赋值,那么间接寻址主要是用于什么地方?直接寻址与间接寻址它们之间有何区别?下面就带大家来学习间接寻址使用。

一、直接寻址与间接寻址区别

直接寻址就是直接对数据进行赋值,间接寻址主要用于需要在程序中修改地址的场合,特别是处理数据内容比较多的情况,使用间接寻址编程灵活,节省程序空间。

二、间接寻址说明

(1)间接寻址使用指针访问存储器中的数据,

(2)指针是包含另一个存储单元地址的双字存储单元。只能将V存储单元、L存储

单元或累加器寄存器(AC1、AC2、AC3)用作指针。

(3)要创建指针,必须使用“移动双字”指令,将间接寻址的存储单元地址移至指针位置。指针只能对以下存储区进行间接访问:I、Q、V、M、S、AI、AQ、SM、T(仅限当前值)和C(仅限当前值)﹔不能对单个的位地址、HC、L存储区和累加器进行间接寻址。

三、间接寻址使用方法

使用间接寻址的方式存取数据主要分为以下三个步骤来实现:

(1)建立指针

使用间接寻址之前,应创建一个指针。指针以双字的形式存储要访问的存储器的地址,只能用V存储器、L存储器或者累加器AC作为指针。建立指针时,用双字传送指令MOVD将需要间接寻址的存储器起始地址送到指针中。指针的输入数应该以“&”符号开头来表明存储区的地址,注意不是其内容将移动到指令的输出操作数中。

(2)指针偏移

通过加减乘除运算指令使指针偏移,比如将VD100加上4,则此时VD100指向VB4。

(3)读取指针

操作数前加“*”号,表示指令中的操作数是一个指针。

将指针指向的地址存储的数据调取处出来,通过*VD100提取数据(*是取值符),见下图,就是把VB4的值传送给VB200。

四、取值符说明

“*+指针”使用在字节的位置,访问的是指针指向地址开始的字节变量。

“*+指针”使用在字的位置,访问的是指针指向地址开始的字变量。

“*+指针”使用在双字的位置,访问的是指针指向地址开始的双字变量。

五、间接寻址案例

案例:通过指针的方式,当按下I0.1按钮时:

把VB4的值复制到VB200。

把VW10的值复制到VW300。

把VD20的值复制到VD400。

(1)建立指针

(2)将指针通过ADD_DI(加整数指令)进行加4,从而指针指向VB4,后再将VB4通过MOV_B(字节传送指令)把VB4传送给VB200。

(3)将指针通过ADD_DI(加整数指令)进行加6,从而指针指向VB10,后再将VW10通过MOV_W(字节传送指令)把VW10传送给VW300。

(4)将指针通过ADD_DI(加整数指令)进行加10,从而指针指向VB20,后再将VD20通过MOV_DW(字节传送指令)把VD20传送给VD400。

六、演示效果

通过状态图表分别把VB4、VW10、VD20写入数值

按下I0.1按钮,通过状态图表监控VB200、VW300、VD400的值是否是VB4、VW10、VD20传送过去的值。


七、间接寻址使用注意事项

(1)间接寻址指针表示大小为:32位=双字

(2)建立指针偏移时,是按照偏移数量进行累计,而不是和指针指向的起始地址进行累计。

来源:技成培训网,作者:技成-徐陈爽,未经授权不得转载!

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多