基于ModbusTCP協(xié)議臺(tái)達(dá)PLC與上位機(jī)VB軟件之間的通信_(tái)第1頁
基于ModbusTCP協(xié)議臺(tái)達(dá)PLC與上位機(jī)VB軟件之間的通信_(tái)第2頁
基于ModbusTCP協(xié)議臺(tái)達(dá)PLC與上位機(jī)VB軟件之間的通信_(tái)第3頁
基于ModbusTCP協(xié)議臺(tái)達(dá)PLC與上位機(jī)VB軟件之間的通信_(tái)第4頁
基于ModbusTCP協(xié)議臺(tái)達(dá)PLC與上位機(jī)VB軟件之間的通信_(tái)第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、作者簡介:樊新乾(1986-),男,碩士研究生,通信聯(lián)系人:潘存海(1964-),男,教授,機(jī)電裝備集成及其自動(dòng)化,基于Modbus/TCP協(xié)議臺(tái)達(dá)PLC與上位機(jī)VB軟件之間的通信樊新乾,潘存海(天津科技大學(xué)機(jī)械工程學(xué)院,天津,300222)摘要:在VB(Visual Basic)編程環(huán)境下,通過調(diào)用Windows API函數(shù),設(shè)計(jì)了整合串口通信和工業(yè)以太網(wǎng)通信的監(jiān)控系統(tǒng)通信方案。并介紹了Modbus協(xié)議和Modbus/TCP協(xié)議及其通信原理,提出了應(yīng)用于工業(yè)現(xiàn)場設(shè)備監(jiān)控的設(shè)計(jì)方案,實(shí)現(xiàn)了上位機(jī)對(duì)現(xiàn)場設(shè)備的實(shí)時(shí)監(jiān)控。提高了上位機(jī)監(jiān)控程序的開發(fā)效率。實(shí)踐證明,本監(jiān)控系統(tǒng)性能穩(wěn)定,能夠滿足本項(xiàng)目監(jiān)

2、控系統(tǒng)的設(shè)計(jì)要求關(guān)鍵詞:工業(yè)控制系統(tǒng);Modbus協(xié)議;Modbus/TCP協(xié)議;Ethernet;PLC;API函數(shù)中圖分類號(hào):TP 277The Communication Based on Modbus/TCP Protocol Between Delta PLC and IPC VB ProgramFAN Xinqian, PAN Cunhai(College of Mechanical Engineering,Tianjin University of Science&Technology,Tianjin,300222)Abstract: In VB (Visual Basic) p

3、rogramming environment,the Windows API functions were called to design the industry integrated communication interface monitoring system. And the Modbus protocol and Modbus/TCP protocol and the communications theory was also introduced in this paper, and then the application to the industrial field

4、monitoring equipment was put forward in this theory.At last the real-time monitoring equipment was realized. The developing efficiency of the PC monitoring program was also increased.The experimental results showed that the control system had stable performance, and could satisfy the design requirem

5、ents of the control system of the projectKey Words: Industrial control system;Modbus protocol;Modbus/TCP protocol;Ethernet;PLC;API function引言在工業(yè)控制中,基于PLC控制的工程在上/下位機(jī)通訊上普遍采用RS-232/RS-485串口或者Ethernet通信模塊進(jìn)行通訊。串行通信是工業(yè)控制領(lǐng)域應(yīng)用最為廣泛的通信方式,對(duì)于數(shù)據(jù)量較大,通訊距離較遠(yuǎn),實(shí)時(shí)性要求高的控制系統(tǒng),很難滿足通訊需要1。近年來,工業(yè)以太網(wǎng)越來越多的受到工業(yè)控制用戶的青睞,其穩(wěn)定性、準(zhǔn)確性和

