PC_ACCESS里面有一个与VB通信的例程,里面介绍的不是很详细,现有如下疑问:
1.关于添加ITEM?添加ITEM是往哪里添加,执行过这个操作以后是添加到PC_ACCESS里了,还是添加到VB里了?
2.VB按钮cmdAddItem_Click()里代码(图片4)这句话
CallMyItems.AddItems(2,ItemIDs,ItemClientHandles,MyItemServerHandles,Errors)怎么理解?它执行过后产生什么结果?
3.子过程PrivateSubMyGroup_DataChange里的代码(图片8)
TxtDataChange.Text=TxtDataChange.Text+1怎么理解?
Fori=1ToNumItems
IfClientHandles(i)>0AndClientHandles(i)<3Then
‘Values->Valuesfromreadcomplete
‘Qualities->Qualitiesofthevalues
IfQualities(i)=192Then
txtChangeVal.Item(ClientHandles(i)–1).Text=ItemValues(i)‘WriteValuetoTextBox
txtChangeVal.Item(ClientHandles(i)–1).BackColor=&HFFFFFF
Else
txtChangeVal.Item(ClientHandles(i)–1).Text=GetQualityText(Qualities(i))
txtChangeVal.Item(ClientHandles(i)–1).BackColor=&H8080FF
EndIf
Else
MsgBox"DataChangeItem"+STr$(i)+"hASinvalidClientHandle",vbCritical
EndIf
Next
ExitSub
NumItems的值从何而来?ClientHandles(i)的值又从何而来?我把这个范例的代码看了几十遍,总感觉没看明白,西门子给的注释太简单,高人给指点下,谢谢
图片说明:
c23d616660718353086ba67dfbf798f4
最佳答案
1、添加ITEM是往VB中创建的group中添加你要通讯的变量。
2、CallMyItems.AddItems正是完成了往group中添加item的操作,你的程序中是添加了textItem1.text和textItem1.text两个文本框中的变量。
3、DataChange事件是OPC对象的一个事件,当控制器中所要访问的数据一旦发生改变时将会触发该事件,并将该数据自动读到文本框中。
4、NumItems是一个局部变量,表示ITEM的数量。ClientHandles(i)是OPC客户端句柄。
不是注释简单,是你没搞懂OPC和VB。建议你先看看OPC*。
提问者对于答案的评价:
谢谢我再研究研究
专家置评
已阅,最佳答案正确。