PCS 7 OS 系统本身已经提供了丰富的趋势功能。实际应用场景中,可能需要多个对象的趋势在同一个趋势窗口中显示,以往可通过趋势组的方式实现此功能,但是趋势组要直接浏览归档变量并手动添加,操作并不直观便捷。
当然,也有采用脚本的方式实现归档变量自由选择。不过客户往往更需要的是直接点击不同块图标,来添加不同的趋势到同一个趋势控件,而且可以将当前的组态保存,以便下次调用。
PCS 7 V9.0 之后新增的 AOTC(APL Operator Trend Control)控件应运而生。从用户使用的角度出发,通过点击对应的块图标(同时按住 Ctrl 键),直接将归档变量添加到 AOTC 的趋势控件中。可以同时添加多个图标的归档变量到同一 AOTC 控件。
AOTC 的出现,使得终用户更加灵活与便捷的创建自定义趋势组,而且告别了直接浏览归档变量的繁琐方式。AOTC 控件不仅有实力而且也是“颜值担当”,提供了更加丰富的显示和选择功能:
关于 AOTC 控件的基本使用,我们在此不再赘述,可参考以下 FAQ:PCS 7 中通过 AOTC 控件在同一个画面中显示多个
趋势曲线https://support.industry.siemens.com/cs/cn/zh/view/109778843
接下来主要介绍非标情况下如何使用 AOTC 的功能。
02
AOTC 的扩展应用
当采用 APL 的块图标时,工程师不需要任何额外设置就已经包含了该功能。
接下来我们重点看下如下三个方面:
都有哪些功能块支持 AOTC 的功能?
下位机采用 APL 库,自定义块图标如何使用 AOTC 的功能?
自定义功能块和自定义块图标是否可以使用 AOTC 功能?
- No. -
2.1
追本溯源——哪些块支持 AOTC
以 MonAnL 为例,APL 自带功能块图标之所以支持 AOTC 功能,是因为块图标中“ Event→UserDefined1→Value1.Release left”存在脚本“APL_OpenCurveControl”,当按住 Ctrl 键的同时点击块图标中对应模拟量值时,会执行以上脚本函数。
从 PCS 7 V9.0 版本开始,APL 模板画面中不管任何功能块的图标,只要包含模拟量值的都已经集成了该功能。
AOTC 不仅局限于添加模拟量,同时对于 APL 中的以下功能块,也集成了添加数字量到 AOTC 控件的功能。
哪些块支持向AOTC窗口添加数字量的值 | |
系列 | 块 |
Drives | MotL, MotRevL, MotSpdCL, MotSpdL, MotS, VlvL, VlvS, Vlv2WayL, VlvAnL, VlvMotL, VlvPosL |
Operate | OpDi01, OpTrig, OpDi03 |
Monitor | MonDiL, MonDiS, MonDi08 |
同添加模拟量到 AOTC 控件类似,按住 Ctrl键+左键单击对应图标,比如在 MotL 块图标上执行了以上动作,则会将 FbkRunOut.Value 添加到新打开(或已经打开的)AOTC 控件窗口。其原理和添加模拟量显示相似,如下图所示:
APL_OpenCurveControl 函数两个关键参数 lpszValue 和 lpszUnit:
- No. -
2.2
按图索骥——自定义块图标实现 AOTC
接下来我们仍然以 MonAnL 为例,在下位机程序不变的情况下,如何将自定义的块图标同样实现 AOTC 的功能。
我们以简单的 I/O 域创建一个自定义对象来测试。在2.1章节,MonAnL-APL_OpenCurveControl 的 lpszUnit 参数赋值使用了 tag,而 MotL 则在 lpszValue 中使用了 tag,所以 tag 为对应的块图标属性中的 TagName。
标准 APL 的块图标肯定会包含 TagName 等属性,但是对于自定义对象则不是必须的。因为 lpszUnit 可以为 None,我们先不添加TagName 看自定义对象是否可以打开 AOTC 控件,并正常使用。
自定义对象连接和脚本操作顺序如下图所示:
使用 WinCC 脚本诊断工具 ApDiag 检查脚本执行是否正确:
鼠标点击后并未弹出 AOTC 窗口,ApDiag 诊断窗口也显示了具体的错误原因,没有找到对象属性 tagname:
此时仿照 PCS 7 块图标的格式,用 DataSet 收集 tagname,从 standard 中拖拽 DataSet 到画面中,并添加 Index 设置名称为 TagName,Type 为 String格式。
将 DataSet 添加到之前的自定义对象,并组态如下:
将 TagName 的静态值定义为对应结构体变量名称:
此时点击该自定义对象,便可正常弹出 AOTC 的控件并添加对应的趋势,且脚本执行没有错误。
上图中 Unit 之所以为空,是因为没有给 APL_OpenCurveControl 函数的lpszUnit参数赋值所致,修改脚本如下图(其中 tag 指 tagname):
- No. -
2.3
学以致用——自定义功能块 +
自定义块图标实现 AOTC
前文已经介绍了在下位机使用 APL 库功能块时,无论使用标准的块图标,还是使用自定义对象都可以方便的使用 AOTC 功能。那么如此方便的功能,对于自定义的功能块和图标能否支持呢?
后让我们一起来研究一下自定义的块和图标如何灵活的使用 AOTC 功能。
AOTC 控件中除包含变量的趋势外,还获取了变量的量程、质量状态、上下限和单位等信息。单位是通过 lpszUnit 参数获取的。但是对于其他的参数并没有直接赋值,而是在内部根据 tagname 获取的相应变量。因此对于自定义的功能块,可以仿照 MonAnL 块,定义如下图所示的对应管脚即可:
管脚属性的定义参考 MonAnL 的定义,此处仅定义了必须的管脚,其他非必要管脚可以根据实际需求添加,内部逻辑程序根据自己需要定义即可,PV_Out 可以通过管脚属性直接设置为归档。
此处直接使用 2.2 章节创建的自定义对象来进行测试,只需将结构体变量,变更为自定义功能块对应的结构体变量即可。
03
总结
AOTC 控件让用户直观方便的创建、存储、调用趋势控件,而不需要进行复杂的组态。做到了“所见即所得” 而不再需要一个个找归档变量。
对于工程师而言也简化了编写复杂脚本的工作,即便不使用 APL 库也可以很方便的将自己的功能块集成 AOTC 功能。
PCS 7 的 V8.2 V9.0 V9.1 这几个版本的更新中,新增了许多非常实用的功能,并且在数字化和标准化的应用上也在一步步完善创新,这些功能等待着我们去挖掘使用。
对于这些新功能及其应用案例,我们会在后续的 1847 学习平台以文档或视频的形式呈现。比如 PCS7 V9.1 中对于所有的操作记录新增了计算机名的功能,避免多台电脑使用同一账户登录时无法区分的问题。对于早期版本如何在操作记录中增加计算名的问题相关文档,也即将在 1847 平台推出。
- 西门子中国授权代理商|数控系统代理商 2023-10-26
- 西门子中国授权代理商|驱动器代理商 2023-10-26
- 西门子中国授权代理商|交换机代理商 2023-10-26
- 西门子中国授权代理商|电线电缆代理商 2023-10-26
- 西门子中国授权代理商|变频器代理商 2023-10-26
- 西门子中国授权代理商|触摸屏代理商 2023-10-26
- 西门子中国授权代理商|CPU模块代理商 2023-10-26
- 西门子中国授权代理商|PLC模块代理商 2023-10-26
- 西门子中国授权代理|数控系统代理 2023-10-26
- 西门子中国授权代理|驱动器代理 2023-10-26