6、實(shí)時(shí)性的特點(diǎn),廣泛應(yīng)用于電力、冶金、化工、機(jī)械、制造業(yè)等控制系統(tǒng)2。由此產(chǎn)生了人機(jī)界面及各種組態(tài)軟件產(chǎn)品,這些產(chǎn)品的出現(xiàn)簡化了對(duì)PLC的控制、操作。但也有其共同的缺點(diǎn),價(jià)格普遍偏高和可二次開發(fā)性較差3?;赩isual Basic(VB)平臺(tái)的上位機(jī)監(jiān)控界面的設(shè)計(jì),克服了以上缺點(diǎn),受到工業(yè)用戶的關(guān)注4。然而利用Visual Basic(VB)自身的串口通信控件與網(wǎng)絡(luò)控件進(jìn)行上位機(jī)監(jiān)控程序的設(shè)計(jì),由于控件的局限性,程序開發(fā)難度較大。由此,本文深入研究Windows API函數(shù)的結(jié)構(gòu),通過調(diào)用Windows API函數(shù),設(shè)計(jì)出一種可同時(shí)進(jìn)行串行通信與Ethernet通信的解決方案,大大提高了上位機(jī)

7、監(jiān)控軟件的開發(fā)效率,使得程序開發(fā)人員不用過多關(guān)注通信控件的屬性設(shè)計(jì),把更多的精力放到開發(fā)監(jiān)控界面的應(yīng)用功能上來。最后,本文以臺(tái)達(dá)DVPEN01-SL模塊為Ethernet通信載體,以工控機(jī)COM口為串行通信載體,設(shè)計(jì)了PLC與上位機(jī)串行與Ethernet整合通信的解決方案,為工業(yè)用戶提供更多的通信方式,簡化了上位機(jī)監(jiān)控界面的編制過程,提高了工業(yè)通信的可靠性與準(zhǔn)確性。Modbus以及Modbus/TCP協(xié)議Modbus是一種應(yīng)用層報(bào)文傳輸協(xié)議,Modbus報(bào)文傳輸服務(wù)提供設(shè)備之間的客戶機(jī)/服務(wù)器通信,而這些設(shè)備連接在一個(gè)以太網(wǎng)上,信息傳遞分4類報(bào)文:Modbus請求、Modbus證實(shí)、Modbu

8、s指示和Modbus響應(yīng)。Modbus請求是服務(wù)器在網(wǎng)絡(luò)上發(fā)送啟動(dòng)事務(wù)處理的報(bào)文;Modbus指示是客戶機(jī)接收的請求報(bào)文;Modbus響應(yīng)是客戶機(jī)發(fā)送的響應(yīng)報(bào)文;Modbus證實(shí)是服務(wù)器接收的響應(yīng)報(bào)文5。如圖1所示。Modbus服務(wù)器Modbus客戶機(jī)請求 指示證實(shí) 響應(yīng)圖1Modbus報(bào)文類型Fig. 1Modbus Message TypeModbus/TCP協(xié)議是Modbus家族中應(yīng)用于自動(dòng)控制裝置上的開放的通訊協(xié)議,用于實(shí)現(xiàn)不同類型的總線或網(wǎng)絡(luò)連接的設(shè)備之間的C/S(客戶機(jī)/服務(wù)器)通信,通過通用的網(wǎng)絡(luò)部件在Intranet/Internet上傳輸。物理層和數(shù)據(jù)鏈路層是標(biāo)準(zhǔn)的以太網(wǎng)協(xié)議

9、,網(wǎng)際層是標(biāo)準(zhǔn)的IP協(xié)議,傳輸層是標(biāo)準(zhǔn)的TCP協(xié)議,應(yīng)用層嵌入Modbus協(xié)議。其網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。Modbus協(xié)議(應(yīng)用層)Modbus/TCP協(xié)議TCP協(xié)議(傳輸層)IP協(xié)議(網(wǎng)絡(luò)層)Ethernet(物理層)圖2Modbus/TCP協(xié)議網(wǎng)絡(luò)結(jié)構(gòu)模型Fig. 2Modbus/TCP Protocol Network Structure ModelWindows API函數(shù)API函數(shù)6(全稱為Application Programming Interface)也稱為應(yīng)用程序編程接口,Windows API顧名思義就是Windows平臺(tái)下的應(yīng)用程序編程接口。它是操作系統(tǒng)預(yù)留給應(yīng)用程序的一個(gè)調(diào)

