wincc_to_excel

上传人:mg****85 文档编号:34137634 上传时间:2018-02-21 格式:DOC 页数:6 大小:43KB
返回 下载 相关 举报
wincc_to_excel_第1页
第1页 / 共6页
wincc_to_excel_第2页
第2页 / 共6页
wincc_to_excel_第3页
第3页 / 共6页
wincc_to_excel_第4页
第4页 / 共6页
wincc_to_excel_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《wincc_to_excel》由会员分享,可在线阅读,更多相关《wincc_to_excel(6页珍藏版)》请在金锄头文库上搜索。

1、可以用 C 脚本,我已经照此例子实验,可以自动生成 EXCEL 文件给你转个论坛的帖子做参考取之于“民”用之于“民”,几段代码,希望对后来者有帮助,不要见笑。1、记录脚本:同一卡片号的每一根钢的数据记录,有多少根,记多少行#include apdefap.hint gscAction( void )#pragma code ()char FileName20 = ;double genshu,row,col;_object* pExcel = NULL; genshu=GetTagDouble(记数根数 ); SetTagDouble(根数记录,genshu);row=genshu+4;if(

2、GetTagBit(钢温记录信号)=1)pExcel = _object_create(Excel.Application.9); /9 表示用的是 office 2000pExcel-Visible =0;pExcel-Workbooks -Open (e:LZEQ_HMIJILU.xls);/Cells(row,col)pExcel-Worksheets(sheet1)-Cells(row,1)-Value=GetTagWord(记数根数); pExcel-Worksheets(sheet1)-Cells(row,2)-Value=GetTagChar(开始时间);pExcel-Works

