茅大鈞 鄭陸君
(上海電力學(xué)院1,上海 200090;上海微程電氣設(shè)備有限公司2,上海 200090)
隨著微電子技術(shù)及計(jì)算機(jī)技術(shù)的飛速發(fā)展,為降低集散控制系統(tǒng)(DCS)的成本、提高計(jì)算機(jī)監(jiān)控系統(tǒng)的性能,電力生產(chǎn)企業(yè)將工業(yè)生產(chǎn)過(guò)程中作為監(jiān)測(cè)的溫度、壓力、流量等熱工參數(shù)由分布式遠(yuǎn)程I/O數(shù)據(jù)采集系統(tǒng)測(cè)量處理。該系統(tǒng)集A/D轉(zhuǎn)換技術(shù)和數(shù)字網(wǎng)絡(luò)通信技術(shù)于一體,將傳統(tǒng)DCS的數(shù)據(jù)測(cè)量與處理功能設(shè)置在被測(cè)設(shè)備附近,解決了傳統(tǒng)測(cè)量中各種傳感器模擬信號(hào)從工業(yè)現(xiàn)場(chǎng)通過(guò)電纜線長(zhǎng)距離接到控制室的傳輸過(guò)程中受到動(dòng)力設(shè)備干擾的影響,并減少了信號(hào)電纜鋪設(shè)一次投資以及后續(xù)電纜老化維護(hù)帶來(lái)的困難。本設(shè)計(jì)就是針對(duì)電力生產(chǎn)企業(yè)這種需求而實(shí)現(xiàn)的一種遠(yuǎn)程智能I/O數(shù)據(jù)采集器,并作為火力發(fā)電站DCS配套使用的一個(gè)組成部分。
遠(yuǎn)程I/O硬件采用多微處理器模塊化結(jié)構(gòu),其硬件配置如圖1所示。
圖1 遠(yuǎn)程I/O數(shù)據(jù)采集器的硬件框圖Fig.1 Hardware of the remote I/O data collector
圖1中,主CPU采用基于32位ARM7TDMI-S內(nèi)核、內(nèi)部嵌入128 kB高速Flash存儲(chǔ)器和16 kB靜態(tài)RAM的LPC2134嵌入式ARM微處理器。微處理器帶有2個(gè)UART接口、2個(gè)I2C串行接口、2個(gè)SPI串行接口、47個(gè)GPIO和2個(gè)32位定時(shí)器等功能接口。外圍電路由按鍵接口電路、LCD顯示模塊、數(shù)據(jù)存儲(chǔ)電路、DNet通信接口電路和MCad數(shù)據(jù)轉(zhuǎn)換模塊等組成。設(shè)置按鍵接口電路的功能是為了配合人機(jī)交互接口LCD顯示模塊,便于用戶現(xiàn)場(chǎng)調(diào)試、修改系統(tǒng)參數(shù)及顯示測(cè)量數(shù)據(jù)。數(shù)據(jù)存儲(chǔ)電路采用Ramtron公司FRAM鐵電技術(shù)的隨機(jī)存儲(chǔ)器FM24CL64和Intersil公司內(nèi)部集成的看門狗電路E2PROM存儲(chǔ)器X5043。FM24CL64具有高速存儲(chǔ)數(shù)據(jù)的特性,用于存儲(chǔ)系統(tǒng)狀態(tài)信息、系統(tǒng)冷熱啟動(dòng)校驗(yàn)的RAM數(shù)據(jù)、I/O測(cè)量數(shù)據(jù)及主CPU與MCad模塊要交換的數(shù)據(jù)。X5043存儲(chǔ)器功能是作為主CPU的看門狗復(fù)位電路及保存系統(tǒng)組態(tài)參數(shù)。DNet通信接口模塊的主要功能是把測(cè)量的數(shù)據(jù)傳送到DCS系統(tǒng),接口電路可根據(jù)用戶需要配置成RS-485電路或以太網(wǎng)接口電路。MCad數(shù)據(jù)轉(zhuǎn)換模塊的功能是通過(guò)高精度16位∑-ΔADC模/數(shù)轉(zhuǎn)換器把現(xiàn)場(chǎng)信號(hào)數(shù)字化處理后傳給LPC2134主微處理器,中間用光耦隔離,使主系統(tǒng)與數(shù)據(jù)轉(zhuǎn)換模塊電氣隔離。
對(duì)現(xiàn)場(chǎng)的信號(hào)測(cè)量由MCad數(shù)據(jù)轉(zhuǎn)換模塊完成,每個(gè)MCad模塊有8個(gè)測(cè)量通道,模/數(shù)轉(zhuǎn)換器采用高精度的16位∑-ΔADC AD7715。由于MCad模塊工作任務(wù)簡(jiǎn)單,所以微控制器采用51系列MCU。系統(tǒng)主微處理器LPC2134每隔200 ms向MCad模塊請(qǐng)求測(cè)量數(shù)據(jù),MCad模塊接收到命令后把測(cè)量好的數(shù)據(jù)通過(guò)I2C總線寫入隨機(jī)存儲(chǔ)器FM24CL64;隨后主微處理器LPC2134從FM24CL64讀取數(shù)據(jù),并對(duì)數(shù)據(jù)作進(jìn)一步處理后,送至LCD顯示和DNet通信接口模塊。由于采集器有3個(gè)MCad模塊,所以對(duì)每個(gè)模塊的測(cè)量數(shù)據(jù)讀取采用“握手”信號(hào)方式進(jìn)行。該方式先由主微處理器LPC2134向要交換數(shù)據(jù)的MCad模塊的MCU發(fā)出中斷請(qǐng)求,MCU接收到請(qǐng)求后把數(shù)據(jù)寫入隨機(jī)存儲(chǔ)器FM24CL64;然后向主微處理器LPC2134發(fā)出數(shù)據(jù)已寫好的響應(yīng)中斷,LPC2134收到后讀取數(shù)據(jù)。
DNet通信接口模塊采用雙網(wǎng)冗余方式,接口可以靈活組合成兩路RS-485總線接口、兩路以太網(wǎng)接口或一路RS-485、一路以太網(wǎng)接口這3種方式。DNet通信接口和主微處理器LPC2134交換數(shù)據(jù)采用UART串行口。DNet通信接口模塊根據(jù)預(yù)設(shè)定的通信協(xié)議接收到DCS的數(shù)據(jù)請(qǐng)求命令后把數(shù)據(jù)送入DCS系統(tǒng)。
軟件采用C語(yǔ)言模塊化編程結(jié)構(gòu),程序主要包括測(cè)量信號(hào)A/D采樣程序、A/D測(cè)量數(shù)據(jù)處理程序和通信程序(Modbus RTU、TCP協(xié)議)等。
MCad數(shù)據(jù)轉(zhuǎn)換模塊的主要任務(wù)是完成對(duì)現(xiàn)場(chǎng)信號(hào)的A/D采樣及數(shù)據(jù)處理,并把處理好的數(shù)據(jù)送給主微處理器LPC2134。A/D采樣用的模/數(shù)轉(zhuǎn)換器采用ADI公司的16位AD7715芯片,MCU通過(guò)AD7715的SPI接口完成對(duì)該芯片內(nèi)部寄存器的讀寫操作。
2.1.1 A/D 采樣子程序
A/D轉(zhuǎn)換程序主要調(diào)用2個(gè)函數(shù)實(shí)現(xiàn),即對(duì)AD7715模/數(shù)轉(zhuǎn)換器的讀16位的采樣碼子程序和寫寄存器命令字子程序。函數(shù)讀AD7715的轉(zhuǎn)換結(jié)果的子程序?yàn)?void AD_Read(INT8U*ADBufPtr);寫AD7715工作方式命令子程序?yàn)関oid AD_Write(INT8U ADCmd),實(shí)現(xiàn)程序流程圖如圖2所示。
圖2 程序流程圖Fig.2 Program flowchart
2.1.2 A/D 測(cè)量處理程序
在工業(yè)上,采用熱電阻和熱電偶測(cè)量溫度比較普遍。采集器用熱電阻測(cè)量溫度的方法,即雙恒流源方式測(cè)得電阻值,再用查表法得到對(duì)應(yīng)的溫度值。程序中用到的測(cè)量原理如下。
測(cè)量出已知350 Ω的高精密電阻的電壓值V1為:
測(cè)量出未知電阻值的熱電阻二端電壓值V2為:
則由式(1)和(2)可以得到被測(cè)熱電阻值,即:
在實(shí)際程序?qū)崿F(xiàn)時(shí),把式(3)中的V1、V2換成采樣碼即可。這樣測(cè)出熱電阻阻值后,再查阻值-溫度對(duì)照表就可以得到溫度測(cè)量值。因此,阻值-溫度對(duì)照表的編制是程序?qū)崿F(xiàn)的關(guān)鍵部分,其既要滿足工業(yè)測(cè)量0.1級(jí)高精度的要求,又要使程序能快速查表。MCad數(shù)據(jù)轉(zhuǎn)換模塊采用64段查表法編制分度號(hào)對(duì)照表,表1為根據(jù)熱電阻Pt100分度號(hào)編制的對(duì)照表的部分?jǐn)?shù)據(jù)(以每隔5.47 Ω電阻值對(duì)應(yīng)溫度值)。
表1 熱電阻Pt100分度號(hào)對(duì)照表Tab.1 RTD Pt100 indexing table
在程序編程實(shí)現(xiàn)時(shí),為了節(jié)省MCU的存儲(chǔ)空間和提高查表速度,表格采用把溫度值放大10倍的取整方法存儲(chǔ)在MCU的程序段,即溫度值用表1第三列所示值存儲(chǔ)在MCU的程序段。
由于程序表格索引隱含為電阻值的5.47的整倍數(shù),因此,程序中查表不用比較表格中的具體數(shù)值,只要把計(jì)算得到的電阻值換算成5.47的整倍數(shù)作為存儲(chǔ)單元的索引號(hào)即可。這種查表方法簡(jiǎn)單、快速、實(shí)用。如A/D轉(zhuǎn)換計(jì)算得到的熱電阻阻值為138.51 Ω,則138.51/5.468=25.33(上文中 5.47 由 5.468 取二位小數(shù)得到,計(jì)算中用5.468),取整得到25,查表得到T[25]=953,T[26]=1 097,則根據(jù)公式:T=T[N]+(Xn-N) ×(T[N+1]-T[N]),其中T[N]表示索引號(hào)為N的表格單元值,得到T=T[25]+(25.33-25)×(T[26]- T[25])=953+0.33 × (1 097 - 953)=1 000.52,取整得到溫度值1 000。由于表格編制時(shí)值放大了10倍,所以實(shí)際溫度測(cè)量值應(yīng)為100.0℃。
為了方便采集器通信接口硬件擴(kuò)展,滿足不同用戶需求,通信接口采用模塊化結(jié)構(gòu)。DNet通信模塊和主微處理器LPC2134內(nèi)部交換數(shù)據(jù)采用UART口,與DCS通信可采用RS-485總線接口或工業(yè)以太網(wǎng)總線接口,也可根據(jù)需要擴(kuò)展成CAN總線接口和Profibus-DP現(xiàn)場(chǎng)總線接口等。
DNet通信模塊和主微處理器LPC2134內(nèi)部交換數(shù)據(jù)幀結(jié)構(gòu)如表2所示。
每幀數(shù)據(jù)為56 B,以設(shè)備地址號(hào)開始,固定值0x16結(jié)束,UART口波特率固定為115.2 kbit/s、1位起始位、8位數(shù)據(jù)位、無(wú)校驗(yàn)位、1位停止位數(shù)據(jù)通信方式。DNet通信模塊用115.2 kbit/s的波特率和主微處理器交換數(shù)據(jù),56 B的數(shù)據(jù)只要用5 ms左右就可以完成一次通信。DNet通信模塊采用每隔250 ms召喚的方式向主微處理器請(qǐng)求測(cè)量數(shù)據(jù)。主微處理器最慢在30 ms內(nèi)作出響應(yīng),這樣實(shí)際一次通信時(shí)間最長(zhǎng)在35 ms左右。
表2 交換數(shù)據(jù)幀結(jié)構(gòu)Tab.2 Structure of the data frame for data exchange
DNet通信模塊和DCS的通信協(xié)議主要采用Modbus RTU、TCP協(xié)議。
由于采集器主要作為DCS的數(shù)據(jù)采集前端,因此,DNet通信模塊實(shí)現(xiàn)的Modbus RTU、TCP協(xié)議通信程序主要為從機(jī)程序。Modbus RTU協(xié)議通信時(shí),從機(jī)接收到的正確消息幀長(zhǎng)度LEN為8 B(1 B的設(shè)備地址號(hào)、1 B的功能碼、2 B的寄存器起始地址、2 B的寄存器數(shù)量、2 B的CRC檢驗(yàn)碼),一般從機(jī)消息接收在中斷服務(wù)程序中實(shí)現(xiàn)。
DNet通信模塊數(shù)據(jù)發(fā)送由DataSend()函數(shù)實(shí)現(xiàn),函數(shù)主要功能為把收到的消息幀前6 B用CRC-16程序校驗(yàn)方法計(jì)算;將得到的實(shí)際CRC校驗(yàn)碼,再與收到的消息幀最后2 B的CRC校驗(yàn)碼比較,若相同,發(fā)送應(yīng)答幀;若不同,則發(fā)送錯(cuò)誤應(yīng)答幀。
本采集器作為數(shù)據(jù)采集前端應(yīng)用于某火電廠,其系統(tǒng)示意圖如圖3所示。
圖3 遠(yuǎn)程I/O數(shù)據(jù)采集器應(yīng)用示意圖Fig.3 Example of application of remote I/O data collector
由圖3可以看出,數(shù)據(jù)采集系統(tǒng)使用24臺(tái)遠(yuǎn)程I/O數(shù)據(jù)采集器,采集器采用掛壁式就地安裝在被測(cè)設(shè)備附近。采集器的以太網(wǎng)通信接口使用RJ45接口通過(guò)雙絞線連到交換機(jī)上,交換機(jī)經(jīng)光纖轉(zhuǎn)換器通過(guò)光纜連到DCS系統(tǒng),通信接口采用雙網(wǎng)冗余方式。通信協(xié)議采用Modbus TCP,遠(yuǎn)程I/O數(shù)據(jù)采集器IP地址分別設(shè)為192.168.0.201 ~192.168.0.224,服務(wù)端口號(hào)都設(shè)為502。
這樣就實(shí)現(xiàn)了遠(yuǎn)程I/O通過(guò)工業(yè)以太網(wǎng)把測(cè)量數(shù)據(jù)送到DCS系統(tǒng)的目的,由DCS系統(tǒng)做統(tǒng)一處理后,可作為設(shè)備參數(shù)監(jiān)控的依據(jù)。
本文介紹了一種基于ARM的嵌入式多微處理器結(jié)構(gòu)的遠(yuǎn)程I/O數(shù)據(jù)采集器,闡述了適用于DCS系統(tǒng)的遠(yuǎn)程I/O數(shù)據(jù)A/D轉(zhuǎn)換模塊MCad、DNet數(shù)據(jù)通信模塊與DCS系統(tǒng)通信接口電路的設(shè)計(jì)與實(shí)現(xiàn)。由本方案設(shè)計(jì)實(shí)現(xiàn)的遠(yuǎn)程I/O數(shù)據(jù)采集器已實(shí)現(xiàn)產(chǎn)業(yè)化,目前已在國(guó)內(nèi)外近百臺(tái)300 MW、600 MW、1 000 MW大型火電機(jī)組中運(yùn)用,達(dá)到了現(xiàn)場(chǎng)抗干擾能力強(qiáng)、運(yùn)行穩(wěn)定可靠、安裝使用方便和經(jīng)濟(jì)實(shí)用等設(shè)計(jì)要求,是代表當(dāng)今測(cè)量技術(shù)發(fā)展趨勢(shì)的新型智能儀表。
[1]李正軍.計(jì)算機(jī)測(cè)控系統(tǒng)設(shè)計(jì)與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2004.
[2]周立功.ARM微控制器基礎(chǔ)與實(shí)戰(zhàn)[M].北京:北京航空航天大學(xué)出版社,2003.
[3]朱三元.網(wǎng)絡(luò)通信軟件設(shè)計(jì)指南[M].北京:清華大學(xué)出版社,1994.
[4]周明天,汪文勇.TCP/IP網(wǎng)絡(luò)原理與技術(shù)[M].北京:清華大學(xué)出版社,1993.
[5]賈智平,張瑞華.嵌入式系統(tǒng)原理與接口技術(shù)[M].北京:清華大學(xué)出版社,2005.
[6]王樹清,趙鵬程.集散型計(jì)算機(jī)控制系統(tǒng)(DCS)[M].杭州:浙江大學(xué)出版社,1994.
[7]王琳,商周,王學(xué)偉.數(shù)據(jù)采集系統(tǒng)的發(fā)展與應(yīng)用[J].電測(cè)與儀表,2004,41(8):4 -8.
[8]張州,陸靜.PROFIBUS現(xiàn)場(chǎng)總線技術(shù)及應(yīng)用[J].上海電力學(xué)院學(xué)報(bào):自然科學(xué)版,2008,24(2):157-160.