intouch改變物件透明度
如圖,做一個紅色物件,在加熱器輸出越大時,就越紅:
新建一個物件
畫一個紅色方框,下邊元素名字改為red
可以看到red元素的Transparency的屬性是0=不透明,100=全透明。
接下來在空白處右鍵自建一個屬性,讓這個元件可以對外作互動
新建一個gettaq屬性,默認值---,注意是---不是其他數字,因為要考慮到這個物件還會在其他地方用到,使用---就是告知系統,我這個塊在別的地方這個屬性是可以變的,可以自定的。
數據類型透明度是0-100,所以使用integer即可
物件屬性接口做好了,接著就是腳本了,如果沒有腳本
紅框red的透明度並不會改變
gettaq那個變量就算給了,他也只是這個物件裡的一個物件變量而以,於是我們就要用到腳本功能,將屬性應用到red的透明度裡
腳本很簡單只需一行
red.Transparency=gettag; //把gettaq的值給到red元素的透明度
但要怎麼觸發腳本要注意:
on show:
物件所在表單被加載時觸發一次(本例不可選用這個,因為加熱器的輸出值是實時在變化的,紅框也必須實時變化)
while showing:
只要表單在運作,本物件就一直觸發腳本按設定的時間循環值行(本例選用這個,但更新時間會不會影響效能不知道,會就設長一點)
on hide:
與on how相反,下沿觸發,用處未知。
到此ok了,把物件拉出來用,雙擊指定gettaq屬性指向加熱器的輸出點數值的tag地址就可以了。
這個自定義物件的用法跟AUTOCAD的自建塊用法很像,把N個圖型集中成一個塊,建立屬性後,就可以一次性建塊,以後直接調用並控制即可。