• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Modbus協(xié)議的聲學多普勒流速剖面儀軟件實現(xiàn)

      2015-09-08 10:13:47劉征宇陳允鋒陳夢英
      聲學技術 2015年3期
      關鍵詞:寄存器流速功能

      劉征宇,陳允鋒,陳夢英

      ?

      基于Modbus協(xié)議的聲學多普勒流速剖面儀軟件實現(xiàn)

      劉征宇1,陳允鋒1,陳夢英2

      (1. 海軍駐上海地區(qū)水聲導航軍事代表室,上海201108;2. 中國科學院聲學研究所東海研究站,上海200032)

      為了配合各地水情中心或預警預報系統(tǒng)的建設,研制了一款多普勒測流剖面儀,它具有真實反映流場,并且一次可以測量一個剖面上的若干層水流速度等優(yōu)點。首先對這款多普勒測流剖面儀的系統(tǒng)功能進行了描述,結合Modbus協(xié)議特點,給出了本系統(tǒng)的讀寫數(shù)據(jù)的Modbus通信實例;在TI的OMAPL137硬件和嵌入式Linux操作系統(tǒng)的基礎上,給出了實現(xiàn)Modbus RTU協(xié)議從站的設計方案;通過將從站采集到的水流速度傳輸至主站實時顯示驗證了該方案。實驗證明該方案有效地實現(xiàn)了多普勒流速剖面儀在水利系統(tǒng)的現(xiàn)場數(shù)據(jù)傳輸。

      多普勒流速剖面儀;Modbus協(xié)議;RTU傳輸模式;嵌入式Linux

      0 引言

      聲學多普勒流速剖面儀(Acoustic Doppler Current Profilers, ADCP),是20世紀80年代初發(fā)展起來的一種新型測流設備。它根據(jù)多普勒原理,應用矢量合成法,遙測流速的垂直剖面分布,對流場不產生任何擾動,不存在機械慣性和機械磨損,可以真實反映流場,并且一次可以測量一個剖面上若干層水流速度的三維分量和絕對方向。由于ADCP具有諸多優(yōu)點,所以它的出現(xiàn)立即引起了海洋界的高度重視。近年來ADCP測流技術發(fā)展很快,產品具有多種頻率,多種規(guī)格,多種測量方式[1]。本文介紹的一款ADCP測流及遙測系統(tǒng),可以配合水情中心或預警預報系統(tǒng)的建設,使得流速、流量的實時監(jiān)測數(shù)據(jù)的超遠程傳輸成為可能,便于有關部門更為及時、多層面地了解水文情勢并作出數(shù)據(jù)的及時處理和分析。

      隨著現(xiàn)代工業(yè)的發(fā)展,如今的工業(yè)控制已從單機控制走向集散控制、集中控制、集中監(jiān)控和網(wǎng)絡集約管理的時代,而工業(yè)控制器聯(lián)網(wǎng)也為網(wǎng)絡管理提供了方便。Modbus協(xié)議是一種通用通信協(xié)議。通過該協(xié)議,控制器相互之間、控制器經由網(wǎng)絡和其它設備之間可以實現(xiàn)數(shù)據(jù)通信。有了它,控制設備可以連成工業(yè)網(wǎng)絡,進行集中監(jiān)控,成為現(xiàn)代網(wǎng)絡式集中制造、管理的主流趨勢[2]。因此,研究基于Modbus協(xié)議的ADCP系統(tǒng)十分有必要。

      結合現(xiàn)代水聲設備小型化的要求,該設備的處理器采用TI公司的新款雙核OMAPL137芯片[3]。設備是遵循Modbus協(xié)議的從機,與遠程終端控制系統(tǒng)(Remote Terminal Unit, RTU)進行串口通信。物理層采用了RS485串口通信標準。本文將首先介紹ADCP要實現(xiàn)的整體功能,再介紹如何通過Modbus協(xié)議與RTU主機進行通信,最后給出了從機設計實現(xiàn)流程圖。

      1 ADCP系統(tǒng)功能

      本文研制的這款ADCP最大的特點是可以獨立工作,無人看守,并通過Modbus協(xié)議的方式進行遠距離控制和傳輸數(shù)據(jù)。ADCP的系統(tǒng)結構如圖1所示。它的核心處理器是一款具有ARM和DSP雙核的OMAPL137芯片。其中DSP核負責AD采集、信號處理,將流速計算結果傳給ARM核。而ARM核中安裝了嵌入式Linux操作系統(tǒng),是整個設備的核心,它負責控制DSP運算,接收計算結果,數(shù)據(jù)保存以及與遠程監(jiān)控主機進行Modbus通信等。

      RTU主機通過Modbus協(xié)議控制ADCP,實現(xiàn)工作狀態(tài)切換、參數(shù)設置以及數(shù)據(jù)傳輸。該系統(tǒng)的工作狀態(tài)包括自動測量、單次測量、自檢、預布設和待機等。測量參數(shù)設置包括盲區(qū)大小、測量單元大小和個數(shù)以及測流范圍等;測量數(shù)據(jù)需要保存、傳輸與管理;另外,還可以設置系統(tǒng)時間。數(shù)據(jù)傳輸是指遠程監(jiān)控主機通過發(fā)送讀取命令選擇讀取的層數(shù)和流速結果的形式,ADCP將流速數(shù)據(jù)結果上傳。具體功能框圖如圖2所示。

      2 ADCP中Modbus通信協(xié)議設計

      本節(jié)首先介紹Modbus通信協(xié)議的特點,結合協(xié)議的特殊性和ADCP的具體功能,設計了本設備的Modbus通信協(xié)議,并給出了讀取流速結果和同步系統(tǒng)時間的兩個通信實例。

      2.1 Modbus通信協(xié)議特點

      Modbus協(xié)議有ASCII和RTU兩種。RTU方式在同樣的波特率下可比ASCII方式傳送更多的數(shù)據(jù),本文采用Modbus RTU傳輸方式[4]。

      RTU模式下消息發(fā)送至少要以3.5個字符時間的停頓間隔開始。傳輸?shù)牡谝粋€域是設備地址??梢允褂玫膫鬏斪址鞘M制的0...9, A...F。網(wǎng)絡設備不斷偵測網(wǎng)絡總線,包括停頓間隔時間內。當?shù)谝粋€域(地址域)接收到消息時,每個設備都進行解碼以判斷消息是否是發(fā)往自己的。在最后一個傳輸字符之后,一個至少3.5個字符時間的停頓標定了消息的結束。一個新的消息可在此停頓后開始。

      2.2 ADCP的通信協(xié)議設計

      表1給出了Modbus RTU幀格式。其中起始位和結束符代表與前后幀的間隔不小于3.5個字符;CRC(Cyclic Redundancy Check, 循環(huán)冗余校驗)是校驗碼。

      表1 RTU幀格式

      表1中設備地址是通訊傳送的第一個字節(jié)。這個字節(jié)表示由用戶設定地址碼的從機將接收由主機發(fā)送來的消息。每個從機都有唯一的地址碼,并且響應均以各自的地址碼開始。即主機發(fā)送的地址碼表明將發(fā)送到的從機地址,而從機發(fā)送的地址碼表明回送的從機地址。

      功能碼是通訊傳送的第二個字節(jié)。本設備使用了其中的兩個功能碼:讀取碼03H和寫命令碼10H。作為主機請求發(fā)送,通過功能碼告訴從機執(zhí)行什么動作。作為從機響應,從機發(fā)送的功能碼與從主機發(fā)送來的功能碼一樣,并表明從機已響應主機進行操作。

      數(shù)據(jù)域是可變長的字段,具體格式和功能碼密切相關。表2給出了ADCP的部分RTU幀格式中數(shù)據(jù)域的定義。其中各寄存器首址是參數(shù)命令的起始地址,寄存器個數(shù)表示該參數(shù)所占字節(jié)數(shù),即字節(jié)數(shù)等于寄存器個數(shù)乘以2。

      表2 ADCP關于RTU幀格式的數(shù)據(jù)域定義

      2.3 讀取ADCP流速結果實例

      多個寄存器數(shù)據(jù)讀取使用03H(讀取保持寄存器)功能碼。數(shù)據(jù)讀取時可以單獨讀取某一參數(shù),也可以讀多個連續(xù)地址的參數(shù)。可以通過0x03命令讀取設備參數(shù)、測量數(shù)據(jù)等值。具體格式定義如下:

      主機發(fā)送幀:[儀表地址] [功能碼03] [寄存器起始地址高字節(jié)] [寄存器起始地址低字節(jié)] [讀取的寄存器數(shù)高字節(jié)] [讀取的寄存器數(shù)低字節(jié)] [CRC高字節(jié)] [CRC低字節(jié)]。

      從機接收數(shù)據(jù)幀后進行分析判斷,如數(shù)據(jù)有效則向主機發(fā)送相應幀,如無效則返回錯誤回應幀。

      從機響應幀:[儀表地址] [功能碼03] [返回的字節(jié)個數(shù)][數(shù)據(jù)1][數(shù)據(jù)2]...[數(shù)據(jù)n][CRC高字節(jié)] [CRC低字節(jié)]。其中,返回的字節(jié)個數(shù)是讀取的寄存器數(shù)的2倍。

      錯誤回應幀:[設備地址] [功能碼+0x80] [錯誤碼] [CRC高字節(jié)] [CRC低字節(jié)]。錯誤碼:0x01表示無效功能,0x02表示無效寄存器地址,0x03表示無效的數(shù)據(jù)。

      下面給出讀取第一層流速數(shù)據(jù)的實例。RTU主機發(fā)送幀格式如表3所示,數(shù)據(jù)域中包括寄存器首址和寄存器個數(shù),分別代表要讀取的第一層流速存儲地址和寄存器個數(shù)。ADCP響應幀格式如表4所示,數(shù)據(jù)域中數(shù)據(jù)字節(jié)數(shù)表示返回數(shù)據(jù)大小,數(shù)據(jù)1表示第一層X方向流速,數(shù)據(jù)2表示第一層Y方向流速。

      表3 主機發(fā)送幀格式(功能碼03H)

      表4 ADCP響應幀格式(功能碼03H)

      2.4 同步ADCP系統(tǒng)時間實例

      使用10H命令,每次允許寫一個或多個寄存器的值,設置多個寄存器時,設置的寄存器地址必須是連續(xù)的。可以通過10H命令設置設備參數(shù),同步時間等。具體格式定義如下:

      主機發(fā)送幀:[儀表地址] [功能碼10] [寄存器起始地址高字節(jié)] [寄存器起始地址低字節(jié)] [需寫的寄存器數(shù)高字節(jié)] [需寫的寄存器數(shù)低字節(jié)] [要寫的數(shù)據(jù)總的字節(jié)數(shù)] [數(shù)據(jù)1][數(shù)據(jù)2]...[數(shù)據(jù)n] [CRC高字節(jié)] [CRC低字節(jié)]。

      從機接收數(shù)據(jù)幀后進行分析判斷,如數(shù)據(jù)有效向主機發(fā)送相應幀,如無效則返回錯誤回應幀。

      從機響應幀:[儀表地址] [功能碼10] [寄存器起始地址高字節(jié)] [寄存器起始地址低字節(jié)] [寄存器數(shù)高字節(jié)] [寄存器數(shù)低字節(jié)] [CRC高字節(jié)] [CRC低字節(jié)]。

      錯誤回應幀:[儀表地址] [功能碼+0x80] [錯誤碼] [CRC高字節(jié)] [CRC低字節(jié)]。錯誤碼:0x01表示無效功能,0x02表示無效寄存器地址,0x03表示無效的數(shù)據(jù)。

      下面給出RTU主機對ADCP設備進行時間同步的實例。主機發(fā)送幀如表5所示,數(shù)據(jù)域給出了需要寫入的時間,13年10月16日13時17分19秒,當ADCP收到該幀,將立即修改系統(tǒng)時間,并回復響應幀如表6所示。

      表5 主機發(fā)送幀格式(功能碼10H)

      表6 從機響應幀格式(功能碼10H)

      3 ADCP中Modbus通信軟件的實現(xiàn)

      ADCP作為整個水情預報系統(tǒng)的一個觀測節(jié)點,是Modbus RTU從機,主要實現(xiàn)消息幀的接收和存儲,并根據(jù)接收到的消息幀執(zhí)行相應的行為,將響應幀反饋給主設備[5]。下面對本設備接收幀的超時檢測和接收幀處理流程分別進行闡述。

      3.1 Modbus幀的超時檢測

      ADCP通過超時檢測的方法來判斷每個幀的開始和結束。當串口接收到第一個字元時,精確的Linux系統(tǒng)計時器開始計時,若在3.5個字符時間內還沒有新的字元到達,則認為接收到一個Modbus協(xié)議RTU模式的消息幀,于是調用接收幀處理程序工作。其中3.5個字符所需時間與串口波特率有關。當波特率為9600時,對應時間為3.5*11/9600=4 ms。超時檢測軟件流程圖如圖3所示。

      3.2 Modbus RTU從機接收幀處理流程

      當ADCP通過超時檢測程序檢測出一幀信號后,進入接收幀處理流程,流程圖如圖4所示。Modbus RTU從機對收到的數(shù)據(jù)進行分析,如果地址位是本機地址的話,證明此次接收的數(shù)據(jù)是發(fā)送給本機的符合Modbus協(xié)議RTU模式的數(shù)據(jù),則對接收的數(shù)據(jù)進行CRC校驗。如果數(shù)據(jù)能夠通過CRC校驗,則證明此次接收的數(shù)據(jù)是一個完整的消息幀,可以對功能碼、寄存器地址、數(shù)據(jù)進行判斷,完成數(shù)據(jù)讀取、數(shù)據(jù)分析及數(shù)據(jù)處理的過程,并反饋響應幀給主機。其中執(zhí)行功能操作主要是完成以下幾點:解析消息幀,讀取功能代碼,跳轉執(zhí)行相應操作,并構造響應幀,將響應幀反饋至RTU主機。如果是錯誤信息,則根據(jù)錯誤碼構造錯誤回應幀,并將含有錯誤碼的消息幀發(fā)送給RTU主機。

      本系統(tǒng)在RTU傳輸模式下與主站進行了數(shù)據(jù)通信,測試結果正確無誤,能夠成功地完成Modbus通信中對數(shù)據(jù)的采集、處理和控制操作等要求。

      4 結論

      本文設計的這款多普勒流速剖面儀,采用Modbus協(xié)議的RS485總線進行通信傳輸,上位機控制中心實現(xiàn)遠程實時監(jiān)控。測試結果表明,本系統(tǒng)工作穩(wěn)定、可靠性強、操作方便。另外,該ADCP還可以多臺設備組網(wǎng),這樣使得遠程監(jiān)控各地區(qū)的水文情勢成為可能。本文設計軟件不僅僅針對水文監(jiān)控,只需要對系統(tǒng)進行較少的改動就能很好地適用于對大型設備進行通信的要求,具有很強的技術適應性。

      [1] 朱昊. 嵌入式數(shù)字ADCP信號處理系統(tǒng)的研究[D]. 天津: 天津大學工學碩士論文, 2003: 2-6.

      ZHU Hao. Study on embedded signal processing system of digital ADCP[D]. Tianjin: The Degree of Master of Tian Jin University, 2003: 2-6.

      [2] 王軍霞, 趙金龍, 程秀竹. MODBUS RTU通訊協(xié)議在S7-200 PLC中的應用[J]. 系統(tǒng)集成與工程應用, 2013, 144(4): 53-55.

      WANG Junxia, ZHAO Jinlong, CHENG Xiuzhu. Application of Modbus RTU communication protocol in S7-200 PLC[J]. System Integration and Engineering Application, 2013, 144(4): 53-55.

      [3] Texas Instruments. OMAP-L137 Low power applications processor data sheet[Z]. SPRS563C, 2009.12.

      [4] 翁建年, 史春華, 張浩. 基于ARM7微處理器的Modbus通信協(xié)議的實現(xiàn)[J]. 機電一體化, 2009, 13(6): 69-83.

      WENG Jiannian, SHI Chunhua, ZHANG Hao. Based on ARM7 realization of Modbus communication protocol[J]. Mechanical and Electrical Integration, 2009, 13(6): 69-83.

      [5] 張桂, 金國強, 李輝. 基于ARM平臺Modbus RTU協(xié)議的研究與實現(xiàn)[J]. 電力科學與工程, 2011, 27(1): 23-27.

      ZHANG Gui, JIN Guoqiang, LI Hui. Research and implementation of Modbus RTU protocol based on ARM[J]. Electric Power Science and Engineering Power Science and Engineering, 2011, 27(1): 23-27.

      Implementation of acoustic Doppler profilers based on Modbus protocol

      LIU Zheng-yu1, CHEN Yun-feng1, CHEN Meng-ying2

      (1. Military Representatives Office of Underwater Sound & Navigation System in Shanghai Area, Shanghai 201108, China;2. Shanghai Acoustic Laboratory, Institute of Acoustics, Chinese Academy of Sciences, Shanghai, 200032, China)

      In order to fit the construction of hydrologic information center or the early warning and forecasting system, an acoustic Doppler current profiler is developed, it can truly reflect the flow field, and get a current profilers through once measurement. In this paper firstly the system function of Doppler current profiler is described; and then secondly, combining the characteristic of Modbus protocol, an example of sending and receiving data is presented. Based on the OMAPL137 hardware and the embedded Linux operating system, a scheme of implementing of Modbus RTU protocol is realized. The scheme is verified by communication experiments. The experimental results show that this method can effectively carry out data transmission for acoustic Doppler current Profiler in data transmission of hydraulic system.

      Acoustic Doppler Current profilers; Modbus protocol; RTU transmission mode; Embedded Linux

      TB556

      A

      1000-3630(2015)-03-0260-05

      10.3969/j.issn1000-3630.2015.03.014

      2015-03-01;

      2015-06-03

      劉征宇(1981-), 男, 安徽銅陵人, 工程師, 研究方向為數(shù)字信號處理。

      陳夢英, E-mail: chen03051302@126.com

      猜你喜歡
      寄存器流速功能
      “流體壓強與流速的關系”知識鞏固
      也談詩的“功能”
      中華詩詞(2022年6期)2022-12-31 06:41:24
      『流體壓強與流速的關系』知識鞏固
      山雨欲來風滿樓之流體壓強與流速
      大眾科學(2020年7期)2020-10-26 09:24:30
      Lite寄存器模型的設計與實現(xiàn)
      計算機應用(2020年5期)2020-06-07 07:06:44
      愛虛張聲勢的水
      分簇結構向量寄存器分配策略研究*
      關于非首都功能疏解的幾點思考
      中西醫(yī)結合治療甲狀腺功能亢進癥31例
      辨證施護在輕度認知功能損害中的應用
      石台县| 盈江县| 西宁市| 罗江县| 磴口县| 南部县| 长沙市| 富阳市| 承德县| 长宁县| 桐庐县| 双桥区| 广德县| 金川县| 陵水| 乌兰县| 邯郸县| 中西区| 邵阳县| 伊川县| 淮安市| 巴林左旗| 临朐县| 鄂托克前旗| 兰溪市| 彰化市| 延安市| 万全县| 贡嘎县| 遵化市| 商都县| 彭阳县| 昌乐县| 鹿邑县| 封开县| 鄂伦春自治旗| 化德县| 黔西| 万源市| 东阳市| 梨树县|