Posts by TomFoolious

    WOW, Years of using roboguide, and I never found this. There's also all kinds of other useful stuff there as well (ex you can change the UD1 and UT1 file location without digging through menus).


    Roboforums really needs that bit coin/beer tipping feature.

    Haha, I never thought of mentioning it before because I didn't think it was all that well hidden. Then again I'm usually one who, when learning new software, tends to click EVERYWHERE and try to break whatever I'm working on to learn how it works. Nice thing with software is if you break it too much, just End Task, re-open and try again!

    All you have to do is...setup Coordinated Motion between the Robot and the Positioner.


    As for the program...The weld program will have your Robot Group and the Positioner Group masked to it. I used 2 Circular Motion Types (4 points total) with the Robot's Position being the SAME. The Positioner's Group rotates a quarter of the way through each Circular Point.

    Let me minimize the RoboGuide Virtual Teach pendant.


    Closing it and having to reopen all my displays and wait for it to start again is annoying, but so is dragging it around my screen all day, especially with only one screen/on a laptop.

    Not sure if you know, but if you Right Click on the VTP in the bottom grey area you can uncheck mark "Show At Top Most" or something along those lines. Hope this helps.

    Sorry it's such a simple suggestion, but sometimes I need to just move my USB Thumb Drive around a bit for it to be detected and read...Maybe it's as simple as that?

    No way that I know of. I believe you would need to import a high quality IGES of your CAD Model and then use CAD to Path or Targets to plot out the path you already have.

    I may be wrong, but Space Check only tracks TCP, not the MODEL of the Robot like Interference does...so beware when programming your robots close together! i.e. Make sure your TCP leads into the area you want to safeguard.

    Yeah, well for what it's worth...I grabbed the Cylinder workpiece under the Parts category of the CAD Library...stays circular at smaller diameters. Just gotta scale X, Y & Z rather than give it a Diameter and Length.


    EDIT: Oh and on a side note, it seems Roboguide may have gotten better importing IGES files?? I imported 3 files with High Quality that were from 300,000KB to 415,000KB in size...sure it took some time, but they were ALL successful on the FIRST TRY! That's a really nice surprise.

    Is your diameter very small? If so, that's pretty much how roboguide behaves. If you need it circular, you may need to model it and import it.

    That one I screen shot was 50mm in diameter? But I remember at some point I was using circles at a smaller diameter than that to line up fixtures using a 4 way positioning hole...or at least I believe I did...Unless I used the circular Part->Workpiece cylinder...


    I did try to use a 5mm diameter to place a TCP as accurately as possible and the circle came out to a triangle...but I was still able to measure to the center of face. It still works, just not a round circle.


    I'm probably just going crazy :uglyhammer2:

    Hey everyone,


    Not sure when this started happening and I'm pretty sure I used to have smooth round circles...but at some point my circles have become much less smooth. I have Anti-Aliasing turned on and I've tried turning the slider all the way to Best Quality along with restarting Roboguide, but this issue still happens...Also made sure that my dedicated graphics card is being used at all times.


    Anyone got any idea what could be causing this?

    I use a mixture of both myself along with entering in via USB Keyboard plugged into the iPendant or plugged ethernet into the controller.


    Final verdict: If the Keyboard was easier to use 80% of the time (no miss hits, slow response time, etc.) I would also advise making keyboard a default option to choose.


    Until the keyboard loads faster and is a better user experience, leave it as is. Plus using the function keys is great for editing quick small details. Don't forget Shift + Right Cursor deletes!


    Lastly, shortcuts people...they're not bad to learn and they're easy to replicate once you get the muscle memory down. ENTER, UP, F5! BOOM and VOILA! INSTANT-O KEYBOARD-O!

    I brought this forward to the customer as well, and they want a solution that won't potentially cause other issues. (such as touching up a point in the wrong user frame).


    I'm always shaking my head these days as I am more and more often asked to come up with solutions that basic training takes care of but it seems they'd rather not spend money on training and have me try to idiot proof things. Ugh lol

    ...I know what you mean...Every next project I get I find out I need to dumb things down even more...


    Anyways I'm with HawkME on this one. Probably best to use an unused User Frame. To make it idiot proof you could always have BG_Logic running in the background that would prevent things getting out of whack by human error. There is a variable to check to see if that BG_Logic job is running, which you could check when any automatic operation is started (top of PNS or RSR, what have ya). That way you can throw an alarm if that BG_Logic job is stopped. Maybe this would work for you, maybe not.


    EDIT: Found it. Brought up the robot homepage, used the Search Tool under Variables for "JOG" and I found $JOG_GROUP[1].$JOGFRAME = Recorded. The details can be opened up which shows the config and pos data. I put some random numbers in Jog Frame 1 and swapped back to that variable and did see those numbers matching. So it seems you'd be able to access the first jog frame under variables? Give it a try I guess and let us know if it worked for you? Hope this helps?!

    Taking a guess here, but I believe you want to uncheck the box labeled "Collect TCP Trace" under the Run Panel. It will be towards the bottom under the headline "Collection".

    That's ridiculous, given that there is just 100 PR. Thanks for answer tho

    You can expand the number of PR's if you have enough memory via Controlled Start -> Menu -> Program Setup -> Position Registers. I've had to do this in the past for a home routine that needed to retain multiple points in two jobs to bring the multi-arm controller's robots home from any taught position. I was able to go up to 285 on that setup before the controller kept wiping out any number above that number. So primitive brain Tom said "OK that's the max I can do with the memory I have". Not sure if I'm completely correct and safe to think that way, but I haven't heard anything from that customer that the home routine isn't working.

    Yeah it's OK, I figured that was going to be the case...I am looking at the webpage ActiveX Label Control and I do see that one of the DataTypes is "Dictionary Element"...So that would be the .ftx or .utx file format?? Even if so, that's still directly tied to a KAREL program because the KAREL program has to include/use the dictionary, right?


    BUT! I do see that the Position Register DataType under the Label Control includes ALL the information of a PR INCLUDING the NAME/COMMENT. So, with cropping/margins I can slim the box of information down to show the PR[#] GRP[#] and [COMMENT]. That may be good enough...now I just need to figure out how to display the PR being referenced within the Indirect Register. This already seems like too much work for what should be a VERY simple task!


    Thanks for the reply Fabian Munoz!

    EDIT: Before "Why don't you just use KAREL?!", I don't have KAREL option on these Robots, or I would go down that route and learn me some more KAREL.


    Thinking of making some improvements to the robots for our customer while I have some downtime...Long story short, I'm wondering if the Comment you assign to a PR (a.k.a. the name you give it) is accessible through System Variables for use in TP Programming? I want to take the name of the PR, slap it into a single String Register and display it on a webpage, rather than writing each model name to its own String Register and reading the String Register (one less place for the customer to have to add to if they add a new model).


    I'm under the impression though that if I want to do anything more than PR = this or PR[x,y] = this + that in TP Programming, that I'm going to be SOL. That's why I ask the people much more knowledgeable here ^^


    Little more background if it helps: I have two operations, pick and place. I have multiple models, but the paths are all the same for each operation. The only change is the pick or place position. So I would like to swap over to using an Indirect Register within a single job for PICK and a single job for PLACE. Since this customer is new to robotics it may be confusing and/or intimidating to see PR[R[3]], so I would like to have a webpage that shows "Current Pick Position Register is:" "(PR #) (PR NAME)"...or something along those lines. So that they can have more confidence in teaching the Indirect Register with a visual aid / being able to confirm the Indirect Register is on the correct model. Obviously they should also have some faith and trust in the Integrator they are paying to program their new toy, but ya know - I like to get as close to a Mercedes when the customer pays for it with neat features.


    EDIT2: I may be able to do this a rough way and use a Label Control and margin/crop it until only the [Comment goes here] portion is the only thing showing out of the entire Position Register DataType...

    Yep, so the below example would wait for 3 seconds for DI: 1 to turn on. If after 3 seconds the signal does not come on, the program will jump down to Label 1 and call the HOME job.

    -----------------------------------------

    WAITTMOUT = (300)


    WAIT DI[1: TEST] = ON, TIMEOUT LBL[1]


    //Move To Next Position

    J P[1] 25% FINE


    END

    [LBL: 1]

    CALL HOME

    -----------------------------------------

    Hello


    I haven't worked too much with fanuc robots.I know how to use other robots and I am new to fanuc robot.When a condition is met, if your example is if (di1=1 and di2=1), I want to stop the robot's motion

    If I'm understanding this correctly you also want to STOP the robot when DI:1 & DI:2 are ON. To do this you would use a SKIP Condition and a SKIP LBL. More information can be found in the HandlingTool Setup and Operations manual under Chapter 7 Program Instructions.

    I dont leave such decisions on operator personnel. The robot operators only deal with the HMI and the controls I have implemented through the PLC. I dont even let them choose the production program or cycle start. I use recipies that directly store every variable the robot needs, to choose the correct program.

    Recipies take care 90% of the decisions. I also use RSR services to start the robots remotely. When the operator loads the desired recipe, the RSR program goes through a switch case logic to decide which production program to start based on the selected recipe. All this does not require any particular experience on robots.

    If you check my original post, the Home routine uses a pretty sofisticated branch logic to decide how to go to home based on the cell's current equipment. This way the operator only needs to know how to navigate through the HMI pages and press "HOME" to home the robot. It goes without saying that when you add a new fixture or equipment inside the cell you will also need to modify your background logic to add one more danger zone and your home routine to calculate one more exit move based on the new equipment/fixture added.

    Usually, when a customer needs to make additions to a cell they always contact their intergrators. If an employe of a company has the skills to modify a robotic cell by adding new equipment and integrate it to the system (=integrate it to the machine controller/PLC controlling the system) I can assure you he can modify the home routines too, or easilly learn how to do so.

    They can add as many processes as they want as the home routine is not subject to the currently running program but only to solid fixtures and equipment inside the cell.

    Thank you for the response. Sounds like a good practice to get into. Will definitely start a slow transition to a system like that (at least on the robot side for what I'm responsible for) going towards the future. I've been looking for something new to tryout!

    Thinking it all through I have some concerns going this method though...Let me ask the question: Have you (ps0f0r) ever had issues with any end user getting stuck or not understanding how the robot goes home? I'm asking because I feel like, even though breadcrumb trail isn't always the best, it would be better(?) for troubleshooting with Maintenance personnel? What are your experiences with that? I'm thinking at least with breadcrumb trail anyone can pick up the TP and read, "JMP OK...goes to this label here ok...then it jumps to home position and goes there, ok..."


    Maybe the point is, don't let them have to think or read anything - just work?


    Have you had any experience with customers who may not be as experienced with robots, but plan to add equipment or processes later on that would require them to make additions to the home routine? Are they on their own then to figure it out themselves? Pay you more money to come out and add stuff in? Just asking out of curiosity because my mind is sometimes a dumpster fire of What If's :D