自在自线亚洲а∨天堂在线-中文字幕一区视频播放-扒开双腿猛进入喷水高潮叫声-欧美日本亚洲一区二区-老熟妇高潮偷拍一区二区-国产精品高清一区二区不卡-午夜色福利视频一区二区三区-亚洲国产成人精品福利在线观看-亚洲欧美成人一区二区在线电影

當前位置:機電之家首頁 >> PLC技術(shù)>> PLC文案資料 >> PLC論文 >> 嵌入式數(shù)據(jù)庫SQLite在電梯B/S監(jiān)控中的應(yīng)用
嵌入式數(shù)據(jù)庫SQLite在電梯B/S監(jiān)控中的應(yīng)用

摘要:提出了在電梯嵌入式監(jiān)控中使用SQLite數(shù)據(jù)庫的方案。在介紹SQLite的特點及監(jiān)控方案整體結(jié)構(gòu)的基礎(chǔ)上,以電梯B/S監(jiān)控CGI程序訪問數(shù)據(jù)庫為例,著重介紹了SQLite的用法,最后介紹了基于三星2410的監(jiān)控終端硬件平臺。

關(guān)鍵詞:嵌入式數(shù)據(jù)庫SQLite B/S監(jiān)控S3C2410

基于嵌入式的B/S監(jiān)控方案由于其成本低、體積小、使用方便,越來越受到工程技術(shù)人員的關(guān)注。與此同時,在設(shè)備的嵌入式B/S遠程監(jiān)控、故障診斷中需交換的數(shù)據(jù)越來越多,對數(shù)據(jù)庫的要求越來越高。傳統(tǒng)的桌面數(shù)據(jù)庫建立的開發(fā)模型是數(shù)據(jù)庫控制應(yīng)用程序,需要專九的管理和配置,使用復(fù)雜、體積大、不便于移植。因此,對適合嵌入式的數(shù)據(jù)庫的研究已成為數(shù)據(jù)庫領(lǐng)域一個新的研究方向。

在小區(qū)或樓宇的電梯監(jiān)控中,大多是基于PC機的C/S或B/S監(jiān)控。一種是利用CAN總線或電話闡絡(luò)接入PC機,采用電梯監(jiān)控采集卡向下通過CAN總線與電梯通信,向上通過RS232接口接入PC機。一種是采用以太網(wǎng)的SOCKET方式,由PC機實現(xiàn)B/S或C/S監(jiān)控。這些方案運用傳統(tǒng)的桌面數(shù)據(jù)庫來實現(xiàn)基于PC機的C/S或B/S監(jiān)控,功能相對強大,但成本較高。在智能下移、以太網(wǎng)應(yīng)用到設(shè)備層的趨勢下,研究嵌入式數(shù)據(jù)庫在電梯B/S監(jiān)控中的應(yīng)用是非常有意義的。

1 SQLile數(shù)據(jù)庫簡介

SQLite是由D.Riehard Hipp于2000年編寫的執(zhí)行自容納、可嵌入、零配置數(shù)據(jù)庫引擎的小型C庫。它支持多數(shù)SQL92標準,可以在所有主要的操作系統(tǒng)上運行,并且支持大多數(shù)計算機語言。其作為PHP V4.3中的一個選項引入,已構(gòu)建在PHP V5中,比MySQL快2倍以上,且完全開放。SQLite雖然比Berkeley DB功能稍弱,但是Berkeley DB不支持SQL,體積比SQLite大,在某些商業(yè)應(yīng)用上不是免費的,況且在開源社區(qū)的推動下SQLite的功能在增強,因此SQLite正在成為受歡迎的開源數(shù)據(jù)庫之一。

