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

    文章

    192

    浏览量

    65235
  • S7-1200
    +关注

    关注

    11

    文章

    331

    浏览量

    18014

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

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

收藏 人收藏

    评论

    相关推荐

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

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

    基于S7-1200的设备与网络组态

    本文档内容介绍了基于S7-1200的设备与网络组态,以及S7-1200的概要及功能。
    发表于 09-25 18:14 28次下载
    基于<b class='flag-5'>S7-1200</b>的设备与网络组态

    基于S7-1200的PLC的编程及扩展

    S7-1200 系列是一款可编程逻辑控制器 (PLC, Programmable Logic Controller),可以控制各种自动化应用。S7-1200设计紧凑、成本低廉且具有功能强大的指令集
    发表于 09-25 18:39 24次下载

    WinCC V7.2与S7-1200的PLC通讯

    自WinCC V7.2版本起,软件新增加了 SIMATIC S7-1200S7-1500 Channel通道,用于WinCC与 S7-1200/S7-1500 PLC之间的通信。此
    发表于 09-26 19:06 11次下载
    WinCC V7.2与<b class='flag-5'>S7-1200</b>的PLC通讯

    S7-1200运动控制的结构及原理

    CPU S7-1200 兼具可编程逻辑控制器的功能和通过脉冲接口控制步进电机和伺服电机运行的运动控制功能。 运动控制功能负责对驱动器进行监控。DC/DC/DC 型 CPU S7-1200 上配备有
    发表于 09-29 14:37 43次下载
    <b class='flag-5'>S7-1200</b>运动控制的结构及原理

    s7-1200系统手册

    S7-1200适用
    发表于 10-23 09:41 0次下载

    S7-1200入门手册

    S7-1200适用
    发表于 10-23 09:34 0次下载

    s7-1200技术规范

    S7-1200适用
    发表于 10-23 09:29 0次下载

    S7-1200S7-1200进行S7通信的详细资料说明

    S7-1200 的 PROFINET 通信口可以做 S7 通信的服务器端或客户端(CPU V2.0及以上版本)。S7-1200 仅支持 S7 单边通信,仅需在客户端单边组态连接和编程,
    的头像 发表于 08-17 10:51 2.9w次阅读
    <b class='flag-5'>S7-1200</b>和<b class='flag-5'>S7-1200</b>进行<b class='flag-5'>S7</b>通信的详细资料说明

    S7-1200中UDT类型变量的使用方法

    今天给大家讲解一下S7-1200中UDT类型变量的使用方法,PLC数据类型我们也叫做UDT数据类型,是由多个不同数据类型元素组成的数据结构,这其中的元素可以是STRUCT、数组等复杂数据类型等等。
    的头像 发表于 04-18 11:58 3841次阅读
    <b class='flag-5'>S7-1200</b>中UDT类型<b class='flag-5'>变量</b>的使用方法

    S7-1200 PWM功能简介

    S7-1200 PWM功能简介。
    发表于 04-23 14:38 43次下载

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

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

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

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

    S7-1200S7-300的选型区别

    在硬件扩展方面,S7-300的主机架多支持八个扩展模块,而S7-1200支持扩展多八个信号模块和多三个通信模块。以S7-300 CPU313C和S7-1200 CPU1214C为例,
    的头像 发表于 05-04 15:18 1727次阅读
    <b class='flag-5'>S7-1200</b>与<b class='flag-5'>S7</b>-300的选型区别

    S7-1200使用数组实现间接寻址的方法

    S7-1200 从 固件版本 V2.0 开始就支持数组下标使用变量的方式,这就意味着数组是最方便的间接寻址的方法,通过改变下标变量实现各式各样的功能。
    发表于 07-31 09:04 4139次阅读
    <b class='flag-5'>S7-1200</b>使用数组实现间接寻址的方法