Welcome, Guest. Please login or register.
Did you miss your activation email?
May 23, 2012, 05:36:16 AM
Home Help Login Register
News: Any Problems or Experience with Industrial Robots ?
Register and place your Question / Answer to worldwide Robotexperts right here !

+  Robotforum | Support for Robotprogrammer and Users
|-+  Industrial Robot Help and Discussion Center
| |-+  Fanuc Robot Forum (Moderators: Sven Weyer, Jim Tyrer, Lerak, Napierian)
| | |-+  Output on until Input is off
0 Members and 1 Guest are viewing this topic. « previous next »
Pages: [1] 2 Print
Author Topic: Output on until Input is off  (Read 1317 times)
flatcurve
Sr. Member
****
Offline Offline

Posts: 358


« on: September 10, 2010, 09:03:09 PM »

No matter how many times I tell my controls guy that it's not ideal for me to program a fanuc to leave an output on until it sees an input turn off, he still manages to do this to me with every workcell he puts a PLC in.

Right now I do it like this:

1: DO[1]=ON
2: RUN CLEAROUT

and the CLEAROUT program (non-motion, ignore pause) is:

1: WAIT DI[1]=OFF
2: DO[1]=OFF

Is there a better way that won't interrupt motion?
Logged
cobenson
Full Member
***
Offline Offline

Posts: 247


« Reply #1 on: September 10, 2010, 10:11:57 PM »

As a PLC guy myself, I would tell him he needs to do it or it will slow down cycle time.
Not sure how critical to the rest of the job if this input doesn't come on. What will it affect for the robot?
Otherwise I would just pulse it to the plc and tell him to do it in the plc.
  I don't think I would call up the other program. You are still just waiting for this DI to be on anyways. So I would just put those 2 rungs after the DO1=ON. Unless you are doing it multiple times in the program.

The only other option is a background program.
Logged
flatcurve
Sr. Member
****
Offline Offline

Posts: 358


« Reply #2 on: September 10, 2010, 10:30:28 PM »

Well the robot is loading a machine that we built. It goes like this:

- Robot picks part from infeed conveyor

- robot brings part over to machine and waits for the "ready to unload" input to turn on (it will normally be on by the time the robot gets there)

- robot unloads finished part with other side of tool

- robot loads new part, retreats and turns on "part has been loaded" output

- PLC on machine waits for that output to turn on before it turns off the "ready to unload" input and begins work on new part

- while that's going on, the robot takes the finished part to the outfeed conveyor and cycle starts over


So the robot has stuff to do. It can't just sit around waiting for the PLC to turn off that input, unfortunately. It's a very quick cycle. I told him that I just wanted to pulse the ouput, but he doesn't want me to do that.
« Last Edit: September 10, 2010, 10:36:30 PM by flatcurve » Logged
cobenson
Full Member
***
Offline Offline

Posts: 247


« Reply #3 on: September 10, 2010, 10:45:05 PM »

All the more reason not to do it in the robot.

I would surely think you could convince the plc guy that he has to do it in the plc.

Why hold you up???
Logged
Jim Tyrer
Administrator
*****
Offline Offline

Gender: Male
Posts: 515


Ende aller Streckenverbote


WWW
« Reply #4 on: September 11, 2010, 12:29:11 AM »

You could use two OPs, and strobe first OP to set a latching PLC rung true, and strobe the second OP to set it false.

Or get the PLC to send you status of the sensors, and control of the tooling, and do it all with the robot.

You could also set robot outputs false in the recovery routine.
Logged
Professor_J
Guest
« Reply #5 on: September 11, 2010, 09:38:01 AM »

Well, when I worked with robots, which I don't anymore - I was the PLC guy and the robot guy! Problem solved..!
Logged
potis
Sr. Member
****
Offline Offline

Gender: Male
Posts: 307



« Reply #6 on: September 11, 2010, 02:04:38 PM »

in my opinion the plc guy is doing it the right way. you should avoid using pulses for safety reasons. imagine that one machine stops and the pulse is lost then you might have collision. using a run program is ok but i suggest like cobenson to write a backround logic program to control these signals. if i remember correct you cannot write a wait instruction but you can use if instruction. it is better to do it that way but remeber that if you do it that way the backround logic continues to run even if the robot stops.
Logged
flatcurve
Sr. Member
****
Offline Offline

Posts: 358


