对于全局脚本中使用的变量,至所于我觉得使用wait函数会更好些,是因为如果不使用Wait函数,在整个WINCC的运行期间都都要占用周期性服务资源而S7300的周期性资源只有4个,如果被全局脚本终始占用了一到两个,我觉得浪费很大,对于多台上位机运行的时候,这样势必使得使得周期性资源被占用太多,通讯效率有很大的降低再说使用Wait功能只要执行时间不超过脚本的触发周期,也没有问题,今天小编就来聊一聊关于wincc如何指定默认周期?接下来我们就一起去研究一下吧!

wincc如何指定默认周期(WinCC与S7-300400)

wincc如何指定默认周期

对于全局脚本中使用的变量,至所于我觉得使用wait函数会更好些,是因为如果不使用Wait函数,在整个WINCC的运行期间都都要占用周期性服务资源。而S7300的周期性资源只有4个,如果被全局脚本终始占用了一到两个,我觉得浪费很大,对于多台上位机运行的时候,这样势必使得使得周期性资源被占用太多,通讯效率有很大的降低。再说使用Wait功能只要执行时间不超过脚本的触发周期,也没有问题。

呵呵,WINCC映像区中注册的变量越多,WINCC执行的负荷应该就越重,我觉得有时候不是通讯问题造成WINCC速度慢,因为这点通讯量对于以太网或者DP来说根本不是问题。

WinCC的 C 和 VBS 脚本的使用非常灵活,可以大大加强WinCC的各种功能,但若使用不当,确实会产生一些通讯问题,如万版主所说。

有些不得不用脚本情况下,要谨慎使用,并多加注意即可:

首先,要了解 C 和VB 脚本的“排队”执行和堵塞的特性。但好在 C 和 VB脚本又有各自不同的“队列”,一定程度上实现了“多线程”的效果,所以可以有意识的将不同的任务分别放在C 或 VB脚本中执行,比如:一个按钮的VBS执行数据库读写,另一个按钮C脚本执行UI处理,当VBS数据库读写任务较重时,而按钮的C脚本通常不会被其堵塞。

其次,要了解常用的GetTag系列函数的执行特性,具体如下:

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

解答:

在WinCC的全局脚本里有几种函数专门是用来提取(GetTag 函数)和设置函数值(SetTag 函数)的。

这里的列表给出了不同的函数及它们的功能:

SetTag 函数:

SetTagxxx

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

该调用的明显特点是:

SetTagxxxWait

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

该调用的明显特点是:

SetTagxxxState

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

SetTagxxxStateWait

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

SetTagxxxStateWait与SetTagxxxState这两个函数间的差别与 SetTagxxxWait与SetTagxxx这两个函数间的差别相对应。注意:当写过程结束时只能给出某些状态。

SetTagMultiWait

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

GetTag 函数:

GetTagxxx

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

注意:

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

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

GetTagxxxWait

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

此调用有下述特点:

GetTagxxxState

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

GetTagxxxStateWait

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

GetTagxxxStateWait与 GetTagxxxState函数的差别对应于GetTagxxxWait和GetTagxxx函数将的差别。注意,由于过程变量的值是从PLC读得,它的状态要比GetTagxxxState给出的状态要更新一些。

GetTagMultiWait

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

另外,WinCC还提供了脚本中高效数据交换(批量读写)的函数和方法:GetTagMultiWait/SetTagMultiWait(VBS中的TagSet) 和 原始数据类型 RawData。

其中GetTagMultiWait是同步方式,可以一次读取上百个不同类型的WinCC变量(不是数组),而所花费的时间却和GetTagWait函数调用一次的时间差别不明显,优化效果极为显著。

而WinCC的原始数据类型RawData大家都比较熟悉了,以数组方式和PLC交换数据,优点:数据量大,缺点:无法直接在画面等处直接使用,需要脚本拆解。

,