Stopping Robot @ the start of a weld.

  • Hello, I have a Fanuc ArcMate 120iC with an R30iB controller and I was interested in seeing the various methods I could use to stop the robot @ the start of a weld to enable easy reteaching for our Weld Technicians.


    As a kind of proof of concept, I created an HMI display with 8 push buttons which correspond with 8 welds on a part. For each push button selection a digital input is sent to the robot, for example, DI[60]-DI[67].


    I would like to see what people thought the best method for stopping the robot might be, right now I am considering $SSR.$SINGLESTEP=1 or PAUSE but I am not sure how to implement on the teach pendant side which will result in the robot stopping @ the arc start of the weld or an approach point right before the weld.


    In theory what I would like to do is this,


    IF DI[60: Weld Select from HMI]=ON, PAUSE or STEPMODE


    J P[1] 40% FINE
    Arc Start[1]


    PULSE DO60 to reset Weld Selection, or Reset at end of program so it doesn't keep stopping.


    As far as I know, there isn't a way to PAUSE or set a System Variable at the end of an IF statement is there?


    Open to any ideas or suggestions.


    Thank you for your time.

  • Thanks for the suggestion. That would probably be the simplest solution.


    I could be wrong, but doesnt the robot actually stop for a brief second while it examines the WAIT statement?


    The program I plan to scale it up to has 34 welds per robot


    Not 100% sure on that tho

    Edited once, last by Nddwind ().

  • We have a schematic with each weld numbered, and a system we are considering is one in which the tech can select a weld on the HMI and the PLC will then set a specific register equal to that number. Then inside the program, before each weld, will be logic checking the register value, like this.


    If R[1] = 1 Then Pause
    //Do Weld #1


    If R[1] = 2 then Pause
    // Do Weld #2


    etc.


    That way, the tech can tell the robot "stop at weld #7", and the robot will run to weld #7 and then pause for them.

  • Just stumbled across this looking for other things, but here the method I came up with to stop the at the start of welds for operator touch up. Made the program below, assigned every weld a flag number, call the program before every weld, and set the argument to the corresponding flag. It won't well at 99% speed so it stops right the weld point.


    1: IF (F[AR[1]]),$MCR.$GENOVERRIDE=(99) ;


    2: F[AR[1]]=(OFF) ;

Advertising from our partners