WinCC和EXCEL数据传递

合集下载

ecel表格和WINCC报表

ecel表格和WINCC报表

如何使用WinCC DataMonitor 基于Web 发布浏览Excel 报表文档How to use WinCC DataMonitor publish and view excel document base on Web文档类型(Getting-started)Edition (2008 年7 月)摘要本文介绍使用WinCC DataMonitor 的"Excel Workbooks",通过Excel 表格显示WinCC 项目的过程值、归档变量值和归档消息。

并可以通过 Web 发布浏览访问数据。

关键词WinCC,DataMonitor,ExcelKey Words WinCC,DataMonitor,ExcelA&D Service & Support Page 2-14目录1.WinCC DataMonitor 是什么 (4)简介 (4)WinCC DataMonitor 的主要功能 (4)2.使用WinCC DataMonitor 基于Web 发布浏览Excel 报表文档 (7)使用“Excel 工作簿向导”组态发布Excel 工作簿 (7)在线显示浏览Excel 工作簿 (12)A&D Service & Support Page 3-141.WinCC DataMonitor 是什么DataMonitor 是 SIMATIC WinCC 工厂智能中用于数据显示和分析的一个组件,它基于WinCC 的实时、历史数据进行车间管理级的数据汇总和分析,借助标准工具(例如微软的 IE 浏览器或者 MS Office Excel)可以显示并分析 WinCC 上的过程信息和历史数据。

简介SIMATIC WinCC/DataMonitor 提供用于显示交互数据及分析当前过程状态和历史数据的分析工具集合。

DataMonitor 客户端是纯粹用于显示和评估来自 WinCC 的过程值或来自WinCC 长期归档服务器的数据的系统。

用VBS实现WINCC的用户归档输出到EXCEL表格的方法和例

用VBS实现WINCC的用户归档输出到EXCEL表格的方法和例

用VBS实现WINCC的用户归档输出到EXCEL表格的方法和例(2009-12-30 16:47:45)用VBS实现WINCC的用户归档输出到EXCEL表格的方法和例子程序求用VBS实现WINCC的用户归档输出到固定格式的EXCEL表格的方法和例子程序!我主要问题在SQL数据库的查询语句不会。

看见论坛里有关用VBS实现EXCEL的数据查询和导出,我现在想要完成如下功能:每分钟将数据归档,用户可以输入任意的时刻时间查询从任意时刻开始的之后每隔1小时的数据(有点像日报里的24个小时)。

我现在对于VBS查询数据库的语句不懂,望大大赐教!谢谢''SQL查询语句Dim strc as stringstrc = "provider=WinCCOLEDBProvider.1;catalog=CC_RebdI_09_06_22_10_3 8_35R;data source=ComputerName\WinCC"''这个连接字符串可以在SQl2000中看到Dim cc1Set cc1=CreateObject("adodb.connection")cc1.ConnectionString=strccc1.CursorLocation=3cc1.openDim rst As ObjectSet rst = CreateObject("adodb.recordset")dim ssql as stringssql = "Tag:R,'Archive_3\DB1DBD0','2009-7-29 00:00:00.0000','200 9-7-29 23:59:59.999','timestep=3600,258'"''Archive_3\I_DB1DBD0归档和变量''2009-7-29 00:00:00.0000,2009-7-29 23:59:59.999时间段''timestep=3600,258每阁多少秒拿一个数据(3600=1小时),258表示每个时间段取最后一个数据rst.Open ssql, cc1''这样查出来的数据就是一天的每小时的数据''对rst记录集处理就可以得到你要的数据==========================Function actionDim objExcelAppDim i,TimeM,TimeNow,TimeSSet TimeM=HMIRuntime.Tags("TimeM")i=1+TimeM.ReadTimeNow=CStr(Year(Now))&"年"&CStr(Month(Now))&"月"&CStr(Day(Now))&"日"&CStr(Hour(Now))&"-"&CStr(Minute(Now))&":"&CStr(Second(Now))TimeS=Second(Now)Set objExcelApp = CreateObject("Excel.Application")objExcelApp.Visible = FalseobjExcelApp.Workbooks.Open"E:\ExcelTest.xls"objExcelApp.Cells(i, 2).Value =123.47objExcelApp.Cells(i, 1).Value = TimeNowobjExcelApp.DisplayAlerts = FalseobjExcelApp.ActiveWorkbook.SaveobjExcelApp.Workbooks.CloseobjExcelApp.quitSet objExcelApp =NothingEnd Function以上代码用于往指定的Excel表格中写数据。

