归档数据转化为电子表格WINCC脚本

合集下载

如何在Excel中访问WinCC变量归档数据

如何在Excel中访问WinCC变量归档数据

1 功能说明在Microsoft office Excel中访问WinCC的历史数据,实现如下图所示的报表:图1: Excel中访问WinCC的历史数据生成报表选择日期后,可以生成当天的风机参数日报表(报表数据来自WinCC)。

2 软件环境本地计算机:Windows XP SP3英文版、WinCC7.0 SP2 ASIA、Microsoft office Excel 2003 远程计算机:Windows XP SP3英文版、WinCC7.0 SP2 ASIA、Microsoft office Excel 20033 WinCC/Connectivity Pack 介绍WinCC变量归档数据是以压缩的形式存储在数据库中,需要通过WinCC/Connectivity Pack提供的OLE-DB接口才能够解压并读取这些数据。

3.1 连接字符串“Provider=WinCCOLEDBProvider.1; Catalog= ***; Data Source= ***;“其中:Catalog:WinCC运行数据库的名称注意:当修改项目名称或在其它计算机上打开原项目时, Catalog会发生变化。

建议使用WinCC系统变量“@DatasourceNameRT” 获得当前的Catalog。

Data Source :服务器名称本地:“.\WinCC” 或者“<计算机名称>\WinCC”远程:“<计算机名称>\WinCC”3.2 查询语句“TAG:R,<ValueID or ValueName>,<TimeBegin>,<TimeEnd>[,<SQL_clause>][,<TimeStep>]”其中:ValueName:格式为“ArchiveName\Value_Name”,可以使用多个名称。

TimeBegin,TimeEnd:时间范围,格式“YYYY-MM-DD hh:mm:ss.msc”。

在WinCC中如何使用VBS读取变量归档数据到EXCEL

在WinCC中如何使用VBS读取变量归档数据到EXCEL

