技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 應(yīng)用方案 > 基于 MODBUS 總線多功能電力儀表遠(yuǎn)程通訊的軟件開(kāi)發(fā)技術(shù)

基于 MODBUS 總線多功能電力儀表遠(yuǎn)程通訊的軟件開(kāi)發(fā)技術(shù)

時(shí)間:2007-03-05 16:50:00來(lái)源:jiangf

導(dǎo)語(yǔ):?通過(guò) MSComm控件對(duì) RS-232串口 COM1的進(jìn)行控制,實(shí)現(xiàn)了對(duì)多功能電力儀表遠(yuǎn)程控制功能。
【內(nèi)容摘要】本文通過(guò)對(duì)江陰長(zhǎng)江斯菲爾電力儀表公司的多功能電力儀表進(jìn)行具體的分析,介紹了基于 Visual Basic軟件編程開(kāi)發(fā)了遠(yuǎn)程讀取多功能電力儀表數(shù)據(jù)的程序。通過(guò) MSComm控件對(duì) RS-232串口 COM1的進(jìn)行控制,實(shí)現(xiàn)了對(duì)多功能電力儀表遠(yuǎn)程控制功能。 【關(guān)鍵詞】RS-232 串口,MODBUS總線,MSComm控件,232/485轉(zhuǎn)換模塊 Abstract The paper analyzes multifunctional electrical instrument of JianYin Changjiang Sfere Electric Power Company Limited specifically. It is introduced remotely accessing multifunctional electrical instrument by application of Visual Basic. The paper achieves to remotely control multifunctional electrical instrument by using MSComm control to access serial port COM1. Key Words RS-232 serial port, MODBUS, MSComm Control, 232/485 Converter Module 一、前言 原來(lái)的電力系統(tǒng)中,高低壓配電柜中往往要安裝各種各樣的儀表,(如電度表、電流表、電壓表等)實(shí)現(xiàn)對(duì)電力系統(tǒng)的監(jiān)視。而如果在一些大廠往往就有很多儀表,每隔一段時(shí)間就要有專人帶著紙筆到廠區(qū)內(nèi)的所有儀表點(diǎn)巡視一番,并將所有的數(shù)值記錄下來(lái),帶回辦公室作數(shù)據(jù)分析和處理。 隨著計(jì)算機(jī)科學(xué)技術(shù)的發(fā)展,計(jì)算機(jī)在電力監(jiān)控領(lǐng)域中得到了越來(lái)越廣泛的應(yīng)用。使用多功能智能電力儀表代替機(jī)械式的電力儀表是工業(yè)自動(dòng)化的大勢(shì)所趨。由于多功能儀表不但可以一表多用,而且一般的多功能儀表都可以通過(guò)其通訊接口來(lái)實(shí)現(xiàn)對(duì)儀表的編程、數(shù)據(jù)采集等功能。所以使用多功能電力儀表能夠在很大程度上減少人們的勞力,并且可以極大地提高效率。由于實(shí)現(xiàn)對(duì)電力多功能儀表的監(jiān)視,功能比較單一,且市場(chǎng)上的組態(tài)軟件也比較昂貴。在這里作者就是用 MSComm控件實(shí)現(xiàn)對(duì)串口的控制,實(shí)現(xiàn)對(duì)陰長(zhǎng)江斯菲爾電力儀表公司的多功能電力儀表遠(yuǎn)程讀取電能數(shù)據(jù),從而達(dá)到軟件的設(shè)計(jì)。MSComm控件是 Microsoft提供的擴(kuò)展控件,用于支持 VB程序?qū)Υ诘脑L問(wèn),該控件“隱藏”了大部分串口通訊的底層運(yùn)行過(guò)程和許多煩瑣的處理過(guò)程,同時(shí)支持查詢方法和事件驅(qū)動(dòng)通訊的機(jī)制。因此用其實(shí)現(xiàn)微機(jī)串口的數(shù)據(jù)通訊相當(dāng)簡(jiǎn)單,以很少的程序代碼就可以輕松串口的訪問(wèn)和數(shù)據(jù)通訊。 二、MODBUS 通訊協(xié)議分析: 由于江陰長(zhǎng)江斯菲爾電力儀表公司 CD194E系列的多功能電力儀表是采用遠(yuǎn)程 RS-485 數(shù)字接口(差分、半雙工)和使用 MODBUS-RTU通訊協(xié)議,來(lái)實(shí)現(xiàn)對(duì)儀表的編程、數(shù)據(jù)采集等功能,所以先介紹 MODBUS 協(xié)議: MODBUS 協(xié)議是一種主從式點(diǎn)對(duì)點(diǎn)的通訊協(xié)議,允許一臺(tái)主機(jī)和多臺(tái)從機(jī)之間進(jìn)行數(shù)據(jù)通信,在 CD194E 系列的多功能電力儀表通訊系統(tǒng)中,主機(jī)是微機(jī)(PC、工控機(jī)、PLC),從機(jī)是 CD194E列儀表。在該通訊系統(tǒng)中,允許系統(tǒng)連接多達(dá)128 個(gè)儀表及1200米的通訊距離。通訊方式采用主機(jī)請(qǐng)求,從機(jī)應(yīng)答。即:主機(jī)提出命令請(qǐng)求,從機(jī)響應(yīng)接收數(shù)據(jù)后作數(shù)據(jù)分析,如果數(shù)據(jù)滿足通訊規(guī)約,從機(jī)做數(shù)據(jù)響應(yīng)。 主、從機(jī)間的通訊每一幀數(shù)據(jù)包含以下信息(16進(jìn)制): 從機(jī)地址、命令字、信息字、校驗(yàn)碼 從機(jī)地址(1個(gè)字節(jié)):從機(jī)設(shè)備號(hào),主機(jī)利用從機(jī)地址來(lái)識(shí)別進(jìn)行通訊從機(jī)設(shè)備。 命令字(1個(gè)字節(jié)):設(shè)定主機(jī)對(duì)從機(jī)的通訊內(nèi)容。 信息字(N個(gè)字節(jié)):包括進(jìn)行兩機(jī)通訊中各種數(shù)據(jù)地址、數(shù)據(jù)長(zhǎng)度、數(shù)據(jù)信息。 校驗(yàn)碼(2個(gè)字節(jié)):用于檢測(cè)數(shù)據(jù)通訊錯(cuò)誤,采用循環(huán)冗余碼 CRC16。 通訊參數(shù)的設(shè)置:通過(guò)儀表上的編程鍵盤對(duì)儀表的儀表地址(1-247)、通訊速度(4800或9600)和 數(shù)據(jù)格式(1個(gè)起始位,8個(gè)數(shù)據(jù)位,1個(gè)停止位,可選擇無(wú)校驗(yàn)位、奇校驗(yàn)位、偶校驗(yàn)位。)進(jìn)行設(shè)置。 網(wǎng)絡(luò)連線如圖一如示: 在這里,作者使用的是臺(tái)灣泓格科技有限公司的232/485轉(zhuǎn)換模塊 I-7520。由主控計(jì)算機(jī)送出的命令是通過(guò) RS-232 串行通信端口發(fā)送出去,此信號(hào)經(jīng)過(guò) 232/485 轉(zhuǎn)換模塊(模塊編號(hào)I-7520)將信號(hào)標(biāo)準(zhǔn)電位及類型轉(zhuǎn)換后,在 485 網(wǎng)絡(luò)上傳播開(kāi)來(lái)。多功能電力儀表收到屬于自身的命令后,會(huì)進(jìn)行分析控制的操作,最后將結(jié)果送至485網(wǎng)絡(luò),讓此信號(hào)再通過(guò)I-7520的轉(zhuǎn)換后,可由計(jì)算機(jī)的 RS-232串行通信端口接收進(jìn)來(lái)。整個(gè)送收過(guò)程全是以串行處理。 三、軟件的設(shè)計(jì)和開(kāi)發(fā) 注:從 CD194E 系列的多功能電力儀表傳過(guò)來(lái)的電功率數(shù)據(jù)就存放在 Byte1到 Byte4 內(nèi)。 3.通信步驟: ⑴加入通信控件。也就是 MSComm控件 ⑵設(shè)置通信端口號(hào)碼。即 CommPort屬性,在本文使用 Com1。 ⑶設(shè)置通訊參數(shù)。即Settings 屬性。在本文設(shè)置為 9600,n,8,1。即通訊速度為 9600,數(shù)據(jù)格式為1 個(gè)起始位,8個(gè)數(shù)據(jù)位,1個(gè)停止位,無(wú)校驗(yàn)位。注意必須與多功能電力儀表的設(shè)置一致,不然就會(huì)通信失敗。 ⑷設(shè)置其它參數(shù)。必要時(shí)再加上其它的屬性設(shè)置。 ⑸打開(kāi)通信端口。即PortOpen 屬性設(shè)成 True。 ⑹每隔500毫秒送出字符串或讀入字符串。即發(fā)送命令 4(讀N 個(gè)字節(jié))來(lái)讀取電功率參數(shù),使用Input 及 Output屬性。 ⑺使用完 MSComm控件后,將通信端口關(guān)閉。 4.人機(jī)界面: 5.程序代碼: ’API 函數(shù)聲名 Private Declare Function GetTickCount Lib "kernel32" () As Long ’點(diǎn)擊結(jié)束程序按鈕 Private Sub CmdEnd_Click() End End Sub ’點(diǎn)擊讀取電功率按鈕 Private Sub CmdRead_Click() Timer1.Enabled = Not Timer1.Enabled If Timer1.Enabled Then CmdRead.Caption = "停止讀數(shù)" Else CmdRead.Caption = "讀取電功率" End If End Sub ’程序初始化 Private Sub Form_Load() MSComm1.InputMode = comInputModeBinary MSComm1.PortOpen = True Timer1.Enabled = False End Sub Private Sub Timer1_Timer() Dim C4%, C5%, C6%, C7% Dim Tick& Dim Data As Double Dim Buf() As Byte Dim ByteOut(7) As Byte MSComm1.InputLen = 0 Buf = MSComm1.Input ’重新定義數(shù)據(jù)輸入緩沖區(qū), 發(fā)送命令 4 MSComm1.InputLen = 1 ByteOut(0) = &H1 ByteOut(1) = &H4 ByteOut(2) = &H0 ByteOut(3) = &H5C ByteOut(4) = &H0 ByteOut(5) = &H4 ByteOut(6) = &H31 ByteOut(7) = &HDB MSComm1.Output = ByteOut(0) & ByteOut(1) & ByteOut(2) & ByteOut(3) & ByteOut(4) & ByteOut(5) & ByteOut(6) & ByteOut(7) ’等待多功能電力儀表響應(yīng)的數(shù)據(jù)到達(dá)串口 Tick = GetTickCount() Do If (GetTickCount() - Tick) / 1000# > 10 Then MsgBox "時(shí)間過(guò)久,請(qǐng)檢查多功能電力儀表及傳輸狀態(tài)!", vbCritical + vbOKOnly, "系統(tǒng)信息" Exit Sub End If DoEvents Loop Until MSComm1.InBufferCount >= 9 ’從輸入緩沖區(qū)讀數(shù)據(jù) Buf = MSComm1.Input If Buf(0) <> 1 Then MsgBox "地址錯(cuò)誤!", vbCritical + vbOKOnly, "系統(tǒng)信息" Exit Sub End If Buf = MSComm1.Input If Buf(0) <> 4 Then MsgBox "長(zhǎng)度錯(cuò)誤!", vbCritical + vbOKOnly, "系統(tǒng)信息" Exit Sub End If Buf = MSComm1.Input C4 = Buf(0) Buf = MSComm1.Input C5 = Buf(0) Buf = MSComm1.Input C6 = Buf(0) Buf = MSComm1.Input C7 = Buf(0) Buf = MSComm1.Input Buf = MSComm1.Input Data = Power(C4, C5, C6, C7) TxtPower.Text = CStr(Data) End Sub ’自定義功率換算函數(shù) Private Function Power(C4%, C5%, C6%, C7%) Dim PowerExp As String, Mantissa As String Dim ReadValue# Dim ValueSign& If ((C4 And &H80) / 2 ︿ 7) = True Then ValueSign = -1 Else ValueSign = 1 End If PowerExp = CStr((C4 And &H7F) * 2 + (C5 And &H80) / 2 ︿ 7) Mantissa = CStr((&H80 Or C5) * 2 ︿ 16 + C6 * 2 ︿ 8 + C7) ReadValue = ValueSign * 2 ︿ (Val(PowerExp) - 126) * Val(Mantissa) / (256 * 65536) Power = ReadValue End Function 四、結(jié)論 本實(shí)例是作者在實(shí)驗(yàn)室做過(guò)多次實(shí)驗(yàn),達(dá)到了預(yù)定的應(yīng)用效果,目前在江西某廠取得了實(shí)際的應(yīng)用。 該控制系統(tǒng)的最大優(yōu)點(diǎn)是: 1,從硬件上看,僅僅使用一個(gè)轉(zhuǎn)換模塊就可以實(shí)現(xiàn)全廠電能遠(yuǎn)程監(jiān)控和集中管理的功能。大大提高了效率,且十分經(jīng)濟(jì)實(shí)惠。 2,從軟件上看,直接使用串口的控制技術(shù),而不必需要寫額外的驅(qū)動(dòng)程序。采用VB開(kāi)發(fā)應(yīng)用軟件十分方便,編程工作量小。 【參考文獻(xiàn)】 1.李肇慶、韓濤。串行端口技術(shù),國(guó)防工業(yè)出版社,2004 2.范逸之。Visual Basic 與 RS-232 串行通信控制,清華大學(xué)出版社,2002 3.范逸之。Visual Basic 與分布監(jiān)控系統(tǒng)——RS232/485 串行通信,清華大學(xué)出版社,2002 4.江陰長(zhǎng)江斯菲爾電力儀表有限公司使用手冊(cè) 5. 臺(tái)灣泓格科技有限公司的 232/485 轉(zhuǎn)換模塊說(shuō)明書.

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:TOP-2000變電站綜合自動(dòng)化系...

下一篇:微能WIN-V63矢量控制變頻器在...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.wangxinlc.cn)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見(jiàn)反饋|sitemap

傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購(gòu)咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)