哎,还是自问自答。
写不进数的原因基本可以肯定是所用EMULATOR的缺陷所致。
刚找到的资料:TransactionID——The client specified transaction ID. This is included in the‘completion’ information provided in the Corresponding Event. CancelID——A Server generated transaction ID. This is provided to enable the client to cancel the “transaction”. 就我的理解,一个是用来标志启动写操作的Client的ID,一个是用来标志取消写操作的SERVER的ID。 这两个参数是必须有的,但不论我怎么设置这两个的值,AsynWrite操作都能正确执行,感觉不出有什么不同,还请哪位高手指点一下。
第三个问题也是因为仿真软件仿真的变量只能读的缘故,才造成的AUTOMATION ERROR。用其他的仿真软件,都读写正常,看起来这两个函数的确是只针对ITEM的读写操作。
第一个问题还没怎么摸索清楚,反正值都能读出,只是操作麻烦程度不太一样,估计跟订阅方式有关,如果哪位清楚还请指点!
Private Sub additem_Click()
Dim Browser As OPCBrowser
Dim SomeName As Variant
Dim i As Integer
Dim flat As Boolean
flat = True
ARealOPCServer = servername
Call connect(ARealOPCServer, ARealOPCNodeName)
Set Browser = AnOPCServer.CreateBrowser
Set AnOPCServerBrowser = Browser
AnOPCServerBrowser.ShowLeafs (flat) '显示叶
'AnOPCServerBrowser.ShowBranches'显示枝
For i = 1 To AnOPCServerBrowser.Count
SomeName = AnOPCServerBrowser.Item(i)
List4.additem SomeName
Next i
End Sub
可以实现遍历opc server中的Item