日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

visa linux 串口 通信,使用visa进行串口通信

發布時間:2023/12/2 linux 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 visa linux 串口 通信,使用visa进行串口通信 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近因為項目的原因,都在研究上位機通信問題。這兩個星期研究還是蠻多心得,下面就寫寫關于使用visa進行串口通信的內容

LABVIEW軟件

LabVIEW 在儀器控制方面,還是很有優勢的,把你儀器給你,讀懂指令,然后估計半小時就可以編寫好一個完整的儀器控制系統。從儀器配置到數據發送,數據接收,到數據生成報表。

如果使用其他語言,例如 VB,VC 之類的,寫過儀器控制的同學來說,這個問題,寫個界面, 就要寫半天, 還得什么進制轉換啊, 各種操作, 麻煩多了。 但是, 如果你采用 LabVIEW,這些問題,都是小兒科了。

LabVIEW 的 VISA 驅動

VISA,它是一種虛擬架構,讓你不用關心底層,直接調用就好,而且不用管接口是什么類型的,它通吃。比如,你是 232 接口,用 VISA 吧,485 接口,用 VISA 吧

用過 VB 、VC 的,可能用 WINAPI 習慣了,其實既然有 VISA,而且也方便使用,我建議大家還是使用 VISA 吧。LabVIEW 的推出,本來就是為了讓編程簡單化,模塊化,你如果用其他的 DLL 之類的,要涉及到底層的一些知識,要配置很多參數什么什么的。

LABVIEW串口編程原理

其實原理可以用一個過程描述:

拿打電話來說吧。

①,首先,撥對方號碼,號碼肯定要配置正確吧,不正確肯定達不到對方的, **VISA **配置串口相當于你給對方撥電話.

②,其次,給對方說要說的話,這個相當于 VISA 串口寫。你說話,當然也也聽對方說話,那就是 **VISA **串口讀。

③,通話結束,要掛電話,掛電話相當于 關閉 VISA.

總結起來就是

撥電話→VISA **

串口配置講電話→VISA **

讀寫(這里就是各種命令啦。)

掛電話→**VISA **關閉

其實串口很容易。難點在于你讀到數據,怎么轉化成自己需要的數據。而且保證數據無誤。

LABVIEW的visa使用

事實上,真的只需要下面幾個函數。

①配置串口

配置串口時候,最好是在對應的參數端口那里,右鍵,新建常量或者輸入控件,然后再在新建出來的上面修改。因為,新建出來的數據類型,肯定是對的。

需要注意的是:

①停止位那里,不是常數 1 1.5 2 等,實際是 10,15,20 數值。這里最好右鍵新建常量然后選擇對應的枚舉類型,如上圖所示。

更需要注意的是:②配置串口,頂端有個 啟用終止符,一般默認是 真,終止符一般默認是 OA,即換行符。

那為什么配置 **VISA **要搞個終止符呢?

(注意:這個函數的終止符,只是接受的終止符,只是對 LabVIEW 接收而言,后面會具體講。)終止符,是個條件,很多儀器上,也有終止符,而且終止符的優先級高。比如你要用”**VISA **讀取“接收 1000 個字符,而還沒接受完畢,收到了終止符 OA,那么程序就當一個命令結束了。后面的字符串,放入下一個命令里面去。對編程很方便的,如果你傳輸的字符不可能出現 OA 或者自己設定的終止符, 我建議用終止符來做終止條件, 這樣,比你在 VISA 讀去里讀取固定的字節好 很多。

②bytes at port確定字節數

一般的組合,如上圖所示。組合的前面,是 VISA 串口字節數,函數路徑見上圖,其實就是一個屬性節點,看那個 bytes at port 英文就應該明白了。它利用一個讀取緩沖區字節數,讀到字節數,就確定了 VISA 讀取里面那個字節數,然后用讀取 VISA 讀出來。意思就是,前面的先偵測下串口緩沖區有多少數據,偵測完了就告訴 VISA 讀,VISA就全讀出來。

這個組合的功能是,讀取VISA串口已有的全部數據。

③visa的讀取

以上程序,先配置串口,然后循環不停的讀串口,用了讀取串口字節判斷該不該讀,當串口有數據,即字節數不位零時,讀取串口。

④字符串處理

1, 單個接受字符串就是數字形式。比如,收到的數據,就是 1,你要轉成 1,很容易。直接用下面的函數來轉為數值形式。

2,你接收到的是一串字符串:比如 01 02 03 04 05 .......

用截取字符串截取每一個數據,然后再參照第①種方式,轉化成數值。

⑤調試經驗

用讀取串口字節數+VISA 讀取

組合,可以防止上圖錯誤發生,因為有數據就讀,沒數據就不讀。而如果你指定要讀的字節數,當超時時間到之后,如果還沒讀到指定直接,就會報錯。

但是,我寫過一個協議,是先發送一段字符,過幾毫秒馬上又發送結束符 0D,所以,前面數據剛讀出來,就被后面的覆蓋了,導致我每次都只能看到 0D,后來才知道,不是一起發的,是間斷發的。用這種組合,不容易掌握字符串的字數。因為它有數據就讀出來,所以,調試的時候,多小心

總結

以上是生活随笔為你收集整理的visa linux 串口 通信,使用visa进行串口通信的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。