WINCC操作EXCEL的详细教程,并把程序里面每一行进行注释。1、打开WINCC创建两个系统变量 创建Date和Time变量,注意地址一定要对。这个是系统变量。
 time变量创建  date变量创建 2、创建全局动作 设置全局动作触发器为每小时0分0秒触发 3、建立报表模板,建立报表存储目录脚本中下划线内目录为报表存储目录:sprintf(FileName,"d:\\报表\\%d年%d月%d日.xls",sysTime.wYear,sysTime.wMonth,sysTime.wDay); //定义excel表格的文件名(当前年月)及存储位置 必须保证D盘中有报表文件夹,或者改脚本中目录名称。
脚本中下划线内目录为报表模板目录:pExcel->Workbooks ->Open ("d:\\报表样本.xls"); //读取样表 必须保证模板存在此目录,模板是自己创建的,样式参考如下:
 自己创建现需要的报表样式 四、每行注释的脚本内容
int gscAction( void )
{
static int i=GetTagWord("h")+7;
VOID GetLocalTime(LPSYSTEMTIME lpSystemTime);
char FileName[20] = "",Date[2] = "";
SYSTEMTIME sysTime;
__object* pExcel = NULL;
__object* fso=NULL;
GetLocalTime(&sysTime);
sprintf(FileName,"d:\\报表\\%d年%d月%d日.xls",sysTime.wYear,sysTime.wMonth,sysTime.wDay);
pExcel = __object_create("Excel.Application");
fso=__object_create("Scripting.FileSystemObject");
pExcel->Visible = 0;
if(!(fso->FileExists(FileName)))
{
pExcel->Workbooks ->Open ("d:\\报表样本.xls");
pExcel->ActiveWorkbook->SaveAs(FileName);
i=7;
}
__object_delete(fso);
pExcel->Workbooks ->Open (FileName);
pExcel->WorkSheets("Sheet1")->Cells(2,2)->Value=GetTagChar("date");
pExcel->WorkSheets("Sheet1")->Cells(i,1)->Value=GetTagChar("time");
pExcel->WorkSheets("Sheet1")->Cells(i,2)->Value=GetTagFloat("1#pump_current");
pExcel->WorkSheets("Sheet1")->Cells(i,3)->Value=GetTagFloat("2#pump_current");
pExcel->WorkSheets("Sheet1")->Cells(i,4)->Value=GetTagFloat("3#pump_current");
pExcel->WorkSheets("Sheet1")->Cells(i,5)->Value=GetTagFloat("1#pump_pressure");
pExcel->WorkSheets("Sheet1")->Cells(i,6)->Value=GetTagFloat("2#pump_pressure");
pExcel->WorkSheets("Sheet1")->Cells(i,7)->Value=GetTagFloat("3#pump_pressure");
pExcel->WorkSheets("Sheet1")->Cells(i,8)->Value=GetTagFloat("inlet_water_flow");
pExcel->WorkSheets("Sheet1")->Cells(i,9)->Value=GetTagFloat("outlet_water_flow");
pExcel->WorkSheets("Sheet1")->Cells(i,10)->Value=GetTagFloat("water_to_cleantank_flow");
pExcel->WorkSheets("Sheet1")->Cells(i,11)->Value=GetTagFloat("drain_water_flow");
pExcel->WorkSheets("Sheet1")->Cells(i,12)->Value=GetTagFloat("turbidity_1");
pExcel->WorkSheets("Sheet1")->Cells(i,13)->Value=GetTagFloat("turbidity_2");
pExcel->WorkSheets("Sheet1")->Cells(i,14)->Value=GetTagFloat("PH");
pExcel->WorkSheets("Sheet1")->Cells(i,15)->Value=GetTagFloat("inlet_water_level");
pExcel->WorkSheets("Sheet1")->Cells(i,16)->Value=GetTagFloat("subside_tank_1_level");
pExcel->WorkSheets("Sheet1")->Cells(i,17)->Value=GetTagFloat("subside_tank_2_level");
pExcel->WorkSheets("Sheet1")->Cells(i,18)->Value=GetTagFloat("subside_tank_3_level");
pExcel->WorkSheets("Sheet1")->Cells(i,19)->Value=GetTagFloat("subside_tank_4_level");
pExcel->WorkSheets("Sheet1")->Cells(i,20)->Value=GetTagFloat("cleantank_level");
pExcel->WorkSheets("Sheet1")->Cells(i,21)->Value=GetTagFloat("PAC_flow");
pExcel->WorkSheets("Sheet1")->Cells(i,22)->Value=GetTagFloat("PAC_tank_1_level");
pExcel->WorkSheets("Sheet1")->Cells(i,23)->Value=GetTagFloat("PAC_tank_2_level");
pExcel->WorkSheets("Sheet1")->Cells(i,24)->Value=GetTagFloat("NACIO_1_flow");
pExcel->WorkSheets("Sheet1")->Cells(i,25)->Value=GetTagFloat("NACIO_2_flow");
pExcel->WorkSheets("Sheet1")->Cells(i,26)->Value=GetTagFloat("1#pump_current_CPU2");
pExcel->WorkSheets("Sheet1")->Cells(i,27)->Value=GetTagFloat("1#pump_frequency_CPU2");
pExcel->WorkSheets("Sheet1")->Cells(i,28)->Value=GetTagFloat("2#pump_current_CPU2");
pExcel->WorkSheets("Sheet1")->Cells(i,29)->Value=GetTagFloat("3#pump_current_CPU2");
pExcel->WorkSheets("Sheet1")->Cells(i,30)->Value=GetTagFloat("1#pump_pressure_CPU2");
pExcel->WorkSheets("Sheet1")->Cells(i,31)->Value=GetTagFloat("2#pump_pressure_CPU2");
pExcel->WorkSheets("Sheet1")->Cells(i,32)->Value=GetTagFloat("3#pump_pressure_CPU2");
pExcel->WorkSheets("Sheet1")->Cells(i,33)->Value=GetTagFloat("outlet_water_flow_CPU2");
pExcel->WorkSheets("Sheet1")->Cells(i,34)->Value=GetTagFloat("outlet_water_pressure_CPU2");
pExcel->WorkSheets("Sheet1")->Cells(i,35)->Value=GetTagFloat("turbidity");
pExcel->WorkSheets("Sheet1")->Cells(i,36)->Value=GetTagFloat("PH_CPU2");
pExcel->WorkSheets("Sheet1")->Cells(i,37)->Value=GetTagFloat("CL");
pExcel->ActiveWorkbook->Save();
pExcel->Workbooks->Close();
pExcel->Quit();
__object_delete(pExcel);
i=i+1;
return 0;
}
|