亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        朱姣

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

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

        DOIDOI:10.11907/rjdk.151609

        中圖分類號(hào):TP302

        文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào)文章編號(hào):16727800(2015)009003403

        0 引言

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

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

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

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

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

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

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

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

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

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

        2.1 硬件電路設(shè)計(jì)

        2.1.1 單片機(jī)電源模塊

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

        2.1.2 串口通信模塊

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

        2.2 軟件設(shè)計(jì)

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

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

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

        圖2 上位機(jī)軟件流程

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

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

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

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

        3 MODBUS 通信協(xié)議

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

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

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

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

        Server address:從地址。用于標(biāo)識(shí)和上位機(jī)通信的下位機(jī)模塊,具有唯一性。

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

        圖5 Modbus通用幀

        校驗(yàn)位:一般占用2個(gè)字節(jié),用于對(duì)丟失或者錯(cuò)誤數(shù)據(jù)的檢測(cè)。

        表1 功能碼

        Function Code[]Description

        0x01[]Read Coils

        0x02[]Read Discrete Inputs

        0x03[]Read Holding Registers

        0x04[]Read Input Registers

        0x05[]Write Single Coil

        4 運(yùn)行結(jié)果

        4.1 上位機(jī)運(yùn)行界面

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

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

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

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

        4.2 Modscan 測(cè)試驗(yàn)證

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

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

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

        圖8 測(cè)試驗(yàn)證

        5 結(jié)語(yǔ)

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

        參考文獻(xiàn)參考文獻(xiàn):

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

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

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

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

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

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

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

        猜你喜歡
        組態(tài)軟件數(shù)據(jù)采集
        基于組態(tài)軟件的PLC仿真教學(xué)系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)
        車床自動(dòng)上下料機(jī)械手臂自動(dòng)化改造電控方案設(shè)計(jì)
        CS5463在植栽用電子鎮(zhèn)流器老化監(jiān)控系統(tǒng)中的應(yīng)用
        基于面向?qū)ο蟮慕M態(tài)軟件實(shí)時(shí)數(shù)據(jù)庫(kù)的設(shè)計(jì)
        大數(shù)據(jù)時(shí)代高校數(shù)據(jù)管理的思考
        科技視界(2016年18期)2016-11-03 22:51:40
        鐵路客流時(shí)空分布研究綜述
        基于廣播模式的數(shù)據(jù)實(shí)時(shí)采集與處理系統(tǒng)
        軟件工程(2016年8期)2016-10-25 15:54:18
        通用Web表單數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
        軟件工程(2016年8期)2016-10-25 15:52:53
        基于開(kāi)源系統(tǒng)的綜合業(yè)務(wù)數(shù)據(jù)采集系統(tǒng)的開(kāi)發(fā)研究
        PLC與組態(tài)軟件在空壓機(jī)氣源測(cè)控系統(tǒng)中的應(yīng)用
        科技傳播(2016年10期)2016-07-15 23:48:53
        亚洲高清在线免费视频| 亚洲国产cao| 国产韩国精品一区二区三区| 日本高清成人一区二区三区| 国产变态av一区二区三区调教| 男女高潮免费观看无遮挡| 粉嫩少妇内射浓精videos| 91精品在线免费| 男女视频一区二区三区在线观看| 天天躁日日躁aaaaxxxx| 色婷婷久久一区二区三区麻豆| 亚洲国产香蕉视频欧美| 日本高清一区在线你懂得| 日本道色综合久久影院| 天堂…在线最新版资源| 免费中文熟妇在线影片| av网站韩日在线观看免费| 国产乱子伦农村xxxx| 不卡av一区二区在线| 精人妻无码一区二区三区| 日韩a无v码在线播放| 免费一级a毛片在线播出| 亚洲视频综合在线第一页| 97成人精品在线视频| 亚洲av综合色区| 国产又色又爽无遮挡免费动态图 | 国产精品毛片av毛片一区二区| 男人女人做爽爽18禁网站| 亚洲综合无码一区二区三区| 91精品国产无码在线观看| 国产精品高清免费在线| 久久久精品中文字幕麻豆发布| 国产乱人伦在线播放| 欧美日韩中文字幕日韩欧美| 91九色极品探花内射| 国产又粗又猛又黄又爽无遮挡| 国产AV无码专区久久精品网站| 免费的黄网站精品久久| 中文字幕亚洲综合久久天堂av| 怡红院a∨人人爰人人爽| 香蕉视频免费在线|