文章摘要
讲解画面中脚本的队列,应用脚本实现用户登录/注销 获取对象属性,WinCC的事件脚本(例如按钮按下触发的脚本)、标准函数、内部函数以及项目函数(用户自定义函数)等接口参数的说明。
文章内容
![图片[1]-SIMATC WinCC V7.5 画面中脚本的队列](https://xtime.net.cn/wp-content/uploads/2024/10/image-40.png)
![图片[2]-SIMATC WinCC V7.5 画面中脚本的队列](https://xtime.net.cn/wp-content/uploads/2024/10/image-41.png)
![图片[3]-SIMATC WinCC V7.5 画面中脚本的队列](https://xtime.net.cn/wp-content/uploads/2024/10/image-42.png)
同一队列里的脚本需要排队
![图片[4]-SIMATC WinCC V7.5 画面中脚本的队列](https://xtime.net.cn/wp-content/uploads/2024/10/image-43.png)
画面1中按钮按下的VBS脚本如下:
Dim tag5,I
Set tag5 = HMIRuntime.Tags("tag5")
For I=1 To 9000 “循环脚本大概需要花费10s
tag5.Write tags.Value +1
Next
上面脚本大概需要105才能执行完成。(说明,此处脚本没有实际意义,只是为了仿真长时间执行的脚本。)
主画面上两个画面切换按钮的VBS脚本:
Screenltems("画面窗口1").PictureName=“画面1” ’在画面窗口中显示画面1
Screenltems("画面窗口1").PictureName=“画面2” '在画面窗口中显示画面2
切换到画面1并点击画面1上的按钮,如果在脚本执行完成之前点击切换画面2的按钮,画面并不会马上切换,而是要等到循环脚本执行完成后才能执行画面切换脚本。
总结:所有WinCC画面上的事件触发的VBS脚本都在一个队列内,按照先后顺序加入队列,队列按照先进先执行的原则来处理脚本。
同样,把画面中按钮的脚本改成C脚本:
int i;
while (i<9000)
{
SetTagDWord("tag5",i+1); //Return-Type: BOOL
j++:
}
把切换画面按钮改成C脚本:
SetPictureName(lpszPictureName,"画面窗口1","画面1");
SetPictureName(lpszPictureName,"画面窗口1","画面2");
执行情况和VBS相同。同样说明所有WinCc画面上的事件触发的C脚本也都在一个队列内。
画面中的VBS和C脚本是不同的队列
在上面的例子中画面1按钮脚本使用C脚本:
int i;
while (i<9000)
{
SetTagDWord("tag5",i+1); //Retumn-Type: BOOL
i++
}
主画面中切换画面的按钮使用VBS脚本:
Screenltems("画面窗囗1").PictureName="画面1” “在画面窗口中显示画面1
Screenltems("画面窗囗1").PictureName="画面2" “在画面窗口中显示画面2
则可以在C循环脚本执行过程中正常通过VBS切换画面:
同样,画面1按钮脚本使用VBS脚本:
Dim tag5,I
Set tag5=HMIRuntime.Tags("tag5")
For I=1 To 9000 “循环脚本大概需要花费10:
tag5.Write tags.Value +1
Next
切换画面使用C脚本:
SetPictureName(lpszPictureName,"画面窗口1","画面1");
SetPictureName(lpszPictureName,"画面窗口1","画面2”):
也可以在VBS循环脚本执行过程中正常通过C切换画面。
总结:画面中的事件触发的VBS脚本和C脚本是在不同的队列中,互不受影响。
事件触发和周期执行脚本在不同的队列
接着上面的例子,画面切换按钮还是使用VBS脚本,但把画面1上的循环脚本放到按钮的动态属性脚本中,如下图所示。
![图片[5]-SIMATC WinCC V7.5 画面中脚本的队列](https://xtime.net.cn/wp-content/uploads/2024/10/image-45.png)
同时,脚本触发器设为10s,如下图所示。
![图片[6]-SIMATC WinCC V7.5 画面中脚本的队列](https://xtime.net.cn/wp-content/uploads/2024/10/image-46.png)
此时在VBS循环脚本执行过程中,画面切换按钮同样可以通过VBS脚本来切换画面。
总结,WinCC画面中的事件触发的脚本和周期性触发的脚本是在不同的脚本队列。
暂无评论内容