最近因为实际需要,wincc连接了部分的设备总共10台,因为每台设备都有相应的产量计数,在当班需要进行清零,这个关系到每个时间段的产量,所以要求同时归零。
鉴于此种情况,开始从wincc寻求解决问题的办法,第一步开始想办法将系统的时间取出:1、利用C脚本文件将系统时间读取,代码(只是把别人的东西复制了一下)如下:
#pragma option(mbcs)
#pragma code("kernel32.dll");
void GetLocalTime(SYSTEMTIME*lpst);
#pragma code();
SYSTEMTIME time;
GetLocalTime(&time);
SetTagWord("Data_Hour",time.wHour);
SetTagWord("Data_Month",time.wMonth);
SetTagWord("Data_Year",time.wYear);
SetTagWord("Data_Second",time.wSecond);
SetTagWord("Data_Minute",time.wMinute);
if (GetTagSWord("SECOND")== 10&&"Data_Second"== 10)//if语句后面取值必须使用GetTagSWord("tag_name")
SetTagDWord("module",100);
SetTagBit("ZERO",1);
}
else
{
SetTagDWord("module",200); //Return-Type: BOOL
SetTagBit("ZERO",0);
}
因为忽然之间有了其他的想法,所以这个帖子发的其实有点莫名其妙,现在完成后补充后面内容。实际上上面做的准备都是为了做WINCC的日报表、月报表、年报表使用的。因为生产需要进行产量统计,所以对统一性要求较高,使用WINCC同时赋值的方法进行统一(如果通讯中断,这个就很难进行了,如果有好的想法可以帮忙想下)。言归正传,做报表当时查阅百度第一方案为将数据读入SQL数据库,再通过WINCC的控件进行EXCEL导出,但是自己装的软件里面有控件未授权,没有办法完全实现,具体参考如下:
(2条消息) Wincc报表教程(SQL数据库的建立,wincc在数据库中保存和查询数据,调用Excel模板把数据保存到指定的位置和打印功能)_木子*泓泽的博客-CSDN博客_wincc报表
没办法只能再想其他办法,省掉SQL数据库的存储,直接将数据导出到EXCEL中,这样就产生了以日期为名称的日报表。具体代码如下:已经测试运行无误。
Dim objExcelApp,objExcelBook,objExcelSheet,a,b,i
Dim sheetname
sheetname="原数据" '工作表名称
Set objExcelApp =CreateObject("Excel.Application") '创建表格对象模型
objExcelApp.Visible=False '设置表格对象可见,不可见=False
Set a=objExcelApp.Workbooks.Open("C:\生产数据表_模板1") '如果存在打开该文件,
Set b=a.worksheets(sheetname)
i=10
objExcelApp.Worksheets(sheetname).Activate '激活工作表格
objExcelApp.Worksheets(sheetname).cells(i,8).value = Now()
objExcelApp.Worksheets(sheetname).cells(i,9).value =(HMIRuntime.Tags(变量1").Read
objExcelApp.Worksheets(sheetname).cells(i,10).value= HMIRuntime.Tags("变量2").Read
objExcelApp.Worksheets(sheetname).cells(i,11).value = HMIRuntime.Tags("变量3").Read
objExcelApp.Worksheets(sheetname).cells(i,13).value = 0
Dim patch,filename
filename=CStr(Year(Now))&"_"&CStr(Month(Now))&"_"&CStr(Day(Now))&"_"&CStr(Hour(Now))&"_"&CStr(Minute(Now))&"_"&CStr(Second(Now))
patch= "C:\报表\"&filename&".xlsx"
objExcelApp.ActiveWorkbook.SaveAs patch
objExcelApp.Workbooks.Close '退出工作簿
objExcelApp.Quit '表格模型退出
Set objExcelApp= Nothing'释放资源
Set fso=Nothing'释放资源
经过此脚本,就完成了日报表的导出。另外还有月报表,还不知道怎么做,不知道谁能给提供下帮助。
这样这个帖子算是有头有尾了