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