1. Modbus簡(jiǎn)介
Modbus是Modicon公司(現(xiàn)在已經(jīng)被施耐德收購(gòu)成為了施耐德旗下品牌)為其PLC通訊而開發(fā)的一種通訊協(xié)議,從1979年問(wèn)世至今,已經(jīng)成為工業(yè)通訊領(lǐng)域的業(yè)界標(biāo)準(zhǔn)(De facto),最初的Modbus通訊協(xié)議僅支持串口,分為Modbus RTU和ACSII兩種信號(hào)傳輸模式(一般基于RS485串口通信媒介),而隨著時(shí)代進(jìn)步,Modbus也與時(shí)俱進(jìn),新增了Modbus TCP版本,可以通過(guò)以太網(wǎng)進(jìn)行通訊,此外,Modbus還有一個(gè)Modicon專用的Modbus Plus(Modbus +)版本。和其他工業(yè)通信協(xié)議相比,Modbus主要的優(yōu)點(diǎn)包括內(nèi)容公開沒(méi)有版權(quán)要求,不用支付額外費(fèi)用、硬件要求簡(jiǎn)單容易部署、使用廣泛便于系統(tǒng)集成。Modbus采用半雙工的通訊方式,由1個(gè)子站和多個(gè)從站組成,允許多個(gè)設(shè)備連接在同一個(gè)網(wǎng)絡(luò)上進(jìn)行通訊。
2. LabVIEW實(shí)現(xiàn)Modbus通訊的方式
針對(duì)Modbus的串口和TCP兩種不同的方式,在LabVIEW中通??梢酝ㄟ^(guò)以下幾種方法實(shí)現(xiàn)Modbus通訊。其中一些實(shí)現(xiàn)方式需要安裝LabVIEW 數(shù)據(jù)記錄與監(jiān)控(DSC)模塊.
Modbus RTU/ASCII的實(shí)現(xiàn)方式
通過(guò)VISA直接進(jìn)行串口操作實(shí)現(xiàn)
通過(guò)LabVIEW DSC模塊中的Modbus模塊實(shí)現(xiàn)
通過(guò)LabVIEW DSC模塊中的OPC模塊實(shí)現(xiàn)
Modbus TCP
通過(guò)LabVIEW標(biāo)準(zhǔn)的TCP模塊實(shí)現(xiàn)
通過(guò)LabVIEW DSC模塊中的Modbus模塊實(shí)現(xiàn)
通過(guò)LabVIEW DSC模塊中的OPC模塊實(shí)現(xiàn)
以下就幾種實(shí)現(xiàn)方式進(jìn)行示例與說(shuō)明。
3. LabVIEW通過(guò)VISA實(shí)現(xiàn)Modbus串口通信
VISA( Virtual Instrument Software Architecture,虛擬儀器軟件架構(gòu)),是美國(guó)國(guó)家儀器公司(NI)推出的通用串行通訊軟件,最初用于NI公司LabVIEW等軟件與串行設(shè)備進(jìn)行通訊,現(xiàn)在已成為工業(yè)通訊的標(biāo)準(zhǔn)之一。通過(guò)VISA通訊時(shí),軟件會(huì)自動(dòng)掃描機(jī)器中的串口資源供選擇,對(duì)于沒(méi)有串口的筆記本電腦,則通常需要通過(guò)USB-RS485的轉(zhuǎn)換線來(lái)實(shí)現(xiàn)虛擬串口。找到串口后,建立必要的VISA資源,然后在此基礎(chǔ)上進(jìn)行通訊。采用VISA通訊時(shí)串口通訊的數(shù)據(jù)以及CRC校驗(yàn)值等均需要自行計(jì)算并保證準(zhǔn)確,否則可能導(dǎo)致通訊失敗。采用LabVIEW的VISA實(shí)現(xiàn)Modbus的程序示例如下圖。
4. LabVIEW通過(guò)Modbus模塊實(shí)現(xiàn)Modbus通訊
在安裝了DSC擴(kuò)展包后,在LabVIEW下實(shí)現(xiàn)Modbus通訊最方便的方法是采用Modbus模塊。這時(shí)只需要選擇相應(yīng)的命令模塊即可實(shí)現(xiàn)通訊與命令,而不需要自行寫入相應(yīng)的字符串命令。采用Modbus模塊的時(shí),可方便地在RTU和TCP兩種協(xié)議中轉(zhuǎn)換,根據(jù)需要選擇不同協(xié)議。這是LabVIEW多態(tài)的一個(gè)非常好的示例。程序見下圖。
5.LabVIEW 采用TCP模塊實(shí)現(xiàn)Modbus通訊
在沒(méi)有DSC模塊的情況下,或是有特殊要求的時(shí)候,也可以直接使用LabVIEW內(nèi)置的TCP模塊編寫Modbus通信程序。其過(guò)程與采用Modbus模塊比較相似,只是在第一步建立連接時(shí)要指定Modbus通訊端口等參數(shù),默認(rèn)情況下Modbus TCP使用502端口。如果通訊不上,有必要檢查防火墻是否允許該端口通訊。采用TCP模塊實(shí)現(xiàn)Modbus通訊的程序如下。
6. LabVIEW采用OPC協(xié)議實(shí)現(xiàn)Modbus通信
OPC全稱是OLE for Process Control,用于過(guò)程控制的OLE協(xié)議。OLE是Object Linking and Embedding,對(duì)象連接與嵌入的縮寫,這是基于微軟的COM技術(shù)實(shí)現(xiàn)數(shù)據(jù)交換的一個(gè)協(xié)議。COM指的不是互聯(lián)網(wǎng)域名的.com,是Component Object Model(部件對(duì)象模型)的縮寫——這一段解釋真拗口,簡(jiǎn)言之在OPC協(xié)議出現(xiàn)前,工業(yè)設(shè)備之間的通訊非常繁瑣復(fù)雜,而OPC將這一過(guò)程大大簡(jiǎn)化,通過(guò)OPC協(xié)議可以將各種基于不同協(xié)議的工業(yè)設(shè)備連接起來(lái)。當(dāng)然,OPC協(xié)議也有一定的代價(jià),通訊速度與可靠性、實(shí)時(shí)性都沒(méi)有原生協(xié)議好。因此,在可以通過(guò)原生協(xié)議完成通訊的情況下,應(yīng)盡量避免采用OPC。
OPC協(xié)議的實(shí)現(xiàn)要通過(guò)兩部分完成。首先是OPC服務(wù)器,這是軟件程序與不同協(xié)議下工業(yè)設(shè)備通訊的中間件,相當(dāng)于網(wǎng)關(guān)。在OPC服務(wù)器下設(shè)置要連接的工業(yè)設(shè)備,把需要讀/寫的變量設(shè)置在其中,供OPC客戶端訪問(wèn)。通過(guò)LabVIEW編程實(shí)現(xiàn)的部分相當(dāng)于OPC客戶端,用于從OPC服務(wù)器端讀寫數(shù)據(jù)。關(guān)于LabVIEW下使用OPC協(xié)議的通訊辦法,NI官方有詳細(xì)的文檔資料。搭建的OPC服務(wù)器示意如下。
結(jié)語(yǔ)
Modbus協(xié)議作為一種通用的工業(yè)通訊標(biāo)準(zhǔn),在業(yè)界得到非常廣泛的應(yīng)用,LabVIEW作為NI公司主力產(chǎn)品,同樣有著相當(dāng)廣泛的用途,采用LabVIEW實(shí)現(xiàn)Modbus通訊協(xié)議,在實(shí)踐中有著非常重要的意義。
-
LabVIEW
+關(guān)注
關(guān)注
1954文章
3647瀏覽量
320503 -
MODBUS
+關(guān)注
關(guān)注
28文章
1718瀏覽量
76428 -
TCP
+關(guān)注
關(guān)注
8文章
1324瀏覽量
78759
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論