返回主站|会员中心|保存桌面

发那科机器人(中国)服务商    

发那科工业机器人

新闻分类
  • 暂无分类
联系方式
  • 联系人:姚经理
  • 电话:18520143666
站内搜索
 
首页 > 新闻中心 > 组态王6.55 历史数据自动保存到Excel!
新闻中心
组态王6.55 历史数据自动保存到Excel!
发布时间:2025-08-24        浏览次数:14        返回列表

在组态王6.55中实现历史数据自动保存到Excel,可通过历史数据查询功能结合VBA脚本或第三方工具实现,也可利用组态王自带的报表系统数据导出插件。以下是详细步骤和注意事项:


方法一:利用组态王内置报表系统 + Excel导出

步骤1:配置历史数据记录

  1. 启用历史记录

    • 打开组态王工程,进入 “数据库” → “数据词典”

    • 选择需要记录的变量(如温度、压力等),双击变量属性,在 “记录定义” 选项卡中勾选 “数据变化记录” 或 “定时记录”(如每1分钟记录一次)。

    • 设置历史库路径(如 C:\Kingview\Project\History),确保磁盘空间充足。

  2. 创建历史数据报表

    • 参数说明:报表名称、变量名、起始时间、结束时间、时间间隔(分钟)。

    • 在开发界面中,选择 “工具” → “报表系统” → “新建报表”

    • 设计报表格式(如表格行数、列名对应变量名)。

    • 使用报表函数 ReportSetHistData2() 查询历史数据:

      sql// 示例:查询变量“Tag1”从2024-01-01到2024-01-02的历史数据ReportSetHistData2("报表1", "Tag1", "2024-01-01 00:00:00", "2024-01-02 23:59:59", 1);

步骤2:设置报表自动导出到Excel

  1. 使用“报表导出”命令

    • 进入 “数据库” → “命令语言” → “应用程序命令语言”

    • 在 “运行时” 或 “退出时” 选项卡中添加以下代码:

      c// 示例:每天24:00自动导出报表if(Hour()==0 && Minute()==0 && Second()==0) {ReportExport("报表1", "C:\\Export\\History_Data_"+StrFromTime(Now(),1)+".xls");}
    • StrFromTime(Now(),1) 获取当前日期作为文件名后缀。

    • 在组态王运行界面中,通过 “特殊功能” → “报表操作” → “报表导出” 手动导出为Excel(.xls或.csv)。

    • 自动化方案:通过 “命令语言” 编写脚本,定时触发导出:

  2. 注意事项

    • 组态王6.55默认导出为Excel 97-2003格式(.xls),若需.xlsx需升级或使用第三方工具转换。

    • 导出路径需有写入权限,避免因权限问题失败。


方法二:通过ODBC数据库接口 + Excel数据链接

步骤1:配置组态王ODBC历史库

  1. 设置ODBC数据源

    • 打开Windows “控制面板” → “管理工具” → “ODBC数据源(32位)”

    • 添加 “System DSN”,选择组态王支持的数据库类型(如Microsoft Access或SQL Server)。

    • 配置数据源名称(如Kingview_History),指向组态王历史库文件(如History.mdb)。

  2. 在组态王中关联ODBC

    • 进入 “数据库” → “历史库配置”,选择已创建的ODBC数据源。

    • 确保变量记录已写入ODBC库(检查数据词典中变量的“记录定义”选项)。

步骤2:Excel自动获取ODBC数据

  1. 使用Excel“数据”选项卡

    • 在Excel中,选择 “数据” → “获取数据” → “自其他源” → “自ODBC”

    • 选择数据源Kingview_History,输入查询SQL(如查询Tag1的历史数据):

      sqlSELECT * FROM History WHERE TagName='Tag1' AND Time >= #2024-01-01# AND Time <= #2024-01-02#
    • 将查询结果加载到Excel表格中。

  2. 设置自动刷新

    • 在Excel的 “数据” → “查询和连接” 中,右键查询结果,选择 “属性”

    • 勾选 “刷新频率”(如每30分钟刷新一次),并启用 “打开文件时刷新数据”


方法三:使用第三方工具(如KingSCADA Datalink或自定义脚本)

方案1:KingSCADA Datalink插件

  • 若组态王6.55支持Datalink插件(需确认版本兼容性),可直接配置插件将历史数据导出为Excel,支持定时任务和自定义格式。

方案2:Python脚本自动化

  1. 通过Python读取组态王历史库

    • 使用pyodbc库连接组态王ODBC历史库,查询数据并写入Excel:

      python

      import pyodbc
      import pandas as pd

      # 连接ODBC数据源
      conn = pyodbc.connect('DSN=Kingview_History;UID=;PWD=')
      query = "SELECT * FROM History WHERE TagName='Tag1' AND Time BETWEEN ? AND ?"
      params = ('2024-01-01', '2024-01-02')

      # 读取数据并保存为Excel
      df = pd.read_sql(query, conn, params=params)
      df.to_excel("C:\\Export\\History_Data.xlsx", index=False)
  2. 设置Windows任务计划

    • 将Python脚本保存为.py文件,通过Windows “任务计划程序” 设置定时执行(如每天凌晨导出)。


常见问题与解决


问题可能原因解决方案
报表导出为Excel失败路径无权限/Excel未安装检查导出路径权限;确保系统安装Excel 2003或更高版本。
ODBC查询无数据变量未记录/SQL语法错误确认变量已启用历史记录;在Access中测试SQL语句是否正确。
Python脚本报错pyodbc未安装缺少依赖库运行pip install pyodbc pandas openpyxl安装所需库。
数据导出时间滞后组态王历史库写入延迟优化变量记录频率(如从1秒改为10秒),减少数据量。



最佳实践建议

  1. 数据量控制:若历史数据量大(如每秒记录),建议按天或小时分文件导出,避免单个Excel文件过大。

  2. 备份策略:在导出脚本中添加文件备份逻辑(如保留最近7天的数据,删除旧文件)。

  3. 异常处理:在命令语言或Python脚本中添加错误日志记录,便于排查导出失败原因。

  4. 升级考虑:组态王6.55版本较旧,若条件允许,升级到更高版本(如组态王7.5 SP3)可获得更稳定的历史数据导出功能。

通过以上方法,可实现组态王6.55历史数据自动、可靠地保存到Excel,满足生产报表或数据分析需求。

收缩
  • QQ咨询

  • 电话咨询

  • 18520143666
  • 添加微信客服