Herunterladen Inhalt Inhalt Diese Seite drucken

ABB Robotics PickMaster Twin - PowerPac Anwendungshandbuch Seite 418

Inhaltsverzeichnis

Werbung

5 RAPID-Referenz
5.5.10 Beispiel: Objektpuffer
Fortsetzung
Fortsetzung auf nächster Seite
418
! Edit this routine to modify from which work areas to pick and
place.
! Needs to be changed if more than one pick work area is used.
! Needs to be changed if more than one place work area is used.
!
!***********************************************************
PROC PickPlaceSeq()
VAR num GQL:=0;
Picked:=0;
WHILE Picked=0 DO
IType:=0;
!=== PickPosAvailable ? ===
GQL:=GetQueueLevel (ItmSrcData{PickWorkArea{1}}.ItemSource
\MinLimit:=InFlowEnter \MaxLimit:=InFlowExit);
If GQL>0 THEN
NextItmTgtType ItmSrcData{PickWorkArea{1}}.ItemSource, IType;
!=== Matching Item on outfeeder ? ===
GQL:=GetQueueLevel (ItmSrcData{PlaceWorkArea{1}}.ItemSource
\ItmType:=IType \MinLimit:=OutFlowEnter
\MaxLimit:=OutFlowExit);
IF GQL>0 THEN
Picked:=1;
ELSE
!=== Empty pos in buffer? ===
IF BufferIndex{IType}<BufferMax{IType} THEN
Picked:=3;
ELSE
!=== What to do with the item on the infeeder? ===
GetItmTgt
ItmSrcData{PickWorkArea{1}}.ItemSource,PickTarget\ItemType:=IType;
TEST DropAction
CASE 0:
AckItmTgt ItmSrcData{PickWorkArea{1}}.ItemSource,PickTarget,TRUE;
CASE 1:
AckItmTgt ItmSrcData{PickWorkArea{1}}.ItemSource,PickTarget,FALSE;
CASE 2:
AckItmTgt
ItmSrcData{PickWorkArea{1}}.ItemSource,PickTarget,FALSE\Skip:=TRUE;
ENDTEST
Picked:=0;
ENDIF
ENDIF
ELSE
GQL:=GetQueueLevel (ItmSrcData{PlaceWorkArea{1}}.ItemSource
\MinLimit:=OutFlowEnter \MaxLimit:=OutFlowExit);
If GQL>0 THEN
NextItmTgtType ItmSrcData{PlaceWorkArea{1}}.ItemSource, IType;
!=== Matching Item on Infeeder ? ===
GQL:=GetQueueLevel (ItmSrcData{PickWorkArea{1}}.ItemSource
\ItmType:=IType \MinLimit:=InFlowEnter \MaxLimit:=InFlowExit);
IF GQL>0 THEN
© Copyright 2023 ABB. Alle Rechte vorbehalten.
Anwendungshandbuch - PickMaster® Twin - PowerPac
3HAC080435-003 Revision: F

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis