LabVIEW上位機與串列埠通訊

2021-06-22 21:57:40 字數 1009 閱讀 3859

大一的時候,學校開了門公共選修課,叫labview程式設計,當時的我當然還不知道labview是啥東東,但還是選了。上課的老師是機械學院的乙個副教授,他給我們展示了好幾個用labview做的專案,譬如油箱監控上位機等,已經不太記得了。後來隨著學習微控制器、arm等的串列埠操作,有時候乙個漂亮的上位機(尤其是能顯示波形的上位機)在專案中給使用者展示非常的有用。過了這麼多年,雖然曾經也用labview寫過簡單的溫度監控上位機,但這次再拿起labview又好像從頭開始一樣,語法幾已忘記殆盡!

因為資料不算複雜,所以定義簡單下位機幀格式:

幀頭(0xaa) 型別位元組 資料低8位 資料高8位 保留位元組1 保留位元組2 校驗位元組
如果要傳送的資料比較多/複雜,則可以參考modulebus協議!

主要功能包括:

上面雖然簡單,但卻是功能的最主要部分,包括幀頭查詢和錯幀處理的程式。錯幀傳送的情況是:比如從串列埠中獨到的幀並不是從幀頭開始而是幀中間開始,如

0x12(資料) 0x00 0x00 0x00 0xaa(幀頭) 0x00
其前面一幀可能是這樣:

... 0xaa(幀頭) 0x01(型別) 0x01(資料)
這樣,按查詢幀頭的方法,資料0x12就會丟失,實際資料按理應該是0x02*256+0x01,錯幀處理就是將上一幀尾部不足一幀的部分加到下一幀中,這樣下一幀就變成了:

0xaa(幀頭) 0x01(型別) 0x01(資料) 0x12(資料) 0x00 0x00 0x00 0xaa(幀頭) 0x00
判斷型別過程很簡單,使用switch結構就行了(labview中就是條件結構同時實現了if和switch),程式設計時就是注意必須設定預設分支就行!

檔案儲存我使用了資料表,因為它確實簡單,這裡的亮點是增加了按時間儲存的功能,相當於將時間字串加入到檔名中,這樣便於後期對採集的資料進行查詢,不至於混亂。

波形回放就是將儲存在資料表中的程式重新顯示一遍,比較簡單!

僅供研究使用,謝謝!

Labview上位機串列埠通訊 讀寫

使用visa進行串列埠通訊 2 讀取部分 首先依據協議進行包頭的識別,再從後續的位元組裡讀取位元組進行相應的判斷和顯示儲存,顯示儲存部分需要將接收的字串進行轉換 操作讀取的單個位元組 使用乙個for迴圈結構進行位元組的讀取,其中讀取部分使用迴圈移位結構依次向後累加的讀取位元組 3 寫入部分 依據待寫...

Labview串列埠通訊

學習labview有一段時間了,發現了其中功能的強大和程式設計的簡潔性,高效性 現在初步實現了串列埠的通訊,把其中的體會和實現過程寫出來,權當拋磚引玉 其中的串列埠採用的是rs 232,d型口,共九跟針,其中能用的就是三跟針腳,2,3,5,乙個是傳送乙個是接受,乙個是接地,如果做乙個串列埠線延長線的...

LABVIEW串列埠通訊基礎

寫這一篇串列埠通訊基礎的契機是最近剛剛完成乙個溫箱的儀器控制程式,labview通過串列埠與溫箱微控制器通訊,我打算將過程中遇到的一些問題和收穫列在這裡方便有需求的比對 尋找答案。學labview時間並不久,這個儀器控制程式也比較簡單,行文中若有錯誤還望指出。labview串列埠通訊基礎 利用lab...