Utilisation des déroutements

Les déroutements permettent à un programme de sauter à une étiquette ou de permettre à une fonction d'être appelée lorsqu'un certain événement se produit.

Les déroutements sont divisés en deux types comme suit :

  • 4 déroutements sont déclenchés par une entrée définie par l'utilisateur
  • 7 déroutements sont déclenchés par le système

Vous devez garder les fonctions de déroutement courtes et éviter les boucles continues. En fonction du type, certains déroutement doivent être ré-établis. De plus, certaines commandes de mouvement se limitent à l'exécution de fonctions de déroutement.

Pour plus de détails sur les commandes Trap, reportez-vous au manuel suivant :

"SPEL+ Language Reference"

Voici un exemple simple de déroutement. Dans cet exemple, lorsque l'entrée 1 est activée, elle exécute la fonction de déroutement Sw1.

Function main
  ' Définit le déroutement
  Trap 1 Sw(1) = On Xqt Sw1Trap
  Do
    RunCycle
  Loop
Fend

Function Sw1Trap
  ' Activer la sortie 1 pendant 2 secondes
  On 1, 2
  ' Attendre que la condition de déroutement s'efface
  Wait Sw(1) = Off
  ' Rétablir le déroutement
  Trap 1 Sw(1) = On Xqt Sw1Trap
Fend
Déroutement Description
Trap 1- 4 Goto Déclenché par une condition d'entrée spécifiée par l'utilisateur. Les déroutements de l'utilisateur peuvent utiliser GoTo, Call ou Xqt.
Trap 1- 4 Call
Trap 1- 4 Xqt
Trap Emergency Xqt Lorsqu'un arrêt d'urgence se produit, une fonction spécifiée est exécutée.
Trap Error Xqt Lorsqu'une erreur se produit, une fonction spécifiée est exécutée.
Trap SgOpen Xqt Lorsque le circuit de sécurité est ouvert, une fonction spécifiée est exécutée.
Trap SgClose Xqt Lorsque le circuit de sécuritén est fermé, une fonction spécifiée est exécutée.
Trap Pause Xqt Lorsque le système entre dans l'état Pause, une fonction spécifiée est exécutée.
Trap Abort Xqt Lorsque toutes les tâches (à l'exception des tâches en arrière-plan) ont été arrêtées par l'utilisateur ou le système, comme lorsqu'une commande correspondant à Abandonner tout est exécutée, une fonction spécifiée est exécutée.
Trap Finish Xqt Lorsque toutes les tâches (à l'exception des tâches en arrière-plan) sont terminées, une fonction spécifiée est exécutée. La fonction ne sera toutefois pas exécutée sous la condition qui exécute l'Interruption du déroutement.