當(dāng)前位置:首頁(yè) > 物聯(lián)網(wǎng) > 《物聯(lián)網(wǎng)技術(shù)》雜志
[導(dǎo)讀]摘 要:在現(xiàn)代控制系統(tǒng)中,上位機(jī)負(fù)責(zé)管理整個(gè)系統(tǒng)及各部分功能的實(shí)現(xiàn)、調(diào)節(jié)調(diào)度、信息處理等工作。Visual Basic是一款由微軟公司開(kāi)發(fā),用于協(xié)助開(kāi)發(fā)環(huán)境事件驅(qū)動(dòng)的編程語(yǔ)言。VB擁有圖形用戶(hù)界面(GUI)和快速應(yīng)用程序開(kāi)發(fā)(RAD)系統(tǒng),可以輕易使用DAO、RDO、ADO連接數(shù)據(jù)庫(kù),或輕松創(chuàng)建ActiveX控件。文中針對(duì)上位機(jī)開(kāi)發(fā)過(guò)程中VB與藍(lán)牙4.0通信以及VB與數(shù)據(jù)庫(kù)如何傳輸數(shù)據(jù)的問(wèn)題,采用VB語(yǔ)言編寫(xiě)了上位機(jī)與PLC的通信程序、界面程序以及上位機(jī)與數(shù)據(jù)庫(kù)的通信程序。實(shí)現(xiàn)了將電腦接收到的藍(lán)牙傳輸文件內(nèi)容顯示在VB窗口,并將數(shù)據(jù)寫(xiě)入MySQL數(shù)據(jù)庫(kù)并存儲(chǔ),及查詢(xún)MySQL數(shù)據(jù)庫(kù)已存儲(chǔ)數(shù)據(jù)等功能。

引 言

上位機(jī)又稱(chēng) PC 機(jī)或Host Computer,是可以發(fā)送控制命令的主機(jī)或計(jì)算機(jī)。下位機(jī)是指具有數(shù)據(jù)采集、數(shù)據(jù)存儲(chǔ)、傳輸控制等功能,可以直接獲取硬件設(shè)備運(yùn)行狀態(tài)數(shù)據(jù)的主機(jī),一般由PLC 和單片機(jī)組成。上位機(jī)與下位機(jī)之間是從屬關(guān)系,上位機(jī)是控制者,利用軟件程序發(fā)送相關(guān)指令給下位機(jī); 下位機(jī)是受控制者,將該指令翻譯成相應(yīng)的時(shí)序信號(hào),然后直接控制對(duì)應(yīng)設(shè)備完成用戶(hù)需要的對(duì)應(yīng)操作,同時(shí)下位機(jī)在完成對(duì)數(shù)據(jù)和硬件設(shè)備的讀取操作后,再將數(shù)據(jù)編碼傳回上位機(jī)[1,2]??傮w而言,上位機(jī)主要負(fù)責(zé)系統(tǒng)管理、調(diào)配、狀態(tài)監(jiān)控、信息處理和分析等工作,下位機(jī)主要在現(xiàn)場(chǎng)進(jìn)行數(shù)據(jù)采集和和控制。在某些特殊場(chǎng)合,上位機(jī)和下位機(jī)的控制和被控制角色可以互換。上位機(jī)和下位機(jī)之間的通信是整個(gè)控制系統(tǒng)的關(guān)鍵。

Visual Basi(cVB)6.0 是微軟公司開(kāi)發(fā)的可視化編程語(yǔ)言,是基于Windows 環(huán)境面向?qū)ο蟮膽?yīng)用程序。VB6.0 擁有強(qiáng)大的可視化用戶(hù)界面設(shè)計(jì)功能,可開(kāi)發(fā)數(shù)據(jù)庫(kù)系統(tǒng)、多媒體應(yīng)用系統(tǒng)和網(wǎng)絡(luò)應(yīng)用系統(tǒng),被廣泛應(yīng)用在控制應(yīng)用領(lǐng)域,也是使用最廣泛的編程語(yǔ)言之一 [3]。

1 底層通信設(shè)計(jì)

