999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

SQLite嵌入式數據庫在自動化生產車間中的應用

2017-12-25 18:48:46韓路平衛蒙
計算機時代 2017年12期
關鍵詞:數據庫

韓路平 衛蒙

摘 要: 為了解決自動化車間生產過程中大量實時數據的保存、處理和管理等問題,設計了生產過程數據管理系統。使用ARM WindowsCE系統的eVC開發了該系統,利用嵌入式數據庫SQLite3及多線程技術,實現了對工業生產的有效監控,達到了精細化和精確化管理的目的,提高了產品質量。

關鍵詞: 嵌入式系統; 自動化生產; 數據庫; 多線程; 數據總線

中圖分類號:TP29 文獻標志碼:A 文章編號:1006-8228(2017)12-42-04

Application of SQLite embedded database in automated production workshop

Han Luping, Wei Meng

(Electronic Engineering of Xi'an Shiyou University, Xi'an, Shaanxi 710065, China)

Abstract: In order to solve the problems of the storage, processing and management of a large number of real-time data in the production process of automated workshop, a data management system for production process is designed. The system is developed with the eVC (eMbedded Visual C++) for ARM WindowsCE, and the embedded database SQLite3 and multi-thread technology are used to realize the effective control of industrial production, so that a precise and accurate management is achieved and the quality of the products is improved.

Key words: embedded system; automated production; database; multi-thread; data bus

0 引言

工業生產現場經歷了無數記錄、人工記錄數據、自動化記錄數據和實時記錄數據等幾個發展階段,隨著數據量的不斷增加和處理復雜度的不斷提高,人們逐漸引入了數據庫,國內的科研機構通過研究推出的嵌入式數據庫有方舟公司Noahbase和人大金倉kingbase等[1-3]。當前常用的嵌入式數據庫有三種:EDB、Berkeley DB、SQLite。其中SQLite是一款專用于嵌入式系統的輕量型C語言庫,實現了獨立、可嵌入、零配置的SQL數據庫。使用SQLite時不用安裝相應的驅動,使用特定的C函數即可實現對數據庫的各種操作[4]。本系統采用 SQLilte3作為數據庫, 設計數據庫實現故障記錄、參數修改記錄和實時數據記錄的存儲和查詢,具有操作方便、查詢速度快的優點[5-6]。

1 自動化生產車間的構成

自動化生產車間,主要由執行機構、控制系統和上位系統機構成[7],其中下位機由多個相對獨立的控制系統組成,每個控制系統控制若干個執行機構,每個執行機構又由多個動力系統構成,各個控制系統來控制各自的執行機構進行生產運作;上位機系統主要由參數設置模塊、數據采集模塊、數據管理模塊、圖表分析模塊和通信模塊構成[8-9]。如圖1所示。

1.1 下位機系統的構成

下位機主要由倉管系統,物料傳輸系統,物料加工系統,故障自動修復系統,質量監測系統,產品包裝系統組成[10]。在各系統間根據不同的工作特點通過CAN總線或RS485總線進行通信,來達到各系統之間配合生產的目的。如物料加工系統在物料即將用完時,向倉管系統發送加料請求,由倉管系統將指定的物料加載到傳輸系統,然后由傳輸系統將物料運放至物料加工系統的指定位置[11]等。

控制系統的應用大大提高了各個模塊的生產效率,降低了工人的勞動強度,及時的故障修復功能和自動化的質量檢測系統將大大的提高產品的質量[12]。

1.2 上位機系統的構成

上位機主要由通信模塊,人機交互界面,數據庫,以及各類數據分析的圖表構成[13]。根據項目系統多和主從分類的特點,上位機和下位機之間采用雙總線通信方式來確保系統的高效可靠性。對于只接收命令不上傳數據的下位機系統我們用一主多從的RS485總線進行通信;對于既要接收數據又要發送實時數據的下位機系統我們采用多主的CAN總線來完成數據傳輸[14]。