10、用接口,應(yīng)用程序可通過調(diào)用操作系統(tǒng)提供的相關(guān)API函數(shù)來使操作系統(tǒng)使用應(yīng)用程序區(qū)執(zhí)行一些命令。API函數(shù)是構(gòu)筑整個(gè)Windows框架的基礎(chǔ)。API函數(shù)下面是Windows 操作系統(tǒng)核心,而它的上面則是華麗的Windows系統(tǒng)的操作界面和各種應(yīng)用程序。Visual Basic(VB)就是Windows平臺(tái)上優(yōu)秀的可視化編程應(yīng)用程序,其主要特點(diǎn)為操作簡單,界面友好。提供了大量的類庫和控件(這些類庫或控件就是對(duì)API函數(shù)的封裝),例如MSComm控件和Winsock控件,它們替代了API函數(shù)。但是它們的應(yīng)用有一定的局限性,編程人員需要花很大精力來設(shè)計(jì)控件的各個(gè)屬性。因此我們可以在Visual Bas

11、ic(VB)中調(diào)用自主開發(fā)函式庫,使得控件屬性的編寫簡化為函數(shù)調(diào)用過程,可大大提高程序開發(fā)效率,拓展更多的功能。DMT函式庫就是以Windows Winsock API為基礎(chǔ)的API函數(shù)的集合,支持以Modbus協(xié)議連接的工業(yè)網(wǎng)絡(luò),開發(fā)者可以通過匯入函式庫的方式來連接串行口及工業(yè)Ethernet通訊。DMT函式庫提供標(biāo)準(zhǔn)C/C+動(dòng)態(tài)及靜態(tài)連接方式,并支持MicrosoftVisual C+/Visual Basic、Borland C+ Builder等開發(fā)環(huán)境。其協(xié)議堆疊圖如圖3所示。DMT LibraryWindows操作系統(tǒng)底層Windows API函數(shù)(應(yīng)用程序接口)Windows應(yīng)用

12、程序圖3協(xié)議堆疊圖Fig. 3Protocol Stack通訊模塊以及PLC主機(jī)本系統(tǒng)所應(yīng)用的Ethernet通信模塊為臺(tái)達(dá)DVPEN01-SL,PLC主機(jī)為DVP32EH-L。DVPEN01-SL是臺(tái)達(dá)系列產(chǎn)品Ethernet通訊模塊7,支持Modbus/TCP通訊協(xié)議,可使用圖控軟件或人機(jī)界面做遠(yuǎn)程監(jiān)控。DVPEN01-SL也可以作為Modbus/TCP的主端,可發(fā)送 Modbus/TCP指令,控制周邊設(shè)備。通過DVPEN01-SL,可實(shí)現(xiàn)上位計(jì)算機(jī)與PLC主機(jī)的通信。串口通信可通過DB9轉(zhuǎn)8針圓頭RS-232串口線纜直接連接PLC與上位機(jī)。由于篇幅所限,DVPEN01-SL的具體設(shè)置以及

13、PLC主機(jī)的程序在此就不再贅述。硬件連接方式如圖4所示。圖4硬件連接示意圖Fig.4Hardware System Linking Sketch Map監(jiān)控程序的編寫我們通過VB6.0,編寫上位機(jī)監(jiān)控程序人機(jī)交互界面。在VB6.0中使用DMT2.0函式庫,必須首先匯入模塊(module),步驟如下:步驟一:將DMT.bas添加進(jìn)項(xiàng)目。步驟二:復(fù)制DMT.dll到項(xiàng)目目錄下,如圖5所示。圖5模塊匯入Fig. 5Module Addition在臺(tái)達(dá)PLC中8,M1072為特殊輔助寄存器,以Modbus功能碼0 x05寫入單一線圈M1072為例,其Modbus起始位址0C30,設(shè)定線圈狀態(tài)為FF00

