• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

基于LabVIEW的串口波形上位機(完整程序源碼)

2017/06/28
91
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

基于LabVIEW的串口波形上位機完整程序源碼.zip

共1個文件

附件內(nèi)容分享的是基于LabVIEW上位機串口通信,通過LabVIEW上位機顯示波形,在分享其實現(xiàn)的源碼同時,分享一段LabVIEW上位機與串口通信工作原理。

基于LabVIEW的串口波形上位機界面展示:

定義通信格式及功能

因為數(shù)據(jù)不算復雜,所以定義簡單下位機幀格式:幀頭(0xAA) 類型字節(jié) 數(shù)據(jù)低8位 數(shù)據(jù)高8位 保留字節(jié)1 保留字節(jié)2 校驗字節(jié)

如果要傳送的數(shù)據(jù)比較多/復雜,則可以參考ModuleBus協(xié)議!

主要功能包括:

  • 對幀中的類型字節(jié)進行解析,并多通道顯示在示波器
  • 幀偏差校正(這個一般人可能都沒有做,造成數(shù)據(jù)丟失,而我這只要串口傳輸?shù)臄?shù)據(jù)沒錯,就能無錯漏的解析每一幀)
  • 實時顯示讀取的每個字節(jié)/雙字節(jié)/4字節(jié)
  • 信號保存,保存文件名自動按時間命名,適合查閱
  • 信號回放
  • 對信號進行解析,用指示燈顯示

程序關(guān)鍵點展示:

上面雖然簡單,但卻是功能的最主要部分,包括幀頭查找和錯幀處理的程序。錯幀發(fā)送的情況是:比如從串口中獨到的幀并不是從幀頭開始而是幀中間開始,如   0x12(數(shù)據(jù)) 0x00 0x00 0x00 0xAA(幀頭) 0x00 

其前面一幀可能是這樣:... 0xAA(幀頭) 0x01(類型) 0x01(數(shù)據(jù))

這樣,按查找?guī)^的方法,數(shù)據(jù)0x12就會丟失,實際數(shù)據(jù)按理應該是0x02*256+0x01,錯幀處理就是將上一幀尾部不足一幀的部分加到下一幀中,這樣下一幀就變成了:0xAA(幀頭) 0x01(類型) 0x01(數(shù)據(jù)) 0x12(數(shù)據(jù)) 0x00 0x00 0x00 0xAA(幀頭) 0x00

判斷類型過程很簡單,使用switch結(jié)構(gòu)就行了(LabVIEW中就是條件結(jié)構(gòu)同時實現(xiàn)了if和switch),編程時就是注意必須設置默認分支就行!

文件保存我使用了數(shù)據(jù)表,因為它確實簡單,這里的亮點是增加了按時間保存的功能,相當于將時間字符串加入到文件名中,這樣便于后期對采集的數(shù)據(jù)進行查找,不至于混亂。


波形回放就是將存儲在數(shù)據(jù)表中的程序重新顯示一遍,比較簡單!

  • 基于LabVIEW的串口波形上位機完整程序源碼.zip
    下載
    描述:上位機完整程序源碼

相關(guān)推薦