昆仑通态触摸
MCGSPro U盘导出 CSV格式 时间查询
为什么要掌握历史记录导出?
在工业现场,历史数据是故障分析、生产追溯、质量管控的核心依据。昆仑通态(MCGS)触摸屏支持将采集到的生产数据永久存储,并通过简单操作将数据导出为 CSV 文件保存至 U 盘,方便工程师带回电脑分析。本文详细介绍从软件组态配置 → 触摸屏操作 → U盘导出的完整流程。
① 准备工作
触摸屏型号支持 TPC 系列全系(TPC7022、TPC1031Kt 等),运行 MCGSPro 嵌入版固件 | U盘要求必须为 FAT32 格式,容量 2GB~32GB,插入触摸屏侧面 USB 接口 |
️ 组态软件电脑端使用 MCGSPro 3.5 及以上版本,用于编写脚本并下载至触摸屏 | 数据存储前提需提前在组态中正确配置存盘属性,报警变量须勾选"自动保存" |
️ U盘格式必须是 FAT32!NTFS 格式的 U 盘无法被 MCGS 触摸屏识别,导出将失败。可在 Windows 资源管理器右键 U 盘 → 格式化 → 选择 FAT32。 |
② 实时数据库配置
在 MCGSPro 软件中设置存盘变量组
STEP 01 新建组对象并配置变量
【1】打开 MCGSPro 软件,进入【实时数据库】标签页
【2】点击"新增对象" → 对象类型选择"组对象",命名为 sjsave
【3】建立需采集的数据变量:Data1~Data4(浮点数),Time1、Time2(字符串,用于时间查询)
【4】将 Data1~Data4 添加为 sjsave 组对象的成员,点击"添加"确认关联
时间变量格式要求:Time1 和 Time2 的初始值格式必须为 2001-01-01 03:15:28,否则时间查询将无法正常筛选。 |
STEP 02 设置存盘属性
【1】双击组对象 sjsave 打开属性设置对话框
【2】存储类型选择"永久存储"(数据断电后仍保留)
【3】自动存储模式:存储周期设为 1S(每秒自动存一条)
【4】手动存储模式:存储周期设为 0,由脚本按钮触发存储
配置完成后,触摸屏运行时会自动将数据按周期存入内部存储,断电不丢失,最多可保存数十万条记录。 |
③ 报警历史记录配置
如需导出历史报警记录,必须勾选"自动保存"
【1】在实时数据库中找到需要记录报警的变量(如 M1000~M1009)
【2】双击变量 → 进入"报警属性"标签页
【3】【关键!】必须勾选"自动保存"复选框,否则历史报警导出为空
【4】设置报警值、报警类型后点击确认
最常见错误!如果导出后 CSV 文件报警内容为空,99% 是因为没有勾选"自动保存"。请务必逐个检查每个报警变量的该选项。 |
④ 历史查询画面组态设计
在触摸屏界面设计查询表格与操作按钮
STEP 03 添加"存盘数据浏览"控件
【1】在 MCGSPro 中新建或打开历史查询窗口
【2】从工具栏选择"存盘数据浏览"控件,拖入窗口并调整大小
【3】双击控件属性:数据来源 选择组对象 sjsave
【4】时间条件 选"按变量设置的时间范围",开始时间绑定 Time1,结束时间绑定 Time2
【5】日期列的数据格式改为"日期时间"格式显示
STEP 04 添加时间输入控件与查询按钮
【1】添加 2 个"输入控件",分别关联 Time1(开始时间)和 Time2(结束时间)
【2】添加"查询刷新"按钮,按下脚本填写:窗口0.控件1.Refresh()
【3】添加"导出U盘"按钮,按下脚本填写导出脚本(见下方)
【4】在实时数据库新增"进度"和"控制"两个整数型变量,并添加显示标签
⑤ 按钮脚本编写
核心导出函数 !ExportHisDataToCSV 详解
查询刷新按钮脚本
查询刷新按钮脚本
'--- 拼接开始时间 --- InputSTime = !Str(Syear)+"-"+!Str(Smonth)+"-"+!Str(Sday)+" "+!Str(Shour)+":"+!Str(Sminute)+":"+!Str(Ssecond) '--- 拼接结束时间 --- InputETime = !Str(Eyear)+"-"+!Str(Emonth)+"-"+!Str(Eday)+" "+!Str(Ehour)+":"+!Str(Eminute)+":"+!Str(Esecond) '--- 刷新历史浏览控件 --- main.控件6.Refresh( ) |
导出历史数据到U盘脚本
导出历史数据到U盘脚本(ExportHisDataToCSV)
Dim 文件名称 As STRING '--- 拼接时间范围变量 --- InputSTime = !Str(Syear)+"-"+!Str(Smonth)+"-"+!Str(Sday)+" "+!Str(Shour)+":"+!Str(Sminute)+":"+!Str(Ssecond) InputETime = !Str(Eyear)+"-"+!Str(Emonth)+"-"+!Str(Eday)+" "+!Str(Ehour)+":"+!Str(Eminute)+":"+!Str(Esecond) '--- 自动生成带日期的文件名 ---文件名称 = "/usb harddisk/"+!Str(Year)+"年"+!Str(Month)+"月"+!Str(Day)+"日"+!Str(Hour)+"时"+!Str(Minute)+"分数据.CSV" '--- 执行导出 --- Ret = !ExportHisDataToCSV(文件名称,"sjsave","MCGS_Time,Data1,Data2,Data3,Data4",InputSTime,InputETime,20000,1,"",进度,控制) |
<b> 导出历史报警记录到U盘脚本
导出历史报警记录(HistoryAlarm)
'--- 参数2固定写 Mcgs_HistoryAlarm --- !ExportHisDataToCSV("报警导出.csv","Mcgs_HistoryAlarm","","2026/01/01 0:0:0","2026/12/31 23:59:59",5000,1,"",进度,控制) |
<b>⑥ !ExportHisDataToCSV 函数10个参数详解
参数 | 类型 | 说明 |
参数1 | 字符串 | 导出文件名,以 /usb harddisk/ 开头即存到U盘 |
参数2 | 字符串 | 导出对象名,数据填组对象名;报警固定填 Mcgs_HistoryAlarm |
参数3 | 字符串 | 指定导出的列名,留空 "" 表示导出全部列 |
参数4 | 字符串 | 起始时间(格式:yyyy/MM/dd H:m:s) |
参数5 | 字符串 | 结束时间(格式同上) |
参数6 | 整数 | 最多导出记录条数,超出后停止(建议 20000) |
参数7 | 整数 | 1=覆盖已有文件;2=追加到文件末尾 |
参数8 | 字符串 | 保留参数,直接留空 "" |
参数9 | 整数变量 | 已导出条数;异常时显示错误码(见下表) |
参数10 | 整数变量 | 导出中自动置 0;完成自动置 1 |
⑦ 触摸屏现场操作流程
程序下载后的实际操作步骤(按顺序执行)
| 下载组态程序至触摸屏 | 通过以太网或USB数据线下载 |
️ | 进入历史数据查询界面 | 点击主菜单导航至历史查询画面 |
| 输入查询时间范围 | 点击时间输入框,键入开始/结束时间 |
| 点击"查询刷新"按钮 | 表格更新显示该时间段内的历史数据 |
| 插入 FAT32 格式 U 盘 | 插入触摸屏 USB 接口,等待识别 |
| 点击"导出U盘"按钮 | 观察"控制"变量:0=导出中,1=完成 |
| 导出完成,安全拔出 U 盘 | U盘根目录可找到 .CSV 格式文件 |
⑧ 常见错误码与排查
错误码 | 含义 | 解决方法 |
-1020 | 起始时间 > 结束时间 | 检查输入的开始/结束时间 |
-1021 | U盘未插入/未识别 | 确认U盘已插好且为FAT32格式 |
-1022 | 同时有其他导出任务 | 等待上一次导出完成 |
-1023 | 时间段内无数据 | 确认存盘配置已启用或调整时间范围 |
-1024 | 文件操作失败 | 检查U盘写保护/空间是否充足 |
-1027 | 时间格式不正确 | 须为 yyyy/MM/dd H:m:s 格式 |
空文件 | 报警记录为空 | 检查报警变量是否勾选"自动保存" |
操作流程总结
① 组态配置:新建组对象 → 添加变量成员 → 永久存储 + 周期1S
② 报警配置:每个报警变量必须勾选"自动保存",否则导出为空
③ 画面设计:存盘浏览控件 + 时间输入框 + 查询刷新按钮 + 导出U盘按钮
④ 脚本编写:查询用 Refresh();导出用 !ExportHisDataToCSV(文件名,组对象,...)
⑤ 现场操作:输入时间范围 → 刷新查看 → 插FAT32 U盘 → 点导出 → 控制变量=1完成
工业自动化实战干货
专注 PLC / HMI / SCADA / 电气设计/AI领域技术分享如有问题欢迎留言交流,更多教程持续更新中…… </b></b>