3、heets(sheet1)-Cells(row,3)-Value=GetTagWord(1#高温计温度记录);pExcel-Worksheets(sheet1)-Cells(row,4)-Value=GetTagFloat(1#水箱流量记录);pExcel-Worksheets(sheet1)-Cells(row,5)-Value=GetTagWord(2#高温计温度记录);pExcel-Worksheets(sheet1)-Cells(row,6)-Value=GetTagFloat(2#水箱流量记录);pExcel-Worksheets(sheet1)-Cells(row,7)-Value

4、=GetTagWord(3#高温计温度记录);pExcel-Worksheets(sheet1)-Cells(row,8)-Value=GetTagFloat(3#水箱流量记录);pExcel-Worksheets(sheet1)-Cells(row,9)-Value=GetTagWord(4#高温计温度记录);pExcel-Worksheets(sheet1)-Cells(row,10)-Value=GetTagWord(5#高温计温度记录);pExcel-Worksheets(sheet1)-Cells(row,11)-Value=GetTagFloat(4#水箱流量记录);pExcel-

5、Worksheets(sheet1)-Cells(row,12)-Value=GetTagWord(6#高温计温度记录);pExcel-Worksheets(sheet1)-Cells(row,13)-Value=GetTagWord(7#高温计温度记录);pExcel-Worksheets(sheet1)-Cells(row,14)-Value=GetTagFloat(5#水箱流量记录);pExcel-Worksheets(sheet1)-Cells(row,15)-Value=GetTagWord(8#高温计温度记录);pExcel-Worksheets(sheet1)-Cells(row

6、,16)-Value=GetTagChar(系统时间);SetTagBit(钢温记录信号,0);pExcel-ActiveWorkbook-Save;pExcel-Workbooks-Close();pExcel-Quit();_object_delete(pExcel);return 0; 2、存储脚本。每一卡片号的钢记录为一张以卡片号为名的 Excel 表#include apdefap.hint gscAction( void )#pragma code (kernel32.dll)VOID GetLocalTime(LPSYSTEMTIME lpSystemTime);#pragma

7、code ()char FileName20 = ;char* Name;float guige,hao;#pragma code(kernel32.dll)BOOL DeleteFileA(LPCTSTR lpFileName);/声明 API 函数。#pragma code()SYSTEMTIME sysTime;_object* pExcel = NULL; GetLocalTime(hao=GetTagFloat(卡片号_22);/Name=GetTagChar(卡片号_22);if (hao=0)Name=GetTagChar(系统时间);elseName=GetTagChar(卡片

8、号_22);guige=GetTagFloat(轧制规格_22);if (guige1000)guige=guige/100;SetTagFloat(成品规格记录,guige);elseSetTagFloat(成品规格记录,guige);if (guige100)&(guigeVisible = 0;pExcel-Workbooks -Open (e:LZEQ_HMIJILU.xls);pExcel-Worksheets(sheet1)-Range(A2)-Value=GetTagChar(形状);pExcel-Worksheets(sheet1)-Range(A1)-Value=GetTag

9、Char(控冷);pExcel-Worksheets(sheet1)-Range(C2)-Value=GetTagFloat(成品规格记录);pExcel-Worksheets(sheet1)-Range(F2)-Value=GetTagChar(开始日期 1);pExcel-Worksheets(sheet1)-Range(J2)-Value=GetTagChar(系统日期);pExcel-Worksheets(sheet1)-Range(C3)-Value=GetTagDouble(卡片号_22);pExcel-Worksheets(sheet1)-Range(F3)-Value=GetT

10、agChar(钢种_22);pExcel-Worksheets(sheet1)-Range(I3)-Value=GetTagChar(炉号_22);pExcel-Worksheets(sheet1)-Range(L3)-Value=GetTagChar(来料规格_22);pExcel-Worksheets(sheet1)-Range(O3)-Value=GetTagChar(本卡片号根数_22);pExcel-ActiveWorkbook-SaveAs(FileName);pExcel-Workbooks-Close();pExcel-Quit();_object_delete(pExcel)

11、;DeleteFileA(e:LZEQ_HMIJILU.xls);/调用 API 函数。pExcel = _object_create(Excel.Application.9); /9 表示用的是 office 2000pExcel-Visible =0;pExcel-Workbooks -Open (e:LZEQ_HMI运行数据库初始 JILU.xls);pExcel-ActiveWorkbook-SaveAs(e:LZEQ_HMIJILU.xls);pExcel-Workbooks-Close();pExcel-Quit();_object_delete(pExcel);SetTagBit

12、(转存,0);return 0; 3、记录卡片号查询代码char FileName256;sprintf(FileName,C:Program FilesMicrosoft OfficeOfficeExcel.exe e:LZEQ_HMI记录%s.xls,GetTagChar(查询卡片号);ProgramExecute(FileName);6AV6371-1DN06-2AX0 WINCC Option DataMonitor V6.2 带 3 个客户机利用 C 脚本实现 excel 报表:1、在 WinCC 里面写一个全局脚本,在每天的 00:00:01 触发,执行复制 Day_Report.

13、xls 并以此刻的年月日加载到模板文件名里面,将复制新生产的“Day_Report 年月日.xls”存盘到你指定的目录。这样当天的空白日报文件也就有了。全局脚本代码如下:(本人测试通过,仅供参考)#include apdefap.hint gscAction( void )#pragma code (kernel32.dll)/调用动态链接库VOID GetLocalTime(LPSYSTEMTIME lpSystemTime);#pragma code ()#pragma code(Shell32.dll)/调用动态链接库VOID ShellExecuteA(HWND, LPCTSTR ,

14、LPCTSTR , LPCTSTR , LPCTSTR , INT);#pragma code()char FileName30 = ; char DateTime30 = ;SYSTEMTIME sysTime;_object* pExcel = NULL; /建立 pExcel 指针 用来对 EXCEL 进行操作HWND handle=NULL;handle=FindWindow(NULL,WinCC-运行系统 - );GetLocalTime(sprintf(FileName,d:Day_Report_%02d-%02d-%02d.xls,sysTime.wYear,sysTime.wM

15、onth,sysTime.wDay);pExcel = _object_create(Excel.Application);pExcel-Visible = 0;/控制生成的 excel 文件是否可见,当 1 时,生成 excel 文件时可见.pExcel-Workbooks -Open (d:Day_Report.XLS);pExcel-ActiveWorkbook-SaveAs(FileName);/存盘/pExcel-ActiveWorkbook-PrintPreview();/可以预览/pExcel-ActiveWorkbook-PrintOut();/直接打印pExcel-Workbooks-Close();/关闭文件pExcel-Quit();/退出 Excel_object_delete(pExcel);return 0;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号