PF_AccessFeeder / PF_ReleaseFeeder
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. PF_AccessFeeder est un verrou d’exclusion mutuelle. Si un verrou a déjà été obtenu, PF_AccessFeeder mettra la tâche en attente (c’est-à-dire, qu’elle attendra son tour) jusqu’à ce que le verrou soit libéré ou jusqu’à ce que le délai d’expiration spécifié (facultatif) soit atteint. Lorsqu’un robot a fini d’utiliser un distributeur, il doit lever le verrou à l’aide de l’instruction PF_ReleaseFeeder afin de laisser le distributeur à la disposition de l’autre robot. PF_ReleaseFeeder peut être utilisé à l’intérieur de l’instruction de traitement parallèle « !...! » d’une commande de mouvement. Ainsi, un robot s’approchera du distributeur au moment où l’autre robot s’en éloignera.
Le code permettant d’éviter que les robots n’entrent en collision lorsqu’ils accèdent à un distributeur ressemble à peu près au code suivant :
PF_AccessFeeder 1
Pick = PF_QueGet(1)
PF_QueRemove (1)
Jump Pick
On gripper
Wait .25
Jump Place ! D80; PF_ReleaseFeeder 1 !