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.
Cannot be executed from a virtual controller or 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
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)
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