0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

采用VB可視化和DDE實現(xiàn)智能儀表監(jiān)控系統(tǒng)的設(shè)計

電子設(shè)計 ? 作者:電子設(shè)計 ? 2018-11-12 07:42 ? 次閱讀

引言

隨著科學(xué)技術(shù)的不斷發(fā)展,計算機測控技術(shù)在工業(yè)現(xiàn)場的各種測量及控制系統(tǒng)中應(yīng)用越來越廣泛。通常情況下,工業(yè)現(xiàn)場的各種測控系統(tǒng)需要上位計算機與工業(yè)現(xiàn)場各種智能化儀表進行通信,以便及時了解現(xiàn)場儀表的運行情況,從而實現(xiàn)對現(xiàn)場各種狀態(tài)的實時監(jiān)控。

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

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

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

1 系統(tǒng)的基本結(jié)構(gòu)

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

采用VB可視化和DDE實現(xiàn)智能儀表監(jiān)控系統(tǒng)的設(shè)計

圖1 系統(tǒng)基本原理圖。

2 系統(tǒng)的工作原理

組態(tài)王與現(xiàn)場智能儀表的通信原理如圖2 所示。

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

采用VB可視化和DDE實現(xiàn)智能儀表監(jiān)控系統(tǒng)的設(shè)計

圖2 組態(tài)王與現(xiàn)場智能儀表通信原理

2. 1 組態(tài)王與VB的動態(tài)數(shù)據(jù)交換

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

2. 1. 1 DDE通信時組態(tài)王的設(shè)定

組態(tài)王與VB之間數(shù)據(jù)交換內(nèi)容是通過三個標(biāo)志名來約定的:

① 應(yīng)用程序名。進行DDE對話的雙方的名稱。

組態(tài)王運行系統(tǒng)的程序名是View.

② 主題。被討論的數(shù)據(jù)域。組態(tài)王主題規(guī)定為tagname.

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

為了建立DDE鏈接,需要在組態(tài)王的數(shù)據(jù)詞典里建立一個I/O變量,并登記服務(wù)器程序的三個標(biāo)志名。

本系統(tǒng)中應(yīng)用程序名為VBDDE,話題名為form1,項目名為INCREA100, 程序交換的方式為標(biāo)準(zhǔn)WindowsDDE交換。

2. 1. 2 DDE通信時VB的設(shè)定

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

如果VB作為顧客,數(shù)據(jù)交換時,則需要對上述控件的LinkTop ic、Link Item、LinkMode 屬性進行如下設(shè)置:

Control. L inkTop ic =服務(wù)器程序名|主題名

Control. L ink Item =項目名

Control. L inkMode有四種選擇: 0表示關(guān)閉DDE;

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

其中, Control表示文本框、標(biāo)簽或圖片框的名字。

本系統(tǒng)中Control表示文本框Text1,LinkTop ic設(shè)置為View|Tagname, LinkItem 設(shè)置為PLC1. INCREA100,LinkMode設(shè)置為1.

如果組態(tài)王作為顧客,只要把VB 應(yīng)用程序中提供數(shù)據(jù)窗體的LinkMode屬性設(shè)置為1,其它無需再在VB中增加任何程序。

在對組態(tài)王和VB的初始設(shè)置完成后,結(jié)合VB編寫的與智能儀表的通信程序,分別按照服務(wù)器和顧客運行應(yīng)用程序,即可實現(xiàn)組態(tài)王與VB 的自動數(shù)據(jù)交換。

2. 2 VB與智能儀表的通信

本系統(tǒng)采用VB專業(yè)版的MSComm控件與VB模塊化編程相結(jié)合,實現(xiàn)了VB與智能儀表間的通信,主要程序模塊及部分程序如下:

① 程序初始化模塊。主要完成串口的選擇、波特率、幀結(jié)構(gòu)設(shè)置、打開串口等串口的設(shè)置工作。

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

上述模塊中定時器響應(yīng)程序的部分程序如下:

Private Sub Timer1 Timer ( )

Timer1. Enabled = False

Text_SEND. Text = "" ∥清空發(fā)送文本框

MSComm. OutBufferCount = 0 ∥清除發(fā)送緩沖區(qū)數(shù)據(jù)

Dim OutByte (1 To 3) AsByte

IfNotMSComm. PortOpen Then ∥保證串口打開

MSComm. PortOpen = True

End If

'24臺積算儀循環(huán)數(shù)據(jù)采集

If k = 1 Then

OutByte (1) = &HCA

OutByte (2) = 0

OutByte (3) = 1

End If

If k = 2 Then

OutByte (1) = &HCA

OutByte (2) = 0

OutByte (3) = 2

End If

??

k = k + 1

If k > 24 Then

k = 1

End If

MSComm. InBufferCount = 0 ∥清除接收緩沖區(qū)數(shù)據(jù)

MSComm. OutBufferCount = 0 ∥清除發(fā)送緩沖區(qū)數(shù)據(jù)

