基于MODBUS總線多功能電力儀表遠程通訊的軟件開發(fā)技術(shù)_百度文庫_第1頁
基于MODBUS總線多功能電力儀表遠程通訊的軟件開發(fā)技術(shù)_百度文庫_第2頁
基于MODBUS總線多功能電力儀表遠程通訊的軟件開發(fā)技術(shù)_百度文庫_第3頁
基于MODBUS總線多功能電力儀表遠程通訊的軟件開發(fā)技術(shù)_百度文庫_第4頁
基于MODBUS總線多功能電力儀表遠程通訊的軟件開發(fā)技術(shù)_百度文庫_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、基于MODBUS總線多功能電力儀表遠程通訊的軟件開發(fā)技術(shù)【內(nèi)容摘要】本文通過對江陰長江斯菲爾電力儀表公司的多功能電力儀表進行具體的分析,介紹了應(yīng)用Visual Basic軟件編程開發(fā)了遠程讀取多功能電力儀表數(shù)據(jù)的程序。通過MSComm控件對RS-232串口COM1的進行控制,實現(xiàn)了對多功能電力儀表遠程控制功能。【關(guān)鍵詞】RS-232串口,MODBUS總線,MSComm控件,232/485轉(zhuǎn)換模塊一、前言原來的電力系統(tǒng)中,高低壓配電柜中往往要安裝各種各樣的儀表,(如電度表、電流表、電壓表等)實現(xiàn)對電力系統(tǒng)的監(jiān)視。而如果在一些大廠往往就有很多儀表,每隔一段時間就要有專人帶著紙筆到廠區(qū)內(nèi)的所有儀表點

2、巡視一番,并將所有的數(shù)值記錄下來,帶回辦公室作數(shù)據(jù)分析和處理。隨著計算機科學(xué)技術(shù)的發(fā)展,計算機在電力監(jiān)控領(lǐng)域中得到了越來越廣泛的應(yīng)用。使用多功能智能電力儀表代替機械式的電力儀表是工業(yè)自動化的大勢所趨。由于多功能儀表不但可以一表多用,而且一般的多功能儀表都可以通過其通訊接口來實現(xiàn)對儀表的編程、數(shù)據(jù)采集等功能。所以使用多功能電力儀表能夠在很大程度上減少人們的勞力,并且可以極大地提高效率。由于實現(xiàn)對電力多功能儀表的監(jiān)視,功能比較單一,且市場上的組態(tài)軟件也比較昂貴。在這里作者就是用MSComm控件實現(xiàn)對串口的控制,實現(xiàn)對江陰長江斯菲爾電力儀表公司的多功能電力儀表遠程讀取電能數(shù)據(jù),從而達到軟件的設(shè)計。M

3、SComm控件是Microsoft提供的擴展控件,用于支持VB程序?qū)Υ诘脑L問,該控件“隱藏”了大部分串口通訊的底層運行過程和許多煩瑣的處理過程,同時支持查詢方法和事件驅(qū)動通訊的機制。因此用其實現(xiàn)微機串口的數(shù)據(jù)通訊相當(dāng)簡單,以很少的程序代碼就可以輕松串口的訪問和數(shù)據(jù)通訊。二、MODBUS通訊協(xié)議分析: 由于江陰長江斯菲爾電力儀表公司CD194E系列的多功能電力儀表是采用遠程RS-485數(shù)字接口(差分、半雙工)和使用MODBUS-RTU通訊協(xié)議,來實現(xiàn)對儀表的編程、數(shù)據(jù)采集等功能,所以先介紹MODBUS協(xié)議:MODBUS協(xié)議是一種主從式點對點的通訊協(xié)議,允許一臺主機和多臺從機之間進行數(shù)據(jù)通信,在

4、CD194E系列的多功能電力儀表通訊系統(tǒng)中,主機是微機(PC、工控機、PLC),從機是CD194E系列儀表。在該通訊系統(tǒng)中,允許系統(tǒng)連接多達128個儀表及1200米的通訊距離。通訊方式采用主機請求,從機應(yīng)答。即:主機提出命令請求,從機響應(yīng)接收數(shù)據(jù)后作數(shù)據(jù)分析,如果數(shù)據(jù)滿足通訊規(guī)約,從機做數(shù)據(jù)響應(yīng)。主、從機間的通訊每一幀數(shù)據(jù)包含以下信息(16進制):從機地址、命令字、信息字、校驗碼從機地址(1個字節(jié)):從機設(shè)備號,主機利用從機地址來識別進行通訊從機設(shè)備。命令字(1個字節(jié)):設(shè)定主機對從機的通訊內(nèi)容。信息字(N個字節(jié)):包括進行兩機通訊中各種數(shù)據(jù)地址、數(shù)據(jù)長度、數(shù)據(jù)信息。校驗碼(2個字節(jié)):用于檢

5、測數(shù)據(jù)通訊錯誤,采用循環(huán)冗余碼CRC16。通訊參數(shù)的設(shè)置:通過儀表上的編程鍵盤對儀表的儀表地址(1-247)、通訊速度(4800或9600)和數(shù)據(jù)格式(1個起始位,8個數(shù)據(jù)位,1個停止位,可選擇無校驗位、奇校驗位、偶校驗位。)進行設(shè)置。網(wǎng)絡(luò)連線如圖一如示:在這里,作者使用的是臺灣泓格科技有限公司的232/485轉(zhuǎn)換模塊。由主控計算機送出的命令是通過RS-232串行通信端口發(fā)送出去,此信號經(jīng)過232/485轉(zhuǎn)換模塊(模塊編號I-7520)將信號標(biāo)準(zhǔn)電位及類型轉(zhuǎn)換后,在485網(wǎng)絡(luò)上傳播開來。多功能電力儀表收到屬于自身的命令后,會進行分析控制的操作,最后將結(jié)果送至485網(wǎng)絡(luò)讓,此信號再通過I-752

