楊 燁
(上海自動(dòng)化儀表股份有限公司技術(shù)中心,上海 200072)
在AP1000核電站控制系統(tǒng)中,根據(jù)不同的核安全分級(jí),采用安全級(jí)和非安全級(jí)兩個(gè)不同的平臺(tái)實(shí)現(xiàn)安全控制功能。安全級(jí)平臺(tái)即保護(hù)和安全檢測(cè)系統(tǒng)(protection and safety monitoring system,PMS),實(shí)現(xiàn)反應(yīng)堆保護(hù)系統(tǒng)的功能;非安全級(jí)平臺(tái)即電廠控制系統(tǒng)(plant control system,PLS),實(shí)現(xiàn)核島/常規(guī)島/電廠配套設(shè)施 (balance of plant,BoP)大多數(shù)的控制功能。將這些可能受到共因故障影響的安全功能組合在一起,就組成了多樣性驅(qū)動(dòng)系統(tǒng) (diverse actuation system,DAS)。DAS是獨(dú)立于這兩個(gè)平臺(tái)外的一個(gè)孤立系統(tǒng)。當(dāng)保護(hù)和安全檢測(cè)系統(tǒng)出現(xiàn)概率極低的共因故障時(shí),DAS系統(tǒng)用來觸發(fā)反應(yīng)堆緊急停堆和汽輪機(jī)停機(jī),降低堆芯熔化和安全殼超壓的概率。
本文介紹了上海自動(dòng)化儀表股份有限公司技術(shù)中心研發(fā)的DAS系統(tǒng)主要模塊的硬件設(shè)計(jì)。在開發(fā)過程中,選用現(xiàn)場(chǎng)可編程門陣列(field programmable gate array,F(xiàn)PGA)實(shí)現(xiàn)從模擬信號(hào)采集到繼電器輸出等一系列功能,避免了軟件V&V認(rèn)證,大大加快了開發(fā)進(jìn)度。由FPGA硬件搭建的系統(tǒng)具有響應(yīng)速度快、采樣精度高和抗干擾能力強(qiáng)等優(yōu)點(diǎn),是當(dāng)今國際上功能安全系統(tǒng)設(shè)計(jì)的主流方案。
由于DAS系統(tǒng)是保護(hù)和安全檢測(cè)系統(tǒng)PMS和電廠控制系統(tǒng)PLS的備用性系統(tǒng),因此它采用不同于PMS和PLS軟硬件結(jié)構(gòu),這也是AP1000核電站控制系統(tǒng)在提高安全性措施方面除了非能動(dòng)設(shè)計(jì)以外的一項(xiàng)重要措施[1]。
保護(hù)和安全檢測(cè)系統(tǒng)(PMS)采用Emerson Ovation系統(tǒng),基于英特爾X86/Pentium硬件平臺(tái),操作系統(tǒng)選用 VxWorks,C語言編程,Emerson Control Builder software軟件平臺(tái)??刂葡到y(tǒng)(PLS)采用ABB AC160系統(tǒng),摩托羅拉68系列硬件平臺(tái),VRTX開發(fā)系統(tǒng),AMPL語言,ABB Function Chart Builder software軟件平臺(tái)。而DAS系統(tǒng)是一個(gè)完全基于硬件的系統(tǒng),沒有軟件控制,主芯片采用 FPGA[2],硬件描述語言選用VHDL。雖然多樣性驅(qū)動(dòng)系統(tǒng)執(zhí)行的是安全功能,但是它本身仍屬于非安全級(jí)。
一個(gè)典型的DAS系統(tǒng)包括儀表柜中的8塊調(diào)理模塊和對(duì)應(yīng)的通信模塊、數(shù)據(jù)處理柜中的8塊定值模塊和對(duì)應(yīng)的通信模塊、若干本地顯示模塊和遠(yuǎn)程顯示模塊以及工程師站。DAS系統(tǒng)結(jié)構(gòu)圖如圖1所示。
圖1 DAS系統(tǒng)結(jié)構(gòu)圖Fig.1 Structure of DAS
DAS系統(tǒng)采用單通道輸入,共包含16個(gè)模擬信號(hào)輸入。輸入信號(hào)如表1所示。
表1 DAS系統(tǒng)輸入信號(hào)Tab.1 Input signals of DAS
儀表柜部分主要負(fù)責(zé)輸入信號(hào)處理、顯示和通信等功能。其中,調(diào)理模塊接收探測(cè)器信號(hào)(包括4~20 mA電流、1~5 V電壓、TC、RTD信號(hào));對(duì)輸入信號(hào)進(jìn)行必要的隔離、濾波和A/D轉(zhuǎn)換等處理,轉(zhuǎn)換成工程量值后,既可通過RS-485串口分別傳送至本地顯示模塊和通信模塊,又可通過光纖傳送至定值模塊和遠(yuǎn)程顯示模塊。
數(shù)據(jù)處理柜主要由定值模塊和通信模塊組成。定值模塊分別接收來自調(diào)理模塊和通信模塊的信號(hào),并將這兩個(gè)信號(hào)進(jìn)行比較。比較結(jié)果經(jīng)過必要的延時(shí)和邏輯處理后,驅(qū)動(dòng)專設(shè)安全設(shè)施(engineered safety features,ESF),緩解事故工況。同時(shí),定值以及定值狀態(tài)等信息也被送到通信模塊中,經(jīng)由適當(dāng)?shù)母綦x、調(diào)理等處理后,通過通信口送到工程師站。通信模塊與定值模塊或者調(diào)理模塊之間通過RS-485串口實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)連接,與工程師站之間通過以太網(wǎng)相連接。
工程師站主要負(fù)責(zé)DAS系統(tǒng)的組態(tài)和監(jiān)控兩大功能:配置調(diào)整定值模塊的比較值并下發(fā)到相應(yīng)的通信卡,接收調(diào)理模塊和定值模塊上傳的數(shù)據(jù),監(jiān)控定值狀態(tài)。
調(diào)理模塊的主要功能是將輸入的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)并發(fā)送到其他模塊,硬件設(shè)計(jì)中采用的模數(shù)轉(zhuǎn)換芯片是ADI公司的AD7792。AD7792為∑-Δ結(jié)構(gòu)[3],采用SPI串口通信方式,考慮到模擬信號(hào)輸入精度和穩(wěn)定性,采樣有效位數(shù)選擇16位,采樣周期為20 ms。調(diào)理模塊上的FPGA是Altera公司 CycloneII系列的EP2C5,F(xiàn)BGA256封裝。根據(jù)輸入的模擬信號(hào)類型的不同,調(diào)理模塊可以分為三大類:電流/電壓型調(diào)理模塊、RTD型調(diào)理模塊和TC型調(diào)理模塊。電流/電壓型調(diào)理模塊可以接收4~20 mA的電流信號(hào)和1~5 V的電壓信號(hào),采樣輸入精度達(dá)到量程范圍的0.1%。RTD型調(diào)理模塊可以接收Pt100和Cu50的三線制熱電阻信號(hào),采樣輸入精度分別為0.1%和0.3%。TC型調(diào)理模塊可以接收T、K、E、N型熱電偶信號(hào),帶冷端補(bǔ)償功能和斷路檢測(cè)功能,采樣輸入精度分別為0.2%和0.3%。調(diào)理模塊基本工作原理框圖如圖2所示。
圖2 調(diào)理模塊原理圖Fig.2 Principle of the conditioning module
圖2中,各類型的模擬信號(hào)進(jìn)入調(diào)理模塊,經(jīng)預(yù)處理和AD7792芯片,轉(zhuǎn)換出32位原始碼值,再通過SPI串行通信協(xié)議,進(jìn)入FPGA。在FPGA中,原始碼值首先通過碼值轉(zhuǎn)換模塊轉(zhuǎn)換為補(bǔ)碼形式,同時(shí)將Flash中存儲(chǔ)的標(biāo)定系數(shù)k、b和量程轉(zhuǎn)換系數(shù)A、B讀出,通過兩次kx+b的線性處理,把補(bǔ)碼形式的原始碼值轉(zhuǎn)換成2字節(jié)整數(shù)位和1字節(jié)小數(shù)點(diǎn)位的定點(diǎn)數(shù)工程量值信號(hào)。這3個(gè)字節(jié)的數(shù)據(jù)再經(jīng)UART發(fā)送模塊輸出:一路通過光電轉(zhuǎn)換模塊,以光纖為媒介送往定值模塊,稱之為安全通道;另一路通過RS-485驅(qū)動(dòng)芯片,以雙絞線為媒介送往本地顯示模塊和通信模塊[4],稱之為非安全通道。在調(diào)試模式下,調(diào)理模塊可以通過RS-485接收通信模塊發(fā)出的標(biāo)定系數(shù)和量程轉(zhuǎn)換系數(shù),并寫入Flash。當(dāng)調(diào)理模塊斷電后再次上電啟動(dòng)時(shí),可以直接從Flash中讀出這些參數(shù)并進(jìn)行運(yùn)算。
SPI收發(fā)模塊采用狀態(tài)機(jī)設(shè)計(jì)[5]。FPGA作為主端,AD7792作為從端,即FPGA向AD7792輸出數(shù)據(jù)線Dout、時(shí)鐘線 sclk和片選線 ssel,AD7792向 FPGA輸入數(shù)據(jù)線Din。SPI收發(fā)模塊主要包括波特率發(fā)生器(baud.v)、發(fā)送模塊(transfer.v)和接收模塊(receive.v)三部分。
波特率發(fā)生器通過計(jì)數(shù)器,將主時(shí)鐘24 MHz分頻為12 MHz,作為發(fā)送模塊和接收模塊的時(shí)鐘。如果需要降低SPI串口通信的波特率,只需要修改分頻參數(shù)即可;如果需要提高SPI串口通信的波特率,可以利用FPGA內(nèi)部的PLL資源提高時(shí)鐘頻率。在發(fā)送模塊和接收模塊內(nèi)部還有1個(gè)16位的計(jì)數(shù)器,用于限定輸出1位數(shù)據(jù)的時(shí)間長(zhǎng)度。因此,輸出或者輸入的串行數(shù)據(jù)每一位的寬度為 1.33 μs,波特率為750 kbit/s[6]。
發(fā)送模塊本質(zhì)上是一個(gè)并轉(zhuǎn)串的移位寄存器,初始化完成后FPGA向AD7792傳送的SPI信號(hào)線Dout、sclk和ssel都為高電平。當(dāng)開始發(fā)送數(shù)據(jù)時(shí),第1個(gè)時(shí)鐘周期先將ssel拉低;第2到第9個(gè)時(shí)鐘周期依次將待輸出的8位數(shù)據(jù)線輸出到Dout,同時(shí)輸出8個(gè)周期的sclk;第10個(gè)時(shí)鐘周期將ssel拉高,結(jié)束一幀數(shù)據(jù)的發(fā)送。
接收模塊和發(fā)送模塊的原理基本類似,只不過數(shù)據(jù)方向是從Din到內(nèi)部數(shù)據(jù)輸入緩存區(qū)。此外,開始接收每一位的數(shù)據(jù)之前必須先預(yù)留半個(gè)時(shí)鐘周期的時(shí)間,使得讀取數(shù)據(jù)的時(shí)間在數(shù)據(jù)位的中間,保證數(shù)據(jù)的穩(wěn)定性[7]。
至于UART串行通信收發(fā)模塊的設(shè)計(jì),由于設(shè)計(jì)方案比較成熟,在開發(fā)過程中參考了一些現(xiàn)有的IP core,僅增加了幀數(shù)據(jù)發(fā)送功能和10 B輸出緩存,且UART收發(fā)模塊和SPI收發(fā)模塊在設(shè)計(jì)原理上基本一致,因此,該設(shè)計(jì)就不做詳細(xì)介紹了。FPGA內(nèi)其余功能模塊,如碼值轉(zhuǎn)換、線性處理、Flash讀寫等因?yàn)樵O(shè)計(jì)較為簡(jiǎn)單,本文中也不做詳細(xì)介紹。
定值模塊的主要功能是通過光纖或者RS-485接收從調(diào)理模塊來的數(shù)字信號(hào),并與工程師站下發(fā)的定值信號(hào)進(jìn)行帶死區(qū)比較處理,通過固態(tài)繼電器輸出。其基本工作原理框圖如圖3所示。
圖3 定值模塊原理圖Fig.3 Principle diagram of set-point module
調(diào)理模塊處理后的3 B定點(diǎn)數(shù)工程量值信號(hào)被送入定值模塊,經(jīng)光纖接收電路后進(jìn)入FPGA,由UART接收模塊轉(zhuǎn)換成無小數(shù)點(diǎn)的16位工程量PV值。同時(shí),定值模塊從RS-485串口接收由工程師站通過通信模塊發(fā)送的設(shè)定參數(shù),包括設(shè)定值SP和ΔSP、延時(shí)參數(shù)、旁路參數(shù)等。工程師站配置的設(shè)定值、延時(shí)參數(shù)、旁路參數(shù)等數(shù)據(jù)全部寫入Flash。當(dāng)定值模塊上電后,可以從Flash中讀出這些參數(shù),并進(jìn)行比較和配置,即使沒有工程師站,也能使定值模塊正常運(yùn)行。設(shè)定值以及各種參數(shù)通過UART發(fā)送模塊和RS-485回送到通信模塊供工程師站監(jiān)視用。PV值和SP值可以通過定值卡面板上的選通開關(guān)顯示具體數(shù)值。
定值模塊中的數(shù)據(jù)處理是將PV值與SP和ΔSP進(jìn)行帶死區(qū)定值比較,得到Dout信號(hào),并經(jīng)過必要的延時(shí)和旁路選通邏輯后,輸出最終的DO信號(hào)給繼電器。由于定制模塊接收到的PV值有電流、電壓和溫度3種工程量類型,所以SP和ΔSP也定義為相應(yīng)的類型,并且小數(shù)點(diǎn)位數(shù)相同,以便于比較。定值比較公式如下,其中,PVi為不同時(shí)刻采集到的PV值。
將上述公式反映在坐標(biāo)圖中,則有:①在t0~t1時(shí)間段內(nèi),PVi≤SP-ΔSP,輸出的 Dout為0(即繼電器輸出沒有動(dòng)作);②在t1~t2時(shí)間段內(nèi),SP-ΔSP<PVi<SP,輸出的Dout保持不變,仍為0;③在t2~t3時(shí)間段內(nèi),PVi≥SP,輸出的 Dout為1,即繼電器輸出動(dòng)作;④在t3~t4時(shí)間段內(nèi),SP - ΔSP <PVi<SP,輸出的 Dout為保持,即輸出為1;⑤在 t4之后,PVi≤SP - ΔSP,輸出的Dout為0。定值比較曲線如圖4所示。
圖4 定值比較曲線圖Fig.4 Curves of set-point comparison
因?yàn)檎{(diào)理卡的種類有電流、電壓、TC、RTD四種,所以圖中所示定值卡采集到的PV工程量值的單位相應(yīng)有毫安、伏和攝氏度。
在定值模塊的FPGA設(shè)計(jì)過程中,主要設(shè)計(jì)了比較、延時(shí)和旁路這3部分。由于是定點(diǎn)數(shù),因此比較部分設(shè)計(jì)相對(duì)而言比較簡(jiǎn)單,通過直接比較整數(shù)部分即可得到Dout結(jié)果。延時(shí)參數(shù)共5 bits,代表從0~31 s的延時(shí)長(zhǎng)度,而板上主時(shí)鐘為24 MHz,所以開發(fā)時(shí)在FPGA內(nèi)做了一個(gè)較大的計(jì)數(shù)器,根據(jù)延時(shí)長(zhǎng)度,將Dout延時(shí)輸出。如果在延時(shí)時(shí)間內(nèi)Dout發(fā)生變化,繼電器輸出不會(huì)產(chǎn)生變化。
在本設(shè)計(jì)中,旁路參數(shù)包括旁路選擇開關(guān)和旁路數(shù)據(jù)輸出,共2 bits,開發(fā)過程中設(shè)計(jì)了一個(gè)二選一的選通器,根據(jù)旁路選擇開關(guān)的狀態(tài)來選擇輸出Dout還是旁路數(shù)據(jù)。
通信模塊的主要功能是與調(diào)理模塊、定值模塊和工程師站進(jìn)行通信轉(zhuǎn)發(fā),其基本工作原理框圖如圖5所示。
圖5 通信模塊原理圖Fig.5 Principle of communication module
通信處理器模塊用來接收定值模塊或者調(diào)理模塊發(fā)送的定值參數(shù)或者工程量值等信息,通過以太網(wǎng)傳送至工程師站[8],還可以接收工程師站下發(fā)的指令,將定值寫入相應(yīng)的定值模塊,或者將標(biāo)定系數(shù)寫入調(diào)理模塊。
通信模塊的FPGA內(nèi)部設(shè)計(jì)了1個(gè)8通道、每通道10 B的RAM區(qū)[9],將UART接收模塊收到的數(shù)據(jù)(包括從調(diào)理模塊接收到的2 B模擬信號(hào)工程量值和1 B小數(shù)點(diǎn)位;從定值模塊回讀的SP值和ΔSP值,以及一些延時(shí)、旁路選擇等參數(shù))放入RAM區(qū),同時(shí)設(shè)計(jì)了對(duì)應(yīng)8通道的8位狀態(tài)標(biāo)志,MPU通過判斷狀態(tài)標(biāo)志來決定是否讀取該通道數(shù)據(jù)。
在測(cè)試過程中發(fā)現(xiàn),長(zhǎng)時(shí)間讀取RAM過程中會(huì)出現(xiàn)讀數(shù)據(jù)出錯(cuò)的現(xiàn)象。為解決該問題,對(duì)狀態(tài)標(biāo)志的設(shè)計(jì)作了改進(jìn),即當(dāng)UART異步串口有新數(shù)據(jù)更新時(shí),拉高可讀狀態(tài)標(biāo)志,直到MPU讀取過一次數(shù)據(jù)后,可讀狀態(tài)標(biāo)志自動(dòng)拉低;如果直到下一次UART串口數(shù)據(jù)更新時(shí)MPU還沒有讀取過數(shù)據(jù),那么在下一次UART串口數(shù)據(jù)開始更新時(shí),主動(dòng)將可讀狀態(tài)標(biāo)志拉低,更新完成后再拉高。這樣就避免了在一次UART接收周期內(nèi)MPU讀不到數(shù)據(jù)或者連讀兩次的情況。改進(jìn)后經(jīng)長(zhǎng)時(shí)間測(cè)試表明,MPU能正常讀取各通道數(shù)據(jù)。
顯示模塊將調(diào)理模塊輸出的工程量值在本地或者遠(yuǎn)程端顯示出來,顯示模塊可通過跳線切換本地顯示模式或者遠(yuǎn)程顯示模式。當(dāng)跳線為本地顯示模式時(shí),顯示模塊接收RS-485的串口通信信號(hào);當(dāng)跳線為遠(yuǎn)程顯示模式時(shí),顯示模塊接收光纖模塊的信號(hào)。進(jìn)入FPGA后的串口數(shù)據(jù)通過UART接收模塊實(shí)現(xiàn)串并轉(zhuǎn)換,并通過碼值轉(zhuǎn)換電路,將3 B的定點(diǎn)數(shù)轉(zhuǎn)換成BCD碼,輸出到5個(gè)8段數(shù)碼管顯示[10]。
受數(shù)碼管數(shù)量的限制,目前顯示模塊所能顯示的范圍為-19999~+19999。為確保數(shù)據(jù)的穩(wěn)定性,電流電壓信號(hào)保留2位小數(shù),熱電阻信號(hào)保留1位小數(shù),熱電偶信號(hào)沒有小數(shù)點(diǎn)。
顯示模塊硬件原理框圖如圖6所示。
圖6 顯示模塊硬件原理框圖Fig.6 Principle of the hardware of display module
FPGA內(nèi)的碼值轉(zhuǎn)換模塊設(shè)計(jì)思路如下:首先判斷符號(hào)位,正數(shù)不做處理,負(fù)數(shù)則將最高位的“-”點(diǎn)亮;然后處理數(shù)據(jù)位,將定點(diǎn)數(shù)的2 B整數(shù)部分除以10,余數(shù)就是個(gè)位所應(yīng)顯示的數(shù)字,將商再除以10,得到的余數(shù)就是十位所應(yīng)顯示的數(shù)字,依此類推,直到萬位;最后判斷小數(shù)點(diǎn)字節(jié),應(yīng)該點(diǎn)亮哪一位的小數(shù)點(diǎn),如果最高位是0,則根據(jù)小數(shù)點(diǎn)位判斷是否應(yīng)該舍去0。
核電DAS系統(tǒng)位于核電站控制系統(tǒng)的最后一級(jí),起到保護(hù)系統(tǒng)的備用系統(tǒng)作用,因此其設(shè)計(jì)的可靠性要求非常高。為提升安全等級(jí),DAS系統(tǒng)在安全通道設(shè)計(jì)方案上采用純硬件構(gòu)架,選用FPGA代替CPU。
DAS系統(tǒng)主要包括調(diào)理模塊、定值模塊、通信模塊和顯示模塊,模塊之間通過光纖或者RS-485串行總線相連。同時(shí),在FPGA設(shè)計(jì)過程中自主開發(fā)了SPI串口通信模塊、原補(bǔ)碼值轉(zhuǎn)換模塊、kx+b線形轉(zhuǎn)換模塊、Flash讀寫模塊、UART串口收發(fā)模塊、定值比較模塊、BCD碼轉(zhuǎn)換模塊和8通道×80 bits RAM模塊等。該系統(tǒng)在運(yùn)行時(shí)無需人工干預(yù),可實(shí)現(xiàn)實(shí)時(shí)監(jiān)控和自動(dòng)輸出驅(qū)動(dòng)信號(hào)等功能。
2010年6月,該系統(tǒng)通過客戶方驗(yàn)收,交付使用至今,工作情況良好。今后將在此基礎(chǔ)上進(jìn)一步改進(jìn)DAS系統(tǒng)功能,提高系統(tǒng)可靠性和抗震性能,為核電控制系統(tǒng)的國產(chǎn)化做出新的貢獻(xiàn)。
[1]李蔚,吳帆,王峰.AP1000全數(shù)字化儀控系統(tǒng)安全分析[J].電力安全技術(shù),2006,8(6):45 -46.
[2]張淑慧,任永忠.AP1000核電廠儀控系統(tǒng)簡(jiǎn)介[J].自動(dòng)化儀表,2010,31(10):48 -51.
[3]洪志良.模擬集成電路分析與設(shè)計(jì)[M].北京:科學(xué)出版社,2005:290-291.
[4]趙新民,王祁.智能儀器設(shè)計(jì)基礎(chǔ)[M].黑龍江:哈爾濱工業(yè)大學(xué)出版社,2001:106-108.
[5]薛宏熙,劉素潔,劉寶琴,等.MACH可編程邏輯器件及其開發(fā)工具[M].2版.北京:清華大學(xué)出版社,1998:257-264.
[6]張友德,趙志英,涂時(shí)亮.單片微型機(jī)原理、應(yīng)用與實(shí)驗(yàn)[M].上海:復(fù)旦大學(xué)出版社,2001:134-135.
[7]徐欣,于紅旗,易凡,等.基于FPGA的嵌入式系統(tǒng)設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2005:519-520.
[8]費(fèi)敏銳,郎文鵬.開放型工業(yè)控制技術(shù)及系統(tǒng)[M].上海:上海大學(xué)出版社,2000:144-145.
[9]冼進(jìn),戴仙金,潘懿萱.Verilog HDL數(shù)字控制系統(tǒng)設(shè)計(jì)實(shí)例[M].北京:中國水利水電出版社,2007:47-48.
[10]孫涵芳,徐愛卿.單片機(jī)的原理與應(yīng)用[M].北京:北京航空學(xué)院出版社,1988:214-215.