MSComm. Output = OutByte

For j = 1 To 3

OutByte again ( j) = OutByte ( j)

Next

For i = 1 To 50000000

'延時Next

End Sub

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

該模塊中的OnComm ( )函數(shù)響應(yīng)程序如下:

Private Sub Timer1 Timer ( )

Timer1. Enabled = False

Text_SEND. Text = "" ∥清空發(fā)送文本框

MSComm. OutBufferCount = 0 ∥清除發(fā)送緩沖區(qū)數(shù)據(jù)

Dim OutByte (1 To 3) AsByte

IfNotMSComm. PortOpen Then ∥保證串口打開

MSComm. PortOpen = True

End If

'24臺積算儀循環(huán)數(shù)據(jù)采集

If k = 1 Then

OutByte (1) = &HCA

OutByte (2) = 0

OutByte (3) = 1

End If

If k = 2 Then

OutByte (1) = &HCA

OutByte (2) = 0

OutByte (3) = 2

End If

k = k + 1

If k > 24 Then

k = 1

End If

MSComm. InBufferCount = 0 ∥清除接收緩沖區(qū)數(shù)據(jù)

MSComm. OutBufferCount = 0 ∥清除發(fā)送緩沖區(qū)數(shù)據(jù)

MSComm. Output = OutByte

For j = 1 To 3

OutByte again ( j) = OutByte ( j)

Next

For i = 1 To 50000000

'延時Next

End Sub

Private Sub Timer1 Timer ( )

Timer1. Enabled = False

Text_SEND. Text = "" ∥清空發(fā)送文本框

MSComm. OutBufferCount = 0 ∥清除發(fā)送緩沖區(qū)數(shù)據(jù)

Dim OutByte (1 To 3) AsByte

IfNotMSComm. PortOpen Then ∥保證串口打開

MSComm. PortOpen = True

End If

'24臺積算儀循環(huán)數(shù)據(jù)采集

If k = 1 Then

OutByte (1) = &HCA

OutByte (2) = 0

OutByte (3) = 1

End If

If k = 2 Then

OutByte (1) = &HCA

OutByte (2) = 0

OutByte (3) = 2

End If

??

k = k + 1

If k > 24 Then

k = 1

End If

MSComm. InBufferCount = 0 ∥清除接收緩沖區(qū)數(shù)據(jù)

MSComm. OutBufferCount = 0 ∥清除發(fā)送緩沖區(qū)數(shù)據(jù)

MSComm. Output = OutByte

For j = 1 To 3

OutByte again ( j) = OutByte ( j)

Next

For i = 1 To 50000000

'延時Next

End Sub

④ 容錯模塊。通過增加數(shù)據(jù)采集容錯模塊,保證數(shù)據(jù)采集的實時性、準(zhǔn)確性,提高系統(tǒng)工作可靠性。

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

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

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

3 結(jié)束語

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 轉(zhuǎn)換器
    +關(guān)注

    關(guān)注

    27

    文章

    8505

    瀏覽量

    145976
  • 監(jiān)控系統(tǒng)

    關(guān)注

    21

    文章

    3769

    瀏覽量

    172316
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2817

    瀏覽量

    87704
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1916

    瀏覽量

    34374