上位機通過命令和參數設置界面,設置好有關數據并保存至數據庫中,以便下次直接提取下發和歷史查詢,然后通過向下位機系統下發命令幀來完成對下位機的控制,通過下發數據幀來設置生產參數,同時結合接收來自下位機的實時數據來實現對現場機器狀態和生產過程實時監控的目的[15]。在自動化的生產車間,能夠對實時數據做有效、可靠的分析和處理,將有助于工作人員評估產品質量,合理安排產量和換班時間,以及對生產設備的運行情況進行有效分析。因此,高效的數據管理是必不可少的要素,采用SQLite嵌入式數據庫。

2 SQLite嵌入式數據庫在ARM-Windows CE上移植和應用

2.1 SQLite數據庫的特點

SQLite嵌入式數據庫可以直接移植到其他的軟件中,而且都是通過API來完成對數據的所有操作,而不需要對某種語言進行解析;通過線程可以對系統的請求在第一時間做出響應;靈活性強,支持多種開發平臺,預留有靈活的開發接口;可以在很多移動設備上使用;能夠在較小的空間上完成對大規模存儲空間數據的管理[16]。

SQLite數據庫都是按照順序逐一執行的進行各種操作。頂層是標記處理器(Tokenize)和分析器(Parser)。SQLite有高度優化的代碼生成器,可以快速、高效地生產出代碼。底部經過優化的B樹有助其運行在可調整的頁面緩沖上時磁盤查找時間降低到最小[3-6]。

2.2 SQLite數據庫的移植

在eVC中配置SQLite3環境,首先通過網站獲取SQLite嵌入式數據庫開源的sqlit3.c、sqlit3.h、sqlit3.def文件,然后打開evc新建一個“WCE Dynamic-Link Library”工程,并將其命名為sqlite,選擇建立一個空的工程即選擇“An empty Windows CE DLL project”工程,將獲得的源碼中的sqlit3..c sqlit3.h sqlit3.def 文件復制到該工程文件夾下,在工程的Source Files中添加 sqlit3.c文件,在Header Files中添加sqlite3.h和sqlite3exth兩個文件,將sqlite3.def 文件添加到工程的SourceFile中去 即為 工程/設置/Link/模塊中,編譯可以生成所需要的sqlite dll文件,同樣將sqlite3.h和sqlite3.lib復制到新建立的工程的根目錄下,將文件名sqlite3.lib添加到工程/設置/Link->L對象/模塊中,導入文件sqlite3.h,用語句#include "sqlite3.h"加載到xx.h或者xx.cpp就可以正常使用SQLite數據庫了[1-2]。

2.3 數據庫建立

數據庫主要需要完成對生產參數設置信息、界面顯示設置信息[17]、工廠信息、員工打卡記錄、生產數據和報警數據的管理。功能框圖如圖3所示。

依據庫的庫、表、字段和記錄的層次關系,來完成數據庫的創建和管理任務。

首先在指定路徑中建立數據庫,通過函數GetModuleFileName()和Left()獲得需要創建數據庫文件夾的路徑szPath,并給數據庫取名szPath+=L"HLPALL.db",通過函數sqlite3_open16(szPath,&db)在指定路徑上建立名為HLPALL.DB的嵌入式工程數據庫[18]。

在該數據庫中創建數據表和它的字段,通過函數create table H_LIHEQI([id] integer PRIMARY KEY autoincrement, [No] char(1), [logtime] TIMESTAMP default (datetime ('now', 'localtime')), [RY] char(1),[NJ] integer, [CS] char(1), [GS] integer)來創建。根據分析處理數據的要求,一般將一個系統歸為一個數據表,數據表的字段除了與生產相關的各種數據外,還需要員工ID號、數據ID號、班號和數據錄入時間來區分每條記錄,方便查詢和運算分析。

向指定數據表中插入一條記錄,通過執行insert into H_LIHEQI values(100,23,0,0,0,0,0,0,0,0,0);獲取指定條件的數據通過執行select from H_LIHEQI where ID<",GET[0]=sqlite3_column_text(stmt,0)來實現。

2.4 數據庫應用問題及解決辦法

