(1.清華大學(xué) 自動化系,北京 100084; 2.北京集世精華科技有限公司,北京 100083)
摘 要:小型計算機(jī)控制系統(tǒng)以中小規(guī)模應(yīng)用為重點(diǎn),采用了嵌入式和Modbus現(xiàn)場總線技術(shù)、開放式的智能 I/O 模塊、實(shí)時在線的控制策略,具有控制及人機(jī)界面易于編程、系統(tǒng)性能可靠、可擴(kuò)展性強(qiáng)、價格較低等優(yōu)點(diǎn)。
關(guān)鍵詞: 計算機(jī)控制系統(tǒng); Linux; Modbus; 控制策略; 自動組態(tài)
中圖法分類號: TP273.5文獻(xiàn)標(biāo)識碼: A
文章編號: 1001 3695(2006)08 0203 03
Design and Implementation of Mini computer Control System
TANG Jie1,XIAO De yun1, ZHANG Zheng fang2
(1.Dept. of Automation, Tsinghua University, Beijing 100084, China; 2.Jishijinghua Corporation of Science Technology, Beijing 100083, China)
Abstract: The mini computer control system is developed mainly for smaller scale industry applications. Adopting the embe dding system and Modbus field bus technology, opening intelligent I/O module and real time on line control strategy, the system has flexible controlling and human machine interface, better reliability and stability,strong extensibility and low price,etc.
Key words: Computer Control System; Linux; Modbus; Control Strategy; Auto Configuration
1 引言
隨著計算機(jī)技術(shù)以及網(wǎng)絡(luò)技術(shù)的發(fā)展,計算機(jī)技術(shù)在工業(yè)控制系統(tǒng)中得到了廣泛的應(yīng)用,形成了計算機(jī)控制系統(tǒng)。采用計算機(jī)控制系統(tǒng)技術(shù)將有利于生產(chǎn)過程的監(jiān)視、管理以及可靠性。但目前在工業(yè)控制領(lǐng)域,控制系統(tǒng)價格普遍昂貴并且規(guī)模較大,如西門子和霍尼威爾的集散式控制系統(tǒng)。小規(guī)模的生產(chǎn)過程卻缺乏一套功能完善、可靠穩(wěn)定和技術(shù)先進(jìn)的小型計算機(jī)控制系統(tǒng)。
本系統(tǒng)針對目前這一現(xiàn)象,以中小規(guī)模應(yīng)用為重點(diǎn),采用Linux操作系統(tǒng)和現(xiàn)場總線Modbus技術(shù)、功能強(qiáng)大的智能 I/O 模塊、在線實(shí)時控制策略技術(shù),系統(tǒng)具有控制及人機(jī)界面易于編程、可移植性好、可擴(kuò)展性強(qiáng)、價格較低等優(yōu)點(diǎn)。同時采用了嵌入式技術(shù),因而具有性能可靠、低功耗和體積小等特點(diǎn)[1];在硬件和軟件的設(shè)計上,采用了模塊化和層次化的設(shè)計,因此系統(tǒng)有很好的靈活性和擴(kuò)展性;操作系統(tǒng)使用Linux,故可以利用其高可靠性的內(nèi)核以及豐富的軟件資源。值得一提的是,本系統(tǒng)具有自動組態(tài)的功能,即在啟動過程中可以自動完成系統(tǒng)硬件的配置以及相關(guān)參數(shù)的設(shè)定。
2 系統(tǒng)結(jié)構(gòu)
本系統(tǒng)分為兩層結(jié)構(gòu),即現(xiàn)場控制層和控制管理層。系統(tǒng)結(jié)構(gòu)圖如圖1所示。在現(xiàn)場控制層上,現(xiàn)場控制單元直接與現(xiàn)場各類裝置相連,對所連的裝置實(shí)施監(jiān)測和控制,同時它還向控制管理層的計算機(jī)傳遞裝置所需的特性數(shù)據(jù)和采集到的實(shí)時數(shù)據(jù),并接收上層的管理信息。現(xiàn)場控制單元由三種模塊組成,即主控單元模塊、I/O接口模塊和I/O單元模塊。主控單元模塊的主要功能是控制算法的運(yùn)行和現(xiàn)場數(shù)據(jù)采集的調(diào)度,其所用的操作系統(tǒng)為Linux嵌入式操作系統(tǒng);I/O接口模塊的主要功能是模擬量的A/D轉(zhuǎn)換以及I/O單元模塊的驅(qū)動;I/O單元模塊的主要功能是信號的采集和調(diào)理,根據(jù)I/O單元模塊是否具有自主數(shù)據(jù)采集以及控制功能,可將其分為智能I/O單元模塊和非智能I/O單元模塊,同時根據(jù)I/O接口模塊驅(qū)動的是智能還是非智能I/O單元模塊可以將其分為智能和非智能I/O接口模塊。控制管理層由基于Windows的操作站組成,用于監(jiān)視現(xiàn)場控制單元的相關(guān)信息、集中顯示操作、控制回路組態(tài)和參數(shù)修改、優(yōu)化過程處理等。
該系統(tǒng)包括四種通信網(wǎng)絡(luò):主控單元模塊與接口板之間的PC 104總線、非智能I/O模塊之間互連的自定義64針底板總線、智能I/O模塊之間互連的Modbus Over RS 485總線和現(xiàn)場控制層與控制管理層之間通信所用的Modbus Over TCP/IP總線。其中,自定義64針底板總線與Modbus Over RS 485總線一起構(gòu)成了底板總線。
3 硬件結(jié)構(gòu)
系統(tǒng)硬件由主控板和擴(kuò)展板構(gòu)成,其中擴(kuò)展板最多可以是三塊。主控板由主控單元模塊、非智能I/O接口模塊、智能 I/O 接口模塊、智能和非智能I/O輸入/輸出單元模塊以及電源模塊組成;擴(kuò)展板由非智能模擬量輸入單元模塊、智能I/O輸入/輸出單元模塊和電源模塊組成。擴(kuò)展板的智能I/O輸入/輸出單元模塊是具有獨(dú)立數(shù)據(jù)采集、控制及數(shù)據(jù)處理的板卡。在主控板上,主控單元模塊和非智能以及智能I/O接口模塊之間通過PC 104總線連接;非智能I/O接口模塊與非智能I/O輸入/輸出單元模塊通過自定義64針底板總線連接,其中32針用于模擬量輸入、32針用于開關(guān)輸入/輸出和模擬量輸出;智能I/O接口模塊通過串行總線(Modbus Over RS 485)與智能I/O輸入/輸出單元模塊連接,同時智能I/O接口模塊還有另一個遠(yuǎn)程串口與遠(yuǎn)程現(xiàn)場裝置連接。在擴(kuò)展板上,各個I/O輸入/輸出單元模塊同樣通過底板總線相互連接。硬件結(jié)構(gòu)圖如圖2所示。
4 軟件結(jié)構(gòu)
在功能上,小型計算機(jī)控制系統(tǒng)應(yīng)具備各種數(shù)據(jù)點(diǎn)的采集、自動控制以及與上位機(jī)的通信等功能。要實(shí)現(xiàn)這些功能,小型計算機(jī)控制系統(tǒng)的軟件結(jié)構(gòu)應(yīng)具有高可靠性和實(shí)時性。此外,在現(xiàn)場工作中小型計算機(jī)控制系統(tǒng)一般無人機(jī)接口,所以它應(yīng)有較高的自治性,即軟件的設(shè)計應(yīng)避免死機(jī)發(fā)生,并具有較強(qiáng)的容錯能力和對設(shè)備的自動識別能力。
控制系統(tǒng)軟件由以下幾部分組成:控制策略模塊、實(shí)時數(shù)據(jù)存儲區(qū)模塊、數(shù)據(jù)采集模塊、數(shù)據(jù)輸出模塊以及網(wǎng)絡(luò)通信模塊。其結(jié)構(gòu)圖如圖3所示。
由圖3可知,控制系統(tǒng)軟件的核心是實(shí)時數(shù)據(jù)存儲區(qū)模塊。它是控制策略組態(tài)軟件模塊、監(jiān)控軟件模塊、控制策略模塊、數(shù)據(jù)采集模塊以及數(shù)據(jù)輸出模塊之間數(shù)據(jù)通信的中樞。實(shí)時數(shù)據(jù)存儲區(qū)模塊具備實(shí)時性和通用性兩個特點(diǎn)。實(shí)時性是指它在系統(tǒng)的運(yùn)行過程中快速刷新,由數(shù)據(jù)采集模塊來完成,直接反映了該現(xiàn)場控制站所控制對象的運(yùn)行狀況;通用性是指系統(tǒng)能夠應(yīng)用于不同的對象,其軟件設(shè)計必須是代碼與對象無關(guān)。通用化設(shè)計的關(guān)鍵是不同的應(yīng)用對象只會影響存在于RAM中的實(shí)時數(shù)據(jù)存儲區(qū)而不會影響代碼,且各控制回路的執(zhí)行代碼也與具體的控制對象無關(guān),其執(zhí)行只取決于存放在實(shí)時數(shù)據(jù)存儲區(qū)中的回路信息[2]。
上位機(jī)監(jiān)控軟件和控制策略組態(tài)軟件采用三維力控的組態(tài)軟件產(chǎn)品[3]。網(wǎng)絡(luò)通信模塊與在操作站運(yùn)行的監(jiān)控軟件和控制策略組態(tài)軟件進(jìn)行通信,包括Modbus通信模塊和組態(tài)下載模塊。其中Modbus通信模塊主要是用于將下位機(jī)所采集的數(shù)據(jù)上傳到上位機(jī),并嚴(yán)格按照Modbus的協(xié)議標(biāo)準(zhǔn)來實(shí)現(xiàn)[4~6];而組態(tài)下載模塊是將在上位機(jī)控制策略組態(tài)完畢后的回路信息配值文件下傳到下位機(jī),這個模塊也是三維力控的組態(tài)軟件產(chǎn)品[3]。這里重點(diǎn)介紹下位機(jī)軟件中的實(shí)時數(shù)據(jù)存儲區(qū)模塊、控制策略模塊和輸入/輸出處理模塊。
4.1 實(shí)時數(shù)據(jù)存儲區(qū)模塊
實(shí)時數(shù)據(jù)存儲區(qū)模塊是整個軟件系統(tǒng)的中心環(huán)節(jié),它相當(dāng)于一個倉庫,用于存儲從各通道采集來的數(shù)據(jù)以及上位機(jī)下載給系統(tǒng)的控制策略相關(guān)數(shù)據(jù)。別的模塊需要數(shù)據(jù)(如控制策略模塊、數(shù)據(jù)輸出模塊以及Modbus通信模塊)可以不直接到硬件上去取,而是從實(shí)時數(shù)據(jù)存儲區(qū)中獲取。另外,控制策略所需的算法數(shù)據(jù)和運(yùn)算的中間結(jié)果也存放在實(shí)時數(shù)據(jù)存儲區(qū)中。實(shí)時數(shù)據(jù)存儲區(qū)的另一個作用是實(shí)現(xiàn)數(shù)據(jù)共享,如當(dāng)幾個控制算法均需要某一個模擬量輸入信號時,如果無實(shí)時數(shù)據(jù)存儲區(qū),則每次用到此數(shù)據(jù)時都要從通道上采集,且每個模塊必須重復(fù)采集、轉(zhuǎn)換和存儲;有實(shí)時數(shù)據(jù)存儲區(qū),則只需要一個數(shù)據(jù)采集模塊周期性地采集該點(diǎn)信息,并完成轉(zhuǎn)換,將結(jié)果存放到實(shí)時數(shù)據(jù)存儲區(qū),這樣不論有多少控制算法需要此點(diǎn),只要從實(shí)時數(shù)據(jù)存儲區(qū)中取出數(shù)據(jù)即可[2]。
實(shí)時數(shù)據(jù)存儲區(qū)模塊包括系統(tǒng)中所處理的各種點(diǎn)的信息。這些點(diǎn)分別為數(shù)據(jù)采集點(diǎn)、輸出控制點(diǎn)、計算中間變量和設(shè)定量點(diǎn)以及算法結(jié)構(gòu)點(diǎn)。其中數(shù)據(jù)采集點(diǎn)表示模擬量和開關(guān)量輸入通道;輸出控制點(diǎn)表示模擬量和開關(guān)量輸出通道;計算中間變量和設(shè)定量點(diǎn)表示數(shù)學(xué)運(yùn)算的中間計算結(jié)果以及所用的參數(shù)和常量;算法結(jié)構(gòu)點(diǎn)表示各個控制算法模塊的輸入/輸出以及參數(shù)配值情況。實(shí)時數(shù)據(jù)存儲區(qū)中各個點(diǎn)的信息包括點(diǎn)索引標(biāo)示符、說明信息、報警管理信息、現(xiàn)場數(shù)據(jù)信息和算法結(jié)構(gòu)所用信息[2]。系統(tǒng)中不同的點(diǎn)所對應(yīng)的信息也不同,為了節(jié)約內(nèi)存,通常在系統(tǒng)的實(shí)時數(shù)據(jù)存儲區(qū)針對不同類別的點(diǎn)定義不同的數(shù)據(jù)結(jié)構(gòu),但又不能過于瑣碎,否則會增加訪問的難度和時間。
為了加快訪問的速度,將實(shí)時數(shù)據(jù)存儲區(qū)模塊設(shè)計為存儲于RAM中的一片地址連續(xù)、大小固定的數(shù)據(jù)區(qū),結(jié)構(gòu)如圖4所示。索引區(qū)用來存儲各種數(shù)據(jù)存儲區(qū)位置和極限信息,即四種數(shù)據(jù)區(qū)的起始地址和各種點(diǎn)的最大數(shù)目。實(shí)時數(shù)據(jù)存儲區(qū)同時也需要相應(yīng)的存取模塊的支持,以確保實(shí)時數(shù)據(jù)存儲區(qū)數(shù)據(jù)的一致性和完整性。
4.2 控制策略模塊
控制策略模塊在下位機(jī)中由控制策略運(yùn)行環(huán)境和控制策略庫構(gòu)成。其中控制策略庫為各種控制算法的函數(shù)庫,被控制策略運(yùn)行環(huán)境調(diào)用;而控制策略運(yùn)行環(huán)境根據(jù)上位機(jī)的控制策略組態(tài)軟件所組態(tài)的回路配值信息和算法信息,調(diào)用控制策略庫來運(yùn)行各個回路的控制算法??刂撇呗圆糠值脑韴D如圖5所示。
從圖5中可以看出將控制策略組態(tài)軟件、控制策略運(yùn)行環(huán)境和控制策略庫聯(lián)系起來的關(guān)鍵是實(shí)時數(shù)據(jù)存儲區(qū)。將各控制算法編成可重入的功能模塊,對應(yīng)于每一個模塊實(shí)時數(shù)據(jù)存儲區(qū)均有一個數(shù)據(jù)結(jié)構(gòu)與其對應(yīng),稱其為控制策略點(diǎn)信息數(shù)據(jù)結(jié)構(gòu)。該數(shù)據(jù)結(jié)構(gòu)定義了控制算法所需的各種參數(shù)和輸入/輸出變量。只要這些參數(shù)定了,整個控制規(guī)律就定了,控制策略運(yùn)行環(huán)境只需要根據(jù)下載的回路信息依次調(diào)用實(shí)時數(shù)據(jù)存儲區(qū)中各個功能模塊即可。
控制策略庫基算法功能模塊可以分為三類:數(shù)學(xué)運(yùn)算功能塊、邏輯功能塊和控制算法功能塊。數(shù)學(xué)運(yùn)算功能塊主要完成加減乘除、正余弦、對數(shù)等數(shù)學(xué)運(yùn)算;邏輯功能塊主要完成與、或、非等邏輯運(yùn)算;控制算法功能塊主要包括一些控制算法,如PID和純滯后補(bǔ)償算法 [3]。
4.3 輸入/輸出處理軟件
輸入/輸出處理軟件主要包括數(shù)據(jù)采集模塊和數(shù)據(jù)輸出模塊。數(shù)據(jù)采集模塊由模擬量輸入模塊和開關(guān)量輸入模塊構(gòu)成;數(shù)據(jù)輸出模塊由開關(guān)量輸出模塊和模擬量輸出模塊構(gòu)成。
(1)模擬量輸入模塊。模擬量的輸入處理要經(jīng)過選中輸入通道、啟動A/D轉(zhuǎn)換、延時、讀入A/D結(jié)果后,再進(jìn)行一些信號處理,如尖峰信號抑制和數(shù)字濾波、工程單位轉(zhuǎn)換、報警檢測和寫回數(shù)據(jù)。對于尖峰抑制,在實(shí)際處理中可以用如下方法實(shí)現(xiàn):在每一時刻,同時保留上一周期的值,利用它與當(dāng)前值的差是否超出指定的范圍來確定當(dāng)前值是否有效,如果連續(xù)無效則應(yīng)該報警。可以運(yùn)用濾波技術(shù)來解決一些微小的波動,其中有平均法,即用當(dāng)前值和前幾個周期的值進(jìn)行算術(shù)平均以及加權(quán)平均法,在運(yùn)行平均的基礎(chǔ)上增加近期輸入所造成的影響的一種方法[2]。有時還需要進(jìn)行工程單位的轉(zhuǎn)換。
(2)模擬量輸出模塊。模擬量的輸出處理要經(jīng)過選中輸出通道、進(jìn)行D/A轉(zhuǎn)換以及報警檢測等步驟。
(3)開關(guān)量輸入處理模塊和輸出處理。模塊開關(guān)量的輸入/輸出處理比較簡單,只需將輸入的8路或16路的開關(guān)量狀態(tài)存入實(shí)時數(shù)據(jù)存儲區(qū)并進(jìn)行報警檢測。
5 自動組態(tài)功能
本系統(tǒng)具有自動組態(tài)功能,即無須用戶手工進(jìn)行板卡組態(tài)及配置,而是由主控單元模塊進(jìn)行自動組態(tài)。以下分別從硬件實(shí)現(xiàn)和軟件實(shí)現(xiàn)進(jìn)行闡述。
硬件實(shí)現(xiàn)上,控制系統(tǒng)中I/O模塊有兩種,即智能I/O模塊和非智能I/O模塊。對于智能I/O模塊,由于存在一塊單片機(jī),因而實(shí)現(xiàn)起來相對較容易,它與主控單元模塊通過底板總線中的RS 485進(jìn)行通信,將存放在EEPROM中的模塊信息如板卡種類、輸入信號量程以及工程單位傳送給主控單元模塊,主控單元模塊收到這些信息后將這些信息存入實(shí)時數(shù)據(jù)存儲區(qū)。對于非智能I/O模塊,用可編程邏輯器件代替單片機(jī)來控制底板總線中的RS 485接口,同時將本模塊的信息也存入到可編程邏輯器件中,這樣就可以與主控單元模塊通過RS 485進(jìn)行自動組態(tài)。
在軟件實(shí)現(xiàn)上,分為兩個步驟:自動識別過程和讀取模塊信息過程。自動識別過程在系統(tǒng)啟動時運(yùn)行,主控單元模塊將在地址空間中依次輪詢各個地址。在輪詢到每一個地址時,主控單元模塊將發(fā)送一個隨機(jī)數(shù)過去,如果收到一個回應(yīng),其中包括發(fā)送的隨機(jī)數(shù)的反碼,則說明該地址有模塊插上;沒有收到,則說明無模塊插上。如果自動識別成功則讀取該地址的模塊信息,并將其存入實(shí)時數(shù)據(jù)存儲區(qū)進(jìn)行注冊。其工作原理如圖6所示。
6 結(jié)論
本小型計算機(jī)控制系統(tǒng)是以嵌入式技術(shù)和Linux操作系統(tǒng)為基礎(chǔ)的,可以自動組態(tài),具有集中操作管理以及分散控制功能,并可靈活配置的小型計算機(jī)控制系統(tǒng)。它具有性能可靠穩(wěn)定、功耗低、配置靈活、組態(tài)方便和規(guī)模較小等特點(diǎn)。該系統(tǒng)是針對小型工業(yè)系統(tǒng)設(shè)計的,在小型生產(chǎn)過程中使用,不僅可以大大提高生產(chǎn)力,同時還節(jié)約了成本。
參考文獻(xiàn):
[1] Philip Koopman. Embedded System Design Issues(the Rest of the Story) [C]. Proceedings of the IEEE International Conference on Computer Design, 1996.310-317.
[2] 王常力,廖道文. 集散型控制系統(tǒng)的設(shè)計和應(yīng)用 [M]. 北京:清華大學(xué)出版社,1993.75- 86.
[3] 馬國華. 監(jiān)控組態(tài)軟件及其應(yīng)用 [M]. 北京:清華大學(xué)出版社,2001.14-18.
[4] Modbus Protocol Specialists. Modbus Messaging on TCP/IP Implementation Guide [EB/OL]. http://www.modbus.org/specs.php,2003-11-06.
[5] Modbus Protocol Specialists. Modbus over Serial Line Specification Implementation Guide [EB/OL]. http://www.modbus.org /specs.php, 2003-11-06.
[6] Modbus Protocol Specialists. Modbus Application Protocol Specification [EB/OL]. http://www.modbus.org /specs.php, 2003-11-06.
作者簡介:唐劼(1977-), 男,碩士研究生,研究方向?yàn)楣I(yè)控制和嵌入式系統(tǒng)設(shè)計;蕭德云(1945-),男,教授,博導(dǎo),研究方向?yàn)榛谀:窠?jīng)網(wǎng)絡(luò)的模糊辨識和控制方法、大型生產(chǎn)過程計算機(jī)集成生產(chǎn)系統(tǒng)、模糊建模和模糊控制通用框架;張正芳(1940-),男,總工程師,學(xué)士,研究方向?yàn)閮x器儀表設(shè)計和工業(yè)控制。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。