RobotStudio event

Zone not working vor TriggLIOs Movement

Hello,

i am trying to make 2 Linear movements consisting of 3 points in total using TriggLIOs.
The 1st movement is p10-p20 and the 2nd movement is p20 to p30.

Instead of stopping at p20 I would like to use a zone of 100 (z100).

This works fine using the MoveL instruction.

Unfortunately it doesn't work using the TriggLIOs instruction.
Does anyone have an Idea why?

Here is some part of the code:

________________________________
PROC procSpray( robtarget pStart, robtarget pTarget{*}, speeddata vSpray, zonedata zSpray, num nPosOffs, num nDist, num nLag, INOUT tooldata tSpray \ INOUT wobjdata wobjSpray)
               
        VAR triggios trigSpray{2};
        
        !SPRAY ON
        trigSpray{1}.used:=TRUE;
        trigSpray{1}.distance:=nPosOffs - nDist;
        trigSpray{1}.start:=TRUE;
        trigSpray{1}.signalname:="do_Spray";
        trigSpray{1}.equiplag:=0;
        trigSpray{1}.setvalue:=1;
        !SPRAY OFF
        trigSpray{2}.used:=TRUE;
        trigSpray{2}.distance:=0;
        trigSpray{2}.start:=FALSE;
        trigSpray{2}.signalname:="do_Spray";
        trigSpray{2}.equiplag:=-nLag;
        trigSpray{2}.setvalue:=0;    
  
       ....
 
       TriggLIOs pTarget{1}, vSpray, \TriggData1:=trigSpray, zSpray, tSpray \wobj:=wobjSpray; 

ENDPROC
________________________________

MAIN (doesn't work using z100, still stops at p20; v_tcp=0):

procSpray p10_90x300x90E_Flaeche, [p20_90x300x90E_Flaeche], vSpray, z100,  nPosOffs, nDist, 0, tSprayActive \wobjSpray:=wobjForm;  
procSpray p20_90x300x90E_Flaeche, [p30_90x300x90E_Flaeche], vSpray, zSpray, 0, 0, nLag, tSprayActive \wobjSpray:=wobjForm;  
________________________________

Answers

  • lemster68
    lemster68 ✭✭✭
    I am not certain why, but I am curious as to why your tooldata and workobject data are INOUT rather than optional or required.
    Lee Justice
  • Otherwise I get the error:
    4600-107627/RAPID/T_ROB1/BDR_Spray(50,47): Argumentfehler(123): Argument für 'PERS'-Parameter Tool ist kein Verweis auf eine Persistente oder ist schreibgeschützt. 01.07.2022 15:35:26 Allgemein

    So that's a workaround I found - but I am not sure why it works this way unfortunately.
  • lemster68
    lemster68 ✭✭✭
    Did you try writing like this?
    PROC rEnter(
    string area,
    VAR signaldo request,
    VAR signaldi signal,
    VAR signaldo notclear,
    PERS tooldata tool,
    \PERS wobjdata WObj
    \switch swMoveAbs
    |switch swMoveLin
    |switch swMoveJoint
    \robtarget pPreviouspoint
    |jointtarget jposPrevious)

    And I don't mean separating the lines.
    Lee Justice
  • Hi  timosmd, 

    My only thought is the amount of execution time between each movement, how long between passing p20 and getting to p30? In the RAPID Overview manual under 'Interpolation of Corner Paths' there is a section called "Planning time for fly-by points" that says:

    "Occasionally, if the next movement is not planned in time, programmed fly-by points can give rise to a stop point. This may happen when:
    • A number of logical instructions with long program execution times are programmed between short movements.

    • The points are very close together at high speeds.

    If stop points are a problem then use concurrent program execution."

    To check this can you slow the speed down and try it? 

    Good Luck,

    Harry