利用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日 上午3:08
下一篇 2017年8月24日 上午3:08

相关推荐

  • PLC的数据处理问题?

    H=Ln(A/B)/μρ;公式中μ和ρ是2个参数;A是初始计数值是个定值;B是被测得的计数值,根据μ和ρ参数设定变化而变化。A和B都是整数,数值比较大(>10^5),H是带2…

    自动化系统综合 2018年12月2日
  • 串行通信里关于这个7位数据位的疑惑?

    7位数据位连一个字节都没有,那很不方便表示一个数据内容啊?虽然也有8位的数据位。但7位数据位存在,那么就合理。所以我想知道这个7位数据位有什么优点,7位最大只能表示正数为0-127…

    自动化系统综合 2018年12月7日
  • CSM1277

    要用csm1277交换机,硬件目录中找不到,这是怎么回事,是我的版本不对吗,我现在的版本是V13 sp1 up6,怎样才能在硬件目录中找到csm1227? 最佳…

    自动化系统综合 2017年6月1日
  • 西门子PLC S7-200

    请问各位师傅,在步进指令里编程,如何更好的做停止 急停  按钮呢。 最佳答案 这个只能是具体问题具体分析了。你所谓的停止状态实际上准确地讲应该的暂停功…

    自动化系统综合 2017年11月12日
  • 过程自动化定义

    请问什么是“过程自动化”?普通的PLC控制的自动化系统不是吗?PCS7是过程自动化软件吗? 最佳答案 其实是相对而言,过程自动化和plc的逻辑控制相对而言。PCS7是过程自动化软件…

    自动化系统综合 2020年11月1日
  • s7-226能否与三菱Q系列组成网络

    请问,西门子s7-226能否与三菱Q系列组成网络CCLIK网络,西226做从站,三菱主站,如果能需要加成什么模块吗,谢谢大家 最佳答案 三菱Q系列PLC采用模块式结构,因此它有各种…

    自动化系统综合 2020年10月31日
  • 恒压供水系统的PLC控制!

    请问各位前辈大狭! 恒压供水系统的PLC控制中我要用到变频器的PID,但是我怎么觉得PID的参数调节那么难啊! 各位有没有好点的心得技巧教教我好了! …

    自动化系统综合 2020年11月1日
  • 判断干扰现象

    在同一块模拟量端子板上(该扳子已经使用好多年了),有0-5v电压信号两个,4-20ma的电流信号四个是二线制,有时候0-5v输出值乱跳,最近这种情况出现的较为频繁,我自己判断是干扰…

    自动化系统综合 2020年11月1日
  • sfc14/15占用cpu的连接资源吗

    调用sfc14/15功能用于分布式IO数据读写占用cpu的连接资源吗?还想再请教一下:CPU416-2和cp443-5EX模块在同一机架,CP和416集成的DP口的地址是不是不能设…

    自动化系统综合 2020年10月31日
  • 西门子高速计数速率1X,4X的意思?

    不太明白高速计数器计数速率1X,4X的意思.如编码器转1圈发2000个脉冲,当选1X或4X时,高速计数器读出是多少脉冲?1X,4X,在编程时有何不同?请举例详细点说明 最佳答案 每…

    自动化系统综合 2020年10月31日