PF_ReleaseFeeder
Libère le verrou acquis par PF_AccessFeeder.
Les instructions PF_AccessFeeder& PF_ReleaseFeeder verrouillent et déverrouillent l’accès à un distributeur afin d’éviter tout risque de collision dans un système à plusieurs robots et à un seul distributeur. Ces commandes sont nécessaires lorsque deux robots partagent le même distributeur en même temps.
Exemple :
La tâche 1 exécute PF_AccessFeeder 1. La tâche 1 continue.
La tâche 2 exécute PF_AccessFeeder 1, puis la tâche 2 est mise en pause.
La tâche 1 exécute PF_ReleaseFeeder 1, puis la tâche 2 reprend.
Cette commande peut être écrite en traitement parallèle (!...!) dans les commandes de mouvement.
Syntaxe
Format 1 : PF_ReleaseFeeder feeder number/ feeder name
Format 2 : MotionCommand ! [Dn;] PFReleaseFeeder feeder number/ feeder name!
Paramètres
- Numéro de distributeur
Indiquez le numéro du distributeur sous forme d’expression ou de valeur numérique (un nombre entier compris entre 1 et 4). - Name
Indiquez le nom du distributeur sous forme de chaîne de caractères. - MotionCommand
N’importe lequel parmi Arc, Arc3, Go, Jump, Jump3, Jump3CP, Move, BGo, BMove, TGo et TMove. - Dn
Indiquez à quel pourcentage du mouvement du robot le traitement parallèle doit commencer.
(Voir Epson RC+ 8.0 SPEL+ Language Reference ! Parallel Processing) !...! Parallel Processing)
Valeurs de retour
Aucune
Description
Le verrou ne peut être déverrouillé qu’au sein de la même tâche.
Cette fonction ne peut pas être exécutée depuis la fenêtre de commande.
Exemples
Voici un exemple illustrant comment récupérer la dernière pièce sur le distributeur et, lorsque 50 % du trajet vers le positionnement est parcouru, renvoyer le contrôle à PF_Start pour lancer l’imagerie de vision et l’opération du distributeur.
Function main
Motor On
Do while True
PF_AccessFeeder 1
PF_Start(1)
Loop
Fend
Function PF_Robot(partID As Integer)
Xqt Task_PF_Robot(partID)
PF_Robot = PF_SUCCESS
Fend
Function Task_PF_Robot(partID As Integer)
PF_AccessFeeder 1
Integer i
For i = 1 to numToPick
pick = PF_GetQue(PartID)
PF_QueRemove(PartID)
Jump pick
On gripperOutput
Wait 0.1
If i < numToPick And PF_QueLen(PartID) > 0 Then
Jump place
Else
’ Last part, so release the feeder at 50%
Jump place !D50; PF_ReleaseFeeder 1!
EndIf
Off gripperOutput
Wait 0.1
Next i
Fend