文档类型常问问题, 条目ID:77940055, 文档发布日期2013年7月23日4)(评估在WinCC中如何使用VBS读取变量归档数据到EXCEL推荐文档: 西门子工程师推荐本文档!1概述介绍如何在WinCC项目中使用VBS脚本读取变量归档值,并把获取的数据保存成新的Excel文件。

文中示例代码仅适用于以绝对时间间隔方式访问。

2软件环境Windows XP SP3中文版、WinCC7.0 SP2 ASIA、Microsoft office Excel 20073访问原理WinCC变量归档数据是以压缩的形式存储在数据库中,需要通过WinCC连通性软件包提供的OLE-DB接口才能够解压并读取这些数据。

关于WinCC连通性软件包的详细信息请参考连接:37436159当使用OLE-DB方式访问数据库时关键需要注意连接字符串的写法和查询语句的格式。

连接字符串格式为“Provider=WinCCOLEDBProvider.1; Catalog= ***; Data Source= ***;”,其中Catalog为WinCC运行数据库的名称,当修改项目名称或在其它计算机上打开原项目时, Catalog会发生变化。

建议使用WinCC内部变量“@DatasourceNameRT”获得当前项目的Catalog。

Data Source 为服务器名称,格式为“<计算机名称>\WinCC”。

3.1 查询语句格式数据的查询语句的格式要求如下:8 字节长ValueID 的请求:TAG_LLVID:R,<ValueID或ValueName>,<TimeBegin>,<TimeEnd>[,<SQL_clause>][,<TimeStep>]4 字节长ValueID 的请求:TAG:R,<ValueID 或ValueName>,<TimeBegin>,<TimeEnd>[,<SQL_clause>][,<TimeStep>]其中:ValueID:过程值归档变量的唯一标识符。

在Excel中访问WinCC变量归档数据

在Excel中访问WinCC变量归档数据

如何在Excel中访问WinCC变量归档数据————————————————————————————————作者:————————————————————————————————日期:1 功能说明在Microsoft office Excel中访问WinCC的历史数据,实现如下图所示的报表:图1: Excel中访问WinCC的历史数据生成报表选择日期后,可以生成当天的风机参数日报表(报表数据来自WinCC)。

2 软件环境本地计算机:Windows XP SP3英文版、WinCC7.0 SP2 ASIA、Microsoft office Excel 2003 远程计算机:Windows XP SP3英文版、WinCC7.0 SP2 ASIA、Microsoft office Excel 20033 WinCC/Connectivity Pack 介绍WinCC变量归档数据是以压缩的形式存储在数据库中,需要通过WinCC/Connectivity Pack提供的OLE-DB接口才能够解压并读取这些数据。

3.1 连接字符串“Provider=WinCCOLEDBProvider.1; Catalog= ***; Data Source= ***;“其中:Catalog:WinCC运行数据库的名称注意:当修改项目名称或在其它计算机上打开原项目时, Catalog会发生变化。

建议使用WinCC系统变量“@DatasourceNameRT” 获得当前的Catalog。

Data Source :服务器名称本地:“.\WinCC” 或者“<计算机名称>\WinCC”远程:“<计算机名称>\WinCC”3.2 查询语句“TAG:R,<ValueID or ValueName>,<TimeBegin>,<TimeEnd>[,<SQL_clause>][,<TimeStep>]”其中:ValueName:格式为“ArchiveName\V alue_Name”,可以使用多个名称。

WinCC_To_Excel

WinCC_To_Excel

可以用C脚本,我已经照此例子实验,可以自动生成EXCEL文件给你转个论坛的帖子做参考取之于“民”用之于“民”,几段代码,希望对后来者有帮助,不要见笑。

1、记录脚本:同一卡片号的每一根钢的数据记录,有多少根,记多少行#include "apdefap.h"int gscAction( void ){#pragma code ()char FileName[20] = " ";double genshu,row,col;__object* pExcel = NULL;genshu=GetTagDouble("记数根数");SetTagDouble("根数记录",genshu);row=genshu+4;if((GetTagBit("钢温记录信号")==1)){pExcel = __object_create("Excel.Application.9"); //9表示用的是office 2000pExcel->Visible =0;pExcel->Workbooks ->Open ("e:\\LZEQ_HMI\\JILU.xls");//Cells(row,col)pExcel->Worksheets("sheet1")->Cells(row,1)->V alue=GetTagWord("记数根数");pExcel->Worksheets("sheet1")->Cells(row,2)->V alue=GetTagChar("开始时间");pExcel->Worksheets("sheet1")->Cells(row,3)->V alue=GetTagWord("1#高温计温度记录"); pExcel->Worksheets("sheet1")->Cells(row,4)->V alue=GetTagFloat("1#水箱流量记录"); pExcel->Worksheets("sheet1")->Cells(row,5)->V alue=GetTagWord("2#高温计温度记录"); pExcel->Worksheets("sheet1")->Cells(row,6)->V alue=GetTagFloat("2#水箱流量记录"); pExcel->Worksheets("sheet1")->Cells(row,7)->V alue=GetTagWord("3#高温计温度记录"); pExcel->Worksheets("sheet1")->Cells(row,8)->V alue=GetTagFloat("3#水箱流量记录"); pExcel->Worksheets("sheet1")->Cells(row,9)->V alue=GetTagWord("4#高温计温度记录"); pExcel->Worksheets("sheet1")->Cells(row,10)->V alue=GetTagWord("5#高温计温度记录"); pExcel->Worksheets("sheet1")->Cells(row,11)->V alue=GetTagFloat("4#水箱流量记录"); pExcel->Worksheets("sheet1")->Cells(row,12)->V alue=GetTagWord("6#高温计温度记录"); pExcel->Worksheets("sheet1")->Cells(row,13)->V alue=GetTagWord("7#高温计温度记录"); pExcel->Worksheets("sheet1")->Cells(row,14)->V alue=GetTagFloat("5#水箱流量记录"); pExcel->Worksheets("sheet1")->Cells(row,15)->V alue=GetTagWord("8#高温计温度记录"); pExcel->Worksheets("sheet1")->Cells(row,16)->V alue=GetTagChar("系统时间"); SetTagBit("钢温记录信号",0);}pExcel->ActiveWorkbook->Save;pExcel->Workbooks->Close();pExcel->Quit();__object_delete(pExcel);return 0;}2、存储脚本。

Wincc V7.3用户归档深入5-用vbs将用户归档的内容导出到excel

Wincc V7.3用户归档深入5-用vbs将用户归档的内容导出到excel

Wincc V7.3用户归档深入5-用vbs将用户归档的内容导出到excel我们在用户归档中得到数据之后,如果想导出到excel,思路是和把MSHFGrid数据导出类似的。

网上有些文章是直接从后台数据表读取数据,本文介绍从数据归档控件导出数据。

1. 假设wincc项目已经创建了用户归档,画面上有一个用户归档控件,名字叫做UA,设置一个按钮,按钮点击事件添加以下vbs脚本Sub OnClick(ByVal Item)Dim UA,col,row,rowsDim xlapp,objsheetDim i,j,k,m,n,filenameSet UA=ScreenItems("UA")Set rows=UA.GetRowCollectionm=rows.Countn=UA.ColumnCountIf m>1 Then '如果用户归档控件有记录Set xlapp=CreateObject("Excel.Application")xlapp.visible=Falsexlapp.workbooks.addSet objsheet=xlapp.worksheets(1)For k=1 To nua.ColumnIndex=kobjsheet.cells(3,k)=ua.ColumnCaption '字段名称Nextobjsheet.cells(1,1)="XX用户归档"For i=1 To mFor j= 1 To nobjsheet.cells(i+3,j)=ua.GetRow(i).celltext(j)NextNext'以下代码处理日期时间数据格式以及表格边框线、标题合并单元格等排版objsheet.range("a1:d1").mergecells=True'objsheet.range("a1").ColumnWidth =20 '列宽度objsheet.cells(2,1)="生成时间:"objsheet.cells(2,2)=Year(Now) & "年" & Month(Now) & "月" & Day(Now) & "日"objsheet.cells(1,1).HorizontalAlignment = 3objsheet.range("a3:d" & CStr(3+m)).borders(1).linestyle=9objsheet.range("a3:d" & CStr(3+m)).borders(1).weight=2objsheet.range("a3:d" & CStr(3+m)).borders(2).linestyle=9objsheet.range("a3:d" & CStr(3+m)).borders(2).weight=2objsheet.range("a3:d" & CStr(3+m)).borders(3).linestyle=9objsheet.range("a3:d" & CStr(3+m)).borders(3).weight=2objsheet.range("a3:d" & CStr(3+m)).borders(4).linestyle=9objsheet.range("a3:d" & CStr(3+m)).borders(4).weight=2'保存文件filename= "c:\" & Year(Now) & "年" & Month(Now) & "月" & Day(Now) & "日-" & Hour(Now) & "点" & Minute(Now) & "分" & Second(Now) & "秒生成用户归档.xlsx"xlapp.Activeworkbook.saveas (filename) xlapp.workbooks.closexlapp.quitMsgbox "成功导出到C:\"ElseMsgbox "用户归档没有记录"End IfEnd Sub。

如何在Excel中访问WinCC变量归档数据

如何在Excel中访问WinCC变量归档数据
图8:打开VBA编辑器
2)创建读取WinCC历史数据的VBA子程序get_wincc_data:
图9:get_wincc_data
脚本包括以下几部分:
(1)获得WinCC运行数据库名称
以上脚本只能读取本地WinCC的变量值,并且需要插入“WinCC HMIRuntime 1.0 Type Library”对象:
Data Source :服务器名称
本地:“。\WinCC” 或者 “〈计算机名称>\WinCC”
远程:“<计算机名称〉\WinCC”
3。2 查询语句
“TAG:R,〈ValueID or ValueName〉,〈TimeBegin〉,<TimeEnd>[,〈SQL_clause>][,〈TimeStep〉]"
图14:运行结果
DEMO程序请参考附件中的report_demo_local。xls( 31 KB ) 文件。
5 远程计算机访问
Excel访问远程计算机WinCC的历史数据,需要注意:
5。1 OLE—DB接口
如果客户端计算机没有安装WinCC或者DataMonitor软件,则需要安装Connectivity Pack软件来提供OLE—DB接口。
图10:插入“WinCC HMIRuntime 1。0 Type Library"对象
(2)创建连接字符串:
(3)转换查询时间为UTC时间:
(4)四个参数值的查询(以查询“进口温度"为例):
4。2。3调用脚本
在时间控件Change事件中调用子程序get_wincc_data :
4。2.4运行Excel中的脚本
首先要设置宏的安全性为“中"或“低”(不建议使用):

用VBS实现WINCC的用户归档输出到EXCEL表格的方法和例

用VBS实现WINCC的用户归档输出到EXCEL表格的方法和例(2009-12-30 16:47:45)用VBS实现WINCC的用户归档输出到EXCEL表格的方法和例子程序求用VBS实现WINCC的用户归档输出到固定格式的EXCEL表格的方法和例子程序!我主要问题在SQL数据库的查询语句不会。

看见论坛里有关用VBS实现EXCEL的数据查询和导出,我现在想要完成如下功能:每分钟将数据归档,用户可以输入任意的时刻时间查询从任意时刻开始的之后每隔1小时的数据(有点像日报里的24个小时)。

我现在对于VBS查询数据库的语句不懂,望大大赐教!谢谢''SQL查询语句Dim strc as stringstrc = "provider=WinCCOLEDBProvider.1;catalog=CC_RebdI_09_06_22_1 0_38_35R;data source=ComputerName\WinCC"''这个连接字符串可以在SQl2000中看到Dim cc1Set cc1=CreateObject("adodb.connection")cc1.ConnectionString=strccc1.CursorLocation=3cc1.openDim rst As ObjectSet rst = CreateObject("adodb.recordset")dim ssql as stringssql = "Tag:R,'Archive_3\DB1DBD0','2009-7-29 00:00:00.00 00','2009-7-29 23:59:59.999','timestep=3600,258'"''Archive_3\I_DB1DBD0归档和变量''2009-7-29 00:00:00.0000,2009-7-29 23:59 :59.999时间段''timestep=3600,258每阁多少秒拿一个数据(3600=1小时),258表示每个时间段取最后一个数据rst.Open ssql, cc1''这样查出来的数据就是一天的每小时的数据''对rst记录集处理就可以得到你要的数据==========================Function actionDim objExcelAppDim i,TimeM,TimeNow,TimeSSet TimeM=HMIRuntime.Tags("TimeM")i=1+TimeM.ReadTimeNow=CStr(Year(Now))&"年"&CStr(Month(Now))&"月"&CStr(Day(Now))&"日"&CStr(Hour(Now))&"-"&CStr(Minute(Now))&":"&CStr(Second(Now))TimeS=Second(Now)Set objExcelApp = CreateObject("Excel.Application")objExcelApp.Visible = FalseobjExcelApp.Workbooks.Open"E:\ExcelTest.xls"objExcelApp.Cells(i, 2).Value =123.47objExcelApp.Cells(i, 1).Value = TimeNowobjExcelApp.DisplayAlerts = FalseobjExcelApp.ActiveWorkbook.SaveobjExcelApp.Workbooks.CloseobjExcelApp.quitSet objExcelApp =NothingEnd Function以上代码用于往指定的Excel表格中写数据。

wincc使用用户归档实现报表

使用用户归档实现报表简介Use User Archive Create Report摘要 简单介绍了用户归档,介绍如何通过用户归档和WinCC报表编辑器实现复杂报表。

关键词 用户归档,报表Key Words User Archive ,ReportIA&DT Service & Support Page 2-17目录使用用户归档实现报表简介 (1)一.用户归档介绍 (4)二.用户归档的使用 (6)三.结合用户归档实现报表 (8)1.数据的存储 (9)2.报表布局的设计 (12)3.报表输出 (14)附录-推荐网址 (17)IA&DT Service & Support Page 3-17一.用户归档介绍用户归档编辑器是一个WinCC的附加选件,需要安装相应的授权才能使用,否则只能使用DEMO模式。

它可以用来在服务器 PC 上连续的保存来自技术过程的数据。

在图形编辑器中,可以组态 WinCC 用户归档表格元素来以表格显示运行系统中用户归档的在线数据。

用户归档还可用于准备自动化系统(例如 S5、S7)的数据。

如果必要,数据可以配方或设定值的形式从控制器读出。

用户归档编辑器提供两种数据库表格:用户归档: 用户归档是用户可在其中创建自己的数据域的数据库表格。

用户归档用于存储数据,并根据 SQL 数据库规则提供对这些数据的标准化访问。

视图: 视图接收来自用户归档的数据并用于数据的相加,例如,为获得有关产品组的概述。

其在WinCC默认情况下是不会被安装的。

可以通过以下步骤安装。

插入WinCC安装光盘,选择安装SIMATIC WinCC,弹出界面(图1),选择安装或者卸载的组件,在弹出的选择组件界面中左侧选择选项,右侧选中用户归档,点击下一步开始安装。

图1 安装卸载IA&DT Service & Support Page 4-17图2选择组件安装好后打开WinCC项目编辑器在项目的树状结构里会看到用户归档选项。

WinCC中全局脚本VBS归档到Excel

WinCC中全局脚本VBS归档到Excel中用一个变量触发数据归档到Excel中,请高手看看我写的为何不能运行。

Sub procedure1If Item.OutputValue = "NewTag" ThenDim oVar,oBlendingVar,objExcelApp,oWorkBook,ExcelTableFull,oFileNameOn Error Resume NextExcelTableFull=0Set objExcelApp=CreateObject("Excel.Application")objExcelApp.Visible=FalseSet oWorkBook=objExcelApp.Workbooks.Open("D:\BKHL_HXBJ\模板\Receipt_Table.xls") Dim iBlankLineiBlankLine=oWorkBook.ActiveSheet.Columns(1).Find("0").Row'MsgBox("iBlankLine="&iBlankLine)If iBlankLine<504 ThenobjExcelApp.Cells(iBlankLine,1).Value=HMIRuntime.SmartTags("Recipe_Number").Value objExcelApp.Cells(iBlankLine,2).Value=HMIRuntime.SmartTags("BaseOil_Percent_1").Value objExcelApp.Cells(iBlankLine,3).Value=HMIRuntime.SmartTags("BaseOil_Percent_2").Value objExcelApp.Cells(iBlankLine,4).Value=HMIRuntime.SmartTags("BaseOil_Percent_3").Value objExcelApp.Cells(iBlankLine,5).Value=HMIRuntime.SmartTags("BaseOil_Percent_4").Value objExcelApp.Cells(iBlankLine,6).Value=HMIRuntime.SmartTags("BaseOil_Percent_5").Value objExcelApp.Cells(iBlankLine,7).Value=HMIRuntime.SmartTags("BaseOil_Percent_6").Value objExcelApp.Cells(iBlankLine,8).Value=HMIRuntime.SmartTags("BaseOil_Percent_7").Value objExcelApp.Cells(iBlankLine,9).Value=HMIRuntime.SmartTags("BaseOil_Percent_8").Value objExcelApp.Cells(iBlankLine,10).Value=HMIRuntime.SmartTags("Additive_Percent_1").Value objExcelApp.Cells(iBlankLine,11).V alue=HMIRuntime.SmartTags("Additive_Percent_2").Value objExcelApp.Cells(iBlankLine,12).Value=HMIRuntime.SmartTags("Additive_Percent_3").Value objExcelApp.Cells(iBlankLine,13).Value=HMIRuntime.SmartTags("Additive_Percent_4").Value objExcelApp.Cells(iBlankLine,14).Value=HMIRuntime.SmartTags("Additive_Percent_5").Value objExcelApp.Cells(iBlankLine,15).Value=HMIRuntime.SmartTags("Additive_Percent_6").Value objExcelApp.Cells(iBlankLine,16).Value=HMIRuntime.SmartTags("Additive_Percent_7").Value objExcelApp.Cells(iBlankLine,17).Value=HMIRuntime.SmartTags("Additive_Percent_8").ValueElse'MsgBox("Data Table Full,Copy to the backup file,continue ?")objExcelApp.displayalerts=FalseoFileName=CStr("D:\BKHL_HXBJ\模板\运行数据_"&Month(Date)&"月"&Day(Date)&"日"&"_"& Hour(Time)&"时"&Minute(Time)&"分"&".xls")oWorkBook.Saveas(oFileName)ExcelTableFull=1objExcelApp.displayalerts=TrueEnd IfoWorkBook.SaveobjExcelApp.Workbooks.CloseobjExcelApp.QuitSet objExcelApp=NothingSet oWorkBook=NothingIf ExcelTableFull=1 Then'MsgBox("Data Table Full, Clear the current data table, continus?")Set objExcelApp=CreateObject("Excel.Application")objExcelApp.Visible=FalseSet oWorkBook=objExcelApp.Workbooks.Open("D:\BKHL_HXBJ\模板\Receipt_Table_Templet.xls")objExcelApp.displayalerts=FalseoWorkBook.Saveas("D:\BKHL_HXBJ\模板\Receipt_Table.xls")objExcelApp.displayalerts=TrueoWorkBook.SaveobjExcelApp.Workbooks.CloseobjExcelApp.QuitSet objExcelApp=NothingSet oWorkBook=NothingEnd IfEnd IfEnd Sub本文转自亿万论坛:/a/a.asp?B=302&ID=1218853&q=1&r=140751。

如何通过 VBS 操作 WINCC 在线数据控件并导出至 EXCEL(附带程序)

如何通过VBS 操作WINCC 在线数据控件并导出至EXCEL(附带程序)1 概述本文主要介绍如何通过 VBS 操作 WINCC 在线数据表格控件。

开发环境:PCS7 V8.2 SP1 / WINCC 7.4 SP1使用限制:1) 时间间隔最多至 1 分钟2) 时间范围太长,数据加载可能会比较慢3) 导出文件 EXCEL 没有置顶,导出后要切换到 EXCEL 程序。

