一種基于Qt的上位機(jī)控制系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種基于Qt的上位機(jī)控制系統(tǒng)及方法。該系統(tǒng)包括:客戶端,其負(fù)載與用戶進(jìn)行交互,將用戶需求提交給服務(wù)器端,并將服務(wù)器端的處理結(jié)果傳送給用戶;服務(wù)器端,其用于管理所有硬件資源和算法,接收客戶端提交的用戶需求并處理,并將處理結(jié)果反饋給客戶端。本發(fā)明由于采取以上技術(shù)方案,其具有以下優(yōu)點(diǎn):1.客戶端進(jìn)程與服務(wù)器端進(jìn)程為兩個(gè)獨(dú)立地模塊,并行開發(fā),提高開發(fā)效率;2.Mediator模式降低了對(duì)象間的耦合,提高了對(duì)象的復(fù)用性;3.可配置性的特點(diǎn)。
【專利說(shuō)明】一種基于Qt的上位機(jī)控制系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,特別是一種基于Qt的上位機(jī)控制系統(tǒng)。
【背景技術(shù)】
[0002]合適的上位機(jī)(微機(jī)或工控機(jī)),僅僅為工控系統(tǒng)創(chuàng)造了硬件環(huán)境,但要使其發(fā)揮應(yīng)有的作用,必須配備優(yōu)秀的控制系統(tǒng),并根據(jù)系統(tǒng)的實(shí)際情況,對(duì)系統(tǒng)和應(yīng)用進(jìn)行組態(tài)。當(dāng)前,組態(tài)的設(shè)計(jì)多選用Windows平臺(tái)或混合平臺(tái)(Windows, Unix等)多任務(wù)環(huán)境。在多任務(wù)環(huán)境下,應(yīng)用的設(shè)計(jì)一般是將多功能分解為多個(gè)相對(duì)獨(dú)立的任務(wù)。雖然工控系統(tǒng)對(duì)組態(tài)功能要求不同,但其總體設(shè)計(jì)原則為直觀、簡(jiǎn)單和友好。同時(shí),除實(shí)現(xiàn)系統(tǒng)固有功能外,組態(tài)還預(yù)留接口,允許用戶定制個(gè)性化功能,為實(shí)現(xiàn)用戶的某些特殊功能提供方便。
[0003]為了使上位機(jī)更快、更準(zhǔn)、更可靠地完成工控系統(tǒng)自動(dòng)檢測(cè)和控制的任務(wù),用戶接口作為控制系統(tǒng)的必要組成部分當(dāng)然也在其中,但當(dāng)前用戶接口在應(yīng)用過程中存在占用空間較大、可配置性差和實(shí)時(shí)性不強(qiáng)等問題。因此,需設(shè)計(jì)一種上位機(jī)組態(tài)應(yīng)用體系架構(gòu)來(lái)實(shí)現(xiàn)工控系統(tǒng)對(duì)整個(gè)硬件平臺(tái)靈活控制與實(shí)時(shí)監(jiān)測(cè)的功能,同時(shí)滿足后續(xù)人員在此體系架構(gòu)下進(jìn)行擴(kuò)展和研究。
【發(fā)明內(nèi)容】
[0004]針對(duì)上述問題,本發(fā)明提出一種基于Qt的上位機(jī)控制系統(tǒng)。
[0005]本發(fā)明提出的基于Qt的上位機(jī)控制系統(tǒng),其包括:
[0006]客戶端,其負(fù)載與用戶進(jìn)行交互,將用戶需求提交給服務(wù)器端,并將服務(wù)器端的處理結(jié)果傳送給用戶;
[0007]服務(wù)器端,其用于管理所有硬件資源和算法,接收客戶端提交的用戶需求并處理,并將處理結(jié)果反饋給客戶端。
[0008]本發(fā)明還公開了一種基于Qt的上位機(jī)控制方法,其包括:
[0009]客戶端將用戶需求提交給服務(wù)器端;
[0010]服務(wù)器端接收客戶端提交的用戶需求并處理,然后將處理結(jié)果反饋給客戶端;
[0011]客戶端將服務(wù)器端的處理結(jié)果傳送給用戶。
[0012]本發(fā)明由于采取以上技術(shù)方案,其具有以下優(yōu)點(diǎn):1.客戶端進(jìn)程與服務(wù)器端進(jìn)程為兩個(gè)獨(dú)立地模塊,并行開發(fā),提高開發(fā)效率;2.Mediator模式降低了對(duì)象間的耦合,提高了對(duì)象的復(fù)用性;3.可配置性的特點(diǎn)。
【專利附圖】
【附圖說(shuō)明】
[0013]圖1是本發(fā)明中基于Qt的上位機(jī)控制系統(tǒng)整體結(jié)構(gòu)圖;
[0014]圖2是本發(fā)明中客戶端體系架構(gòu)圖;
[0015]圖3是本發(fā)明客戶端中按鍵管理器層的次結(jié)構(gòu)示意圖;
[0016]圖4是本發(fā)明中服務(wù)器端體系架構(gòu)圖?!揪唧w實(shí)施方式】
[0017]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明自,以下結(jié)合具體實(shí)施例,并參照附圖,對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。
[0018]圖1所示為基于Qt的上位機(jī)控制系統(tǒng)的整體結(jié)構(gòu)圖。如圖1所示,該控制系統(tǒng)采用客戶端進(jìn)程和服務(wù)器進(jìn)程的雙進(jìn)程模式,其優(yōu)點(diǎn)是將該體系架構(gòu)的功能分為兩個(gè)功能獨(dú)立的模塊,降低了系統(tǒng)的耦合性。當(dāng)客戶端進(jìn)程通過Socket將用戶的任務(wù)提交給服務(wù)器進(jìn)程時(shí),服務(wù)器進(jìn)程根據(jù)通信規(guī)則解析和執(zhí)行指令。同時(shí),服務(wù)器進(jìn)程又通過Socket向客戶端進(jìn)程發(fā)送執(zhí)行結(jié)果,向共享內(nèi)存寫入系統(tǒng)狀態(tài)信息,并將結(jié)果以特定的形式呈現(xiàn)給用戶。
[0019]客戶端負(fù)責(zé)與用戶交互,將用戶需求提交給服務(wù)器端并將服務(wù)器端的處理結(jié)果傳送給用戶;服務(wù)器管理所有硬件資源和算法,接收客戶端提交的需求進(jìn)行處理,并將處理結(jié)果反饋給客戶端。
[0020]客戶端與服務(wù)器端之間的通信通過基于TCP協(xié)議的Socket(套接字)和共享內(nèi)存技術(shù)實(shí)現(xiàn)。Socket實(shí)現(xiàn)客戶端與服務(wù)器端的指令通信,共享內(nèi)存技術(shù)實(shí)現(xiàn)底層硬件工作狀態(tài)、算法執(zhí)行進(jìn)度等信息反饋,由服務(wù)器將底層硬件工作狀態(tài)、算法執(zhí)行進(jìn)度寫入共享內(nèi)存,通過客戶端每隔一定時(shí)間讀取共享內(nèi)存內(nèi)容,并將讀取的內(nèi)容以用戶可以理解的形式展示。
[0021]本發(fā)明實(shí)施例中,圖2為客戶端體系架構(gòu)圖。如圖2所示,所述客戶端包括:
[0022]按鍵管理器:將所有按鍵按照?qǐng)D3所示的邏輯關(guān)系組織成“樹”結(jié)構(gòu)。根據(jù)用戶的按鍵操作,按鍵管理器對(duì)該樹結(jié)構(gòu)進(jìn)行遍歷,將被按下的按鍵顯示在按鍵欄,并請(qǐng)求頁(yè)面管理器在頁(yè)面欄位置顯示被按下的按鍵所對(duì)應(yīng)的頁(yè)面;
[0023]頁(yè)面管理器:頁(yè)面是整個(gè)客戶端的核心,實(shí)現(xiàn)用戶對(duì)底層硬件平臺(tái)的操作與控制及系統(tǒng)狀態(tài)信息的顯示。頁(yè)面管理器接收按鍵信號(hào),并通過調(diào)用相應(yīng)的槽函數(shù)來(lái)將按鍵對(duì)應(yīng)的頁(yè)面顯示在頁(yè)面欄位置,實(shí)現(xiàn)與用戶的交互;
[0024]狀態(tài)顯示模塊:以圖標(biāo)和文本形式顯示系統(tǒng)狀態(tài)信息,包括軟件配置、底層硬件運(yùn)行和算法執(zhí)行等各類信息;
[0025]標(biāo)題顯示模塊:顯示項(xiàng)目名稱和系統(tǒng)時(shí)間,提供展示和宣傳自己的窗口:
[0026]通信模塊:負(fù)責(zé)客戶端進(jìn)程和服務(wù)器進(jìn)程之間的通信,包括指令下達(dá)、執(zhí)行結(jié)果反饋、錯(cuò)誤反饋和系統(tǒng)實(shí)時(shí)監(jiān)視等;
[0027]中介者模塊:充當(dāng)各模塊間交互的橋梁,統(tǒng)一管理各模塊間的交互;
[0028]配置器模塊:在系統(tǒng)啟動(dòng)時(shí)讀取系統(tǒng)的配置文件,并對(duì)系統(tǒng)各模塊進(jìn)行初始化和配置。
[0029]本發(fā)明實(shí)施例中,圖4為服務(wù)器端體系結(jié)構(gòu)。如圖4所示,服務(wù)器端主要包括:
[0030]硬件接口模塊:其用于對(duì)不同類型的硬件設(shè)備進(jìn)行二次封裝,統(tǒng)一接口,方便調(diào)用,其中,硬件包括多種品牌電機(jī)、攝像頭和PLC等,二次封裝主要針對(duì)ActiveX、DLL和OPC等不同類型硬件驅(qū)動(dòng)程序的;
[0031]用戶接口模塊:用于負(fù)責(zé)接收客戶端指令,保證對(duì)客戶端的實(shí)時(shí)響應(yīng),該功能通過Qt的QThread線程模板實(shí)現(xiàn);
[0032]控制模塊,其負(fù)責(zé)對(duì)客戶端提交的指令進(jìn)行解析和執(zhí)行;[0033]用戶自定義模塊,其為用戶提供接口,允許由用戶根據(jù)需求進(jìn)行功能擴(kuò)展,用于用戶的個(gè)性化功能實(shí)現(xiàn)。
[0034]以上所述的具體實(shí)施例,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說(shuō)明,應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種基于Qt的上位機(jī)控制系統(tǒng),其包括: 客戶端,其負(fù)載與用戶進(jìn)行交互,將用戶需求提交給服務(wù)器端,并將服務(wù)器端的處理結(jié)果傳送給用戶; 服務(wù)器端,其用于管理所有硬件資源和算法,接收客戶端提交的用戶需求并處理,并將處理結(jié)果反饋給客戶端。
2.如權(quán)利要求1所述的上位機(jī)控制系統(tǒng),其中客戶端包括: 按鍵管理器:管理所有按鍵,并根據(jù)用戶按下的按鍵向頁(yè)面管理器請(qǐng)求對(duì)應(yīng)的頁(yè)面; 頁(yè)面管理器:其根據(jù)按鍵管理器的請(qǐng)求將按鍵對(duì)應(yīng)的頁(yè)面顯示出來(lái); 狀態(tài)顯示模塊:其以圖標(biāo)和文本形式顯示系統(tǒng)狀態(tài)信息; 標(biāo)題顯示模塊:其顯示項(xiàng)目名稱和系統(tǒng)時(shí)間; 通信模塊:其負(fù)責(zé)客戶端與服務(wù)器端的通信; 中介者模塊:其充當(dāng)各模塊間交互的橋梁,統(tǒng)一管理各模塊間的交互; 配置器模塊:其在系統(tǒng)啟動(dòng)時(shí)讀取系統(tǒng)的配置文件,并對(duì)系統(tǒng)各模塊進(jìn)行初始化和配置。
3.如權(quán)利要求1所述的上位機(jī)控制系統(tǒng),其中服務(wù)器端包括: 硬件接口模塊:其用于對(duì)不同類型的硬件設(shè)備進(jìn)行二次封裝; 用戶接口模塊:其負(fù)責(zé)接收客戶端指令,保證對(duì)客戶端的實(shí)時(shí)響應(yīng); 控制模塊:其負(fù)責(zé)對(duì)客戶端提交的指令進(jìn)行解析和執(zhí)行; 用戶自定義模塊,其為用戶提供接口,允許用戶根據(jù)需求進(jìn)行功能擴(kuò)展。
4.一種基于Qt的上位機(jī)控制方法,其包括: 客戶端將用戶需求提交給服務(wù)器端; 服務(wù)器端接收客戶端提交的用戶需求并處理,然后將處理結(jié)果反饋給客戶端; 客戶端將服務(wù)器端的處理結(jié)果傳送給用戶。
【文檔編號(hào)】H04L29/06GK103529816SQ201310524475
【公開日】2014年1月22日 申請(qǐng)日期:2013年10月30日 優(yōu)先權(quán)日:2013年10月30日
【發(fā)明者】王學(xué)偉, 劉衍 申請(qǐng)人:中國(guó)科學(xué)院自動(dòng)化研究所