Posts by TomFoolious

    That's what I'm saying :D I have PR[100]=LPOS command, but it's giving me "INTP-311 Uninitialized data is used" (there were data in PR[100] before anyway).

    Thanks for great explanation of groups. I do have 1 robot and masking is set correctly (1, *, *, *, *, *).

    Huh, well if you do have the correct group masked inside the job using the PR then yes that should be working...I know I've ran into this before when making a home program a while ago. I promise you it was an issue with my program and NOT Roboguide. I am kicking myself for not remembering what the darn problem I had when getting the INTP-311 before when everything seemed all well and good...:wallbash: maybe I took notes...hmm...

    Gotcha, yes that makes sense. And the nice thing is it will always update and an operator or inexperienced user can't just turn off or on one of the outputs used, so therefore it makes it idiot proof, for lack of a better term.

    Thanks. How do I properly set up PR? What is group masking used for?

    Well the PR[100]=LPOS should be doing the trick, that is grabbing the robot's current linear position and config and placing it into PR[100]. The Group Mask is setup in the Job Details page. SELECT -> cursor to job -> F2 for Detail -> Group Mask (*, *, *, *, *, *) or however many asterisks there are. Under the Group Mask you set an asterisk to a 1 using the function soft keys. What this tells the robot is your job uses only the group masked in the job.

    So if you have lets say two robots on one controller with a turntable, you have 3 groups (Robot 1 = Group 1, Robot 2 = Group 2, Turntable = Group 3). If you need a job that only spins the turntable 180° from side a to side b, you would MASK the ROTATE_TT.TP job to Group 3, so it would look like: Group Mask: (*, *, 1, *, *, *). Any PR's you have inside the ROTATE_TT.TP job will only write to Group 3 of the PR. So if you had PR[100] in that job you would only use data for Group 3 of PR[100].

    Not sure if you have multiple groups, but if you do check that they are masked correctly. Even if you have only 1 group, you still need to make sure it is masked to the job, so the robot knows which group to place the data into. Hopefully that makes sense, I can explain better if need be - I don't always do the best job...

    I understand that no software is perfect. It's just that I'm getting errors which I shouldn't be getting.

    For example "INTP-311 Uninitialized data is used". No matter what I done with register, I was getting this error every time, when function was used in program with input parameters, then suddenly it start working, with no change in the code.

    When I deleted input parameters for program call, it was working and replaced AR with constants, it was working.

    Agreed, no software is perfect. I've blamed Roboguide many times thinking it was their fault, but every time it has turned out to be mine, that's what I'm getting at. Every time I've received Uninitialized data it's because I didn't setup a PR before hand or I didn't have the right GROUP MASKED to the job.

    Use *.ftx , and compress it to .tx,the example FORM and.ftx in the Roboguide OLPC ,you can build up them,than try to change the code, the text message in user2. the mean can use direction key to display those item.

    Sweet I'll check that out - thank you. I've been skimming through the KAREL manual for days now picking out what I need and trying it out. This will save me some time for sure.

    Tom, just as the last 2 posts have said.

    You create enough DCS zones (or LPOS "zones") to handle each situation needed. I prefer DCS zones because they can be seen visually on the teach pendant so are easier to setup in my opinion, but they achieve the same result as checking the LPOS.

    Right, sorry I missed that as I skimmed through. Too bad my current robots have neither DCS nor 4D (it's a very strict budget project...) I can get creative with the basic interference check I twisted their arms to get for the robots possibly or setup all the LPOS boxes...Thanks for the information.

    Sorry everyone I don't check back here as frequent as I should...


    But 9 lines should be enough. whta do you want Display?

    So I want to display info of what my KAREL program is doing: "Set PR[count]'s info to PR[new]". It would be great if each iteration of my loop could be shown, but with the limitation of 9 lines, only the last 9 lines show. It's just feedback for the user of my KAREL program so they can see what is going on. I guess in the end they'll be able to see what happens when they check PR list. Idk I just like to over complicate things sometimes :)

    You could write your full log to a text (.dt) file on the robot, then read from that text file to the user screen. Either require a key press to show the next 9 lines of info, or put it on a timer (while .dt file has more lines, read 9 lines from the text file, write them to the user screen, wait 5 seconds, loop).

    This is a good method, I'll look into it. Thank you TitusLepic!

    WRITE (CHR(128),CHR(137))8o

    I'm not bright enough to understand if this is serious or joke hahaha:wallbash:

    This is good information, but I'm curious about a couple things: I get using DCS Zones to see if robot is here or there, but once you've determined you are inside that DCS zone are you then using LPOS to see where the robot is inside that Zone? How are you determining then where the robot is compared to the programmed position(s) to bring it home? Do you query each point of the program and see how close LPOS is to each point? Saying that out loud to myself sounds silly, so I know I'm missing something very obvious...Thanks for any input you can/may provide. I'd love to replace my lazy use of the breadcrumb trail (i.e. register setting). I definitely have seen where it can fail to do its job.

    Pretty reliable on my end to the point where I can dump and go my .TP, IIC, DCS, Registers, etc etc. It's like having a robot controller in front of you. Usually when I receive the alarm codes you mentioned it is MY code that is wrong. Make sure you initialize your Position Registers before using them. I will go into the Pos Reg list and type in all zeroes to XYZWPR to initialize the PR I want to use. You can do it in code to by using PR[x] = LPOS-LPOS, which will do the same thing as manually typing in all zeroes.

    As far as INTP-106: Continue request failed - If you're trying to go backwards in your program to another point and that point has a WAIT (for example) after it, the robot will not back up behind the WAIT statement.

    To put it bluntly, there are reasons you are receiving those alarms and it is probably not the virtual robot controller. Keep researching and learning and definitely ask questions! We are here to help!

    Hi all,

    Diving in to the KAREL world and writing my first program to copy and paste PR's and their comments from one spot to another. I want to show information of the operation, so my co-workers can understand what happened. It seems though if I write more than 9 times to the USER screen the information is cut off. I'm writing "Set PR[count]'s info to PR[new] every FOR loop. But as I said after about 9 loops the remainder of the WRITE's are not displayed.

    How can I allow more WRITE's to happen on the USER screen? Is this even possible? Am I doing something wrong?

    Thank you for any help that may be provided,


    EDIT: Looking at the Handling Setup and Operations manual, it seems that a max of 9 lines can be written to the USER screen.

    To clarify, when I said I don't update software, I meant on the real robot.

    For Roboguide, I will update periodically.

    Ah yes, definitely. One time though I was instructed from FANUC with no hesitation after telling him my software version to update, immediately. That's the only occurrence I've had though. Other than that the software version the robots have come with have been fine.

    EDIT: I would investigate the fault you are receiving. Look up a manual for the lincoln feeder you are using and check the faults. Other than that you can carry on to my original response below.

    Yeah looks like with that software version you only have access to Arc Start, Weld Point and Arc End . That's no problem. Looks like after Arc Start and Arc End, the number within the brackets, is the Schedule number. Also looks like each schedule defaults to 200 or 300 IPM (under Data -> F1 (Type) -> Weld Schedule).

    If that's the case, you should be seeing wire...When you attempt to run the program, do you see the DO command go High when issuing the Arc Start? You may be able to split the screen with Shift + Disp button -> Double.

    I never update. If it ain't broken, don't fix it.

    I'm quite the opposite - always looking out for a new roboguide update and installing. Sometimes they gift us some nice new features! The one I use a lot lately is the program drop down list on the virtual teach pendant. Sure I can hit F9 (Select) and cursor up and down on the VTP, but selecting quicker from a drop down list is more favorable to me.

    What does your Arc Start line look like in your program? Are you using a schedule or doing a direct entry of the weld parameters?

    Does it look similar to this?

    L P[1] 100mm/sec FINE Weld Start [1, 1]

    Or this?

    L P[1] 100mm/sec FINE Weld Start [0, 0.0IPM, 0.000, 0.00]

    If it's similar to this first one - Go to Data-> Weld Proc and setup your Weld Procedure and Weld Schedule. Hint: [1, 1] after Weld Start means use Weld Procedure 1 and Weld Schedule 1. I'm thinking perhaps if you are using Weld Procedures, maybe you didn't setup the schedule and therefore it is being given no parameters to use (no wirefeed)

    If it's similar to the second one - Make sure you punch in some numbers in place of the zeroes (obviously). Highlighting each set of values, you will see a description of each at the bottom of the programming screen (near the softkey labels). Again, perhaps you haven't given it an instruction of how much wire you want to feed when welding.

    It seems your I/O does work, since you are able to inch the wire. So, to me I'm wondering if you're just not instructing the wirefeeder to feed any wire when running your program/schedule?

    I don't believe I've mentioned this yet (didn't see it in my comment above)...But this one is simple and WHY do we NOT have the ability to do this yet...

    EDIT IIC ZONES LIKE SPACE CHECK/DCS! SERIOUSLY! Haha...Unless I'm missing something...I'm making a random Obstacle Box, positioning it in the CHUI world where I want the IIC Zone to be, Measure from Robot Zero to vertexes of the box, then inputting those numbers into the TP.

    But once again FANUC, seriously...why we can't edit IIC zones just as we can DCS and Space Check Function?? :uglyhammer2:

    Oh and one more thing: WHen setting up Parts on a tool, allow us to turn on/off multiple inputs. Like if a part would cover more than 1 prox, let us turn on RI:1 & 2-#...Rather than turn on R1, have BG_SIM job that says "Oh RI:1 is on and this is this part? Well then RI:2 and RI:3 are on as well"

    For you and anyone who is trying to find out how to use the Web Browser Comment Tool:

    - Give your Robot an IP address on an unused Port under Menu -> 6 (Setup) -> Host Comm -> TCP/IP Detailed Setup

    - Plug in an ethernet cable from the port you set an IP for and then into your laptop

    - Open up your favorite web browser

    - Type in the IP Address you assigned to the robot's port into the address bar of the web browser

    - From the robot home page, navigate to Robot Tools -> Comment Tool -> Obvious from here on where to go...

    If you cannot access anything, check under Menu -> 6 (Setup) -> Host Comm -> HTTP (HTTP Authentication). iPendant should be set to U (Unlock) in the far left column. Though sometimes, FANUC is just FANUC and doesn't allow me to get to one or two comment pages randomly just because - still haven't figured that one out...

    Best of luck

    Macro Job with Headstock Group Masked. Under MACRO menu, assign the DI's (Positive Jog and Negative Jog) you want to use to trigger the Macro. Here is an example of a job I wrote a while back:

    /PROG JOG_A_SIDE Macro

    1: IF DO[77:RefPos2 G3 SideB @ OP]=ON,JMP LBL[999] ;

    2: LBL[1] ;

    3: PR[100:Jog_Variable]=JPOS ;

    4: IF DI[28:Jog A Positive]=OFF,JMP LBL[2] ;

    5: ;


    7: ;

    8: PR[100,1:Jog_Variable]=PR[100,1:Jog_Variable]+5 ;

    9: ;

    10: LBL[2] ;

    11: ;

    12: IF DI[29:Jog A Negative]=OFF,JMP LBL[3] ;

    13: ;

    14: PR[100,1:Jog_Variable]=PR[100,1:Jog_Variable]-5 ;

    15: ;

    16: LBL[3] ;

    17: ;

    18:J PR[100:Jog_Variable] 100% CNT100 ;

    19: IF DI[28:Jog A Positive]=ON OR DI[29:Jog A Negative]=ON,JMP LBL[1] ;

    20: ;

    21: LBL[999] ;

    Unless I'm misunderstanding your application - this should work for you, but of course change the increment/speed %'s if your application does not need the speed. With the IF, JMP LBL at the end, this should cause the macro to act like a BG_JOB, but not be a macro job.

    Take a previous backup of your robot that has the correct weld procedure information. Power up the robot into Controlled Mode and then load the AWSETUP.SV file that is in the previous backup of your robot.