回复:wincc的打开excel表脚本的问题

学徒级人物

  • 帖子

    105
  • 精华

    0
  • 被关注

    1

论坛等级:游侠

注册时间:2011-09-26

普通 普通 如何晋级?

发布于 2011-10-17 17:28:18

31楼

恩 好的 谢谢youhm
项目主要的要求如下,wincc有一个输入输出域,对应的条形码扫描枪,,wincc上还有一些其他的状态显示点,只显示相应的状态是YES或者NO
excel模板如下:
序列号 时间 测试1 (Y/N) 测试2(y/n) 测试3(Y/S) 综合(Y/S)

(因为图上不了,所以只能这样了)
其主要功能是这样的,当我扫描一个代码时,出现在这个I/O域,同事出现在一个自动打开的excel上,然后根据PLC的程序测试功能测试出一些功能是否正常并显示到WINCC上,也即我刚刚说的状态显示点(YES/NO),当这些状态全部测完后,给出这个机器的综合检测报告是Y/N,然后扫描下一个,仍然测试这些功能,这些出现在下一行里,全部测完给一个综合的检测报告。。。如此不断扫描和循环。。给出结论
我目前的事实验版的,画面如下:
(只做了一个I/O域,一个按钮,一个显示次数的)
代码如下:
On Error Resume Next '此句必须有,防止无EXCEL进程时GetObject出错退出
Dim xlsname,xlapp,xlbook,xlsheet,isOpen,i,TagName,TagValue,Layer,Cur_row
xlsname="E:\789.xls" 'Excel文档路径
Set xlapp=GetObject(,"Excel.Application") '获取当前运行的Excel应用程序对象
If TypeName(xlapp)="Application" Then 'Excel已打开,遍历工作薄查找对应文档是否已打开
For Each xlbook In xlapp.Workbooks
If xlbook.FullName=xlsname Then
isOpen=True
Exit For
End If
Next
If Not isOpen Then '如果对应文档没打开则打开
Set xlbook=xlapp.Workbooks.Open(xlsname)
End If
Else '当前没有打开Excel程序则创建Excel应用程序并打开对应的文档
Set xlapp=CreateObject("Excel.Application")
Set xlbook=xlapp.Workbooks.Open(xlsname)
End If

xlapp.visible=True
Set xlsheet=xlbook.WorkSheets("sheet1")
layer=HMIRuntime.Tags ("layer").Read

xlsheet.cells(xlsheet.range("A65536").end(3).row+1,2).value=Now
xlsheet.cells(xlsheet.range("A65536").end(3).row+1,1).value=ScreenItems("aa1").outputvalue

xlapp.activeworkbooks.save
以上仅实现单列逐行自动换行。我扫描一个代码,按下测试开始,然后可以自动打开一个excel表,然后记录下当前的序列号和时间,后面的测试结果的变量目前还没有写,其中还有显示测试的数量。如excel模板上所示,wincc上对应的每个测试结果的变量只有一个,而当扫描代码改变的时候就需要自动换下行再测试,然后将测试结果显示到EXCEL中,功能就是这样的一个功能。
最好的永远没有
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有32564条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。