技术论坛

TIA博途V13中通过关键字AT实现变量覆盖

作者 主题
侠圣

经验值: 2033
发帖数: 189
精华帖: 1
主题:【分享】TIA博途V13中通过关键字AT实现变量覆盖
推荐帖


只看楼主 楼主 2017-02-23 08:56:57

如何通过关键字“AT”覆盖一个 S7-1200/S7-1500 中已声明的变量,在以后的编程过程中也可能会用到此功能。 这里的“AT”不是以前我们step7程序自定义的高电平位AT,高电平位在1500CPU中系统存储器位可以直接启用,“%M1.2 (AlwaysTRUE)”就是始终为1,低电平位“%M1.3 (AlwaysFALSE)”始终为0.如下图:


说明:

使用关键字“AT”结构覆盖变量时,需要满足以下条件。

1、对于 S7-1200,组态软件至少 STEP 7 (TIA 博途) V11.0+SP1+Update 2 (或更高) ,并且固件版本为 V2.0(或更高)。

2、对于 S7-1500,组态软件至少 STEP 7 (TIA 博途) V12 (或更高)。

更多信息参考STEP7(TIA博途)F1在线帮助,使用AT覆盖变量(Overlapping tags with AT)

 

下面举例说明如何通过BOOL类型的数组访问WORD类型变量的单独的位。

1、创建一个FB块。在S7-1500中新创建的块默认都是“优化的块访问”。 在S7-300/S7-400中块都是“标准的块访问”。如果要在S7-1500中使用这些块,将块改为“优化的块访问”。

2、打开块和块的接口区,在声明表中输入想要用新的数据类型覆盖的变量。例如:名称"statConveyor",数据类型“Word”。

3、在“保持性”一列的下拉菜单中选择“在IDB中设置”。

4、选择要覆盖变量所在行右键,在弹出窗口中选择 “添加行”。覆盖的变量只能在被覆盖的变量下一行声明。在添加行中输入变量名。例如"statMotors"。

5、在“数据类型”列首先输入字母 “A”,等到数据类型窗口打开后就可选择。

6、在下拉菜单中选择关键字 “AT” 并点击 “名称”列。此时除了变量名称(例如 "statMotors")之外,在同一区域还会显示被覆盖变量的关键字。 在这个例子中是:AT "statConveyor"。

再次点击“数据类型”区域并声明为数组。例如:“Array[0..15],Bool”。

 

这样就覆盖变量声明完成了,可以编程序了。

注意:FC块和临时变量只有当块属性为“标准的块访问”时才能使用该功能。需要到块属性里,在“属性”标签下取消使能“优化的块访问”。

 

如下图:



对某些应用,在STEP7中可能需要将多个信号组合成一个控制字或从一个控制字中提取单独的信号。

1、FB块 “BoolToWordAT” 的说明

利用FB “BoolToWordAT” 可在一个字中组合 16 个位。每个 Bool  类型输入变量被分配到静态变量"statMotors"数组并被带关键字 “AT” 的"statConveyor"变量覆盖。然后静态变量"statConveyor"的内容被传输到输出变量"conveyor"中。

2、FB块“WordToBoolAT”

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

这两个FB块在OB1中调用。

这里有程序全局库模板,可以下载导入到新建项目,在博图中打开和编辑使用,导入完之后,从全局库中将"BoolToWordAT","BoolToWordAT_DB", "WordToBoolAT", "WordToBoolAT_DB","DB" 和 "Main"拖拽到程序块文件夹,将变量拖拽到PLC变量文件夹。


帖子好像无法上传1MB以上的附件,需要程序示例模板的留邮箱



 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1373332&b_id=66&s_id=0&num=3

侠客

经验值: 763
发帖数: 327
精华帖: 0
回复:TIA博途V13中通过关键字AT实现变量覆盖


只看楼主 1楼 2017-02-25 08:27:31

 

收藏了以后肯定用到


如果有什么需要明天做的事,最好现在就开始
以下网友喜欢您的帖子:

  
侠圣

经验值: 2033
发帖数: 189
精华帖: 1
回复:TIA博途V13中通过关键字AT实现变量覆盖


只看楼主 楼主 2楼 2017-02-27 08:46:59

我也是这么认为的


 
以下网友喜欢您的帖子:

  
游侠

经验值: 536
发帖数: 67
精华帖: 0
回复:TIA博途V13中通过关键字AT实现变量覆盖


只看楼主 3楼 2017-06-07 23:25:13



用到了,谢谢


你的能量超乎你想象!
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
TIA博途V13中通过关键字AT实现变量覆盖
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。