第一,對于滿足條件的數據進行逐行執行,這樣一條一條的執行數據,每一次都只執行一句,這就需要進行一些不必要的數據重復讀取操作,這樣就會耗費大量的時間,使得數據來不及處理,容易造成數據丟失、耗費時間長等問題。因為sqlite是支持事務處理的,如果你知道你要同步刪除、插入、更新很多數據,就可以把它們做成一個統一的事務。通常一次sqlite3_exec就是一次事務,如果要刪除一萬條數據,sqlite就做了一萬次:開始新事務->刪除一條數據->提交事務->開始新事務->…的過程。這個操作是很慢的。因為時間都花在了開始事務、提交事務上??梢园堰@些同類操作做成一個事務,這樣如果操作錯誤,還能夠回滾事務。事務的操作沒有特別的接口函數,它就是一個普通的sql語句而已。分別如下:

int TRT;

TRT=sqlite3_exec(db, "begin transaction", 0, 0,

&zErrorMsg); //開始一個事務

TRT=sqlite3_exec(db, "insert into DB_A values(100,20,

0,0,0,0); //第一句

TRT=sqlite3_exec(db, "insert into DB_A values(100,21,

0,0,0,0); //數據操作

TRT=sqlite3_exec(db, "insert into DB_A values(110,22,

0,0,0,0); //數據操作

TRT=sqlite3_exec(db, "insert into DB_A values(110,23,

0,0,0,0); //數據操作

……

TRT=sqlite3_exec(db, "commit transaction", 0, 0,

&zErrorMsg); //提交事務

TRT=sqlite3_exec(db, "rollback transaction", 0, 0,

&zErrorMsg); //回滾事務

這樣,數據的處理效率就會提高N倍。

第二,數據存儲和數據處理時不能做到實時更新數據,出現界面切換緩慢甚至卡死的問題。為此我們使用多線程技術,將數據庫的寫和讀放在不同的線程去,這樣就能即時的完成各種任務,而不需要相互等待。

3 應用結果

從兩方面展示設計和應用結果,一方面是數據庫的存儲結果,如圖4所示;另一方面是對數據庫數據處理的結果以圖表的方式顯示出來如圖5所示。完成了按照條件進行數據存儲和數據處理。

4 結束語

系統已經完成測試,達到了各項設計要求,在實際應用中,性能良好,數據管理可靠性較高。采用SQLite嵌入式數據庫,大大降低了系統的內存開銷,能夠完成對數據的實時跟蹤管理任務。通過對實時數據庫的數據處理和分析從而達到了對整個生產過程實時監控的目的,對提高生產效率和提高產品質量意義重大。

參考文獻(References):

[1] 王磊,郭順生,李西興,杜百崗,許文祥.基于多Agent的建材裝

備制造企業智能生產進度管控系統研究與應用[J].計算機集成制造系統,2017.23(6):1310-1319

[2] 陳培,申紅明,張會猛,楊永杰.基于ARM的線纜生產監控系

統的設計[J].現代電子技術,2017.40(8):65-68,72

[3] 黎孟雄,郭鵬飛.基于SQLite的數據庫原理自主實驗平臺設

計[J].實驗技術與管理,2016.33(11):157-160

[4] 張敏.SQLite3數據庫在WinCE系統中的應用[J]. 工業控制

計算機,2017.30(4):92-93

[5] 陳壽宏,侯杏娜,陳林艷,顏學龍.基于SQLite和SVF的邊界

掃描測試生成設計[J].計算機測量與控制,2015.23(10):3304-3306

[6] 王耀飛,李林,康衛,徐新國.實時數據庫主動計算的設計與實

現[J].電子技術應用,2014.40(8):133-135,139

[7] 吳孝玲,尹顯明.基于MES的智能生產調度系統研究與實現[J].

機械,2010.37(12):41-44

[8] 包理群,呂登峰,侯志偉.嵌入式數據庫在工業控制系統中的

應用[J].計算機應用與軟件,2014.31(2):253-255,292

[9] 王會卿,黃功軍,石愛文.全自動行車及庫區智能管理系統與

應用[J].冶金自動化,2017.41(4):13-17

[10] 王運.工業自動化儀表與自動化控制技術[J].信息記錄材料,

2017.18(4):47-48

[11] 翟桂武,潘濤.煤礦智能生產管理系統的研究與實[J].煤炭學