6、0的轉(zhuǎn)換后,可由計算機的RS-232串行通信端口接收進來。整個送收過程全是以串行處理。三、軟件的設(shè)計和開發(fā)3.通信步驟:加入通信控件。也就是MSComm控件設(shè)置通信端口號碼。即CommPort屬性,在本文使用Com1。設(shè)置通訊參數(shù)。即Settings屬性。在本文設(shè)置為9600,n,8,1。即通訊速度為9600,數(shù)據(jù)格式為1個起始位,8個數(shù)據(jù)位,1個停止位,無校驗位。注意必須與多功能電力儀表的設(shè)置一致,不然就會通信失敗。設(shè)置其它參數(shù)。必要時再加上其它的屬性設(shè)置。打開通信端口。即PortOpen屬性設(shè)成True。每隔毫秒送出字符串或讀入字符串。即發(fā)送命令4(讀N個字節(jié))來讀取電功率參數(shù),使用Inp

7、ut 及Output屬性。使用完MSComm控件后,將通信端口關(guān)閉。4.人機界面:5程序代碼:Private Declare Function GetTickCount Lib "kernel32" ( As LongPrivate Sub CmdEnd_Click(EndEnd SubPrivate Sub CmdRead_Click(Timer1.Enabled = Not Timer1.EnabledIf Timer1.Enabled ThenCmdRead.Caption = "停止讀數(shù)"ElseCmdRead.Caption = "讀

8、電功率"End IfEnd SubPrivate Sub Form_Load(MSComm1.InputMode = comInputModeBinaryMSComm1.PortOpen = TrueTimer1.Enabled = FalseEnd SubPrivate Sub Timer1_Timer(Dim C4%, C5%, C6%, C7%Dim Tick&Dim Data As DoubleDim Buf( As ByteDim ByteOut(7 As ByteMSComm1.InputLen = 0Buf = MSComm1.Input'重新定義數(shù)據(jù)輸

9、入緩沖區(qū), 發(fā)送命令4MSComm1.InputLen = 1ByteOut(0 = &H1ByteOut(1 = &H4ByteOut(2 = &H0ByteOut(3 = &H5CByteOut(4 = &H0ByteOut(5 = &H4ByteOut(6 = &H31ByteOut(7 = &HDBMSComm1.Output = ByteOut(0 & ByteOut(1 & ByteOut(2 & ByteOut(3 & ByteOut(4 & ByteOut(5 & B

10、yteOut(6 & ByteOut(7'等待多功能電力儀表響應(yīng)的數(shù)據(jù)到達串口Tick = GetTickCount(DoIf (GetTickCount( - Tick / 1000# > 10 ThenMsgBox "時間過久,請檢查多功能電力儀表及傳輸狀態(tài)!", vbCritical + vbOKOnly, "系統(tǒng)信息"Exit SubEnd IfDoEventsLoop Until MSComm1.InBufferCount >= 9'從輸入緩沖區(qū)讀數(shù)據(jù)Buf = MSComm1.InputIf Buf(0 &

11、lt;> 1 ThenMsgBox "地址錯誤!", vbCritical + vbOKOnly, "系統(tǒng)信息"Exit SubEnd IfBuf = MSComm1.InputIf Buf(0 <> 4 ThenMsgBox "命令錯誤!", vbCritical + vbOKOnly, "系統(tǒng)信息"Exit SubEnd IfBuf = MSComm1.InputIf Buf(0 <> 4 ThenMsgBox "長度錯誤!", vbCritical + vbO

12、KOnly, "系統(tǒng)信息"Exit SubEnd IfBuf = MSComm1.InputC4 = Buf(0Buf = MSComm1.InputC5 = Buf(0Buf = MSComm1.InputC6 = Buf(0Buf = MSComm1.InputC7 = Buf(0Buf = MSComm1.InputBuf = MSComm1.InputData = Power(C4, C5, C6, C7TxtPower.Text = CStr(DataEnd SubPrivate Function Power(C4%, C5%, C6%, C7%Dim Power

13、Exp As String, Mantissa As StringDim ReadValue#Dim ValueSign&If (C4 And &H80 / 2 7 = True ThenValueSign = -1ElseValueSign = 1End IfPowerExp = CStr(C4 And &H7F * 2 + (C5 And &H80 / 2 7Mantissa = CStr(&H80 Or C5 * 2 16 + C6 * 2 8 + C7ReadValue = ValueSign * 2 (Val(PowerExp - 126 * Val(Mantissa / (256 * 65536Power = ReadValueEnd Function四、結(jié)論本實例是作者在實驗室做過多次實驗,達到了預(yù)定的應(yīng)用效果。該控制系統(tǒng)的最大優(yōu)點是:1,從硬件上看,僅僅使用一個轉(zhuǎn)換模塊就可以實現(xiàn)全廠電能遠程監(jiān)控和集中管理的功能。大大提高了效率,且十分

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論