S7-1200 要访问声明变量内的数据区域,可以通过附加声明来覆盖所声明的变量。这样可以选择对不同数据类型的已声明变量进行寻址,例如,可以使用 BOOL 的 ARRAY 对 WORD 数据类型变量的各个位寻址。
下面介绍详细的做法。
1. 如何创建 AT 覆盖变量
创建一个 S7-1200 的项目,在程序块中新建一个 FB 块(或者 FC 块),右击 FB 块进入该块的属性中,将 FB 块属性中的“优化的块访问”给去掉,如图 1 所示。
图 1 创建非优化的 FB 块
双击进入 FB 块, 展开 FB 块的“块接口”,如图 2 所示。
图 2 展开 FB 块的“块接口”
在“块接口”中,在 Input 添加一个变量,变量名为 A,数据类型为 int;接着在变量 A 下面一行,数据类型这一列,手动输入“AT”,如图 3 所示。
图 3 输入“AT”
Input 中会生成一个新变量“Input_1”,数据类型是 int,将这个变量的数据类型修改成 Array,并编译该 FB 块,可以看到变量 A 和变量 Input_1 的偏移量都是 0.0,这表示变量 A 和变量 Input_1 是相同地址,只是以不同的数据类型显示,如图 4 所示。
图 4 生成地址相同的新变量
以此方法新建 Output 的变量 B 和变量 Output_1,这样就可以对变量 A 和变量 B 进行位操作,如图 5 所示。
图 5 对变量进行位操作
OB1 调用 FB 块时,FB 块的管脚不会显示变量 Input_1 和 Output_1,如图 6 所示。
图 6 调用生成的 FB 块
如 FB 块选择的是优化的块访问,即:保留了 FB 块属性中的“优化的块访问”的勾选项,见图 1;这时,需要在“保持性”一列中选择“在 IDB 中设置”,才能使用 AT 变量覆盖,如图 7 所示。
图 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.无法覆盖库中声明为接口中参数的块。
下列组合规则也适用,如下表所示。
审核编辑 :李倩
-
AT
+关注
关注
2文章
194浏览量
65333 -
S7-1200
+关注
关注
11文章
332浏览量
18105
原文标题:S7-1200 使用AT覆盖变量
文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
S7-1200如何通过附加声明来覆盖所声明的变量
基于S7-1200的PLC的编程及扩展
WinCC V7.2与S7-1200的PLC通讯
![WinCC V7.2与<b class='flag-5'>S7-1200</b>的PLC通讯](https://file.elecfans.com/web2/M00/49/DF/pYYBAGKhvG6AS5FfAAAUy5IkQp0690.jpg)
S7-1200运动控制的结构及原理
![<b class='flag-5'>S7-1200</b>运动控制的结构及原理](https://file.elecfans.com/web2/M00/49/EA/pYYBAGKhvHWARc_CAAAS617HAMM869.jpg)
S7-1200和S7-1200进行S7通信的详细资料说明
![<b class='flag-5'>S7-1200</b>和<b class='flag-5'>S7-1200</b>进行<b class='flag-5'>S7</b>通信的详细资料说明](https://file.elecfans.com/web1/M00/A3/A5/o4YBAF1XbRKAAfsQAAAWs3EgRKM738.jpg)
S7-1200中UDT类型变量的使用方法
![<b class='flag-5'>S7-1200</b>中UDT类型<b class='flag-5'>变量</b>的使用方法](https://file.elecfans.com/web1/M00/EB/91/pIYBAGB7rrWAZqgxAAGbmAhQU0w241.png)
S7-1200如何创建AT覆盖变量
关于S7-1200或S7-1500 PLC的通信
S7-1200与S7-300的选型区别
![<b class='flag-5'>S7-1200</b>与<b class='flag-5'>S7</b>-300的选型区别](https://file1.elecfans.com/web2/M00/82/71/wKgaomRTXKmAej9jAAAktpTUR38448.png)
S7-1200使用数组实现间接寻址的方法
![<b class='flag-5'>S7-1200</b>使用数组实现间接寻址的方法](https://file1.elecfans.com/web2/M00/8E/6B/wKgaomTHCY6AHVHhAAAnWk9BbPA573.png)
评论