亚洲精华国产精华精华液网站,你懂的,娇生惯养4ph归寻(矜以),丰年经继拇中文3与其他教材比较

技術頻道

娓娓工業
您現在的位置: 中國傳動網 > 技術頻道 > 應用方案 > 采用VB可視化和DDE實現智能儀表監控系統的設計

采用VB可視化和DDE實現智能儀表監控系統的設計

時間:2018-11-12 18:20:56來源:電子發燒友網 作者:電子設計

導語:?隨著科學技術的不斷發展,計算機測控技術在工業現場的各種測量及控制系統中應用越來越廣泛。通常情況下,工業現場的各種測控系統需要上位計算機與工業現場各種智能化儀表進行通信,以便及時了解現場儀表的運行情況,從而實現對現場各種狀態的實時監控。

隨著科學技術的不斷發展,計算機測控技術在工業現場的各種測量及控制系統中應用越來越廣泛。通常情況下,工業現場的各種測控系統需要上位計算機與工業現場各種智能化儀表進行通信,以便及時了解現場儀表的運行情況,從而實現對現場各種狀態的實時監控。

組態王軟件作為一種優秀的上位機監控軟件,在許多領域的遠程監控中都得到了廣泛的應用。然而,組態王為數據采集和控制提供的大量底層設備驅動程序,主要是針對較大規模廠商的板卡和模塊,對于較小規模廠商開發的各種智能化儀表及用戶自己設計的板卡,卻沒有現成的驅動程序提供。因此,利用組態王與智能化儀表及用戶自己設計的板卡進行通信時,往往需要用戶自己開發底層的驅動程序,給用戶的使用帶來了諸多的不便。為了解決上述問題,組態王專門提供了一種DDE技術,能夠使用戶方便地實現組態王與其它支持動態數據交換的應用程序進行數據交換。

VisualBasic6.0(簡稱VB)是一款簡單、易用的可視化編程語言,開發者可以方便地利用其提供的組件快速建立一個應用程序。因而,在各種程序開發中,VB得到了廣泛的應用,同時在VB中提供的串行通信控件MSComm,為開發者實現上位計算機與現場各種儀表進行通信提供了一種有效途徑。另外,VB還支持DDE技術,利用該技術可以方便地開發出Windows環境下的DDE程序。

本文針對目前組態王與智能化儀表通信時存在的問題,給出了一種基于VB和DDE技術的上位計算機與現場智能儀表進行通信的方法。開發了一套組態王與VB相結合的智能化儀表監控系統,較好地實現了工業現場各種智能化設備運行狀態的實時監控。

1  系統的基本結構

基于組態王和VB的智能化儀表監控系統的結構如圖1所示。由圖1可知,該系統由上位計算機、RS2232/485通信電纜和現場各種智能化儀表構成,該系統采用的是一對多的通信鏈接形式,即現場多種智能化儀表掛接在RS2485總線上,然后再由RS2232/485轉換器轉換后,連接到上位計算機。

采用VB可視化和DDE實現智能儀表監控系統的設計

圖1系統基本原理圖。

2  系統的工作原理

組態王與現場智能儀表的通信原理如圖2所示。

由圖2可以看出,該系統的通信包括兩部分:組態王與VB程序的DDE通信;VB程序通過RS2232/485與現場智能儀表的通信。

采用VB可視化和DDE實現智能儀表監控系統的設計

圖2組態王與現場智能儀表通信原理

2.1組態王與VB的動態數據交換

動態數據交換(DDE)是Windows平臺上的一個完整通信協議,該協議使應用程序能彼此交換數據和發送指令。組態王和VB進行DDE通信的過程中,請求發送數據的一方稱為"客戶",被請求的一方稱為"服務器".由于DDE通信時,交換雙方需實現數據或控制命令的雙向傳輸。因此,它們既是"客戶",又是"服務器".

2.1.1DDE通信時組態王的設定