扩展性:可扩展选择参数、保存导出文件、生成 PDF 等功能。

本例采用将参数提前组态在控件内,运行中通过复选框来实现选择。

也可完全使用脚本实现参数添加。

详见附加信息>通过脚本新增参数图 1 根据选择查询数据图 2 导出数据成功图 3 在 EXCEL 中查看导出的数据文件3.1 画面部件说明图 5 测试画面部件说明3.1.1 添加时间控件添加 WINCC Activex 控件 Date and time picker,如下图:图 6 添加时间控件3.1.2 设置导出模板本例设置的 excel 文件模板路径:"\\"+ServerName+"\Export\Export.xlsx",可根据项目情况采用其它导出路径和模板。

如果更换了模板或路径,必须修改导出脚本内的路径。

模板内主要设置了字体、数据格式、显示的小数点位数和列宽,也可再增加页眉、页脚、LOGO 等,以达到更好的显示效果。

3.2 画面打开在画面打开事件内,设置如下脚本,用于初始化画面内各控件:图 7 画面打开事件脚本3.3 选择数值参数版设计图 8 添加参数选择复选框设置复选框,在复选框更改事件下添加脚本:图 9 数据参数显示隐藏设置脚本图 10 脚本与控件属性对应关系 3.4 设置时间系数属性:TimeStepFactor图 11 修改时间间隔脚本图 12 修改时间系数 3.5 设定时间范围在查询按钮释放左键事件里:图 14 时间范围查询按钮事件图 14 时间范围查询按钮事件 3.6 导出在导出按钮释放左键事件里:图 16 导出按钮脚本图 17 导出后自动打开文件夹图 18 新增参数脚本图 19 新增参数运行效果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include "apdefap.h"
intgscAction( void )
{
#pragma code("kernel32.dll");
void GetLocalTime(SYSTEMTIME* lpst);
#pragma code();
SYSTEMTIME st;
const char param[512][30]={
"fq02_pv","cod2_pv","nh3_n2#_pv","fq01_pv","cod1_pv","nh3_n1#_ pv","DO_shc_pv","SS_shc_pv","gfj_1#gfj_A_PV","gfj_2#gfj_A_PV","LT_jsb f_PV","LT_psj_PV",
"LT_lc801_PV","LT_lc1_PV","LT_lc2_PV","LT_lc3_PV","LT_lc4_PV"};
char VarName[512][30]={
"Date","备用1","备用2","出水流量","出水COD","出水氨氮","进水流量","进水COD","进水氨氮","生化池溶解氧","生化池污泥浓度","1#鼓风机频率","2#鼓风机电流","进水房液位","配水井液位",
"滤池集水池液位","1#滤池液位","2#滤池液位","3#滤池液位","4#滤池液位"};
float fa;
int b1=0;
FILE *fp;
static char NameTemp[30];
static char temp[30];
char aatemp[3],aa1temp[5];
inti,x;
GetLocalTime(&st);
sprintf(aa1temp,"%4d",st.wYear);
sprintf(aatemp,"%02d",st.wMonth);//st.wMonth???????? strcpy(temp,"E:\\t");
strcat(temp,aa1temp);
strcat(temp,aatemp);
strcat(temp,".xls");
if(NameTemp!=temp){
SetTagBit("b1",0);//????????
}
{
if(GetTagBit("filtrate_mode_sign")==1)
SetTagChar("@mode_show","????");
else if(GetTagBit("rinse_mode_sign_1")==1)
SetTagChar("@mode_show"," ????");
else
SetTagChar("@mode_show","????"); }
if(GetTagBit("b1")==0){
if((fp=fopen(temp,"r"))==NULL){
b1=1;
SetTagBit("b1",0);
}
else{
b1=0;
SetTagBit("b1",1);
fclose(fp);
}
}
fp=fopen(temp,"a");
if(fp==NULL) return 0 ;
if(b1==1)
{
for(i=0;i<30;i++)//???VarName??????
{
fprintf(fp,"%s\t",VarName[i]);
}
fprintf(fp,"\n");
b1=0;
SetTagBit("b1",1);
}
strcpy(NameTemp,temp);
fprintf(fp,"%4d-%02d-%02d %02d:%02d:%02d\t",st.wYear,st.w Month,st.wDay,st.wHour,st.wMinute,st.wSecond);
fprintf(fp,"%s\t%s\t",GetTagChar("@CurrentUser"),GetTagChar(" @mode_show"));
for(x=0;param[x][0]!=0&&x<512;x++)
{
fprintf(fp,"%5.1f \t",GetTagFloat(param[x]));
}
fprintf(fp,"\n");
fclose (fp);
return 0;。

相关文档
最新文档