嵌入式數(shù)據(jù)庫來自于其嵌入式運行模式,它使用精簡代碼編寫,零配置,直接在應(yīng)用程序進程中運行,并且占用資源非常少。嵌入式數(shù)據(jù)庫系統(tǒng)沒有管理員,具有自調(diào)節(jié)和自適應(yīng)能力,能夠“無處不在”。SQLite是一個非常適合嵌入式應(yīng)用的數(shù)據(jù)庫,這可以從其設(shè)計的目的和獨特的特點看出。SQLite設(shè)計的主要目的是簡單:簡單的管理、簡單的操作、簡單地嵌入、簡單的維護。SQLite的特征如下:

(1)零配置。SQLite在使用前不需要安裝設(shè)置,不需要進程來啟動、停止或配置,不需要管理員去創(chuàng)建新數(shù)據(jù)庫或分配用戶權(quán)限,在系統(tǒng)崩潰或失電之后自動恢復(fù)。

(2)無服務(wù)器。大多數(shù)SQL數(shù)據(jù)庫引擎是作為一個單獨的服務(wù)器進程被執(zhí)行。訪問數(shù)據(jù)庫的程序使用某種內(nèi)部進程通信(典型的是TCP/IP)與服務(wù)器通信,完成發(fā)送請求到服務(wù)器和接收查詢結(jié)果的工作。SQLite不采用這種工作方式。使用SQLite時,訪問數(shù)據(jù)庫的程序直接從磁盤上的數(shù)據(jù)庫文件讀寫,沒有中間的服務(wù)器進程。

(3)精簡性。當尺寸優(yōu)化后,在不減少功能的情況下,整個SQLite庫小于225KB。如果在編譯時去掉一些不需要的特性,庫的大小能被減小到170KB。IBM最新發(fā)行的CloudScape數(shù)據(jù)庫引擎是2MB的罐文件,壓縮后仍比SQLite大10倍;Firefox宣稱其客戶訂制的庫只有350KB,但是不包括數(shù)據(jù)庫引擎;來自Sleepycat的Berkeley DB庫是450KB,并且刪去了SQL支持。通過比較可知:SQLite非常小。

(4)簡單的訪問。一個SQtjte數(shù)據(jù)庫是一個單獨的普通磁盤文件,能夠被定位在路徑層次的任何地方。如果SQLite能讀寫磁盤文件,則它也能訪問數(shù)據(jù)庫。大多數(shù)SOL數(shù)據(jù)庫引擎趨向于把數(shù)據(jù)存為一個大的文件集合,通常這些文件在一個標準的定位中,只有數(shù)據(jù)庫引擎本身能訪問它。

(5)可變長度的記錄。一般的SQL數(shù)據(jù)庫引擎在表中為每一個記錄分配一個固定的磁盤空間數(shù),SQLite只使用一個記錄中實際存儲信息的磁盤空問數(shù)。顯然,這會使數(shù)據(jù)庫非常小,同時,由于在磁盤上移動的信息很少,也使數(shù)據(jù)庫很快。

SQLite不僅小、快,而且簡單、可靠,這是它受歡迎的主要原因。對于嵌入式場合,管理、執(zhí)行、維護的簡單化比企業(yè)數(shù)據(jù)庫引擎提供的許多復(fù)雜應(yīng)用更重要,因此SQLite數(shù)據(jù)庫是一個很好的選擇。

2 電梯嵌入式B/S監(jiān)控系統(tǒng)的整體結(jié)構(gòu)

本監(jiān)控系統(tǒng)分為兩層:嵌入式終端、遠方樓宇中心或電梯公司的監(jiān)測中心。監(jiān)控軟件的主要功能是:與電梯通信接口通信,采集電梯運行狀態(tài)和故障數(shù)據(jù)并存入數(shù)據(jù)庫;對故障報警優(yōu)先處理,自動發(fā)短信至維保人員手機,并將現(xiàn)場數(shù)據(jù)實時存人數(shù)據(jù)庫,以便進一步故障分析和統(tǒng)計。數(shù)據(jù)庫成為連接前后臺的中間件,存儲狀態(tài)數(shù)據(jù)供B/S遠程監(jiān)控和本地LCD顯示,同時接收瀏覽器和本地鍵盤輸入,由通信程序、CGI程序完成控制命令的下傳及運行狀態(tài)的上傳;同時數(shù)據(jù)庫還實現(xiàn)故障的分析統(tǒng)計和查詢。軟件程序主要分為四個模塊:與電梯接口的CAN/RS485通信程序,GPRS故障報警程序,本地的人機交互程序,遠程B/S監(jiān)控程序。

