渠薇 韓宗平 姜久慧 陸 毅 陶為戈 潘瑜 韓曉新
摘 要:Modbus協議是由Modicon公司在1979年研發的一種完全開放免費的總線通信協議,目前已經在工業領域得到了廣泛應用。因為現在將Modbus/TCP傳輸協議投放于工業控制中是可行而方便的,并且它的幀格式較為簡單易懂,所以先是簡明扼要地介紹了Modbus/TCP規范以及以太網芯片W5500,最后給出了一個基于W5500的Modbus/TCP服務器的系統設計。
關鍵詞:W5500;Modbus/TCP;服務器;控制系統
中圖分類號:TP393.09 文獻標識碼:A 文章編號:2095-7394(2018)02-0052-05
近年以來,以太網方面的網絡技術發展日新月異,工業控制也已經逐漸走向了集中監控、集散控制的形式,并且以以太網為代表的通信技術正逐漸成為工業控制發展中的新興方向。[1]到如今,利用最新網絡技術,為工業控制器連網來進行網絡管理提供了方便。
Modbus協議是屬于電子控制器上的一種網絡協議。因為就現在來看,以太網通信具有價格低、穩定性高和速率高等優點,所以就成為了應用最廣而且最受歡迎的通信網絡之一[2]。而不管現代工業控制領域持續不斷產生怎樣先進的概念,Modbus協議的簡單性使它能便于在許多通信媒體上實施應用,從而成為了應用最廣泛的工業協議。
1 基于工業以太網的 Modbus/TCP協議
1.1 工業以太網通信協議模型
現在常見的工業以太網的通信模型如圖 1所示[3]。
目前有兩種重要的網絡參考模型:開放式通信系統互聯網(OSI)七層參考模型和TCP五層參考模型。其中開放式通信系統互聯網(OSI)七層參考模型是由國際標準化組織制訂,而后者目前則是被國際互聯網(Internet)采用的一種通信模型。
OSI參考模型共分為七層,分別是:
(1)應用層(英文縮寫為APDU);(2)表示層(英文縮寫為PPDU);(3)會話層(英文縮寫為SPDU);(4)運輸層(英文縮寫為TPDU);(5)網絡層(報文);(6)數據鏈路層(以幀為單位);(7)物理層。
1.2 Modbus/TCP通信協議模型
當我們在使用Modbus協議進行有關通信時,此協議的作用是要能夠按地址識別發來的消息并判斷是否要讀取,再決定要產生出的怎樣的消息反應;如需要回應,應產生反饋信息并通過協議發送。數據鏈路層與物理層(見圖1)中常用IEEE802.3協議來執行功能。而在網絡層采用了IP協議,在傳輸層采用了TCP協議。它通過三次握手來完成TCP協議的面向連接,從而實現數據報的傳輸。
目前已知該通信協議比起其它協議具有以下幾個特點。
(1)一直以來,Modbus協議都是讓用戶可以免費獲取并且使用其作為通信協議的,內容都是完全公開發布的。
(2)Modbus協議是能夠與多種接口適配并且使用的,例如RS485接口、TCP/IP接口等等,應用廣泛;還可以使用多種介質進行傳輸,如紅外、雙絞線、光纖等等。
(3)在Modbus協議里用來流通的幀的格式較為簡單,方便人們理解和使用,廠商也容易開發和集成,方便形成工業控制網絡。
所以雖然Modbus協議已經發展到了極為成熟的階段,但仍是最為普及的通信方式之一,模型如圖2所示。
1.3 客戶端 / 服務器模式
在使用Modbus/TCP報文來進行各種服務時大多會采用一種客戶端/服務器的形式來進行信息交換與傳輸(但有時也會用于構建主/從架構),而此時所使用的報文模式就基于以下的四種報文類型[4]:
(1)Modbus請求;
(2)Modbus確認;
(3)Modbus指示;
(4)Modbus響應。
該通信模式框圖如圖 3所示。
1.4 以太網芯片W5500
以太網芯片W5500是目前在市面上推出的一款較新的以太網芯片之一,它的性能很高,其內部有能夠同其他許多硬件相結合的全硬件的TCP/IP協議棧。它能更簡易地實現互聯網的一些連接方案,不僅非常方便可靠,而且還有安全性高以及速度快等優點。我們將系統與W5500以太網芯片相結合,并將完整的Modbus協議棧移植到了里面,從而實現了Modbus /TCP協議的通信功能。
已知W5500的TCP/IP協議棧是可以支持TCP、UDP等多種協議的。我們在使用W5500芯片的時候,只需要使用簡單的Socket編程語句就可以實現我們所想要實現的一些以太網的應用[5]。用戶能夠自己在應用時使用這種芯片來進行網絡的配置,由于在以太網芯片W5500中已經存在了TCP/IP協議棧,所以使用W5500芯片比起其他的方案更加的簡單、方便。
通過W5500芯片所提供的外設接口,我們能夠將其更好地與外設結合起來,從而完成這方面的設計。并且,W5500芯片是使用了新型的SPI協議,這種協議性能較為高效,所以能夠達到高達80MHz的速率,體現了它的速率快的特點,并且能很好地且較為平穩地實現網絡通信的高速運行。W5500芯片還提供了兩種模式來讓客戶能夠有選擇更合適的模式:一是網絡喚醒(WOL)模式,二是掉電模式 [6] ,這是為了減少系統的功耗。
2 系統介紹與實驗分析
2.1 服務器端軟件設置
基于Modbus協議的在使用時具有傳輸實時性好以及可靠性等優點。又由于以太網資源應用廣泛,而Modbus協議對何種網絡進行通信不做要求,故系統選擇以太網作為傳輸網絡,并將TCP/IP作為傳輸協議,以Modbus協議作為通信協議[7]。
本實施例部分包括:以太網芯片W5500、Modbus協議模塊、Socket編程模塊(見圖4)。
在主函數中,調用Socket狀態機來實現Modbus /TCP。但在這之前,要對W5500以及Modbus協議棧進行初始化配置,其步驟如下:
(1)注冊W5500SPI接口回調函數;
(2)W5500Socket收發寄存器大小的初始化;
(3)W5500網絡初始化,主要配置的有網關地址、IP地址等等;
(4)MCU SPI接口初始化;
(5)FreeModbus的初始化和使能,等等。
2.2 實驗環境介紹
實驗是設計一種基于W5500的Modbus TCP服務器系統,其包括:以太網芯片W5500、Modbus協議模塊、Socket編程模塊等。
若開發板是服務器,電腦網絡軟件就是可以作為客戶端來使用,所以選擇協議類型為:TCP_Client??蛻舳诵枰B接服務器,也就需要服務器的 ip,再次填寫ip,這個網絡參數,在實驗的時候,可以自己設置。服務器的端口號為5000(這是要看你的具體設備屬性的),如果要改變端口號的話,要注意使用修改后的端口號,在這里就用5000為端口號。設置好上面的 3 個參數后,點擊連接。觀察窗口如圖5所示。
2.3 實驗結果與分析
在測試過程中,采用了工程現場常用的、專業的抓包工具軟件Wireshark,來對實驗效果來進行進行測試[8],假設我們使用的PC機用來作為客戶機,設置實驗下載了系統的W5500芯片的部分作為服務器來使用,在此處將IP地址設為192.168.0.60,子網掩碼設為255.255.255.0(子網掩碼在各個PC機上大多數都是相同的,所以基本上是不會變的),網關地址設置為192.168.0.1??蛻魴CIP地址設為192.168.0.40,而在這里只要設置的客戶機的IP地址與服務器的IP地址在同一個網段就可以,子網掩碼和網關地址設置與服務器相同。在經過了一段時間的測試網絡連接與觀察抓包數據后,解決了一些連接和抓取時的問題,最終所測試出來的客戶端的情況是:讀取數據基本正確、刷新也十分及時,并沒有出現超時等異常的情況,可以進行正常的以太網客戶端/服務器的數據收發,表明了這款Modbus TCP服務器能夠較好地支持與客戶端的連接并正確讀取數據,保持通信順暢。
3 結語
基于W5500的ModbusTCP服務器系統設計具有實時性、效率高等特點。介紹了Modbus/TCP協議的各個方面,以及此次需要用到的主要硬件部分也是主要的芯片W5500。設計出了一種基于Mobus/TCP的工業以太網的服務器系統,而在研究協議內容的基礎上,還詳細地介紹和設計了該服務器系統的各種框圖狀況、部件結構等。觀察串口成功通信和成功抓包驗證的結果可以表明,本次設計的控制系統各項功均能基本實現。
參考文獻:
[1] 胡文翔,蔡政,郭偉瑋,等.面向RS-485控制網絡的Modbus協議擴展及應用[J].自動化儀表,2013,34(04):59-61+65.
[2] 姜斌,劉彥呈,孫凡金,等.基于Modbus/TCP的工業控制網絡設計[J].低壓電器,2007(13):30-33.
[3] 徐銀生,王昕.基于以太網的Modbus/TCP協議的實時性研究[J].微計算機應用,2007(12):1256-1259.
[4] 司馬莉萍,賀貴明,陳明榜.基于Modbus/TCP協議的工業控制通信[J].計算機應用,2005(S1):29-31.
[5] 王廣維,張浩然.基于ARM和W5100的嵌入式以太網通信接口設計[J].微型機與應用,2001 ,30(5):50-53
[6] 黃大昌,丁力.單片機和硬協議棧的Modbus TCP通信方案[J].單片機與嵌入式系統應用,2016,16(6):17-20.
[7] 鄭豐收,李艾華,王寶貴.基于MODBUS和TCP/IP協議的溫濕度監控系統[J].中國儀器儀表,2011(10):53-56.
[8] 俞野秋,陳堅.Modbus和Modbus-TCP協議轉換研究[J].儀表技術,2013(01):28-31.
A ModbusTCP Server System Based on W5500
QU Wei ,HAN Zong-Ping,JIANG Jiou-Hui ,LU Yi ,TAO Wei-Ge,PAN Yu,HAN Xiao-Xin
(School of Electricity and Information Engineering, Jiangsu University of Technology, Changzhou 213001, China)
Abstract: The Modbus protocol, a fully open and free bus communication protocol developed by Modicon company in 1979, has been widely used in the industrial field and has been widely used in the field of [1]. Because it is feasible and convenient to put Modbus/TCP transport protocol in industrial control now, and its frame format is simple and easy to understand, so in this paper, the Modbus/TCP specification and Ethernet chip W5500 are introduced briefly and briefly. Finally, a system design of Modbus/TCP server based on W5500 is given.
Key words: W5500; Modbus/TCP; server; control system
責任編輯 張志釗