wincc6 实时向excel传送数据 并保存以当天日期为名

已锁定

阿洪

  • 帖子

    610
  • 精华

    0
  • 被关注

    3

论坛等级:侠客

注册时间:2007-04-03

普通 普通 如何晋级?

wincc6 实时向excel传送数据 并保存以当天日期为名

2049

3

2007-04-06 11:30:51

主题:wincc6 实时向excel传送数据 并保存以当天日期为名
建立一个模本excel文件d:\ExcelExample.xls
wincc里创建内部变量i,无符号32位
在全局脚本vb创建两个动作

1、复制另存ExcelExample.xls,并改名为当天日期,触发周期为1天,i被赋值为2
Option Explicit
Function action
Dim fso,myfile,daystr,dstr,fname
dstr = FormatDateTime(Date)
fname="d:\" + dstr + ".xls"
Set fso = CreateObject("s cripting.FileSystemObject")
Set MyFile = fso.GetFile("d:\ExcelExample.xls")
MyFile.Copy (fname)
HMIRuntime.Tags("i").write 2
End Function
2、往当天的excel文件里写数据,并保存

Option Explicit
Function action
Dim fso,myfile,daystr,dstr,fname
dstr = FormatDateTime(Date)
fname="d:\" + dstr + ".xls"
Dim ObjExcelApp
Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Workbooks.Open fname
Dim i
HMIRuntime.Tags("i").write HMIRuntime.Tags("i").Read+1
i=HMIRuntime.Tags("i").Read
objExcelApp.worksheets ("sheet1").Cells(i, 2).VAlue = HMIRuntime.Tags("I-COD").read
objExcelApp.worksheets ("sheet1").Cells(i, 3).VAlue = HMIRuntime.Tags("I-SS").read
objExcelApp.worksheets ("sheet1").Cells(i, 4).VAlue = HMIRuntime.Tags("I-PH").read
objExcelApp.worksheets ("sheet1").Cells(i, 5).VAlue = HMIRuntime.Tags("I-F").read
objExcelApp.worksheets ("sheet1").Cells(i, 6).VAlue = HMIRuntime.Tags("I-FI").read
objExcelApp.worksheets ("sheet1").Cells(i, 7).VAlue = HMIRuntime.Tags("O-COD").read
objExcelApp.worksheets ("sheet1").Cells(i, 8).VAlue = HMIRuntime.Tags("O-SS").read
objExcelApp.worksheets ("sheet1").Cells(i, 9).VAlue = HMIRuntime.Tags("O-NH4N").read
objExcelApp.worksheets ("sheet1").Cells(i, 10).VAlue = HMIRuntime.Tags("0-P").read
objExcelApp.worksheets ("sheet1").Cells(i, 11).VAlue = HMIRuntime.Tags("O-F").read
objExcelApp.worksheets ("sheet1").Cells(i, 12).VAlue = HMIRuntime.Tags("O-FI").read
objExcelApp.worksheets ("sheet1").Cells(i, 1).VAlue =Now
objExcelApp.ActiveWorkbook.Save
objExcelApp.Workbooks.ClosE
objExcelApp.QuiT
Set ObjEXceLapp = Nothing
End Function
问题:怎么在退出wincc时,保存i的值,使wincc再激活时,向excel最后位置写数据
注:从wincc帮助抄的程序
试了啊
不过现在的程序改了
第一段:

Option Explicit

Function action

Dim fso,myfile,daystr,dstr,fname

dstr = FormatDateTime(Date)

fname="d:\" + dstr + ".xls"

Set fso = CreateObject("s cripting.FileSystemObject")

Set MyFile = fso.GetFile("d:\ExcelExample.xls")

MyFile.Copy (fname)
End Function

第二段:

Option Explicit

Function action

Dim fso,myfilep,daystr,dstr,fname

Set fso = CreateObject("s cripting.FileSystemObject")

dstr = FormatDateTime(Date)

HMIRuntime.Tags("i").write fso.GetAbsolutePathName("")

fname=HMIRuntime.ActiveProject.Path++dstr+.xls
Dim ObjExcelApp
Set objExcelApp = CreateObject("Excel.Application")
objExCelApp.Visible = True
objExcelApp.Workbooks.Open fname
Dim i
i=1
Do While objExcelApp.worksheets ("sheet1").Cells(i, 1).VAlue<>""
i=i+1
Loop
objExcelApp.worksheets ("sheet1").Cells(i, 2).VAlue = HMIRuntime.Tags("I-COD").read

objExcelApp.worksheets ("sheet1").Cells(i, 3).VAlue = HMIRuntime.Tags("I-SS").read

objExcelApp.worksheets ("sheet1").Cells(i, 4).VAlue = HMIRuntime.Tags("I-PH").read

objExcelApp.worksheets ("sheet1").Cells(i, 5).VAlue = HMIRuntime.Tags("I-F").read

objExcelApp.worksheets ("sheet1").Cells(i, 6).VAlue = HMIRuntime.Tags("I-FI").read

objExcelApp.worksheets ("sheet1").Cells(i, 7).VAlue = HMIRuntime.Tags("O-COD").read

objExcelApp.worksheets ("sheet1").Cells(i, 8).VAlue = HMIRuntime.Tags("O-SS").read

objExcelApp.worksheets ("sheet1").Cells(i, 9).VAlue = HMIRuntime.Tags("O-NH4N").read

objExcelApp.worksheets ("sheet1").Cells(i, 10).VAlue = HMIRuntime.Tags("0-P").read

objExcelApp.worksheets ("sheet1").Cells(i, 11).VAlue = HMIRuntime.Tags("O-F").read

objExcelApp.worksheets ("sheet1").Cells(i, 12).VAlue = HMIRuntime.Tags("O-FI").read

objExcelApp.worksheets ("sheet1").Cells(i, 1).VAlue =Now

objExcelApp.ActiveWorkbook.Save

objExcelApp.Workbooks.ClosE

objExcelApp.QuiT
Set ObjEXceLapp = Nothing
End Function

其中objExCelApp.Visible = True可以去掉,就是后台操作了

这两段程序分别是两个动作

第一段的触发周期是一天,作用是复制另存ExcelExample.xls,并改名为当天日期

第二段是忘当天的excel文件里写数据的,触发周期根据个人情况,测试时可以定为10秒,就是每10秒写一次数据

另外第二段里的HMIRuntime.Tags都是我wincc里的变量,要根据自己的情况修改
wincc6 实时向excel传送数据 并保存以当天日期为名 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32979条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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