网站标志
导航菜单
当前日期时间
当前时间:
购物车
购物车中有 0 件商品 去结算 我的订单
商品搜索
商品搜索:
文章正文
Wincc中GetTagXXX函数的详解
作者:管理员    发布于:2015-05-31 20:57:41    文字:【】【】【
1.GetTagXXX函数是异步执行函数,当调用这些函数时,如果使用了周期性服务,并且周期性服务数量还没有用完,则要读取的变量就会在WINCC的映像区中注册。并且对于标准触发,周期性服务的更新周期是变量刷新周期的1/2,第一次注册完之后,以后AS的周期性服务就会主动的发数据给WINCC。所以如果变量刷新周期太短的话,则周期性服务的周期也会变短,这样通讯的负担就加重了。具体如下图所示:



2.对于GetTagXXX函数,如果不能使用周期性服务,WINCC将使用非周期性读取。但仍然进行注册,并从WINCC的映像区中读取。只不过AS不是主动发送,而是WINCC请求一次,AS发送一次,并且请求周期的排列也由WINCC来执行。

3.当一个画面关闭时或者被切换成非激活画面时,其使用的变量注册的周期性服务也停止了。但全局脚本中使用的变量注册的周期性服务会一直保留,直到WINCC停止运行,因为周期性服务数量是有限的,所以在全局脚本中建议使用加Wait的函数。

4.对于在象MOUSE CLICK这样的事件中使用GetTagXXX函数,当函数执行时,GetTagXXX函数首先要进行注册,然后就会周期性的从AS中请求数据(或者AS主动的发送数据),当这个click事件结束,仍然还要从AS中周期性的请求数据直到画面关闭。这样就会加重WINCC的执行负荷。而解决的方法是采用GetTagXXXWait函数,虽然使用GetTagXXXWait函数会导致更高的通讯负荷,但不需要将变量在WINCC中进行注册,就不会进行周期性的请求数据。这样WINCC的执行负荷会减小。

5.如果在一个脚本中要读取的变量已经做为脚本的触发器使用过了,那么读取变量就直接从映像区中读取,而不会再去注册。因为在打开画面时,做为触发器的变量WINCC会自动进行注册,因为这种情况所有的变量一次性注册,效率是最高的。WINCC帮助中特别说明建议使用此种方式。

6.所有采用Upon change方式进行触发的脚本中使用的GetTagXXX函数,相当于1秒钟的循环读取服务。

7.在回调函数中一定要使用加WAIT的函数。

8.GetTagWait方式不进行注册,它只向AS请求一次数据。原理如下图所示:



9.WINCC的映像区的大小应该也是有限制的,注册的变量太多,WINCC的负担也会很重的。所以有时用一用WAIT的函数也是很好的,有时候并不是通讯过载,而是WINCC过载了,我前面说的关闭周期性服务,通讯就正常的情况,可能就是因为WINCC的负担太重了。

以上是我根据WINCC在线帮助和实际经验的理解,具体可以参考WINCC在线帮助,不过这一段是英文的,呵呵,我的英文不是很好,对内容解释的也不是很好!
浏览 (70) | 评论 (0) | 评分(0) | 支持(0) | 反对(0) | 发布人:管理员
将本文加入收藏夹
新闻详情
脚注栏目
|
脚注信息
机电工程网(C) 2015-2020 All Rights Reserved.    联系我们