Answering YOUR Questions!
HTML-код
- Опубликовано: 22 авг 2024
- I've struggled to keep up with the comments section questions... so... figured I'd bundle a bunch of Q&A into one video!!! Some great FANUC questions and topics covered in here, worth the watch even if you're a pro. See if you would've answered the way I did :) Thanks everyone!
For the tool head change topic: I'm doing something in the middle: changing the tool itself by using utool but additionally, to make the tool head disappear on the rack, I'm creating a "machine" and moving a part of it (which acts as the tool on the rack) way below the floor with very high speed using some DO/RO. That way I can handle parts as usual.
If I would do it through the part pick and place, am I able to add the motion of the gripper to the part? Like the open and closed state.
Adam, another great video! Regarding the question from D8 L8 at the 14:50 mark. It is possible to change the UFrame without reteaching the points or performing a program shift. I would recommend creating a new UFRAME for the corner of the table. Then under Menu-> Utilities-> Frame Offset, select the program you want to modify to the new frame, select the range of the program that needs to be modified unless it's the whole program and either insert the lines in the existing program for the new frame positions or, I normally put it in to a new, temporary program so it's easier to cut/paste later. On the 2nd page, enter the original UFRAME number and the new UFRAME number, select YES on convert position data then execute. The points will be in the new UFRAME but the path will remain the same. If you modified the whole program, you only need to change the UFRAME_NUM=X to the updated number so you don't have an invalid UFRAME number error. If only a portion of the program was modified, delete the original points in the existing program and insert the new points back in their place and change the UFRAME_NUM=X to match the new frame. There is also a function for Tool Offset to change the tool frame as long as you select "robot fixed" instead of "tcp fixed." We have to do this a lot since some of our integrators forget to change the frame data when the programs are originally created.
This is fantastic. Thank you Matt for sharing your knowledge! Excellent advice!!
I didnt get the notification of adams reply. Just saw this scanning through some of his videos again haha. Thank you both, this helps. When i have some down time i may go through with the changes/shifts. Its not likely to get everything exact, but should be close enough i could just touchup some stuff when the part comes up again for production
@14:54, for uframe changes after the fact:
I use Frame Offset (MENU --> Frame Offset), select the program, insert line 1 or rename the new program, down arrow, select frame numbers and select this will keep all positions in the same location relative to UFRAME[0] but convert them from Frame A to B and adjust the coordinates accordingly. (line 1 - J P[1], line 2 - L P[1] becomes line 1 - J P[1], line 2 - L [P2]. P[2] will have same pos data as P[1], only the number is different.)
Switching from frame A to frame B: set up the new frame in location and input the old and new frame in the offset command.
If you are trying to relocate the frame origin but maintain positions: (I.E. move from UFRAME[A] at x=100, to UFRAME[A] at x=500 while keeping the actual data points in the same physical coordinates) make a intermediary frame at the desired new coords (set UFRAME[C] to x=500), transfer from frame A to C with convert data enabled, then change frame A to proper place and run again from frame C to A.
If you select NO on the Convert, it will keep the UFRAME relative positions not the world positions, so it will move as though you changed the frame origin. good for cleaning up excessive uframes or reorganizing the order of frames.
the only way I know how to convert PR's between frames is to travel to the PR in frame A --> set active frame to frame B --> record new position for PR. can technically do this for all points but its super tedious and slow. Did it once, do not recommend.
I’m loving the knowledge share here, guys! Keep it up!
Would you be able to automate UF shifts for PRs with a Karel program?
I'm not sure how execution of Karel works but it seems like that would be the only way to automate this stuff.
@@dts_user1389 I'm not sure, haven't touched karel yet
Thank you so much. Was hoping my question would be answered and to my surprise, you did! Just incase you want to post ANYTHING about Line Tracking....its a BIG +1 from me! The company i work for relies big time on Line Tracking at the end of the line (palletizing). The content you are posting has helped me SOOOO much. Keep it coming bud! Thanks again! 🤙
Thank you so much Adam for answering my question! If you could make a video explaining the DCS IO’s would be great! CSI, CSO, SSO etc… your videos has helped me a lot!
Alan Gutierrez, if by "electrodes" you mean weld caps/tips, you will need to setup tip wear compensation and your wear ratio. It would be hard to explain here but there is a 2 step fixture based or a 1 step fixture-less tip wear setup programs that can be used to calculate/update wear and notify when the max wear is reached for a cap change. You have to setup the initial reference values and then call the update program after each milling cycle to update the wear. When a cap change is performed, the tip wear is updated and should be back to your reference value +- your tolerance that is setup in the tip wear detection menu. If you have the FANUC Servo Gun Function Operators manual, it is explained in there how to set it up.
Tremondous video!
All hail Adam!
All hail the snipping tool!
I’m feelin’ the love! Thanks so much, Hugo!!!
More on string registers! :-) I want to know how to select an element of a string. String element 1 of "string" would be S element 2 would be t, 3 would be r. For fun I am building a program that types out a users name. But I need to edit several strings because string register 1 is first letter and so on. You know how you can select xyzwpr with PR[i,j] I want to do the same thing with elements of a string is this possible? So the way I have it set up I put the first letter of the name into string register one and so on. I want to be able to have one string called name and it pull out element 1 to call A, element 2 to call D, 3 to call A, 4 to call M. I have a program called A, a program called B... with an offset of 100mm after it uses each letter. It writes out the name, but it is hard to change 5+ strings on the fly to show it off.
Thank you very much, Adam all these questions are very helpful.
I just rewatch again still a lot thing to learn. Thank you Adam 🎉
Another amazing video with lots of good talking points. "I don't have a SCARA anymore. My wife made me get it out of the kitchen."😅😅😅😅😅😅
This video helped me more than all the classes I have taken! Thank you
Fanuc needs to add folders to the programs list! It would be nice to put every program for a project in its own sub-folder. Not in program root. The program list gets super long, especially at school, where there is lots of users. Not having folders is kind of dumb. Unless there is a way and I am dumb?
I come from a long background of RSLogix PLC programming, and having folders is one thing I miss the most!
You’re right, FANUC currently does not offer that. However, our software development team is located in Michigan and I’m happy to share the request. You never know… V9.50 could have your fingerprints on it.
Wow that DCS idea is great and would work in alot of places
HI Adam, Can you make a tutorial about the linear traking? please!!!!!!!!!!!!!!!!!!!
Sorry I missed this one Adam! I am responsible for 84 Fanuc robots from varying families (the majority being M20-iA). We have a reoccurring issue with our maintenance techs simulating IO for various Digital Inputs that are used in our process. Is there any way to examine the simulation status logically in the PNS program to prevent the robot from cycling if a particular Input is simulated?
Thanks
Hi Mitch! Yes absolutely. You can open your I/O screen, then go to Cell Interface, then setup a DO[x] to monitor for simulated status on either inputs or outputs. Once you define it, cycle power, and now whatever DO you setup will come ON if someone is simulating io and it will go OFF if no io is simulated. Now you can simply monitor that one DO[x] to see if anyone has tampered with io ;)
PS - this is such a good question, I might make a video short on it...... stay tuned, you just might see it.
Can you please talk about Karel programming, setup , use cases and some example programs. .
Thanks.
Thank you for another excellent video, Adam! Those answers are helping me a lot!
There is any way to simulate the tool hoses? In my application there are many of them connected to the tool and is very annoying to desing and test a new fixture for every new application.
Congrats for the videos! Best regards
I am a newbie working with an R30iA. Regarding your "IF-THEN".......I have 12 conditional statements that use IF statements to decide which program to run, inside an infinite loop. Although I don't have the "THEN" option, it executes as though there is a THEN instruction without it. Maybe I am missing the point of that question?
Hey Adam do you have a video on Pallet Pro and using Unit Loads?
Help! RJ3 M410IHS. How do I use the pointer and fixture plate in Pallet Tool 5.1 to setup a conveyor and pallet in a "new to me" robot?
Hi, Im trying to use the mirror utility, havent seen much guidance for it anywhere. Source position ? Desination position? Where should those be set exactly?
You've found a function that I haven't played with much :) I'll take a look and perhaps this would make a great video for a short tips & tricks segment!
Adam, first off, great videos. Very helpful. I have a question. If you have 2 robots within one cell, is there a way to mirror one robots I/O to the other robot via Ethernet? Thanks in advance, and keep up the great content.
Thanks Brian! And yes! With the option “Data Transfer Between Robots” you can pass, share, or mirror I/O between the robot via Ethernet. Both robots will need the option installed. Thanks!
Another n ice and useful video from you. I would like to make virtual robotic cells in which there are robot and PLC working together. Which program suits best for this? is roboguide able to handle this type of simulations?
I need to have my table or won object rotate how would I be able to do that??
Hey Adam great video as always, one question that is always on my mind, could you explain a bit what is about the "F U T 0 0 0 " cofiguration in a point? i know that is about changing the orientation of the robot to reach the same point, but even on the Fanuc manuals i haven't see a "simple" explanation about this. Cheers!
This is a super common question, and you just motivated a future video :)
In short, this tells the robot how to articulate to get to a point in space. It involves “Normal” or “Flipped” (NUT vs FUT), wrist down vs wrist up, and J3 interaction. I think a video will be more helpful, but in the meantime just know the robot is reminding itself of the posture you taught it.
Hi, Adam. I have been using RG for awhile that is why this is so crazy. Everytime I run a simulation, by box disappears. It shows up on infeed, but won't show up on gripper, or pallet. It;s there when i start sim, but not when I hit play button. I have added the box to the gripper and unchecked present during run time. Same thing for pallet.
Is "collect profile data" checked on the Test-Run-> run panel menu? I had the same thing happen and I have no idea how that box became unchecked.
@@mattclifton6516 I finally figured it out like two days afterwards
Hi,at 19:27 you mention that we can interact with a robot by ethernet/IP (com with PLC). I already did that for one robot... is there a way to setup one external PLC that communicate with 2 different robots in the same cell?
hi adam .is it difference programming welding robot and loading unloading robot
Hey Adam. I got a kinda tough one for ya.
Is there a way to *automate configuration changes* for your points and PRs?
In several situations, I teach a program to a UFRAME that consists of hundreds of points. Sometimes, when moving that UF, the points become unreachable in the existing configuration.
It would be super dope if there was a software option, tool, or custom code I could write so that the robot automatically figures out the correct configuration. It sucks to have to go into a whole bunch of points to manually change configs because of a small UF shift. D:
Edit: Upon exploration, I guess some configuration changes are just not possible, but like I would still like to do a linear move through something like a wrist singularity.
I guess the singularity avoidance option would be good here? But I don't think I can still do linear moves through the singularity. D:
Edit2: In programs like RobotMaster, there's an orientation state-space that you can use to optimize your robot motion. It allows you to do all kinds of crazy config changes through a program. Some piece of that would be super helpful here.
Ask and you shall receive... here is my video using RoboGuide for robot optimization: ruclips.net/video/CXN80TSCHMA/видео.html
To avoid singularity, it is best to use JOINT moves. Also in general, there are some design criteria that can help you avoid singularity altogether. Check out my video on singularity here: ruclips.net/video/BPjqH_e5y3s/видео.html
@@AdamWillea Thanks Adam!
Hello Adam. I just found your channel and am working my way through all your videos. I don't really do any programming as of yet, but I have a mystery that maybe you or some of the other people here my have some insight on. We have a robot that we use to trim plastic parts. Operators just push the start button to start the cycle and that is the only thing they touch. The robot was doing fine, then suddenly it ran its cycle BUT was offset to the side and the cutter bit never touched the part. I just kept pushing the start button running they cycle and watching because I had no clue how the robot changed itself. Then after about the 6th cycle the robot went back to normal and trimmed the part correctly. I was think to myself, what in the world just happened? We have had issues before where after the robot sits for awhile and you try to use it and positions are not right even though its the same program that was running last time we used it. Any one have any idea's on this mystery?
Hi Adam. Im trying to use iRvision to output the image to specific location after the process , but I don't know how to do
If you are trying to output the actual acquired image, you can setup "Image Logging" in the Vision Process tools, and set it to "Log All Images". You'll need a blank USB inserted into the UD1 door slot, and all images will be saved there.
@@AdamWillea TY so much.
@@AdamWillea I have another question that is where can I find image register's file in system variable.I want to show that in my customize UI.
Hi Adam i've a M20iA M20 Fanuc robot wich has a gun as a tool, we use the robot to apply glue into automotive parts, i did a macro to call a purgue program then when i try to execute the macro with SU it appear the next alarm: intp-105 (name of macro ) run request failed, mctl 003 system in error status, i have been searching in handboks and forums as well so i cannot get a solution yet , i hope you read my comment i'd like so much your recommendation
Note: before to execute macro i ensured of abort all and hit reset key
Hi Adam, thank you for making these videos which help a lot of people.
I have a robot that gives me trouble because when I import it into robotguide, the screen is white! On this robot, there is a user screen that must be left with a password to go to the standard teach functions. In robotguide, I manage to cheat by deleting the Karel program. But I would like to find out how this background task is activated at startup, and therefore how to deactivate it in robotguide without having to delete the ***.PC program
Can you help me find where this background task is activated?
And if possible, tell me how to make the user menu appear normally in robotguide?
Check to see if it is running in Setup > BG Logic. If it is not, I do not have the answer. But hopefully this helped.
Is there a way to change the way jogging works in roboguide? So when I shift click, it toggles jogging on and off. I want it to force me to HOLD it down to jog like on a REAL robot. Is there a way to do this?
top bar of software --> Tools --> Teach tab --> Teach Pendant Selection Sub Tab --> unclick the "Jog keys automatically apply the SHIFT key" option.
@@shank-work9635 Thanks for answering these questions man. Nice to see community engagement!
@@dts_user1389 Just trying to help fill the community knowledge pool. I have 0 formal training in robotics, everything I've learned is from youtube or forums, seems that's how most people do.
@@shank-work9635 I actually took a class on robot arms in college. But I had no clue how significant those topics were. I was kinda like "herr derrr derr. I like building robots. Let me take this. Why does it have so much math? Robot arms are boring". Singularities, limits, path finding, image processing, and all kinds of stuff. I'm totally torn up that I didn't pay attention or appreciate it at the time. AHHHHH