知识讲堂|SQLite在PLCnext上的应用

供稿:菲尼克斯(中国)投资有限公司

  • 关键词:菲尼克斯,SQLite,PLCnext
  • 摘要:​SQLite是一款轻量级的开源的嵌入式数据库,是包含在C库中的关系型数据库管理系统 (RDBMS)。与许多其他客户端-服务器型数据库管理系统不同的是,SQLite不是个程序与之通信的独立进程,而是被直接嵌入到了最终程序中成为了它的一个重要组成部分。

image.png


SQLite是一款轻量级的开源的嵌入式数据库,是包含在C库中的关系型数据库管理系统 (RDBMS)。与许多其他客户端-服务器型数据库管理系统不同的是,SQLite不是个程序与之通信的独立进程,而是被直接嵌入到了最终程序中成为了它的一个重要组成部分。


SQLite是如何工作的?


SQLite 是将整个数据库(定义、表、索引和数据本身)作为单个跨平台文件存储在主机上的。它通过在写入期间锁定整个数据库的文件来实现这种简单的设计。SQLite 读取操作可以是多任务的,但写入只能按顺序执行。由于采用无服务器设计,SQLite 应用程序比客户端-服务器型数据库需要更少的配置。SQLite 被称为 zero-conf,因为它不需要服务管理(如启动脚本)或基于 GRANT 和密码的访问控制。其访问控制是通过赋予数据库文件本身的文件系统权限来处理的。


image.png


SQLite有什么特点?


SQLite作为一款相对轻型的数据库,具有体积小,性能高,可移植性强的特点。它最低只需要几百KB内存就可以正常运行,同时能以极快的运行速度在各类32位和64位OS系统中部署。


SQLite 作为 SQL 兼容的数据库管理系统(DBMS),不像大多数 SQL 数据库系统那样为列分配类型,而是使用了一个不寻常的类型系统将其分配给单独的值;在语言方面,它是动态类型的。此外,SQLite还可以将字符串插入到整数列中,使得其在绑定到动态类型的脚本语言时增加了列的灵活性。


SQLite的表单通常包括一个隐藏的 rowid 索引列,这使得更快地访问表单中的数据成为可能。比方说如果数据库中包含整数主键列,SQLite 就会将其视为 rowid 的别名来优化它,使得其内容存储为严格类型的 64 位有符号整型,并将其行为更改为自动递增列。


融合SQLite的PLCnext系列控制器


菲尼克斯PLCnext系列控制器集成了SQLite数据库功能,其可以通过DataLogger这一PLCnext系统服务组件将项目工程运行中的实时数据从全局数据空间(GDS)传输到Linux层的数据库中以进行记录和存储。


image.png



当我们启动PLCnext控制器时,Datalogger服务也将随之启动。然后DataLogger 就会以给定的采样率收集与配置的 GDS 端口的 ESM 任务同步的值,并将它们与时间戳(精确到 1 µs)一起存储到 RAM 磁盘中。


image.png


在标准设置下,数据库以 SQLite 兼容方式存储在 PLCnext 控制器上。配置变量的值保存在 SQLite 数据库内的表中。控制器上后缀为*.db的数据库文件的默认保存路径是 /opt/plcnext。由于控制器的文件系统可以通过 SFTP 协议访问,为此我们可以使用合适的 SFTP 客户端软件例如 WinSCP对这数据库文件进行进一步操作。另外,DataLogger服务既可通过配置.xml文件配置,也可以如下图所示直接在PLCnext Engineer编程软件中进行配置,变更之后的配置将在控制器重启后被激活。


image.png


在PLCnext Engineer软件PLANT窗口,双击PLCnext进入Data Logger Sessions窗口即可进行Datalogger配置。


PLCnext结合数据库的应用,


让我们可以轻松实现数据存储,


实现3T融合:


为IoT应用提供更多的解决方案!


image.png

发布时间:2022年1月24日 11:39  人气:   审核编辑(王静 )
相关链接

我有需求