問題:叢集陣列之中的叢集又包含陣列,且叢集構成元件類型都不同時,要如何去改變元件屬性?


這一題看起來好像很複雜,但不管是陣列包含叢集或是叢集包含陣列,只要依照構成陣列和叢集的順序由外而內分開處理,一樣可以完成

 

 


範例程式:


在程式面板放一個叢集陣列,叢集包含(從索引值0開始排列):數值、文字、LED陣列、LED等4個元件


要改變那4個元件的顏色屬性,所以放4個Color Box元件

20131119-02  

 

 


程式部分:依照由外而內的順序


1.首先在程式區對叢集陣列按滑鼠右鍵,從選單中選Create的Refererce那一項產生元件

20131119-03  

 

2.使用Property Node元件連接,設定為Array Element的Refererce那一項

20131119-04  


3.使用To More Specific Class元件連接,在上面taeget class接腳設定為Cluster(這裡要設定為和陣列內的資料格式相同),因為接下來要調用叢集內的屬性

20131119-05  


4.使用Property Node元件連接,設定為All Objects[]那一項

20131119-06  


5.All Objects[]所輸出的叢集內元件順序陣列是反過來排的,用Reverse 1D Array元件把順序反向轉正


6.使用Index Array指定要改變屬性的元件


7.先指定索引值0的數值元件,要改變的是數字顏色。使用To More Specific Class元件連接,在上面taeget class接腳設定為Digital

20131119-07  


8.再使用Property Node元件連接,設定為TextColor那一項,改成輸入狀態

20131119-08  


9.連上Color Box元件完成這段程式

20131119-09  


10.再來指定索引值1的文字元件,要改變的是文字顏色。使用To More Specific Class元件連接,在上面taeget class接腳設定為String

20131119-10  


11.使用Property Node元件連接,設定為TextColor那一項,改成輸入狀態

20131119-11  


12.連上Color Box元件完成這段程式

20131119-12  


13.再來指定索引值2的LED陣列,要改變的是LED顏色。使用To More Specific Class元件連接,在上面taeget class接腳設定為Array

20131119-13  


14.再使用Property Node元件連接,設定為Array Element的Refererce那一項


15.再使用To More Specific Class元件連接,在上面taeget class接腳設定為Boolean


16.再使用Property Node元件連接,設定為Colors[4]那一項,改成輸入狀態


17.連上Color Box元件完成這段程式

20131119-14  


18.最後指定索引值3的LED元件,要改變的是LED顏色。使用To More Specific Class元件連接,在上面taeget class接腳設定為Boolean


19.使用Property Node元件連接,設定為Colors[4]那一項,改成輸入狀態


20.連上Color Box元件完成這段程式

20131119-15  


完成的全部程式碼

20131119-16  

 


執行的結果

20131119-17  

,
創作者介紹

LabVIEW & PLC還未出師的小工程師部落格

未出師的小工程師 發表在 痞客邦 PIXNET 留言(0) 人氣()