<< 向前        下一页 >>

ID : 5491

TrackBufferIndexes

功能

只提取保存到跟踪缓冲区的数据的索引编号,排列后返回。

此指令对Ver.1.6.*以上的版本有效。

格式

TrackBufferIndexes (传送带编号 [, 对象数据[, 用户数据]])

指定项目

传送带编号

使用整数型数据指定需使用的传送带编号(1~16)。
(Ver.1.11.*以前只有传送带1、传送带2才能指定。)

对象数据

使用整数型数据指定获取的数据。可省略。省略时变为指定“-1”。

设定值 内容
-1 以全部数据为对象。
1 以通过“TrackTargetPos”设定到跟踪对象工件的数据为对象。
需要在将“TrackTargetPos”的第4自变量的模式1设为有效,跟踪对象工件的数据保留在
跟踪缓冲区内的状态,执行。
2 除开设定值“1”中作为对象的数据,其余的数据都是对象。
Ver.2.0.*及更高版本可使用该项目。
3 工件的当前位置以位于跟踪范围上游上限上流的数据为对象。
Ver.2.0.*及更高版本可使用该项目。
4 工件的当前位置以位于跟踪范围上游上限下流的数据为对象。
Ver.2.0.*及更高版本可使用该项目。
5 工件的当前位置以位于跟踪范围下游下限上流的数据为对象。
Ver.2.0.*及更高版本可使用该项目。
6 工件的当前位置以位于跟踪范围下游下限下流的数据为对象。
Ver.2.0.*及更高版本可使用该项目。
7 工件的当前位置以位于跟踪范围内的数据为对象。
Ver.2.0.*及更高版本可使用该项目。
用户数据
使用整数型数据指定。指定了负值时,不进行用户数据的判定。
可省略。省略时默认指定为“-1”。Ver.2.0.*及更高版本可使用该项目。

返回值

返回符合指定的对象数据及用户数据的数据的索引编号。
通过变体(Variant)型数据的1次排列返回。各索引编号是整数型数据。
跟踪缓冲区为空时,返回“VarType”指令值变为“VT_EMPTY(0)”的变体(Variant)型数据。

对象数据 用户数据 返回值
指定 省略或负值 无论用户数据如何,返回指定的对象数据的索引编号。
指定 指定 返回属于指定用户数据的指定对象数据的索引编号。
省略(-1) 省略或负值 返回跟踪缓冲区内全部数据的索引编号。
省略(-1) 指定 返回属于指定用户数据的跟踪缓冲区内的全部数据的索引编号。

解说

只从保存到跟踪缓冲区的数据中提取符合指定的对象数据及用户数据的数据的索引编号,排列后返回。
使用取得的索引编号,指定跟踪缓冲区数据,并根据TrackBufferRead进行数据的参照。

注意事项

传送带及圆形跟踪专用指令。

应用示例

Sub Main  

  ' 提取全部数据的索引编号
  Dim vIndex as Variant    
  vIndex = TrackBufferIndexes(1, -1) 
 
  Dim idx as long    
  For idx = LBound(vIndex) To UBound(vIndex)
    
    ' 使用索引编号,从跟踪缓冲区取得指定的数据
    Dim vVal as Variant
    vVal = TrackBufferRead(1, vIndex(idx), -1)                            

    ' 数据输出  
    PrintDbg "enc=" & vVal(0), _
             "x=" & vVal(1), _
             "y=" & vVal(2), _
             "z=" & vVal(3), _
             "rx=" & vVal(4), _
             "ry=" & vVal(5), _
             "rz=" & vVal(6)
    
  Next
      
End sub

 

以下为根据要素是否为空分别处理的示例。

#include "variant.h"

Sub Main

  ' 提取全部数据的索引编号
 Dim vIndex as Variant
 vIndex = TrackBufferIndexes(1, -1)

  If VarType(vIndex) = VT_EMPTY then
    ' 要素为空时的处理

'・・・
  ElseIf VarType(vIndex) And VT_ARRAY then
    ' 要素不为空(要素成了排列)时的处理
    If ( UBound( vIndex ) <> -1 ) then
      ' 确认要素的个数不为零,读出数据
      ' 使用索引编号,从跟踪缓冲区取得指定的数据
      Dim vVal as Variant
      vVal = TrackBufferRead(1, UBound( vIndex ), -1)
'・・・
    End If
'・・・
  End If

End Sub

ID : 5491

<< 向前        下一页 >>