收藏 人收藏

    評論

    相關(guān)推薦

    智能可視化門禁系統(tǒng)項目_V2.0

    智能可視化門禁系統(tǒng)項目_V2.0
    發(fā)表于 08-16 16:27

    軌道交通路面3G手機移動可視化巡檢系統(tǒng)方案

    像,把現(xiàn)場的情況實時的傳到指揮控制中心,進行遠程監(jiān)控管理、調(diào)度,傳輸線路利用3G無線數(shù)據(jù)業(yè)務(wù)網(wǎng)和WIFI網(wǎng)絡(luò)。二、系統(tǒng)架構(gòu)深圳市視高電子技術(shù)股份有限公司3G移動可視化巡檢設(shè)備具有部署簡單、操作便捷
    發(fā)表于 01-28 10:05

    可視化MES系統(tǒng)軟件

    和客戶都會造成損失,為了更好的滿足客戶需求、實現(xiàn)企業(yè)信息,目前企業(yè)制造過程中主要還存在以下需求:(1)數(shù)據(jù)可視化方面。MES系統(tǒng)軟件之所以能有效的
    發(fā)表于 11-30 19:55

    可視化電子看板系統(tǒng)的崗位需求

    決問題。從功能角度談可視化電子看板系統(tǒng)從功能的角度來說,企業(yè)看板可以分為數(shù)據(jù)采集、數(shù)據(jù)分析、監(jiān)控預(yù)警、作業(yè)指導(dǎo)、工序銜接、下達指令、進度管理、績效驅(qū)動及現(xiàn)場廣播等。從流程角度談可視化
    發(fā)表于 10-19 20:07

    基于STM的可視化門禁系統(tǒng)

    基于STM的可視化門禁系統(tǒng)
    發(fā)表于 03-07 09:49

    三維可視化的應(yīng)用和優(yōu)勢

    ?! ?shù)據(jù)統(tǒng)計分析可視化:目前應(yīng)用較為廣泛,此功能普遍應(yīng)用于商業(yè)智能、***決策、公眾服務(wù)、市場營銷等等領(lǐng)域。借助可視化的管理系統(tǒng),可以更加清晰的進行信息傳達與溝通?! ∪S
    發(fā)表于 12-02 11:52

    基于VB的實體浮力測量系統(tǒng)監(jiān)控軟件設(shè)計

    介紹了應(yīng)用VB編程技術(shù)設(shè)計的實體浮力測量系統(tǒng)監(jiān)控軟件的總體軟件結(jié)構(gòu)和主要控制功能;應(yīng)用VB豐富的控件、強大的數(shù)據(jù)庫編程能力和可視化的編程設(shè)計
    發(fā)表于 07-16 11:19 ?11次下載

    HART協(xié)議智能儀表自動校驗系統(tǒng)的設(shè)計和實現(xiàn)

    HART協(xié)議智能儀表自動校驗系統(tǒng)的設(shè)計和實現(xiàn) 介紹HART協(xié)議智能儀表的自動校驗系統(tǒng)的設(shè)計思想 和實現(xiàn)
    發(fā)表于 10-15 21:36 ?1063次閱讀
    HART協(xié)議<b class='flag-5'>智能儀表</b>自動校驗<b class='flag-5'>系統(tǒng)</b>的設(shè)計和<b class='flag-5'>實現(xiàn)</b>

    組態(tài)王與VB數(shù)據(jù)交換方法

      針對目前組態(tài)王與智能化儀表通信時存在的問題,基于VB和動態(tài)數(shù)據(jù)交換技術(shù)DDE,研究了組態(tài)王與VB數(shù)據(jù)交換的方法,并
    發(fā)表于 09-25 17:52 ?16次下載
    組態(tài)王與<b class='flag-5'>VB</b>數(shù)據(jù)交換方法

    基于組態(tài)王和VB智能儀表實時監(jiān)控系統(tǒng)[圖]

    摘要: 針對目前組態(tài)王與智能化儀表通信時存在的問題,基于VB和動態(tài)數(shù)據(jù)交換技術(shù)DDE,研究了組態(tài)王與VB數(shù)據(jù)交換的方法,并
    發(fā)表于 01-17 22:32 ?1127次閱讀

    智能電網(wǎng)時代如何實現(xiàn)可視化

    隨著我國智能電網(wǎng)建造的開展,電力行業(yè)將掀起一場產(chǎn)業(yè)智能化革新。調(diào)度中心是電網(wǎng)運行信息和供電服務(wù)信息的匯集部門,在電力調(diào)度過程中,將智能電網(wǎng)調(diào)度可視化技術(shù)應(yīng)用進來,是推廣
    的頭像 發(fā)表于 01-11 16:00 ?6836次閱讀

    智能建筑可視化管理是如何實現(xiàn)

    人、車、物、事件是智能建筑管理的四大要素。智能建筑可視化管理解決方案可以通過視頻監(jiān)控、智能分析和安防綜合管理三大業(yè)務(wù)模塊
    發(fā)表于 04-18 11:20 ?1241次閱讀

    互動倉庫物流監(jiān)控管理可視化服務(wù)

    智能倉庫的優(yōu)勢在于3D智能可視化服務(wù),使倉庫物流監(jiān)控和管理能夠?qū)崟r顯示并自動識別,智能決策可以與各個環(huán)節(jié)的物流信息
    發(fā)表于 06-24 17:40 ?639次閱讀

    可視化全程追溯,可視化資產(chǎn)管理系統(tǒng)

    管理系統(tǒng)智能化技術(shù)為核心,融合了實時監(jiān)控、數(shù)據(jù)分析與可視化展示等功能,為企業(yè)提供了完整的資產(chǎn)管理解決方案。它能夠有效地追蹤和管理企業(yè)的固定資產(chǎn)、設(shè)備和庫存物資,幫助企業(yè)
    的頭像 發(fā)表于 01-11 13:54 ?357次閱讀
    <b class='flag-5'>可視化</b>全程追溯,<b class='flag-5'>可視化</b>資產(chǎn)管理<b class='flag-5'>系統(tǒng)</b>

    物聯(lián)網(wǎng)可視化監(jiān)控大屏如何實現(xiàn)?有什么功能?

    在物聯(lián)網(wǎng)飛速發(fā)展的時代,可視化監(jiān)控大屏成為了眾多企業(yè)和機構(gòu)實現(xiàn)智能化管理和監(jiān)控的重要工具。它將各種各樣設(shè)備的運行狀態(tài)和數(shù)據(jù)以圖形、圖表、動畫
    的頭像 發(fā)表于 04-11 09:25 ?614次閱讀