When fault goes on RO needs to go off?

  • Hey Experts :smiling_face:

    I have an LR mate that is used for sealing, however it does not have sealingtool.
    Now my problem is that i want a RO (Robot output) to go low/off when the robot is faulted, is there an easy way to do this ?

    I reaseached into BG logic and this seems to be a way to do it, i am trying that atm but no luck yet, never used this before so im am climbing a steep hill at this.

    Hope to hear from you guys soon and thanks in advance :smiling_face:

  • can you just say to turn RO[*] on if SO[3 fault] or UO6[fault] are on. Then invert the RO[*] so when it goes on in logic that it really goes off? Keep in mind you need to cycle power to change the polarity from normal to inverse.

  • I'm not sure you can do this. Once the robot is faulted it stops executing. So any logic written to handle this will not execute.
    I think you will need to run the robot output through a relay controlled by either the cstop circuit. Or if you are using a PLC you can run the relay with an output that is turned off when the robot is faulted.

  • If you have your UOP's configured than this is the easiest way:
    Create a new program an add RO[1] = !(UOP[6]). This outputs depend on your configuration.
    Go to MENU -> Setup -> BGLogic and choose your program there.

    You can also do it in Karel (Shell).

  • I have a similar need for my setup. I want DO[1] to go OFF when the TP Program is paused (due to some sort of error). I want this to be for certain portions of the program (during certain moves). I'm thinking that a "pause" will happen if there is any fault in the system, but also give the action (DO[1]=OFF) for any programming errors within the certain portions of the program. Basically I need a safety (DO[1]=OFF) anytime anything goes wrong....during certain portions of my program.
    My approach has been using a condition handler to monitor SO[1]-Cycle Start. I figured I would begin and end the monitoring of SO[1] at different portions of my program, and anytime it goes OFF (while monitoring) I'd turn OFF DO[1]. Doesn't seem to work. Could it be because the monitor stops when the program pauses, and it doesn't continue with the called program? (to turn OFF DO[1]). So I thought I needed to change to Program Monitor "Type 2" by changing $TPP_MON.$LOCAL_MT=2. But I am unable to make the change.....Variable/field Write Protected. I can change other system variables, and I haven't seen this before.
    So I have two questions:
    1.) What do I need to do to be able to change this variable?
    2.) Will my idea even work....or is there a better solution?

    Sorry for the long post....and thanks for any help and suggestions!

  • Marc,
    I use the following logic to turn on a green light when the robot program is running in auto cycle and waiting for an input to start the spray process. This line is in the BG task.

    DO[7:GREEN LIGHT]=(F[6:GREEN LT FLAG] AND UO[3:Prg running])

    I turn on/off F6 in main program when I want to enable the green light in that portion of the program. It is enabled only when the main program is looping waiting for the cycle start input from the operator.

  • Have you tried the interconnect option? Set the RO to = DO. I do remember that there is only certian options that are available. I've also had a routine given to me (i'll look to see if I still have it) for a Servo Light that was asked by CSA to be added to all robot back in 2005. This was to light up (amber) any time that servos were ON/ACTIVE. This program took over RO[1] and was running all the time in the background. It may have been a Macro now that I think about it.

  • Thanks, DaveP and mdemmer....I think I have it sorted after reviewing you posts.
    Used System Monitor Type 2 and turn a DO ON/OFF as the flag to begin monitoring for SO[1] to go off. Final thing to finish me off was to re-enable the System Monitor at the end of my action (called) program.

Advertising from our partners