一次间接寻址的有效地址_S7-200smart寻址概述

在PLC的编程过程中,数据的寻址是一项很重要的工作,以便于每次程序执行时能够捕捉到正确的程序数据。

c6a542f7aa2c8b4299f4ee252a502f3f.png

寻址概述

通过绝对或符号方式识别程序中的指令操作数。绝对参考使用存储区和位或字节位置识别地址。符号参考使用字母数字字符组合

程序编辑器如何显示地址的示例

识别某地址(符号地址)或数值(符号常数)。

I0.0 绝对地址由存储区和地址编号指定

INPUT1 全局符号名称

??.?或???? 红色问号表示未定义的地址(必须先定义,程序才能编译)

966e5a4058d54232bb48024beb036a19.png
  • 全局范围与局部范围

符号表中赋值的符号值具有全局范围。变量表中赋值的符号变量具有全局范围。

  • 全局符号

可使用符号表进行全局符号赋值。在程序程序中使用符号之前,不必执行符号赋值;您可以在任何时间进行符号赋值。

  • 局部变量

局部变量在各自POU的变量表中赋值,且局限于创建局部变量的POU。每个POU都有自己的单独变量表。

示例:

在称作SBR1的子例程的变量表中定义称作INPUT1的变量。当从SBR1内参考INPUT1时,程序编辑器将其识别为SBR1的一个局部变量。

然而,如果从程序中的其它位置(例如,从MAIN或从第二个子例程)参考INPUT1,程序编辑器不将其视作局部变量(因为它位于SBR1之外),而将INPUT1视作未定义的全局符号。

  • 范围规则

如果在局部和全局级别使用一个相同的地址名,局部用法优先。即,如果程序编辑器在变量表中发现某一特定程序块的名称定义,则使用该定义。如果未发现定义,程序编辑器会检查符号表。

示例:

在“符号表”中将PumpOn定义为全局符号。在SBR2(而不是SBR1)的变量表中将其定义为局部变量。编译程序时,局部定义用于SBR2中的PumpOn;全局定义用于SBR1中的PumpOn。

  • 本地存储器使用

局部变量使用临时PLC的L存储器,而不要求PLC程序存储空间。仅使用局部变量参数(或根本不使用参数)的子例程可移植,且可在多个程序中重复使用。如果要在多个POU中使用一个参数,最好在“符号表”中将其定义为全局符号,而不要将其定义为局部变量,因为必须为每个POU的变量表分别赋值。

因为局部变量使用临时存储器,每次调用POU时,请务必在POU中初始化局部变量。局部变量不会将其数据值从一次POU调用保留到下一次调用。

说明:符号表支持全局符号常数(直接将符号名称分配给数值常数),变量表不支持符号常数。

6c7fbd539e8c7b86070bef32bdf66a4d.png


S7-200 SMART的寻址方式分为直接寻址与间接寻址,我们下次继续学习PLC的编程方式。

感谢您的阅读,希望能帮到您。让我们共同学习,共同进步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值