マルチタスクでビジョンコマンドを利用する方法

SPEL+プログラムで、複数のタスクからビジョンシーケンスの実行とリザルトの取り込みができます。SPEL+は、内部的に一度に1つの実行するビジョンコマンドを自動で処理します。複数のタスクがビジョンシステムを必要とする場合、コマンドは先着順で実行されます。1つのタスクがビジョンシステムを利用しているあいだ、他のタスクは、最初のタスクが現在のビジョンコマンドを終了するまでブロックします。(待ちます。)
異なるカメラを使用している異なるタスクから、同じシーケンスを実行することもあります。他のタスクを待つ間、1つのタスクでシーケンスを実行しリザルトを得たいとき、ビジョンシステムをロックするSyncLockとSyncUnlock命令を使用します。そして他のタスクにリリースします。

Function VisionTask(camera As Integer)  
  Boolean found  
  Do  
    SyncLock 1 ' Lock vision just for this task  
    VSet FindParts.Camera, camera  
    VRun FindParts  
    VGet FindParts.AllFound, found  
    SyncUnlock 1 ' Unlock vision for other tasks  
  Loop  
Fend