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

希望森兰变频器专营    

低压变频器、中压变频器、高压变频器、软启动器

联系方式
  • 联系人:吴经理
  • 电话:18576370666
新闻分类
  • 暂无分类
站内搜索
 
首页 > 新闻中心 > 组态王怎么实现一天的数据自动保存为Excel文档!
新闻中心
组态王怎么实现一天的数据自动保存为Excel文档!
发布时间:2025-12-08        浏览次数:6        返回列表

在组态王(KingView)中实现一天的数据自动保存为Excel文档,可以通过以下步骤完成,结合组态王内置的数据库功能、脚本编程以及定时任务配置:

一、核心思路

  1. 数据采集与存储:组态王实时采集设备数据并存储到内置的历史数据库(如SQL数据库或组态王自带的数据库)。

  2. 定时触发:利用组态王的定时器或系统时间判断,在每天固定时间(如午夜24:00)触发数据导出操作。

  3. 数据导出:通过组态王的脚本(如VBscript或组态王自带的命令语言)将历史数据导出为Excel格式。

  4. 文件管理:自动命名Excel文件(如按日期命名)并保存到指定路径。

二、详细实现步骤

1. 配置历史数据存储

  • 步骤

    1. 在组态王工程浏览器中,双击“数据库”下的“数据词典”,确认需要导出的变量已定义。

    2. 右键点击“历史库配置”,选择“配置历史库”,启用历史记录功能,并设置存储周期(如每分钟记录一次)。

    3. 指定历史数据存储路径(如C:\KingView\HistoryData)。

2. 创建定时触发脚本

  • 方法一:使用组态王命令语言(推荐)

    • 注意:组态王原生命令语言不支持直接导出Excel,需通过以下方式扩展功能:

    • 使用组态王ActiveX控件:插入Excel对象,通过脚本操作Excel(需安装Excel)。

    • 调用外部程序:通过RunApp命令调用自定义的导出工具(如Python脚本或C#程序)。

    • 步骤

      vbscript// 判断当前时间是否为24:00if (Hour() == 24 && Minute() == 0 && Second() == 0) {
          // 调用数据导出函数(需自定义或使用组态王扩展功能)
          ExportToExcel();
      }
    1. 在工程浏览器中,双击“命令语言”下的“应用程序命令语言”,选择“运行时”。

    2. 在“运行时”标签页中,编写以下脚本(示例为每天24:00执行):

  • 方法二:使用Windows任务计划(辅助方案)

    • 步骤

    1. 编写一个外部脚本(如Python或VBscript),用于从组态王历史数据库中读取数据并导出为Excel。

    2. 在Windows任务计划程序中设置每天24:00运行该脚本。

3. 使用ActiveX控件导出Excel(组态王内置方法)

  • 步骤

    vbscript// 获取ActiveX控件对象ExcelApp = GetObject("Excel.Application");
    ExcelWorkbook = ExcelApp.Workbooks.Open("C:\KingView\Template.xlsx"); // 打开模板文件
    ExcelSheet = ExcelWorkbook.Sheets(1);
    
    // 从历史库读取数据并填充到Excel(需自定义函数)
    FillDataFromHistory(ExcelSheet);
    
    // 保存为新文件(按日期命名)
    fileName = "C:\KingView\Data_" + StrFromDate(Date(), 0) + ".xlsx";
    ExcelWorkbook.SaveAs(fileName);
    ExcelWorkbook.Close();
    ExcelApp.Quit();
    1. 在组态王画面中插入“Microsoft Excel 报表”ActiveX控件(需安装Excel)。

    2. 右键控件,选择“属性”,配置数据源(如连接到组态王历史数据库)。

    3. 编写脚本控制Excel导出:

4. 使用组态王扩展功能(如KingHistorian)

  • 步骤

    1. 如果使用组态王的高级版(如KingView+KingHistorian),可直接通过KingHistorian的报表功能导出Excel。

    2. 在KingHistorian中配置历史数据查询,并设置定时生成报表任务,输出为Excel格式。

5. 替代方案:使用第三方工具

  • 工具推荐

    • KEPServerEX:通过OPC接口读取组态王数据,再导出为Excel。

    • WinCC Flexible:若与西门子设备配合,可使用其数据导出功能。

    • 自定义脚本:使用Python(pandas库)或C#编写数据导出程序,通过OPC或数据库接口读取组态王数据。

三、完整示例(基于组态王命令语言+外部脚本)

  1. 组态王脚本部分

    • 在“应用程序命令语言”中编写:

      vbscriptif (Hour() == 24 && Minute() == 0) {    RunApp("C:\KingView\ExportData.bat"); // 调用批处理文件
      }
  2. 批处理文件(ExportData.bat)

    batch@echo offpython C:\KingView\ExportToExcel.py %date%  // 调用Python脚本
  3. Python脚本(ExportToExcel.py)

    pythonimport pandas as pdimport sysfrom datetime import datetime# 假设从组态王历史数据库(CSV或SQL)读取数据data = pd.read_csv("C:\KingView\HistoryData.csv")  # 按日期过滤当天数据today = sys.argv[1].split('/')[0]  # 根据实际日期格式调整today_data = data[data['Timestamp'].str.contains(today)]# 保存为Excelfilename = f"C:\KingView\Data_{today}.xlsx"today_data.to_excel(filename, index=False)

四、注意事项

  1. 权限问题:确保组态王运行账户有权限写入目标文件夹。

  2. 时间同步:确保组态王服务器时间与实际时间一致。

  3. 数据量:若数据量较大,需优化导出逻辑(如分页导出)。

  4. 错误处理:在脚本中添加错误处理逻辑,避免因导出失败导致程序崩溃。

收缩
  • QQ咨询

  • 电话咨询

  • 18576370666
  • 添加微信客服