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