季明紅,胡 鋼,馬 勝,王護廷
(1.河海大學計算機與信息學院,常州 213022;2.江蘇省輸配電裝備技術重點實驗室,常州 213022;3.常州市揚子電子有限公司,常州 213022)
為了保證儀器儀表和電子產品的使用安全,對該類產品的成品和半成品的電氣安全性能測試(即安規測試)尤為重要。安規主要測試項目包括交直流耐壓、絕緣電阻、泄漏電流、接地電阻等。
隨著科學技術的不斷發展,產品生產線的測試需求越來越高,包括高速完成產品的多項電氣安全性能測試、管理測試數據和遠程監控各生產線產品質量等,單一的安規測試儀已不能滿足上述需求。為此提出了一種基于集散控制的遠程安規綜合測試系統,實現安規的綜合測試和對分散在各生產線的綜合測試集中操作和數據管理。
遠程集散式安規綜合測試系統主要由管理中心、中控單元和測試儀器組三部分構成[1]。系統總體結構圖如圖1所示。

圖1 遠程集散式安規測試系統總體結構圖
測試儀器組由耐壓測試、絕緣測試、泄漏測試和接地測試儀器構成,每臺測試儀器有唯一的地址,與中控單元通過串行口以RS485總線方式連接。中控單元接收管理中心指令后對測試儀器進行參數配置、啟動、停止等操作,對多項電氣安全性能測試一并完成。測試過程中自動切換測試項目,定時請求測試數據和測試狀態,接收后對其進行處理、保存和顯示。管理中心是整個遠程集散安規測試系統的控制和數據管理中心,包括向中控單元發送測試項目的選擇、測試參數及上下限報警值,發送指令給中控單元使其向測試儀器發出操作指令,對測試結果進行保存、統計、查詢和打印,實現了遠程監測各生產線產品的安全質量。考慮到工業現場通信環境比較惡劣,管理中心與各中控單元間亦采用RS485總線方式通信。
中控單元硬件主要由單片機C8051F020、串口擴展電路、RS485串行接口電路、數據存儲電路、繼電器控制電路、液晶顯示電路和聲光報警電路等組成。中控系統組成如圖2所示。
系統采用C8051F020單片機作為核心處理器,通過RS485串行接口與PC機和測試儀器組進行通信。PC機發送的測試參數和測試項目順序與測試儀器組返回的測試數據保存在E2PROM中,即使斷電也能夠保存。通過I/0端口加驅動電路控制繼電器從而控制測試狀態(高壓,合格,失敗)變化時指示燈電路及泄漏測試前交流接觸器的通斷。聲光報警模塊則在測試不合格時發出現場報警。8寸智能液晶顯示屏DMG80600S080_01W實時顯示多項測試項目的測試數據與測試狀態,它與單片機通過RS232 串口通信[2]。

圖2 中控系統組成
中控系統通過串口與PC機、測試儀器組和智能液晶顯示屏通信實現系統功能,但是C8051F020只有兩個UART串口,無法滿足系統需求,所以需擴展串口。系統利用擴展串口芯片GM8123將串行口UART1擴展為三個標準串口,電路圖如圖3所示。GM8123的母串口與C8051F020的TXD0和RXD0連接,SRADD1~0,STADD1~0與 C8051F020的P1.5~P1.2連接用作控制選擇GM8123的發送或接收子串口。GM8123的子串口1、2分別用于連接液晶和設計RS485通信接口,子串口3備用。

圖3 串口擴展
中控系統的軟件主要包括初始化、數據通信、數據處理、存儲器讀寫、LCD液晶顯示等部分。主程序流程圖如圖4所示。
中控單元開啟后,首先進行初始化工作(包括端口配置,串口及GM8123的初始化),接收PC機發送的數據后保存,并將測試參數(測試電壓、測試時間等)發送給相應的測試儀器進行參數配置。再接收PC機指令啟動第一臺儀器工作,實時讀取測試數據和測試狀態后對其處理和顯示,測試完成后將該項測試數據保存并自動切換到下一項目測試,直至所有指定測試的項目測試完畢。最后將該組測試數據同時上傳至PC機。若測試過程中,測試數據大于上下限報警值(漏電流上下限、絕緣電阻上下限或接地電阻上下限等)則發出聲光報警并向工作的測試儀器發出停止命令。測試過程結束,將測試數據和報警原因上傳至PC機,以便歷史查詢,對產品質量問題進行分析。

圖4 中控系統主程序流程
其中,3個串口間的協調通信是關鍵。串口UART1初始化時,設定通道標志位 path=1時置STADD1~0為‘01’,數據發送給液晶屏;path=2時置STADD1~0為‘10’,數據發送給RS485通信口。中控單元在上電初始化之后將一直處于幀聽狀態。接收到一幀信息后,首先判斷是C8051F020哪個串口的數據,如果為 UART1的數據,根據地址SRADD1~0判斷是GM8123哪個子串口發送的數據,如果PC機發送的數據,系統則響應其發送的命令;如果為UART0的測試數據,則將測試數據處理保存并置path=1,通過UART1上傳至液晶屏顯示。通信流程圖如圖5所示。
PC機與中控單元、中控單元與測試儀器組均采用主從通信方式。在通信過程中,主機主動向從機發送數據,從機被動向主機發送數據,但從機之間不直接進行數據通信。

