閱讀 | 訂閱
閱讀 | 訂閱
控製係統

單片機與組態王軟件通訊解決方案

星之球激光 來源:中國自動化網2012-02-15 我要評論(0 )   

摘要:本文闡述了組態王軟件在工業(ye) 控製領域中的應用,組態王軟件和單片機進行通訊的兩(liang) 種解決(jue) 方案及其優(you) 劣性比較,並著重闡述了基於(yu) DDE方案的數據通訊原理和代碼實現。 1...

摘要:本文闡述了組態王軟件在工業(ye) 控製領域中的應用,組態王軟件和單片機進行通訊的兩(liang) 種解決(jue) 方案及其優(you) 劣性比較,並著重闡述了基於(yu) DDE方案的數據通訊原理和代碼實現。


 

1.引言

    組態王軟件作為(wei) 一種工業(ye) 控製組態軟件在國內(nei) 已得到了非常廣泛的應用。其具有強大的硬件支持能力,對國內(nei) 外絕大多數PLC、變頻器、板卡、模塊、儀(yi) 器儀(yi) 表都編寫(xie) 了相應的驅動程序,使用起來相當方便快捷。在“農(nong) 水實驗田環境監測”項目中,我們(men) 使用的硬件設備包括日本三菱PLC、台灣研華亞(ya) 當模塊及自行開發的基於(yu) 單片機的分析儀(yi) 器,我們(men) 選擇的軟件開發平台是組態王軟件。因此,實現單片機與(yu) 組態王的數據通訊是一個(ge) 必須解決(jue) 的問題。

2.單片機與(yu) 組態王軟件通訊的解決(jue) 方案

    2.1兩(liang) 種通訊解決(jue) 方案

    單片機與(yu) 組態王軟件通訊的解決(jue) 方案有兩(liang) 種,其一是直接編寫(xie) 支持單片機的驅動程序,就象組態王支持PLC一樣;其二是利用組態王軟件和 Visual Basic都支持DDE的特點,以VB為(wei) 開發平台,寫(xie) 一個(ge) 數據通訊應用程序,一方麵實現與(yu) 單片機的連接,另一方麵實現與(yu) 組態王的動態數據交換。

    2.2兩(liang) 種方案的比較

    第一種方案的優(you) 點是程序結構比較緊湊,數據通訊效率較高;缺點是必須由對組態王軟件內(nei) 核比較清楚的程序員開發,開發周期較長。第二種方案可由一般的程序員開發,缺點是數據通訊效率較低。在本項目中,我們(men) 采用了第二種方案。

3.基於(yu) DDE方案的實現

    3.1 DDE的概念

    DDE是WINDOWS平台上的一個(ge) 完整通信協議,它使應用程序能彼此交換數據和發送指令。DDE過程可以比喻為(wei) 兩(liang) 人對話,一方向另一方提出問題,然後等待回答。提問的一方稱為(wei) “客戶”,回答的一方稱為(wei) “服務器”。一個(ge) 應用程序可以同時是“客戶”和“服務器”,當它向其他程序中請求數據是,它充當的是“客戶”,若有其他程序向它提供數據,它又成了“服務器”。

    3.2通訊程序的數據流向

    用VB編寫(xie) 的數據通訊程序作為(wei) 中間者傳(chuan) 遞組態王與(yu) 單片機之間的數據。當組態王需要向單片機發送控製命令時,組態王充當服務器向VB通訊程序提供數據,VB通訊程序再通過串口實現對單片機的遠程控製;當組態王需要向單片機采集數據時,組態王充當客戶向VB通訊程序請求數據。組態王與(yu) 單片機通訊的數據流向如圖1。


 


 


 

圖1 組態王與(yu) 單片機通訊的數據流向


 

    3.3 代碼實現

    1.組態王的DDE設置

    組態王的DDE對話的內(nei) 容是通過三個(ge) 標識名來約定的。

    應用程序名(application):進行DDE對話的雙方名稱

    主題(topic) :被討論的數據域

    項目 (item) :被討論的特定數據對象

    為(wei) 了建立DDE連接,需要在組態王的數據詞典裏建立一個(ge) DDE變量,並登記三個(ge) 標識名。組態王運行係統的程序名是“VIEW”,主題規定為(wei) “TAGNAME”,項目是在定義(yi) DDE變量時定義(yi) 的項目名稱。

    2.VB通訊程序中的DDE設置

    在VB中DDE的連接是通過控件的屬性和方法來實現的。當VB充當服務器時,需要設置LinkTopic 和LinkMode屬性;當VB充當客戶時,需要設置LinkTopic ,LinkItem和LinkMode屬性。例如,VB通訊程序作為(wei) 服務器時的設置如下:

    Sub Form_Load()

    LinkTopic=”form1”

    LinkMode=1

    End Sub

    3.VB與(yu) 單片機的通訊

    在VB中可用Microsoft公司的32位串口通信控件Mscomm32.ocx實現與(yu) 單片機的通訊。在程序初始化時,設置Rthreshoid屬性為(wei) 1,接收緩衝(chong) 區接收到數據時觸發OnComm事件,從(cong) 而進行數據的接收和處理。

    Sub MSComm1_OnComm() 

    Select Case MSComm1.CommEvent

    Case Mscomm EV RECEIVE

    Inbuffe= MSComm1.Input

    Receivedata=Inbuffe

    MSComm1 Receive=False

    End Select

    。。。。。。。

    End Sub

4. 結論

    采用上述方案,我們(men) 在“農(nong) 水實驗田環境監測係統”項目中,很好地解決(jue) 了組態王軟件與(yu) 單片機的數據通訊。一年來,係統運行穩定可靠,產(chan) 生了良好的經濟效益。

轉載請注明出處。

免責聲明

① 凡本網未注明其他出處的作品,版權均屬於(yu) fun88网页下载,未經本網授權不得轉載、摘編或利用其它方式使用。獲本網授權使用作品的,應在授權範圍內(nei) 使 用,並注明"來源:fun88网页下载”。違反上述聲明者,本網將追究其相關(guan) 責任。
② 凡本網注明其他來源的作品及圖片,均轉載自其它媒體(ti) ,轉載目的在於(yu) 傳(chuan) 遞更多信息,並不代表本媒讚同其觀點和對其真實性負責,版權歸原作者所有,如有侵權請聯係我們(men) 刪除。
③ 任何單位或個(ge) 人認為(wei) 本網內(nei) 容可能涉嫌侵犯其合法權益,請及時向本網提出書(shu) 麵權利通知,並提供身份證明、權屬證明、具體(ti) 鏈接(URL)及詳細侵權情況證明。本網在收到上述法律文件後,將會(hui) 依法盡快移除相關(guan) 涉嫌侵權的內(nei) 容。

網友點評
0相關評論
精彩導讀