• 
    

    
    

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

      ?

      基于MODBUS RTU協(xié)議的數(shù)據(jù)采集及控制模擬研究

      2015-10-09 12:36:19朱姣
      軟件導(dǎo)刊 2015年9期
      關(guān)鍵詞:組態(tài)軟件數(shù)據(jù)采集

      朱姣

      摘 要:通過對Modbus RTU協(xié)議的詳細分析,基于AT91SAM7X256單片機功能,開發(fā)了一種關(guān)于抽油機控制器數(shù)據(jù)采集及模擬的上位機軟件。以4~20mA的模擬量作為輸入,按照一定規(guī)約轉(zhuǎn)換后的工程值存儲在AT91SAM7X256單片機的寄存器中,基于C#實現(xiàn)的上位機軟件通過Modbus RTU協(xié)議進行數(shù)據(jù)采集,通過組態(tài)軟件實現(xiàn)控制模擬。

      關(guān)鍵詞:Modbus RTU協(xié)議;數(shù)據(jù)采集;控制模擬;組態(tài)軟件

      DOIDOI:10.11907/rjdk.151609

      中圖分類號:TP302

      文獻標識碼:A 文章編號文章編號:16727800(2015)009003403

      0 引言

      Modbus協(xié)議已經(jīng)成為我國工業(yè)自動化網(wǎng)絡(luò)協(xié)議規(guī)范的國家標準之一,國內(nèi)許多廠商的產(chǎn)品或系統(tǒng)均支持該協(xié)議[1]。Modbus協(xié)議是由Modicon公司在1979年開發(fā)出來的網(wǎng)絡(luò)協(xié)議,是第一個真正意義上用于工業(yè)現(xiàn)場的總線協(xié)議,它定義了設(shè)備與設(shè)備之間的信息傳輸方式,使控制器之間、控制器和其它設(shè)備之間可以進行通信和數(shù)據(jù)傳輸 [2]。文獻[1]介紹了一種基于MSP430單片機的Modbus協(xié)議軟件設(shè)計方法,只是簡單地將通信過程分為4個階段,未涉及采集到的數(shù)據(jù)。文獻[3]把特定數(shù)據(jù)從單片機的存儲設(shè)備里讀取出來,作適當處理后存儲到數(shù)據(jù)庫中并顯示部分數(shù)據(jù),而在現(xiàn)場工業(yè)控制過程中往往需要的是實時數(shù)據(jù),所以數(shù)據(jù)庫的設(shè)計顯得有些冗余。文獻[4]開發(fā)設(shè)計了一款上位機仿真軟件,為數(shù)據(jù)采集系統(tǒng)調(diào)試、檢驗提供了便捷的手段,但是不能直觀仿真顯示采集數(shù)據(jù)的信息。為了使人們更加直觀地看到采集的數(shù)據(jù),通過對Modbus協(xié)議實用案例的分析和研究,本設(shè)計進行了完善,并采用組態(tài)軟件實現(xiàn)了數(shù)據(jù)的顯示,達到了數(shù)據(jù)采集與控制模擬的目的。

      1 系統(tǒng)總體結(jié)構(gòu)

      系統(tǒng)體系結(jié)構(gòu)如圖1所示。該系統(tǒng)主要包括5大功能區(qū),各功能模塊如下:

      (1) 模擬量4~20mA:根據(jù)CPU以及外圍設(shè)備正常工作時所需要的供電電壓,選取合適的電阻值,從而獲得模擬量4~20mA的電流值作為輸入。

      (2) CPU:中央處理單元,專用于對采集到的數(shù)據(jù)進行處理的單元模塊。本設(shè)計中通過I/O口接收輸入的模擬量,再通過A/D轉(zhuǎn)化模塊將模擬量轉(zhuǎn)為數(shù)字量并存儲在CPU的Registers中。

      (3) Modbus Data:一旦下位機(從站)接收到上位機(主站)下達的正確命令,則從站立刻將CPU所存儲的數(shù)據(jù)進行處理,遵照Modbus RTU協(xié)議規(guī)范,形成Modbus ADU數(shù)據(jù)包,通過串口發(fā)送出去。

      (4) 上位機:基于C#編寫實時顯示數(shù)據(jù)軟件。接收來自串口傳送的數(shù)據(jù)包,按照Modbus RTU協(xié)議對數(shù)據(jù)包進行解析,獲得要顯示的數(shù)據(jù)。

      (5) 組態(tài)軟件:使用Espider 力控6.0組態(tài)軟件直觀顯示數(shù)據(jù)。

      圖1 系統(tǒng)結(jié)構(gòu)

      2 系統(tǒng)設(shè)計

      2.1 硬件電路設(shè)計

      2.1.1 單片機電源模塊

      AT91SAM7X256是基于32位ARM RISC處理器系列微控制器中的一員,集成有256K字節(jié)的高速Flash和64K字節(jié)的SRAM和全套外圍設(shè)備。硬件系統(tǒng)采用24V電源作為輸入電壓,經(jīng)過兩次電路轉(zhuǎn)換(先由24V轉(zhuǎn)為5V,再由5V通過內(nèi)部電路轉(zhuǎn)為3.3V)后給AT91SAM7X256管腳VDDIN等提供輸入標稱值為3.3V的電壓,AT91SAM7X256工作后通過VDDOUT管腳輸出1.8V電壓為各個邏輯部件供電。

      2.1.2 串口通信模塊

      系統(tǒng)采用通用的RS232作為串口通信。通過CPU各個管腳PA3、PA4、RXD1、TXD1和VDD3.3與轉(zhuǎn)換芯片連接,達到串口數(shù)據(jù)收發(fā)的目的。

      2.2 軟件設(shè)計

      軟件設(shè)計包含3部分:上位機PC界面設(shè)計、組態(tài)軟件設(shè)計以及下位機控制系統(tǒng)設(shè)計。

      2.2.1 上位機軟件設(shè)計

      上位機軟件主要完成本機設(shè)置和數(shù)據(jù)實時顯示2個任務(wù)。本機設(shè)置包括對串口通信的設(shè)置:選擇串口,設(shè)置串口(本系統(tǒng)采用默認的串口屬性設(shè)置。波特率是9 600,數(shù)據(jù)位是8,停止位是1,無校驗位),打開串口。串口打開成功即進入數(shù)據(jù)顯示界面,打開失敗則提示重新選擇正確串口。實時顯示數(shù)據(jù)的變化,開機按鈕起到上載數(shù)據(jù)的作用,關(guān)機按鈕則用于停止上位機與下位機的通信。上位機軟件設(shè)計流程如圖2所示。

      圖2 上位機軟件流程

      2.2.2 組態(tài)軟件設(shè)計

      在Espider軟件中進行組態(tài)界面設(shè)計。本系統(tǒng)通過串口對變量包括數(shù)據(jù)庫組態(tài)和IO設(shè)備組態(tài)進行設(shè)置,選擇標準的Modbus RTU協(xié)議串行口,并對內(nèi)存區(qū)、偏置和數(shù)據(jù)格式進行設(shè)置,用以在界面上顯示相應(yīng)的實時數(shù)據(jù)。

      2.2.3 下位機控制系統(tǒng)

      控制系統(tǒng)完成數(shù)據(jù)的采集及發(fā)送功能。系統(tǒng)上電后進入初始化,一切準備工作就緒后,等待上位機命令,一旦接收到發(fā)送來的數(shù)據(jù)即按命令進行處理,隨后將所需數(shù)據(jù)發(fā)送到上位機實時顯示??刂葡到y(tǒng)部分流程如圖3所示。

      3 MODBUS 通信協(xié)議

      目前,Modbus通信協(xié)議是工業(yè)控制領(lǐng)域最為流行的協(xié)議,主要分為3種類型:Modbus RTU、Modbus ASCII和Modbus TCP/IP。通信協(xié)議棧結(jié)構(gòu)見圖4。Modbus協(xié)議采用主從工作方式,允許一臺主機和多臺從機進行通信,從機地址由用戶設(shè)定。地址范圍為1-255,地址0用作廣播地址,所有主機把它當作一條命令來執(zhí)行,從設(shè)備不作任何回應(yīng)[5]。本設(shè)計采用Modbus RTU協(xié)議,因為RTU模式規(guī)定了消息、數(shù)據(jù)的結(jié)構(gòu)、命令和應(yīng)答方式。在校驗上,RTU模式采用16位CRC校驗[6],CRC校驗保證了數(shù)據(jù)傳輸?shù)恼_性。在Modbus 協(xié)議中,一般CRC產(chǎn)生的校驗數(shù)據(jù)位于Modbus ADU的后兩個字節(jié),比如在本設(shè)計中,主站上位機需要向下位機寫入的數(shù)據(jù)是:0x00 0x00 0x00 0x04,按照圖5,先后加入從地址(系統(tǒng)默認為1)、功能碼和校驗位形成Modbus ADU(0x01 0x03 0x00 0x00 0x00 0x04 0x44 0x09),再通過串口發(fā)送給下位機,下位機再對接收到的數(shù)據(jù)包進行解析,從而得知要執(zhí)行的動作,并將上位機所需的數(shù)據(jù)(0x01 0x03 0x08 0x00 0x1a 0x00 0x1e 0x00 0x09 0x00 0x1a 0xd7 0xdd)以同樣的方式傳送給上位機。收到的數(shù)據(jù)同樣包括站號和功能碼,該處功能碼是3,最后兩字節(jié)是校驗位,0x08表示返回的數(shù)據(jù)字節(jié)數(shù)。數(shù)據(jù)位采用大端模式,0x00 0x1a 0x00 0x1e 0x00 0x09 0x00 0x1a分別表示十進制數(shù)26,30,9,26。

      圖3 控制系統(tǒng)流程

      圖4 MODBUS通信協(xié)議棧

      根據(jù)標準Modbus協(xié)議規(guī)范(Modbus 通用數(shù)據(jù)幀如圖5所示),通過串口通信的ADU(Application Data Unit)最大字節(jié)長度為256 bytes,所以在通信過程中PDU長度是:256-Server address(1 byte 從地址)-CRC(2 byte CRC校驗)=253 bytes。

      Server address:從地址。用于標識和上位機通信的下位機模塊,具有唯一性。

      Function code:功能碼。它是Modbus協(xié)議最重要的標志,位于所需數(shù)據(jù)之前,表示上位機給下位機下達的命令。下位機接收到數(shù)據(jù)包后解析出功能碼,按照功能碼執(zhí)行上位機分配的任務(wù),隨后返回上位機所需數(shù)據(jù)(同時返回相同的功能碼以便上位機識別)。本設(shè)計使用的Modbus協(xié)議功能碼見表1。

      圖5 Modbus通用幀

      校驗位:一般占用2個字節(jié),用于對丟失或者錯誤數(shù)據(jù)的檢測。

      表1 功能碼

      Function Code[]Description

      0x01[]Read Coils

      0x02[]Read Discrete Inputs

      0x03[]Read Holding Registers

      0x04[]Read Input Registers

      0x05[]Write Single Coil

      4 運行結(jié)果

      4.1 上位機運行界面

      通過本機設(shè)置選擇需要連接的串口,打開串口后點擊開機按鈕,通過RS232接口與下位機通信,將采集到的數(shù)據(jù)上傳到上位機并進行實時顯示,運行界面如圖6所示。

      圖6 數(shù)據(jù)采集界面

      為了更加直觀形象地看到數(shù)據(jù)的動態(tài)顯示,通過組態(tài)軟件設(shè)計了組態(tài)畫面,用于對接收到的數(shù)據(jù)進行模擬顯示,部分運行界面如圖7所示。

      圖7 組態(tài)軟件數(shù)據(jù)采集界面

      4.2 Modscan 測試驗證

      為了測試接收的數(shù)據(jù)是否正確,選擇Modscan軟件進行驗證,用以讀取寄存器中的數(shù)值。經(jīng)過對數(shù)據(jù)的分析和驗證表明該系統(tǒng)數(shù)據(jù)采集的正確性,如圖8所示。

      (a)采集的數(shù)據(jù)(30001~30005寄存器)

      (b)轉(zhuǎn)換后的工程值(40001~40005寄存器)

      圖8 測試驗證

      5 結(jié)語

      本設(shè)計實現(xiàn)了對AT91SAM7X256單片機中存儲的4~20mA模擬量轉(zhuǎn)換為工程值后的數(shù)據(jù)采集,并使用組態(tài)軟件進行仿真。對運行結(jié)果的分析表明,上位機操作便捷、運行良好。系統(tǒng)充分運用了Modbus RTU協(xié)議進行數(shù)據(jù)傳輸,協(xié)議中的CRC校驗減少了數(shù)據(jù)出錯,這一點進一步說明了Modbus協(xié)議在工業(yè)控制領(lǐng)域中的優(yōu)勢。

      參考文獻參考文獻:

      [1] 高旭彬.基于MSP430單片機的Modbus協(xié)議軟件設(shè)計方法[J].工礦自動化,2013,39(4):8790.

      [2] 中國國際標準化管理委員會.基于Modbus協(xié)議的工業(yè)自動化網(wǎng)絡(luò)規(guī)范GB/T19582-2008[J].儀器儀表標準化與計量,2008 (2):155159.

      [3] 姜拓,張劍平.基于C#的數(shù)據(jù)采集系統(tǒng)上位機軟件設(shè)計與實現(xiàn)[J].電子測試,2009(9):5861.

      [4] 高旭彬.基于Modbus協(xié)議的數(shù)據(jù)采集系統(tǒng)上位機仿真軟件設(shè)計[J].電氣開關(guān),2013,51(4):4447.

      [5] 許龍虎,張浩,彭道剛,等.基于Modbus的嵌人式數(shù)據(jù)采集系統(tǒng)設(shè)計[J].華東電力,2009,37(2):311313.

      [6] 劉紫燕,馮亮,詹志輝.Modbus協(xié)議RTU模式與TCP模式的通信轉(zhuǎn)換設(shè)計[J].科學(xué)技術(shù)與工程,2013,13(18):51915196.

      責(zé)任編輯(責(zé)任編輯:杜能鋼)

      猜你喜歡
      組態(tài)軟件數(shù)據(jù)采集
      基于組態(tài)軟件的PLC仿真教學(xué)系統(tǒng)的設(shè)計與開發(fā)
      車床自動上下料機械手臂自動化改造電控方案設(shè)計
      CS5463在植栽用電子鎮(zhèn)流器老化監(jiān)控系統(tǒng)中的應(yīng)用
      基于面向?qū)ο蟮慕M態(tài)軟件實時數(shù)據(jù)庫的設(shè)計
      大數(shù)據(jù)時代高校數(shù)據(jù)管理的思考
      科技視界(2016年18期)2016-11-03 22:51:40
      鐵路客流時空分布研究綜述
      基于廣播模式的數(shù)據(jù)實時采集與處理系統(tǒng)
      軟件工程(2016年8期)2016-10-25 15:54:18
      通用Web表單數(shù)據(jù)采集系統(tǒng)的設(shè)計與實現(xiàn)
      軟件工程(2016年8期)2016-10-25 15:52:53
      基于開源系統(tǒng)的綜合業(yè)務(wù)數(shù)據(jù)采集系統(tǒng)的開發(fā)研究
      PLC與組態(tài)軟件在空壓機氣源測控系統(tǒng)中的應(yīng)用
      科技傳播(2016年10期)2016-07-15 23:48:53
      奉贤区| 郧西县| 文成县| 维西| 内丘县| 固阳县| 项城市| 湾仔区| 京山县| 临猗县| 湘乡市| 赞皇县| 新乡市| 白银市| 靖宇县| 竹山县| 南通市| 原阳县| 澄迈县| 六枝特区| 清丰县| 运城市| 娄烦县| 海盐县| 五莲县| 桐柏县| 枣强县| 博野县| 曲周县| 方山县| 车致| 疏勒县| 西昌市| 吉首市| 常德市| 泰兴市| 阿荣旗| 合作市| 柳江县| 广德县| 库伦旗|