siemens x
HMI

紫金橋組態(tài)軟件人機界面窗口的使用方法

2025China.cn   2013年10月08日

  引言:本文主要介紹了紫金橋組態(tài)軟件的人機畫面中窗口的常用使用方法。

 

  窗口是紫金橋組態(tài)軟件的人機畫面中非常重要的組成部分,是工程數(shù)據(jù)在計算機上與人互動的主要的手段之一。

  在一個工程中,每個畫面的名字是唯一的,并作為標(biāo)識被腳本調(diào)用。畫面以文件的形式存放在工程中doc文件夾下,每個畫面對應(yīng)一個與其同名并以“drw”為擴展名的文件,如窗口“DRAW1”對應(yīng)為“”文件。該文件存儲了該窗口的大部分內(nèi)容,一般來講,該窗口文件拷貝到其他工程下的doc文件夾下就可以直接進入組態(tài)使用。只有當(dāng)畫面引用了圖片或圖形模板時,則需要將相應(yīng)的文件同時拷貝。

  窗口按類型可分為:覆蓋窗口、彈出式窗口和頂層窗口。

  窗口按運行時的打開方式可分為:普通打開、被動隱藏打開、子窗口、模態(tài)窗口、多實例窗口。本文主要講述這幾種打開方式的使用。

  1. 普通打開

  普通模式打開就是使用窗口函數(shù)Open()或者在中手動打開窗口,這時需要注意的是,如果窗口具有“打開其他窗口時自動關(guān)閉”屬性,那么同類型的其他窗口會被關(guān)閉,只留下當(dāng)前窗口。

  2. 被動隱藏打開

  當(dāng)窗口中元素(如:窗口函數(shù)、窗口變量、窗口對象等)被窗口外環(huán)境(如:全局腳本、其他窗口內(nèi)腳本等)引用時,該窗口會被動打開,并且隱藏。這是因為窗口元素的存在是以窗口打開為前提的,窗口本身是窗口中所有元素的載體,因此窗口外環(huán)境引用本窗口元素時,系統(tǒng)必須打開本窗口才能使其生效。這種方式打開的窗口除以隱藏方式打開外,其他特性與普通方式打開一樣。

  需要注意的是,即使是被動隱藏打開,該窗口的窗口進入腳本、周期腳本、退出腳本以及窗口內(nèi)其他對象的腳本或者動畫鏈接等所有動作仍會生效。

  3. 子窗口

  子窗口打開是指以窗口函數(shù)OpenChild()方式打開窗口。例如:

  #DRAW1. OpenChild(“DRAW2”);

  這句腳本的作用是將窗口DRAW2以窗口DRAW1的子窗口方式打開,也就是說,窗口DRAW1是窗口DRAW2的父窗口。那么這兩個窗口間有著怎樣的關(guān)系呢?

  它們間的關(guān)系取決于子窗口的類型。如果窗口DRAW2為覆蓋式窗口,那么窗口DRAW2的存在依賴于其父窗口DRAW1,簡單地說就是如果窗口DRAW1被關(guān)閉了,那么窗口DRAW2會自動關(guān)閉。而且,窗口DRAW2只能顯示在窗口DRAW1的范圍內(nèi),超出該范圍的部分不顯示,看上去就像窗口DRAW1中的一個組件一樣。再者,如果父窗口被移動,則子窗口隨之移動。如果將窗口DRAW2的標(biāo)題欄和系統(tǒng)菜單去掉,那么窗口DRAW2則被完全嵌入其父窗口中,不能使用鼠標(biāo)移動。

  下表列出了不同類型子窗口與父窗口間的關(guān)系。

  4. 模態(tài)窗口

  模態(tài)窗口就是以窗口函數(shù)DoModal()的方式打開的窗口。不同類型的窗口都能以模態(tài)窗口的方式打開。并且,模態(tài)窗口打開以后,整個程序的焦點落在該窗口上,只有當(dāng)該窗口被關(guān)閉后焦點才能釋放。執(zhí)行窗口函數(shù)EndModal()后,等同于關(guān)閉該窗口,該窗口內(nèi)所有數(shù)據(jù)均被銷毀。該種窗口的使用在紫金橋聯(lián)機幫助中有詳細(xì)講解,不再贅述。

  5. 多實例窗口

  多實例窗口是以窗口函數(shù)New()的方式打開的窗口。函數(shù)New()的作用是以多實例的方式新建一個窗口,并且可以同時創(chuàng)建多個窗口實例。例如:

  int nWinID1 = #(1);

  int nWinID2 = #(1);

  這兩句腳本的功能是,以窗口DRAW1為模具分別創(chuàng)建兩個實例窗口并且打開,新創(chuàng)建的窗口實例句柄分別返回給整型變量nWinID1和nWinID2。這兩個窗口可以看做是窗口DRAW1的兩個副本,相當(dāng)于復(fù)制了窗口DRAW1的所有內(nèi)容,并且各自獨立運行,互不干擾。這樣做的目的是為了在運行時滿足同一種算法實現(xiàn)存儲不同中間結(jié)果的需要。當(dāng)多個實例存在時,可以通過窗口函數(shù)Use(int nWinID)在同一個窗口的不同實例間切換,使用該函數(shù)后,會將指定實例句柄的實例窗口設(shè)置為當(dāng)前實例窗口。

  注意,在運行時,同一時刻只有一個當(dāng)前實例窗口。在不使用函數(shù)Use()時,最后一個生成的實例窗口為當(dāng)前實例窗口,因鼠標(biāo)點擊等原因而獲取焦點的實例窗口也會成為當(dāng)前實例窗口。

  在多實例窗口存在的情況下,腳本中所有針對該窗口名字的操作或者引用均生效于當(dāng)前實例窗口,與非當(dāng)前實例窗口無關(guān)。

  另外,可以使用窗口函數(shù)NewChild()以子窗口的方式新建多實例窗口。這樣打開的窗口除具有多實例窗口的特征外還具有子窗口的特征。

(轉(zhuǎn)載)

標(biāo)簽:紫金橋 組態(tài)軟件 人機界面 模態(tài)窗口 多實例窗口 我要反饋 
2024世界人工智能大會專題
即刻點擊并下載ABB資料,好禮贏不停~
優(yōu)傲機器人下載中心
西克
2024全景工博會
專題報道