主要代码如下:
DimObjServerASOPCServer
DimGroupCollectionAsOPCGroups
DimGroupObjAsOPCGroup
DimMyItemsAsOPCItems
PrivatESubCommand1_Click()
SetObjServer=NewOPCServer
‘AllOPCServers=ObjServer.GetOPCServers
CallObjServer.Connect("S7200.OPCServer")
EndSub
PrivateSubCommand2_Click()
ObjServer.Disconnect
SetObjServer=Nothing
EndSub
PrivateSubCommand3_Click()
SetGroupCollection=ObjServer.OPCGroups
GroupCollection.DefaultGroupUpdateRate=500
GroupCollection.DefaultGroupIsActive=False
SetGroupObj=GroupCollection.Add("MyGroup")
EndSub
PrivateSubCommand4_Click()
GroupCollection.RemoveAll‘RemovesallGroups
SetOPCGroup=Nothing‘DeleteOPCGroupObject
SetGroupCollection=Nothing‘DeleteOPCGroupsCollectionObject
EndSub
PrivateSubCommand5_Click()
DimiAsInteger
DimErrorFlagAsBoolean
ConSTMAX_INDEX=1
DimlNumItemsAsLong
DimlClientHandles(MAX_INDEX)AsLong
DimMyItemServerHandles(MAX_INDEX)AsLong
Dimperror()AsLong
DimszItemIDs(MAX_INDEX)AsString
DimAccPath(MAX_INDEX)AsVariant
DimReqDataTypes(MAX_INDEX)AsVariant
szItemIDs(0)="2,VW98,Word"
szItemIDs(1)="2,VW100,Word"
‘AccPath(0)=""
‘AccPath(1)=""
‘ReqDataTypes(0)=vbVLong
‘ReqDataTypes(1)=vbVLong
lClientHandles(0)=1
lClientHandles(1)=2
lNumItems=MAX_INDEX
ErrorFlag=False
SetMyItems=GroupObj.OPCItems
‘CallMyItems.AddItem("2,VW100,Word",1)
CallMyItems.AddItems(2,szItemIDs,lClientHandles,MyItemServerHandles,perror)
EndSub
问题补充:
忘记说了,我用的是PCAcCEss1.0SP3
在OPC服务器里面能看到S7200.OPCServer
VB里面也能引用
就是运行到AddItems的时候提示类型不匹配
那如果我想读取网络上两台PLC200的数据,在AddItems的格式是什么样的呢?
比如说:szItemIDs(0)="192.168.0.2,2,VW98,Word"
最佳答案
楼主的代码似乎也没有什么问题,Item的语法是对的。
楼主可以使用$:\ProgramFiles\Siemens\S7-200PCAccess\Samples\VisualBasic下面的例子测试一下,其实楼主的代码和例子中的差不多。
提问者对于答案的评价:
也谢谢了