返回列表 发新帖

[科技] 在博途S7-1200中怎样通过关键字 "AT" 实现变量覆盖?

[复制链接]

7

主题

19

帖子

26

积分

耍耍新手

Rank: 1

积分
26
发表在  2019-9-13 13:54:48 | 显示全部楼层 | 阅读模式
SIMATIC 识别一系列关键字,这些关键字有固定的定义且在程序中有特定含义。不应利用这些关键字作为变量或常量的名称。
好比本文中将要讲到AT:覆盖变量声明
一、通过关键字 “AT” 可覆盖一个 S7-1200/S7-1500 中已声明的变量。
说明
可以在FB和FC的接口参数区举行变量覆盖。
利用关键字 “AT” 覆盖变量时,需要满意以下条件。
对于 S7-1200,组态软件至少 STEP 7 (TIA 博途) V11.0+SP1+Update 2 (或更高) ,并且固件版本为 V2.0(或更高)。
对于 S7-1500,组态软件至少 STEP 7 (TIA 博途) V12 (或更高)。
二、通过举例来具体说明怎么利用
1、起首建立一个FB快,建立一个变量b,数据类型为Dword,
135909ufhxlllrzsa0lr95.jpg



2、在保持性选择为“在IDB中设置”
135909hbexqlwoxoeoeb2m.jpg



3、在变量b在下一行中添加变量c,在数据类型中选择AT
135909lzgggxu2e7guxe7n.jpg



135909saevj6xc8e28k7zk.jpg



4、再在变量c的数据类型选择数组,
135909rnn0sq2plz02lnlq.jpg



5、在output中声明4个变量a1~a4。数据类型选择为byte
135909u4tj111jljj361dd.jpg



6、编写如下程序,实现分别输出AT覆盖的内容
好比c[0]=16#12,c[1]=16#34,c[2]=16#56,c[3]=16#78
135910p2r2wzcqiwrw5mi9.jpg



7、在OB1中调用,并仿真如下
135910mfxt2d1od1oc5o0p.jpg



三、应用说明
对某些应用,在STEP 7 中可能需要将多个信号组合成一个控制字或从一个控制字中提取单独的信号。
利用FB “BoolToWordAT” 将16 个位组合成1个字。每个 Bool 类型输入变量被分配到静态变量"statMotors"数组并被带关键字 “AT”的"statConveyor"变量覆盖。然后静态变量"statConveyor"的内容被传输到输出变量"conveyor"中。
135910r96c5ojjjnormcr1.jpg



FB块“WordToBoolAT”
利用FB “WordToBoolAT” 可以从一个数据类型为 "Word" 的变量中提取最多 16 个信号 (数据类型为 “Bool” 的变量) 。输入变量 "conveyor" 的内容被传送到静态变量 "statConveyor" 并被声明为带关键字 “AT” 的变量"statMotors" 覆盖。然后数组类型变量 "statMotors" 的每一位被分配到 Bool 数据类型的输出变量中。
135910uatgvcgsksbsb181.jpg



这两个FB在 OB1 “Main” 中调用和参数化。


声明:信息来源于主流新闻平台,如有侵权联系管理员删除(川渝耍耍网 www.cysua.com)。
回复

使用道具 举报

4

主题

15

帖子

19

积分

耍耍新手

Rank: 1

积分
19
发表于 2019-9-13 14:54:24 | 显示全部楼层
为毛老子总也抢不到沙发?!!
回复

使用道具 举报

6

主题

14

帖子

20

积分

耍耍新手

Rank: 1

积分
20
发表于 2019-9-15 20:44:28 | 显示全部楼层
学习下
回复

使用道具 举报

2

主题

21

帖子

23

积分

耍耍新手

Rank: 1

积分
23
发表于 7 天前 | 显示全部楼层
纯粹路过,没任何兴趣,仅仅是看在老用户份上回复一下
回复

使用道具 举报

4

主题

23

帖子

27

积分

耍耍新手

Rank: 1

积分
27
发表于 3 天前 | 显示全部楼层
撸过
回复

使用道具 举报

6

主题

21

帖子

27

积分

耍耍新手

Rank: 1

积分
27
发表于 前天 18:14 | 显示全部楼层
看起来好像不错的样子
回复

使用道具 举报

发表回复

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

本版积分规则

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