利用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日 下午1:49
下一篇 2021年7月5日 下午1:49

相关推荐

  • PC站组态 无法正确传送跟随项目

    PC站组态 无法正确传送跟随项目到目标电脑 提示错误 “无法打开项目 THE SQL SERVER ACCES…

    SIMATIC WinCC 2017年12月9日
  • wincc组态程序如何转换为可执行程序

    我采用的是wincc V6.0组态,现在要求在其他电脑上不用安装wincc软件也能运行这个组态界面,能将要转换为一个可执行程序,而且要能实现与PLC之间通信,不知该如何转…

    SIMATIC WinCC 2019年6月11日
  • wincc项目打不开也不能新建

    无论是打开还是新建。都会提示cannot open/create wincc project ,project manager&n…

    SIMATIC WinCC 2021年7月5日
  • 怎样通过全局脚本向excel写数据

    我需要在某个变量的值发生变化时,把另外一组变量的值写到excel中,怎么实现呢?以前在画面中做了个io域,但是只有IO域为当前画面时,目标才能实现,达不到最终的目的. 最佳答案 建…

    SIMATIC WinCC 2019年6月11日
  • 棒图的值不能立即随I/O域改变

    棒图的值不能立即随I/O域改变,只能退出从新开始才能改变刻度,是哪里没设置好? 图片说明:    最佳答案 一个是数据更新周期,一个是棒图的量程必须和显示域量程…

    2017年11月16日
  • WINCC RT Start拒绝访问

    使用V13专业版下载到文件生成的项目文件,用WINCC RT Start打开时,提示拒绝访问。 问题补充:在别的盘,用管理员身份运行也是一样的。 图片说明: &…

    2017年6月9日
  • 如何实现禁止鼠标点击事件

    给位编程大神,小的在做一个控制系统,但是想实现使用VBS语言在Wincc操作窗口禁止鼠标点击窗口内所有事件,请大神们帮帮忙,写出脚本呀。我是小白。 最佳答案 1、创建一个半透明的矩…

    SIMATIC WinCC 2020年11月1日
  • IPC477E 是否可配双网卡?

    双网卡连接两个不同的网络,与不同的服务器及工控机进行通信。看到介绍中写只有一个标准以太网卡+一个PN网卡。这个PN网卡是否可以当做一个标准以太网卡来使用?两个网卡分别用于访问不同网…

    2021年7月5日
  • WINCC的VBS脚本从入门到精通手册

    谁有wincc的vbs脚本从入门到精通手册发我一份。谁有wincc“帮助”文件夹发我一份。 jiang88.zzuli.com@163.com 最佳答案 有相关资料,注意…

    SIMATIC WinCC 2019年6月11日
  • wincc7.3里面的创建者在哪设置?

    这个创建者新建项目后自动填写的,而且不能修改的,所以第一次设置我想问一下在哪设置创建者的内容。 最佳答案 如楼上,先打开项目,然后开始菜单->打开SQL Serve…

    2017年6月13日

发表回复

登录后才能评论