組態王與VB之間數據交換內容是通過三個標志名來約定的:

①應用程序名。進行DDE對話的雙方的名稱。

組態王運行系統的程序名是View.

②主題。被討論的數據域。組態王主題規定為tagname.

③項目。被討論的特定數據對象。在組態王的數據詞典里,定義I/O變量的同時,也定義了項目名稱。

為了建立DDE鏈接,需要在組態王的數據詞典里建立一個I/O變量,并登記服務器程序的三個標志名。

本系統中應用程序名為VBDDE,話題名為form1,項目名為INCREA100,程序交換的方式為標準WindowsDDE交換。

2.1.2DDE通信時VB的設定

在VB編程軟件中,DDE連接主要是通過控件的屬性和方法實現的。通常情況下,DDE通信主要是通過文本框、標簽或圖片框等控件進行。

如果VB作為顧客,數據交換時,則需要對上述控件的LinkTopic、LinkItem、LinkMode屬性進行如下設置:

Control.LinkTopic=服務器程序名|主題名

Control.LinkItem=項目名

Control.LinkMode有四種選擇:0表示關閉DDE;

1表示熱鏈接;2表示冷鏈接;3表示通告鏈接。

其中,Control表示文本框、標簽或圖片框的名字。

本系統中Control表示文本框Text1,LinkTopic設置為View|Tagname,LinkItem設置為PLC1.INCREA100,LinkMode設置為1.

如果組態王作為顧客,只要把VB應用程序中提供數據窗體的LinkMode屬性設置為1,其它無需再在VB中增加任何程序。

在對組態王和VB的初始設置完成后,結合VB編寫的與智能儀表的通信程序,分別按照服務器和顧客運行應用程序,即可實現組態王與VB的自動數據交換。

2.2VB與智能儀表的通信

本系統采用VB專業版的MSComm控件與VB模塊化編程相結合,實現了VB與智能儀表間的通信,主要程序模塊及部分程序如下:

①程序初始化模塊。主要完成串口的選擇、波特率、幀結構設置、打開串口等串口的設置工作。

②發送數據模塊。由手動發送控制命令字和自動發送控制命令字兩種方式,實現手動采集數據和自動采集數據。其中,自動發送數據方式包括一個定時器發送程序和一個定時器時間響應程序;定時器發送程序用來控制控制命令字的發送周期,定時器響應程序用來完成現場各智能化儀表地址的循環賦值及控制命令字的發送。

上述模塊中定時器響應程序的部分程序如下:

PrivateSubTimer1Timer()

Timer1.Enabled=False

Text_SEND.Text=""∥清空發送文本框

MSComm.OutBufferCount=0∥清除發送緩沖區數據

DimOutByte(1To3)AsByte

IfNotMSComm.PortOpenThen∥保證串口打開

MSComm.PortOpen=True

EndIf

'24臺積算儀循環數據采集

Ifk=1Then

OutByte(1)=&HCA

OutByte(2)=0

OutByte(3)=1

EndIf

Ifk=2Then

OutByte(1)=&HCA

OutByte(2)=0

OutByte(3)=2

EndIf

??

k=k+1

Ifk>24Then

k=1

EndIf

MSComm.InBufferCount=0∥清除接收緩沖區數據

MSComm.OutBufferCount=0∥清除發送緩沖區數據

MSComm.Output=OutByte

Forj=1To3

OutByteagain(j)=OutByte(j)

Next

Fori=1To50000000

'延時Next

EndSub

③接收數據模塊。通過事件響應的方式來完成現場數據的接收。如果串口收到現場數據,并且使得數據緩沖區中的內容超過一個字節時,就會引發com2EvReceive事件。OnComm()函數用來負責捕捉com2EvReceive事件,并且將發送緩沖區中的現場內容寫入VB的文本框進行顯示,同時與組態王進行DDE數據交換。

該模塊中的OnComm()函數響應程序如下:

PrivateSubTimer1Timer()

