百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 软件资讯 > 正文

老董精心编写-WINCC组态软件生成EXCEL报表详细脚本

dezehang 2024-11-22 13:03 1 浏览

老董花了一上午的时间给大家准备了一篇,WINCC操作EXCEL的详细教程,并把程序里面每一行进行注释。

1、打开WINCC创建两个系统变量


2、创建全局动作

3、建立报表模板,建立报表存储目录

脚本中下划线内目录为报表存储目录:

sprintf(FileName,"d:\\报表\\%d年%d月%d日.xls",sysTime.wYear,sysTime.wMonth,sysTime.wDay);

//定义excel表格的文件名(当前年月)及存储位置

必须保证D盘中有报表文件夹,或者改脚本中目录名称。


脚本中下划线内目录为报表模板目录:

pExcel->Workbooks ->Open ("d:\\报表样本.xls");

//读取样表

必须保证模板存在此目录,模板是自己创建的,样式参考如下:


四、每行注释的脚本内容


#include "apdefap.h"
//包含头文件,也就是引用了APDEFAP.H里面包含的函数,这些函数基本上都是WINCC特有的。
int gscAction( void )
//定义一个无参数有返回值的函数。
{
//函数包含内容使用大括号
#pragma option(mbcs) 
 //WINCC自行添加,意义不明确,老董猜测应该是赋予程序某个参数!
#pragma code ("kernel32.dll")
 //引用库文件Kernel32,kernel32.dll属于Windows中非常重要的32位动态链接库文件。
static  int i=GetTagWord("h")+7;
//声明一个静态变量,为什么是静态?因为每一次执行的时候能够记忆上一次的值。这个I是行号,要根据你制作的EXCEL表格模板来确定起始行。
VOID GetLocalTime(LPSYSTEMTIME lpSystemTime);
//获取当前系统日期时间变量
#pragma code ()

char FileName[20] = "",Date[2] = "";
//定义文件名,日期的字符串变量。
SYSTEMTIME sysTime;
//系统日期时间对象对象创建
__object* pExcel = NULL; 
//创建一个pExcel对象
__object* fso=NULL;
//创建一个可以操作系统文件的对象,FSO全名是File System Object
GetLocalTime(&sysTime);
//读系统时间
sprintf(FileName,"d:\\报表\\%d年%d月%d日.xls",sysTime.wYear,sysTime.wMonth,sysTime.wDay);
//定义excel表格的文件名(当前年月)及存储位置,sprintf函数是格式化文本用的。
pExcel = __object_create("Excel.Application");
//将操作EXCEL的能力赋给pExcel对象。
fso=__object_create("Scripting.FileSystemObject");
//将系统操作文件的能力付给fso对象。
pExcel->Visible = 0;
//不在前台显示excle程序
if(!(fso->FileExists(FileName)))
  //判断以下是否有这个文件
{
pExcel->Workbooks ->Open ("d:\\报表样本.xls");//读取样表
  //没有就打开模板EXCEL。
pExcel->ActiveWorkbook->SaveAs(FileName);
  //将打开的模板另存为一个新的报表,已日期命名。
i=7;
  //将初始行定义为第7行,这个只在每一天的第一次运行执行,因为如果文件已经存在就不会再操作了。
}
__object_delete(fso);
//fso使用完了就可以销毁了,没有用的东西就不让它占用资源了。
pExcel->Workbooks ->Open (FileName);
pExcel->WorkSheets("Sheet1")->Cells(2,2)->Value=GetTagChar("date");//在第1行第2列写入tag1变量的值
pExcel->WorkSheets("Sheet1")->Cells(i,1)->Value=GetTagChar("time");//在第i行第1列写入tag1变量的值
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();
//退出EXCEL
__object_delete(pExcel); 
//删除PEXCEL对象
i=i+1; 
//下一次运行脚本,写入下一行
return 0; 
} 


相关推荐

WIN10系统如何安装UG10.0

随着科技的不断进步与更新,现在有很多公司己经安装上了WIN10的系统以及使用UG10.0了,但很多人反映WIN10系统安装UG10.0不好装,以下详细介绍一下1如果WIN10系统没有自带有JAVA需...

自学UG编程的心得分享