圖5 通信流程圖
為了能夠在網絡上正確的通信數據,根據實際需要,系統自定義了如下通信協議:通信以“幀”為單位,分為命令幀和響應幀。命令幀由主機發送給從機,響應幀為從機接收命令后向主機發送的響應數據。
(1)PC機(主機)和中控單元(從機)
命令幀分兩種命令:①起始碼+地址碼+長度+測試項目序號(0~3)+測試項目代碼(01-耐壓,02-絕緣,03-泄漏,04-接地)+測試參數+上下限參數+校驗和+結束碼。②起始碼+地址碼+控制命令碼、請求數據+結束碼。
響應幀應答數據為兩種:①起始碼+0x33/0x32+結束碼,0x33表示發送成功,0x32表示發送失敗,請求重發。②起始碼+地址碼+長度+測試項目代碼1+測試數據1+…+測試項目代碼n+測試數據n+校驗和+結束碼(n=1~4)。
測試項目序號+測試項目代碼的組合實現了存儲測試項目及其順序,例如:"2+01",中控接收后則附值 str[2]=01,數組最后一位 str[4]=3,表示一共測試3項,第三項是泄漏測試儀,測試參數和上下限參數保存在E2PROM中固定存儲泄漏數據的部分。測試項目按遞增序號發送,中控實時返回的測試數據一次性傳送完成。
(2)中控單元(主機)和測試儀器組(從機)
命令幀分兩種命令:①起始碼+地址碼+長度+測試參數+校驗和+結束碼。②起始碼+地址碼+啟動停止、請求數據控制碼+結束碼。
響應幀應答數據為兩種:①起始碼 +0x96/0x97+結束碼,0x96表示數據發送成功,0x97表示發送失敗,請求重發。②起始碼+地址碼+狀態碼+長度+測試數據+校驗和+結束碼。
管理中心軟件采用Visual Studio.NET環境下C#語言設計。軟件功能結構圖如圖6所示。軟件主要由登陸管理模塊、參數設置模塊、數據通信模塊、數據存儲、歷史數據查詢、報表打印模塊等組成。

圖6 管理中心軟件功能模塊圖
安規測試具有一定的危險性,所以只有專業的操作用戶才可以登陸系統對系統進行測試。操作用戶按權限分管理員和普通員工兩種,只有管理員有新增操作用戶和查詢統計的功能。新增操作用戶時,同時設置其初始密碼及權限。使用者登錄時,系統根據用戶名判斷其權限,自動加載相應模塊。
參數設置模塊主要完成測試序號、測試參數和上下限報警參數等的輸入。其中參數的輸入控件采用正則表達式,規定了數據格式(包括小數點位置及小數點前后的位數)和數據大小,大大減少了人為輸入產生的失誤。
數據通信模塊通過.NET提供的Serial Port類實現串行數據通信,來向中間控制單元發送指令和接收數據。其中,從SerialPort對象接收數據時,系統采用了多線程技術[3-4]。
先定義串口接收中斷
再聲明一個委托delegate void sendOK(byte[]retdata);
接收函數關鍵代碼如下,


系統采用ADO技術對SQL Server數據庫進行訪問。系統將測試數據保存在數據庫中,采用水晶報表設計器生成報表,實現對測試結果的歷史查詢,打印和存儲。操作用戶可以在查詢統計界面根據測試日期查詢測試結果,對產品的質量進行統計分析。實現關鍵代碼如下:

本文設計了一種集散式安規綜合測試系統,給出了系統的總體結構和工作原理,詳細介紹了硬件設計、軟件設計和關鍵設計方法。該系統結構簡單,通信可靠,人機界面操作方便,滿足了生產線對電氣安全性能參數的統一監測和管理。
[1]任偉,王艷.主從分布式網絡監控系統的設計與實現[J].計算機測量與控制,2010,18(11):2539 -2541.
[2]Xu Ling,Chen Zhen,Zhang Shi- lei.Research of Serial Communication System based on C8051F020 Singlechip[J],Computer Application and System Modeling,2010(8):404-407.
[3]王軍,盧益民,何燕.多線程技術在虛擬多串口通信中的應用[J].計算機與數字工程,2005,33(09):1 -2,66.
[4]Yungang Jia,Guobing Huang,Jiwen Xue,et al.Automatic Realization of Serial Communication[J].Electrical and Control Engine,2011:2910 -2912.
[5]張培仁,孫力.基于C語言C8051F系列微控制器原理與應用[M].北京:清華大學出版社,2007.