在本文介紹的上位機(jī)程序設(shè)計(jì)中,底層需與藍(lán)牙 4.0 匹配,并實(shí)現(xiàn)接收數(shù)據(jù),使其在可視界面上顯示等功能(VB 可調(diào)用.exe,.text 等可執(zhí)行文件,由于VB 中提供了多種對(duì)文件進(jìn)行操作的關(guān)鍵字,如本程序中用到的open 關(guān)鍵字可對(duì)文件進(jìn)行訪(fǎng)問(wèn)或創(chuàng)建操作,但僅限于文本格式,因此可對(duì)藍(lán)牙 4.0接收的電腦中的數(shù)據(jù)文本進(jìn)行讀寫(xiě)操作)。

Visual Basic 還提供了shell 函數(shù),該函數(shù)具有執(zhí)行.exe,.com,.bat 等可執(zhí)行文件,打開(kāi)文件夾、網(wǎng)址、任務(wù)管理器等, 調(diào)用系統(tǒng)軟件(計(jì)算器、筆記本、畫(huà)圖等程序),實(shí)現(xiàn)用戶(hù)注銷(xiāo)、關(guān)閉系統(tǒng)、重啟系統(tǒng)等功能。在本文底層程序設(shè)計(jì)中需要考慮如何使用VB 實(shí)現(xiàn)與藍(lán)牙 4.0 的匹配通信,當(dāng)前大部分筆記本電腦都自帶藍(lán)牙功能,但由于這些藍(lán)牙設(shè)備是硬件系統(tǒng),而 VB 只能調(diào)用軟件程序,因此 VB 無(wú)法直接調(diào)用電腦自帶的藍(lán)牙設(shè)備。為解決該問(wèn)題,我們決定在電腦上外接一個(gè)藍(lán)牙模塊,通過(guò)VB 調(diào)用外設(shè)藍(lán)牙驅(qū)動(dòng)與上位機(jī)連接的遠(yuǎn)程硬件。本程序利用 shell 函數(shù)執(zhí)行外設(shè)藍(lán)牙在電腦上自動(dòng)安裝的exe 驅(qū)動(dòng),并在可視界面上顯示藍(lán)牙配對(duì)窗口。

2 界面設(shè)計(jì)

用戶(hù)界面是應(yīng)用程序的重要組成部分,應(yīng)具有非常友好的人機(jī)界面,既方便使用,又能體現(xiàn)出絕大部分程序功能。Visual Basic 為用戶(hù)提供了如窗體、菜單、各種命令按鈕等大量控件,用戶(hù)只需使用鼠標(biāo)將這些控件拖動(dòng)到窗體相應(yīng)位置, 并對(duì)其外觀(guān)屬性進(jìn)行簡(jiǎn)單設(shè)置,便能設(shè)計(jì)出用戶(hù)所需的應(yīng)用程序界面[4]。

窗體是應(yīng)用程序的重要組成部分。在程序運(yùn)行時(shí),每個(gè)窗體都對(duì)應(yīng)一個(gè)窗口。窗體是用戶(hù)和應(yīng)用程序之間的交互接口, 是VB 中的重要對(duì)象,可作為其他控件的 父對(duì)象 。即窗體除具有自身的屬性、方法外,還可以作為其他控件的容器,在其中仿真除窗體之外的其他控件,如文本框、圖片框、按鈕等。窗體文件的擴(kuò)展名為.frm,根據(jù)其功能的不同,可以分為SDI 窗體(單文檔窗體)和 MDI 窗體(多文檔窗體)。該程序的界面設(shè)計(jì)采用多文檔窗體,可對(duì)用戶(hù)登錄界面和數(shù)據(jù)可視化界面進(jìn)行窗體操作,使得該程序更人性化和商業(yè)化。該程序界面設(shè)計(jì)如圖 1,圖 2 所示。

基于VB6.0的無(wú)線(xiàn)數(shù)據(jù)通信上位機(jī)設(shè)計(jì)與實(shí)現(xiàn)

圖 1 用戶(hù)登錄界面

基于VB6.0的無(wú)線(xiàn)數(shù)據(jù)通信上位機(jī)設(shè)計(jì)與實(shí)現(xiàn)

圖 2 數(shù)據(jù)可視化界面

3 數(shù)據(jù)庫(kù)通信設(shè)計(jì)

數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)技術(shù)在上位機(jī)應(yīng)用控制系統(tǒng)中占有非常重要的地位,是上位機(jī)應(yīng)用程序連接訪(fǎng)問(wèn)后臺(tái)數(shù)據(jù)庫(kù)的橋梁。Visual Basic 作為一種功能強(qiáng)大的桌面開(kāi)發(fā)軟件,為用戶(hù)提供了多種訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的方法。

3.1 Visual Basic訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的基本原理

