PF_ReleaseFeeder

Release the lock acquired by PF_AccessFeeder.
PF_AccessFeeder & PF_ReleaseFeeder lock and unlock access to a feeder to prevent potential collisions on a multi-robot / one feeder system. These commands are required when two robots are sharing the same feeder at the same time.

Example:
Task 1 executes PF_AccessFeeder 1. Task 1 continues.
Task 2 executes PF_AccessFeeder 1, then Task 2 is paused.
Task 1 executes PF_ReleaseFeeder 1, then Task 2 is resumed.

This command can be written in parallel processing (!...!) in motion commands.

Syntax
Format 1: PF_ReleaseFeeder feeder number/ feeder name
Format 2: MotionCommand ! [Dn;] PFReleaseFeeder feeder number/ feeder name!

Parameters

  • Feeder Number
    Specify the feeder number as an expression or a numerical value (an integer from 1 to 4).
  • Name
    Specify the feeder name as a character string.
  • MotionCommand
    Any of Arc, Arc3, Go, Jump, Jump3, Jump3CP, Move, BGo, BMove, TGo, and TMove.
  • Dn
    Specify where in the path of the robot's movement to start parallel processing in %.
    (See Epson RC+ 8.0 SPEL+ Language Reference ! Parallel Processing) !...! Parallel Processing)

Return values
None

Description
The lock can only be unlocked within the same task.
This function cannot be executed from the command window.

Examples
This is an example of getting the last part on the feeder and when 50% of the path to the place position is reached, control is returned to PF_Start to start vision imaging and feeder operation.

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