Starting robot program automatically - YUMI IRB14000

Is it possible to start the robot automatically and have it ready and waiting for a command to begin a process? I would like to just power up the robot and be ready for an operator to touch a button to start assembly.
Thanks!

Comments

  • Tompanhuhu
    Tompanhuhu Sweden
    Yes it's possible with system inputs.
    Check motors on and start. 
    Systemintegrator - Web / C# / Rapid / Robotstudio

    If I helped, please press Vote Up  :smile:
  • gczerkawski
    gczerkawski California
    Yes it's possible with system inputs.
    Check motors on and start. 
    I'm not sure I follow - can you please elaborate?

  • lemster68
    lemster68 United States ✭✭✭
    It is all spelled out in the technical reference manual-System parameters.
    Lee Justice
  • gczerkawski
    gczerkawski California
    lemster68 said:
    It is all spelled out in the technical reference manual-System parameters.
    I believe I have the input device configured, however, I am not sure how to create the variables and program to have this work. Are there proram examples for this in the manual or another document?
  • gczerkawski
    gczerkawski California
    lemster68 said:
    It is all spelled out in the technical reference manual-System parameters.
    I believe I have the input device configured, however, I am not sure how to create the variables and program to have this work. Are there proram examples for this in the manual or another document?
    I can see the input turning on/off in the IO monitor screen on the Flex Pendant.
  • gczerkawski
    gczerkawski California
    Is this the only way to do this? 

    -Action "MotOnStart"


    is there an action to get the Smart Hands calibrated?
  • lemster68
    lemster68 United States ✭✭✭
    A best practice is to set up a series of system signal inputs, combined with system signal outputs which will acknowledge that the robot is in the commanded state.  For example, the PLC should first see that the run chain is OK, the robot is not faulted, there are no execution errors or otherwise no faults and that the robot is in automatic mode.  The motor on input is given, and then wait for motor on state, then start system input, wait for program is running.  At that point the handshakes may begin for what tasks the robot should undertake.

    As far as the calibration goes, I cannot help you as I have not worked with the Yumi.  Sorry.
    Lee Justice
  • gczerkawski
    gczerkawski California
    lemster68 said:
    A best practice is to set up a series of system signal inputs, combined with system signal outputs which will acknowledge that the robot is in the commanded state.  For example, the PLC should first see that the run chain is OK, the robot is not faulted, there are no execution errors or otherwise no faults and that the robot is in automatic mode.  The motor on input is given, and then wait for motor on state, then start system input, wait for program is running.  At that point the handshakes may begin for what tasks the robot should undertake.

    As far as the calibration goes, I cannot help you as I have not worked with the Yumi.  Sorry.
    I understand the theoretical concept of your point, however, I do not know how to implement this. Where in the Rapid program do I create these events? 

    Is there a tutorial that outlines the specific steps required to achieve this? For example, just to get the motors to turn on? Maybe some screenshots of where/how to configure this?

  • lemster68
    lemster68 United States ✭✭✭
    It is not done in rapid, they are inputs that you must map, and specifically designate them as system inputs.  Same for the outputs.  Is there a PLC involved?  Do you have robotstudio?  In the help tab you can access the manuals.
    Lee Justice
  • gczerkawski
    gczerkawski California
    lemster68 said:
    It is not done in rapid, they are inputs that you must map, and specifically designate them as system inputs.  Same for the outputs.  Is there a PLC involved?  Do you have robotstudio?  In the help tab you can access the manuals.
    I greatly appreciate your response.

    I currently do not have a PLC, just one touch button connected to the robot. I do have Robot Studio: RobotStudio 2022.1 (64-bit)
    Version 22.1.9826.0

    I do have the manuals, however, the System Parameters manual does not offer examples of how and where to setup these inputs. So far, I have been able to program the robot moves, and create a program for the assembly sequence we are testing. It is done in Half-Sync mode. When I power up, I use the Flex Pendant to calibrate the gripper hands, then turn the motors on, and finally set the PP to main for the left and right arms. At this point, I can run the program by pushing the Start button on the Pendant.

    My goal is to get this all to happen automatically so I can have an operator just touch the button I have wired to the robot.

    I have watched several tutorials on Youtube, however, there's not a lot specifically focused on the two-arm YUMI. 






  • lemster68
    lemster68 United States ✭✭✭
    You are welcome.  I was remiss in forgetting to steer you to the Robotstudio operating manual.  It will show you how and where to configure your signals.  If you are merely hardwiring buttons, that's fine, but I would suggest at least several for other actions such as stop, at a minimum.
    Lee Justice
  • gczerkawski
    gczerkawski California
    I created a new System Input and the Signal List that drops down only shows a handful of selections; mostly related to sensors.

    As far as the Actions - are there any actions to calibrate the YUMI hands? 
    How do I get it to go to Auto Mode and Running, and program ready for execution?

  • lemster68
    lemster68 United States ✭✭✭
    The signals will only be there if you have defined them.  If you have an IO board and have wired the button to it, then you map it to where you physically connected it on the board.
    Again, I have not worked with the yumi, so I do not know about the hand calibration.  Most often, there is a keyswitch to put it into auto.
    Lee Justice
  • gczerkawski
    gczerkawski California

    I am trying to understand the steps I would need to take to have this YUMI power up and be ready when a pushbutton is activated.

    I was able to run this line of code which calibrates the YUMI hands: g_Calibrate /Grip

    In order for the program to be in Auto Mode and able to start, what do I need to configure?

    I do realize I need a separate System Input for an Action.

     

    Is this the order I would need to configure?

    1.       PP to Main

    2.       Motors On

    3.       Start (Auto Mode)

     

    Would these System Inputs be a signal from a separate PLC?

    Is there any way to have the YUMI do any of this automatically?

     

    Where do I find the signal Run Chain OK?

    Is Start the same as Auto Mode?

    Motor on input – is this only possible after the program begins execution?

    Motor on state – where do I find this?

     

    Thank you! 


  • lemster68
    lemster68 United States ✭✭✭
    The inputs most often come from a PLC which controls a robot and the associated workcell devices.  However, it could be just a box with buttons for the operator to press.  Of course the buttons have to be wired to the appropriate input in the robot controller.
    I personally dislike PPtoMain.  Run chain OK ought to be a safety signal.  Start is not the same as auto mode.  Auto mode is a state, and start is a signal.  Program execution cannot begin until the motor on state has been achieved.  You need to define a signal for Motor on state and designate it as a system output.
    Lee Justice
  • gczerkawski
    gczerkawski California
    lemster68 said:
    The inputs most often come from a PLC which controls a robot and the associated workcell devices.  However, it could be just a box with buttons for the operator to press.  Of course the buttons have to be wired to the appropriate input in the robot controller.
    I personally dislike PPtoMain.  Run chain OK ought to be a safety signal.  Start is not the same as auto mode.  Auto mode is a state, and start is a signal.  Program execution cannot begin until the motor on state has been achieved.  You need to define a signal for Motor on state and designate it as a system output.
    In my testing, I did setup an input and confirmed it was turning on and off.
    I then used that input as a System-Input and configured the Action as Motor On, however, once I turned on the robot and triggered the input, it did not turn the motor on. Is there a certain state that the robot must be in to accept System Inputs? Are there other Actions that need to be performed first?
  • lemster68
    lemster68 United States ✭✭✭
    Yes, it must be in automatic mode. Run chain must be OK.
    Lee Justice
  • gczerkawski
    gczerkawski California
    lemster68 said:
    Yes, it must be in automatic mode. Run chain must be OK.

    *******

    Can it be put in Auto mode automatically? How would I accomplish this?

  • gczerkawski
    gczerkawski California
    lemster68 said:
    Yes, it must be in automatic mode. Run chain must be OK.

    *******

    Can it be put in Auto mode automatically? How would I accomplish this?

    And what is VP_MODEKEY? How is this used?
  • lemster68
    lemster68 United States ✭✭✭
    Most of the time there is a keyswitch on the controller for auto and manual mode selection.
    Lee Justice
  • gczerkawski
    gczerkawski California
    lemster68 said:
    Most of the time there is a keyswitch on the controller for auto and manual mode selection.
    True, in most cases. However, this IRC5 Flex Pendant does not have a key switch.

    I did realize that the Auto mode does start when the controller is left in that state when powered down. I was also able to confirm that the System Input I configured did turn the motor on.

    Thank you for your help - greatly appreciated.
  • lemster68
    lemster68 United States ✭✭✭
    You are welcome.  None of the pendants that I have worked with (ABB, that is) have had the keyswitch on the pendant, but on the actual controller.
    Lee Justice
  • gczerkawski
    gczerkawski California
    lemster68 said:
    The inputs most often come from a PLC which controls a robot and the associated workcell devices.  However, it could be just a box with buttons for the operator to press.  Of course the buttons have to be wired to the appropriate input in the robot controller.
    I personally dislike PPtoMain.  Run chain OK ought to be a safety signal.  Start is not the same as auto mode.  Auto mode is a state, and start is a signal.  Program execution cannot begin until the motor on state has been achieved.  You need to define a signal for Motor on state and designate it as a system output.
    I am not sure I understood everything in this reply.
    I personally dislike PPtoMain.  Run chain OK ought to be a safety signal.

    The robot powers-up to Auto-mode.
    I have a system input that triggers Motor ON.

    What do I need to have the program start when I push a button that is tied to an input?

    Here is the first part of my code: 


    PROC main()
            
            IF bFirstPass THEN
            MoveToHomeR; ! call the procedure MoveToHomeL 
            bFirstPass:=FALSE;
            ENDIF
            
            IF custom_DI_1=1 THEN        
            AssemblePartsR; !!!!!!HalfSyncL; ! call the procedure Assemble
            ENDIF
            
            ENDPROC
        
        PROC MoveToHomeR()    
    MoveAbsJ pHomeR\NoEOffs, v200, z0, gripRight\WObj:=wobjTable;
            g_Calibrate \Grip;
            
            RETURN;
        ENDPROC
            
            PROC AssemblePartsR()!Start the SEQUENCE here
            WaitSyncTask\inpos,sync1,tasklist;! wait sync1 - WAIT 1 HOMED
                    
    MoveJ pAppr, v200, z50, gripRight\WObj:=wobjTable;
            WaitUntil \inpos, TRUE;
            g_GripOut;
                    
            WaitSyncTask\inpos,sync2,tasklist;! wait sync2 - WAIT 2 
            
            MoveL pPick, v200, z20, gripRight\WObj:=wobjTable;
            WaitUntil \inpos, TRUE;
            WaitTime 1;
        

  • graemepaulin
    graemepaulin New Zealand mod
    You could use the system input action motors on and start (start from current program position), start (same as previous but does not turn motors on first), or start at main (start program from beginning) depending on what you want to achieve.
  • lemster68
    lemster68 United States ✭✭✭
    I do not like PP to Main because you would then have to have some sort of recovery in which you must figure out how to safely get the robot back to home if it does not happen to be there at that time.  You must also figure out how to resume whatever the task was and at which step you must do next in the order of the normal program sequence.
    I was mistaken about the run chain OK signal, you must define it and make it a system signal tied to RunChainOK state.  The importance of this is that if the run chain is not OK when you tell the robot to turn motors on, it will be rejected.
    Finally, I need to clarify the keyswitch point, it could also be a keyless, mode selector switch.  It should have manual (teach mode) and automatic mode.
    Lee Justice
  • gczerkawski
    gczerkawski California
    If I use a system input for "Motors On and Start", will the program be ready to go?

    Is "Start" the same as "PP to Main"?

    Or, should I use "Start at Main"?
  • gczerkawski
    gczerkawski California
    If I use a system input for "Motors On and Start", will the program be ready to go?

    Is "Start" the same as "PP to Main"?

    Or, should I use "Start at Main"?
    After reading a little more I see that maybe I should use one system input for Motors On, then another system input for Start at Main. I believe this is because Start requires the Program Pointer to be already set somewher in the program and Start at Main accomplishes this automatically.
    I hope that is correct.
  • graemepaulin
    graemepaulin New Zealand mod
    Yes that is correct.
    As Lee said you will need to check at the beginning of the main routine that the robot can move form where it currently is without colliding and any external equipment & the gripper are ready to start....
  • gczerkawski
    gczerkawski California
    edited September 2
    I have another question - when the robot is turned on it starts up in Auto mode and starts running a program when I trigger it from a pushbutton. However, it always starts in Continuous mode and just keeps running. If I use the pendant to change to Single Cycle it will stop.

    How do I get the robot in Single Cycle from the beginning? Would this require another System input, or could I write a line of code to change it to Single Cycle?

    How would I use "Switch"? Is this used in the program?
  • graemepaulin
    graemepaulin New Zealand mod
    There is a parameter on the system inputs with the start command to be in single cycle or continuous.
    You simply need to change it....