PLC论坛-全力打造可编程控制器专业技术论坛

 找回密码
 注册哦

QQ登录

只需一步,快速开始

微信扫码登录

查看: 59477|回复: 0

[三菱] 西门子S7-200SMART PLC间接寻址的使用方法

[复制链接]
发表于 2024-6-21 13:51:30 | 显示全部楼层 |阅读模式

对于初学者来说,学习间接寻址往往搞不懂,有点懵,接下来小编将会以这篇文章给大家详细的讲解,轻松带你解决这个烦恼。

01
指令讲解


1.创建指针

使用间接寻址就必须先创建指针,那么指针怎么创建呢?使用MOV_DW指令把指针地址存放到OUT输出的变量,MOV_DW不是普通的32位数传送指令吗,怎么就是指针了呢?

其实当MOV_DW指令IN引脚使用&VBxxx、&IBxxx、&MBxxx、&QBxxx时为创建指针的格式。如图1所示,&VB0为创建指针指向vb0,其中&为创建指针的符号,VB为V存储区的字节,0代表指向的地址是从字节0开始的,指针地址放在OUT输出变量地址中,VD100为创建指针存放的指针地址。



图1


2.引用指针

引用指针使用字符“*”带表示引用指针,如图2所示,*VD100代表引用指针,把vd0的数据传送到vd200中。



图2

那么如何判断指向的地址使用的是字节、字、双字呢?其实和指令有关系。可以通过数据类型判断,如图3所示,把光标放在指令块处不动2S左右,会弹出一个指令块引脚指令使用的数据类型。

这里可以看到IN:DWORD,输入为DWORD的32位数据类型,也就是双字,那么这时候引用的是VD0,指针没有偏移过,还是指向VB0地址起始的,指令使用的是双字,所以引用的是VD0地址中的数据,把VD0赋值给VD200。



图3


3. 指针偏移

初学者使用指针时,对于指针偏移的理解最容易乱的。指针偏移是通过对指针存放的地址进行运算得到一个新的指针地址。

如图4所示,按下M0.0把指针指向VB0的指针地址放在VD100中,如果这时候没有接通I0.0,那么程序段3就会把VD0的数据传送给VD200,如果接通了I0.0,那么程序段3就会把VD4的数据传送给VD200。

指针地址加多少就是向上偏移多少,也可以减去一个偏移量,一般字节偏移1,字偏移2,双字偏移4。如图4中的程序段2,指针地址VD100+4=VD100,程序段中最开始的创建的指针是指向VB0,指针+4以后,指针指向偏移指向VB4。



图4

02
案例应用


案例1

如表1所示,按下M0.0的按钮,把赋值数据传送给赋值地址,例如第一次把VB0传送给VB100,当第四次以后,按下M0.0按钮,指针重新指向VB0,重新开始。


次数

赋值数据

赋值地址

1

VB0

VB100

2

VB1

VB100

3

VB2

VB100

4

VB3

VB100

表1

程序编写如图5所示,字节与字节之间地址相差1,编写VD1000+1=VD1000的运算程序,每次向上偏移1。



图5


案例2

如表2所示,按下M0.0的按钮,把赋值数据传送给赋值地址,例如第一次把VW0传送给VW100,当第四次以后,按下M0.0按钮,指针重新指向VB0,重新开始。

次数
赋值数据

赋值地址

1

VW0

VBW00

2

VB2

VW100

3

VB4

VW100

4

VB6

VW100

表2

程序编写如图6所示,字与字之间地址相差2,编写VD1000+2=VD1000的运算程序,每次向上偏移2。



图6


案例3

如表3所示,按下M0.0的按钮,把赋值数据传送给赋值地址,例如第一次把VD0传送给VD100,当第四次以后,按下M0.0按钮,指针重新指向VB0,重新开始。


次数

赋值数据

赋值地址

1

VD0

VD100

2

VD4

VD100

3

VD8

VD100

4

VD12

VD100

表3

程序编写如图7所示,双字与双字之间地址相差4,编写VD1000+4=VD1000的运算程序,每次向上偏移4。



图7


案例4

如表4所示,按下M0.0的按钮,把赋值数据传送给赋值地址,例如第一次把VD0传送给VD100,当第四次以后,按下M0.0按钮,赋值地址清零,然后下一次重新开始赋值。


次数

赋值数据

赋值地址

1

VD0

VD100

2

VD4

VD108

3

VD8

VD116

4

VD12

VD124

表4

程序编写如图8所示,不管是输入和输出都可以通过指针做间接寻址,通过地址偏移可以给不通的地址赋值。



图8

03
总结

本文章举例了简单的IN和OUT的间接寻址,间接寻址的使用方式还有很多,可以用在形参子程序中使用,例如求多个数值的平均值,利用for循环和间接寻址就可以轻松解决这个需要多次运算的问题,现在西门子200smart v2.8的CPU支持平均值指令,可以不需要自己写程序。

以上就是整个西门子S7-200smart间接寻址使用方法的内容,文章内容如有错误或者有不懂的问题请联系我们。

文章来源:技成培训网原创,作者:邹志锐;未经授权禁止转载,违者必究!

64本西门子PLC电子书








往期推荐

S7-1200PLC作为服务器和调试助手进行数据通信(2)

干货!S7-1200PLC作为客户端和调试助手进行数据通信(1)

30道PLC工程师面试题,全是资深电气工程师的经验总结!

案例分享 | 基于三轴设备画正方形程序设计

教你一个在HMI上显示PLC代码流程的方法,简单易懂~

「案例」手把手教你用博途软件仿真西门子PLC的S7通信

三菱PLC高速计数器应用案例(电机测速、流量计、伺服同步、光栅尺控制)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册哦

本版积分规则

QQ|小黑屋|手机版|Archiver|PLC技术网-PLC论坛 ( 粤ICP备17165530号 )|网站地图

GMT+8, 2024-9-28 18:13 , Processed in 0.046221 second(s), 27 queries .

快速回复 返回顶部 返回列表