如何创建一个MicrosoftExcel的OPC客户端?用法说明:这个说明讲述了如何在MicrosoftExcel中用VBA脚本语言建立OPC客户端,并通过OPC接口读取PLC中的数据,以及将数据写入PLC。通过OPC接口,MicrosoftExcel作为OPC客户端发起通讯并发送读/写请求到OPC服务器。OPC服务器执行这些读/写请求。MicrosoftExcel作为客户端的配置过程如下:在Excel中创建一个接口,并保存分别申明的控制元件。图01在VisualBasic编辑器中的“工具-引用”中,选中“SiemensOPCDAAutomation2.0”组件,使VisualBasic能够识别OPC对象。现在创建所需的所有对象,如:“MyOPCGroup”对象Dim:创建一个变量WithEvents:这个对象可以提供事件(如DataChange)MyOPCGroup:对象名AsOPCGroup:变量类型图02为“MyOPCServer”对象分配内存:SetMyOPCServer=New...MicrosoftExcel建立与OPC服务器的连接:CallMyOPCServer.Connect(ServerName)使用如下函数来访问MicrosoftExcel的单元格信息。在本例中,从单元格(第四行,B列)中获取OPC服务器的名称。图03MicrosoftExcel与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在MicrosoftExcel中,调用如下用于OPC组事件处理的程序,它是一个OPC服务器的DataChange事件:DataChange()这个事件处理程序提供了许多参数,如ItemValue(OPC项的值),客户端句柄等。通过DataChange事件,当OPC项的值变化时,数据会自动发送。OPC项的当前值显示在单元格(9-12行,D列)中。图08如果在MicrosoftExcel的单元格(9-13行,F列)中输入一个值,通过下面的函数将OPC项写入到PLC:MyOPCGroup.SyncWrite()写入值和服务器句柄以参数形式传递给此函数。图09函数GetQualityText以字符串的形式,为预定义的错误代码传递错误消息。PrivateFunctionGetQualityText(Quality)AsStringSelectCaseQualityCase0:GetQualityText=BADCase64:GetQualityText=UNCERTAINCase192:GetQualityText=GOODCase8:GetQualityText=NOT_CONNECTEDCase13:GetQualityText=DEVICE_FAILURECase16:GetQualityText=SENSOR_FAILURECase20:GetQualityText=LAST_KNOWNCase24:GetQualityText=COMM_FAILURECase28:GetQualityText=OUT_OF_SERVICECase132:GetQualityText=LAST_USABLECase144:GetQualityText=SENSOR_CALCase148:GetQualityText=EGU_EXCEEDEDCase152:GetQualityText=SUB_NORMALCase216:GetQualityText=LOCAL_OVERRIDECaseElse:GetQualityText=UNKNOWNERROREndSelectEndFunction最后,断开与OPC服务器的连接。图10在此下载在MicrosoftExcel中实现OPC客户端编程的VisualBasic示例程序。此外,条目ID23829402包含一个使用MicrosoftExcel和VBA,创建个性化、可视化接口的简单程序。注意:对于通过DCOM访问OPC服务器,使用MicrosoftExcel作为客户端的本示例程序没有经过测试。