为何无法循环

void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
 {
 int i;

 #pragma code ("kernel32.dll")//调用动态链接库

 VOID GetLocalTime(LPSYSTEMTIME lpSystemTime);

 #pragma code ()

 #pragma code("Shell32.dll")//调用动态链接库

 VOID ShellExecuteA(HWND, LPCTSTR , LPCTSTR , LPCTSTR , LPCTSTR , INT);

 #pragma code()

 char FileName[30] = "";    

 SYSTEMTIME sysTime;

 __object* pExcel = NULL; //建立 pExcel 指针 用来对 EXCEL 进行操作

 HWND handle=NULL;

 handle=FindWindow(NULL,"WinCC-运行系统 - ");

 GetLocalTime(&sysTime);

 //***********************************

 SetTagWord("Minute",sysTime.wMinute);

 i=GetTagWord("Minute")+2;

 if (i>26)   { GetTagWord("Minute")  ;}

 else    if (i<=26)  

 {

 sprintf(FileName,"d:\\Day_Report_%02d-%02d-%02d.xls",sysTime.wYear,sysTime.wMonth,sysTime.wDay);

 pExcel = __object_create("Excel.Application"); 

 pExcel->Visible = 0;//控制生成的excel文件是否可见,当1时,生成excel文件时可见.

 pExcel->Workbooks ->Open (FileName);

 pExcel->Worksheets("sheet1")->Cells(i,1)->Value=GetTagChar("shijian");//Return-Type: char* 读取当前计算机名

 pExcel->Worksheets("sheet1")->Range("X2")->Value=GetTagChar("@CurrentUser");//Return-Type: char* 读取当前操作员

 pExcel->Worksheets("sheet1")->Cells(i,2)->Value=GetTagChar("TAG1");

 pExcel->Worksheets("sheet1")->Cells(i,3)->Value=GetTagFloat("TAG2"); 

 pExcel->Worksheets("sheet1")->Cells(i,4)->Value=GetTagFloat("TAG3");  

 pExcel->Worksheets("sheet1")->Cells(i,5)->Value=GetTagFloat("TAG4");  

 pExcel->Worksheets("sheet1")->Cells(i, 6)->Value=GetTagFloat("TAG5");    

 pExcel->Worksheets("sheet1")->Cells(i,7)->Value=GetTagFloat("TAG6"); 
 pExcel->ActiveWorkbook->Save;//As(FileName);//存盘~

 pExcel->ActiveWorkbook->PrintPreview();//可以预览

 //if (i>=27)  {  pExcel->ActiveWorkbook->PrintOut();  }//直接打印

 pExcel->Workbooks->Close();//关闭文件

 pExcel->Quit();//退出Excel

 __object_delete(pExcel); 

 }
 }
 此段脚本是我在网上的找的一段从Wincc向EXCEL写数据的实例循环周期为1分钟,原来是横向按列写数据的(即一变量对应一行),后来改动了下写数据格式,发现无法实现换行写数据,没查出原因来,请前辈们指点下

最佳答案

是否换行主要i有没有变化,从脚本中可以看出i取决与当前系统时间的分钟。
 可能的原因是Minute变量不存在。

提问者对于答案的评价:
你好107,我建了Minute变量,全局脚本的触发周期选1S,监控Minute变量是循环变化的,可对应的换行写数据还是无法实现,也注意了应用进程里的EXCEL程序

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc274134.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午10:30
下一篇 2019年6月11日 上午10:30

相关推荐

  • wincc 能否存储字符串?

    谢谢! 问题补充:用户归档需要授权吗? 最佳答案 用户归档或者报警归档! 提问者对于答案的评价:还可以了!

    SIMATIC WinCC 2019年6月11日
  • Wincc 与 第三方设备通讯,对方是带Modbus 的Lontalk LCI-C接口

    如何实现Wincc 从Trane特灵制冷机通讯。特灵可提供=带Modbus的LonTalk LCI-C接口 最佳答案 向制冷设备供应商要通讯参数地址对应表和接口…

    SIMATIC WinCC 2017年11月4日
  • WINCC 脚本占用资源

    流水状态制作:用一线条:属性—几何—位置X–C动作,但是保存是提示:“循环动作导致系统高负载,如果可能使用触发器变量”! 这句话意思是否C动作会增加WINCC负载?…

    SIMATIC WinCC 2019年6月11日
  • wincc运行界面里面怎么调用屏幕键盘?

    请问wincc高手:在wincc运行界面里面用什么方法调用屏幕键盘?如果做一个按钮,在这个按钮里面应该编写什么脚本程序? 最佳答案 WinCC Explorer打开项目后…

    SIMATIC WinCC 2019年6月11日
  • TIA activeX部件不能创建

    请教,TIA V13版本 V13 SP1 Update 9,在wince系统下运行实例提示“activeX部件不能创建”怎么解决。…

    SIMATIC WinCC 2017年6月3日
  • WinCC按钮指示灯

    刚字WinCC向各位请教, 1、如何在画面上做一个文本域,当所连变量动作后文本内容及背景颜色也作相应变化,如电机停止行显示“电机停止”,电机运行时显示“电机运行”,同时背…

    SIMATIC WinCC 2019年6月11日
  • WINCC求助:急!!!

    因为报警消息控件,WINCC瘫痪了! WINCC本来运行正常,只因为我加了个报警画面,在画面里添加了一个报警控件,用来显示消息列表。结果激活该画面做模拟运行时,激活到5%…

    SIMATIC WinCC 2019年6月11日
  • 复制图形编辑器的全部项目的方法

    想将一个工程中的全部图形复制到另一个项目中,用什么办法呢 最佳答案 WinCC在项目的GraCS子目录下的*.PDL文件 WinCC Flexible可直接导出…

    SIMATIC WinCC 2019年6月11日
  • wincc中结构变量具体是做什么用的?

    wincc中结构变量具体是做什么用的? 问题补充:在通信协议下建立的变量和在结构变量下建立的变量有什么区别? 最佳答案 我使用结构变量主要是配合画面模板功能。画面中的变量全部使用结…

    SIMATIC WinCC 2019年6月11日
  • wincc按钮怎样才能做出水晶效果

    就是像win7的按钮一样亮晶晶的效果,曾经在老外的电脑上见过确定使用的是wincc,不知道需要哪个版本的,还有怎样做才行? 问题补充:用图片的方式可就麻烦了,而且也不能变色了 最佳…

    SIMATIC WinCC 2021年7月5日