摘 要:為實現(xiàn)多功能電力儀表各項數(shù)據(jù)的實時檢測,方便用戶在一臺主機上對多個下位機進行查看和管理,現(xiàn)開發(fā)出一款上位機管理軟件。該軟件基于MFC平臺,利用MSCOMM通信控件,通過485總線與單片機進行通信。軟件將采集到的數(shù)據(jù)處理整合,在一個界面上同時顯示電壓、電流、功率、電能等多項數(shù)據(jù),數(shù)據(jù)自動刷新。不同的下位機可選擇顯示,下位機的信號網(wǎng)絡、電壓變比、電流變比等參數(shù)可手動更改,軟件同時還集成了電能值一鍵清零的功能。該軟件使用簡便,傳送數(shù)據(jù)快速準確,現(xiàn)已投入市場運用。
關鍵詞:多功能電力儀表;上位機;MSCOMM控件;參數(shù)設置;電能清零
隨著科學技術的發(fā)展,對單一現(xiàn)場數(shù)據(jù)的采集與顯示已不能滿足人們的需求,特別是當網(wǎng)絡結點變多的時候,逐個對每個結點進行單一管理顯得十分困難,因此,數(shù)據(jù)的集中采集和智能管理已成為現(xiàn)代控制領域必然的發(fā)展方向。
現(xiàn)代化集中管理需要對現(xiàn)場數(shù)據(jù)進行統(tǒng)計、分析、制表、打印、繪圖等,同時,又要求對現(xiàn)場裝置進行實時控制,完成各種規(guī)定操作,達到集中管理的目的。加之單片機的計算能力有限,難以進行復雜的數(shù)據(jù)處理。因此在功能比較復雜的控制系統(tǒng)中,通常以PC機為上位機,單片機為下位機,由單片機完成數(shù)據(jù)的采集及對裝置的控制,而由上位機完成各種復雜的數(shù)據(jù)處理及對單片機的控制。
1 整體設計方案
本系統(tǒng)涉及上位機和下位機之間的通信,因此系統(tǒng)共包含三個部分:下位機—ATmega32單片機、總線和協(xié)議—485總線和Modbus通訊協(xié)議、上位機—MFC應用程序。系統(tǒng)設計框圖如下:
2 下位機簡介
下位機是ATmega32單片機,單片機接收上位機發(fā)來的指令,并根據(jù)要求向上位機傳送數(shù)據(jù)或者更改參數(shù)設置。
下位機設備有獨立的通信模塊,通過B0505與外部電路隔離,通信模塊留有RXD、TXD、A、B四個接口,RXD、TXD與單片機串行口連接,A、B與485總線連接,中間是獨立的轉換電路。
不同的下位機地址不同,全部掛在485總線上,上位機發(fā)送一條指令后,下位機首先判斷該指令的地址是否與本機相同,從而決定是否響應該指令;地址判斷通過后,下位機通過識別功能碼進行不同的操作。
2.1 通信模塊硬件電路
單片機通過串口發(fā)送數(shù)據(jù),數(shù)據(jù)經(jīng)過MAX485進行必要的電平轉換,之后進入485總線傳送,即上圖中的A、B端口。圖中的6N137和B0505分別起穩(wěn)壓和隔離的作用,保證數(shù)據(jù)在轉換和發(fā)送的過程中不受其他模塊的干擾。
2.2 通信模塊程序流程圖
單片機預先將電壓、電流、功率、電能、電壓電流變比等數(shù)據(jù)存到自定義的緩沖區(qū)中,并定時刷新。每個下位機都有個特定的從機地址,當單片機接收到數(shù)據(jù)時,首先判斷從機地址,如果不相同不作任何響應,如果相同,下位機根據(jù)功能碼作出相應的響應。
3 485總線和Modbus協(xié)議簡介
主機和從機之間采用RS-485工業(yè)總線通信,RS-485電平傳輸更穩(wěn)定,傳送距離更遠,主機與從機通過標準Modbus通信協(xié)議在RS-485總線上進行穩(wěn)定的數(shù)據(jù)傳輸,在整個總線上最多可以接入255臺從機。
Modbus協(xié)議按主–從方式進行網(wǎng)絡通信,僅一個主設備查詢,其他從設備根據(jù)主設備查詢時提供的數(shù)據(jù)信息作出相應反應,。主設備可以單獨和每個從設備通信,也能以廣播方式與所有從設備通信。在Modbus協(xié)議中,主機查詢和從機回復的消息結構如圖3.1所示。查詢消息中的功能代碼告知被選中的從設備要執(zhí)行何種功能,數(shù)據(jù)段包含了從設備執(zhí)行該功能需要的附加信息。錯誤檢測域為從設備提供了一種驗證消息內(nèi)容是否正確的方法。
在從設備的回應消息中,功能碼是對查詢消息中功能代碼的回應,數(shù)據(jù)段包含從設備收集的數(shù)據(jù)。如果有錯誤發(fā)生,功能碼將指出是錯誤回應消息,同時數(shù)據(jù)段包含了描述此錯誤信息的代碼。錯誤檢測域用于主設備確認消息內(nèi)容是否可用。
4 VC上位機軟件
該軟件是基于對話框的MFC應用程序。對話框機制的應用程序,界面簡潔明了,用戶操作更為方便。上位機軟件程序流程圖如下:
軟件采用MSComm類,通過串口與單片機進行通信。MSComm是封裝好的串口通訊專用類,應用時,只需對相應的端口進行配置,便可靈活運用。
在此通信系統(tǒng)中,接收數(shù)據(jù)長度是不固定的,一幀數(shù)據(jù)最短7個字節(jié),最長69個字節(jié),當數(shù)據(jù)長度小于8字節(jié)時,數(shù)據(jù)接收正常,當數(shù)據(jù)長度大于8字節(jié)時,一幀數(shù)據(jù)被自動截為兩端,數(shù)據(jù)處理出錯。程序中,在Oncomm()中斷服務程序的開頭部分加入了sleep(100),讓主程序在進入串口中斷后休眠100ms,等待所有數(shù)據(jù)接收完成再統(tǒng)一處理,解決了以上問題。
軟件主界面如下圖4.4所示:
如果軟件沒檢測到下位機設備或設備與當前選擇地址不相同,所有數(shù)據(jù)顯示0,同時參數(shù)設置鍵為不可操作狀態(tài)。
軟件正常工作時,如下圖4.5所示:
當檢測到設備時,參數(shù)設置鍵變?yōu)榭刹僮鳡顟B(tài),同時下面的窗口中顯示各項電壓、電流,以及合相有功功率、合相有功電能,上圖中合相有功功率為2322.00w,如果功率大于9999w,該項自動調整為Kw為單位。
下圖4.6為參數(shù)設置窗口,通過該窗口可對設備進行電壓電流變比設定,電能清零等操作。
通過該窗口可對下位機配置參數(shù)進行修改,電能清零鍵會清除下位機累積電能,為防止誤操作,該鍵設置了“確定清零”彈出對話框,對操作進行二次確認。信號網(wǎng)絡是設置輸入設備的信號為三相四線或三相三線,電壓電流變比是設置采樣值與顯示值之間的變比。點確定鍵后,上位機將所有設置命令打包發(fā)送給下位機,下位機對響應的寄存器進行配置。
5 總結
本文介紹的多功能儀表上位機管理軟件,具有簡潔的人機對話窗口,同時在傳輸速度以及穩(wěn)定性方面有明顯優(yōu)勢,節(jié)省了大量的人力成本,實用性較強,目前該產(chǎn)品已被多家公司使用,與多功能儀表設備配套出售。當前,國家大力倡導節(jié)能減排,工業(yè)上對電量的檢測和管理必然會被更多人重視,多功能儀表的應用會越來越廣泛,因此該設計具有良好的市場前景。
[參考文獻]
[1]高志偉.Visual C++程序設計教程與上機指導[M].北京:北京大學出版社,2006:205.
[2]M.J.Vsber and D.A.Keating. Sensors and Transducers.Second Editon[N].London Macmillan Press Ltd,1996.
[3]王浩.基于MFC對話框程序設計中UPDATE_COMMAND_UI機制實現(xiàn)方法探討[J].計算機系統(tǒng)應用,2005,(14):09.
[4]王衛(wèi)紅,等.基于AVR單片機的多外圍設備控制系統(tǒng)的設計[J].計算機系統(tǒng)應用,2008,(17):02.
[5]童詩白,華成英.模擬電子技術基礎[M].高等教育出版社,2006:428-432.
[6]浦昭邦,趙輝.普通高等教育“十一五”國家級規(guī)劃教材[M].機械工業(yè)出版社,2010:76.
[7]Ali Sophian,Gui Yun Tian,David Taylor,John Rudlin. Design of a pulsed eddy current senor for detection of defects in aircraft lap-joints[J].Sensors and Actuators A,2002,(101):92-98.
[8]U.Patel,D.Rodger. Finite element modelling of pulsed eddy currents for nondestructive testing[J].IEEE Trans.Magn.1996,32(3):1593-1596.
[9]T.Mac.MFC-Programmierung: Dialoge [J].CT Magazin fur Computer Technik.2011,(2):222.
[10]解明祥.激光脈沖編碼發(fā)生器上位機軟件實現(xiàn)[J].彈箭與制導學報,2009,(04):265.