文档详情

如何创建一个Microsoft Excel的OPC客户端.doc

ni****g
实名认证
店铺
DOC
175.50KB
约4页
文档ID:549058313
如何创建一个Microsoft Excel的OPC客户端.doc_第1页
1/4

如何创建一个Microsoft Excel的OPC客户端用法说明:这个说明讲述了如何在Microsoft Excel 中用VBA脚本语言建立OPC 客户端,并通过OPC接口读取PLC中的数据,以及将数据写入PLC通过OPC接口,Microsoft Excel作为OPC 客户端发起通讯并发送读/写请求到OPC服务器OPC服务器执行这些读/写请求Microsoft Excel 作为客户端的配置过程如下:· 在Excel中创建一个接口,并保存分别申明的控制元件 图 01· 在VisualBasic 编辑器中的“工具->引用”中,选中“Siemens OPC DA Automation 2.0”组件,使VisualBasic能够识别OPC对象· 现在创建所需的所有对象,如:“MyOPCGroup”对象Dim: 创建一个变量WithEvents: 这个对象可以提供事件(如 DataChange)MyOPCGroup: 对象名As OPCGroup: 变量类型图 02· 为“MyOPCServer”对象分配内存:Set MyOPCServer = New ...· Microsoft Excel建立与OPC服务器的连接:Call MyOPCServer.Connect(ServerName)· 使用如下函数来访问 Microsoft Excel的单元格信息。

在本例中,从单元格(第四行,B列)中获取OPC服务器的名称图 03· Microsoft Excel与OPC服务器的连接一旦建立,OPC组即被创建这个通过集合对象来实现:MyOPCServer.OPCGroups.Add(组名)· 在本例中,最新创建的组通过“MyOPCGroup”变量来寻址设置MyOPCGroup.IsSubscribed = True,以便OPC组能够提供DataChange等事件图 04· 创建OPC项这个通过集合对象完成:MyOPCItems(i) = MyOPCGroup.OPCItems.AddItem(ItemID)· 在此例中,ItemIDs 存储在单元格(9-12行,B列)中使用函数Cells(line, column) ,把指定的ItemIDs 传送给集合对象"MyOPCGroup.OPCItems.AddItem"   图 05· 使用下列函数从PLC中读取变量:MyOPCGroup.SyncRead()· 以参数形式为此函数传递OPC项的服务器句柄图 06· 从PLC读出的值显示在单元格(9-10行,E列)中· 这些读出值的质量代码和时间戳显示在单元格(9-10行,H、I列)中。

函数“MyOPCGroup.SyncRead()”以返回值的形式提供这些数据图 07· 在Microsoft Excel中,调用如下用于OPC组事件处理的程序,它是一个OPC服务器的DataChange 事件:DataChange()这个事件处理程序提供了许多参数,如ItemValue(OPC项的值),客户端句柄等· 通过DataChange事件,当OPC项的值变化时,数据会自动发送OPC项的当前值显示在单元格(9-12行,D列)中图 08· 如果在Microsoft Excel的单元格(9-13行,F列)中输入一个值,通过下面的函数将OPC项写入到PLC:MyOPCGroup.SyncWrite()· 写入值和服务器句柄以参数形式传递给此函数图 09函数GetQualityText以字符串的形式,为预定义的错误代码传递错误消息Private Function GetQualityText(Quality) As String   Select Case Quality      Case 0:    GetQualityText = "BAD"      Case 64:   GetQualityText = "UNCERTAIN"      Case 192:  GetQualityText = "GOOD"      Case 8:    GetQualityText = "NOT_CONNECTED"      Case 13:   GetQualityText = "DEVICE_FAILURE"      Case 16:   GetQualityText = "SENSOR_FAILURE"      Case 20:   GetQualityText = "LAST_KNOWN"      Case 24:   GetQualityText = "COMM_FAILURE"      Case 28:   GetQualityText = "OUT_OF_SERVICE"      Case 132:  GetQualityText = "LAST_USABLE"      Case 144:  GetQualityText = "SENSOR_CAL"      Case 148:  GetQualityText = "EGU_EXCEEDED"      Case 152:  GetQualityText = "SUB_NORMAL"      Case 216:  GetQualityText = "LOCAL_OVERRIDE"      Case Else: GetQualityText = "UNKNOWN ERROR"   End SelectEnd Function最后,断开与OPC服务器的连接。

图 10在此下载在Microsoft Excel中实现OPC客户端编程的Visual Basic 示例程序。

下载提示
相似文档
正为您匹配相似的精品文档