怎样通过关键字 "AT" 实现变量覆盖

通过关键字“AT”可覆盖一个已声明的变量为其它类型的变量,比如通过 Bool 型数组访问 Word 变量的各个位。此类处理时间明显快于早期版本STEP 7的数据转换指令。

在下面的块中可以实现变量覆盖:

1)标准访问的代码块;

2)在优化的块中变量的保持性设置为“在 IDB 中设置”。

注意:

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

2)不能覆盖 VARIANT 和 INSTANCE 数据类型的变量。

3)不能覆盖已在接口中声明为来自库的块参数。

4)不能覆盖已在接口中声明为参数的 PLC 结构化的变量。

在FC 或 FB 的块接口参数区,用“AT”覆盖变量,步骤如下:

1、创建 FC 或 FB 。

1.1、函数块(FB)的访问属性可以选用“优化的块访问”。在函数块(FB)的接口处,欲实现被覆盖的变量,必须在“保持性”一列选择“在 IDB 中设置”选项。而由于对于函数(FC)和临时变量(Temp)无法进行此操作,因此如果要在函数块(FB)中实现Temp的变量覆盖,必须将函数块(FB)的访问属性从“优化的块访问”修改成“ 标准兼容”。

1.2、函数(FC)在声明变量前,将函数的访问属性从“优化的块访问”修改成“ 标准兼容”,即使这样,在函数(FC)的接口处,也只有Temp变量才能实现变量的覆盖。

2、打开函数(FC)或函数块(FB)的接口界面。

2.1、对函数块(FB)的非Temp变量,函数块(FB)的访问属性可以选用“优化的块访问”。在声明表中输入想要用新的数据类型覆盖的变量(例如:名称:“t_word”,数据类型 “Word”);在“保持性”一列的下拉菜单中选择“在 IDB 中设置”;选择要覆盖变量所在行并右击,在弹出窗口中选择 “添加行”(覆盖的变量只能在被覆盖的变量下一行声明);在添加行中输入变量名(例如:“t_bool”);在下拉菜单中选择关键字 “AT” 并点击 “名称”栏,此时除了变量名称(例如:“t_bool”)之外,在同一区域还会显示被覆盖变量的关键字(例如:AT "t_word");再次点击 “数据类型”区域并声明为数组(例如:“Array[0..15],Bool 类型”)。

2.2、对函数(FC)和函数块(FB)的Temp变量,将访问属性从“优化的块访问”修改成“ 标准兼容”。在声明表中输入想要用新的数据类型覆盖的变量(例如:名称:“t_word”,数据类型 “Word”);选择要覆盖变量所在行并右击,在弹出窗口中选择 “添加行”(覆盖的变量只能在被覆盖的变量下一行声明);在添加行中输入变量名(例如:“t_bool”);在下拉菜单中选择关键字 “AT” 并点击 “名称”栏,此时除了变量名称(例如:“t_bool”)之外,在同一区域还会显示被覆盖变量的关键字(例如:AT "t_word");再次点击 “数据类型”区域并声明为数组(例如:“Array[0..15],Bool 类型”)。

3、至此覆盖变量已经声明完成,可以在编辑器中输入程序。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值