邵繼紅
分散控制系統(tǒng)DCS(Distributed Control System),又稱為集散控制系統(tǒng)或者分布式控制系統(tǒng),是相對(duì)于集中式控制系統(tǒng)而言的一種新型計(jì)算機(jī)控制系統(tǒng),它是在集中式控制系統(tǒng)的基礎(chǔ)上發(fā)展、演變而來(lái)的。它是由過(guò)程控制級(jí)和過(guò)程監(jiān)控級(jí)組成的,以通信網(wǎng)絡(luò)為紐帶的多級(jí)計(jì)算機(jī)系統(tǒng),綜合了計(jì)算機(jī)、通信、顯示和控制等技術(shù),其基本思想是分散控制、集中操作、分級(jí)管理、配置靈活以及組態(tài)方便。
本文介紹了一種典型的分散控制系統(tǒng)——Simax分散控制系統(tǒng)。Simax系統(tǒng)采用并行總線的通信方式,系統(tǒng)包括數(shù)據(jù)采集IO單元,分散處理單元DPU,以及上位機(jī)顯示控制系統(tǒng)。
Simax系統(tǒng)IO單元的CPU采用ARM7。ARM(Advanced RISC Machines),是微處理器行業(yè)的一家知名企業(yè),該企業(yè)設(shè)計(jì)了大量廉價(jià)、高性能、低功耗的RISC的處理器、相關(guān)技術(shù)及軟件。ARM7是通用的32位微處理器內(nèi)核,采用馮諾依曼結(jié)構(gòu),具有高性能低功耗的特性,由于其結(jié)構(gòu)是基于精簡(jiǎn)指令集計(jì)算機(jī)的原理而設(shè)計(jì)的,指令集和相關(guān)的譯碼機(jī)制要比復(fù)雜指令集計(jì)算機(jī)簡(jiǎn)單得多,非常容易實(shí)現(xiàn)實(shí)時(shí)的中斷響應(yīng)。
從結(jié)構(gòu)上劃分,DCS包括過(guò)程級(jí)、操作級(jí)和管理級(jí)。過(guò)程級(jí)主要由過(guò)程控制站、IO單元和現(xiàn)場(chǎng)儀表組成,是系統(tǒng)控制功能的主要實(shí)施部分。操作級(jí)包括:操作員站和工程師站,完成系統(tǒng)的操作和組態(tài)。管理級(jí)主要是指工廠管理信息系統(tǒng),作為DCS更高層次的應(yīng)用,目前國(guó)內(nèi)行業(yè)應(yīng)用到這一層的系統(tǒng)較少。
DCS的控制程序:DCS的控制決策是由過(guò)程控制站完成的,所以控制程序是由過(guò)程控制站執(zhí)行的。
過(guò)程控制站的組成:
DCS的過(guò)程控制站是一個(gè)完整的計(jì)算機(jī)系統(tǒng),主要由電源、DPU(分散處理單元)、網(wǎng)絡(luò)接口和IO組成。
IO:控制系統(tǒng)需要建立信號(hào)的輸入和輸出通道,這就是IO。DCS中的IO一般是模塊化的,一個(gè)IO模塊上有一個(gè)或多個(gè)IO通道,用來(lái)連接傳感器和執(zhí)行器(調(diào)節(jié)閥)。
IO單元:通常,一個(gè)過(guò)程控制站是有幾個(gè)機(jī)架組成,每個(gè)機(jī)架可以擺放一定數(shù)量的模塊。DPU所在的機(jī)架被稱為DPU單元,同一個(gè)過(guò)程站中只能有一個(gè)DPU單元,其他只用來(lái)擺放IO模塊的機(jī)架就是IO單元。
Simax系統(tǒng)包含過(guò)程級(jí)和操作級(jí),其組成模式如圖1。
其中,操作級(jí)主要是中央控制計(jì)算機(jī),包括組態(tài)軟件、數(shù)據(jù)采集軟件、監(jiān)控軟件、分析軟件等;控制級(jí)主要是分散處理單元(DPU)以及它控制的各種IO單元。
Simax系統(tǒng)中,中央控制計(jì)算機(jī)通過(guò)并行網(wǎng)線和以太網(wǎng)交換機(jī)與分散處理單元相連接,分散處理單元(DPU)通過(guò)并行總線控制它所帶動(dòng)的各個(gè)IO單元,IO單元分為模擬IO單元和數(shù)字IO單元,每個(gè)模擬IO單元由一塊CPU卡和一塊通道卡組成,可以采集電流、熱電偶、熱電阻等模擬量信號(hào)和輸出電流模擬信號(hào);每個(gè)數(shù)字IO單元由一塊邏輯卡和一塊通道卡組成,包括數(shù)字量輸入卡和數(shù)字量輸出卡,分別輸入和輸出數(shù)字信號(hào)。
應(yīng)用了ARM7的Simax系統(tǒng)具有以下特點(diǎn):
組網(wǎng)靈活:可根據(jù)實(shí)際需要選擇不同數(shù)量的中央控制器(DPU),不同數(shù)量的 IO單元,并且可以根據(jù)實(shí)際需要對(duì)IO單元進(jìn)行不同的組態(tài)和配置。
兼容性強(qiáng):可與不同的的廠家、不同類(lèi)別的二次儀表兼容。
可靠性高:各個(gè)IO單元互不干擾,即使有某些IO單元出錯(cuò)也不會(huì)影響其他單元。低功耗,低成本。
圖3 I2C記錄K,b流程圖
Simax系統(tǒng)中應(yīng)用的ARM7是NXP公司的LPC2136,其具有如下特性:小型封裝的32位ARM7TDMI-S微控制器;通過(guò)片內(nèi)倍頻和分頻可達(dá)到最大為60MHz的CPU操作頻率;具有32K片內(nèi)靜態(tài)RAM和256K的片上Flash程序存儲(chǔ)器;支持系統(tǒng)編程(ISP)和應(yīng)用編程(IAP),具有高速的flash編程速度和操作頻率;支持實(shí)時(shí)調(diào)試和高速跟蹤執(zhí)行代碼;具有2個(gè)32位定時(shí)器、PWM單元和看門(mén)狗;低功耗;具有多個(gè)串行接口,包括2個(gè)標(biāo)準(zhǔn)的UART接口,2個(gè)高速I(mǎi)IC接口和SPI接口;帶有向量中斷控制器,并且可配置優(yōu)先級(jí)和向量地址等。
LPC2136主要運(yùn)用于Simax系統(tǒng)的IO單元的CPU板上,其作用主要是完成對(duì)通道板的控制以及與分散處理單元(DPU)的通信。
Simax系統(tǒng)中的微處理器LPC2136采用11.0592MHz的外部晶振,通過(guò)片內(nèi)倍頻,CPU的操作頻率為44MHz
以下對(duì)微處理器LPC2136在Simax系統(tǒng)的應(yīng)用進(jìn)行詳細(xì)的分析。
LPC2136通過(guò)SPI串行總線對(duì)IO進(jìn)行配置、控制和采集數(shù)據(jù),具體包括初始化IO單元上的AD轉(zhuǎn)換器,選通IO通道,采集數(shù)據(jù),在采集失敗的時(shí)候返回錯(cuò)誤類(lèi)型等。
數(shù)據(jù)采集模塊的流程圖,如圖1所示:
圖1 數(shù)據(jù)采集流程圖
數(shù)據(jù)采集流程:
(1)對(duì)系統(tǒng)進(jìn)行初始化,配置時(shí)鐘周期,中斷,以及LPC2136的GPIO口狀態(tài)等;
(2)初始化SPI,并初始化AD轉(zhuǎn)換器,配置AD轉(zhuǎn)換器的各種參數(shù)。
(3)AD轉(zhuǎn)換器以固定周期采集數(shù)據(jù)并濾波。
(4)選通相應(yīng)的通道(在Simax系統(tǒng)中,各種IO單元帶有不同數(shù)量的通道),通過(guò)SPI總線周期性的將實(shí)時(shí)數(shù)據(jù)傳送到LPC2136。
數(shù)據(jù)采集模塊是整個(gè)程序的重點(diǎn)部分和核心部分,涉及到SPI總線通信、A/D轉(zhuǎn)換、濾波、定時(shí)器、中斷處理等,同時(shí)對(duì)時(shí)鐘周期、實(shí)時(shí)性和數(shù)據(jù)精度要求比較高,LPC2136本身的功能特性很好的滿足了這些操作的要求。
原始的IO單元由于各種原因,會(huì)存在實(shí)際采集到的數(shù)值和理論數(shù)值相比存在偏差,所以在使用之前需要對(duì)其進(jìn)行校準(zhǔn)和標(biāo)定。
對(duì)卡件的標(biāo)定是通過(guò)上位機(jī)標(biāo)定程序進(jìn)行的,上位機(jī)通過(guò)串口與LPC2136的UART口通信,預(yù)寫(xiě)初始的增益和偏移量,然后讀取通道板采集到的數(shù)據(jù),然后通過(guò)跟理論值對(duì)比和計(jì)算,獲得相應(yīng)的實(shí)際增益和偏移量,并通過(guò)串口發(fā)送給LPC2136,然后LPC2136通過(guò)I2C總線,將這個(gè)實(shí)際的增益和偏移量記錄在IO單元件的E2ROM里面,這樣在實(shí)際運(yùn)行時(shí),通道板采集到的數(shù)據(jù)經(jīng)過(guò)矯正計(jì)算就能更準(zhǔn)確的表達(dá)現(xiàn)場(chǎng)的各種信息。
LPC2136通過(guò)UART口與上位機(jī)標(biāo)定程序通信進(jìn)行標(biāo)定的流程圖,如圖2所示:
圖2 LPC2136與標(biāo)定程序通信流程圖
LPC2136通過(guò) I2C總線記錄增益和偏移量的流程圖如圖3所示:
卡件標(biāo)定流程:
(1)對(duì)系統(tǒng)進(jìn)行初始化,配置時(shí)鐘周期,中斷,以及CPU的IO口狀態(tài)等;
(2)初始化I2C,UART,配置I2C、UART的各個(gè)參數(shù)
(3)上位機(jī)首先會(huì)讀取IO單元上鐵電記錄的增益K和偏移量b,如果為空,則寫(xiě)入初始值,增益為1,偏移量為0;
(4)上位機(jī)讀取CPU采樣數(shù)據(jù),如果滿足精度要求,則保持原有的K,b;若不滿足要求,則寫(xiě)入初始K,b,并根據(jù)相應(yīng)的IO單元件信息量程的95%和5%處的理論數(shù)據(jù)和采樣得到的實(shí)際數(shù)據(jù)進(jìn)行計(jì)算,計(jì)算出合適的K和b
(5)上位機(jī)通過(guò)串口將計(jì)算得出的K,b發(fā)送到CPU,CPU通過(guò)I2C總線將K,b記錄到IO單元件上面的鐵電相應(yīng)的地址。
標(biāo)定模塊關(guān)系到采集到的數(shù)據(jù)的精度,關(guān)系到采集到的信息的可信度和信息的準(zhǔn)確度。
IO單元通過(guò)并行總線與分散處理單元(DPU)通信,并行總線傳遞分散處理單元(DPU)對(duì)IO單元下發(fā)的命令和組態(tài),以及IO單元對(duì)分散處理單元(DPU)命令的響應(yīng)和采集到的數(shù)據(jù)。
具體通信過(guò)程如下:DPU通過(guò)并行總線將命令下發(fā)到IO單元的FPGA,F(xiàn)PGA將命令發(fā)送到LPC2136的IO口,CPU通過(guò)IO口的狀態(tài)并通過(guò)串轉(zhuǎn)并得到相應(yīng)的命令;CPU向DPU發(fā)送數(shù)據(jù)和響應(yīng)是上述過(guò)程的反過(guò)程。
CPU并行總線通信的流程圖,如圖4所示:
圖4 CPU并行總線通信流程圖
DPU和CPU通信包括各種控制命令和數(shù)據(jù),具體有狀態(tài)查詢、組態(tài)、數(shù)據(jù)讀寫(xiě)、出錯(cuò)處理等。具體過(guò)程是:上位機(jī)查詢IO單元的工作狀態(tài),包括工作或備用、是否已組態(tài)等,IO單元的CPU向上位機(jī)返回IO單元的當(dāng)前狀態(tài);上位機(jī)對(duì)IO單元進(jìn)行組態(tài),IO單元的CPU向上位機(jī)返回IO單元的當(dāng)前組態(tài);上位機(jī)讀取IO單元采集到的數(shù)據(jù)或向IO單元輸出信號(hào),IO單元的CPU向上位機(jī)返回IO單元采集到的數(shù)據(jù)或者返回收到的信號(hào)。在IO單元與DPU通信過(guò)程中,如果IO單元出錯(cuò),則向上位機(jī)返回相應(yīng)的出錯(cuò)信息。
ARM7的應(yīng)用使DCS的實(shí)時(shí)性更好,準(zhǔn)確度更高。由于ARM7集成了各種功能模塊,使DCS的兼容性更好,同時(shí)ARM7的應(yīng)用還降低了DCS的功耗和成本。
[1]王常力,羅安.分布式控制系統(tǒng)(DCS)設(shè)計(jì)與應(yīng)用實(shí)列 [M]. 電子工業(yè)出版社 2010
[2]周立功. ARM 嵌入式系統(tǒng)基礎(chǔ)教程 [M]. 北京航空航天大學(xué)出版社 2006
[3]周立功,張華. 深入淺出ARM7—LPC213X/214X [M].北京航天航空大學(xué)出版社 2006
[4]徐愛(ài)均. IAR EWARM嵌入式系統(tǒng)編程與實(shí)踐 [M]. 北京航空航天大學(xué)出版社 2006