用WINCC7.0制作下拉菜單例程
劉玉蓉
發(fā)布于2014-11-03 17:17
11
0
標簽:
近用wincc7.0制作下拉菜單,運行后沒有反應,設置字體也沒有變化,用VBS寫的腳本也沒有運行,點擊下拉菜單內(nèi)容也沒有反應,請教.
佳答案
下拉菜單制作參考:
1、請參考Wincc控件中下拉式列表框Combo怎么組態(tài)——
https://www.ad.siemens.com.cn/service/answer/solution.asp?Q_ID=39247&cid=1032
2、請參考如何在 OS 上組態(tài)一個組合框 (combo box),并且能夠自動根據(jù)不同語言自動填充相應的文本?
描述:
例子 1:
您可以象本例中描述的那樣,使用控件 "Siemens STEP 7 S7 ComboBox" 在OS 運行期間動態(tài)得填充。請不要使用控件 "Microsoft Forms 2.0 ComboBox",因為使用這個控件會導致 "pdlrt.exe" 內(nèi)存需求的不斷增長。
警告:
為了在沒有 "SIMATIC Manager" 的 "OS" 上使用 "Siemens STEP 7 S7 ComboBox" 控件,必須在相應的計算機上安裝注冊該控件。您可以在 ES 的路徑 "...SIEMENSCommonS7ACTLDXs7actldx.dll" 上找到相關的 DLL 文件??截愒撐募矫總€ OS 上合適的文件夾下。
如何注冊這些控件的指導可以在幫助 "WinCC Information System > Working with WinCC > Creating process pictures > Working with controls > How to change the registration of a control" 下找到。
例子 2:
該例子展示了如何將在 SIMATIC Manager 中組態(tài)的枚舉 (enumeration) 依據(jù)語言顯示在組合框中。
例1: 動態(tài)填充combo box :
例如,在運行時,您可以將 "Text Library" 中的文本傳送到 combo box 來作為選擇項。
No. 描述
1 在 WinCC 的文本庫中 ("Text Library") 中組態(tài)值 :
按如下圖組態(tài)文本:
Fig. 01
注意:
按照條目 23416727 中介紹的內(nèi)容來定義您自己的 "Text ID",以便不會被 WinCC 占用。
2 在變量管理中組態(tài)文本參考:
為每個在 "文本庫" 中的文本創(chuàng)建一個文本參考并定義相應的文本 ID 作為變量的起始值 (在標簽 "Limits/Reporting" 中)。
名字:"ComboTextRef2000" 類型: "Text reference" 起始值:"2000"
...
名字:"ComboTextRef2006" 類型: "Text reference" 起始值:"2006"
3 在 WinCC 畫面中組態(tài) combo box 和腳本
創(chuàng)建一個類型為:"Siemens STEP 7 S7 ComboBox" 的控件,控件名字是:"Combo1"。
在控件的屬性中,設置 "LinesInList" 的值為 "10"。
在WinCC 畫面中,事件 "Picture Object > Miscellaneous > Open Picture" 中創(chuàng)建如下的 VB 腳本,當畫面被調(diào)用的時候填充combo box 。
Fig. 02
Sub OnOpen()
Const LINECOUNT = 7
Dim objComboBox
Dim strComboList
Dim count
Set objComboBox = ScreenItems("Combo1")
objComboBox.Clear()
For count = 0 To LINECOUNT-1
strComboList = HMIRuntime.Tags("ComboTextRef"&count+2000).Read
objComboBox.AddItem (strComboList)
Next
End Sub
4 評估 combo box 的值:
當一個畫面被選擇后,相應的文本會從文本參考中讀出并寫到組合框中作為選則項。為了將組合框中所選擇的值寫到另外一個變量,你可以使用組合框的事件 "S7FlatComboBox > Object Events > Click" 并使用如下的 VB 腳本:
Sub Click(Byval Item)
Dim objVal
Set objVal = HMIRuntime.Tags("SelectedValue")
objVal.Write Item.Text
End Sub
5 結(jié)果:
Fig. 03
現(xiàn)在您可以依據(jù)當前所選擇的語言來得到 combo box 中不同的選項列表。
例 2: 將SIMATIC Manager 中組態(tài)的枚舉 (enumeration) 傳送到組合框:
要求:
該例子建立在條目 27147567 的基礎之上:首先,依照這個條目的指導第 4 步。
No. 描述:
1 在全局腳本中創(chuàng)建 VBS 工程模塊:
在 "Global Script VBS" 編輯器中您創(chuàng)建一個新的項目塊,例如 "Enumerations.bmo" 并輸入如下的腳本。
您可以簡單地將該腳本下載下來。
VBS_Fill_combobox.zip ( 689 bytes )
( 18 KB )
Fig. 04
2 在 WinCC 畫面組態(tài)combo boxes 和腳本
創(chuàng)建兩個 "Siemens STEP 7 S7 ComboBox" 類型的對象,名字為:"Combo1" 和 "Combo2"。
在您放入 Combo boxes 的 WinCC 畫面事件 "Picture Object > Miscellaneous > Open Picture" 中,創(chuàng)建如下的 VB腳本:
Sub OnOpen()
Call Fill_combobox ("Combo1", "CFC(1)/TESTENUM.SOURCE")
Call Fill_combobox ("Combo2", "CFC(1)/TESTENUM.DEST")
End Sub
在 combo box 的事件 "S7FlatComboBox > Object Events > Click" 中,您組態(tài)如下的 VB 腳本來將 combo box 中的選擇項寫回到控制器中:
Sub Click(Byval Item)
Const cfcName = "CFC(1)/TESTENUM.SOURCE"
Dim tagCFC
Set tagCFC = HMIRuntime.Tags(cfcName)
tagCFC.Value = Item.ListIndex + 100
tagCFC.Write
End Sub
3 結(jié)果:
現(xiàn)在你可以通過組合框來選擇塊的參數(shù)。
Fig. 05
Fig. 06
條目號:28921535 日期:2008-05-28
https://support.automation.siemens.com/CN/llisapi.dll?func=cslib.csinfo&lang=zh&siteid=cseus&objid=28921535
另外,還可以參考——
https://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=39190&cid=1032
https://www.ad.siemens.com.cn/service/answer/solution.asp?Q_id=45200&cid=1032