報,2014.39(8):1530-1538

[12] 楊文祥,陳富林.基于Arm-Linux的模塊化控制系統開發[J].

自動化與儀表,2017.32(1):16-19,33

[13] 張軍,蔣鐵登.利用EVC實現Pocket PC和工控機串行通信[J].

計算機工程與設計,2006.12:2160-2161

[14] 王蘇敬,王立德,申萍,劉彪,王永翔.列車用CAN總線應用

層協議研究與實現[J].北京交通大學學報,2008.5:102-106

[15] 張穎超,楊宇峰,葉小嶺,楊樂.基于CAN總線的溫室監測系

統的通信設計[J].控制工程,2009.16(1):103-106

[16] 林子雨,鄒權,賴永炫,林琛.關系數據庫中的關鍵詞查詢結

果動態優化[J].軟件學報,2014.25(3):528-546

[17] 張敏.基于WinCE系統的界面開發實例[J].工業控制計算

機,2017.30(3):22-23

[18] 黎孟雄,郭鵬飛.基于SQLite的數據庫原理自主實驗平臺設

計[J].實驗技術與管理,2016.33(11):157-160

猜你喜歡
數據庫
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
兩種新的非確定數據庫上的Top-K查詢
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
數據庫
財經(2015年3期)2015-06-09 17:41:31
數據庫
財經(2014年21期)2014-08-18 01:50:18
數據庫
財經(2014年6期)2014-03-12 08:28:19
數據庫
財經(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 亚洲美女视频一区| 波多野结衣无码AV在线| 欧美成人午夜影院| 麻豆国产原创视频在线播放| 亚洲欧美另类中文字幕| 日韩成人高清无码| 亚洲国产欧美自拍| 永久免费av网站可以直接看的| 亚洲第一av网站| 国产在线无码av完整版在线观看| 麻豆精选在线| 国产综合色在线视频播放线视| 国产精品视频猛进猛出| 99re免费视频| 在线毛片网站| 88国产经典欧美一区二区三区| 国产成人区在线观看视频| 操国产美女| 波多野结衣AV无码久久一区| 欧美亚洲欧美区| 55夜色66夜色国产精品视频| 亚洲国产黄色| 久久国产精品波多野结衣| 亚洲人成网站日本片| 亚洲日本在线免费观看| 黄片一区二区三区| 91精品综合| 久久精品aⅴ无码中文字幕| 97国产精品视频自在拍| 欧美日本视频在线观看| 亚洲欧美不卡视频| 亚洲女同一区二区| 精品少妇人妻无码久久| 国产一在线| 在线精品视频成人网| 亚洲AV成人一区二区三区AV| 99久久精品免费视频| 六月婷婷激情综合| 免费观看男人免费桶女人视频| 国产精品部在线观看| 国产精品yjizz视频网一二区| 91成人试看福利体验区| 国产白浆一区二区三区视频在线| 免费国产小视频在线观看| 一级不卡毛片| 国产精品无码一二三视频| 成·人免费午夜无码视频在线观看| 亚洲第一av网站| 国产精品亚洲日韩AⅤ在线观看| 国产免费黄| 国产va免费精品| 99精品在线看| 一区二区自拍| 成人在线欧美| 欧美亚洲日韩不卡在线在线观看| 色成人亚洲| 日本三级欧美三级| 亚洲浓毛av| 手机在线看片不卡中文字幕| 国产精品久久久久久久伊一| 在线综合亚洲欧美网站| 无码啪啪精品天堂浪潮av| 综合色亚洲| 四虎成人精品| 久久五月视频| 18禁色诱爆乳网站| 天天色天天操综合网| 麻豆国产在线不卡一区二区| 97亚洲色综久久精品| 视频二区亚洲精品| 国产亚洲精品资源在线26u| 亚洲最新地址| 国模视频一区二区| 国产精品国产三级国产专业不 | AV网站中文| 中美日韩在线网免费毛片视频 | 国产男女XX00免费观看| 亚洲美女视频一区| 日韩第九页| 任我操在线视频| 亚洲精品在线影院| 国产三级成人|