国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

第三方軟件與監(jiān)控系統(tǒng)遠(yuǎn)程數(shù)據(jù)交互的應(yīng)用

2013-09-10 08:34陳志軍
自動(dòng)化儀表 2013年6期
關(guān)鍵詞:服務(wù)器端控件組態(tài)

張 濤 陳志軍

(新疆大學(xué)電氣工程學(xué)院,新疆 烏魯木齊 830000)

0 引言

現(xiàn)代科技的發(fā)展為我們的日常生活提供了越來越多的便利,自動(dòng)化技術(shù)的發(fā)展不僅提高了生產(chǎn)的效率、降低了能耗,同時(shí)大大節(jié)約了勞動(dòng)力。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,監(jiān)控系統(tǒng)也要求實(shí)現(xiàn)網(wǎng)絡(luò)化,不少監(jiān)控系統(tǒng)推出了網(wǎng)絡(luò)版本,但是每加裝一套網(wǎng)絡(luò)版本都需要軟件的授權(quán),且安裝需要專業(yè)人員指導(dǎo)操作方可完成相關(guān)配置;當(dāng)工程技術(shù)人員出差在外,查看監(jiān)控平臺(tái)的數(shù)據(jù)時(shí),還需攜帶軟件及授權(quán),非常不方便。同時(shí),很多既有的監(jiān)控平臺(tái)大體運(yùn)行正常,企業(yè)不愿意投入大量資金對(duì)原有系統(tǒng)做網(wǎng)絡(luò)升級(jí)改造,這時(shí)開發(fā)一個(gè)第三方系統(tǒng)來實(shí)現(xiàn)監(jiān)控系統(tǒng)在拓?fù)湟饬x下的網(wǎng)絡(luò)化顯得尤為重要[1-3]。有了這套第三方軟件系統(tǒng)之后,非網(wǎng)絡(luò)版系統(tǒng)或原有系統(tǒng)不作任何改動(dòng),就可以實(shí)現(xiàn)數(shù)據(jù)的遠(yuǎn)端網(wǎng)絡(luò)節(jié)點(diǎn)顯示與控制,省去了設(shè)備改造或升級(jí)所需要的時(shí)間及資金耗費(fèi),這是一種很多企業(yè)可以接受的方式[4-6]。

1 軟件構(gòu)架設(shè)計(jì)

由于是獨(dú)立于監(jiān)控系統(tǒng)外的第三方軟件平臺(tái),軟件首先應(yīng)當(dāng)具備網(wǎng)絡(luò)通信能力,只有網(wǎng)絡(luò)鏈路層打開后,后續(xù)工作才能展開。遠(yuǎn)程網(wǎng)絡(luò)系統(tǒng)通用的是TCP/IP協(xié)議,因此系統(tǒng)采用TCP/IP協(xié)議進(jìn)行通信。TCP/IP協(xié)議并不完全符合開放系統(tǒng)連接(open system interconnect,OSI)的七層參考模型[7-8]。該模型的目的是使各種硬件在相同的層次上相互通信。雖然沒有嚴(yán)格按照OSI標(biāo)準(zhǔn),但是TCP/IP協(xié)議依然比較復(fù)雜,若開發(fā)人員直接從底層進(jìn)行開發(fā),需要了解操作系統(tǒng)復(fù)雜的應(yīng)用程序接口(application programming interface,API)函數(shù)及其相應(yīng)的調(diào)用關(guān)系,難度很大,且也不利于程序的開發(fā)和調(diào)試。

為此,Windows操作系統(tǒng)專門開發(fā)了Winsock.ocx控件。該控件定義了一套Microsoft Windows下網(wǎng)絡(luò)編程接口規(guī)范,不僅包含了人們所熟悉的Berkeley Socket風(fēng)格的庫(kù)函數(shù),也包含了一組針對(duì)Windows的擴(kuò)展庫(kù)函數(shù),使程序員能充分利用Windows消息驅(qū)動(dòng)機(jī)制進(jìn)行編程。Windows Sockets規(guī)范的本意在于給應(yīng)用程序開發(fā)者提供一套簡(jiǎn)單的API,并讓各家網(wǎng)絡(luò)軟件供應(yīng)商共同遵守。此外,在一個(gè)特定版本W(wǎng)indows的基礎(chǔ)上,Windows Sockets也定義了一個(gè)二進(jìn)制接口(ABI),以此來保證應(yīng)用Windows Sockets API的應(yīng)用程序能夠在任何網(wǎng)絡(luò)軟件供應(yīng)商的、符合Windows Sockets協(xié)議的實(shí)現(xiàn)上工作。

