文章目录

组态王历史数据的SQL数据库存储配置

发布于 2026-03-28 14:58:49 · 浏览 10 次 · 评论 0 条

组态王历史数据的SQL数据库存储配置

在工业自动化领域,组态王(KingView)是一款广泛应用的组态软件,负责采集和监控现场设备数据。历史数据的存储与分析对于生产管理、设备维护和质量追溯至关重要。默认情况下,组态王将历史数据保存在本地文件中,这种方式在数据量较大或需要多用户共享时显得力不从心。将历史数据存储到SQL数据库中,能够实现数据的集中管理、高效查询和长期归档。本指南将详细讲解如何将组态王的历史数据存储到SQL数据库的完整配置过程。


一、准备工作

在开始配置之前,需要确保以下软硬件环境就绪:

  1. 组态王软件:已安装并正常运行,建议版本为KingView 6.55或更高版本。
  2. SQL数据库:SQL Server 2008及以上版本,或MySQL 5.7及以上版本。本指南以SQL Server为例进行说明。
  3. ODBC驱动:根据数据库类型选择对应的ODBC驱动程序。SQL Server使用SQL Server Native Client,MySQL使用MySQL ODBC Driver。
  4. 数据库管理工具:SQL Server Management Studio或Navicat,用于创建数据库和表结构。

二、创建SQL数据库和表结构

2.1 创建数据库

打开SQL Server Management Studio,连接到本地数据库实例。

执行以下SQL语句创建专用数据库:

CREATE DATABASE KingViewHistory
GO

2.2 创建历史数据表

切换到新建的KingViewHistory数据库,执行以下SQL语句创建历史数据表。组态王的历史数据通常包含时间戳、变量名、变量值三个核心字段:

CREATE TABLE HK_Data (
    ID INT IDENTITY(1,1) PRIMARY KEY,
    FieldName NVARCHAR(100) NOT NULL,
    FieldValue FLOAT NOT NULL,
    RecordTime DATETIME NOT NULL DEFAULT GETDATE()
)
GO

如果需要存储更多类型的数据,可以创建另一个表用于存储字符串类型的历史数据:

CREATE TABLE HK_DataString (
    ID INT IDENTITY(1,1) PRIMARY KEY,
    FieldName NVARCHAR(100) NOT NULL,
    FieldValue NVARCHAR(500) NOT NULL,
    RecordTime DATETIME NOT NULL DEFAULT GETDATE()
)
GO

创建索引以提高查询性能:

CREATE NONCLUSTERED INDEX IX_HK_Data_RecordTime ON HK_Data(RecordTime)
CREATE NONCLUSTERED INDEX IX_HK_Data_FieldName ON HK_Data(FieldName)
GO

三、配置ODBC数据源

ODBC(Open Database Connectivity)是组态王连接SQL数据库的桥梁,必须正确配置ODBC数据源才能实现数据存储。

3.1 打开ODBC数据源管理器

按下Win + R组合键,输入odbcad32点击确定。

3.2 添加系统DSN

在用户DSN选项卡中,点击添加按钮。

3.3 选择驱动程序

在创建新数据源窗口中,找到SQL Server Native Client(或MySQL ODBC Driver),双击选择该驱动程序。

3.4 配置数据源名称

输入数据源名称:KingViewDB

输入服务器名称:如果连接本地数据库,填写(local)localhost;如果连接远程服务器,填写服务器IP地址。

点击下一步。

3.5 身份验证设置

选择使用SQL Server身份验证。

输入登录名和密码(SA账户或具有相应权限的数据库账户)。

勾选连接SQL Server默认数据库,并选择前面创建的KingViewHistory数据库。

点击下一步,完成配置。

3.6 测试数据源

点击测试数据源按钮,确认连接成功。测试通过后,点击确定保存配置。


四、组态王中的配置

完成数据库和ODBC配置后,接下来在组态王软件中进行相应设置。

4.1 打开工程浏览器

双击组态王工程浏览器图标,打开需要配置历史数据的工程。

4.2 配置SQL访问管理器

在工程浏览器左侧目录树中,找到SQL访问管理器,双击打开配置界面。

4.3 添加ODBC数据源

在SQL访问管理器界面中,点击数据库配置按钮。

点击添加按钮,在数据源列表中选择前面配置的ODBC数据源KingViewDB。

输入访问数据库的用户名和密码,点击确定。

4.4 创建历史表模板

在SQL访问管理器中,点击表格模板配置。

点击新建按钮,创建名为HK_Data的表格模板。

添加以下字段:

字段名 数据类型 长度 描述
ID INTEGER 10 主键自增
FieldName STRING 100 变量名称
FieldValue REAL 16 变量值
RecordTime DATETIME 19 记录时间

点击保存按钮完成模板创建。

如需创建字符串类型模板,重复上述步骤,创建名为HK_DataString的表格模板,FieldValue字段类型改为STRING,长度设为500。

4.5 配置历史数据记录

在工程浏览器中,找到需要记录历史数据的变量。

双击变量,打开变量属性对话框。

勾选记录数据选项,点击设置按钮。

在历史数据记录设置窗口中,选择数据源为KingViewDB,选择表格模板为HK_Data。

设置记录方式:可选择变化时记录、定时记录或变化且定时记录。

  • 变化时记录:仅当变量值发生变化时存储数据
  • 定时记录:按照设定的时间间隔固定存储数据
  • 变化且定时记录:结合上述两种方式,优先采用变化记录,必要时补充定时记录

点击确定保存设置。


五、验证配置效果

5.1 启动运行系统

在工程浏览器中,点击菜单栏的运行按钮,启动组态王运行系统。

5.2 触发数据记录

等待手动操作使配置的变量值发生变化、定时时间到达,观察系统是否正常记录数据。

5.3 查询数据库

打开SQL Server Management Studio,执行以下查询语句验证数据是否成功写入:

SELECT TOP 100 * FROM KingViewHistory.dbo.HK_Data
ORDER BY RecordTime DESC

如果查询结果中显示变量名称、变量值和记录时间,说明配置成功。


六、常见问题与处理

6.1 ODBC连接失败

如果测试ODBC数据源时提示连接失败,检查以下几点:

  • SQL Server服务是否已启动
  • 用户名和密码是否正确
  • 数据库实例名称是否填写正确
  • 防火墙是否阻止了数据库端口(默认1433)

6.2 数据写入失败

如果组态王运行正常但数据库中无数据,排查以下原因:

  • 表格模板字段与数据库表字段是否完全匹配
  • 数据库用户是否具有写入权限
  • ODBC数据源是否正确选择
  • 变量是否已正确配置历史记录

6.3 数据量过大性能下降

当历史数据积累过多时,查询速度会明显下降。建议定期清理历史数据,或采用数据分区表、归档表等方式优化存储结构。


完成上述所有步骤后,组态王即可将历史数据自动存储到SQL数据库中。通过数据库管理工具,可以方便地对历史数据进行查询、统计和导出,为生产分析和决策提供可靠的数据支持。

评论 (0)

暂无评论,快来抢沙发吧!

扫一扫,手机查看

扫描上方二维码,在手机上查看本文