国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

朱姣

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

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

DOIDOI:10.11907/rjdk.151609

中圖分類號:TP302

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

0 引言

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

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

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

(4) 上位機:基于C#編寫實時顯示數(shù)據(jù)軟件。接收來自串口傳送的數(shù)據(jù)包,按照Modbus RTU協(xié)議對數(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è)計

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等提供輸入標(biāo)稱值為3.3V的電壓,AT91SAM7X256工作后通過VDDOUT管腳輸出1.8V電壓為各個邏輯部件供電。

2.1.2 串口通信模塊

系統(tǒng)采用通用的RS232作為串口通信。通過CPU各個管腳PA3、PA4、RXD1、TXD1和VDD3.3與轉(zhuǎn)換芯片連接,達(dá)到串口數(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)采用默認(rèn)的串口屬性設(shè)置。波特率是9 600,數(shù)據(jù)位是8,停止位是1,無校驗位),打開串口。串口打開成功即進(jìn)入數(shù)據(jù)顯示界面,打開失敗則提示重新選擇正確串口。實時顯示數(shù)據(jù)的變化,開機按鈕起到上載數(shù)據(jù)的作用,關(guān)機按鈕則用于停止上位機與下位機的通信。上位機軟件設(shè)計流程如圖2所示。

圖2 上位機軟件流程

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

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

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

控制系統(tǒng)完成數(shù)據(jù)的采集及發(fā)送功能。系統(tǒng)上電后進(jìn)入初始化,一切準(zhǔn)備工作就緒后,等待上位機命令,一旦接收到發(fā)送來的數(shù)據(jù)即按命令進(jìn)行處理,隨后將所需數(shù)據(jù)發(fā)送到上位機實時顯示。控制系統(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é)議采用主從工作方式,允許一臺主機和多臺從機進(jìn)行通信,從機地址由用戶設(shè)定。地址范圍為1-255,地址0用作廣播地址,所有主機把它當(dāng)作一條命令來執(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)默認(rèn)為1)、功能碼和校驗位形成Modbus ADU(0x01 0x03 0x00 0x00 0x00 0x04 0x44 0x09),再通過串口發(fā)送給下位機,下位機再對接收到的數(shù)據(jù)包進(jìn)行解析,從而得知要執(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分別表示十進(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所示),通過串口通信的ADU(Application Data Unit)最大字節(jié)長度為256 bytes,所以在通信過程中PDU長度是:256-Server address(1 byte 從地址)-CRC(2 byte CRC校驗)=253 bytes。

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

Function code:功能碼。它是Modbus協(xié)議最重要的標(biāo)志,位于所需數(shù)據(jù)之前,表示上位機給下位機下達(dá)的命令。下位機接收到數(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ù)上傳到上位機并進(jìn)行實時顯示,運行界面如圖6所示。

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

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

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

4.2 Modscan 測試驗證

為了測試接收的數(shù)據(jù)是否正確,選擇Modscan軟件進(jìn)行驗證,用以讀取寄存器中的數(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)軟件進(jìn)行仿真。對運行結(jié)果的分析表明,上位機操作便捷、運行良好。系統(tǒng)充分運用了Modbus RTU協(xié)議進(jìn)行數(shù)據(jù)傳輸,協(xié)議中的CRC校驗減少了數(shù)據(jù)出錯,這一點進(jìn)一步說明了Modbus協(xié)議在工業(yè)控制領(lǐng)域中的優(yōu)勢。

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

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

[2] 中國國際標(biāo)準(zhǔn)化管理委員會.基于Modbus協(xié)議的工業(yè)自動化網(wǎng)絡(luò)規(guī)范GB/T19582-2008[J].儀器儀表標(biāo)準(zhǔn)化與計量,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
共和县| 进贤县| 涪陵区| 宁陕县| 福泉市| 甘孜| 定安县| 双柏县| 札达县| 夏津县| 镇坪县| 鄂托克旗| 齐齐哈尔市| 龙井市| 孟津县| 郑州市| 格尔木市| 兖州市| 江都市| 包头市| 长丰县| 博兴县| 霍林郭勒市| 长治县| 舟山市| 浦东新区| 中宁县| 淮阳县| 肇源县| 太白县| 宝山区| 合水县| 旺苍县| 社会| 开远市| 洮南市| 射洪县| 无极县| 伊宁县| 桃园县| 平泉县|