wincc报表到excel

本人做了个wincc的报表,使用的copy的别人的脚本,把变量输出到txt文件还可以。现在想把变量输出到excel中,请各位看一下下面的这段脚本该如何修改?脚本中的一段如下(在定义的10点42分把两个变量的值写到名字是report的txt记事本中)
if(hour_int==10&&minute_int==42)
{
ml1=GetTagFloat(

问题补充:
本人做了个wincc的报表,使用的copy的别人的脚本,把变量输出到txt文件还可以。现在想把变量输出到excel中,请各位看一下下面的这段脚本该如何修改?脚本中的一段如下(在定义的10点42分把两个变量的值写到名字是report的txt记事本中)
if(hour_int==10&&minute_int==42)
{
ml1=GetTagFloat("1PDC_ML_ACC");
ml2=GetTagFloat("2PDC_ML_ACC");

pFile=fopen("e:\\report.txt","a+");
fprintf(pFile,"\n%04dÄê%02dÔÂ%02dÈÕ%02d:%02d:%02d\t",sysTime.wYear,sysTime.wMonth,sysTime.wDay,sysTime.wHour,sysTime.wMinute,sysTime.wSecond);
fprintf(pFile,"%f\t     ",ml1);
fprintf(pFile,"%f\t",ml2);

fclose(pFile); 
SetTagFloat("1PDC_ML_ACC",0);
SetTagFloat("2PDC_ML_ACC",0);
现在我想把变量输出到excel中,请问该如何修改这段脚本?如果能输出到excel的话,如何定义两个变量写到excel中的哪行哪列呢?非常感谢!!

最佳答案

这是我做的vb读写excel的脚本做在一个按钮里面的,你可以修改一下就用了:
Sub OnClick(ByVal Item)                                     
Dim fso,myfile
Set fso = CreateObject("scripting.FileSystemObject")
Set MyFile = fso.GetFile("d:\\data.xlsx")
Dim ObjExcelApp
Set objExcelApp = CreateObject("Excel.Application")
'objExcelApp.Visible = True
objExcelApp.Workbooks.Open MyFile
'上面的程序段是为了打开d盘excel文件
Dim aa_data
objExcelApp.worksheets ("sheet1").Cells(2, 9).VAlue = HMIRuntime.Tags("aa").read
Dim i,j
If objExcelApp.worksheets ("sheet1").Cells(2, 9).VAlue>1.0 Then
i=2
j=6
End If
If objExcelApp.worksheets ("sheet1").Cells(2, 9).VAlue>0.8 And  objExcelApp.worksheets ("sheet1").Cells(2, 9).VAlue<1.0 Then
i=7
j=11
End If
If objExcelApp.worksheets ("sheet1").Cells(2, 9).VAlue>0.6 And  objExcelApp.worksheets ("sheet1").Cells(2, 9).VAlue<0.8 Then
i=12
j=16
End If
If objExcelApp.worksheets ("sheet1").Cells(2, 9).VAlue<0.6Then
i=17
j=21
End If
'判断数据保存位置
Do While i<j
objExcelApp.worksheets ("sheet1").Cells(i, 1).VAlue =objExcelApp.worksheets ("sheet1").Cells(i+1, 1).VAlue
objExcelApp.worksheets ("sheet1").Cells(i, 2).VAlue = objExcelApp.worksheets ("sheet1").Cells(i+1, 2).VAlue
i=i+1 
Loop 
objExcelApp.worksheets ("sheet1").Cells(i, 1).VAlue =HMIRuntime.Tags("yy").read
objExcelApp.worksheets ("sheet1").Cells(i, 2).VAlue =HMIRuntime.Tags("xx").read

'写数据到excel表格
objExcelApp.ActiveWorkbook.Save
'保存表格
Dim cons_data,ax1_data,ax2_data,ax3_data,ax4_data,ax5_data,ax6_data
Set cons_data=HMIRuntime.Tags("cons")
Set ax1_data=HMIRuntime.Tags("ax1")
Set ax2_data=HMIRuntime.Tags("ax2")
Set ax3_data=HMIRuntime.Tags("ax3")
Set ax4_data=HMIRuntime.Tags("ax4")
Set ax5_data=HMIRuntime.Tags("ax5")
Set ax6_data=HMIRuntime.Tags("ax6")


cons_data.Value = objExcelApp.worksheets ("sheet1").Cells(23,7).value
ax1_data.Value = objExcelApp.worksheets ("sheet1").Cells(23, 6).value
ax2_data.Value = objExcelApp.worksheets ("sheet1").Cells(23, 5).value
ax3_data.Value = objExcelApp.worksheets ("sheet1").Cells(23, 4).value
ax4_data.Value = objExcelApp.worksheets ("sheet1").Cells(23, 3).value
ax5_data.Value = objExcelApp.worksheets ("sheet1").Cells(23, 2).value
ax6_data.Value = objExcelApp.worksheets ("sheet1").Cells(23, 1).value
'上面的作用是将Excel表格中的数据读到wincc,存到临时变量里面
objExcelApp.Workbooks.Close
objExcelApp.Quit
Set ObjEXceLapp = Nothing
'到这里为止,关闭刚才打开的excel程序了
cons_data.Write 
ax1_data.Write 
ax2_data.Write 
ax3_data.Write 
ax4_data.Write 
ax5_data.Write 
ax6_data.Write 
'最后是把读到的excel值从临时变量中写入它对应的wincc变量中


End Sub

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

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

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

相关推荐

  • WINCC项目1

    3台西门子PLC与1台上位机(加CP1613)组成一系统。其中2台PLC中的CP343-1用的MAC地址,另一台PLC的CP343-1用的IP地址(此CP卡只支持TCP/IP),但…

    SIMATIC WinCC 2019年6月11日
  • wincc7.4 sp1访问独立置顶窗口中控件的问题

    对于嵌入窗口使用vbs访问对象可以采用这样的格式:Set  Obj1= HMIRuntime.Screens(基础窗口.画面窗口控件:画面窗口名称.二…

    2021年7月5日
  • wincc7.3的IO域实时显示字符串。

    目的:wincc7.3的IO域实时显示长度为10的字符串。如下的图1是PLC的寄存器D8083设置的数据类型,由于客户的原因,这个图1的设置是无法更改的。图2与图3是目前Wincc…

    2021年7月5日
  • WINCC画面输入负值

    WINCC画面设置一个输入输出域,但是运行时无法输入负值,该如何设置? 最佳答案 转载:首先数据类型要对,是有符号的。再I/0域里面,数据类型 9999.99 …

    SIMATIC WinCC 2018年12月7日
  • 用户归档 视图

    既然用户归档属于数据库,那对应建立一个用户视图是否也是一个数据库呢?如何找到这个数据库名称? 最佳答案 请参考我的提问。你直接用WinCC提供的内部变量就可以了,有现成的。打开项目…

    SIMATIC WinCC 2019年6月11日
  • WinCC opc客户机报警不显示

    我用WinCC组态一台PC机位OPC服务器,另一台为客户机,客户机访问服务器的所有变量,且画面与客户机相同(是直接将客户机的GraCS文件夹拷过来的)。现利用报警编辑器和报警控件组…

    SIMATIC WinCC 2019年6月11日
  • wincc多屏显示

    一套wincc上位软件,采集控制10套生产线(S7-300)的数据,现在想在每套生产线前装一个显示屏(平板电视或显示屏)显示本生产线的数据,求一个完整的解决方案。另外,还想问下wi…

    SIMATIC WinCC 2017年11月25日
  • 消息队列问题

    我想安装wincc6.0,用的是XP系统,安不上消息队列,请问是什么原因啊? 最佳答案 Start -> Run -> cmd&…

    SIMATIC WinCC 2019年6月11日
  • WinCC画面标题显示?

    我想在一个主画面里面做好背景显示,在画面的上部的标题栏中输入标题,当我点击画面底部的切换开关的时候,希望可以显示不一样的画面标题,比如第一个画面是流程图第二个为参数图,等等,怎么实…

    SIMATIC WinCC 2019年6月11日
  • 不启动wincc如何使用OLE-DB读取SQL归档的数据

    现在需要在任意一台电脑上通过OLE-DB读取归档的数据,数据库里有归档的数据,如何导出到表格 最佳答案 可以通过WinCC“归档连接器”访问:WinCC“归档连接器”用于组态对归档…

    SIMATIC WinCC 2021年7月5日