Multitâche
Pour certaines applications, vous souhaiterez peut-être contrôler d'autres équipements en plus du robot, tels que des convoyeurs, des unités de saisie et de placement, etc. En utilisant le multitâche, vous pouvez contrôler ces autres équipements avec leurs propres tâches.
SPEL+ prend en charge jusqu'à 32 tâches normales et 16 tâches en arrière-plan (48 tâches au total) exécutées simultanément. Une tâche est une fonction qui a été démarrée par le système ou par l'instruction Xqt.
Utilisez l'instruction Xqt pour démarrer une autre tâche à partir d'une fonction. En option, vous pouvez spécifier un numéro de tâche compris entre 1 et 32 dans l'instruction Xqt.
Une tâche démarrée à partir d'une tâche en arrière-plan est démarrée en tant que tâche en arrière-plan. Vous pouvez exécuter simultanément jusqu'à 16 tâches en arrière-plan.
Le tableau ci-dessous affiche les instructions du programme utilisées pour le multitâche.
| Instruction | Description |
|---|---|
| Xqt | Démarre une fonction en tant que tâche. |
| Interrompre | Suspend temporairement l'exécution d'une tâche. |
| Reprendre | Reprend une tâche qui a été interrompue. |
| Quitter | Arrête une tâche. |
| Signal | Envoie un signal à une ou plusieurs tâches qui attendent le signal à l'aide de WaitSig. |
| SyncLock | Verrouille une ressource à utiliser par la tâche en cours et empêche les autres tâches d'utiliser la ressource jusqu'à ce que SyncUnlock soit exécuté. |
| WaitSig | Attend le signal d'une autre tâche. |
| Pause | Interrompre toutes les tâches. |
Un exemple pour démarrer une autre tâche consiste à exécuter un système de convoyeur pour la cellule de travail du robot.
Programme : MAINTASK.PRG
Function Main
Xqt Conveyor ' Démarrer la tâche du convoyeur
Do
...
...
Loop
Fend
Programme : CONVTASK.PRG
Function Conveyor
Do
Select True
Case Sw(10) = On
Off convCtrl
Case Sw(11) = On
On convCtrl
Send
Loop
Fend