电工学习网

 找回密码
 立即注册
查看: 2412|回复: 0

西门子PLC SCL中变量的间接寻址

[复制链接]
发表于 2020-8-7 17:19:08 | 显示全部楼层 |阅读模式
1.应用的基本信息
     一开始用300做项目比较多,后来用1500做项目比较多。所以不止是程序更多的是我的编程思路由S7-300/400移植到了S7-1200/1500。总体来说1500还是方便不少,就不一一讲了挑一个不起眼的并且300、1500各有千秋的一个小变化讲一讲。
2.问题描述
                6373239378745101889671730.png

      两个结构作比较,如果结构中任意一个变量不相同输出一个结果。结构中包含多种数据类型且变量个数较多。所以思路上选择用绝对地址作比较。
    移植问题示例:
    300:
                     6373239382509179366172992.png

         300支持SCL中用 DB.Type(#偏移量)的方式寻址,还是蛮方便的。DBD0,4,8,12……用绝对地址依次比较,如果不相等就输出结果。
                  6373239384874792001612085.png

        而1500中不支持这样的寻址方式。
                           6373239387677954857249751.png

       功能替代示例:
      1500的变量间接寻址的替代方案是POKE和PEEK。

                   6373239392946664327452509.png

4.经验总结
4.3 对S7-1500新功能或者更新替代的方式和方法的一些看法和建议(例如是否节省时间、功能是否友好,维护和编程更易于管理等)
       1500对比300的改进大部分都让变成更方便了,比如DB没有大小限制了,硬件标识符系统分配不可更改,背景数据可以放到InOut里……等等。但是SCL中变量的间接寻址这个功能我觉得还是300的好用,地址拼出来就直接用。而1500里分成了POKE写,PEEK读两条指令。我想这样的初衷应该是节约系统的运算资源吧。
来源:西门子工业技术论坛

回复

使用道具 举报

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

本版积分规则

电工学习网 ( )

GMT+8, 2024-3-28 23:35

Powered by © 2011-2022 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

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