回复:unified导出csv

zhangli0

版主 西门子1847工业学习平台

  • 帖子

    17163
  • 精华

    64
  • 被关注

    893

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 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”),通过脚本计数实现。


活到老,学到老!为了生活学习吧!
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32627条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。