在工控方面,組態(tài)軟件有其獨(dú)特的優(yōu)勢(shì),方便工程組態(tài)開發(fā),同時(shí)不需要對(duì)底層有過多的了解,但是組態(tài)軟件對(duì)實(shí)時(shí)性要求比較高。一般在控制過程中,不需要有其他一些操作保證控制系統(tǒng)的穩(wěn)定性,那么組態(tài)軟件和遠(yuǎn)程進(jìn)行直接通信勢(shì)必會(huì)大量占用組態(tài)資源,造成軟件超負(fù)荷或者不能及時(shí)響應(yīng)現(xiàn)場(chǎng)級(jí)別的要求。在一個(gè)組態(tài)工程中并不是所有參數(shù)都需要遠(yuǎn)傳,而是其中某些必要的參數(shù)可以作為遠(yuǎn)端監(jiān)控。為了降低組態(tài)軟件的負(fù)荷,開發(fā)一套第三方軟件來實(shí)現(xiàn)這個(gè)功能顯得尤為必要[9-10]。

圖1 系統(tǒng)架構(gòu)Fig.1 Architecture of the system

從圖1可以看出,第三方軟件的服務(wù)器端需要完成響應(yīng)客戶端連接的請(qǐng)求,同時(shí)執(zhí)行相關(guān)命令從組態(tài)軟件端取得數(shù)據(jù),再回傳給所需要的客戶端。

2 軟件模塊設(shè)計(jì)

2.1 服務(wù)器端的模塊設(shè)計(jì)

服務(wù)器端的任務(wù)相對(duì)較多,它負(fù)責(zé)和監(jiān)視與控制通用系統(tǒng) (monitor and control generated system,MCGS)進(jìn)行數(shù)據(jù)交互,同時(shí)響應(yīng)客戶端的請(qǐng)求,按要求處理和傳輸數(shù)據(jù)。服務(wù)器主要由12個(gè)模塊組成,如圖2所示。

圖2 服務(wù)器軟件模塊組成圖Fig.2 Composition of the server software modules

部分核心模塊的功能簡(jiǎn)介如下。

①OLE接口模塊

OLE接口模塊通過ActiveX技術(shù)和組態(tài)軟件動(dòng)態(tài)交互數(shù)據(jù),主要是對(duì)組態(tài)實(shí)時(shí)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行讀寫操作。為了達(dá)到模塊調(diào)用的通用性和外部可擴(kuò)展性,該模塊已經(jīng)變成標(biāo)準(zhǔn)的動(dòng)態(tài)鏈接庫(kù)。該鏈接庫(kù)的代碼如下。

②動(dòng)態(tài)連接管理模塊

中職學(xué)生普遍存在理論學(xué)習(xí)能力弱、學(xué)習(xí)主動(dòng)性差等特點(diǎn),部分中職院校把課程教學(xué)分為理論、實(shí)踐教學(xué)兩個(gè)部分,在多媒體教室進(jìn)行理論教學(xué),實(shí)踐教學(xué)則在實(shí)訓(xùn)室完成,這種人為地把教學(xué)分割成兩部分違背了教學(xué)規(guī)律,不符合中職學(xué)生的認(rèn)知特點(diǎn)。特別是對(duì)于實(shí)踐性較強(qiáng)、與工程聯(lián)系緊密的課程,教學(xué)設(shè)計(jì)時(shí)應(yīng)該重點(diǎn)考慮如何讓學(xué)生動(dòng)手操作,把有關(guān)知識(shí)和技能融入任務(wù)中,讓學(xué)生在實(shí)踐中主動(dòng)學(xué)習(xí)。

遠(yuǎn)程客戶端要同服務(wù)器交互數(shù)據(jù),首先要同服務(wù)器建立連接。由于遠(yuǎn)程客戶端的數(shù)目和訪問時(shí)間都是不確定的,所以對(duì)于連接管理模塊要求相對(duì)較高,既要實(shí)現(xiàn)多方通信,又不能使連接產(chǎn)生沖突。在此采用Winsock控件數(shù)組機(jī)制,動(dòng)態(tài)加載或卸載一對(duì)一連接用控件。這時(shí)需要一個(gè)控件專門監(jiān)聽指定端口,當(dāng)檢測(cè)到端口有合法連接請(qǐng)求時(shí),從控件數(shù)組里面動(dòng)態(tài)加載一個(gè)連接控件,并將連接權(quán)轉(zhuǎn)交給相應(yīng)控件。

