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