RS232重複傳輸問題

小弟目前有一棘手的問題,想請教各位先進們。

小弟已寫好RS232 communication.vi程式,然而在程式規劃想重複進行傳輸卻無法正確執行,當程式開始執行時,按第一下Boolean3時還有正常字串傳輸,但按第二下則傳輸的值會發生錯誤(錯誤字串: 00 00 78 00 78 00 00 00 78 00 78 00);而重啟程式,按Boolean按鈕其傳輸的數值卻都直接顯示( 錯誤字串:00 00 78 00 78 00 00 00 78 00 78 00 00 00 78 00 78 00 00 00 78 00 78 00),下圖為小弟的程式所撰寫的程式,再麻煩各位先進門幫忙解惑。

(註:以測試過RS232基本傳輸功能,可以正常執行)

test1060216矩陣傳輸.vi

單從LabVIEW程式面來看

你的VISA Open與VISA Close在階層上有不對稱的情況,Open似乎在迴圈外,而Close被你放在While迴圈內。
更嚴重奇怪的問題是,VISA Close被放在For Loop裡面,這樣你只會在第一圈有物件可以VISA Close,第二圈之後就沒有VISA可以關了

你可能需要先確認VISA Open與VISA Close使用方式這個部分,然後再進一步上來問。我也不是這方面的專長,只有辦法回覆到這裡,其他後續再麻煩其他高手。


MingYen42786.4706712963

先說錯誤:

1. 程式啟動、迴圈外已經做好initialize, 按下boolean3 , 寫指令, 關閉comport.
2. 你又按了一次boolean3, 這時候該comport已經被關閉、你要寫值就會出現錯誤。

如同樓上大大所說,為了效率通常讀寫迴圈內不會放入initialize跟close.
要咩放迴圈外、不然就寫case做state machine架構作切換 
ex: 
狀態1 initialize  
狀態2. write command  
狀態3.close。