LabVIEW下實現Modbus通訊的幾種方式
來自專欄情難自控4 人贊了文章
1. Modbus簡介
Modbus是Modicon公司(現在已經被施耐德收購成為了施耐德旗下品牌)為其PLC通訊而開發的一種通訊協議,從1979年問世至今,已經成為工業通訊領域的業界標準(De facto),最初的Modbus通訊協議僅支持串口,分為Modbus RTU和ACSII兩種信號傳輸模式(一般基於RS485串口通信媒介),而隨著時代進步,Modbus也與時俱進,新增了Modbus TCP版本,可以通過乙太網進行通訊,此外,Modbus還有一個Modicon專用的Modbus Plus(Modbus +)版本。和其他工業通信協議相比,Modbus主要的優點包括內容公開沒有版權要求,不用支付額外費用、硬體要求簡單容易部署、使用廣泛便於系統集成。Modbus採用半雙工的通訊方式,由1個子站和多個從站組成,允許多個設備連接在同一個網路上進行通訊。
2. LabVIEW實現Modbus通訊的方式
針對Modbus的串口和TCP兩種不同的方式,在LabVIEW中通常可以通過以下幾種方法實現Modbus通訊。其中一些實現方式需要安裝LabVIEW 數據記錄與監控(DSC)模塊.
- Modbus RTU/ASCII的實現方式
- 通過VISA直接進行串口操作實現
- 通過LabVIEW DSC模塊中的Modbus模塊實現
- 通過LabVIEW DSC模塊中的OPC模塊實現
- Modbus TCP
- 通過LabVIEW標準的TCP模塊實現
- 通過LabVIEW DSC模塊中的Modbus模塊實現
- 通過LabVIEW DSC模塊中的OPC模塊實現
以下就幾種實現方式進行示例與說明。
3. LabVIEW通過VISA實現Modbus串口通信
VISA( Virtual Instrument Software Architecture,虛擬儀器軟體架構),是美國國家儀器公司(NI)推出的通用串列通訊軟體,最初用於NI公司LabVIEW等軟體與串列設備進行通訊,現在已成為工業通訊的標準之一。通過VISA通訊時,軟體會自動掃描機器中的串口資源供選擇,對於沒有串口的筆記本電腦,則通常需要通過USB-RS485的轉換線來實現虛擬串口。找到串口後,建立必要的VISA資源,然後在此基礎上進行通訊。採用VISA通訊時串口通訊的數據以及CRC校驗值等均需要自行計算並保證準確,否則可能導致通訊失敗。採用LabVIEW的VISA實現Modbus的程序示例如下圖。
4. LabVIEW通過Modbus模塊實現Modbus通訊
在安裝了DSC擴展包後,在LabVIEW下實現Modbus通訊最方便的方法是採用Modbus模塊。這時只需要選擇相應的命令模塊即可實現通訊與命令,而不需要自行寫入相應的字元串命令。採用Modbus模塊的時,可方便地在RTU和TCP兩種協議中轉換,根據需要選擇不同協議。這是LabVIEW多態的一個非常好的示例。程序見下圖。
5.LabVIEW 採用TCP模塊實現Modbus通訊
在沒有DSC模塊的情況下,或是有特殊要求的時候,也可以直接使用LabVIEW內置的TCP模塊編寫Modbus通信程序。其過程與採用Modbus模塊比較相似,只是在第一步建立連接時要指定Modbus通訊埠等參數,默認情況下Modbus TCP使用502埠。如果通訊不上,有必要檢查防火牆是否允許該埠通訊。採用TCP模塊實現Modbus通訊的程序如下。
6. LabVIEW採用OPC協議實現Modbus通信
OPC全稱是OLE for Process Control,用於過程式控制制的OLE協議。OLE是Object Linking and Embedding,對象連接與嵌入的縮寫,這是基於微軟的COM技術實現數據交換的一個協議。COM指的不是互聯網域名的.com,是Component Object Model(部件對象模型)的縮寫——這一段解釋真拗口,簡言之在OPC協議出現前,工業設備之間的通訊非常繁瑣複雜,而OPC將這一過程大大簡化,通過OPC協議可以將各種基於不同協議的工業設備連接起來。當然,OPC協議也有一定的代價,通訊速度與可靠性、實時性都沒有原生協議好。因此,在可以通過原生協議完成通訊的情況下,應盡量避免採用OPC。
OPC協議的實現要通過兩部分完成。首先是OPC伺服器,這是軟體程序與不同協議下工業設備通訊的中間件,相當於網關。在OPC伺服器下設置要連接的工業設備,把需要讀/寫的變數設置在其中,供OPC客戶端訪問。通過LabVIEW編程實現的部分相當於OPC客戶端,用於從OPC伺服器端讀寫數據。關於LabVIEW下使用OPC協議的通訊辦法,NI官方有詳細的文檔資料。搭建的OPC伺服器示意如下。
結語
Modbus協議作為一種通用的工業通訊標準,在業界得到非常廣泛的應用,LabVIEW作為NI公司主力產品,同樣有著相當廣泛的用途,採用LabVIEW實現Modbus通訊協議,在實踐中有著非常重要的意義。
推薦閱讀:
※Labview+Arduino+ADXL345數據採集
※LabVIEW2018發布,帶來了Python支持
※《LabVIEW工程之道》稀飯2-程序流程式控制制之循環結構
※怎麼對下面的程序提高運算速度?
※如何利用labview實現在一張圖中檢測出車牌的號碼?