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

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

3天内不再提示

S7-1200使用AT覆盖变量

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 作者:机器人及PLC自动化 2022-03-11 11:10 次阅读

S7-1200 要访问声明变量内的数据区域,可以通过附加声明来覆盖所声明的变量。这样可以选择对不同数据类型的已声明变量进行寻址,例如,可以使用 BOOL 的 ARRAY 对 WORD 数据类型变量的各个位寻址。

下面介绍详细的做法。

1. 如何创建 AT 覆盖变量

创建一个 S7-1200 的项目,在程序块中新建一个 FB 块(或者 FC 块),右击 FB 块进入该块的属性中,将 FB 块属性中的“优化的块访问”给去掉,如图 1 所示。

808c707e-9382-11ec-952b-dac502259ad0.jpg

图 1 创建非优化的 FB 块

双击进入 FB 块, 展开 FB 块的“块接口”,如图 2 所示。

80a3a1ea-9382-11ec-952b-dac502259ad0.jpg

图 2 展开 FB 块的“块接口”

在“块接口”中,在 Input 添加一个变量,变量名为 A,数据类型为 int;接着在变量 A 下面一行,数据类型这一列,手动输入“AT”,如图 3 所示。

80b39a96-9382-11ec-952b-dac502259ad0.jpg

图 3 输入“AT”

Input 中会生成一个新变量“Input_1”,数据类型是 int,将这个变量的数据类型修改成 Array,并编译该 FB 块,可以看到变量 A 和变量 Input_1 的偏移量都是 0.0,这表示变量 A 和变量 Input_1 是相同地址,只是以不同的数据类型显示,如图 4 所示。

80c6d278-9382-11ec-952b-dac502259ad0.jpg

图 4 生成地址相同的新变量

以此方法新建 Output 的变量 B 和变量 Output_1,这样就可以对变量 A 和变量 B 进行位操作,如图 5 所示。

80d7c1d2-9382-11ec-952b-dac502259ad0.jpg

图 5 对变量进行位操作

OB1 调用 FB 块时,FB 块的管脚不会显示变量 Input_1 和 Output_1,如图 6 所示。

80edaa9c-9382-11ec-952b-dac502259ad0.jpg

图 6 调用生成的 FB 块

如 FB 块选择的是优化的块访问,即:保留了 FB 块属性中的“优化的块访问”的勾选项,见图 1;这时,需要在“保持性”一列中选择“在 IDB 中设置”,才能使用 AT 变量覆盖,如图 7 所示。

81002a1e-9382-11ec-952b-dac502259ad0.jpg

图 7 FB 块的优化访问处理

2. 注意事项和规则

注意事项

S7-1200/1500:在 FC 中使用 AT,对于 S7-1200/1500 中的FC,覆盖变量和被覆盖变量的数据长度必须相同。如果无法通过程序实现,请检查是否可以使用片段访问来代替 AT 结构。

规则

对于变量覆盖可适用于以下通用规则:

1.在 STL、LAD、FBD、GRAPH 和 SCL 中,允许变量覆盖。

2.可以在以下块中覆盖变量:

—在标准访问的代码中

—在可优化访问具有保留设置“在 IDB 中设置”的变量代码块中

3.覆盖变量数据宽度必须小于等于被覆盖变量的数据宽度。

4.不可以覆盖 VARIANT 和 INSTANCE 数据类型的变量。

5.无法覆盖库中声明为接口中参数的块。

6.无法覆盖接口中声明为参数的结构化 PLC 变量。

下列组合规则也适用,如下表所示。

81134662-9382-11ec-952b-dac502259ad0.jpg

审核编辑 :李倩

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

    关注

    2

    文章

    180

    浏览量

    64696
  • S7-1200
    +关注

    关注

    11

    文章

    328

    浏览量

    17219

原文标题:S7-1200 使用AT覆盖变量

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    S7-1200如何通过附加声明来覆盖所声明的变量

    S7-1200/1500:在 FC 中使用 AT,对于 S7-1200/1500 中的 FC,覆盖变量和被覆盖
    发表于 07-08 10:31 777次阅读

    S7-1200跟我学56-8:选型#硬声创作季

    S7-1200
    也许吧
    发布于 :2023年06月01日 09:43:32

    S7-1200跟我学56-13:不同存储区的寻址#硬声创作季

    S7-1200
    也许吧
    发布于 :2023年06月01日 09:44:01

    S7-1200跟我学56-10:PLC的工作原理#硬声创作季

    S7-1200
    也许吧
    发布于 :2023年06月01日 09:44:15

    S7-1200跟我学56-7:CPU扩展能力#硬声创作季

    S7-1200
    也许吧
    发布于 :2023年06月01日 09:44:32

    S7-1200跟我学56-12:数据的存取方式#硬声创作季

    S7-1200
    也许吧
    发布于 :2023年06月01日 09:44:56

    S7-1200跟我学56-11:支持的数据类型#硬声创作季

    S7-1200
    也许吧
    发布于 :2023年06月01日 09:45:10

    S7-1200跟我学56-3:模块安装#硬声创作季

    plccpuS7-1200
    或许
    发布于 :2023年06月07日 13:42:11

    西门子S7-1200与西门子PPI采集网关

    原simatics7-200和simatics7-300之间,是紧凑型主动化产品的新成员。在覆盖S7-200原有功用的基础上,在S7-1200
    发表于 07-02 06:31

    S7-1200中的程序块是怎样执行的

    S7-1200中的程序块是什么?S7-1200中的程序块分为哪几类?S7-1200中的程序块是怎样执行的?
    发表于 08-12 07:57

    S7-1200系统概述

    第一章1.1 S7-1200系统概述(1)PLC 运用领域(2)S7-1200外观(3)西门子系列分类1.2博途软件1.3 S7-1200系列PLC的硬件介绍(1)CPU及扩展模块(2)信号模块(3
    发表于 09-02 07:29

    关于S7-1200你想知道的都在这

    什么是S7-1200S7-1200常见的型号?S7-1200的硬件结构由哪几部分组成?
    发表于 09-18 06:11

    S7-1200是什么?S7-1200有何功能

    S7-1200是什么?S7-1200有何功能?s7-1200的运用规模主要包含哪几类?
    发表于 09-30 06:38

    S7-1200如何创建AT覆盖变量

    创建一个 S7-1200 的项目,在程序块中新建一个 FB 块(或者 FC 块),右击 FB 块进入该块的属性中,将 FB 块属性中的“优化的块访问”给去掉,如图 1 所示。
    的头像 发表于 06-30 11:02 1435次阅读

    关于S7-1200或S7-1500 PLC的通信

    WinCC V7.4SP1中针对S7-1200 或 S7-1500通信,可以创建状态变量和控制变量,用来显示和控制S7-1200 或 S7-1500 PLC的通信。
    发表于 10-09 10:05 1783次阅读