OPC读取数据时,为什么,只能显示一个实时变化的值?请大家耐心的帮我看一看. 点击:1220 | 回复:2



独江雪

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:16帖 | 67回
  • 年度积分:0
  • 历史总积分:121
  • 注册:2002年9月23日
发表于:2005-04-06 11:53:00
楼主
大家好,我刚了解OPC,不是很了解,想请大家帮个忙。请有耐心的看完,帮我想想哪里出了问题,不胜感谢。 我写的程序如下,主要是想从WinCC.Server里读取变量,在按钮的Click事件中,每按一次添加一个新的OPCItem条目,然后通过Mygroup_DataChange函数来传送值, 很奇怪的是,我想读取4个Tag的值,用Debug.print ItemValues(i)能看到四个变化的值,为什么我想把这四个变化的值放到Grid控件的四个格中去却总是显示一个值呢? 也就是说,只有GRID1控件的第二列第一行有数值显示,其它行没有数值显示. 我的程序如下: 下面的程序用来每按一下,添加一个OPCItem: Private Sub Command2_Click() ii = ii + 1 Grid1.Rows = 17 Dim aa As Integer Grid1.Col = 0 For aa = 1 To 16 Grid1.Row = aa Grid1.Text = aa Next OPCItemIDs(ii) = Text1.Text Grid1.Col = 1 For aa = 1 To 16 Grid1.Row = aa Grid1.Text = OPCItemIDs(aa) Next Myitems.AddItem OPCItemIDs(ii), ClientHandles(ii) '添加一个新的OPCItem条目 Text4.Text = ii Mygroup.IsActive = True Mygroup.IsSubscribed = True End Sub 下面的程序用来读取数据变放入控件Grid1中去。 Public Sub Mygroup_DataChange(ByVal TID As Long, _ ByVal NumItems As Long, Chd() As Long, _ ItemValues() As Variant, Qualities() As Long, _ TimeStamps() As Date) Grid1.Col = 2 For i = 1 To NumItems Debug.Print ItemValues(i) Grid1.Row = i Grid1.Text = ItemValues(i) Next End Sub Grid1的第二列的第二行至第五行应该有数值,但为什么只有第二行有数据呢?其它行为空的.



deng_lp

  • 精华:5帖
  • 求助:0帖
  • 帖子:65帖 | 2669回
  • 年度积分:0
  • 历史总积分:2876
  • 注册:2001年6月19日
发表于:2005-04-06 12:32:00
1楼
Myitems.AddItem OPCItemIDs(ii), ClientHandles(ii) '添加一个新的OPCItem条目 只加了一个opcitem.

独江雪

  • 精华:0帖
  • 求助:0帖
  • 帖子:16帖 | 67回
  • 年度积分:0
  • 历史总积分:121
  • 注册:2002年9月23日
发表于:2005-04-06 13:06:00
2楼
是的,这条语句是只加了一个OPCItem条目,但是我每按一下按钮就会创建一个ClientHandles和OPCItemID,在我的MyopcGroup里添加一个OPCItem,我之前加的OPCItem与后来加的OPCItem都在Myitems里,比如我加了四次即Myitems.AddItem执行了四次,那么我用Debug.print ItemValues(i),会看到四个不同的值,这是我想要的,但是我用grid1.text=ItemValues(i),grid1控件里却只有一个值,其它的三个值却没有.如果想实现这个功能的话,你有什么好的建议呢?

热门招聘
相关主题

官方公众号

智造工程师