趙維衛


摘 要:傳統的DSP通信設備設計里,中央處理芯片數據運算性能存在先天不足,且這類上位機軟件較為復雜,設計開發周期較長,存在軟件調試與日常維護較為困難的問題,本文基于虛擬儀器設備設計了一個通訊與數據處理解決方案。該方案整合了數據通訊硬件接口和下位機串行通訊軟件,采用工控機作為上位機,基于LABVIEW開發環境,編寫了上位機通訊程序軟件,并進行了實際試驗與測試。通過試驗可知,本文編寫的上位機軟件運行可靠,通訊誤差小,可擴展性強,成本低,便于維護。
關鍵詞:LABVIEW;串行通訊;VISA;
1.緒論
隨著中國制造2025的逐步到來,工業生產中試驗數據傳輸與分析愈加龐大,傳統處理器電路很難同時滿足快速數據傳輸和復雜統計工作,數字信號處理器(DSP)由此而生,廣泛應用于工業各個領域[1]。但是在一個自動化集成系統里,只有主控電路遠不能滿足使用要求,這時就需要一個上位機通訊軟件來實現數據的傳輸、處理、顯示和運算。因此,上位機與下位機之間的數據通訊就至關重要。作為經常使用的數據通訊方式,串行通信因其特有的優勢,被經常使用到,使用串行通信的硬件電路更加簡單,造價低廉,能夠實現遠距離數據通訊,在工業化進程中應用甚廣。在傳統的上位機數據通訊軟件中,經常用到VC、VB、Delphi等高級語言來編程,這些軟件在上位機程序編寫中設計比較復雜,研發周期較長,調試與維護都存在較大困難。[2]LABVIEW是NI公司研發的,基于圖形化編程的VI開發平臺,上位機軟件同時能夠跨平臺運行,軟件使用上手容易,便于編程者與操作者理解,平臺內部自帶集成多種函數庫,能夠快速完成用戶的編寫需要,能夠以高效的方式開發相對復雜的控制通訊系統。
鑒于上述理由,本文提出一種基于LABVIEW的串行通訊解決方案。
2.基于LABVIEW的通訊軟件設計
LABVIEW軟件平臺內部集成了串行通訊VISA函數,VISA是一個I/O接口軟件庫和相關規范的集合。[3]LABVIEW的軟件編寫前面板中,數據通訊VI位于Instrument I/O的Serial中,經常使用的VI節點包括:
(1)VISA Configure Serial Port:初始化VISA
(2)VISA resource name設置通訊參數;
(3)VISA Write:把緩沖區的數據發送到VISA resource name設置的端口;
(4)VISA Read:將VISA resource name設置的端口接收緩沖區中的數據讀取設置字節數的數據;
(5)VISA Bytes at Serial Port:反饋VISA resource name設置的端口在讀取緩沖區的數據字節數;
(6)VISA Close:關閉VISA會話;
(7)VISA Set I/O Buffer Size:設置VISA的I/O緩沖區大小;
(8)VISA Flush I/0 Buffer:清空VISA的I/O緩沖區。
3.LABVIEW串行通訊設計流程
LABVIEW軟件平臺的基于VISA數據庫通訊的流程框圖如圖1所示。
根據上圖所示,軟件先需要調用VISA Configure Serial Port來設置端口參數,參數簇中包括端口號分配、數據波特率、波特率、數據位、停止位、校驗位和數據流控制等。當串口初始化完成時,就可以使用該端口進行數據通訊了如果初始化沒有問題,就可以使用這個串口進行數據傳輸。VISA Write,VISA Read函數的作用是發送數據。在接收數據幀之前需要用VISA Bytes at Serial Port檢查該端口接收緩沖區的字節數,如果VISA Read需要讀取的字節數大于當前緩沖區中的數據字節數,VISA Read將一直等待當前操作,直到等待時間超時,或者緩沖區中的數據字節數滿足需要讀取的字節數。若需要讀取的數據有較大容量的需要,可以設置串口接收/發送緩沖區的數據容量,使用VISA Set I/O Buffer Size函數進行緩沖區容量設置;使用VISA Flush I/O Buffer可以清空接收與發送緩沖區。在串口通訊試驗結束后,使用VISA Close關閉與VISA resource name規定的端口的會話[4]。
4.LABVIEW串行通訊設計實例
編寫完成的上位機通訊程序框圖如圖2所示。在圖2中,在主循環中放置一個while循環結構,然后在其中添加一個事件結構,這樣就可以根據是否滿足讀取數據的需要進行數據解算工作,這些功能需要在事件結構中添加不同的觸發事件,來觸發數據發送或接收部分。在程序執行的最初階段,需要對端口進行初始化操作,在這個程序狂徒中,將波特率設置為115200、數據位為8,無奇偶校驗。在數據發送觸發事件里,使用前文所述LABVIEW中的VISA串口通訊流程步驟,首先清空初始化VISA I/O緩沖區,然后將設置好的數據包轉換成一個完整的十六制字符串通訊指令,通過VISA Write函數將通訊命令傳輸到下位機的緩沖區,延時20ms后,再調用VISA Read函數,將下位機反饋的數據幀在前面板進行顯示,通訊完畢后使用VISA close函數,釋放先前占用的串口資源。
該設計方案使用while循環+事件結構的優勢是增強了系統的實時控制,減少系統的資源占用。除此之外,串口傳輸數據需要一定時間,在執行讀寫操作時要進行延時處理,避免函數之間競爭系統資源或導致時序混亂,這樣能確保下位機反饋的信息能夠被正確識別到。
5.結論
本文基于LABVIEW虛擬儀器軟件研究了一種上位機通訊程序,并進行了數據傳輸試驗與分析。結果表明,該上位機軟件成熟可靠、接口簡單、便于使用,軟件維護方便,能夠滿足串行通訊的工程應用,具用一定工程應用前景。
6.參考文獻
[1]徐華中,黃麗萍.基于LabVIEW和DSP串口的多通道電機參數采集系統[J].電子測量技術,2011,34(4):66-69.
[2]吳振奎,張自雷,魏毅立,等.基于LabVIEW平臺DSP與PC的Modbus協議串口通信實現[J].內蒙古科技大學學報,2014,33(1):58-62.
[3]易牧,胡延霖,李保林.基于LABVIEW和DSP的數據采集系統[J].四川兵工學報,2009,30(10):138-140.
[4]商秋芳,吳學杰,梅紅偉,等.基于LabVIEW和TMS320F2812的液壓伺服控制系統的設計[J].現代電子技術,2007,21(260)