首先將控件設(shè)定為監(jiān)聽模式Winsockm.Listen,然后在Winsockm_ConnectionRequest事件中響應(yīng)并處理合法的連接。由于TCP/IP協(xié)議三次握手的特性,必定會(huì)留下請(qǐng)求方的IP地址,因此,調(diào)用安全管理模塊判斷IP地址是否處于合法區(qū)段,若滿足,則建立連接,否則不響應(yīng)連接請(qǐng)求。響應(yīng)成功后,執(zhí)行動(dòng)態(tài)連接程序,加載空閑動(dòng)態(tài)控件數(shù)組來接替連接過程,具體程序如下。

若建立連接后,客戶端長(zhǎng)時(shí)間沒有操作請(qǐng)求,模塊將會(huì)自動(dòng)斷開連接,或客戶端主動(dòng)斷開連接后,模塊將卸載復(fù)位相關(guān)連接對(duì)象,保證系統(tǒng)最優(yōu)運(yùn)行。

③通信命令模塊

通信命令模塊是數(shù)據(jù)交換的核心,只有正確的通信命令系統(tǒng)才作響應(yīng)。這個(gè)模塊約定了命令類型、命令的操作數(shù)以及命令的響應(yīng)方式。

客戶端和服務(wù)器端主要有連接請(qǐng)求與響應(yīng)、身份驗(yàn)證、數(shù)據(jù)請(qǐng)求、數(shù)據(jù)修改、斷開連接請(qǐng)求等命令格式。這些命令都做成相應(yīng)的命令庫(kù),客戶端和服務(wù)器端都應(yīng)該遵守這個(gè)庫(kù)。

④數(shù)據(jù)校驗(yàn)?zāi)K

為了提高傳輸?shù)男?,通常要將不同?shù)據(jù)打包成一個(gè)大的數(shù)據(jù)包發(fā)送,因此單次通信的通信量較大。為了保證數(shù)據(jù)接收端接收數(shù)據(jù)的準(zhǔn)確性,必須對(duì)數(shù)據(jù)作校驗(yàn)處理。為此,校驗(yàn)?zāi)K主要采用一套自定義的校驗(yàn)方法,即采用數(shù)據(jù)打包傳送的方式,結(jié)構(gòu)如圖3所示。數(shù)據(jù)包的開始兩個(gè)字節(jié)作為數(shù)據(jù)包的長(zhǎng)度信息,若長(zhǎng)度值和實(shí)測(cè)數(shù)據(jù)包長(zhǎng)度相同,則長(zhǎng)度校驗(yàn)通過,否則認(rèn)為數(shù)據(jù)錯(cuò)誤。第3個(gè)字節(jié)為數(shù)據(jù)開頭特征信息,若該值符合約定,那么特征校驗(yàn)通過,否則信息錯(cuò)誤。數(shù)據(jù)區(qū)采用數(shù)據(jù)區(qū)位加數(shù)據(jù)信息排布模式,一個(gè)數(shù)據(jù)區(qū)位號(hào)占一個(gè)字節(jié)的空間,能表示256個(gè)數(shù)據(jù),即高四位表示16個(gè)區(qū),低四位表示16個(gè)位。但是為了區(qū)別數(shù)據(jù)開頭和結(jié)尾特征碼,預(yù)留了兩個(gè)區(qū)位號(hào)作為特征碼使用。這樣數(shù)據(jù)區(qū)傳送的數(shù)據(jù)最多為254個(gè),大大提高了數(shù)據(jù)的傳輸量。變量區(qū)位在客戶端和服務(wù)器端進(jìn)行存儲(chǔ),接收到區(qū)位碼時(shí)再提取出相關(guān)變量并作處理即可,避免了實(shí)際變量改變后在傳輸中所造成的問題。當(dāng)檢驗(yàn)到結(jié)尾特征碼時(shí),停止數(shù)據(jù)處理過程。

圖3 數(shù)據(jù)包結(jié)構(gòu)圖Fig.3 Structure of data packet

⑤數(shù)據(jù)存儲(chǔ)模塊

數(shù)據(jù)存儲(chǔ)模塊主要是將獲取的數(shù)據(jù)實(shí)時(shí)存儲(chǔ)到數(shù)據(jù)庫(kù)。為了避免軟件直接采用API函數(shù)訪問數(shù)據(jù)庫(kù)的繁瑣方式,本模塊采用ADODC控件作為訪問數(shù)據(jù)庫(kù)的接口控件,只需要調(diào)用其相關(guān)方法就能方便地存儲(chǔ)數(shù)據(jù)。使用控件時(shí)必須首先設(shè)定控件的連接字符串。通常采用的方法是在Windows下的開放數(shù)據(jù)庫(kù)互連 (open database connectivity,ODBC)管理器中生成相關(guān)的連接字符串,再賦給控件。相關(guān)代碼如下。

