VGet, VSetコマンドでSPEL+のリザルトやプロパティーにアクセスする方法

VGetコマンドとVSetコマンドは、SPEL+プログラム中のシーケンスまたはオブジェクトのプロパティーを確認したり、設定したりするのに使用することができます。
VGetコマンドは、リザルトを取り込むのに使用されます。例えば、サーチウィンドウのサイズや位置, 許容パラメーター, カメラゲイン, 指定最大領域を変更することができます。
Vision Guide 8.0のポイント クリック インタフェースからアクセスできるプロパティーやリザルトのすべては、SPEL+プログラムからもアクセスすることができます。また、中には、複数リザルトを設定したり返したりするために、VGetコマンドとVSetコマンドを使わなければアクセスできない特殊なプロパティー(SearchWin, RobotXYU, ModelWin)があります。
VGetコマンドとVSetコマンドは、共通のシンタックスを使用しています。
これらのコマンドでは、まず、シーケンス名を指定しなければなりません。さらに、ビジョンオブジェクトのプロパティーやリザルトにアクセスするため、ビジョンシーケンス名の後にビジョンオブジェクト名を続けなければなりません。
シーケンス名, オブジェクト名, プロパティー名, リザルト名を区別するのには、ピリオドを使用します。複数リザルトを使う場合は、リザルト名の後に括弧に入れたリザルト番号を追加して、指定するリザルトを選択してください。

シーケンスのプロパティーやリザルトには、次のシンタックスを使用しています。

VGet seqName.propName, var	‘put property value in variable  
VSet seqName.propName, value	‘set property to value  

オブジェクトのプロパティーやリザルトには、次のシンタックスを使用しています。

VGet seqName.objName.resultName, var  
VGet seqName.objName.propertyName, var  
VSet seqName.objName.propertyName, value  

オブジェクトの複数リザルトには、次のシンタックスを使用しています。

VGet seqName.objName.resultName(resultnum), var  

また、シーケンス名とオブジェクト名は、文字列変数にすることもできます。
詳細は、以下を参照してください。
シーケンス名とオブジェクト名に変数を使用する方法

VGetの使用方法

VGetコマンドは、プロパティーやリザルトを取り込み、SPEL+変数に置換します。プログラムには、VGetからの値を受け取るのに適切なデータ型の変数を供給しなければなりません。
次に示すのは、SPEL+プログラムでのVGetの使用方法の例です。

Function Inspect  
  ' Run the vision sequence  
  VRun InspectPart  
  Integer i, numberFound  
  Real area  
  VGet inspPart.Part1.NumberFound, numberFound  
  For i = 1 to numberFound  
    ' Loop through each item that was found  
    ' Get the area of the blob result  
    VGet inspPart.Part1.Area(i), area  
    Print "Area of result ", i, " is ", area  
  Next i  
Fend  

VSetの使用方法

VSetは、ランタイムのプロパティーの値を設定します。このコマンドを使用すると、SPEL+プログラムからダイナミックにプロパティーの設定を調整できます。
ほとんどの場合では、Vision Guideウィンドウからプロパティーを設定でき、プロパティーの設定を変更せずに、SPEL+プログラムからビジョンシーケンスを実行することができますが、プログラム実行中の変更が要求される場合に、VSetコマンドを使用します。
次に示すのは、SPEL+プログラムでのVSetの使用方法の例です。1番目のVSetは、シーケンスプロパティーを設定するのに使用されていることに注意してください。2番目のVSetでは、シーケンスの実行前に、サーチウィンドウの位置とサイズを再定義するのに使用されるSearchWinというオブジェクトプロパティーを設定しています。

Function findPart  
  
  ' Set camera gain for sequence "findPart"  
  VSet findPart.CameraContrast, 32  
	  
  ' Set search window for object "part"  
  VSet findPart.part.SearchWin, 100, 100, 50, 50  
  
  ' Run the sequenced  
  VRun findPart  
Fend