1,、引言
組態(tài)王軟件作為一種工業(yè)控制組態(tài)軟件在國內已得到了非常廣泛的應用。其具有強大的硬件支持能力,,對國內外絕大多數(shù)PLC,、變頻器、板卡,、模塊,、儀器儀表都編寫了相應的驅動程序,使用起來相當方便快捷,。在“農(nóng)水實驗田環(huán)境監(jiān)測”項目中,,我們使用的硬件設備包括日本三菱PLC、臺灣研華亞當模塊及自行開發(fā)的基于單片機的分析儀器,,我們選擇的軟件開發(fā)平臺是組態(tài)王軟件,。因此,實現(xiàn)單片機與組態(tài)王的數(shù)據(jù)通訊是一個必須解決的問題,。
2,、 單片機與組態(tài)王軟件通訊的解決方案
2.1兩種通訊解決方案
單片機與組態(tài)王軟件通訊的解決方案有兩種,其一是直接編寫支持單片機的驅動程序,,就象組態(tài)王支持PLC一樣,;其二是利用組態(tài)王軟件和Visual Basic都支持DDE的特點,以VB為開發(fā)平臺,,寫一個數(shù)據(jù)通訊應用程序,,一方面實現(xiàn)與單片機的連接,另一方面實現(xiàn)與組態(tài)王的動態(tài)數(shù)據(jù)交換,。
2.2兩種方案的比較
第一種方案的優(yōu)點是程序結構比較緊湊,,數(shù)據(jù)通訊效率較高;缺點是必須由對組態(tài)王軟件內核比較清楚的程序員開發(fā),,開發(fā)周期較長,。第二種方案可由一般的程序員開發(fā),缺點是數(shù)據(jù)通訊效率較低。在本項目中,,我們采用了第二種方案,。
3、 基于DDE方案的實現(xiàn)
3.1 DDE的概念
DDE是WINDOWS平臺上的一個完整通信協(xié)議,,它使應用程序能彼此交換數(shù)據(jù)和發(fā)送指令,。DDE過程可以比喻為兩人對話,一方向另一方提出問題,,然后等待回答,。提問的一方稱為“客戶”,回答的一方稱為“服務器”,。一個應用程序可以同時是“客戶”和“服務器”,當它向其他程序中請求數(shù)據(jù)是,,它充當?shù)氖?ldquo;客戶”,,若有其他程序向它提供數(shù)據(jù),它又成了“服務器”,。
3.2通訊程序的數(shù)據(jù)流向
用VB編寫的數(shù)據(jù)通訊程序作為中間者傳遞組態(tài)王與單片機之間的數(shù)據(jù),。當組態(tài)王需要向單片機發(fā)送控制命令時,組態(tài)王充當服務器向VB通訊程序提供數(shù)據(jù),,VB通訊程序再通過串口實現(xiàn)對單片機的遠程控制,;當組態(tài)王需要向單片機采集數(shù)據(jù)時,組態(tài)王充當客戶向VB通訊程序請求數(shù)據(jù),。組態(tài)王與單片機通訊的數(shù)據(jù)流向如圖1,。
3.3 代碼實現(xiàn)
1. 組態(tài)王的DDE設置
組態(tài)王的DDE對話的內容是通過三個標識名來約定的。
應用程序名(application):進行DDE對話的雙方名稱
主題(topic) :被討論的數(shù)據(jù)域
項目 (item) :被討論的特定數(shù)據(jù)對象
為了建立DDE連接,,需要在組態(tài)王的數(shù)據(jù)詞典里建立一個DDE變量,,并登記三個標識名。組態(tài)王運行系統(tǒng)的程序名是“VIEW”,,主題規(guī)定為“TAGNAME”,,項目是在定義DDE變量時定義的項目名稱。
2. VB通訊程序中的DDE設置
在VB中DDE的連接是通過控件的屬性和方法來實現(xiàn)的,。當VB充當服務器時,,需要設置LinkTopic 和LinkMode屬性;當VB充當客戶時,,需要設置LinkTopic ,,LinkItem和LinkMode屬性。例如,,VB通訊程序作為服務器時的設置如下:
Sub Form_Load()
LinkTopic=”form1”
LinkMode=1
End Sub
3. VB與單片機的通訊
在VB中可用Microsoft公司的32位串口通信控件Mscomm32.ocx實現(xiàn)與單片機的通訊,。在程序初始化時,設置Rthreshoid屬性為1,接收緩沖區(qū)接收到數(shù)據(jù)時觸發(fā)OnComm事件,,從而進行數(shù)據(jù)的接收和處理,。
Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case Mscomm EV RECEIVE
Inbuffe= MSComm1.Input
Receivedata=Inbuffe
MSComm1 Receive=False
End Select
。,。,。。,。,。。
End Sub
4,、結論
采用上述方案,,我們在“農(nóng)水實驗田環(huán)境監(jiān)測系統(tǒng)”項目中,很好地解決了組態(tài)王軟件與單片機的數(shù)據(jù)通訊,。一年來,,系統(tǒng)運行穩(wěn)定可靠,產(chǎn)生了良好的經(jīng)濟效益,。