《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 多路隔離的Modbus協議轉換器的設計
多路隔離的Modbus協議轉換器的設計
2016年電子技術應用第10期
吳志杰,王新霞,孔凡敏,李 康
山東大學 信息科學與工程學院,山東 濟南250100
摘要: 在工業領域中,基于Modbus RTU協議的設備被廣泛應用,可主控機不能通過以太網隔離控制多路設備。設計了一種協議轉換器以解決上述問題,并可用手機端控制設備。本設計以ARM和HLK-RM04為基礎,完成Modbus RTU數據向TCP數據的轉換,并用SLIP協議打包數據,使用ADM2587E實現物理隔離,利用Delphi語言開發了上位機軟件控制設備。本設計已在水蓄冷控制系統中得到了運用,工程應用前景廣闊。
中圖分類號: TP336
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.10.019
中文引用格式: 吳志杰,王新霞,孔凡敏,等. 多路隔離的Modbus協議轉換器的設計[J].電子技術應用,2016,42(10):77-79.
英文引用格式: Wu Zhijie,Wang Xinxia,Kong Fanmin,et al. Design of multiple isolated Modbus protocol converter[J].Application of Electronic Technique,2016,42(10):77-79.
Design of multiple isolated Modbus protocol converter
Wu Zhijie,Wang Xinxia,Kong Fanmin,Li Kang
School of Information Science Engineering,Shandong University,Jinan 250100,China
Abstract: In the industry system, the equipment based on Modbus RTU protocol is widely used,but master control machine doesn′t control multiple equipment isolated through Ethernet. This paper designed a protocol converter in order to solve this problem. Also,it was viable to use the mobile phone to control the equipment. This protocol converter was based on the ARM and HLK-RM04. The Modbus RTU data was converted into TCP data by using the converter. This converter used SLIP protocol to pack the data and ADM2587E to isolate multiple equipment. PC software was also developed,which used Delphi to control the equipment. This design has been applied in the water storage air conditioning control system,and it has a broad prospect in engineering application.
Key words : ARM;HLK-RM04;ADM2587E;Modbus;SLIP;Delphi;multiple isolated;protocol conversion

0 引言

    隨著控制、計算機、通信、網絡等技術的發展,Internet正在把全世界的計算機系統和通信網絡逐漸集成起來,形成信息高速公路,形成公用數據網絡,而在此基礎上,傳統的工業控制領域也正經歷一場前所未有的變革,開始向網絡化方向發展,形成新的控制網絡[1]。以太網作為一種具有高速數據傳輸能力的網絡成為了大多數工業控制網絡的選擇,而將控制系統中需要用到的各種儀器接入以太網進行集中隔離控制成為一項重要的課題。在水蓄冷控制系統中大多數底層的電子設備的接口為RS485接口,通信協議為Modbus RTU,本文設計了一種多路隔離的協議轉換器來解決這個問題,并可拓展為用手機通過WiFi來控制設備。

1 轉換器涉及通信協議介紹

1.1 Modbus RTU協議

    Modbus串行鏈路協議包括RTU模式和ASCII模式,本設計用到的為Modbus RTU模式。

    Modbus RTU的幀格式有兩種:一種是主機發起的查詢和命令從設備的格式,另一種是從設備收到主機命令后的應答格式。兩種格式在大多數情況下相同,如表1所示。

ck2-b1.gif

    從機地址:地址信息為1 B,表示要接收命令或發出應答響應的從設備的地址。從設備的地址的合法范圍是0~247(十進制),主機將要查詢或命令的從設備地址信息放入從機地址區內,選擇對應的從設備,而從設備將自己的地址信息放入從機地址區內來響應主機,告訴主機是誰作出響應。

    功能碼:功能碼為1 B,表示主機要求從設備進行何種操作,或者從設備應答的數據為何種操作下得到的數據。在控制系統中經常用到的讀取從設備狀態的功能碼有:0x01,0x02,0x03,0x04;用來設定從設備狀態的功能碼有0x05和0x06。Modbus協議的各常用功能碼對應功能如表2所示。

ck2-b2.gif

    數據域:數據信息的字節數根據功能碼而異,表示主機對從設備的狀態的設定,或者主機讀取的從設備寄存器數據。當主機設定線圈或者寄存器時,命令格式的數據域和圖1一樣,而如果要讀取狀態時,則數據域的第一段為狀態數據的個數。數據的格式為高字節在前,低字節在后。

    校驗碼:校驗碼為2 B,RTU模式下使用CRC校驗碼,是由發送設備輸出的數據計算得到,在接收數據時先用同一方法再算一次CRC,若相同則接收,若不同則丟棄,以此來校驗傳輸的數據是否有誤。

