如何通过变量触发的脚本来提高性能?

描述
如果在带有变量触发C脚本的项目中,通过字符串函数生成变量名时要请求其它变量,或是在C脚本通过GetTag...函数调用其他变量,所有WinCC优化措施,高速缓存等都被抵消了。这些变量中的每一个都被同步,但分开地读取。

注意事项
画面打开后,通过在一个任务(块)中的读取变量可以显著缩短创建画面的时间。这样脚本就可以访问高速缓存中的变量而无需首先单独读取变量(同步)。这样,会大幅降低单项任务之间的通讯和必要任务的改变。访问尚未放入触发器列表中的变量时,为第一次更新选择画面时不会“作为块”来请求变量(因而,就总是为时间触发的脚本来请求变量)。

如果重新组态很复杂,通过画面中使用的所有变量的触发器列表可以在画面中创建一个哑对象(图1)。

如何通过变量触发的脚本来提高性能? trigger_e.gif ( 33 KB )

图1:WinCC中的触发器列表

变量名是否是在脚本中动态生成并不重要。处理脚本时,须同步读取这些变量。因为,脚本开始时,在客户机(以及数据管理器)中这些变量尚不可用。下列简例可清楚说明这点:

例如,触发器列表包含:

Variable_A

在WinCC图形编辑器中,在对象的脚本内实现对Variable_B访问:

#include "apdefap.h"
long _main(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
long color = -1;
color = GetTagWord ("Variable_B");
return color;
} Effect:

  • 本例中,选择画面时同步读取“Variable_B”=>性能不佳。
  • 脚本中的下面一行可提高性能:
    color = GetTagWord (“Variable_A”);

关键字
改善性能,访问时间,访问

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc332566.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论