0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

西门子S7-200smart间接寻址使用方法简析

blackwatching 来源:玩转PLC工业机器人 2023-11-15 09:56 次阅读

01 指令讲解

1.创建指针

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

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

f734c83e-82e1-11ee-939d-92fbcf53809c.png

图1

2.引用指针

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

f751d8b6-82e1-11ee-939d-92fbcf53809c.png

图2

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

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

f75b6c28-82e1-11ee-939d-92fbcf53809c.png

图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。

f77cd368-82e1-11ee-939d-92fbcf53809c.png

图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。

f79561d0-82e1-11ee-939d-92fbcf53809c.png

图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。

f7b31504-82e1-11ee-939d-92fbcf53809c.png

图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。

f7da3224-82e1-11ee-939d-92fbcf53809c.png

图7

案例4

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

次数 赋值数据 赋值地址
1 VD0 VD100
2 VD4 VD108
3 VD8 VD116
4 VD12 VD124

表4

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

f7f9853e-82e1-11ee-939d-92fbcf53809c.png

图8

03 总结

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







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 西门子
    +关注

    关注

    93

    文章

    3008

    浏览量

    115614
  • S7-200
    +关注

    关注

    13

    文章

    407

    浏览量

    50321
  • for循环
    +关注

    关注

    0

    文章

    61

    浏览量

    2493

原文标题:西门子S7-200smart间接寻址的使用方法

文章出处:【微信号:玩转PLC工业机器人,微信公众号:玩转PLC工业机器人】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    西门子PLC S7-200smart程序下载错误分析

    S7-200smart中来执行,在下载过程中,有时会出现下载错误的情况。  西门子PLC系列S7-200 smart程序下载问题  用户在使用西门
    发表于 07-23 15:27 4590次阅读

    西门子S7-200SMART接入BL102 PLC网关

    BL102 PLC网关设备连接设备接线示意图如下: BL102 PLC网关的LAN口连接到西门子S7-200SMART的网口,COM口通过RS232转RS422线连接西门子S7-200SMAR
    发表于 10-28 17:08 1909次阅读
    <b class='flag-5'>西门子</b><b class='flag-5'>S7-200SMART</b>接入BL102 PLC网关

    PLC网关采集西门子S7-200SMART数据配置流程

    PLC网关采集西门子S7-200SMART数据配置流程
    发表于 11-04 11:37 3989次阅读
    PLC网关采集<b class='flag-5'>西门子</b><b class='flag-5'>S7-200SMART</b>数据配置流程

    西门子S7-200SMART如何接入MQTT云平台

    西门子S7-200SMART如何接入MQTT云平台
    发表于 11-10 16:49 3308次阅读

    工业智能物联网网关钡铼BL110网口LAN采集西门子PLC S7-200Smart

    工业智能物联网网关钡铼BL110网口LAN采集西门子PLC S7-200Smart
    的头像 发表于 09-30 17:53 1020次阅读

    西门子S7-200SMART系列PLC的比较和传送、置位、复位等指令的使用

    本案例,利用液体混合控制程序设计,主要让读者练习西门子S7-200SMART系列PLC的比较和传送、置位、复位等指令的使用。
    的头像 发表于 10-19 10:15 8216次阅读

    西门子s7-200smarts7-1200PLC通信技术

    S7-1200与S7-200SMART S7 通讯的另外一种方法S7-200SAMRT PLC做客服端,
    发表于 11-17 20:16 7896次阅读

    西门子S7系列如何转换MQTT/Modbus

    西门子S7-200 S7-200Smart S7-300 S7-400 MQTT Modbus
    的头像 发表于 11-02 09:54 1618次阅读
    <b class='flag-5'>西门子</b><b class='flag-5'>S7</b>系列如何转换MQTT/Modbus

    西门子S7-200Smart如何转换Modbus

    西门子S7-200Smart Modbus网关
    的头像 发表于 11-03 18:41 3901次阅读
    <b class='flag-5'>西门子</b><b class='flag-5'>S7-200Smart</b>如何转换Modbus

    西门子S7-200 SMART编程技巧

    【导读】分享一个西门子S7-200 SMART编程技巧。
    的头像 发表于 07-10 10:10 2299次阅读
    <b class='flag-5'>西门子</b><b class='flag-5'>S7-200</b> <b class='flag-5'>SMART</b>编程技巧

    西门子S7-1200与S7-200SMART进行PN通信!

    S7-200SMART编程软件自V2.4版本、CPU固件也是自2.4版本起起开始支持Profinet通信。S7-200SMART即可以做IO控制器,也可以做IO设备。下面的例程以S7-200SMART做IO设备举例。
    的头像 发表于 07-10 16:05 4692次阅读
    <b class='flag-5'>西门子</b><b class='flag-5'>S7</b>-1200与<b class='flag-5'>S7-200SMART</b>进行PN通信!

    如何区分西门子PLC的直接寻址间接寻址

    我们都知道西门子200plc有三种寻址方式:立即寻址、直接寻址间接
    的头像 发表于 08-28 14:43 1636次阅读
    如何区分<b class='flag-5'>西门子</b>PLC的直接<b class='flag-5'>寻址</b>和<b class='flag-5'>间接</b><b class='flag-5'>寻址</b>

    西门子S7-200smart PLC不同类型CPU的区别

    西门子S7-200smart PLC 标准CPU的代码一般为ST XX或者SR XX,其中ST/SR表示CPU自带的数字量输出形式,XX为20、30、40或者60,为CPU性能参数等级。
    的头像 发表于 11-02 17:20 4352次阅读
    <b class='flag-5'>西门子</b><b class='flag-5'>S7-200smart</b> PLC不同类型CPU的区别

    PLC西门子S7-200smartS7-1200的区别?

    PLC西门子S7-200smartS7-1200的区别? 西门子S7-200 smart
    的头像 发表于 11-17 11:41 9680次阅读

    S7协议读取西门子S7-200 Smart PLC数据

    西门子S7-200 Smart PLC因其稳定性和易用性而广泛应用。通过使用S7协议,可以实现对PLC数据的高效读取和控制。本文将详细介绍如何使用S
    的头像 发表于 07-11 11:55 4834次阅读
    <b class='flag-5'>S7</b>协议读取<b class='flag-5'>西门子</b><b class='flag-5'>S7-200</b> <b class='flag-5'>Smart</b> PLC数据