如何在Excel中访问WinCC变量归档数据

如何在Excel中访问WinCC变量归档数据

1 功能说明在Microsoft office Excel中访问WinCC的历史数据,实现如下图所示的报表:图1: Excel中访问WinCC的历史数据生成报表选择日期后,可以生成当天的风机参数日报表(报表数据来自WinCC)。

2 软件环境本地计算机:Windows XP SP3英文版、WinCC7.0 SP2 ASIA、Microsoft office Excel 2003 远程计算机:Windows XP SP3英文版、WinCC7.0 SP2 ASIA、Microsoft office Excel 20033 WinCC/Connectivity Pack 介绍WinCC变量归档数据是以压缩的形式存储在数据库中,需要通过WinCC/Connectivity Pack提供的OLE-DB接口才能够解压并读取这些数据。

3.1 连接字符串“Provider=WinCCOLEDBProvider.1; Catalog= ***; Data Source= ***;“其中:Catalog:WinCC运行数据库的名称注意:当修改项目名称或在其它计算机上打开原项目时, Catalog会发生变化。

建议使用WinCC系统变量“@DatasourceNameRT” 获得当前的Catalog。

Data Source :服务器名称本地:“.\WinCC” 或者“<计算机名称>\WinCC”远程:“<计算机名称>\WinCC”3.2 查询语句“TAG:R,<ValueID or ValueName>,<TimeBegin>,<TimeEnd>[,<SQL_clause>][,<TimeStep>]”其中:ValueName:格式为“ArchiveName\Value_Name”,可以使用多个名称。

TimeBegin,TimeEnd:时间范围,格式“YYYY-MM-DD hh:mm:ss.msc”。

在Excel中访问WinCC变量归档数据

在Excel中访问WinCC变量归档数据

如何在Excel中访问WinCC变量归档数据————————————————————————————————作者:————————————————————————————————日期:1 功能说明在Microsoft office Excel中访问WinCC的历史数据,实现如下图所示的报表:图1: Excel中访问WinCC的历史数据生成报表选择日期后,可以生成当天的风机参数日报表(报表数据来自WinCC)。

2 软件环境本地计算机:Windows XP SP3英文版、WinCC7.0 SP2 ASIA、Microsoft office Excel 2003 远程计算机:Windows XP SP3英文版、WinCC7.0 SP2 ASIA、Microsoft office Excel 20033 WinCC/Connectivity Pack 介绍WinCC变量归档数据是以压缩的形式存储在数据库中,需要通过WinCC/Connectivity Pack提供的OLE-DB接口才能够解压并读取这些数据。

3.1 连接字符串“Provider=WinCCOLEDBProvider.1; Catalog= ***; Data Source= ***;“其中:Catalog:WinCC运行数据库的名称注意:当修改项目名称或在其它计算机上打开原项目时, Catalog会发生变化。

建议使用WinCC系统变量“@DatasourceNameRT” 获得当前的Catalog。

Data Source :服务器名称本地:“.\WinCC” 或者“<计算机名称>\WinCC”远程:“<计算机名称>\WinCC”3.2 查询语句“TAG:R,<ValueID or ValueName>,<TimeBegin>,<TimeEnd>[,<SQL_clause>][,<TimeStep>]”其中:ValueName:格式为“ArchiveName\V alue_Name”,可以使用多个名称。

如何使用Excel通过OPC访问WinCC的实时数据

如何使用Excel通过OPC访问WinCC的实时数据

OPC(OLE for process control)作为标准软件接口,可以使各个生产商的设备和应用程序就能以统一的方式连接起来。

WinCC 既可以用作OPC 服务器提供数据,又可以作为OPC 客户机访问其他OPC 服务器中的数据。

WinCC集成的OPC服务器使得过程数据可由其它应用程序(OPC 客户机)访问。

在Excel中可以通过VBA脚本建立OPC 客户端,并通过OPC接口读取WinCC 中的数据,并将修改的数据写入WinCC。

1 OPC规范及功能OPC是一种一致的独立于制造商的软件接口。

OPC 接口基于Microsoft Windows 的COM(组件对象模型)和DCOM(分布式组件对象模型)技术。

另一方面,OPC XML 则基于Internet 标准XML、SOAP 和HTTP。

> COMCOM 是位于同一计算机上且属于不同程序的对象之间进行通讯时采用的标准协议。

服务端是提供服务的对象,比如提供数据。

