RobotStudio event

Indexed Conveyor Tracking






I am trying to test indexed conveyor tracking with
flexpicker. The robware version is 5.09.  The robot tracks conveyor with 4-5 mm position lags during acceleration and deceleration of the conveyor. I
have defined the sensor_start_signal to the Configuration/Process/Conveyor
systems/CNV1. And controller of the conveyor triggers that 100ms earlier from
the one index movement.

How can I make indexed conveyor tracking without lags?

 

I changed some default parameters, and these are:

 

               
Pos_update_time          :             
5

               
Connection 1 interval   
:             
4

               
IIRFPeriod                         
:             
0.004

               
IIRFFP                                 
:             
15 hertz.

               
Adjustment_Accel        
:             
100000

 

Profile is recorded succesfully. I open it, it is ok and
every number makes sense. Here is my code:

 

 

 

MODULE idnexed_cnv

VAR bool recorded;

 

PROC main()

               
recorded := FALSE;

               
ActUnit CNV1;

               
ConfLOff;

               
MoveL rt_waitPoint, v500, z1, tool0WObj:=wobj0;

               

               
IF recorded = FALSE THEN

               
               
rec;

               
ENDIF

               

               
LoadProfile CNV1, 0, "Profiless.log";

               
WaitTime 0.2;

               
ActivateProfile CNV1, 0;

               

               
WaitDO do6,1;

               
SetDO do7,1;  !Indexed Conveyor Start Signal

               
loop:

               

                              

                              
WaitWObj wobj_cnv1;

                              
!MoveL rt_cnvp3, v500, z1Inpos:=followtime, tool0WObj:=wobj_cnv1;         

                              
MoveL rt_cnvp3, v500, fine, tool0WObj:=wobj_cnv1;

                              
WaitTime 3;

                              
MoveL rt_waitPoint, v500, z10, tool0WObj:=wobj0;

                              
DropWObj wobj_cnv1;

                              

               
IF DOutput(do6) = 1 THEN

                              
GOTO loop;

               
ENDIF

 

               
SetDO do7,0;

               
WaitTime 4;

 

ERROR

 

               
IF ERRNO = ERR_CNV_CONNECT THEN

                              
DropWObj wobj_cnv1;

                              
RETRY;

               
ENDIF

 

ENDPROC

 

 

PROC rec()

 

               
WaitWObj wobj_cnv1;

               
RecordProfile CNV1,1,"index_profile";

               
PulseDO High PLength := 1, do7;   ! ?ndexed conveyor start signal.

               
WaitTime 3;

               
DropWObj wobj_cnv1;

               
StoreProfile CNV1, 0, "Profiless.log";

               
recorded := TRUE;

               

ERROR

 

               
IF ERRNO = ERR_CNV_CONNECT THEN

                              
DropWObj wobj_cnv1;

                              
RETRY;

               
ENDIF

               

 

ENDPROC

ENDMODULE


Kind Regards.


sbkuran2009-10-30 07:29:47