Posts by Nation

    Keep in mind that DCS disabling (or muting as it is call as well) should be done by a safety level device, such as contacts on a safety relay, or by a safety PLC. You will derate the entire safety system if you disable DCS via standard IO.

    The Karel translator will only translate a couple of direct system variable writes. To write to variables it doesn't know, you have to use the SET_VAR built-in with '*SYSTEM*' as the program name.


    Comment your program!!! I used to be real bad about that. My attitude was, "If you can't understand it, you shouldn't be programming." A kinder, gentler me these days comments so that those that follow later will have it a little easier.


    The adage I use is: "Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live."


    In my experience, most of the time it will be you 5+ years from now. Future you will thank you.

    Try adding the following code to the start of your tracking program, or to whatever calls it.


    Code
    1:  LINECOUNT[1] R[132] ;
       2:  SETTRIG LNSCH[1] R[132] ;


    Explanation:
    Line 1 gets the current encoder count, and stores it in R[132].
    Line 2 sets the trigger value for line tracking schedule 1 to whatever is in R[132].


    I'm going through the same thing now, and in terms of Safety Inputs I'm all convinced that relays are not needed, but what about dropping power to energised equipment, controlled over robot IO?
    I was thinking to use single safety relay connected to safe output to shut off voltage for all auxiliary equipment.
    I could put just a rule in pmc regarding to shut all DO off once the safety is compromised but it is not considered safe by fanuc and relative standards.


    There is a safety PMC option that you can buy that will allow you to do safety level logic in the PMC.

    Nowadays I just use one cable. An ethernet cable. Then I do all safeties over profisafe, (or ethernet/IP safety, depending on customer) and then setup DCS safeIO to respond to estop events and stuff like fence open or NTED enabled.


    However, prior to that, how you approach your safety circuit really depends on the size of your cell. One robot? Just run the chains through the contacts of the fence and estops, no safety relays needed. Two robots? Same, but add another set of contacts to each device. More than two? Safety relay for each robot's e-stop chain and fence chain.

    Whenever you make a simulation program via the navigation tree, a copy of it is loaded into the controller. When called from a .tp program, it will run what is in your sim program. Sim only commands will appear as remarks.


    I typically do this when I need to do pick and place animations, or change the viewpoint. I'll create small sim programs, such as pick from fixture part 1 with gripper 1, and call them from tp programs where appropriate..

    Joint moves are not allowed in tracking programs. Neither are any form of user frames.


    If you do need to do a joint move, do it in a non-tracking program that you can call from the tracking program, or use the wrist joint motion option.

    Take a look at the roboguide help file. Contrary to most programs, it is very helpful in setting up stuff like this.


    Specifically, use the seach, and look for "Line Tracking", once you find that, select the "General procedure for setting up a line tracking workcell" option. It goes over it in detail, and is how I learned to do it.


    No needs to be dual channel :uglyhammer2:


    The ABB-RT9 is dual channel, on inputs and outputs.



    Does anyone know if a ABB- RT9 safety relay would work with a Fanuc robot using a R-30ib controller. The safety relay would be used with an interlock on a robot cell.


    Wired correctly it would work. I would recommend you buy one for the fence interlock, and another for the external e-stop chain.

    The Karel compiler doesn't do any optimization though, so if you do have the source, you can turn step mode on, and then step through the program by watching the line number displayed at the top of the teach pendent. The line number displayed there will match the line number in the Karel source file. Couple that with watching the Karel variables in the data screen, and it works ok for debugging.


    My KAREL is just a signal judgment and there is no motion tasks。


    If your Karel code does not contain the %NOLOCKGROUP in its compiler directive area, it will, by default, lock the first motion group. You can also verify this by looking at the details of your Karel program.

    It doesn't look like you need karel at all for this application (plus I am not sure if call statements are allowed in BGlogic programs). I would just write it using mixed logic in TP.


    Code
    IF (DO[1]=ON OR DO[2]=ON OR DO[10]=ON), JMP LBL[10] ;
    !False Case ;
    DO[11]=OFF;
    DO[3]=OFF;
    DO[4]=ON;
    JMP LBL[20];
    LBL[10:True Case];
    DO[11]=ON;
    LBL[20];

Advertising from our partners