マルチタスクでビジョンコマンドを利用する方法
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