利用VBA脚本通过OPC DA 访问Wincc

看过Excel_OPC的脚本例子,对其中的一部分内容不理解。例如:
Private Sub MyOPCGroup_DataChange(ByVal TransactionID As Long, ByVal NumItems As Long, ClientHandles() As Long, ItemValues() As Variant, Qualities() As Long, TimeStamps() As Date)

 '----------- Set the spreadsheet cell values to the values read

 If NumItems = 1 Then
 
        Select Case ClientHandles(1)
           Case 1
          
                 Range("B4").Value = CStr(ItemValues(1))
               
                 Range("C4").Value = Hex(Qualities(1))
                 
                 TimeStamps(1) = DateAdd("h", 8, TimeStamps(1))
                                
                 Range("D4").Value = CStr(TimeStamps(1))
         
          Case 2
              
                 Range("B5").Value = CStr(ItemValues(1))
                 
                 Range("C5").Value = Hex(Qualities(1))
                 
                 TimeStamps(1) = DateAdd("h", 8, TimeStamps(1))
                 
                 Range("D5").Value = CStr(TimeStamps(1))
          
          Case Else
         
          End Select
          
    Else
          
                 Range("B4").Value = CStr(ItemValues(1))
               
                 Range("C4").Value = Hex(Qualities(1))
                 
                 TimeStamps(1) = DateAdd("h", 8, TimeStamps(1))
               
                 Range("D4").Value = CStr(TimeStamps(1))
         
               
                 Range("B5").Value = CStr(ItemValues(2))
                 
                 Range("C5").Value = Hex(Qualities(2))
                 
                 TimeStamps(2) = DateAdd("h", 8, TimeStamps(2))
                 
                 Range("D5").Value = CStr(TimeStamps(2))
          
    End If
    
    
End Sub

这是针对2个变量的,没有问题。

但如果是10或百个变量,如何编写??

ClientHandle是什么含义?是一条记录(指变量名、变量值、质量代码、时间戳)的索引?


我添加10个变量,float1至float10 ,要求读出每个变量对应的值,质量代码,还有更新时间戳,应如何编写?

问题补充:
如何让Qualitues()和TimeStamps也建立起映射关系。
我想要的格式是:
  TagName         Value       Qulities    TimeStamp
     float1             0.00          C0         20**-**-**
     float2             0.00          C0         20**-**-**
     float3             0.00          C0         20**-**-**
     float4             0.00          C0         20**-**-**
   ................................
  这段代码如何写?
  会不会出现TimeStamp(4)?为什么会越界?

最佳答案

ClientHandle和ServerHandle都是属于句柄,ClientHandle就是像你说的可以索引到每个元素的值,品质,时间戳等还有多更的信息,这个是客户端句柄,你在建立Group的时候,要给添加进Group的Item分配一个ClientHandle,用于后面来追踪它的信息,可以说有了ClientHandle,你就能找到每个Item的资源。
ServerHandle是系统自动分配的,也是一样的功能。
如何让Qualitues()和TimeStamps也建立起映射关系。你的品质和时间戳不是已经找到了也对应上了吗?做10个变量把循环该成FOR循环就可以了啊

提问者对于答案的评价:

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc365542.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日
下一篇 2021年7月5日

相关推荐

  • wincc7.0在一起下

    请问哪里有wincc v7.0下载? 最佳答案 找当地代理商。 提问者对于答案的评价:谢谢!

    SIMATIC WinCC 2021年7月5日
  • WINCC7.3,位什么会出现这种情况

    复制项目出现这个怎么办? 图片说明:    钻石用户推荐最佳答案 复制到本地要用另存为下面的那个复制是用于做冗余使用的参考下面的文档说明:如何构建一个WinCC…

    2021年7月5日
  • 按钮操作状态的改变

    点击导航按钮后,此按钮不可操作,改为点击其它按钮后,前一按钮又可以操作这个怎么实现阿,按钮不可操作已完成,有没有函数可以得到上一次点击得按钮是哪个,然后使它变为可操作呢 最佳答案 …

    SIMATIC WinCC 2019年6月11日
  • WINCC里有若干套数据对PLC中的一个数据块赋值。是不是可以用配方功能?

    在上位机WINCC中有若干套数据对PLC一个套参数赋值,是不是可以用配方功能来做?具体如何是用WINCC的配方功能,是不是还得另外安装配方的补丁?谢谢 最佳答案 用配方来做当然是最…

    SIMATIC WinCC 2019年6月11日
  • wincc提示缺少server授权,这是个什么授权

    wincc运行时提示缺少一个描述为server的授权,请大家帮我看看这是个神马授权 图片说明:    最佳答案 在建WINCC项目的时候你需要把它设置成单用户项…

    SIMATIC WinCC 2019年6月10日
  • 如何用一个圆动态的显示电机的转动

    想在WINCC画面上做个显示马达在运行的状态.本来画了一个圆,在圆上面加了二个四分之一的圆,想当连接到马达的运行变量后,然后让那2个四分之一的圆旋转,这样在画面上就可以感觉到马达在…

    SIMATIC WinCC 2019年6月11日
  • wincc打不开文件

    我想用自己的电脑安装的WINCC软件打开从其它地方拷贝来的WINCC文件,总是打不开!电脑显示的“组态的服务器无效”,请问需要修改什么东西吗?谢谢! 问题补充:谢谢各位的回答,文件…

    SIMATIC WinCC 2019年6月11日
  • 变量记录-非周期无法激活,如何修复

    修改项目过程中出现变量记录选中非周期,根据事件,无法归档(把所有脚本已经关闭,新建了归档变量,归档标志【二进制变量】),改成周期归档正常;新原建个全新项目,根据事件归档也正常。&n…

    SIMATIC WinCC 2019年6月11日
  • 如何快速创建WINCC过程变量?

    只能一个一个创建WINCC的过程变量吗? 有没有更快的方法。如用EXCEL。 最佳答案 1,把wincc项目集成到STEP7中,就可以在step7中设定和wincc有关的…

    SIMATIC WinCC 2019年6月11日
  • Wincc在线趋势控件如何实现打印功能?

    在使用Wincc在线趋势控件时,点击这个控件工具栏上的打印,却根本打印不出曲线图,打印机根本没有什么反应,这是为什么? 最佳答案 wincc里面有专门的可以打印趋势的打印作业,或者…

    SIMATIC WinCC 2019年6月11日

发表回复

登录后才能评论