calculated position

  • dear all,


    i have some position which i decalre them in the dat file as e6pos.
    the problem is that the robot is stopping between them, but i can not make them to be continues as i do when i tech the point.
    how can i make a continues motion for calculated position?



    zeev


  • post your code


    ;fold release check
    IF (PTRconv>0) AND (PTRconv<4) THEN
    ReleaseGripperPlastic()
    ELSE
    ReleaseGripperCarton()
    ENDIF
    ;endfold

    ;FOLD checking oriantatio and setting current layer
    SWITCH PTRconv
    ;fold plastic
    CASE 1
    $BASE= BASE_DATA[1]
    MoveToPosAplastic()
    TempPickPos.z = HighPoint
    PTP TempPickPos
    LayerCurrent = LayerLevel[NumberOfLayers[PTRconv]]
    CASE 2
    $BASE=BASE_DATA[2]
    MoveToPosBplastic()
    TempPickPos.z = HighPoint
    PTP TempPickPos
    LayerCurrent = LayerLevel[NumberOfLayers[PTRconv]]
    CASE 3
    $BASE=BASE_DATA[3]
    MoveToPosCplastic()
    TempPickPos.z = HighPoint
    PTP TempPickPos
    LayerCurrent = LayerLevel[NumberOfLayers[PTRconv]]
    ;endfold
    ;fold carton
    CASE 4
    $BASE=BASE_DATA[5]
    IF ConveyerBoxType[PTRconv]==1 THEN
    IF CartonOrin[1] == FALSE THEN
    MoveToPosAcartonT1()
    ELSE
    MoveToPosA180cartonT1()
    ENDIF
    ELSE
    IF CartonOrin[1] == FALSE THEN
    MoveToPosAcartonT2()
    ELSE
    MoveToPosA180cartonT2()
    ENDIF
    ENDIF
    TempPickPos.z = HighPoint
    PTP TempPickPos
    LayerCurrent = LayerLevel[NumberOfLayers[PTRconv]]
    CASE 5
    $BASE=BASE_DATA[6]
    IF ConveyerBoxType[PTRconv]==1 THEN
    IF CartonOrin[2]==FALSE THEN
    MoveToPosBcartonT1()
    ELSE
    MoveToPosB180cartonT1()
    ENDIF
    ELSE
    IF CartonOrin[2]==FALSE THEN
    MoveToPosBcartonT2()
    ELSE
    MoveToPosB180cartonT2()
    ENDIF
    ENDIF
    TempPickPos.z = HighPoint
    PTP TempPickPos
    LayerCurrent = LayerLevel[NumberOfLayers[PTRconv]]
    CASE 6
    $BASE=BASE_DATA[7]
    IF ConveyerBoxType[PTRconv]==1 THEN
    IF CartonOrin[3]==FALSE THEN
    MoveToPosCcartonT1()
    ELSE
    MoveToPosC180cartonT2()
    ENDIF
    ELSE
    IF CartonOrin[3]==FALSE THEN
    MoveToPosCcartonT2()
    ELSE
    MoveToPosC180cartonT2()
    ENDIF
    ENDIF
    TempPickPos.z = HighPoint
    PTP TempPickPos
    LayerCurrent = LayerLevel[NumberOfLayers[PTRconv]]
    ;endfold
    ENDSWITCH
    ;ENDFOLD
    TempAbove=$POS_ACT
    curLevel = NumberOfLayers[PTRconv]
    TempPickPos.z = LayerLevel[curLevel]
    LIN TempPickPos
    IF PickPlastic==TRUE THEN
    IF Grip1Open==TRUE THEN
    PlasticClose1()
    ENDIF
    IF Grip2Open==TRUE THEN
    PlasticClose2()
    ENDIF
    WAIT SEC 1
    ELSE
    IF Grip1Open==TRUE THEN
    CartonClose1()
    ENDIF
    IF Grip2Open==TRUE THEN
    CartonClose2()
    ENDIF
    ENDIF
    ;FOLD checking box position number for running away
    TempPickPos.z = TempPickPos.z + RunAwaySize
    ;runaway up only for plastic
    LIN TempPickPos
    SWITCH BoolPos
    CASE 1
    TempPickPos.x = TempPickPos.x - (RunAwaySize/3)
    TempPickPos.y = TempPickPos.y - (RunAwaySize/3)
    CASE 2
    IF MatConveyer[2,PTRconv] == TRUE THEN ;we have blocking condtion
    TempPickPos.x = TempPickPos.x - (RunAwaySize/3)
    TempPickPos.y = TempPickPos.y + (RunAwaySize/3)
    ELSE
    TempPickPos.x = TempPickPos.x - (RunAwaySize/3)
    TempPickPos.y = TempPickPos.y - (RunAwaySize/3)
    ENDIF
    CASE 3
    TempPickPos.x = TempPickPos.x - (RunAwaySize/3)
    TempPickPos.y = TempPickPos.y + (RunAwaySize/3)
    CASE 4
    TempPickPos.x = TempPickPos.x + (RunAwaySize/3)
    TempPickPos.y = TempPickPos.y - (RunAwaySize/3)
    CASE 5
    TempPickPos.x = TempPickPos.x ;- RunAwaySize
    TempPickPos.y = TempPickPos.y ;- RunAwaySize
    ENDSWITCH
    LIN TempPickPos
    ;TempPickPos.z = TempPickPos.z + LayerCurrent - RunAwaySize ; move up
    ;LIN TempPickPos
    LIN TempAbove
    ;ENDFOLD
    BoxInGrip = TRUE ;The Gripper has a box on it

    ;fold Check if boxes on gripper
    IF CheckBox==TRUE THEN
    CheckBoxOnGriper()
    ENDIF

    ;endfold

Advertising from our partners