恭喜,你发布的帖子
发布于 2025-10-15 17:53:27
1楼
获取当前日期:通过 Unified 面板的 JavaScript 脚本接口获取系统日期(年、月、日)。
格式化日期字符串:将日期转换为 “YYYYMMDD”“YYYY-MM-DD” 等无特殊字符的格式(避免文件名包含/ :等非法字符)。
动态拼接文件名:将固定前缀(如 “Data_”)与格式化后的日期字符串组合,形成唯一文件名(如 “Data_20231015.csv”)。
调用导出函数:使用 Unified 的 CSV 导出 API,传入动态生成的文件名。
二、具体脚本代码
以下是按钮触发导出的示例脚本(在 Unified 面板的 “事件”→“单击” 中添加):
Unified面板动态日期文件名导出CSV脚本
三、关键说明
日期格式化细节:
使用padStart(2, '0')确保月份和日期为两位数(如 “5”→“05”),避免文件名出现 “2023515” 等不规范格式。
若需包含时间(精确到小时 / 分钟),可添加getHours() getMinutes(),例如:
javascript
运行
var hour = currentDate.getHours().toString().padStart(2, '0');var minute = currentDate.getMinutes().toString().padStart(2, '0');var dateTimeStr = year + monthStr + dayStr + "_" + hour + minute; // 格式:20231015_1430
文件路径设置:
内置存储路径:/Storage Card/(需确保面板有足够存储空间)。
U 盘路径:/USB Memory/(需提前插入 U 盘,否则导出失败)。
可通过HMIRuntime.Storage.GetStorageDevices()获取当前可用存储设备,避免路径错误。
数据记录对象:
脚本中 “DataLog” 需替换为实际创建的数据记录对象名称(在 Unified 项目的 “数据记录” 中定义,关联需导出的变量)。
确保数据记录对象已正确配置采样周期和存储变量。
错误处理:
导出结果exportResult为 0 表示成功,非 0 为错误代码(如 1 = 路径不存在,2 = 权限不足),可通过MessageBox提示用户排查。
四、注意事项
权限设置:在 Unified 项目的 “运行系统设置” 中,确保 “文件操作” 权限已开启(允许读写存储设备)。
特殊字符规避:文件名中禁止使用/ \ : * ? " < > |等字符,日期格式化时已通过 “YYYYMMDD” 避免此类问题。
重复文件处理:若同一天需导出多个文件,可在文件名后添加序号(如 “Data_20231015_01.csv”),通过脚本计数实现。
请填写推广理由:
分享
只看
楼主