文档库

最新最全的文档下载
当前位置:文档库 > GetTag和SetTag函数是如何工作的?

GetTag和SetTag函数是如何工作的?

各种GetTag和SetTag函数之间有什么差别?

解答:

在WinCC的全局脚本里有几种函数专门是用来提取(GetTag 函数)和设置函数值(SetTag 函数)的。这里的列表给出了不同的函数及它们的功能:

SetTag 函数:

SetTagxxx

此函数给作业赋予一个值去写,然后立即返回到调用函数。它并不等到值实际写好后再返回。

该调用的明显特点是:

?此调用比较快。

?调用函数并不清楚这个值实际是在何时写的。

?该函数也不提供写作业状态的有关信息。

SetTagxxxWait

此函数给作业赋予一个值去写,但是只有当值已经写好后才返回到调用函数。

该调用的明显特点是:

?该调用慢于SetTagxxx。其实际速度取决于通道和PLC的其它因素。

?调用后值已经实际写好。

?该函数不提供写作业状态的有关信息。

SetTagxxxState

此函数具有SetTagxxx相同的特点。另外,SetTagxxxState函数还提供写作业的状态的信息。由于状态永远是内部提供的,故相比于SetTagxxx性能上没有什么差别。

SetTagxxxStateWait

此函数具有与SetTagxxxWait相同的特点。但是SetTagxxxStateWait函数还提供了写作业的状态信息。由于状态永远是内部提供的,故相比于SetTagxxxWait性能上没有什么差别。SetTagxxxStateWait与SetTagxxxState这两个函数间的差别与SetTagxxxWait与SetTagxxx这两个函数间的差别相对应。注意:当写过程结束时只能给出某些状态。

SetTagMultiWait

此函数的特点与SetTagxxxWait相同。但是它也提供在一个作业里发出多个写作业的选件。GetTag 函数:

GetTagxxx

当此函数被调用时变量被注册下来。然后变量受到PLC的周期性请求。注册的周期取决于触发器(参看下面的叙述)。使用GetTagxxx调用,提供了WinCC中的可用值。取消了对图象的选择后,变量被再次注消。

如果变量在一个全局脚本动作里被请求,那么它将对WinCC的整个运行系统保持注册状态。

在回调函数里你必须使用相应的GetTagxxxWait函数。

?变量触发器的动作特点

在规定的监控时间里选择图像那一刻,变量触发器里包含的所有变量已经注册。如果触发器里包含了被请求的变量,那么它的值已经可用并直接传送到调用。

注意:

如果被请求的一个变量不包含在变量触发器中,则其动作将与标准触发器一样。

?标准变量触发器的动作特点

第一次调用时,变量在半个周期时间里被注册。其值对于后续的每个调用都可用。

?事件触发动作的特点

对于第一次调用,“当被修改后”变量被注册。对于过程变量,其计时过程的管理取决于通道(缺省为1秒)。

注意:

如果在鼠标单击事件背后由函数GetTagXXX请求一个值,那么变量被注册,而且该变量自此之后被PLC周期性的请求。这增加了基本负荷。因此必须考虑是否用GetTagXXXWait 请求值更好(只有一次高通讯负荷),也可因之避免注册(增加基本负荷)。

GetTagxxxWait

变量不注册。值仅仅被PLC请求一次。

此调用有下述特点:

?此调用相比与GetTagxxx用的时间要长。其延续时间由通道和PLC决定。

?当前值取自PLC。

?该函数不提供变量状态的任何信息。

GetTagxxxState

此函数具有与GetTagxxx相同的特点。但是GetTagxxxState 函数另外还提供变量状态的信息。由于状态永远是内部提供的,故相比于GetTagxxx性能上没有什么差别。

GetTagxxxStateWait

此函数具有与GetTagxxxWait相同的特点。但是GetTagxxxStateWait函数另外还提供变量状态的信息。由于状态永远是内部提供的,故相比于GetTagxxxWait性能上没有什么差别。GetTagxxxStateWait与GetTagxxxState函数的差别对应于GetTagxxxWait和GetTagxxx函数将的差别。注意,由于过程变量的值是从PLC读得,它的状态要比GetTagxxxState给出的状态要更新一些。

GetTagMultiWait

此函数具有与GetTagxxxWait相同的特点。但是它也提供在一个作业里请求多个变量的选件。