Posts by moln4r

    In this kind of cells where a Fanuc robot works with an IMM the robot is the "master" and the IMM is the "slave" device.In this case it looks like the robot doesn't give permission to the IMM to move.May there is an output in the robot program what is missing, or the prg is ok, and you have a broken connection...where you need to start is the IMM and you need to check what Input is missing.There is already questions from us that the IMM has any kind of i/o screen where you can check what signals are on, or off in the machine.

    More info needed on this.
    When the robot is connected to the machine, nothing moves on the machine?Does the robot works in automatic mode?If you start a simple program on the robot it runs in auto?I mean like a program with 2 positions in it nothing else...
    Also is there any alarm on the IMM when the robot plugged in?
    Or you can switch it to auto mode just the clamp not close?

    Is there any program running in the robot?All the correct outputs are set in the programs?
    for example we use 3 signals to block the machine when the robot moves into the mold area:
    DO[5: Mould close]=OFF ;
    DO[6: Move enable]=OFF ;
    DO[12: Out from mould]=OFF ;
    All these signals in your application are set correctly?Is this cell worked before?
    or there is something wrong with the connection.I'm sure (or hope) the IMM has some diagnostic page where you can monitor the inputs/outputs.If you use euromap, check the documentation.

    The skip condition works like for example the override, so it doesn't really matter where the condition defined.If you switch line 42 and 43 nothing gonna change.I think it's gonna still skip line 46 if the program still runs on line 46 and not reached line 53 before the condition met.

    Just to be sure:

    Quote


    So...
    The robot moves to the point, than jumps to the desired label if the condition NOT met, but NOT moves to the point and skips the LINE IF the condition met.wow


    This is something I learned here on the forum :smiling_face:

    If you changed r137 manually before restart than the prg changed it back to 0 maybe before the skip.Try to modify the CONDITION to an unused register r200 maybe? Set it manually to 1 and try it like that.

    You can use a macro prg (works only in auto mode) or BG logic to set the register in the background when there is an error.
    I'm at home right now so I can't check it, but there are outputs what you can monitor.The robot sets the output if there is an error.
    You can write a program what monitors the error output than set the register to 1


    WAIT * (error output) = on
    R137=1
    END



    Edit:UO[6:Fault] you can monitor this one.

    So I'm programming a cell using an older program structure what is not mine (very similar cell so I can use the old prg) I need to send the robot home and restart the process in some cases, but I need to stop background prgs and do the init again.Everything works fine but the operator need to press fnct abort all first, than push the start button...Can I use a sysvar, or is there any way to send "abort all" within a program?

    Yep that looks like something like that.May you need to check what triggers register 137. Maybe it's in a background program?Also it says "retime weld" so maybe it does something else...(never used a robot for welding) but the concept is the same, but in my idea you trigger R137 when any error happens.Also I think LPOS or JPOS not recording external axes, but not sure becuse we use relatively simple tools for our robots.

    I don't know how the weld instructions work, but you can set a position register to the current position (PR[1]=LPOS) than use an offset what you need.this way you don't have any bounaries.
    So if error happens use skip, than set current position to a posreg, than offset it with another posreg for example.

    I'm really not into welding but if I understand correctly you have to start from another point not where the fault occured.
    In this case you can use the skip function with an offset.
    So if there is an error, than skip the actual position, set an offset and continue from there.Is this possible in your cell?

    U can set the overide value to a register.
    OVERRIDE=[R1]
    Now the value of Register 1 becomes the value of the override.
    Than just set the register whenever you want like
    R1=40 in the init of the job for example.

    This sets the override like you change it manually...so once you set it in the program it's not going to change unless you adjust it manually, or set a new override in your program.
    So yes, every line after.

    Also you can check Menu/system/config there is an option, "reset chain failure" or something like that.Set it to "true" and quickly press shift+reset.(quickly because it turns off almost immediately) it is possible you need to restart the controller.

    If you open Menu, I/O than press F1 [Type] you can check all the inputs and outputs of the robot.When you selected the type you want to check there is an option [Config] where you can check and edit the racks and slots of the in/output.

Advertising from our partners