多工處理

在某些應用中,您可能會想控制機器人旁邊的其他設備(例如傳送帶)、拾取及放置單元等。透過多工處理,您便可控制其他設備執行專門的任務。

SPEL+最多同時支援32個正常任務及16個背景任務(總共48個任務)。一個任務代表透過系統或Xqt聲明所啟動的一個函數。

使用Xqt聲明可在函數中啟動另一個任務。您可以選擇性地在Xqt聲明中指定1至32的任務編號。

從背景任務啟動的任務會啟動作為背景任務。您最多可同時執行16個背景任務。

下表顯示用於多工處理的程式指令。

聲明 描述
Xqt 啟動函數作為任務。
Halt 暫時停止執行任務。
Resume 重新開始暫停的任務。
Quit 停止任務。
Signal 將信號發送至等待信號的一或多個任務(使用WaitSig)。
SyncLock 鎖定目前任務所使用的資源,並阻止其他任務使用資源,直到執行SyncUnlock。
WaitSig 等待另一任務的信號。
Pause 暫停所有任務。

啟動其他任務的例子像是,針對機器人工作單元執行傳送帶系統。

程式: MAINTASK.PRG

Function Main
  Xqt Conveyor    ' 啟動傳送帶任務
  Do
    ...
    ...
  Loop
Fend

程式: CONVTASK.PRG

Function Conveyor
  Do
    Select True
      Case Sw(10) = On
        Off convCtrl
      Case Sw(11) = On
        On convCtrl
    Send
  Loop
Fend