« Reply #7 on: September 11, 2010, 06:10:09 PM »

you mean like a condition monitoring program?
Logged
fanuc_insider
Guest
« Reply #8 on: September 12, 2010, 07:39:58 PM »

So you're waiting for him to acknowledge your loading of the part or did I miss something? If this is the case not sure why the robot would have to do this. I've done many jobs like this and always pulse output. PLC has to latch pulse in. Usually turn a an output loading "specific machine" once the loading process is done turn off loading output and pulse a clear. I would use the same clear of machine output but would use specific outputs for loading and unloading when multiple machines were involved. Why does the plc guy need to do this?
Logged
potis
Sr. Member
****
Offline Offline

Gender: Male
Posts: 307



« Reply #9 on: September 13, 2010, 08:15:19 AM »

you mean like a condition monitoring program?

search for backround logic in manuals. it is a robot program without moves and waits that just controls i/o's, registers, making calculations etc and runs continuously like a plc. you can control fe a complex gripper, exchange variables with a plc  etc even if the robot program is paused or stopped.
Logged
Professor_J
Guest
« Reply #10 on: September 13, 2010, 12:27:45 PM »

If I were to hazard a guess I would suggest the PLC program is some sort of weird step / sequential type program (instead of a continual cyclic scan) and the PLC may not be looking for the offending signal at the time you send it... He therefore needs you to hold it on until he acknowledges he's received it.........

Poor PLC programming in other words...
Logged
flatcurve
Sr. Member
****
Offline Offline

Posts: 358


« Reply #11 on: September 16, 2010, 04:55:53 PM »

you mean like a condition monitoring program?

search for backround logic in manuals. it is a robot program without moves and waits that just controls i/o's, registers, making calculations etc and runs continuously like a plc. you can control fe a complex gripper, exchange variables with a plc  etc even if the robot program is paused or stopped.

Thanks for this advice. BG Logic is something I haven't used yet, and I am already going through some old stuff and revising the programming with it. However IF assignment statements will only work if the condition is true... i.e. I can't tell it to turn off an output once an input is off, or false in other words. Unless there's an elegant way around this that I just haven't seen yet. Ideas?

If I were to hazard a guess I would suggest the PLC program is some sort of weird step / sequential type program (instead of a continual cyclic scan) and the PLC may not be looking for the offending signal at the time you send it... He therefore needs you to hold it on until he acknowledges he's received it.........

Poor PLC programming in other words...

I agree... however he's one of those "I've been doing this for 30 years" guys. I've been programming one language or another since I was in 1st grade, but I don't brag about it or use it to convince people that I'm right. I'm not above trying something different or learning something new if it works better. Heck, I just learned about BG Logic. (although to be honest I feel like I should have known that.)
Logged
flatcurve
Sr. Member
****
Offline Offline

Posts: 358


« Reply #12 on: September 16, 2010, 05:01:16 PM »


I can't tell it to turn off an output once an input is off, or false in other words. Unless there's an elegant way around this that I just haven't seen yet. Ideas?


wait, I think I figured this out...

1: R[1]=1
2: IF (DI[1]), R[1]=(0)
3: IF (R[1]), DO[1]=(OFF)

That should work, right?
Logged
JonnyRotten
Jr. Member
**
Offline Offline

Posts: 80


« Reply #13 on: September 16, 2010, 05:24:13 PM »

I've written background monitoring programs to do this.
Basically one line should do it.

DO[11:RH ESCP B STATION]=(!(DO[10:RH ESCP A STATION]))


I had an escapement on a pneumatic turn table. I couldn't fire the A station without turning off the B station, and vice versa.
Since they didn't line up in the outputs so that I could make them complimentary, I had to resort to this.

Logged
flatcurve
Sr. Member
****
Offline Offline

Posts: 358


« Reply #14 on: September 16, 2010, 06:01:50 PM »

But that logic would have my output always complimentary to the input, right? The issue is I can't just turn the output on when the input comes on. The output is the signal for the machine to start running. So there's a window there when the part is being loaded that my output needs to stay off. I think my logic will work, because my output can only come on after it sees the input on. So it won't get turned off by the BG logic until after that input turns off, because while the input is on, R[1] is being set to false, preventing it from turning off the output.

At least, that's how I hope it works. I'm about to try it out in roboguide right now.
Logged
Pages: [1] 2 Print 
« previous next »
Jump to:  


Login with username, password and session length

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!