鄭躍鵬
(1.中國(guó)煤炭科工集團(tuán) 太原研究院,山西 太原 030006;2.山西天地煤機(jī)裝備有限公司,山西 太原 030006)
隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,計(jì)算機(jī)遠(yuǎn)程測(cè)控技術(shù)在工業(yè)工程中的應(yīng)用越來(lái)越廣泛[1-4],工業(yè)生產(chǎn)過(guò)程中需要及時(shí)了解現(xiàn)場(chǎng)設(shè)備的運(yùn)行情況并及時(shí)做出相應(yīng)的調(diào)整。 因此,遠(yuǎn)距離測(cè)控技術(shù)的應(yīng)用顯得尤為重要。
組態(tài)王作為一種新型的工業(yè)自動(dòng)化控制系統(tǒng)軟件[4],它由標(biāo)準(zhǔn)的工業(yè)計(jì)算機(jī)軟、硬件平臺(tái)構(gòu)成,具有適應(yīng)性強(qiáng)、開(kāi)放性好,開(kāi)發(fā)周期短等優(yōu)點(diǎn),廣泛應(yīng)用于電力、水利、煤礦等自動(dòng)化生產(chǎn)領(lǐng)域。它的采集數(shù)據(jù)模塊具有與各種大規(guī)模廠商智能儀表連接的驅(qū)動(dòng)程序,然而對(duì)于小規(guī)模廠商和自主設(shè)計(jì)的板塊沒(méi)有相應(yīng)的驅(qū)動(dòng)[5]。 針對(duì)上述問(wèn)題,組態(tài)王提供了一種DDE 模塊,方便用戶與外部數(shù)據(jù)的動(dòng)態(tài)交換。
VisualBasic 6.0(本文中簡(jiǎn)稱VB)是一款簡(jiǎn)單的可視化編程語(yǔ)言, 開(kāi)發(fā)者可以利用其提供的開(kāi)發(fā)平臺(tái)建立相應(yīng)的應(yīng)用程序[6]。在各種程序開(kāi)發(fā)中,VB 得到了廣泛的應(yīng)用,同時(shí)在VB 中提供的串行通信控件MSComm, 為開(kāi)發(fā)者實(shí)現(xiàn)上位計(jì)算機(jī)與現(xiàn)場(chǎng)各種儀表進(jìn)行通信提供了一種有效途徑。 此外VB 還支持DDE 技術(shù),利用該技術(shù)可以方便地開(kāi)發(fā)出Windows 環(huán)境下的DDE 程序。
為了滿足現(xiàn)代工業(yè)數(shù)據(jù)開(kāi)放性的要求,利用組態(tài)王建立OPC 服務(wù)器實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)的共享與上傳,針對(duì)組態(tài)王與各種智能儀表之間的數(shù)據(jù)傳輸問(wèn)題,給出了一種基于組態(tài)王DDE 模塊與VB之間的通訊方法[7-8]。
利用VB 在Windows 操作平臺(tái)的開(kāi)發(fā)優(yōu)勢(shì),基于組態(tài)王內(nèi)部嵌入的與DDE 通訊的模塊,開(kāi)發(fā)出組態(tài)王與DDE 雙向數(shù)據(jù)交換的信息交流模式,然后利用組態(tài)王的OPC 開(kāi)放式服務(wù)器,將數(shù)據(jù)上傳至公共平臺(tái)進(jìn)行數(shù)據(jù)的匯總(見(jiàn)圖1)。
圖1 組態(tài)王OPEC 的開(kāi)放式系統(tǒng)原理結(jié)構(gòu)
組態(tài)王提供DDE 通信接口,作為服務(wù)器時(shí),通過(guò)設(shè)置變量屬性、允許DDE 訪問(wèn)來(lái)實(shí)現(xiàn);作為客戶時(shí),通過(guò)新建設(shè)備可設(shè)置具體的DDE 屬性,如DDE 設(shè)備名稱、服務(wù)程序名、話題名等(見(jiàn)表1)。
表1 組態(tài)王DDE 模塊與VB 之間的通訊協(xié)議
組態(tài)王軟件擁有DDE 客戶和服務(wù)器支持,通過(guò)DDE 方式應(yīng)用程序能很好地與組態(tài)王進(jìn)行數(shù)據(jù)交換。 DDE 客戶支持可以把應(yīng)用程序端采集的數(shù)據(jù)傳遞給組態(tài)王, 用于組態(tài)進(jìn)行數(shù)據(jù)分析;服務(wù)器支持可以讓組態(tài)王發(fā)出的信息動(dòng)作于應(yīng)用程序端, 讓其進(jìn)行處理,VB 與組態(tài)王在PC上的控制流程見(jiàn)圖2。
圖2 VB 與組態(tài)王在PC 上的控制流程
貴州省遵義市的一家煤礦進(jìn)行智能化改進(jìn)工程, 以便在調(diào)度室內(nèi)實(shí)現(xiàn)遠(yuǎn)程控制瓦斯泵、水泵等設(shè)備的啟停操作,以及瓦斯?jié)舛?、流量等?shù)據(jù)的遠(yuǎn)程傳輸監(jiān)測(cè)。 在此之前,重慶某大學(xué)已經(jīng)布置了測(cè)量井下瓦斯流量、濃度等參數(shù)的測(cè)控系統(tǒng), 拒絕提供程序供應(yīng)協(xié)議和對(duì)外開(kāi)放接口;同時(shí)礦方不想重復(fù)增加測(cè)控設(shè)備造成成本上升。通過(guò)技術(shù)交流后制定方案,最終采用以VB 軟件開(kāi)發(fā)的后臺(tái)應(yīng)用程序作為瓦斯測(cè)控平臺(tái)部分?jǐn)?shù)據(jù)傳輸?shù)闹修D(zhuǎn)站, 通過(guò)組態(tài)王的開(kāi)發(fā)系統(tǒng)的內(nèi)置COM 串口,實(shí)現(xiàn)數(shù)據(jù)的處理和分析,計(jì)算出瓦斯流量日、月、年的總量計(jì)算。同時(shí)在瓦斯泵房布置溫度、水位等傳感器,通過(guò)UDP 通訊協(xié)議實(shí)現(xiàn)瓦斯泵房泵站電機(jī)、水泵等設(shè)備的啟停操作,同時(shí)通過(guò)水位、溫度的檢測(cè)實(shí)現(xiàn)設(shè)備的預(yù)警和自動(dòng)停機(jī)保護(hù)功能,測(cè)控平臺(tái)通訊控制結(jié)構(gòu)見(jiàn)圖3。
圖3 測(cè)控平臺(tái)通訊控制結(jié)構(gòu)
在Microsoft Visual Basic 的開(kāi)發(fā)程序界面(見(jiàn)圖4),利用Form、Command、Text 等內(nèi)置的控件屬性來(lái)實(shí)現(xiàn)數(shù)據(jù)的傳輸、 控制。 首先通過(guò)Command1 控件查詢指定的數(shù)據(jù)文件,若發(fā)現(xiàn)則返回值設(shè)置為“已找到”,否則返回值設(shè)置為“未找到”; 然后通過(guò)Command2 控件將發(fā)現(xiàn)的數(shù)據(jù)導(dǎo)入VB 程序內(nèi); 點(diǎn)擊Command3 控件對(duì)數(shù)據(jù)進(jìn)行排序,實(shí)現(xiàn)數(shù)據(jù)的排列整理,最后傳入相應(yīng)的Text 控件內(nèi), 完成.txt 文件與VB 程序之間的橋梁搭接。
圖4 VB 開(kāi)發(fā)程序段
在啟動(dòng)組態(tài)王測(cè)控系統(tǒng)之前,首先啟動(dòng)編寫完工的VB 程序,點(diǎn)擊打開(kāi)抽放數(shù)據(jù)源(見(jiàn)圖5),將Sensor-Sort 文件與DDE 程序關(guān)聯(lián),然后點(diǎn)擊創(chuàng)建、查看排序文件,保證數(shù)據(jù)關(guān)聯(lián)的準(zhǔn)確性。
圖5 VB 程序與txt 文本在PC 端的數(shù)據(jù)關(guān)聯(lián)
在組態(tài)王應(yīng)用程序的開(kāi)發(fā)系統(tǒng)界面,選擇左側(cè)設(shè)備文件下的DDE 板塊,新建dde 模塊,選擇標(biāo)準(zhǔn)的Windows 數(shù)據(jù)交換方式,然后在數(shù)據(jù)詞典中創(chuàng)建關(guān)聯(lián)變量,圖中變量的名字與VB 程序中的text 文件的名字保持一致,連接設(shè)備選擇dde,從而實(shí)現(xiàn)組態(tài)王中DDE 模塊與VB 程序之間的數(shù)據(jù)交換的功能(見(jiàn)圖6)。
圖6 組態(tài)王DDE 模塊與VB 程序關(guān)聯(lián)
PC 端運(yùn)行組態(tài)王開(kāi)發(fā)程序, 通過(guò)以太網(wǎng)的通訊形式,接入到煤礦的環(huán)網(wǎng)光纖,然后通過(guò)分站引出的網(wǎng)線實(shí)現(xiàn)與PLC 的通訊, 從而實(shí)現(xiàn)遠(yuǎn)程監(jiān)測(cè)實(shí)時(shí)數(shù)據(jù)與控制瓦斯泵、水泵啟停的功能。
由于PLC 采集數(shù)據(jù)的頻率較高, 加上數(shù)據(jù)傳輸?shù)捏w量大,因此采用UPD 通訊協(xié)議,為了提高數(shù)據(jù)傳輸?shù)男剩捎檬M(jìn)制進(jìn)行實(shí)時(shí)數(shù)據(jù)的雙向傳輸,調(diào)試中接收的部分網(wǎng)絡(luò)數(shù)據(jù)如圖7所示。 數(shù)據(jù)傳輸部分程序段如下:
圖7 16 進(jìn)制網(wǎng)絡(luò)數(shù)據(jù)接收
LD Always_On:SM0.0
MOVB VB2002,VB3003
MOVB VB2003,VB3002
ITD VW3002,VD4002
AENO
DTR VD4002,VD6002
AENO
MOVR VD6002,軸溫1 傳感器:VD632
/R 100.0,軸溫1 傳感器:VD632
組態(tài)王應(yīng)用程序的控制界面如圖8 所示,瓦斯泵的啟??刂瞥绦蛞罁?jù)現(xiàn)場(chǎng)的工藝流程進(jìn)行程序化編譯, 鼠標(biāo)點(diǎn)擊相應(yīng)設(shè)備的控制按鈕,設(shè)備即啟動(dòng)或者停止, 圖中出現(xiàn)模擬的流動(dòng)狀態(tài),清晰的表明設(shè)備的運(yùn)行狀態(tài)。
圖8 測(cè)控系統(tǒng)界面與PLC 可編程控制器
本文利用VB 在Windows 環(huán)境運(yùn)行的前提下進(jìn)行編程,實(shí)現(xiàn)了讀取文件中數(shù)據(jù)的功能。 在目前的數(shù)字化信息時(shí)代中,各家企業(yè)都對(duì)自己的技術(shù)協(xié)議加以保護(hù),不向第三方開(kāi)放接口。 通過(guò)DDE 模塊在VB 與組態(tài)王之間搭建橋梁,實(shí)現(xiàn)數(shù)據(jù)的共享,減少了企業(yè)的設(shè)備投入成本,為數(shù)據(jù)傳輸提供了一個(gè)簡(jiǎn)捷的方法。同時(shí)利用組態(tài)王的內(nèi)置嵌入的SQL 模塊化數(shù)據(jù)處理、曲線繪制,強(qiáng)化了智能化監(jiān)測(cè)的視覺(jué)效果。