




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、作者簡介:樊新乾(1986-),男,碩士研究生,通信聯系人:潘存海(1964-),男,教授,機電裝備集成及其自動化,基于Modbus/TCP協議臺達PLC與上位機VB軟件之間的通信樊新乾,潘存海(天津科技大學機械工程學院,天津,300222)摘要:在VB(Visual Basic)編程環境下,通過調用Windows API函數,設計了整合串口通信和工業以太網通信的監控系統通信方案。并介紹了Modbus協議和Modbus/TCP協議及其通信原理,提出了應用于工業現場設備監控的設計方案,實現了上位機對現場設備的實時監控。提高了上位機監控程序的開發效率。實踐證明,本監控系統性能穩定,能夠滿足本項目監
2、控系統的設計要求關鍵詞:工業控制系統;Modbus協議;Modbus/TCP協議;Ethernet;PLC;API函數中圖分類號: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引言在工業控制中,基于PLC控制的工程在上/下位機通訊上普遍采用RS-232/RS-485串口或者Ethernet通信模塊進行通訊。串行通信是工業控制領域應用最為廣泛的通信方式,對于數據量較大,通訊距離較遠,實時性要求高的控制系統,很難滿足通訊需要1。近年來,工業以太網越來越多的受到工業控制用戶的青睞,其穩定性、準確性和
6、實時性的特點,廣泛應用于電力、冶金、化工、機械、制造業等控制系統2。由此產生了人機界面及各種組態軟件產品,這些產品的出現簡化了對PLC的控制、操作。但也有其共同的缺點,價格普遍偏高和可二次開發性較差3。基于Visual Basic(VB)平臺的上位機監控界面的設計,克服了以上缺點,受到工業用戶的關注4。然而利用Visual Basic(VB)自身的串口通信控件與網絡控件進行上位機監控程序的設計,由于控件的局限性,程序開發難度較大。由此,本文深入研究Windows API函數的結構,通過調用Windows API函數,設計出一種可同時進行串行通信與Ethernet通信的解決方案,大大提高了上位機
7、監控軟件的開發效率,使得程序開發人員不用過多關注通信控件的屬性設計,把更多的精力放到開發監控界面的應用功能上來。最后,本文以臺達DVPEN01-SL模塊為Ethernet通信載體,以工控機COM口為串行通信載體,設計了PLC與上位機串行與Ethernet整合通信的解決方案,為工業用戶提供更多的通信方式,簡化了上位機監控界面的編制過程,提高了工業通信的可靠性與準確性。Modbus以及Modbus/TCP協議Modbus是一種應用層報文傳輸協議,Modbus報文傳輸服務提供設備之間的客戶機/服務器通信,而這些設備連接在一個以太網上,信息傳遞分4類報文:Modbus請求、Modbus證實、Modbu
8、s指示和Modbus響應。Modbus請求是服務器在網絡上發送啟動事務處理的報文;Modbus指示是客戶機接收的請求報文;Modbus響應是客戶機發送的響應報文;Modbus證實是服務器接收的響應報文5。如圖1所示。Modbus服務器Modbus客戶機請求 指示證實 響應圖1Modbus報文類型Fig. 1Modbus Message TypeModbus/TCP協議是Modbus家族中應用于自動控制裝置上的開放的通訊協議,用于實現不同類型的總線或網絡連接的設備之間的C/S(客戶機/服務器)通信,通過通用的網絡部件在Intranet/Internet上傳輸。物理層和數據鏈路層是標準的以太網協議
9、,網際層是標準的IP協議,傳輸層是標準的TCP協議,應用層嵌入Modbus協議。其網絡結構如圖2所示。Modbus協議(應用層)Modbus/TCP協議TCP協議(傳輸層)IP協議(網絡層)Ethernet(物理層)圖2Modbus/TCP協議網絡結構模型Fig. 2Modbus/TCP Protocol Network Structure ModelWindows API函數API函數6(全稱為Application Programming Interface)也稱為應用程序編程接口,Windows API顧名思義就是Windows平臺下的應用程序編程接口。它是操作系統預留給應用程序的一個調
10、用接口,應用程序可通過調用操作系統提供的相關API函數來使操作系統使用應用程序區執行一些命令。API函數是構筑整個Windows框架的基礎。API函數下面是Windows 操作系統核心,而它的上面則是華麗的Windows系統的操作界面和各種應用程序。Visual Basic(VB)就是Windows平臺上優秀的可視化編程應用程序,其主要特點為操作簡單,界面友好。提供了大量的類庫和控件(這些類庫或控件就是對API函數的封裝),例如MSComm控件和Winsock控件,它們替代了API函數。但是它們的應用有一定的局限性,編程人員需要花很大精力來設計控件的各個屬性。因此我們可以在Visual Bas
11、ic(VB)中調用自主開發函式庫,使得控件屬性的編寫簡化為函數調用過程,可大大提高程序開發效率,拓展更多的功能。DMT函式庫就是以Windows Winsock API為基礎的API函數的集合,支持以Modbus協議連接的工業網絡,開發者可以通過匯入函式庫的方式來連接串行口及工業Ethernet通訊。DMT函式庫提供標準C/C+動態及靜態連接方式,并支持MicrosoftVisual C+/Visual Basic、Borland C+ Builder等開發環境。其協議堆疊圖如圖3所示。DMT LibraryWindows操作系統底層Windows API函數(應用程序接口)Windows應用
12、程序圖3協議堆疊圖Fig. 3Protocol Stack通訊模塊以及PLC主機本系統所應用的Ethernet通信模塊為臺達DVPEN01-SL,PLC主機為DVP32EH-L。DVPEN01-SL是臺達系列產品Ethernet通訊模塊7,支持Modbus/TCP通訊協議,可使用圖控軟件或人機界面做遠程監控。DVPEN01-SL也可以作為Modbus/TCP的主端,可發送 Modbus/TCP指令,控制周邊設備。通過DVPEN01-SL,可實現上位計算機與PLC主機的通信。串口通信可通過DB9轉8針圓頭RS-232串口線纜直接連接PLC與上位機。由于篇幅所限,DVPEN01-SL的具體設置以及
13、PLC主機的程序在此就不再贅述。硬件連接方式如圖4所示。圖4硬件連接示意圖Fig.4Hardware System Linking Sketch Map監控程序的編寫我們通過VB6.0,編寫上位機監控程序人機交互界面。在VB6.0中使用DMT2.0函式庫,必須首先匯入模塊(module),步驟如下:步驟一:將DMT.bas添加進項目。步驟二:復制DMT.dll到項目目錄下,如圖5所示。圖5模塊匯入Fig. 5Module Addition在臺達PLC中8,M1072為特殊輔助寄存器,以Modbus功能碼0 x05寫入單一線圈M1072為例,其Modbus起始位址0C30,設定線圈狀態為FF00
14、,PLC主程序為RUN,若設定0000則為STOP。程序編寫過程如下:首先聲明WIN32 API函數Private Declare Function inet_addr Lib wsock32.dll (ByVal s As String) As LongModbus 串行通信過程:步驟一:設定通信參數ComString=”0C30FF00” 0C30為地址,FF00為傳送數據conn_num = CInt(Mid(ComString,4,Len(ComString)取得串行口號,COM1parity = AscB(E)parity1 = AscB(N)comm_type = 0;通訊類型0:
15、串行通信datalen = 4請求數據長度步驟二:開啟串行通信If mode = 0 ThenCall OpenModbusSerial(conn_num,9600,7,parity,1,mode+1)Else Call OpenModbusSerial(conn_num,9600,8,parity1,1,mode+1)步驟三:數據存取Modbus數據請求Call RequestData(comm_type,conn_num,slav_addr,func_code,sendbuf(0),datalen)Modbus數據回復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步驟四:關閉通訊Call CloseSerial(conn_num)Modbus/TCP通信過程步驟一:設定通信參數conn_num=0;PLC站號為0remote_addr1=inet_addr()通信模塊IP地址為步驟二:開啟通信Call OpenModbusTCPSocket(conn_num,remote_a
17、ddr)步驟三:數據存取請求數據Call RequestData(idx,conn_num,slav_addr_s,func_code_s,sendbuf(0),4)應答數據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步驟四:關閉通信Cal
18、l CloseSocket(conn_num)本監控系統主要包括通信模式選擇,PLC運行指示,X軸運動監控,Y軸運動監控,輸入運行監控,以及報警信息界面,能夠滿足本項目的基本調試運行要求。程序運行界面如圖6所示。圖6監控程序運行界面Fig. 6Monitoring Program Interface結論為了對工業設備進行實時有效的監控,完善的兼容性,可靠的穩定性,對惡劣環境的適應性,強大的冗余能力和方便的可管理性,是人們越來越多地在Visual Basic(VB)平臺下開發上位機監控程序的原因,這也勢必成為本文所述通信方案在工業控制中大顯身手的重要契機。本方案整合了串口通信與Ethernet通信,使得上位機監控程序的開發更為簡單和方便,程序員從繁雜的通信控件設計編程工作中解放出來,也為工業現場實現冗余設計以及應急通信提供了安全可靠的方案,應用前景廣泛。本文所述程序已成功應用于臺達PLC運動控制系統的監控系統中,實驗證明,該程序安全可靠,運行正常穩定。參考文獻(References)1張輝,李榮利,王和平.Visual Basic串口通信及編程實例M.北京:化學工業出版社,2011.42關學進,劉娟.基于Modbus/TCP工業以太網的自
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 八年級物理(上冊)練習試題
- 小學生辯論賽課件
- 小學生課件兒歌視頻教學
- 10 必修1 第二單元 第9講 細胞呼吸的原理和應用
- 跨國項目數據合規審查與隱私保護服務協議
- 跨境電商采購合同糾紛解決與合規管理
- 文化場館安保服務勞務派遣合同
- 醫學常見病癥診斷與處理知識試卷含法洛四聯征等案例
- 2024-2025學年湖北省云學聯盟高一下學期5月月考歷史試題及答案
- 團隊管理實踐案例分析框架構建考核試卷
- 電工廠搬遷方案(3篇)
- 2025年南京市中考數學真題試卷
- 老年人眼科疾病
- 鋼板配送設計方案(3篇)
- 2025年內蒙古煤炭地質勘查(集團)一零九有限公司招聘筆試參考題庫含答案解析
- 中醫基礎學課件護理情志
- 小學三年級科學下冊教案
- T/CBMCA 039-2023陶瓷大板巖板裝修鑲貼應用規范
- 2025-2030中國美容美發行業市場現狀供需分析及投資評估規劃分析研究報告
- 2025年中國不銹鋼蝕刻板數據監測研究報告
- 免疫檢查點抑制劑相關肺炎診治和管理專家共識(2025)要點解讀
評論
0/150
提交評論