多任务处理
对于某些应用,您可能想控制除了机器人以外的其他设备,如传送带、取放装置等。通过使用多任务处理,您可以控制其他设备及其任务。
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