Visual Basic 設(shè)計(jì)了多種訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的方法,其中接口對(duì)象法和數(shù)據(jù)控件法是最基本的兩種方式。DAO、RDO 和ADO 是最常用的訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的方法。DAO 是利用JET 數(shù)據(jù)庫(kù)引擎面向?qū)ο蟮慕涌?;RDO 是用于訪(fǎng)問(wèn)ODBC 的面向?qū)ο蟮慕涌?;ADO 是基于面向?qū)ο竽P偷脑L(fǎng)問(wèn)技術(shù),這三種方式均通過(guò)JET 數(shù)據(jù)庫(kù)引擎完成[5]。主要過(guò)程為VB 通過(guò)用戶(hù)界面向數(shù)據(jù)庫(kù)發(fā)送連接請(qǐng)求,成功連接后,數(shù)據(jù)庫(kù)對(duì)VB 發(fā)來(lái)的數(shù)據(jù)進(jìn)行分析處理和儲(chǔ)存,最后將數(shù)據(jù)處理結(jié)果返回給VB 并顯示。

3.2 關(guān)于數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)是計(jì)算機(jī)應(yīng)用系統(tǒng)中一種專(zhuān)門(mén)管理數(shù)據(jù)資源的系統(tǒng)。MySQL 是一個(gè)快速、健壯的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。MySQL 數(shù)據(jù)庫(kù)在數(shù)據(jù)存儲(chǔ)、處理、安全、功能等方面優(yōu)勢(shì)明顯, 如MySQL 的每個(gè)表可以處理多達(dá) 5 千萬(wàn)條記錄 ;MySQL 數(shù)據(jù)寫(xiě)入速度相比 SQLServe、Access 提高了約 99%,并優(yōu)化了查詢(xún)算法,減少了數(shù)據(jù)查詢(xún)用時(shí);MySQL 設(shè)置了嚴(yán)格的訪(fǎng)問(wèn)權(quán)限,以保證已存儲(chǔ)數(shù)據(jù)的安全;MySQL 提供了TCP/IP, ODBC 和JDBC 等多種數(shù)據(jù)庫(kù)連接方式。

此外,MySQL 占用磁盤(pán)空間較少,僅 100 多兆,安裝、啟動(dòng)與執(zhí)行較為方便。對(duì)于一般用戶(hù)和中小企業(yè)而言,得益于MySQL 的開(kāi)源性,大大降低了軟件開(kāi)發(fā)成本,受到了廣大使用者的歡迎[6]。

3.3 SQL語(yǔ)言

SQL 語(yǔ)言是結(jié)構(gòu)化查詢(xún)語(yǔ)言的簡(jiǎn)稱(chēng)。SQL 語(yǔ)言是當(dāng)前應(yīng)用最廣泛的數(shù)據(jù)庫(kù)查詢(xún)和程序設(shè)計(jì)語(yǔ)言,主要用于存取數(shù)據(jù)及查詢(xún)、管理和更新關(guān)聯(lián)數(shù)據(jù)庫(kù)系統(tǒng)[7]。

SQL 語(yǔ)言是高級(jí)的非過(guò)程化編程語(yǔ)言,可運(yùn)行在許多具有完全不同底層結(jié)構(gòu)的數(shù)據(jù)庫(kù)系統(tǒng)之間。SQL 語(yǔ)言具有優(yōu)秀的可移植性,基本上獨(dú)立于數(shù)據(jù)庫(kù)本身,可在不同的操作系統(tǒng)、網(wǎng)絡(luò)結(jié)構(gòu)和計(jì)算機(jī)硬件系統(tǒng)上運(yùn)行。SQL 語(yǔ)句可嵌套使用, 具有極大地靈活性。

3.4 關(guān)鍵程序設(shè)計(jì)

通過(guò)用戶(hù)界面與數(shù)據(jù)庫(kù)的交流和通信,實(shí)現(xiàn)了數(shù)據(jù)傳輸和轉(zhuǎn)化的功能。在本程序設(shè)計(jì)過(guò)程中直接操作MySQL 數(shù)據(jù)庫(kù)源碼,可實(shí)現(xiàn)上位機(jī)與數(shù)據(jù)庫(kù)引擎的鏈接,將接收的多組數(shù)據(jù)打包發(fā)送到數(shù)據(jù)庫(kù)中不同表的相應(yīng)位置。因VB 只能將數(shù)據(jù)追加至SQL 源碼,或?qū)υ创a進(jìn)行覆蓋,故在程序設(shè)計(jì)中用到了堆棧操作。堆棧采用先進(jìn)后出(FILO)的方式處理數(shù)據(jù),因?yàn)閮H讀取上一條發(fā)送的數(shù)據(jù),故使用堆棧相對(duì)于RAM 更加高效。

