ID : 5492
TrackBufferRead
構文
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で取得したインデックス番号を用いて、トラッキングバッファより指定されたデータを読み出します。
関連項目
TrackBufferDelete、 TrackBufferIndexes、 TrackSetSensor、 TrackSetVision、 TrackTargetPos、 TrackTargetRelease、 コンベアトラッキング用コマンド、 円形トラッキング用コマンド
注意事項
コンベアおよび円形トラッキング専用のコマンドです。
用例
トラッキングバッファに保存されているデータのインデックス番号の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