SQLite是一款輕量級的開源的嵌入式數(shù)據(jù)庫,是包含在C庫中的關(guān)系型數(shù)據(jù)庫管理系統(tǒng) (RDBMS)。與許多其他客戶端-服務(wù)器型數(shù)據(jù)庫管理系統(tǒng)不同的是,SQLite不是個程序與之通信的獨立進程,而是被直接嵌入到了最終程序中成為了它的一個重要組成部分。
SQLite是如何工作的?
SQLite 是將整個數(shù)據(jù)庫(定義、表、索引和數(shù)據(jù)本身)作為單個跨平臺文件存儲在主機上的。它通過在寫入期間鎖定整個數(shù)據(jù)庫的文件來實現(xiàn)這種簡單的設(shè)計。SQLite 讀取操作可以是多任務(wù)的,但寫入只能按順序執(zhí)行。由于采用無服務(wù)器設(shè)計,SQLite 應(yīng)用程序比客戶端-服務(wù)器型數(shù)據(jù)庫需要更少的配置。SQLite 被稱為 zero-conf,因為它不需要服務(wù)管理(如啟動腳本)或基于 GRANT 和密碼的訪問控制。其訪問控制是通過賦予數(shù)據(jù)庫文件本身的文件系統(tǒng)權(quán)限來處理的。
SQLite有什么特點?
SQLite作為一款相對輕型的數(shù)據(jù)庫,具有體積小,性能高,可移植性強的特點。它最低只需要幾百KB內(nèi)存就可以正常運行,同時能以極快的運行速度在各類32位和64位OS系統(tǒng)中部署。
SQLite 作為 SQL 兼容的數(shù)據(jù)庫管理系統(tǒng)(DBMS),不像大多數(shù) SQL 數(shù)據(jù)庫系統(tǒng)那樣為列分配類型,而是使用了一個不尋常的類型系統(tǒng)將其分配給單獨的值;在語言方面,它是動態(tài)類型的。此外,SQLite還可以將字符串插入到整數(shù)列中,使得其在綁定到動態(tài)類型的腳本語言時增加了列的靈活性。
SQLite的表單通常包括一個隱藏的 rowid 索引列,這使得更快地訪問表單中的數(shù)據(jù)成為可能。比方說如果數(shù)據(jù)庫中包含整數(shù)主鍵列,SQLite 就會將其視為 rowid 的別名來優(yōu)化它,使得其內(nèi)容存儲為嚴格類型的 64 位有符號整型,并將其行為更改為自動遞增列。
融合SQLite的PLCnext系列控制器
菲尼克斯PLCnext系列控制器集成了SQLite數(shù)據(jù)庫功能,其可以通過DataLogger這一PLCnext系統(tǒng)服務(wù)組件將項目工程運行中的實時數(shù)據(jù)從全局數(shù)據(jù)空間(GDS)傳輸?shù)絃inux層的數(shù)據(jù)庫中以進行記錄和存儲。
當我們啟動PLCnext控制器時,Datalogger服務(wù)也將隨之啟動。然后DataLogger 就會以給定的采樣率收集與配置的 GDS 端口的 ESM 任務(wù)同步的值,并將它們與時間戳(精確到 1 μs)一起存儲到 RAM 磁盤中。
在標準設(shè)置下,數(shù)據(jù)庫以 SQLite 兼容方式存儲在 PLCnext 控制器上。配置變量的值保存在 SQLite 數(shù)據(jù)庫內(nèi)的表中。控制器上后綴為*.db的數(shù)據(jù)庫文件的默認保存路徑是 /opt/plcnext。由于控制器的文件系統(tǒng)可以通過 SFTP 協(xié)議訪問,為此我們可以使用合適的 SFTP 客戶端軟件例如 WinSCP對這數(shù)據(jù)庫文件進行進一步操作。另外,DataLogger服務(wù)既可通過配置.xml文件配置,也可以如下圖所示直接在PLCnext Engineer編程軟件中進行配置,變更之后的配置將在控制器重啟后被激活。
在PLCnext Engineer軟件PLANT窗口,雙擊PLCnext進入Data Logger Sessions窗口即可進行Datalogger配置。
PLCnext結(jié)合數(shù)據(jù)庫的應(yīng)用,
讓我們可以輕松實現(xiàn)數(shù)據(jù)存儲,
實現(xiàn)3T融合:
為IoT應(yīng)用提供更多的解決方案!