程序運(yùn)行流程如圖 3 所示。啟動(dòng)上位機(jī)后, 在用戶(hù)交互界面上點(diǎn)擊藍(lán)牙并成功配對(duì)后,VB 會(huì)調(diào)用shell 函數(shù)(shell Bluetooth.exe ,1)啟動(dòng)電腦上的 Bluetooth 設(shè)備界面, 程序先判斷電腦藍(lán)牙是否已與外部收集數(shù)據(jù)的硬件中的內(nèi)部藍(lán)牙完成連接,若未成功連接,則需先啟動(dòng)電腦上自帶的驅(qū)動(dòng)藍(lán)牙。藍(lán)牙連接成功后,點(diǎn)擊測(cè)量,上位機(jī)通過(guò)藍(lán)牙接收外部硬件發(fā)送的數(shù)據(jù),然后保存在堆棧與數(shù)據(jù)庫(kù)中,并顯示在交互界面的顯示屏上。上位機(jī)讀取數(shù)據(jù)后用戶(hù)將會(huì)進(jìn)行兩種操作,其一,將數(shù)據(jù)傳送到數(shù)據(jù)庫(kù)對(duì)應(yīng)表格進(jìn)行存儲(chǔ)和整理分析操作;其二,用戶(hù)調(diào)用上一條已傳送到數(shù)據(jù)庫(kù)中的數(shù)據(jù)并查看。

基于VB6.0的無(wú)線(xiàn)數(shù)據(jù)通信上位機(jī)設(shè)計(jì)與實(shí)現(xiàn)

最終效果如圖 4 所示。圖(a)所示為數(shù)據(jù)庫(kù)源碼中已存儲(chǔ)的數(shù)據(jù),圖(b)是用戶(hù)點(diǎn)擊 測(cè)量 后,將上位機(jī)接收到的數(shù)據(jù)顯示在用戶(hù)交互界面上,圖(c)是用戶(hù)點(diǎn)擊 發(fā)送 后, 上位機(jī)將新接收的數(shù)據(jù)發(fā)送到數(shù)據(jù)庫(kù)對(duì)應(yīng)表格存儲(chǔ)區(qū)域的狀態(tài)。在程序運(yùn)行中圖(a)和圖(c)不可見(jiàn)。

基于VB6.0的無(wú)線(xiàn)數(shù)據(jù)通信上位機(jī)設(shè)計(jì)與實(shí)現(xiàn)

從上位機(jī)發(fā)送數(shù)據(jù)到數(shù)據(jù)庫(kù) MySQL 源碼中特定表格位 置的程序代碼如下(利用堆棧):

基于VB6.0的無(wú)線(xiàn)數(shù)據(jù)通信上位機(jī)設(shè)計(jì)與實(shí)現(xiàn)

基于VB6.0的無(wú)線(xiàn)數(shù)據(jù)通信上位機(jī)設(shè)計(jì)與實(shí)現(xiàn)

4 結(jié) 語(yǔ)

Visual Basic 功能強(qiáng)大,用戶(hù)界面設(shè)計(jì)方便、簡(jiǎn)潔,被廣 泛應(yīng)用在數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開(kāi)發(fā)中 [7]。相比 WiFi 等無(wú)線(xiàn)通信 技術(shù),藍(lán)牙作為一種短距離無(wú)線(xiàn)通信技術(shù),具有低成本、低 功耗和低輻射等特點(diǎn),成為設(shè)計(jì)上位機(jī)短距離無(wú)線(xiàn)數(shù)據(jù)傳輸 的首選。在上位機(jī)與數(shù)據(jù)庫(kù)連接和傳輸數(shù)據(jù)的過(guò)程中,本文 將 VB6.0 與 MySQL 結(jié)合,利用堆棧原理,將數(shù)據(jù)直接傳輸 到數(shù)據(jù)庫(kù) MySQL 語(yǔ)言源碼中的特定位置,以實(shí)現(xiàn)數(shù)據(jù)庫(kù)中數(shù) 據(jù)的調(diào)用。






本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀(guān)點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