1.2 Modbus over TCP協議

    基于Modbus over TCP協議的設備可以直接接入以太網,無需經過協議轉換器,本系統中只有少數設備是基于該協議的,因此不做詳細介紹。

1.3 SLIP協議

    SLIP協議是一種在串行線路上傳輸數據的協議,如果使用SLIP協議來進行通信,則目標IP地址和源IP地址都必須已知[2]。SLIP協議是鏈路層協議,只能和TCP/IP一起使用。由于本設計可以接入3個RS-485接口的設備,只有一個輸出數據的串口,3路數據可能同時發送,所以需要一種對數據打包的協議來實現,而設備只需接入以太網進行監控,并且TCP/IP提供了很好的可靠性保證,所以SLIP協議能很好地滿足這個需求。

    SLIP協議定義了2個特殊的字符:END(0xC0)和ESC(0xDB)。需要打包的數據在開頭和結尾加入一個END字符,END字符標志著數據的開始和結束。如果傳輸的數據中包含END字符,就會造成錯誤的接收和結束,所以引入ESC字符來防止這種情況的發生。傳輸原始數據中存在的END字符轉換為ESC(0xDB)或ESC-END(0xDC),而存在的ESC字符則轉換為ESC(0xDB)或ESC-ESC(0xDD)[3]。SLIP協議對應的數據封裝過程如圖1所示。

ck2-t1.gif

2 設計實現

    協議轉換器的系統框圖如圖2所示。

ck2-t2.gif

2.1 ARM模塊

    本協議轉換器的主控模塊使用ARM,選擇了32 bit的ARM(Atmel SAM3X8E),它擁有84 MHz的CPU時鐘頻率、96 KB的SRAM、512 KB的Flash和54個數字I/O口。4路UART硬件串口用來進行串行通信,其中3路串口用來連接協議轉換機箱的3路RS485串口,另外一個串口用來傳輸SLIP協議打包的數據。未使用的I/O口可以用來輸出控制閥門繼電器,并且可以顯示閥門開關的到位指示,圖3為軟件流程圖。

ck2-t3.gif

    運用ARM開發工具來進行設備數據的處理,先對串口的波特率、I/O口的輸入輸出模式等進行初始化,然后對數據處理過程中的各個函數進行定義。下面對幾個主要函數進行說明。

    先定義函數calcCRC16用于計算Modbus RTU的CRC16校驗碼。當主機對從設備發出請求時,請求數據通過以太網傳輸過來,經過串口進入ARM進行解包處理,并識別出請求是發送給哪個從設備的,從而將相應數據傳送給對應設備的串口,這個過程由processNetworkData函數實現。

    當從設備響應主機發出的請求時,通過RS-485接口傳輸的數據格式為Modbus RTU,消息幀需要通過SLIP協議進行打包,因此定義一個sendSlipPacket函數,然后定義函數來處理對應RS485端口接收到的數據。若判斷數據包還沒有接收完,則不進行處理,返回。若數據包處于接收錯誤狀態(超長,數據錯誤等),則清空接收緩沖區并返回。若收到一個完整的數據包,則SLIP編碼后由網絡端口(Serial)發送。

2.2 串口轉以太網模塊

    經SLIP協議打包的Modbus RTU數據通過串口發送后,并不能進入以太網進行傳輸,因此采用了深圳海凌科電子有限公司的HLK-RM04。RM04模塊是海凌科電子推出的嵌入式UART-ETH-WIFI(串口-以太網-無線)模塊,內置TCP/IP協議棧,能夠實現用戶串口、以太網、無線(WiFi)3個接口之間的轉換,傳統的串口設備在不需要更改任何設置的情況下,即可通過網絡傳輸數據。

    先通過網線將模塊與PC相連接,進入模塊配置界面來設定模塊的IP地址、網關、網絡協議等。將RM04的模式設為TCP Server,該模式下模塊監聽指定端口,等待TCP Client連接,連接成功后,模塊將串口TCP數據發送給連接的各個TCP Client,如圖4所示。將ARM模塊的輸出串口與RM04模塊的串口相連,就可以把Modbus RTU數據轉換成TCP數據,并通過以太網傳輸。

ck2-t4.gif

2.3 從設備隔離部分

    RS485接口的設備大多工作在工業自動化領域,特別容易受到失控電壓和電流所帶來的負面影響,所以有必要在通信總線與邏輯控制器之間進行電氣隔離。另外,本設計是對多路數據進行轉換,為了防止各路信號的相互串擾和電氣噪聲的影響,隔離必不可少。

    本設計使用了ADI公司的ADM2587E芯片,它提供了RS485通信的完整隔離方案。ADM2587E內部集成了運用isopower技術的DC/DC隔離電源,在單個封裝內還集成了三通道隔離器、三態差分線路驅動器和差分輸入接收機,保護功能好,而且其體積小、功耗小,大大減少了占用電路板的面積。

