永发信息网

wincc导出excel

答案:4  悬赏:0  手机版
解决时间 2021-04-16 16:56
  • 提问者网友:川水往事
  • 2021-04-15 22:35
wincc导出excel
最佳答案
  • 五星知识达人网友:举杯邀酒敬孤独
  • 2021-04-15 23:44
我是这样写的,能保存,你看看合适不
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END

// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
#pragma code ("kernel32.dll")
VOID GetLocalTime(LPSYSTEMTIME lpSystemTime);
#pragma code ()
//原有控制变量
float mycoolingtem,mycoolingtime;
extern float coolingtime[17],coolingtem[17],coolingtemmid[1800];
extern BOOL shuifa_kaiguan[16],famen_xuanze[4];
short int i,p,temperature_number;
float maxtime,j;
//字符串循环变量
char FileName[20] = "";
SYSTEMTIME sysTime;
int k;
char FieldString[20];
//Excel指针
__object* pExcel = NULL;
GetLocalTime(&sysTime);
sprintf(FileName,"d:\\%d-%d-%d-%d-%d-%d.xls",sysTime.wYear,sysTime.wMonth,sysTime.wDay,sysTime.wHour,sysTime.wMinute,sysTime.wSecond);
pExcel = __object_create("Excel.Application.11");
pExcel->Visible = 1;
pExcel->Workbooks ->Open ("d:\\book1.xls");
for(k=1;k<=150;k++)
{
sprintf(FieldString, "%s%d", "A",k);
printf("%s\n",FieldString);
pExcel->Worksheets("sheet1")->Range(FieldString)->Value=12;
}
pExcel->ActiveWorkbook->SaveAs(FileName);
pExcel->Workbooks->Close();
pExcel->Quit();
__object_delete(pExcel);
}
全部回答
  • 1楼网友:从此江山别
  • 2021-04-16 01:44
OPC是一个解决方案,我有下载的西门子示例,可以通过Excel定时读取,但不很方便,因为让excel一直运行不是很好;
另一个就是写Vb脚本,将数据定时写入SQL数据库,然后通过控件调用Excel获取数据显示在Wincc上。
  • 2楼网友:十年萤火照君眠
  • 2021-04-16 00:50
Wincc5.x你可以通过DDE通讯与Execl进行通讯。
如果使用OPC,那么你需要使用Wincc5作为OPC服务器,Execl中使用VBA脚本来写OPC客户端,相信你的编程能力还不能自己写客户端程序,还是用DDE吧。
  • 3楼网友:有你哪都是故乡
  • 2021-04-16 00:43
wincc5.0版本够老的了,可以使用opc通讯,也就是在excel中调用vba的脚本就可以了,具体的请参照西门子自动化与驱动集团的官方网站,上面有很详细的解释的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