找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
{{itemCategory}}
手机扫码追踪该问题,
分享一下,更快有答案!
点击复制链接
'创建Excel对象
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Visible = False
Set objExcelBook = objExcelApp.Workbooks.Add
'连接WinCC数据库
Set tagDSNName = HMIRuntime.Tags("@DatasourceNameRT")
tagDSNName.Read
sConn = "Provider=WinCCOLEDBProvider.1;Catalog=" & tagDSNName.Value & ";Data Source=.\WinCC"
Set conn = CreateObject("ADODB.Connection")
conn.Open sConn
'编写查询语句(查询所有报警记录)
sSql = "ALARMVIEW:SELECT * FROM ALGVIEWCHT" 'ALGVIEWCHT为中文报警视图表名
'执行查询
Set oRs = conn.Execute(sSql)
'将数据写入Excel
i = 1
For Each fld In oRs.Fields
objExcelApp.Cells(1, i).Value = fld.Name '写入列标题
i = i + 1
Next
i = 2
Do While Not oRs.EOF
For j = 0 To oRs.Fields.Count - 1
objExcelApp.Cells(i, j+1).Value = oRs.Fields(j).Value
Next
i = i + 1
oRs.MoveNext
Loop
'保存并关闭
objExcelBook.SaveAs "D:\AlarmExport\报警记录_" & Now & ".xlsx"
objExcelApp.Quit
将上述脚本保存为.vbs 文件,在 WinCC 中通过按钮或定时器调用
方法五:使用系统函数导出(适合 SQLite 存储)
如果报警记录存储为 SQLite 数据库:
在画面中添加一个按钮或事件触发器
为按钮添加动作,选择 "系统函数"→"数据库"→"ExportDatabaseLog"
在参数设置中:
选择 "报警记录" 作为数据源
指定导出文件名和路径(如 D:\Alarm\Export.csv)
运行时点击按钮即可将报警记录导出为 CSV 文件
注意事项与技巧
时间格式:WinCC 内部使用 UTC 时间存储,导出后可能需要转换为本地时间
大数据量:当数据量庞大时,建议使用方法三(SQL 导出)或方法五(系统函数)
自动备份:可结合方法四编写脚本,设置定时任务(如每天午夜)自动导出
字段选择:导出时只选择必要字段,可减小文件体积,提高处理效率
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
专家置评
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

官方商城-正品备件
DIOMIS