3 嵌入式數(shù)據(jù)庫SQLite的應(yīng)用

3.1 SOtite的C語言API函數(shù)

嵌入式數(shù)據(jù)庫SQLite的C語言API以下面三個核心函數(shù)為基礎(chǔ):




其中,前兩個函數(shù)用于打開與關(guān)閉數(shù)據(jù)庫,sqlite_exec函數(shù)用來處理SQL查詢,它含有五個參數(shù):

(1)調(diào)用sqlite_open函數(shù)獲得的數(shù)據(jù)庫結(jié)構(gòu)的指針。

(2)容納了一個或更多SQL語句的字符串。

(3)指向Callback函數(shù)的指針,查詢結(jié)果的每一條記錄都調(diào)用該函數(shù)。

(4)成為Callback函數(shù)第一個參數(shù)的指針。

(5)指向錯誤串的指針。

其中,Callback函數(shù)由用戶編寫,用來接收查詢結(jié)果,查詢結(jié)果的每一條記錄都會調(diào)用Callback函數(shù)一次,其原型為:



其中,第一個參數(shù)接收客戶代碼的任意信息;第二個參數(shù)是字段數(shù);第三個參數(shù)是一個字符串數(shù)組,每一個串是記錄的一個字段值;第四個參數(shù)是字段名。Callback函數(shù)是用戶根據(jù)應(yīng)用編寫的,正常應(yīng)返回0。如果Callback函數(shù)非0,則查詢失敗。

此外,一些擴展的API提供了有用的接口函數(shù)。這里著重介紹sqlite_exec_printf()。




它與sqlite_exe一樣執(zhí)行同樣的查詢功能,但采用printf-style格式的字符串代替完整的SQL語句。作為第二個參數(shù),這個格式串產(chǎn)生SQL語句,并且在函數(shù)結(jié)尾可以綁定任意參數(shù)。使用sqlite_exec_printf函數(shù)的好處是:(1)sqlite_exec_printf為了容納產(chǎn)生的SQL語句,通常會分配足夠的緩存,因此不會產(chǎn)生靜態(tài)緩存溢出的危險;(2)擴展了%Q和%q兩個新格式以支持SQL中的串值。

3.2 SQLite在電梯監(jiān)控中的應(yīng)用

在電梯的B/S監(jiān)控中,電梯的運行狀態(tài)需要在瀏覽器端實時顯示,實時記錄故障信息,并能統(tǒng)計查詢,同時通過客戶瀏覽器進行一些控制和參數(shù)設(shè)置。因此對數(shù)據(jù)庫的訪問有上端的以太網(wǎng)通信程序和下端的CAN/RS485通信程序。這里著重討論以太網(wǎng)通信程序。下面以電梯故障查詢中CGI程序訪問數(shù)據(jù)庫為例說明SQLite數(shù)據(jù)庫Callback函數(shù)、API函數(shù)的用法。Canback函數(shù)編寫如下:




C語言編制的CGI程序中用SQLite的API函數(shù)調(diào)用Callback函數(shù)的關(guān)鍵語句為:




4 運行測試

