利用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循环就可以了啊

提问者对于答案的评价:

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年8月24日
下一篇 2017年8月24日

相关推荐

  • ob程序块怎么编写?有的是不是不用编?望各位老师指导?

    最佳答案 http://www.ad.siemens.com.cn/service/e-training/list.asp?columnid=4 在网上课堂里有如何使用O…

    自动化系统综合 2020年11月1日
  • WINCC报警记录的消息!!1

    WINCC报警记录的消息位不能更改,提示“位错误,输入0-7之间的值” 请帮忙解决下!!! 最佳答案 WinCC flexible中的离散量报警变量只能用WOR…

    自动化系统综合 2020年11月1日
  • 关于接地

    在系统中,变频器的地线和PLC模块的地线都是分别接地(独立接地)问个很幼稚的问题,所谓分别接地(单独接地)是具体怎样接的? 最佳答案 变频器,电机的地线一般称作动力地,通常接3相5…

    自动化系统综合 2020年11月1日
  • 315F-2PN/DP

    315F-2PN/DP双CPU是怎么回事?说双CPU进行比较,然后根据比较结果发出命令,这是怎么回事?它们怎么工作的?求解 最佳答案 1、315F-2PN/DP双CPU是怎么回事?…

    自动化系统综合 2020年10月31日
  • S1200与MODBUS编码器连接通信

    有两款绝对值编码器一个是RS485输出型智能多圈绝对值编码器 ,另一个是Modbus输出型智能多圈绝对值编码器 ,现在要选用一个连接到S1200PLC中去,不知…

    2018年12月3日
  • 数控机床(加工中心)

    伺服放大器,和伺服驱动器有什么区别?   它里面的程序是属于PLC吗?请师傅指教。 问题补充:它的程序在哪里面?  最佳答案 两者是没有区别…

    自动化系统综合 2020年11月1日
  • SCL深入研究

    关于SCL的问题:1:SCL源文件里面的SCL编译控制文件是做什么用的??? 西门子有没有相关文档介绍?2:在SCL里面声明块编号的时候,比如通常写 FBxx&…

    自动化系统综合 2017年8月24日
  • 西门子如何用DP组网

    西门子子系统如何用DP网线组网?组网是DP头如何设置?软件如何设置?谢谢!最好有资料介绍 最佳答案 1.硬件组态DP网是各个远程站挂到DP网上.2.现场的DP网是参照硬件组态来的,…

    自动化系统综合 2020年10月31日
  • 求助,组态王软件中WEB页面发布问题?

    我先在有两台工控机上安两个组态王软件,一台做为主机,另一台通过网页发布功能监控,控制主机上的信息,我安照手册中的步骤设完了WEB的设置,但发布到另一个组态王上后只能显示画面,不能显…

    自动化系统综合 2020年10月31日
  • 西门子DCS系统

    大侠们谁有西门子DCS的选型手册和接线手册以及使用说明书给小弟一份吧!另外想咨询一下,目前DCS都有什么牌子的?在钢厂或化工厂哪种DCS使用的比较多呢? 最佳答案 西门子DCS,你…

    自动化系统综合 2017年11月26日