WorldZone signal not matching Actual Robot Position

I have set up a worldzone box above one of my presses to prevent the robot from moving in when the press door is open. When testing I noticed the signal was triggering at different times in the program seeming to drift or move. I pulled up the online monitoring and found that the digital position of the robot was getting ahead of the actual robot and the signal would trigger based on the virtual position of the robot. I have have waitDi's and fine point in the routine. 
Has anyone seen this before? 
Is there anyway to ensure they stay synced? 

Comments

  • Hello Tilford! 
    i recommend to create robot defined joint positions instead of a box. 

    To setup my following instruction make sure all the output signals for the zone are defined as "read only"
    also make sure to setup the "Worldzone" Routine into the Event Routine task... (Configuration -> Controller -> Event Routine)

    JT_Delta defines the precision on the axis values.

    I hope i was able to help you!
    !-------------------------------------------------------------------------------------!
    
      ! Routine to define the PowerON-Event
      PROC PowerON()
    
        !-------------------------------------------------------!
        ! INFO: This Routine gets executed by the PowerON-Event !
        !-------------------------------------------------------!
    
        ! Define the InCalib-zone
        WZHomeJointDef\Inside,shCalib,J_CalibPos,jtDelta;
        WZDOSet\Stat,wzCalib\Inside,shCalib,do_INT_InCalib_ROB1,high;
    
        ! Define the InEvade-zone
        WZHomeJointDef\Inside,shEvade,J_EvadePos,jtDelta;
        WZDOSet\Stat,wzEvade\Inside,shEvade,do_INT_InEvade_ROB1,high;
    
        ! Define the Homeposition-zone
        WZHomeJointDef\Inside,shHome,J_HomePos,jtDelta;
        WZDOSet\Stat,wzHome\Inside,shHome,do_PLC_SYS_Homeposition_ROB1,high;
    
        ! Define the ByPass-zone
        WZHomeJointDef\Inside,shByPass,J_ByPassPos,jtDelta;
        WZDOSet\Stat,wzByPass\Inside,shByPass,do_PLC_SYS_In_ByPassPos_R1,high;
    
        ! Define the Serviceposition-zone
        WZHomeJointDef\Inside,shService,J_ServicePos,jtDelta;
        WZDOSet\Stat,wzService\Inside,shService,do_PLC_SYS_Serviceposition_ROB1,high;
    
      ENDPROC
    
    !-------------------------------------------------------------------------------------!
      !------------------------------------------------------------!
      !                   Definition of variables                  !
      !------------------------------------------------------------!
    
      !-- Shapedata
      LOCAL VAR shapedata shHome;
      LOCAL VAR shapedata shCalib;
      LOCAL VAR shapedata shEvade;
      LOCAL VAR shapedata shByPass;
      LOCAL VAR shapedata shService;
    
      !---------------------------------------!
    
      !-- Wzstationary
      LOCAL VAR wzstationary wzHome;
      LOCAL VAR wzstationary wzCalib;
      LOCAL VAR wzstationary wzEvade;
      LOCAL VAR wzstationary wzByPass;
      LOCAL VAR wzstationary wzService;
    
      !---------------------------------------!
    
      !-- Jointtarget
      LOCAL CONST jointtarget jtDelta:=[[1,1,1,1,1,1],[0,0,0,0,0,0]];
    
    






    Robotic Software Engineer