類比經8051轉RS232 只擷取一次或固定秒數擷取一次

此程式為8051連續擷取類比電壓值轉成數位資料,請教如何在LV 寫成可以單一擷取一次資料,或設定秒數擷取一次, (是判斷有資料進來即關閉,如果是,這邊怎麼做)。

另外想問問在連續擷取時在waveform感覺會有延遲產生,比如說關掉後更改電壓輸入在啟動有時候會延遲幾秒後才會出現新的更改電壓值。

rs232-8051-1.vi

"在連續擷取時在waveform感覺會有延遲產生,比如說關掉後更改電壓輸入在啟動有時候會延遲幾秒後才會出現新的更改電壓值。",我認為那不是延遲的問題,例如8051每10ms送1筆資料,你停止了LV程式5秒重新開啟,VISA上已有500筆資料,LV每1ms擷取要花0.5秒,這500ms又有50筆資料,所以要與8051同步大約要0.56秒左右.如果你停很久或8051每1ms送1筆資料,就會幾秒後才同步.

你可加個"VISA Flush I/O Buffer"試試看是否有改善你說的延遲問題.

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

謝謝DONWANG 大 ,如果在短時間內能取得的信號很類似,但是我不想要一次擷取那麼多,跳著擷取也OK。  不知道該怎麼修改,也希望能短時間內及時反應出所輸入的改變電壓值。

下面方式每500ms擷取一最新植

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

謝謝DO大,果然只要把BUFFER清乾淨再從新抓就好,詳細去讀51裡面程式發覺她送出一表大約不到1ms 導致我BUFFER累績太多東西。 之前沒注意到清除動作才會覺得延遲好久…非常感謝!!

建議使用生產者-消費者模式,這樣能夠及時反應電壓值

請問高手 RS485 MODBUS溫度訊號擷取應該如何撰寫才能讀取溫度直呢?

我用VB可以但LABVIEW還沒成功

BOUND RATE9600

溫度設Address 001

 

<span =“apple-style-span” style="font-size: 16px; line-height: 24px; ">>>建議使用生產者-消費者模式,這樣能夠及時反應電壓值


這句真是經典。 真厲害.  :D