單片機(jī)組成的集散控制系統(tǒng)中雙串口同時(shí)通訊的實(shí)現(xiàn)
1 系統(tǒng)的體系結(jié)構(gòu)
1.1 系統(tǒng)要求與總體方案設(shè)計(jì)
該系統(tǒng)中有單相、三相、機(jī)械式和電子式等各種型號(hào)電能表,要求實(shí)時(shí)、準(zhǔn)確、快速、可靠地采集各分散電能表的用電量數(shù)據(jù),適應(yīng)各種復(fù)雜的工業(yè)生產(chǎn)現(xiàn)場(chǎng)條件,連續(xù)運(yùn)行、操作簡(jiǎn)便、維修快捷。硬件系統(tǒng)要具有通用性、可擴(kuò)展性,并能適應(yīng)各種大中型發(fā)電、用電企業(yè)的電量管理。因此在系統(tǒng)設(shè)計(jì)中,重點(diǎn)考慮了以下因素:實(shí)時(shí)性、高可靠性、環(huán)境的適應(yīng)性、通用性、可擴(kuò)展性、經(jīng)濟(jì)性等。
集散控制系統(tǒng)DCS(Distributed ControlSystem)是一種分散控制、集中信息管理系統(tǒng)。由于該系統(tǒng)是在電廠使用,并已有DCS平臺(tái),因此采用DCS作為主站,也可采用單獨(dú)的上位機(jī)來(lái)管理。DCS中采用了雙前置機(jī)熱后備的冗余系統(tǒng)設(shè)計(jì)方法,2臺(tái)前置機(jī)可相互替換以提高系統(tǒng)可靠性。
本DCS采用Interllution iFox工控組態(tài)軟件,使用工業(yè)標(biāo)準(zhǔn)總線RS422將集抄系統(tǒng)硬件連入前置機(jī),進(jìn)行電量分析,負(fù)荷管理,并具有圖形、曲線、報(bào)表打印輸出功能,可與其他網(wǎng)絡(luò)接口。由于采集模塊一般都不少于幾十個(gè),如直接連入DCS,則測(cè)點(diǎn)太多,因此在DCS和采集模塊之間增加一級(jí)數(shù)據(jù)集中器(簡(jiǎn)稱集中器),將一個(gè)集中器作為一個(gè)測(cè)點(diǎn),減輕DCS的負(fù)擔(dān)和大幅度降低成本,提高了系統(tǒng)的性能價(jià)格比。
集中器和采集模塊之間,采用工業(yè)標(biāo)準(zhǔn)總線RS485進(jìn)行雙向通訊。集中器不斷巡測(cè)采集模塊,以統(tǒng)計(jì)存儲(chǔ)各種用電數(shù)據(jù),同時(shí)又要保證和DCS之間的正常通訊,這就要求集中器具備雙串口同時(shí)通訊的能力。集中器中采用一片具有雙串口的CPU(DS80C320)來(lái)實(shí)現(xiàn)雙串口同時(shí)通訊。本系統(tǒng)中的RS422,RS232、紅外通訊均使用通用工業(yè)標(biāo)準(zhǔn)ModBus協(xié)議。
1.2 系統(tǒng)組成與功能
集抄系統(tǒng)由電量采集模塊、數(shù)據(jù)集中器、專用掌上電腦和DCS經(jīng)RS422和RS485總線靈活配置而成。集抄系統(tǒng)組成圖如圖1所示。采集模塊通過(guò)檢測(cè)機(jī)械式電表表盤(pán)的轉(zhuǎn)數(shù)或電子式電表輸出的脈沖數(shù),轉(zhuǎn)換成電表用電量,經(jīng)RS485總線將用電量數(shù)據(jù)上傳。采集器中保存的用電量數(shù)據(jù)與原有電表上的用電量窗口顯示值相一致。安裝采集器后不改變?cè)须姳淼恼w結(jié)構(gòu)和計(jì)量精度。
采集模塊具有獨(dú)立的CPU和非易失性斷電保持存儲(chǔ)器及工作狀態(tài)燈指示??涩F(xiàn)場(chǎng)設(shè)置初始參數(shù)。故障自動(dòng)保護(hù)。適應(yīng)現(xiàn)有各種型號(hào)的機(jī)械式、電子式電能表。
集中器負(fù)責(zé)各電表用電量數(shù)據(jù)的集中收集,處理和存儲(chǔ)。通過(guò)RS485總線與采集模塊通訊,讀取每個(gè)采集模塊中存儲(chǔ)的用電量數(shù)據(jù)。每臺(tái)集中器最多可管理 256臺(tái)電表。經(jīng)RS422總線可與DCS之間進(jìn)行雙向通訊,接受DCS的各種集中器具有獨(dú)立的CPU和非易失性斷電保持存儲(chǔ)器,可存儲(chǔ)當(dāng)前用電量數(shù)據(jù)和歷史用電量數(shù)據(jù)。內(nèi)部有實(shí)時(shí)時(shí)鐘,斷電后繼續(xù)保持走時(shí)。故障自動(dòng)診斷,并將異常狀態(tài)上報(bào)DCS??膳c其他系統(tǒng)(SCADA,MIS)直接進(jìn)行接口。
DCS通過(guò)RS422總線與集中器進(jìn)行雙向通訊,讀取集中器中存儲(chǔ)的各電表當(dāng)前用電量數(shù)據(jù)和歷史用電量數(shù)據(jù)。用電量數(shù)據(jù)經(jīng)DCS的記錄存儲(chǔ)及分析處理,為有關(guān)部門提供用電狀況的統(tǒng)計(jì)分析和管理。每個(gè)DCS可管理64個(gè)集中器。DCS具有系統(tǒng)運(yùn)行參數(shù)設(shè)置、校時(shí)、事件記錄管理、曲線圖形報(bào)表打印輸出功能。實(shí)時(shí)讀取并顯示各電表的用電量數(shù)據(jù),進(jìn)行用電量數(shù)據(jù)分析??膳c其他網(wǎng)絡(luò)接口,將數(shù)據(jù)傳輸給其他系統(tǒng)(SCADA,MIS)供分析處理。專用掌上電腦又稱掌上終端機(jī)。當(dāng)掌上電腦安裝上相應(yīng)的軟件后,利用紅外口現(xiàn)場(chǎng)初始化采集模塊,利用紅外口/RS232口現(xiàn)場(chǎng)初始化集中器、抄取數(shù)據(jù)、狀態(tài)信息等,是系統(tǒng)維護(hù)的重要工具。筆記本電腦也具有同樣的功能。
2 集抄系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn)
集抄系統(tǒng)軟件包括DCS軟件、集中器軟件、采集模塊軟件和專用掌上電腦軟件。其中集中器和采集模塊軟件用匯編語(yǔ)言編寫(xiě),專用掌上電腦軟件用專用掌上電腦編程語(yǔ)言實(shí)現(xiàn)。下面主要介紹DCS集抄系統(tǒng)軟件和集中器中雙串口CPU同時(shí)通訊的實(shí)現(xiàn)。
2.1 DCS集抄軟件
DCS集抄系統(tǒng)軟件采用Interllution iFox工控組態(tài)軟件,在Windows 95(以上)和Windows NT系統(tǒng)軟件平臺(tái)下完成,使用電廠流行的動(dòng)態(tài)圖形對(duì)象和按鍵操作主窗口,類似Excel的表格大量用于數(shù)據(jù)錄入與顯示,美觀簡(jiǎn)便的對(duì)話框和圖形曲線人機(jī)界面設(shè)計(jì),使用戶操作快捷方便。DCS集抄軟件主要包括下列功能:
(1)選擇部分或全部瀏覽各種自動(dòng)抄表數(shù)據(jù)和實(shí)時(shí)巡測(cè)數(shù)據(jù)。
(2)實(shí)時(shí)巡測(cè)、選抄功能可選擇抄收一個(gè)或幾個(gè)指定電表的當(dāng)前電量,可選擇不間斷巡測(cè)部分或全部電表用戶的實(shí)時(shí)數(shù)據(jù)。
(3)自動(dòng)抄表功能可指定自動(dòng)抄收時(shí)間間隔,自動(dòng)抄收整點(diǎn)數(shù)據(jù)、每隔可選時(shí)間間隔的全部電表數(shù)據(jù)、每天指定的幾個(gè)抄表時(shí)刻的電量數(shù)據(jù)等。
(4)各種報(bào)表曲線圖形的打印和完善的操作指南。
(5)系統(tǒng)配置靈活方便可在線任意增刪集中器和采集模塊,修改各種運(yùn)行參數(shù)和電表用戶信息。
(6)自動(dòng)故障診斷、事件記錄和信息追憶功能。
(7)多級(jí)口令管理,防止非授權(quán)人員操作的功能。
(8)方便多樣的查詢功能。
(9)進(jìn)行負(fù)荷分析,統(tǒng)計(jì)各種曲線圖表。
2.2 集中器中雙串口CPU同時(shí)通訊的實(shí)現(xiàn)
由于集中器要實(shí)現(xiàn)和上位機(jī)與采集模塊的同時(shí)通訊,采用一片具有雙串口的CPU,該CPU具有2個(gè)串口和2個(gè)串口中斷,串口1中斷處理與上位機(jī)的通訊,串口2中斷處理與采集模塊的通訊,串口1中斷設(shè)置為高優(yōu)先級(jí)中斷,每接塑到或發(fā)送完一個(gè)字節(jié)都進(jìn)入中斷處理,處理完畢立即退出中斷,通訊波特率都為9 600 b/s,一個(gè)起始位和一個(gè)停止位。首先要解決時(shí)間沖突問(wèn)題,硬件接受或發(fā)送一個(gè)字節(jié)的時(shí)間為1 ms左右,而軟件接受或發(fā)送一個(gè)字節(jié)的時(shí)間僅幾μs,這就為雙串口同時(shí)通訊提供了條件。
同時(shí)通訊實(shí)際上是將CPU時(shí)間分成很小的時(shí)間片,假設(shè)較快的串口發(fā)送或接受一個(gè)字節(jié)的最長(zhǎng)時(shí)間為TRbyteMax,則CPU最長(zhǎng)時(shí)間片一般應(yīng)小于TRbyteMax/2,當(dāng)然在接受或發(fā)送完一幀數(shù)據(jù)之后的間隙,CPU 時(shí)間片可以適當(dāng)延長(zhǎng),作一些必要的數(shù)據(jù)處理。
其次要解決數(shù)據(jù)沖突問(wèn)題,2個(gè)串口通訊分別使用各自的接受發(fā)送數(shù)據(jù)緩沖區(qū)和控制變量,以減少中斷保護(hù)數(shù)據(jù)量和防止數(shù)據(jù)沖突。當(dāng)主程序、串口2中斷處理程序和其他中斷處理程序往存儲(chǔ)器(與上位機(jī)的通訊用存儲(chǔ)器)中寫(xiě)數(shù)據(jù)時(shí),需在盡量短的時(shí)間內(nèi)關(guān)閉串口 1中斷,關(guān)閉中斷時(shí)間應(yīng)小于幾百μs,防止其他程序數(shù)據(jù)沒(méi)有寫(xiě)完之前串口1讀此數(shù)據(jù)。
同時(shí)需要注意一些其他問(wèn)題:盡量采用模塊化、結(jié)構(gòu)化、對(duì)象化編程,使串口通訊程序和其他程序之間、2個(gè)串口通訊程序之間相互獨(dú)立,以減少發(fā)生錯(cuò)誤的機(jī)會(huì)。另外串口通訊中,還要增加通訊超時(shí)處理機(jī)制,中斷處理中要注意數(shù)據(jù)和程序狀態(tài)的保護(hù),完善出錯(cuò)處理程序,使用電源監(jiān)測(cè)掉電保護(hù)硬件和看門狗技術(shù)等。串口通訊數(shù)據(jù)幀中采用高可靠性的循環(huán)冗余校驗(yàn)(CRC)技術(shù),極大地降低了數(shù)據(jù)誤碼率,在連續(xù)運(yùn)行幾個(gè)月的大量數(shù)據(jù)中沒(méi)有發(fā)現(xiàn)誤碼。
3 結(jié)語(yǔ)
本系統(tǒng)設(shè)計(jì)采用模塊化、結(jié)構(gòu)化、對(duì)象化的程序設(shè)計(jì)方法,硬件冗余設(shè)計(jì)和軟硬件自動(dòng)故障診斷,使系統(tǒng)具有高可靠性和高實(shí)時(shí)性。系統(tǒng)使用大量報(bào)表和動(dòng)態(tài)圖形曲線,具有友好的人機(jī)交互界面。專用掌上電腦可現(xiàn)場(chǎng)初始化,操作簡(jiǎn)便、維修快捷。同時(shí)具有在線設(shè)置方便、硬件配置靈活多樣、適用范圍廣、通用性好、性能價(jià)格比高等特點(diǎn)。已在電廠連續(xù)可靠運(yùn)行,有很高的抄收成功率,抄收數(shù)據(jù)無(wú)誤碼??蓮V泛應(yīng)用于大中型企業(yè)和電廠,為現(xiàn)代化發(fā)電用電管理提供可靠的數(shù)據(jù)來(lái)源。本系統(tǒng)可做進(jìn)一步改進(jìn),針對(duì)不同類型的應(yīng)用,在DCS中加入相應(yīng)的統(tǒng)計(jì)分析模塊和控制單元,達(dá)到自動(dòng)控 制的目的。
參考文獻(xiàn)
[1]Modicon modbus protocol reference guide.PI- MBUS - 300 Rev. J. MODICON ,Inc. ,Industrial Automation Systems . June 1996.
[2]何立民.單片機(jī)應(yīng)用系統(tǒng)[M].北京:北京航空航 天大學(xué)出版社,1992.
[3]High - speed microcontrollers . DataBook of Dallas Semiconductor Corp.1999.