wincc实时报表做出了,求教日报表问题!

以下是我做的实时报表,我想在这个基础上做个24小时,每小时采集一次数据,然后逐小时放到EXCEL的4~27单元格里! 24小时时间到再另保存到D盘baobiao文件里!我想通过触发器1小时变化触发以下程序变量i值递增加1,然后逐步采集数据放i+1单元格里!我本来想通过STATIC定义静态变量来试下!但VBS里没有STATIC定义静态变量!然后我又想通过PLC做个每小时递增i变量加1,但是是别人项目的程序上了锁!这个日报表都把我头发想掉光了,我用的用户归档做好了日报表,但觉得没有EXCEL好。现在想用这种方法做个 麻烦各位大侠能给个实在点的解决办法!不胜感激!   
     
‘定义变量             

Dim objExcelApp, objExcelbook,objExcelSheet

Dim tagshijian,sheetname,username,zhushi
Dim tagday
Dim tag1gongyeshui, tag2shenghuoshui,tag3tuoyanshui, tag4zhengqi,tag5h2so4, tag6hno3,tag7hf,tag8zaishengsuan,tag9naoh
Dim i,j
Dim msg


‘ 声明
Set tag1gongyeshui=HMIRuntime.Tags("TE_0102")
Set tag2shenghuoshui=HMIRuntime.Tags("TE_0106")
Set tag3tuoyanshui=HMIRuntime.Tags("LT_0101")
Set tag4zhengqi=HMIRuntime.Tags("PT_0102")
Set tag5h2so4=HMIRuntime.Tags("TE_0105")
Set tag6hno3=HMIRuntime.Tags("LT_0103")
Set tag7hf=HMIRuntime.Tags("PT_0302")
Set tag8zaishengsuan=HMIRuntime.Tags("PT_0304")
Set tag9naoh=HMIRuntime.Tags("PT_0306")

msg="ok"
sheetname="sheet1"


‘创建对象
 Set objExcelApp=CreateObject("Excel.Application") 
 
 objExcelApp.visible=True
 objExcelApp.workbooks.open"E:\uu\ribaobiao\日报表.xls"
 objExcelApp.worksheets(sheetname).activate
 ‘清除模版数据
 With objExcelApp.worksheets(sheetname)
 For i=4 To 27
  For j=1 To 10
  .cells(i,j)=Null
  Next
 Next
End With
‘实时数据写入
 tagshijian=Now
objExcelApp.Worksheets(sheetname).cells(1,9).value=tagshijian
For i=4 To 27
With objExcelApp.worksheets(sheetname)
  .cells(i,1).value=tagshijian
  tag1gongyeshui.read
  .cells(i,2).value=tag1gongyeshui.value
  tag2shenghuoshui.read
  .cells(i,3).value=tag2shenghuoshui.value
  tag3tuoyanshui.read
  .cells(i,4).value=tag3tuoyanshui.value
  tag4zhengqi.read
  .cells(i,5).value=tag4zhengqi.value
  tag5h2so4.read
  .cells(i,6).value=tag5h2so4.value
  tag6hno3.read
  .cells(i,7).value=tag6hno3.value
  tag7hf.read
  .cells(i,8).value=tag7hf.value
  tag8zaishengsuan.read
  .cells(i,9).value=tag8zaishengsuan.value
  tag9naoh.read
  .cells(i,10).value=tag9naoh.value
  End With
  Next
MsgBox msg

‘关闭保存
Dim patch,filename

 patch="d:\baobiao\deo.xls"
objExcelApp.activeworkbook.saveAs patch
objExcelApp.workbooks.close
objExcelApp.Quit
Set objExcelApp=Nothing

问题补充:
你这个设置初值的方法不行啊,每次一小时触发后,初始值并不保持的!我用其他方法已经做好了!不过还是谢谢你的回答啊!

最佳答案

我前两天不是给你个程序吗,那个就能完成你日报表要求啊
””定义变量             
Dim objExcelApp, objExcelbook
Dim tag1””这个在内部变量里建立,是行数变量,初始值设定为4(看你上面说的,你是不会设置内部变量的初始值吧!看图)
Set tag1=HMIRuntime.Tags("tag1")
tag1.Read

””创建对象
 Set objExcelApp=CreateObject("Excel.Application") 
 objExcelApp.visible=True
 objExcelApp.workbooks.open"E:\wincc_1118_120311/ribaobiao/日报表.xls"   ””这个路径里的文件名字用英文的,不要用中文的

””实时数据写入 
objExcelApp.Worksheets.cells(1,9).value=Day(Now)
objExcelApp.cells(tag1,1).valuE=HMIRuntime.Tags("TE_0102").Read
tag1.Value=tag1.Read+1

If tag1.Value>27 Then
tag1.Write4

””另存为
objExcelApp.activeworkbook.saveAs "D:/baobiao/CStr(Year(Now))&CStr(Month(Now))&CStr(Day(Now))"
objExcelApp.Quit
Set objExcelApp=Nothing

Else
””直接保存
objExcelApp.ActiveWorkbook.Save
objExcelApp.Quit
Set objExcelApp=Nothing
End If

当行数变量大于27时就自动按日期另存为到D盘,小于27则自动保存到模版中

图片说明:

wincc实时报表做出了,求教日报表问题!  wincc实时报表做出了,求教日报表问题!  

提问者对于答案的评价:
谢谢

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc255991.html

(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月10日
下一篇 2019年6月10日

相关推荐