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