PF_AccessFeeder / PF_ReleaseFeeder

PF_AccessFeeder / PF_ReleaseFeeder locks and unlocks 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. PF_AccessFeeder is a mutual exclusion lock. If a lock has already been obtained, PF_AccessFeeder will pause the task (i.e., wait its turn) until the lock is released or until the specified timeout (optional) is reached. When a robot finishes using a feeder, it must release the lock using the PF_ReleaseFeeder statement in order to relinquish the feeder to the other robot. PF_ReleaseFeeder can be used inside the "!...!" parallel processing statement of a motion command. In this way, one robot will approach the feeder as the other robot is departing from it.
The code to prevent robots from colliding while accessing a feeder looks something like the following:

PF_AccessFeeder 1  
Pick = PF_QueGet(1)  
PF_QueRemove (1)  
Jump Pick  
On gripper  
Wait .25  
Jump Place ! D80; PF_ReleaseFeeder 1 !