本監(jiān)控終端的硬件核心板采用華恒公司的HHARM2410-Kl,包括CPU模塊、Flash、SDRAM存儲部分。底板主要包括LCD及鍵盤、CAN/RS485通信模塊、以太網(wǎng)控制芯片、GPRS模塊等。核心板CPU采用三星公司2410芯片。2410芯片基于ARM920T內(nèi)核,ARM920T核由ARM9TDMI、存儲管理單元MMU和高速緩存三部分組成,運行頻率可達203MHz。MMU管理虛擬內(nèi)存,實現(xiàn)虛擬地址物理地址的轉(zhuǎn)換。與μCLinux相比,在ARM-Linux下可簡單地開發(fā)更強大的嵌入式程序。CAN總線通信芯片采用Microchip公司的MCP2510。它支持CAN2.OA、CAN2.OB兩種模式,與CAN總線通信能力更強。與國內(nèi)常用的SJAl000相比,MCP2510數(shù)據(jù)吞吐率高,使用簡單。

從www.sqlite.org下載源代碼包,本文選擇sqlite2.8.16并移植到ARM平臺。移植時采用army41unknown-linux編譯工具。移植時,在環(huán)境變量中要加入工具鏈的路徑,否則,即使Makefile文件指定絕對路徑,make時也會報錯。若采用靜態(tài)鏈接,strip過的庫,也可以使一個CGI程序達600KB,而采用動態(tài)鏈接只有十幾KB。為了使CGI程序不太大,采用了動態(tài)鏈接。WebServer選用boa,它支持認證及CGi,源碼開放易于移植,適合嵌入式應(yīng)用。用CGI應(yīng)用程序制作ramdisks映像,通過tftp下載燒寫到板子上,設(shè)置目標板的靜態(tài)IP為202.196.9.16,在宿主機上通過瀏覽器訪問目標板,CGI程序能正常訪問數(shù)據(jù)庫,監(jiān)控界面運行正常。調(diào)試時要注意幾個問題:(1)庫要燒寫到板子上,否則即使調(diào)試好的程序在用nfs調(diào)試時,瀏覽器仍會報錯;(2)要根據(jù)boa.conf文件放置好CGI程序和HTML文件路徑;(3)調(diào)試時注意權(quán)限;(4)sqlite.so、sqlite.so.0、sqlite.so.0.8.6要放入板子/lib目錄。

嵌入式數(shù)據(jù)庫SQLite在電梯遠程監(jiān)控中的應(yīng)用,實現(xiàn)了電梯的嵌入式B/S監(jiān)控,符合監(jiān)控系統(tǒng)e網(wǎng)到底、成本低廉、界面友好、升級維護方便的趨勢,對于設(shè)備的嵌入式網(wǎng)絡(luò)化遠程監(jiān)控和故障診斷具有重要的意義。同時為Web Services技術(shù)在工控領(lǐng)域的應(yīng)用奠定了基礎(chǔ)。
作者:未知 點擊:766次 [打印] [關(guān)閉] [返回頂部]
本文標簽:嵌入式數(shù)據(jù)庫SQLite在電梯B/S監(jiān)控中的應(yīng)用
* 由于無法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報酬未能及時支付,在此深表歉意,請《嵌入式數(shù)據(jù)庫SQLite在電梯B/S監(jiān)控中的應(yīng)用》相關(guān)權(quán)利人與機電之家網(wǎng)取得聯(lián)系。
電子樣本

SN系列樣冊
:鞏經(jīng)理
:13915946763
:南京塞姆泵業(yè)有限公司
個人求購

鄔經(jīng)理 【求購】  LED分析...  2026-4-10
李先生 【求購】  綜合微機保...  2026-4-10
王坤 【求購】  石英碎片  2026-4-9
陳經(jīng)理 【求購】  攪拌設(shè)備的...  2026-4-9
周經(jīng)理 【求購】  遠大流量計  2026-4-9
蔡經(jīng)理 【求購】  歐姆龍傳感...  2026-4-8
呂經(jīng)理 【求購】  二手伺服變...  2026-4-8
曾經(jīng)理 【求購】  金龍羽電線  2026-4-8
VIP公司推薦