然后指定相關(guān)的數(shù)據(jù)源。采用控件的ADDnew方法可以向數(shù)據(jù)庫(kù)里面追加記錄。

2.2 軟件客戶端的模塊化設(shè)計(jì)

客戶端軟件主要是工程技術(shù)人員獲取遠(yuǎn)端服務(wù)器參數(shù)的工具,其應(yīng)當(dāng)具有易操作、界面友好等外在特點(diǎn)。同時(shí),客戶端軟件必須具備通信功能,并要求有數(shù)據(jù)處理和決策、實(shí)時(shí)顯示現(xiàn)場(chǎng)數(shù)據(jù)、實(shí)時(shí)遠(yuǎn)程調(diào)整相關(guān)參數(shù)、實(shí)時(shí)存儲(chǔ)數(shù)據(jù)以及與Matlab實(shí)時(shí)交互數(shù)據(jù)等功能??蛻舳讼到y(tǒng)構(gòu)架如圖4所示。

圖4 客戶端系統(tǒng)構(gòu)架圖Fig.4 Architecture of the client system

由于客戶端的很多模塊都和服務(wù)器端是對(duì)應(yīng)的,在此只介紹數(shù)據(jù)顯示和調(diào)整模塊以及程序接口模塊。

①數(shù)據(jù)顯示和調(diào)整模塊

數(shù)據(jù)顯示采用趨勢(shì)控件Trend.OCX。設(shè)定其xAxis下的XDataType設(shè)定為Time型,這樣就可以顯示實(shí)時(shí)時(shí)間趨勢(shì)圖。利用.AddXY 0,Time,Value語句就能畫出相關(guān)曲線。

遠(yuǎn)程調(diào)整參數(shù)用到的是一個(gè)slider.ocx控件,若檢測(cè)到slider對(duì)應(yīng)的參數(shù)發(fā)生變化,就改變它的position屬性,從而改變滑塊位置。當(dāng)滑塊位置改變時(shí),觸發(fā)positionchange事件,然后在該事件下驅(qū)動(dòng)發(fā)送數(shù)據(jù),更改遠(yuǎn)程參數(shù)。

②程序接口模塊

VB雖然在界面開發(fā)方面有獨(dú)到的優(yōu)勢(shì),但在數(shù)據(jù)處理方面卻不及Matlab。為此,結(jié)合兩個(gè)程序的優(yōu)點(diǎn),采用ActiveX技術(shù)將兩者無縫對(duì)接起來,發(fā)揮最大的優(yōu)勢(shì);采用Matlab.application對(duì)象作為接口,利用Execute執(zhí)行Matlab命令。采用該方法可以實(shí)現(xiàn)VB和Matlab的無縫對(duì)接。采用Matlab實(shí)時(shí)處理采集到的數(shù)據(jù),然后決策輸出,可以實(shí)現(xiàn)一些復(fù)雜優(yōu)化算法。

3 軟件運(yùn)行測(cè)試

3.1 軟件服務(wù)器端測(cè)試

服務(wù)器負(fù)責(zé)和組態(tài)軟件通信,獲取實(shí)時(shí)數(shù)據(jù)庫(kù)里的數(shù)據(jù),然后根據(jù)客戶端的連接及驗(yàn)證情況,進(jìn)行數(shù)據(jù)收發(fā)。同時(shí),服務(wù)器可以接受客戶端的遠(yuǎn)程控制請(qǐng)求,并將控制權(quán)移交,讓客戶端可以按規(guī)定進(jìn)行遠(yuǎn)程操控。經(jīng)過程序運(yùn)行測(cè)試,服務(wù)器與MCGS通信良好,同時(shí)亦能與遠(yuǎn)程多個(gè)客戶端良好通信。

3.2 軟件客戶端測(cè)試

