vbs 中的填表的循环的问题

Option Explicit
 Function action
  Dim fso,fname,timee,ttt
  Set fso = CreateObject("scripting.FileSystemObject")
  fname="D:\data\" & FormatDateTime(Date,2) & ".xls" 
  Dim ObjExcelApp
  Set objExcelApp = CreateObject("Excel.Application")
  objExcelApp.Workbooks.Open fname
 ttt=HMIRuntime.Tags("NewTag_1")
 ttt.Read
 objExcelApp.worksheets ("sheet1").Cells(3, ttt+2).VAlue =FormatDateTime(Date,2)
  objExcelApp.worksheets ("sheet1").Cells(4, ttt+2).VAlue = HMIRuntime.Tags("tag1").read
  objExcelApp.worksheets ("sheet1").Cells(5, ttt+2).VAlue = HMIRuntime.Tags("tag2").read
  objExcelApp.worksheets ("sheet1").Cells(6, ttt+2).VAlue = HMIRuntime.Tags("tag2").read
 objExcelApp.worksheets ("sheet1").Cells(8, ttt+2).VAlue = Now
 ttt.Value=ttt.Value+1
 ttt.Write
  objExcelApp.ActiveWorkbook.Save
  objExcelApp.Workbooks.ClosE
  objExcelApp.QuiT
  Set ObjEXceLapp = Nothing

 End Function
 如上面程序,我在wincc做了个变量"NewTag_1",浮点数,在10点50运行起wincc后付给他起始值为1。这段程序是在每个整点的00:01触发,可是到11:20后,在wincc的运行画面中看到的他的值还是1,而不是递加后的2,问题出在哪里?

问题补充:
1.我的newtage_1就是全局变量;
 2.这个是c语言的啊,怎么转成vbs的呢
 3。我试了还是不行,而且我的这个写的方式就是深入浅出wincc中的示例。
 那个值就是不变的,不随调用一次就累加一次。

最佳答案

有个笨方法,写个全局动作,整点触发一次,调用API函数获取整点时间,根据时间来改变WINCC变量的值  ,这个变量就是你的"NewTag_1",再将这个值赋给tt就可以了。

 #pragma code ("kernel32.dll");  
  void GetLocalTime (SYSTEMTIME* lpst);  
   #pragma code();  
   SYSTEMTIME time;  
   Int t1;  
   GetLocalTime(&time);  
  t1=time.wMinute;  
  if(t1==00)  
  {  
   SetTagDWord("NewTag_1",1);  
    }  
  if(t1==1)  
  {  
   SetTagDWord("NewTag_1",2);  
    }  
 ......
 .....
 ......
 仅供参考

提问者对于答案的评价:
那两个都不行,只能选你了。呵呵

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

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

相关推荐

  • 两台电脑WINCC报警控件怎么显示不同的报警信息?

    现有一台s7-1500PLC控制两台车间的设备,两个个车间分别放了一台操作电脑,现在想把两个车间的报警信息分开,只显示本车间的信息,这个应该怎么做呢? 两台电脑的WINC…

    2021年7月5日
  • 外部变量连接I/O域

    定义了一个外部变量,在画面放了一个I/O域连接这个外部变量,更新周期为250ms。运行,I/O域出现感叹号,输入数值无效。那位老兄给指教。 问题补充:没有连接PLC,只是在winc…

    SIMATIC WinCC 2019年6月11日
  • S7300 WINCC 343-1 交换机

    有一个工程用S7300 PLC(带343-1通信模块和一台交换机),有两台上位机(一台为操作员站,一台为工程师站),要求两台上位机通过交换机与PLC进行通讯(上位机组态软…

    SIMATIC WinCC 2019年6月11日
  • wincc c动作

    在wincc项目中,画面上的对象只有一处可以点击,而我看了该对象的c脚本共有3处编程(点击功能),为什么另两处鼠标指向时没有闪电符号(就是不能点击)? 问题补充:c脚本中所编辑的属…

    SIMATIC WinCC 2018年12月5日
  • 运行了一段程序造成 无法正常从开始菜单中关机 重启 注销

    在WINCC中用C语言写了一段代码以一分钟周期运行之后,点击开始中的关机…出现对话框后再点击关机 重启 注销都没有反应.关闭了这段代码的运行,问题依旧出现. &nbs…

    SIMATIC WinCC 2019年6月11日
  • WinCC内部变量数值变化事件

    内部变量Tag_1(文本变量8位字符集),当Tag_1内容改变时,使Tag_2(二进制变量)置1.想实现这个功能,请高手指教. 最佳答案 在wincc全局脚本中添加动作,VBS或者…

    SIMATIC WinCC 2020年11月1日
  • 无法访问所选的OPC服务器

    我装的是WINCC 7.0 SP3   PC ACCESS V1.0 SP6  …

    2017年8月3日
  • WIncc6.2 具体装哪几个授权

    WIncc6.2 具体装哪几个授权 最佳答案 这要看你的wincc干什么用,不同的功能需要不同的授权,如果只是运行要运行授权(rc),如果要开发,需要完整授权(rt),如…

    SIMATIC WinCC 2019年6月11日
  • WinCC flexible SMART V3编译时报警内部错误

    内部错误(详情:路径中具有非法字符) 问题补充:更改项目保存路径为纯英文后还是出现这个错误 最佳答案 新建项目尝试。如果还是出现上述错误,建议检查软件安装情况。smart&nbsp…

    SIMATIC WinCC 2021年7月5日
  • wincc7.4sp1分屏显示问题

    前辈们好,现在我在做一个项目,有两台显示器共用一台主机。客户要求一台显示器显示操作画面并可以进行相关操作;一台显示器显示历史曲线。请教一下前辈该如何实现呢 问题补充:我要实现的是显…

    SIMATIC WinCC 2021年7月5日