Timer1.Enabled=False

Text_SEND.Text=""∥清空發送文本框

MSComm.OutBufferCount=0∥清除發送緩沖區數據

DimOutByte(1To3)AsByte

IfNotMSComm.PortOpenThen∥保證串口打開

MSComm.PortOpen=True

EndIf

'24臺積算儀循環數據采集

Ifk=1Then

OutByte(1)=&HCA

OutByte(2)=0

OutByte(3)=1

EndIf

Ifk=2Then

OutByte(1)=&HCA

OutByte(2)=0

OutByte(3)=2

EndIf

k=k+1

Ifk>24Then

k=1

EndIf

MSComm.InBufferCount=0∥清除接收緩沖區數據

MSComm.OutBufferCount=0∥清除發送緩沖區數據

MSComm.Output=OutByte

Forj=1To3

OutByteagain(j)=OutByte(j)

Next

Fori=1To50000000

'延時Next

EndSub

PrivateSubTimer1Timer()

Timer1.Enabled=False

Text_SEND.Text=""∥清空發送文本框

MSComm.OutBufferCount=0∥清除發送緩沖區數據

DimOutByte(1To3)AsByte

IfNotMSComm.PortOpenThen∥保證串口打開

MSComm.PortOpen=True

EndIf

'24臺積算儀循環數據采集

Ifk=1Then

OutByte(1)=&HCA

OutByte(2)=0

OutByte(3)=1

EndIf

Ifk=2Then

OutByte(1)=&HCA

OutByte(2)=0

OutByte(3)=2

EndIf

??

k=k+1

Ifk>24Then

k=1

EndIf

MSComm.InBufferCount=0∥清除接收緩沖區數據

MSComm.OutBufferCount=0∥清除發送緩沖區數據

MSComm.Output=OutByte

Forj=1To3

OutByteagain(j)=OutByte(j)

Next

Fori=1To50000000

'延時Next

EndSub

④容錯模塊。通過增加數據采集容錯模塊,保證數據采集的實時性、準確性,提高系統工作可靠性。

⑤數據庫模塊。主要利用Access數據庫,實現對計算機采集數據存儲、管理、分析及歷史數據的查詢等。

⑥其他程序模塊。主要完成發送、接收文本框的清空工作等。

通過上述幾個模塊的協調工作,就可以較好地實現VB與智能儀表間的串行通信、數據分析及歷史數據查詢等。

3結束語

通過VB與智能儀表間的串行通信及組態王與VB間的DDE通信,并利用組態王豐富的圖形和組態工藝,較好地完成了數據的實時刷新、各種曲線、報警的顯示。運行結果表明,該系統具有友好的人機界面,良好的穩定性、可靠性,較好地解決了組態王與一般智能儀表間的實時通信問題,實現了組態王對智能化儀表的實時監控。

標簽:

點贊

分享到:

上一篇:PLC輸入端口和輸出端口接線的...

下一篇:基于無紡布纖維材料電極的超...

中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.siyutn.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

相關資訊

網站簡介|會員服務|聯系方式|幫助信息|版權信息|網站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網-工業自動化與智能制造的全媒體“互聯網+”創新服務平臺

網站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業執照證書 | 不良信息舉報中心 | 粵公網安備 44030402000946號

主站蜘蛛池模板: 余庆县| 湖南省| 肥乡县| 阳春市| 慈利县| 阜宁县| 扎赉特旗| 从江县| 宁德市| 德安县| 秦安县| 闻喜县| 高尔夫| 黑龙江省| 松溪县| 牙克石市| 吉安县| 湖口县| 社会| 阿鲁科尔沁旗| 郸城县| 泸西县| 天台县| 都匀市| 开封市| 陆丰市| 长海县| 全南县| 南阳市| 南靖县| 赫章县| 宜州市| 台东市| 分宜县| 准格尔旗| 达拉特旗| 台湾省| 神木县| 固始县| 深水埗区| 清流县|