为什么有的人3个月学会基本的UG建模画图编程,有的断断续续3——5年才学会,还有的人干了7年的加工中心还不会电脑画图编程。这是什么原因?1.顾虑太多,什么都想得到,什么都想一起抓,总是上班加班没时间,...

UG/NX 绘制一个捞笊(zhào)模型,或者也可以叫它漏勺?

今天我们来看看这个模型,起因是群里有小伙伴说要做一个捞笊的模型,看见这名字直接给我整懵了,然后他发了张家里漏勺的图片才知道原来这玩意还有个这种名字。这东西相信每个小伙伴家里都有吧,它的建模方法也比较...

再也不用为学UG编程发愁了!380集最新UG资料免费送

上期发的UG教程很多粉丝都领到了,收获越来越多的好评!有你们一直陪伴真的很高兴,谢谢各位粉丝!为了给大家提供更优质的资源,这两个月都在整理你们最关心的UG资源,都是多位编程工厂老师傅的工厂实战精华,真...

优胜原创UG_3-4-5轴后处理下载

反复上机调试,安全稳定可靠,请放心使用2020.11.21,修复YSUG4-5轴后处理锁轴输出...

青华模具学院-UG10.0安装文件说明

青华模具学院分享:今天我们来跟大家一起学习NX10.0版本的安装方法,网上有很多这个版本的安装视频以及方法图文,但到最终安装软件时仍有很多新手对安装仍然感到头痛,基于这样的情况,我们特别就NX10.0...

UGnx10安装说明

温馨提示,安装前,请退出杀毒软件,关闭防火墙,因为这些软件可能阻断NX主程序和许可程序间的通信,导致安装后,软件无法启动。1、解压下载后的压缩包,右键,选择‘’解压到UGNX10_64位正式版(csl...

正版UG软件,正版UG代理,正版软件和盗版软件的区别

大家都知道,UG软件是制造业必不可少的一款三维软件,广泛应用于:CAE(有限元分析),CAD(产品设计/模具设计),CAM(计算机辅助制造编程),那么有人不禁要问了,正版软件和盗版软件在使用上有明显区...

非常全面的UG加工模块中英对照(图标注释)

大家好,我是粥粥老师,听说很多同学都在学习UG但是没有学习资料和安装包,今天粥粥老师就全部打包好免费发放给你们,那么怎么获取全套资料图档安装包呢领取途径①关注②评论、点赞、转发③私信“UG或者...

腾讯自研Git客户端 UGit|Git 图形界面客户端

支持平台:#Windows#macOS腾讯推出的一款Git图形界面客户端,简化了Git的使用流程,特别适合处理大型项目和文件。支持直接提交和推送操作,避免在大规模项目中由于远程频繁变更而导致...

经典收藏:UG重用库的一些不为人知小技巧

免费领取UG产品编程、UG多轴UG模具编程、安装包安装教程图档资料关注私信我“领取资料”,即可免费领取完整版,感谢支持,爱你们哟,么么主题:UG后处理+仿真+外挂UG重用库的正确使用方法:首先有...

UG编程常用指令G、M代码,快收藏好

今天给大家分享数控编程常用的指令代码,希望对正在学习路上的你带来一丝丝帮助。最好的方法就是转发到自己空间,方便以后学习。对了,如果你还需要其他UG教程学习资料,CNC加工中心的一些参数,以及UG画图,...

UG NX7.0中文版从入门到精通

Unigraphics(简称UG)是一套功能强大的CAD/CAE/CAM应用软件,UGNX7是其最新版本。《UGNX7从入门到精通(中文版)》以UGNX7为平台,从工程应用的角度出发,通过基...

经典UG建模基础练习图纸

UG是目前工作中比较优秀拥有大量用户的一款机械模具产品行业三维设计软件,cam加工丶软件支持全中文汉化;能够带给用户更为非凡的设计与加工新体验。很多朋友私信小编问有没有UG建模练习图纸,今天给大家分享...

UG NC软件基础操作,如何设置UG草图精度

默认情况下我们绘制草图一般只保留一位小数,即使你输入多位小数软件也会自动四舍五入,这个你做一些国标的图还好,国标以毫米为单位,一般保留小数点后一位就够了,但如果你做的图是英制单位,那么保留一位小数肯定...