Posts by DuhbCakes

    i honestly cant say. we make our welding and material removal robots path priority and our handling robots cycle time priority most of the time. i have never done a side to side comparison. i think it is all included in the Motion Interface package RTL-R583. that also lets the robot use optimizations generated by Motion PRO software. i have not worked with it a great deal but from what i have seen the Motion PRO optimizations are significant. on the order of 10% or more for the cells i was working on. blew me away.

    if i were the betting sort i would put money on the problem being the header bits. if you have 8 input signals you want to revive from the device the connection will have a minimum of 1 input word. the word is configurable from 8 bit to 16bit in the advanced settings tab of the scanner page. (if the robot is the scanner) i would expect that the robot is the adapter in your case so your io setup screen would probably look like this:


    Adapter configuration:

    Description: connection1
    Input size (words) : 2
    Output size (words) : 2
    Alarm Severity : WARN


    Scanner IP : **************
    API O=>T :
    API T=>O :


    if the connection is up and running the ip address of the plc will be displayed.


    the input and output size is dependent on your setup, but they must match between the adapter and the scanner. what i susepect you have is the following example


    Input words = 2 16bit
    Rack: 89
    Slot: 1
    Start: 1


    0.0 0.F 1.0 1.F
    |**************| |**************|
    |*UIs***|



    this works great, but most likely your first word does not contain any data, only communication overhead bits. try instead something like this


    Input words = 2 16bit
    Rack: 89
    Slot: 1
    Start: 17


    0.0 0.F 1.0 1.F
    |**************| |**************|
    |*UIs***|


    obviously your setup is probably different than this, but the random bits that toggle themselves is often improperly mapped bits either in the IO setup or in the Ethernet setup.


    fanuc has a manual on ethernet iP setup for allen bradley plcs that showes you how to set it up as a generic CIP object. MAROC77EN01101E

    think back to trig class. you need a minimum of 3 points at the circumference to calculate the diameter. consider that you are working in 3 dimensional space so the pitch yaw and roll matter. depending on how accurate your numbers need to be you will get a few grey hairs before this is done. if you get three points on the surface of the pipe we can assume that they all are equally distant from the center of the wheel. further complicating factors is that stock installations do not have trig functions available in TP code. you will need to get the Math Function option or use Karel to do the higher math. Accuracy is the other issue, as is discussed in some earlier posts, Registers only have about 4 significant figures for calculations. if you are not careful very small errors can creep into your measurements.


    i did something similar to this with a laser sensor and oil pipe. i took 3 readings from the face of the pipe to align the robot with the face of the pipe. then 3 readings to center up the robot looking down the inside of the pipe. i used that calculated PR and made it into a userframe and executed the rest of my program in the new userframe that was in theory aligned perfectly with the center of the pipe.

    set up a macro to trigger off of the UOP, if it has no motion in it, it will start running at the same time as your main program. just have it toggle a bit when it is done to let your main program know it can continue. i think you can also screw with the priority in the TP header to have it complete before any other tasks.

    dollars to donuts your problem is improper payload settings. too high or too low and your servos have to work against themselves. if you have a recent enough controller you can have the robot generate payloads using the payload ident. (might be an option, im not sure ours come with a standard package) menu-next-motion-next-F1(ident)

    there are some other things to consider as well. payload makes a huge difference. the robot uses the payload schedule to determine how much to drive the servos. if the settings are not accurate the robot can overshoot each segment. it will then over compensate the other direction, and enter a feedback loop that makes it hard to get accurate positions. on larger robots gravity compensation option can be used to offset the amount the arm physically deflects from large payloads.


    you can also run most robots in either 'Path Priority' or 'Cycle Priority'. the difference should be obvious. this is set up in the controlled start when you install the robot identity.


    proper backlash compensation should also be done. the robots ship with paperwork from fanuc that have the master count variables, as well as a few backlash variables. reloading software or replacing the sysvars.sv can knock these values out and affect the accuracy of your mastery. you can program in motions into your process to reduce the effect of backlash on certain moves as well. if you have a camera on the system iRCalibrate has a lot of cool features and will almost always produce better results on frames and TCPs than you can do by hand.

    just re-serialize your robot in roboguide. take a backup of the real robot and put in on your computer. open the properties of the robot in your cell browser, and choose serialize. select the create robot from backup and use your robot backup. this will make your virtual robot the same as the real one. as far as getting rails and boom arms to look right on roboguide you will need to set up to motion links manually. the help file in roboguide has an entry on that its under Working with robot controllers -> Working with Robot Machines positioners, aux axes.

    what version of explorer are you using? i have trouble with this as well, my solution is to turn off any sort of firewall and hope IT doesnt notice. another thing to check is to go to the setup menu on the robot for Hostcom and unlock the http authorization.


    menu -> setup -> host comm -> http -> F3[detail] -> set all of the options that you want to use to unlock with F3. i think that echo is controled by iPendent, though it could be Vision Setup.

    i suspect what you have heard about is collision skip function. (now called touch-skip for marketing reasons) The basic principle is the collision guard threshold is lowered for a little while, and the program monitors the disturbance readings on the servo with a predetermined threshold. in your case it would look somthing like this



    in order to use the high speed disturbance you either need to have the option installed, which comes with a few canned programs for finding chuck center and such, or set the system variables up yourself.


    if memory serves me properly you need to have $MISC_MSTR.$HPD_ENB=TRUE for the torque variables to even appear. if you cannot get those to work you can always use the variables in $MOR_GRP[1].$CUR_TOURQUE though they are not quite as quick to react.


    that being said, a word of caution about using the collision skip feature, if you dont set it up right it will tear your robot up. I just recently replaced a wrist on a robot that was only 4 years old because of this. wrist servos often use beta motors, and so are much more sensitive than the other joints, so i would recommend using the smallest joint possible to take your reading from. in your case all of the motors are tiny betas on the LRMate. if its for some school project or something then great, but i dont suggest it for production systems.

    hmm i have been putting quite a bit of thought into this problem. i still haven't really solved it yet. using flags as a semaphore works as long as the task always completes. but if it gets aborted or hung up on a wait or something the flag will never drop. i have not been able to find a set of system variables that gives me all the info i want about tasks, so i don't think there is a way to solve this in TPP. I started to write a Karel program that would search through all of the running tasks for a program name, and return some info using the GET_TSK_INFO builtin. i ended up getting distracted, but i still would like a TPP program that could do this, as the folks i work with prefer to do as much as we can without using Karel. any ideas?


    $SHELL_WRK.$rout_name program that is currently being edited.
    $TP_DEFPROG selected program on TP select Menu.


    beyond those, all i can find are PNS or RSR task variables.

    Code
    PR[1:TEMP]=LPOS
    PR[2:Z+ 200] = PR[2:Z+ 200]-PR[2:Z+ 200]
    PR[2:Z+ 200,3]=200
    R[1:Override Save] = $MCR.$GENOVERRIDE
    IF (R[1:Override Save]>=15),$MCR.$GENOVERRIDE=(15)
    
    
    L PR[1:TEMP] 500mm/sec FINE Tool_Offset PR[2:Z+ 200]
    CALL HOME
    IF ($MCR.$GENOVERRIDE<R[1:Override Save]),$MCR.$GENOVERRIDE=(R[1:Override Save)


    the syntax might need a once over, but that should work for you. it will take you away from the part based on the current tool not any userframe

    what you want is very possible. however it is not simple. if you are using the iPendent customization software provided by Fanuc, then you can use the ComboBox Control to display a list in a popup menu. the most simple use of this is to display all of the string registers and have the user select one. this will return an INTEGER of the SR index to a specified variable. you can fancy it up by making a Karel program to provide the list, but it will still only return the index of said array.


    MAROBOCS8202131E REV A 5.4.11
    The selection list can be populated by various data fields:
    List of programs with program type filter
    Contents of KAREL string array
    Dictionary elements.
    List of file names.
    List of string registers.

    You can change the header of your Karel programs to have different abort levels.
    make a main program with the %NOABORT directive, and it cannot be aborted, without using an abort override. this program could then monitor any signals from the PC without fear of it ever getting stopped. the trick would be to have it start another task that is not a child of it, as then you wouldnt be able to abort that routine.


    check the multitasking section of the manual for interpreter assignments and using the PAUSE PROGRAM, ABORT PROGRAM and CONTINUE PROGRAM condition handlers.

    it is allowed, and it is not quite FINE. i am guessing that its major effect would be that it can use acceleration time 1 instead of 2. probably has some effect on the pre-execution of logic, and motion segments as well. if i am trying to get a few tenths of a second better cycle time i like to use CNT0 motions with the Retract_LD or Approach_LD.

    CRM68 on the servo amplifier should be your external overtravel. pins 1 and 2. im not convinced you are going to find a CRM37A/B on a R-30iB. im guessing you are looking to jumper the hand broken. if so, they dont put that on the board anymore, its set in software.


    Menu - Utilites - Config. Hand Broken.


    or you can change the variable.
    $SCR_GRP[1].$HBK_ENBL

    You have to be careful with doing math with mixed logic. Since the TPP shell has to convert the registers from INTEGERS to REALS on the fly, it does not always do it properly if you have a lot of nested logic. Memory allocation to a TPP program matters as well. If you write a program and it cant seem to do basic math correctly, reboot the robot and the compiler on the robot will recompile the program and re-instantiate the variables. you might notice this on changing the representation of positions from Cartesian to Joint. occasionally i will change the representation and the robot will throw up an alarm stating that there is not enough memory allocated to the kinematics to complete the operation and prompts me to reboot. once i do it works fine. I think this same thing happens with the math, but instead of prompting that there is a problem, it just tries its best. 8.10/02 had a big problem with doing that. i haven't seen it much since though.

    yeah, it was a two year process, though i was part of an authorized integrator so we had some special considerations. we took the electrical course the same week we did the certification. Electrical in the morning and from 8:00-15:30 and 16:00 - 23:00 we would do the cert course. i get the impression that Fanuc does not want to do that any more. cant imagine why. The cert course was an overview of everything that an integrator should know aside from the robots themselves. how to navigate the CRC and who to talk to about parts ect. Fanuc really just wants to know that if they give you their seal of approval that you are not going to go out and embarrass them. That being said, the exam was not easy of the three of us who went, we tested for 18 certifications, and only got 10. R30iA Electrical, ARC Mate120iC Mechanical, HandlingTool, ARCTool, PalletTool, Karel That was still considered a good result. For us it was a great opportunity to meet the Fanuc guys at Rochester Hills and grab some business cards. Now if i need help, i can drop a few names and move up the food chain pretty quick.


    you should consider the cost involved before undertaking this. unless you strike a deal with Fanuc that is at least 4 week long courses at top dollar, plus expenses and lost time. I would have a deal carved in stone before i got started.

    i suspect it will get fixed in an auto update. 8.30/03 does not let me even run that program. i cant even view the variable in roboguide either. i didnt try in karel yet, but after it reboots it must update the mask itself as i can modify the ref pos from the menus.

    you might be having trouble getting information from them right now because they are changing the requirements. the guy who ran the whole process for the last 15 years or so just moved to a different department. in the past at a bare minimum engineers were required to take TPP Programming, Advanced TPP Programming, a Mechanical and Electrical course, and a week long certification course with a 14 hour examination.

Advertising from our partners