Posts by JMF

    Yes, you can run multiple tools in the bullseye. Each will be required to be set up at start. When running, you will have to manually change the tool in the quickset menu. After selection you can create a procedure that will check the current data of the current tool, evaluate then run the correct bullseye routine.


    Something like this sample.


    Add your commands for when the sensor is 1, between the IF DInput(sensor1) and the ELSE instructions and the commands for when the sensor is 0, between ELSE and the ENDIF instructions.

    Try to add "CornerPathWarning FALSE;" before line 499 and "CornerPathWarning TRUE;" after line 503. This suppress the corner path warning and error.

    Add this in your Main Routine. The Manuals give examples of WHILE & FOR loops and IF statements. Can read up on it.

    Code
    WHILE DInput(sensor1)=0 OR DInput(sensor1)=1 DO
         IF DInput(sensor1)=1 THEN
             TPPrint "Robot Running";
         ELSE
             TPPrint "Robot Not Running";
         ENDIF
    ENDWHILE

    VAR num nClock;

    VAR clock cClock;


    PROC BlahBlah()

    ClkReset cClock;

    ClkStart cClock;

    ! Procedure instructions

    ClkStop cClock;

    nClock:=ClkRead(cClock\HighRes);

    TPPrint "BlahBlah Procedure took: "+NumToStr((nClock/60),3)+"minutes";

    nClock:=0;

    ENDPROC

    Yes your idea is correct. See example below


    P1 - 12 o clock

    P2 - 3 o clock

    P3 - 6 o clock

    P4 - 9 o clock

    Code
    ArcLStart P1,v100,Seam1,Weld1,fine,tWG_Straight\WObj:=wobjShapes;
    ArcC P2,P3,v100,Seam1,Weld1,fine,tWG_Straight\WObj:=wobjShapes;
    ArcCEnd P4,P1,v100,Seam1,Weld1,fine,tWG_Straight\WObj:=wobjShapes;

    Ok then, let's try another. Did you know this one? | makes the argument exclusive. For example,


    Code
    PROC one(\num nON | num nOFF)
    ENDPROC

    I have never tried this way before but it seems to be something that I can use. :/


    It just shows that the overall usages of Rapid capabilities is almost never ending.

    Lemster68 - He specifically wants to remove the routines from the available list when PPtoRoutine but when I try to add a parameter to the Routines, the Routines is still available in PPtoRoutine list but they will not do anything cause the parameter have not been set yet. This is why I have suggested the Load/Unload function because it removes the Routines completely and they are not available at all unless his rTeach Procedure has been executed.


    Have I missed something that the Routines is still showing in my testing procedures?

    You would not be able to hide the routines separately but you will be able to late bind them and load/unload when required.


    Have a look at the following code.


    When procedure rTeach is executed, it will request input of which routine to execute next. In basic only rTeach will be shown and rRoutine will only be active if it have been loaded already and not unloaded.

    Question 1 - Read up on ISleep and IWatch instructions. It disables and enables the interrupt instruction.

    Question 2 - No you don't need to use return unless you wish to return to where the interrupt was initiated.

    Is there a specific reason to check the signal during execution of the instruction of p2 and not before the robot execute the instruction of p2?