當(dāng)客戶端和服務(wù)器連接成功且在驗(yàn)證碼正確的情況下,方可接收到服務(wù)器端發(fā)來的數(shù)據(jù)并正確解析后顯示輸出。同時(shí),客戶端可以自由調(diào)整PID參數(shù),同時(shí)可以調(diào)整設(shè)定值和仿真入口值;客戶端還可以自行編寫優(yōu)化的控制算法,示例程序?qū)⑦h(yuǎn)端改進(jìn)的PID算法作用于實(shí)際被控對(duì)象上,可以實(shí)現(xiàn)遠(yuǎn)程智能控制,并可以實(shí)時(shí)觀察算法的運(yùn)行狀態(tài)。通過測(cè)試,客戶端軟件可以在授權(quán)的模式下與服務(wù)器自由通信,實(shí)現(xiàn)監(jiān)視、控制、控制權(quán)切換、算法的實(shí)現(xiàn)等功能。

4 結(jié)束語

通過對(duì)軟件的實(shí)際測(cè)試,第三方軟件能夠良好地運(yùn)行于Windows OS下,并能夠與監(jiān)控軟件正常地進(jìn)行數(shù)據(jù)交互、完成數(shù)據(jù)的遠(yuǎn)程讀取、遠(yuǎn)程再現(xiàn)監(jiān)控過程、遠(yuǎn)程調(diào)整及控制監(jiān)控參數(shù)以及遠(yuǎn)程算法的加載等一系列功能,并且在某企業(yè)的液位遠(yuǎn)程監(jiān)控中得到了應(yīng)用。這種軟件構(gòu)架模式不僅可以應(yīng)用在客戶端和組態(tài)間的通信上,同時(shí)還可以應(yīng)用在遠(yuǎn)程I/O技術(shù)以及集群控制等方面,讓監(jiān)控系統(tǒng)具有更寬泛的開放、靈活等優(yōu)點(diǎn)。

[1]許其義.先進(jìn)控制策略在MCGS上的集成與應(yīng)用[J].自動(dòng)化儀表,2011(5):31-34.

[2]羅培.JNI和Acti veX技術(shù)在組態(tài)監(jiān)控系統(tǒng)網(wǎng)絡(luò)化遷移中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用研究,2007(12):266-267.

[3]包建華.MCGS平臺(tái)下51單片機(jī)驅(qū)動(dòng)構(gòu)件開發(fā)與應(yīng)用[J].自動(dòng)化儀表,2011(11):35-38.

[4]鄭阿奇,曹戈.VisualBasic實(shí)用教程[M].2版.北京:電子工業(yè)出版社,2005:55 -70.

[5]曹輝等.組態(tài)軟件技術(shù)及其應(yīng)用[M].北京:電子工業(yè)出版社,2009:96-135.

[6]雙娜,鐘國(guó)韻.基于winsock的遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)與研究[J].現(xiàn)代計(jì)算機(jī)(專業(yè)版),2010(7):137-140.

[7]李林靜,葉冬芬.運(yùn)用Winsock構(gòu)建基于C/S模式的網(wǎng)絡(luò)通信[J].計(jì)算機(jī)工程與科學(xué),2009(2):19-23.

[8]文東,郭淑馨,閔丹.Access2003數(shù)據(jù)庫(kù)應(yīng)用基礎(chǔ)與項(xiàng)目實(shí)訓(xùn)[M].北京:中國(guó)人民大學(xué)出版社,2009:303-334.

[9]尤新芬,王炯,曹煥男.基于Winsock技術(shù)的計(jì)算機(jī)監(jiān)控系統(tǒng)的實(shí)現(xiàn)[J].煤炭技術(shù),2011(12):194 -195.

[10]陳立定,馮景輝,胥布工.遠(yuǎn)程環(huán)境在線監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)[J].同濟(jì)大學(xué)學(xué)報(bào):自然科學(xué)版,2010(11):1659-1663.

猜你喜歡
服務(wù)器端控件組態(tài)
基于PLC及組態(tài)技術(shù)的恒溫控制系統(tǒng)開發(fā)探討
基于.net的用戶定義驗(yàn)證控件的應(yīng)用分析
Linux環(huán)境下基于Socket的數(shù)據(jù)傳輸軟件設(shè)計(jì)
關(guān)于.net控件數(shù)組的探討
基于PLC和組態(tài)的智能電動(dòng)擰緊系統(tǒng)
基于Qt的安全即時(shí)通訊軟件服務(wù)器端設(shè)計(jì)
基于Qt的網(wǎng)絡(luò)聊天軟件服務(wù)器端設(shè)計(jì)
鑄造行業(yè)三維組態(tài)軟件的應(yīng)用
基于PLC和組態(tài)的新型回轉(zhuǎn)類測(cè)試設(shè)備的研制
基于C/S架構(gòu)的嵌入式監(jiān)控組態(tài)外設(shè)擴(kuò)展機(jī)制研究與應(yīng)用