客户端是使用由服务端提供的服务的应用程序。

> DCOMDCOM 代表COM 功能的扩展,从而允许对远程计算机上的对象的访问。

该接口允许在企业、管理办公室和生产的应用程序之间进行标准化的数据交换。

以前,访问过程数据的应用程序受限于通讯网络的访问协议。

使用OPC 标准软件接口,各个生产商的设备和应用程序就能以一致的方式连接起来。

OPC 客户端是访问过程数据、消息和OPC 服务端归档历史数据的应用程序。

访问需要通过OPC 软件接口。

OPC 服务端是一个程序,它为不同制造商的应用程序提供一个标准的软件接口。

OPC 服务端是在处理过程数据的应用程序、各种网络协议和用于访问这些数据的接口之间的中间层。

只有当设备的操作系统是基于Windows COM 和DCOM 技术时,才能使用OPC 软件接口进行数据交换。

目前,Windows 2000、Windows XP、Windows 2003 Server 和Windows VISTA 具有这些软件接口。

Wincc与Excell数据交换实例一二

Wincc与Excell数据交换实例一二

Wincc与Excell数据交换实例一二Wincc与Excell数据交换实例一二Liking5200,sdyjdx关键字:Wincc,Excell,数据交换,动态数据交换(DDE)现实工程中,经常会遇到重要的参数存储子Excell表格中,在Wincc组态画面中,根据现场参数数值,查询调用对应Excell表格内的数据,同时根据经验在此将更新参数重新保存到Excell中去,这就要求我们实现Wincc与excell的通讯读写。

本文通过两个实例,介绍两种Wincc与excell的读写方法。

实例1Excell不做任何处理,通过Wincc按钮创建C动作,实现对Excell 的读写。

首先建立Excell文件,如d:\\Wincc_Excell_RW.xls。

内容如下:Wincc,建立四个内部变量:ReadExcell_X,Excell_Address_R,WriteExcell_X,Excell_Address_W,分别代表读取的数据,读取地址,写入的数据,输入地址,并在组态画面组态四个IO域与之相对应,组态两个按钮“按钮-读-Excell-X”,“按钮-写-Excell-X”,启动读写功能。

为了数据通用,变量类型定义为“文本变量16位字符集”,四个IO域数据格式选“字符串”,根据需要也可设为其他数据类型,但要确保Wincc与Excell相同,不然将发生读写错误或读取不正确。

按钮“按钮-读-Excell-X”,“按钮-写-Excell-X”,分别创建C动作如下按钮“按钮-读-Excell-X”,C动作:#include "apdefap.h"void OnClick(char* lpszPictureName, char* lpszObjectName, char*lpszPropertyName){#pragma code("Shell32.dll") //调用动态链接库char tag1[20],tag2[20],add[20];__object* pExcel = NULL; //建立 pExcel 指针用来对 EXCEL 进行操作HWND handle=NULL;handle=FindWindow(NULL,"WinCC-运行系统 - ");if (MessageBox(handle,"Start Reading","Read From Excell", MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB _SYSTEMMODAL)==IDYES){ pExcel = __object_create("Excel.Application");pExcel->Visible = 0;pExcel->Workbooks ->Open ("d:\\Wincc_Excell_RW.xls");strcpy(add,GetTagChar("Excell_Address_R"));strcpy(tag1,pExcel->Worksheets("sheet1")->Range(add)->V alue);SetTagChar("ReadExcell_X",tag1);//将地址Excell_Address_R,excel文件里面的内容写到外部变量ReadExcell_XpExcel->Quit();//退出Excel}__object_delete(pExcel);}按钮“按钮-写-Excell-X”,C动作:#include "apdefap.h"void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName){#pragma code("Shell32.dll")//调用动态链接库char tag1[20],tag2[20],add[20];__object* pExcel = NULL; //建立 pExcel 指针用来对 EXCEL 进行操作HWND handle=NULL;handle=FindWindow(NULL,"WinCC-运行系统 - ");if (MessageBox(handle,"Start Writing","Write Into Excell",MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB _SYSTEMMODAL)==IDYES) { pExcel = __object_create("Excel.Application");pExcel->Visible = 0;//控制excel文件是否可见,当1时,excel文件可见.pExcel->Workbooks ->Open ("d:\\Wincc_Excell_RW.xls");strcpy(add,GetTagChar("Excell_Address_W"));pExcel->Worksheets("sheet1")->Range(add)->Value =GetTagChar("WriteExcell_X");if (MessageBox(handle,"Save the Excell","Write Into Excell", MB_YESNO|MB_ICONQUESTION|MB_SETFOREGROUND|MB _SYSTEMMODAL)==IDYES) //{ } pExcel->ActiveWorkbook->Save();pExcel->DisplayAlerts = 0;pExcel->Workbooks->Close();//关闭文件pExcel->Quit();//退出Excel}__object_delete(pExcel);}运行情况如下:读B1数据:点击是读C5数据:点击是写B1数据:点击是然后再读取B1:点击是如此,我们可以对Excell文件d:\\Wincc_Excell_RW.xls ――Sheet 1的任意数据进行读写。

