vbs 等于_西门子触摸屏VBS编程quot;陷阱quot;之VBS不支持多线程
點擊上方「藍字」關注我們
有人問能不能通過VBS來做一個死循環(huán)來連續(xù)的監(jiān)控某個值的狀態(tài),然后執(zhí)行一些操作。原則上是不能那么做的,除非你打算程序中不使用其他的用戶腳本了。在打算使用VBS之前一定注意以下事項帶來的影響:
西門子觸摸屏中的VBS是單線程操作的,如果沒有執(zhí)行完成會導致其他腳本無法執(zhí)行。
測試案例
我們新建一個用戶腳本Cycle,做一個循環(huán)程序,腳本啟動時初始化tag1為1,當tag2不等于3時會一直循環(huán)將tag1賦值為2,如果tag2為3,則將tag1也賦值為3。腳本如下:
我們新建一個按鈕,命名為“循環(huán)”,先執(zhí)行Cycle腳本,VBS腳本執(zhí)行完成后再執(zhí)行切換畫面的系統(tǒng)函數。
我們需要驗證三個事:
a.當腳本在死循環(huán)階段,能切換畫面嗎?
b.切換畫面后,腳本還在執(zhí)行嗎?
c.當腳本在死循環(huán)階段,還能執(zhí)行其他VBS腳本嗎?
3.我們創(chuàng)建兩個按鈕3和4,一個是通過系統(tǒng)函數來切換畫面,另一個是通過用戶腳本來切換畫面。再建兩個按鈕2和5,控制tag2加減1,以此來控制循環(huán)腳本的退出。
按鈕3:用戶腳本切換畫面
按鈕4:用戶腳本切換畫面
用戶腳本Change中的內容:
'注意:要啟動腳本,請按下 <Ctrl><空格>,然后就可以看到各種不同函數。'通過使用系統(tǒng)函數或 WinCC flexible 對象模型來編寫腳本。您可以通過'HMI 運行系統(tǒng)對象很容易地訪問系統(tǒng)。挑選對象引用的一個很便利的'方式是按下 <Alt><右箭頭>。通過使用編程語言 VBScript 的基本功能部件'來設計復雜的腳本,并可以直接通過名稱,例如 tag = 5,來訪問變量。ActivateScreen "畫面_2",0按鈕2:使tag2加1
按鈕5:使tag2減1
結果
事件中的用戶自定義腳本和系統(tǒng)函數是順序執(zhí)行的,如圖1號的腳本不執(zhí)行完,2號是不會執(zhí)行的。
事件中腳本的死循環(huán)只會導致其他腳本無法執(zhí)行,但是不會禁止其他控件中的事件觸發(fā)的系統(tǒng)函數的正常執(zhí)行。
a.當腳本在死循環(huán)階段,能切換畫面嗎?Y
b.切換畫面后,腳本還在執(zhí)行嗎?Y
c.當腳本在死循環(huán)階段,還能執(zhí)行其他VBS腳本嗎?N
測試動畫
由于知識和能力有限,內容上有不周或錯誤的地方還請指正交流。
如果可以的話,請加個關注和推薦給您認識的同行朋友吧,感謝!
添加好友
自動邀請工控交流群
往期推薦
西門子觸摸屏如何在運行時給畫面換背景色?
如何使用西門子觸摸屏做一個彈窗?
西門子觸摸屏變量的三種更新方式
西門子觸摸屏VNC遠程訪問
如何升級替換西門子無線觸摸屏Mobile Panel 277?
總結
以上是生活随笔為你收集整理的vbs 等于_西门子触摸屏VBS编程quot;陷阱quot;之VBS不支持多线程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python简单目标检测代码_Pytho
- 下一篇: mc有什么红石机器人_mc:作为一个mc