14、,PLC主程序?yàn)镽UN,若設(shè)定0000則為STOP。程序編寫過程如下:首先聲明WIN32 API函數(shù)Private Declare Function inet_addr Lib wsock32.dll (ByVal s As String) As LongModbus 串行通信過程:步驟一:設(shè)定通信參數(shù)ComString=”0C30FF00” 0C30為地址,F(xiàn)F00為傳送數(shù)據(jù)conn_num = CInt(Mid(ComString,4,Len(ComString)取得串行口號(hào),COM1parity = AscB(E)parity1 = AscB(N)comm_type = 0;通訊類型0:

15、串行通信datalen = 4請求數(shù)據(jù)長度步驟二:開啟串行通信If mode = 0 ThenCall OpenModbusSerial(conn_num,9600,7,parity,1,mode+1)Else Call OpenModbusSerial(conn_num,9600,8,parity1,1,mode+1)步驟三:數(shù)據(jù)存取Modbus數(shù)據(jù)請求Call RequestData(comm_type,conn_num,slav_addr,func_code,sendbuf(0),datalen)Modbus數(shù)據(jù)回復(fù)rlen=ResponseData(comm_type,conn_num

16、,slav_addr_ret,func_code_ ret,recvbuf(0)For i=0 To rlen-1Call HEX_to_ASCI(recvbuf(i), ASC)RecvString=RecvString&Chr(ASC(0) & Chr(ASC(1)Next i步驟四:關(guān)閉通訊Call CloseSerial(conn_num)Modbus/TCP通信過程步驟一:設(shè)定通信參數(shù)conn_num=0;PLC站號(hào)為0remote_addr1=inet_addr()通信模塊IP地址為步驟二:開啟通信Call OpenModbusTCPSocket(conn_num,remote_a

17、ddr)步驟三:數(shù)據(jù)存取請求數(shù)據(jù)Call RequestData(idx,conn_num,slav_addr_s,func_code_s,sendbuf(0),4)應(yīng)答數(shù)據(jù)If (ReadSelect(conn_num,100)Thenrlen=ResponseData(idx,conn_num,slav_addr_r,func_code_r,recvbuf(0)End IfFor i=0 To rlen-1Call HEX_to_ASCI(recvbuf(i), ASC)RecvString=RecvString&Chr(ASC(0)&Chr(ASC(1)Next i步驟四:關(guān)閉通信Cal

18、l CloseSocket(conn_num)本監(jiān)控系統(tǒng)主要包括通信模式選擇,PLC運(yùn)行指示,X軸運(yùn)動(dòng)監(jiān)控,Y軸運(yùn)動(dòng)監(jiān)控,輸入運(yùn)行監(jiān)控,以及報(bào)警信息界面,能夠滿足本項(xiàng)目的基本調(diào)試運(yùn)行要求。程序運(yùn)行界面如圖6所示。圖6監(jiān)控程序運(yùn)行界面Fig. 6Monitoring Program Interface結(jié)論為了對(duì)工業(yè)設(shè)備進(jìn)行實(shí)時(shí)有效的監(jiān)控,完善的兼容性,可靠的穩(wěn)定性,對(duì)惡劣環(huán)境的適應(yīng)性,強(qiáng)大的冗余能力和方便的可管理性,是人們越來越多地在Visual Basic(VB)平臺(tái)下開發(fā)上位機(jī)監(jiān)控程序的原因,這也勢必成為本文所述通信方案在工業(yè)控制中大顯身手的重要契機(jī)。本方案整合了串口通信與Ethernet通信,使得上位機(jī)監(jiān)控程序的開發(fā)更為簡單和方便,程序員從繁雜的通信控件設(shè)計(jì)編程工作中解放出來,也為工業(yè)現(xiàn)場實(shí)現(xiàn)冗余設(shè)計(jì)以及應(yīng)急通信提供了安全可靠的方案,應(yīng)用前景廣泛。本文所述程序已成功應(yīng)用于臺(tái)達(dá)PLC運(yùn)動(dòng)控制系統(tǒng)的監(jiān)控系統(tǒng)中,實(shí)驗(yàn)證明,該程序安全可靠,運(yùn)行正常穩(wěn)定。參考文獻(xiàn)(References)1張輝,李榮利,王和平.Visual Basic串口通信及編程實(shí)例M.北京:化學(xué)工業(yè)出版社,2011.42關(guān)學(xué)進(jìn),劉娟.基于Modbus/TCP工業(yè)以太網(wǎng)的自

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論