Excel中访问WinCC变量归档数据

Excel中访问WinCC变量归档数据

如何在Excel中访问WinCC变量归档数据 How to access WinCC Process Value Archive Database in Excel摘要本文通过制作一个日报表的过程,介绍了在本地或远程计算机上如何通过Excel访问WinCC的变量归档数据。

关键词WinCC、Excel、VBA、脚本、连通性软件包Key Words WinCC、Excel、VBA、Script、Connectivity PackIA&DT&BT Service & Support Page 2-17目录1 功能说明 (4)2 软件环境 (5)3 WinCC/Connectivity Pack 介绍 (5)3.1 连接字符串 (5)3.2 查询语句 (5)3.3 查询结果 (5)4 本地计算机访问 (6)4.1 WinCC组态 (6)4.1.1 WinCC中创建变量 (6)4.1.2 变量归档组态 (6)4.2 Excel组态 (7)4.2.1 创建Excel模板 (7)4.2.2 在Excel中编写脚本 (10)4.2.3 调用脚本 (12)4.2.4 运行Excel中的脚本 (12)5 远程计算机访问 (14)5.1 OLE-DB接口 (14)5.2 WinCC运行数据库名称的获得 (15)IA&DT&BT Service & Support Page 3-171 功能说明在Microsoft office Excel中访问WinCC的历史数据,实现如下图所示的报表:图1: Excel中访问WinCC的历史数据生成报表选择日期后,可以生成当天的风机参数日报表(报表数据来自WinCC)。

IA&DT&BT Service & Support Page 4-172 软件环境本地计算机:Windows XP SP3英文版、WinCC7.0 SP2 ASIA、Microsoft office Excel 2003 远程计算机:Windows XP SP3英文版、WinCC7.0 SP2 ASIA、Microsoft office Excel 2003 3 WinCC/Connectivity Pack 介绍WinCC变量归档数据是以压缩的形式存储在数据库中,需要通过 WinCC/Connectivity Pack提供的OLE-DB接口才能够解压并读取这些数据。

如何在Excel中访问WinCC变量归档数据

