Posts by Chipprogr

    Hi ,

    In Karel, i once in awhile will come across an language instruction that looks like this :: in the code. I cannot seem to find this anywhere in the karel manual and wondered if someone could please answer what it does.

    Here are some examples of its use. These snippets are from some modbus socket messaging code running on a RJ3ib controller.

    IF (debug > 1) THEN; WRITE('bc = ', bc::3::16, cr); ENDIF

    -- Read the Reference
    READ file_var(ref::2)

    -- Send Response!
    header[6] = 6
    WRITE file_var(header[1]::1, header[2]::1, header[3]::1, header[4]::1, header[5]::1, header[6]::1,
    header[7]::1, fc::1, ref::2, wc::2)

    IF (debug > 3) THEN
    WRITE('pr_value.x = ', pr_value.x::6::2 , cr)
    WRITE('pr_value.y = ', pr_value.y::6::2 , cr)
    WRITE('pr_value.z = ', pr_value.z::6::2 , cr)
    WRITE('pr_value.w = ', pr_value.w::6::2 , cr)
    WRITE('pr_value.p = ', pr_value.p::6::2 , cr)
    WRITE('pr_value.r = ', pr_value.r::6::2 , cr)

    Thanks much -Eric

    Or use UOP controls and have a PLC sense the TP on output and then drop the enable or hold input. That should stop it dead in its tracks. Without testing to be sure, I dont think you can even jog if those inputs are off.

    Movement is a linear move at 2000mm/sec spanning the distance of about 1500mm from point A --> B. Only occurred at 10% TP speed, at higher speeds it went away and the real concern is why it damaged the sysvar file when I had to power off. No Acc overides or other motion modifiers in play other than a NODECEL statement. Karel programming . The move faults out after about 80% of the move is completed.

    Thanks for the help. -Eric

    I need help please. I was working with an older RJ3 controller today and with the robot slowed down to 10%, i would occasionally get this error. It then says " to recover, power controller off". When I did, the TCP data recorded in the variable list Group/UTOOL =recorded went to all zeros. It was like the controller glitched. After i copied back in a sysvar file (controlled start) the TCP data was restored and the error would still happen. IF i increased the speed on the teach pendant to >25% , i wouldnt get the error anymore...

    Any idea what would throw this error?

    Thanks -Eric

    I always get just a bare EE plug and solder up whatever I need to it. I then terminate it into a hoffman box on the arm somewhere with a terminal strip mounted inside. Easy as pie. You just have to understand that some robots are sourcing outputs, while other older ones are sinking.

    Long day and from memory, but I believe you press I/O, F1 , Select cell setup, check if it got unassigned from the DO# -digital outputs.

    There are differences in the number of bits and inputs. The AAD04a is a 4 input 0-10vdc or 4-20ma current loop type input card. I use them with ultrasonic sensors for distance measuring. Basically, the fanuc part # is A03B-0807-C051 , but we know them as AAD04A cards.

    Hope this helps -Eric

    I had this before and it took Fanuc a week to get me an answer. It was because the intelligent space check feature was added as an option after the robot library was installed. I do believe the fix was to reinstall the mechanical arm library file through the software installation procedure and it will go away.

    Good luck -Eric

    The R30ib has a power consumption meter of some sort, have never really paid attention to it. Otherwise, to calculate it will be almost totally inaccurate because it depends on speed of moves, payload, torque from leverage of each many variables. You might consider doing some sort of clamp on amp metering of the incoming AC lines and data log them over time during a normal production run.

    Hope this helps -Eric

    Hi as2 ,

    Yea, even FANUC doesnt know. I guess all those people from years ago are either fired, retired or dead. I work with them all the time. There is a plant i service for that has several still in production.

    What can I help you with? I write KAREL alot.


    Hi everyone.

    I am (today) writing some programs for an older RJ-2 controller ver 4.31 something. In newer TPE programming, we can pass arguments to the called routine.. example.. CALL prog(600,5,3) and this would populate AR[1]=600, AR[2]=5 and AR[3]=3 for the program called. In the RJ-2, I think arguments are unsupported. What info can you provide ? I also cannot find any mention of it in the handling tool ver4.40-1 manual I have handy.

    Thanks -Eric

    Thanks GEFANOC_CRASH28 but as posted

    I want to use this info for a sort of force sensing so the robot can use this to learn its environment.

    Cunaf, Leopard -> Thanks! Thats exactly what i want to do. This application is a material handling that places a product on an angled backed skid. The tooling has several touch switches on the end to auto sense the depth of the skid and for where the W & P angles are against the back of the skid. Currently it is operator recipe controlled for the Z(height) and R values. I want to use the torque current monitoring to let the robot figure out its own product deposit height and rotation needs.

    The controllers are all Rj3 up to R30ib. Its alot easier to make money selling engineering work when you dont have to spend alot on force sensing options that are way more precise than I need.
    Thanks again!

    Hi gang,

    Under the menu/status/axis menu there is the ability to monitor current disturbance torques for each joint. I thought I could find this under the DMR_GRP but I cannot locate it. Anyone have any info for me? I want to use this info for a sort of force sensing so the robot can use this to learn its environment.

    Thanks --


    Don't quote me on this, but i think the only real difference is the overlay on the front. Some have overlays for material handling where others have buttons that list welding functions.

    This was my experience in searching for a replacement to an older RJ3 robot.

    Hope this helps -Eric

    Hi swmobrad,

    The problem is that you are using an IF instead of a WAIT . At the time the code gets to the if statement, the condition is not true so it never calls the ROBO_IN, it just goes to the next code. This is exactly how an IF statement works.

    try using a wait DI[:14]=on

    Hi steven.roy ,

    In KAREL there is a command to check for unit data and then you can do stuff to change that like initialize it with a default value. I am not aware of a command in TPE that allows checking this condition.

    PMC -> uninitialized data is totally empty and will cause a program crash. 'zeros' are considered valid data and so the test for an uninitialized PR will not yield desirable results.

    Hope this helps!