2.4 上位機設計

    在本控制系統中,要在主機端控制底層的電子設備,需要開發對應的上位機軟件來進行控制和監測。本上位機使用Delphi語言在XE7平臺下設計。

    基于Modbus協議的設備都屬于新建的父類TModbus,然后分為TModbusoverslip類和TModbusovertcp類,這些類屬于通信協議類。

    本設計的系統接口也需要建立類TTcpclient,這個類基于TWSocket類,TWSocket類的作用是將Windows Socket封裝起來,TTcpclient起到了TCP客戶端的作用,負責連接Server端,并進行數據處理。

    為了使得工作人員在主機端便利地控制各種設備,控制界面應美觀,因此建立了基于TPanel的類TDevGUI,系統界面中的圖形都基于此類。

3 協議轉換器的拓展功能

    隨著移動通信的不斷發展,手機成為了每個人必不可少的工具,所以考慮加入手機端對電子設備的控制,這樣工作人員就可以方便地查看設備的工作狀態,而且在本設計中使用的HLK-RM04模塊還支持串口轉WiFi功能,這就使得構想成為了可能。

    通過RM04模塊配置界面將模塊工作方式設定為WiFi AP模式,手機作為客戶端來連接WiFi,將ARM中未使用的2個I/O口拓展為串口,進而控制設備。

4 結束語

    本文對水蓄冷控制系統中無法使用主機通過以太網控制設備的問題進行了討論,提出了一種工業中實用的多路隔離的Modbus協議轉換器的設計方法。本協議轉換器已投入使用,穩定性強,安全性好。

參考文獻

[1] 賈東耀,汪仁煌.工業控制網絡結構的發展趨勢[J].工業儀表與自動化裝置,2002(5):12-14.

[2] SHANMUGAM R,PADMINI R,NIVEDITA S.TCP/IP詳解[M].尹浩瓊,李劍,譯.北京:電子工業出版社,2003.

[3] 吳明光,崔家林,陳冠雄.串行網際協議在記錄儀通信中的應用[J].科技通報,2005,21(5):612-614.

[4] 沈建華.ARM處理器與嵌入式系統[J].單片機與嵌入式系統應用,2010(11):5-7.

