Posts by cmcraeslo
-
-
I do have a STOP button.
I am able to stop using BG logic and then doing $MCR_GRP[1].$HOLD = 1, but can't start it with HOLD=0 then when the stop button is pressed again. It's probably not the right way to do it anyway.
How do I map those UOP buttons to do this? I also need to make some extra operations as well so BG logic is probably still the only way to do it?
Thanks!
-
We have just created our first robot and would like to give an operator an option to STOP the robot if something is not as planned. Now, I'm not talking about the emergency reset - we have that covered with another button. What i'm talking about is a way for the operator to stop it normally, unlock the doors, fix stuff and then close everything back and press the same button to continue.
I'm guessing this could be done in the BG logic section, but how do we stop the main program from running?
-
I was able to find the main problem for my delays. It's some calculation I do between the path, to update palette registers and that for loop (4 x 32 items) took 1.5s to calculate. I optimized it to 0.5s and it's much better. I come from a different (microseconds) environment and the processing speed in this robot is very disappointing
I also replace the FINE moves to joint and/or CNT which improved the speed a lot.
Unfortunately replacing all the move lines with fixed speed is not an option at the moment. We have different loads and payloads and set these accordingly. That being said, even if I did just replace it with the fixed speed, it'd not be able to work "ahead" as most of the next moves are calculated as the robot moves. There are not many fixed paths.
It's fully automated placement to 32 palettes, distributed evenly over the rows.
Operators will only have 4 buttons: load, unload finished, unload unfinished and auto (cnc operation).
Videos:
Imgurimgur.comImgurimgur.com -
I'll do some more testing tomorrow and will make a test script that replicates the issue to be more clear.
-
Edit: I do switch user frames between rows - could this be the reason this is happening? If yes, how can I avoid the delay?
-
Hello all.
We're trying to run our first robot (we built it for our own use) and i'm having difficulties running it at speed I want. It looks like the moves are good and smooth and I can control how fast they run via data registers (run speed override etc), but the logic processing seems to be slow. There are few calls within the main program and it looks like it waits between the calls. There's nothing fancy in these calls, but it stops and waits for no reason between them.
Here's the video of robot in action. You can clearly see that it "stops" between some of the moves. It's best shown at around 15 seconds when robot loads the part to a palette (coming from cnc), then moves to another palette and loads it from that palette. You can see that it "stops" for a brief moment, doing "nothing".
Imgurimgur.comWhat could be causing this?
-
It looks i was just unlucky with selecting the I/O for the DCS. Assigning them to another DO worked perfectly. Thanks everybody.
-
Hi cmcraeslo,
You can set internal safety DO to disable the DCS when running the program. First you have to define safety in Digital output by assigning the rack 36 and slot 0 start 1 in I/O configuration and go to DCS MENU and add NSI DO to parallel input for disabling input (example shown like)
Hello.
I played with this today:
- I mapped rack 36, 0, 1 to 2 outputs, 75 and 76 (I have 2 different parts of the machine I need to enable or disable)
- defined SIR[1] = NSI[1] and SIR[2] = NSI[2]
- defined disabling input of SIR 1 or 2 in the DCS
When I turn the DO[75/76] ON, I can see the DCS being disabled in the roboguide, but it turns the output OFF immediately after I turn it on.
How can I trick the NSI to stay ON (or OFF) permanently when I demand it?
-
Please don't use this unless you are sure it is not a human safety concern.
There are inputs calls NSI, non-safe inputs. You can configure any logic to turn them on and mute a DCS zone programmatically. If you use this then your DCS zone will no longer be safety rated.
They are not human safety concern. There's external safety device (Pilz) that takes care of that (there are 5 locks and 5 safety sensors on the machine) and that devices triggers external reset immediately when something goes wrong/triggers.
So, DCS in the robot will be used for nothing but to protect the machine from stupid moves (joint move is so unpredictable so that I want to make sure there's no funky moments)
-
I've seen spc, but how do i stop the machine? Do I run a separate bg job that constantly looks for these outputs and stop if active? I'd rather have a more bullet proof method, but if this is the only way, i'll have to do it this way.
One of the issue is also that i have 20 machine objects that i need to avoid, while, i think there are only 10 spcs (i will look tomorrow if it's possible to increase them ising controlled start)
-
yes, i do have spc.
-
Hello guys,
First time poster here.
I'm programming a robot with multiple palettes with complex movements (= robot moves are not straight) and have designed multiple DCS points that i'd like to avoid, just to not hit anything during development (and production in the end). I'd like to disable certain DCS from a program at a certain point (for example, i'd like to disable palette DCS when loading onto the palette) and I know I can define external safety input that disables the DCS, but they all require to be physical switches/inputs. Can I use a register or internal output to set it to "ignore" ?
If I'm doing it incorrectly using DCS in the first place, what's the best way to do it?
Thanks!