如何在Excel中访问WinCC变量归档数据
图8:打开VBA编辑器
2)创建读取WinCC历史数据的VBA子程序get_wincc_data:
图9:get_wincc_data
脚本包括以下几部分:
(1)获得WinCC运行数据库名称
以上脚本只能读取本地WinCC的变量值,并且需要插入“WinCC HMIRuntime 1.0 Type Library”对象:
Data Source :服务器名称
本地:“。\WinCC” 或者 “〈计算机名称>\WinCC”
远程:“<计算机名称〉\WinCC”
3。2 查询语句
“TAG:R,〈ValueID or ValueName〉,〈TimeBegin〉,<TimeEnd>[,〈SQL_clause>][,〈TimeStep〉]"
图14:运行结果
DEMO程序请参考附件中的report_demo_local。xls( 31 KB ) 文件。
5 远程计算机访问
Excel访问远程计算机WinCC的历史数据,需要注意:
5。1 OLE—DB接口
如果客户端计算机没有安装WinCC或者DataMonitor软件,则需要安装Connectivity Pack软件来提供OLE—DB接口。
图10:插入“WinCC HMIRuntime 1。0 Type Library"对象
(2)创建连接字符串:
(3)转换查询时间为UTC时间:
(4)四个参数值的查询(以查询“进口温度"为例):
4。2。3调用脚本
在时间控件Change事件中调用子程序get_wincc_data :
4。2.4运行Excel中的脚本
首先要设置宏的安全性为“中"或“低”(不建议使用):
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、DDE简介动态数据交换(DDE)是基于Windows的消息机制,两个Windows应用程序通过相互之间传递消息进行“对话”,这两个程序被分别称为“服务器”和“客户”。

DDE服务器是一个维护着其他Windows程序可能使用的数据程序,而DDE客户则是从服务器获得这些数据的程序。

DDE对话是由客户程序发动的。

客户程序将一条称为WM_DDE_INTITIATE的消息发给当前运行的所有Windows 程序,这条消息指明了客户程序所需要的数据类别,拥有这些数据的DDE服务器可以响应这条消息,这样一个对话就开始了。

DDE的对话方式有3种: ①服务器数据变化时,直接把数据送给客户,由客户对这些数据进行处理,这类对话方式称为热链;②服务器的数据变化时,服务器通知客户,再由客户取数据,这种方式称为温链;③由客户申请数据、服务器发送数据的方式称为冷链。

一、Wincc作为DDE的客户端,Excel作为DDE服务器(本地)1、在变量管理上按鼠标右键--添加新的驱动程序--选“windows dde.chn”图12、在DDE上按鼠标右键--新驱动程序连接--点属性,在其连接属性中:“计算机名称”为空;“应用程序”为excel;“主题”为[]工作表名,比如[DDE.xls]sheet1。

图23、在DDE\excel下建变量,在变量属性中选择地址,条目名称填:r行数c列数,比如r1c1(表示第一行第一列的单元格),重复步骤3可以加入更多的DDE变量图34、Excel程序图4Wincc程序图55完成用OPC做比较省事。

WinCC做OPC Server,Excel做OPC Client。

这种情况下,WinCC端不需要做任何设置,只要在Excel 里用少量的代码就能实现双方的通讯。

对于WINCC与S7-300的通讯,首先要确定PLC的通讯口类型,PLC一般都集成了MPI/DP口,还可以安装通讯模块。

计算机(PC)上安装适当的通讯卡(不同的通讯卡支持的通讯协议不同)。

看你需要啦!其次是WINCC软件里的通讯协议要与PC机对应。

WINCC提供了SIMATIC S7 PROTOCOL SUITE 通讯驱动程序,包含了多种通讯协议!最终还有自己亲自实际操作了才有深刻的了解的!!Sub X6309X94AE9X0000X6539_OnClick(Byval Item)Dim fso,myfileSet fso = CreateObject("scripting.FileSystemObject")Set MyFile = fso.GetFile("d:\Excelcode.xls")Dim ObjExcelAppSet objExcelApp = CreateObject("Excel.Application")'objExcelApp.Visible = TrueobjExcelApp.Workbooks.Open MyFile'上面的程序段是为了打开d盘下叫Excelcode.xls名字的excel文件objExcelApp.worksheets ("sheet1").Cells(1, 1).VAlue = HMIRuntime.Tags("usercodenew1").readobjExcelApp.ActiveWorkbook.Save'上面两行的作用是将wincc变量"usercodenew1"的值写到Excel表中的A1格子里面,并且保持一下Dim coldoldSet coldold=HMIRuntime.Tags("usercodeold1")coldold.Value = objExcelApp.worksheets ("sheet1").Cells(1, 1).value'上面这两句的作用是将刚才保持到Excel表格中的数据重新读回wincc,存到"usercodeold1"变量中,当然现在其实并没有存入"usercodeold1"变量,只是存在了叫coldold的临时变量里面objExcelApp.Workbooks.CloseobjExcelApp.QuitSet ObjEXceLapp = Nothing'到这里为止,我们可以通过上面的语句关闭刚才打开的excel程序了coldold.Write'最后是把读到的excel值从临时变量coldold中写入它对应的"usercodeold1"变量中End Sub上面这个例子已经调试通过。

网上有很多wincc值写入excel中的例子,一直找不到从excel中读取数据到wincc中的例子,结合网上朋友的一些经验,这里给出个小例子,供大家参考。

估计考虑到后些天要用到EXCEL与WINCC的通讯,我看了些书,在西门子的论坛上看到了一个现场做好的通讯成功例子.通过自己来做,通讯成功.例子地址:/club/bbs/post.asp?b_id=5&a_id=53940&s_id=0&num=49#anch现总结一下:1 WINCC作为OPC服务器,勿需添加OPC通道.在例子中,只在内部变量中,建立6个内部变量,内部变量为有符号的16位数,名称分别为,a,b,c,d,e,f.(当然如果身边有PLC在,可以建立过程变量,为了方便运行,建立内部变量),分别在a,b,c,d,e,f中的限制/报表中,设置其开始值,为1,2,3,4,5,6.注意:计算机-->属性中的计算机名称要与本计算机名称一致在WINCC中建立一页面,用按钮来改变a,b,c,d,e,f的值,如果通讯成功,在EXCEL中也会随之改变.2 新建立一个EXCEL文件,打开文件,工具-->宏-->VB编辑器,打开EXCEL的VB 编辑器.3 在VB编辑器里,工具-->引用,在弹出窗口中,找Siemens OPC DAAutomation 2.0,勾上 :)4 双击sheet1,打开sheet1的代码窗口,然后将程序(程序代码在页面的最后)复制到代码窗口.5 在EXCEL的上分别对应C2-->计算机名 C3-->a C4-->b C5-->c C6-->d C7-->e C8-->f6 在EXCEL总,工具-->宏,选择sheet1.startclient,启动7 完了代码:Option ExplicitOption Base 1Const ServerName = "OPCServer.WinCC"Dim WithEvents MyOPCServer As OPCServerDim WithEvents MyOPCGroup As OPCGroupDim MyOPCGroupColl As OPCGroupsDim MyOPCItemColl As OPCItemsDim MyOPCItems As OPCItemsDim MyOPCItem As OPCItemDim ClientHandles(6) As LongDim ServerHandles() As LongDim Values(1) As VariantDim Errors() As LongDim ItemIDs(6) As StringDim GroupName As StringDim NodeName As StringDim itemv(6) As VariantDim ii As Integer'---------------------------------------------------------------------' Sub StartClient()' 目的:连接至OPC_server,创建组和添加条目'---------------------------------------------------------------------Sub StartClient()' On Error GoTo ErrorHandler'----------- 可以自由选择ClientHandle和GroupNameFor ii = 1 To 6ClientHandles(ii) = iiNext iiGroupName = "MyGroup"'----------- 从单元“A1”得到ItemIDNodeName = Range("c2").ValueItemIDs(1) = Range("c3").ValueItemIDs(2) = Range("c4").ValueItemIDs(3) = Range("c5").ValueItemIDs(4) = Range("c6").ValueItemIDs(5) = Range("c7").ValueItemIDs(6) = Range("c8").Value'----------- 得到一个OPC服务器的实例Set MyOPCServer = New OPCServerMyOPCServer.Connect ServerName, NodeNameSet MyOPCGroupColl = MyOPCServer.OPCGroups'----------- 为添加组设置缺省的激活状态MyOPCGroupColl.DefaultGroupIsActive = True'----------- 添加组至收集Set MyOPCGroup = MyOPCGroupColl.Add(GroupName)Set MyOPCItemColl = MyOPCGroup.OPCItems'----------- 添加一个条目、返回ServerHandlesMyOPCItemColl.AddItems 6, ItemIDs(), ClientHandles(), ServerHandles(), Errors'----------- 用于接受不同的信息组MyOPCGroup.IsSubscribed = TrueExit SubErrorHandler:MsgBox "Error: " & Err.Description, vbCritical, "ERROR"End Sub'---------------------------------------------------------------------' Sub StopClient()' 目的:从服务器释放对象并且断开连接'---------------------------------------------------------------------Sub StopClient()'----------- 释放组和服务器对象MyOPCGroupColl.RemoveAll'----------- 与服务器断开连接并且清除MyOPCServer.DisconnectSet MyOPCItemColl = NothingSet MyOPCGroup = NothingSet MyOPCGroupColl = NothingSet MyOPCServer = NothingEnd Sub'---------------------------------------------------------------------' Sub MyOPCGroup_DataChange()' 目的:组中的数值、质量或时间标志改变时,该事件激活'---------------------------------------------------------------------'----------- 如果OPC-DA Automation 2.1被安装,使用:Private Sub MyOPCGroup_DataChange(ByVal TransactionID As Long, ByVal NumItems As Long, ClientHandles() As Long, itemvalues() As Variant, Qualities() As Long, TimeStamps() As Date)'----------- 设置数据表单元值为数值读For ii = 1 To NumItemsitemv(ClientHandles(ii)) = itemvalues(ii)Next iiRange("d3").Value = /qz.q/CStr(itemv(1))Range("d4").Value = /qz.q/CStr(itemv(2))Range("d5").Value = /qz.q/CStr(itemv(3))Range("d6").Value = /qz.q/CStr(itemv(4))Range("d7").Value = /qz.q/CStr(itemv(5))注意:excel启动宏之前先启动WINCC运行。

相关文档
最新文档