[5] 俞野秋,陳堅.Modbus和Modbus-TCP協議轉換研究[J].儀表技術,2013(1):28-31.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
在线播放一区| 99国产精品自拍| 欧美日韩精品国产| 久久人人爽爽爽人久久久| 亚洲男同1069视频| 正在播放欧美一区| 99pao成人国产永久免费视频| 亚洲精品1区2区| 亚洲二区精品| 亚洲国产精品第一区二区三区| 欧美在线免费播放| 久久国产高清| 亚洲国产精品福利| 亚洲精华国产欧美| 亚洲免费高清| 一区二区三区产品免费精品久久75 | 亚洲欧美日韩国产另类专区| 亚洲一区久久久| 亚洲欧美一区二区激情| 午夜在线电影亚洲一区| 欧美一区二区三区在线看 | 亚洲欧美日韩国产另类专区| 亚洲欧美日韩在线一区| 欧美综合激情网| 久久一区二区三区四区五区| 免费成人av资源网| 欧美激情综合在线| 欧美日本中文| 国产精品毛片一区二区三区| 国产视频一区二区在线观看| 一区二区在线观看视频| 亚洲高清不卡在线| 一本色道久久综合狠狠躁篇怎么玩| 亚洲欧洲一区二区三区在线观看 | 亚洲欧美在线观看| 久久超碰97人人做人人爱| 亚洲欧洲日本在线| 在线亚洲精品福利网址导航| 亚洲欧美国产精品桃花| 久久福利资源站| 欧美a级片网| 欧美日韩综合网| 国产伦精品一区二区三区在线观看| 国产主播一区二区| 亚洲九九精品| 午夜精品一区二区三区在线视| 亚洲国产91| 亚洲午夜伦理| 久久三级福利| 欧美日韩在线三级| 国模精品一区二区三区色天香| 亚洲国产精品久久| 亚洲一区二区在线观看视频| 亚洲国产成人精品久久久国产成人一区| 亚洲精品乱码| 性做久久久久久| 欧美国产日韩在线观看| 国产精品美腿一区在线看 | 欧美日韩久久久久久| 国产欧美日韩三区| 亚洲韩国青草视频| 亚洲欧美国内爽妇网| 亚洲精品免费网站| 欧美一级淫片播放口| 欧美a级片网站| 国产日本欧美一区二区| 亚洲精品视频免费| 欧美在线视频a| 亚洲午夜久久久久久尤物| 久久伊人一区二区| 国产精品盗摄久久久| 伊人一区二区三区久久精品| 中文日韩在线| 亚洲久久视频| 久久久久久久一区二区| 国产精品www| 亚洲国产婷婷香蕉久久久久久| 午夜精品视频在线| 亚洲天堂网在线观看| 欧美高清日韩| 国产亚洲一级高清| 在线中文字幕不卡| 日韩视频在线免费观看| 久久精品视频在线播放| 国产精品二区在线观看| 亚洲精品色婷婷福利天堂| 亚洲国产精品欧美一二99| 欧美一区=区| 欧美午夜精品理论片a级按摩| 在线播放中文一区| 欧美伊久线香蕉线新在线| 亚洲自拍偷拍色片视频| 欧美日韩人人澡狠狠躁视频| 亚洲黄色av| 亚洲国产成人久久综合| 久久久91精品国产| 国产精品网站在线播放| 亚洲最黄网站| 一区二区三区欧美在线| 欧美激情亚洲自拍| 在线免费观看一区二区三区| 久久精品视频在线| 久久不射电影网| 国产欧美一区二区三区久久 | 一本色道久久综合亚洲二区三区| 麻豆av福利av久久av| 国内综合精品午夜久久资源| 亚洲摸下面视频| 午夜精品久久久久久久男人的天堂 | 在线观看日韩av先锋影音电影院| 欧美中文字幕在线观看| 久久9热精品视频| 国产性猛交xxxx免费看久久| 午夜欧美视频| 久久成年人视频| 国产欧美一区二区精品仙草咪| 亚洲欧美日韩一区在线观看| 小黄鸭精品密入口导航| 国产精品午夜在线| 西瓜成人精品人成网站| 欧美在线免费观看视频| 国产女人精品视频| 午夜久久tv| 久久精品人人爽| 国内欧美视频一区二区| 亚洲福利视频网站| 毛片基地黄久久久久久天堂| 在线播放亚洲| 99香蕉国产精品偷在线观看| 欧美精品导航| 亚洲精品乱码久久久久久黑人| 夜夜嗨av一区二区三区四区| 欧美三级视频在线观看| 亚洲婷婷在线| 欧美一区二区三区的| 国产深夜精品| 亚洲第一页自拍| 欧美激情影音先锋| 宅男噜噜噜66国产日韩在线观看| 亚洲专区国产精品| 国产欧美日韩精品在线| 亚洲第一精品久久忘忧草社区| 欧美不卡在线视频| 亚洲精品国产精品国自产在线 | 欧美猛交免费看| 一区二区三区日韩欧美精品| 欧美一区在线直播| 国外成人免费视频| 亚洲狼人综合| 国产精品v片在线观看不卡| 新狼窝色av性久久久久久| 浪潮色综合久久天堂| 亚洲精品久久久久久久久久久久久 | 欧美日韩综合精品| 亚洲欧美精品一区| 麻豆国产精品va在线观看不卡| 亚洲美女精品久久| 欧美一区二区三区在线观看| 在线欧美视频| 亚洲一区日韩在线| 国内精品视频在线播放| 亚洲免费观看| 国产欧美日韩视频一区二区三区| 久久精品国产第一区二区三区| 欧美精品一区二区久久婷婷 | 欧美一区二区三区四区在线| 欧美成人亚洲成人日韩成人| 一本久久综合亚洲鲁鲁| 久久精品国产欧美激情| 最新日韩欧美| 欧美在线播放| 亚洲人精品午夜在线观看| 亚洲欧美色一区| 亚洲大胆人体在线| 亚洲欧美日韩在线播放| 在线成人h网| 亚洲欧美在线视频观看| 亚洲福利一区| 先锋影院在线亚洲| 亚洲人成在线播放| 久久久久久久久久看片| 一区二区精品在线| 久热精品在线视频| 一区二区三区产品免费精品久久75 | 香港久久久电影| 91久久中文字幕| 久久九九精品| 中国av一区| 欧美成人午夜激情视频| 欧美一级艳片视频免费观看| 欧美日韩在线不卡一区| 亚洲国产精品久久久久婷婷老年 | 精品不卡在线| 欧美一级一区| 亚洲视频播放| 欧美精品 国产精品| 欧美自拍偷拍| 国产精品三级久久久久久电影| 亚洲开发第一视频在线播放| 国产一区二区三区四区在线观看|