<< 前へ        次へ >>

ID : 5492

TrackBufferRead

機能

トラッキングバッファの中から指定されたデータを読み出します。

このコマンドはVer.1.6.*から有効です。

構文

TrackBufferRead (コンベア番号, インデックス番号[, オプション])

指定項目

コンベア番号

使用するコンベア番号(1~16)を整数型データで指定します。
(Ver.1.11.*以前はコンベア1、コンベア2のみ指定可能です。)

インデックス番号

TrackBufferIndexes」で取得したインデックス番号を整数型データで指定します。

設定値 説明
-1 TrackTargetPos」でトラッキング対象ワークに設定したデータが対象。
この項目はVer.2.0.*から使用可能です。
0以上の値 指定したインデックス番号のデータが対象。
オプション

整数型データで指定します。戻り値の内容を選択できます。省略可能です。省略した場合は"-1"を指定します。

設定値 戻り値
-2 下記の全データ (トラッキングバッファのデータ構造は拡張される場合があります。その場合、-2に含まれるデータの数が増えます。)(Ver.1.10.*以降)
-1 下記の0~10のデータ
0 トリガ検出時のエンコーダ値 (整数型データ)
1 対象ワークの現在位置 (ポジション型データ)
(現在のワーク座標系およびツール座標系が反映)
X[mm] (単精度実数型データ)
2 Y[mm] (単精度実数型データ)
3 Z[mm] (単精度実数型データ)
4 Rx[deg] (単精度実数型データ)
5 Ry[deg] (単精度実数型データ)
6 Rz[deg] (単精度実数型データ)
7 ユーザデータ (整数型データ)
8 対象ワークのビジョンセンサ検出座標
(バリアント(Variant)型データ配列)
(Ver.1.7.*以降)
X座標[pixel] (単精度実数型データ)
9 Y座標[pixel] (単精度実数型データ)
10 姿勢角度[deg] (単精度実数型データ)
11 属性データ (整数型データ) (Ver.1.10.*以降)
12 対象ワークが下流限界に到達するまでの残り時間 (整数型データ) [msec](Ver.2.3.*以降)
13 対象ワークが下流限界に到達するまでの残り距離(整数型データ)(Ver.2.5.*以降)

戻り値

オプション」で指定したバリアント(Variant)型で返します。
インデックス番号」で指定したインデックス値をもつデータが、トラッキングバッファの中に存在しない場合は「VarType」コマンドの値が"VT_NULL(0)"になるバリアント(Variant)型データを返します。

解説

TrackBufferIndexesで取得したインデックス番号を用いて、トラッキングバッファより指定されたデータを読み出します。

注意事項

コンベアおよび円形トラッキング専用のコマンドです。

用例

トラッキングバッファに保存されているデータのインデックス番号の1次配列を取得

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) ,-2)

  PrintDbg "enc=" & vVal(0), _
             "x=" & vVal(1), _
             "y=" & vVal(2), _
             "z=" & vVal(3), _
            "rx=" & vVal(4), _
            "ry=" & vVal(5), _
            "rz=" & vVal(6), _
           "usr=" & vVal(7), _
            "vx=" & vVal(8), _
            "vy=" & vVal(9), _
            "θ=" & vVal(10), _
          "attr=" & vVal(11)
Next

1次配列からインデックス番号を一つずつ取り出して、該当インデックスのユーザデータのみを参照・出力する。

Dim idx as long
For idx = LBound(vIndex) To UBound(vIndex)
  Dim vVal as Variant  
  vVal = TrackBufferRead( 1, vIndex(idx), 7 )
  PrintDbg "usr=" & vVal
Next

1次配列からインデックス番号を一つずつ取り出して、該当インデックスの属性データのみを参照・出力する。

Dim idx as long
For idx = LBound(vIndex) To UBound(vIndex)
  Dim vVal as Variant  
  vVal = TrackBufferRead( 1, vIndex(idx), 11 )
  PrintDbg "attr=" & vVal
Next

インデックス番号が5のワークが下流限界に到達するまでの残り時間を取得

I[0] = TrackBufferRead(1, 5, 12)

指定したワークの下流限界までの距離を取得

Dim restLength As Float
restLength = TrackBufferRead (1, -1, 13)

ID : 5492

<< 前へ        次へ >>