RS232 Communication_自動觸發

http://labviewpro.net/forum_post_detail.php?post=2427&fid=1

目前軟體遇到一些貧頸,我將問題發問到上述網址,請大家幫幫忙!
pfrhsd951234640813.8532060185

你的主vi可以使用state machine的方式,這樣subvi就可以不用event的方式

PS.可以編輯主題為"問題發問"

ancle40813.7752430556

你是說將RS232 communication.vi的Even Structure改為state machine?

還是改Call RS232.vi?

你的主vi指的當然是Call RS-232,subvi指的是RS232 communication.vi,另外subvi裡的VISA configure和VISA Close建議放到主vi的迴圈外

感謝你的建議,明天試試結果。

http://labviewpro.net/forum_post_detail.php?fid=1&post=2427

果然是使用State Machine Design Patterns
我想Write可以,Read應該也是一樣的。

根據實測結果,RS232可下可讀,控制還算正常。

但以目前的程式架構,指令下下去需等待250msec,感覺有點慢,不知還有甚麼方式可縮短測試時間?

[QUOTE=pfrhsd9512346]

根據實測結果,RS232可下可讀,控制還算正常。

但以目前的程式架構,指令下下去需等待250msec,感覺有點慢,不知還有甚麼方式可縮短測試時間?

[/QUOTE]

可以把你修改後的架構和程式上傳嗎?

UI-RS232.zip

<span =“apple-style-span” style="color: rgb(68, 68, 68); font-size: 12px; line-height: normal; : rgb(255, 253, 244); ">

其實光是下command就要250msec,而且在Running.vi下執行此程式,還需要給10msec的時間,才能確保硬體正常動作(總共260msec)。

這個硬體是同事做的一個Relay切換機箱,設計使用RS232傳輸,baud rate為9600,經他測試過確定從電腦下command給硬體,讓Relay切換的時間最快不超過0.1秒(<100msec),差別在他用C寫一個簡單的自動控制程式,而我是用LabVIEW寫。

<span =“apple-style-span” style="color: rgb(68, 68, 68); font-size: 12px; line-height: normal; ">另外我想就算LabVIEW不會比C快,至少Relay切換時間要低於200msec吧,最好低於150msec更佳,但依定要確保能夠正常動作啊!

在程式中就限制250ms了(圖無法上傳?????????)

因為限制在250msec硬體才會正常動作,如果降為200msec或更低,有時候硬體會不理我啊!

後來想到利用While Loop的Shift Register功能,將反應時間從260msec降到220msec。

希望能快到剩150msec內。

你原來的程式不知道WRITE或WAIT 250ms會先執行?

![](upload://v7cRvYBElyMEjuC3u3eNbBMpN38.jpeg)

建議改成以下方式,這樣可以測試將250ms調低之後再試看看

![](upload://iEablGLrd6gBGlPXOFxsgOT41Ol.jpeg)

 

3.這樣wait 10ms也可省略

![](upload://vmWtmSZonJnR917Yj3qL6Vk9nBL.jpeg)

我想我知道原因了,在RS232 communication裡有一個叫"VISA Clear",本來是想說可清除舊有資料,但這功能會拖累RS232的傳輸速度。

所以後來我將此功能拿掉,拿掉後Delay Time也用不著加了。

感謝各位的建議及幫助!!!