本設(shè)計(jì)的整體結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)整體結(jié)構(gòu)
1.PC機(jī)監(jiān)控軟件的設(shè)計(jì)
(1)首先完成組態(tài)王和VB的DDE對(duì)話。
動(dòng)態(tài)數(shù)據(jù)交換(DDE)是Windows平臺(tái)下的一個(gè)完整的通訊協(xié)議,它使應(yīng)用程序間能彼此交換數(shù)據(jù)和發(fā)送指令。要實(shí)現(xiàn)DDE對(duì)話需進(jìn)行如下幾步的工作:①設(shè)計(jì)VB控制界面,包括采集數(shù)據(jù)、開關(guān)狀態(tài)等文本框。編寫VB在DDE對(duì)話上的程序。并生成tx1.exe文件。②用組態(tài)王設(shè)計(jì)用戶界面,包括菜單、封面、監(jiān)視控制、報(bào)警等。在組態(tài)王中新建一個(gè)DDE設(shè)備,命名為tx1,服務(wù)器的名稱為VB程序窗體的名稱,建立一系列需要與VB進(jìn)行數(shù)據(jù)交換的I/O變量,其設(shè)備為tx1,寄存器類型為VB程序中對(duì)應(yīng)文本框的名稱。③系統(tǒng)要求以組態(tài)王進(jìn)行監(jiān)控,VB程序隱藏于后臺(tái)執(zhí)行,將VB應(yīng)用程序窗體的Visible屬性設(shè)為False,在編寫組態(tài)王的啟動(dòng)時(shí)應(yīng)用程序命令語(yǔ)言,用StartApp函數(shù)啟動(dòng)VB程序,在用RebuildDDE函數(shù)重新建立DDE對(duì)話。
到此完成了DDE對(duì)話,而面向操作人員的只是組態(tài)王設(shè)計(jì)的畫面,如圖2所示。
800)this.width=800" border="0" />
圖2 監(jiān)視控制界面
(2)其次完成組態(tài)王數(shù)據(jù)庫(kù)的訪問(wèn)。本設(shè)計(jì)采用Access數(shù)據(jù)庫(kù),建立“my.mdb”數(shù)據(jù)庫(kù),并在計(jì)算機(jī)上配置好數(shù)據(jù)源。該數(shù)據(jù)庫(kù)存放的是火情報(bào)警的歷史記錄。此系統(tǒng)在數(shù)據(jù)庫(kù)上有以下功能:①系統(tǒng)啟動(dòng)時(shí),可自行建立表格。②實(shí)時(shí)記錄報(bào)警。在報(bào)警出現(xiàn)時(shí)使用組態(tài)王提供的函數(shù),將數(shù)據(jù)寫入所連接的數(shù)據(jù)庫(kù)中指定的表格。③按照選擇日期條件顯示符合日期的歷史報(bào)警數(shù)據(jù)。為了方便使用,系統(tǒng)中使用組態(tài)王提供的KVDBGrid控件,設(shè)置好該控件的屬性,就可以實(shí)時(shí)顯示所連接的數(shù)據(jù)庫(kù)的數(shù)據(jù)情況。查詢所使用的控件是組態(tài)王提供的日期控件。在進(jìn)行歷史數(shù)據(jù)查詢時(shí),可以根據(jù)所選擇的日期條件顯示出對(duì)應(yīng)的歷史數(shù)據(jù)。
2.1無(wú)線串口通信的實(shí)現(xiàn)
(1) 首先制作RS-232電平和TTL電平的雙向轉(zhuǎn)換電路。由于PC機(jī)使用
圖3 MAX232電平轉(zhuǎn)換電路
表1 PC機(jī)→機(jī)器人串口通信協(xié)議
| bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 | |
| 0XAB | |
| 0XCD |
| | | | 手動(dòng)或自動(dòng) | 車是否向前 | 車是否后退 | 車是否向左轉(zhuǎn) | 車是否向右轉(zhuǎn) | |
| PID參數(shù)(K) | |
| PID參數(shù)(Ti) |
| PID參數(shù)(Td) |
| SUM CHECK(低字節(jié)在先) | |
out_Send[7] |
表2 機(jī)器人→PC機(jī)串口通信協(xié)議
| bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 | |
| 0XAB | |
| 0XCD |
| | | | | | | | | |
| | | | | | | | |
| 左輪脈沖計(jì)數(shù)(低字節(jié)) | |
| 左輪脈沖計(jì)數(shù)(高字節(jié)) |
| 右輪脈沖計(jì)數(shù)(低字節(jié)) |
| 右輪脈沖計(jì)數(shù)(高字節(jié)) |
| 指南針與車所成角度 |
| SUM CHECK(低字節(jié)在先) | |
| | | | | | | | | | |