Posts by DuhbCakes

    you will have to create a undefined array variable and then use the the KCL CREATE VAR command to build it. refer to the Karel Manual 2.5.2 Variable sized arrays.

    there is a search function on teh robot's web browser. you can log into the robot via a PC or via the teach pendent.

    the array size needs to be set by the controller to exceed the original number of PRs. the default is 100. I know for 30iA and 30iB you can change this in controlled start via the program setup screen. it also allows you to bump up the number of user frames and such. the robots i have already have the extended frames, and extended data options installed, but the default settings are no different. Keep in mind that all that takes up memory, and some older robots will need a hardware upgrade.

    i have not worked with the IO Link so i could be off base, but i bet you could get what you want with an Anybus module from HMS. They have a couple of different setups, but with a little programming you can convert most common communication protocols to another. i used my to go from EIP CIP to RS232.

    you can add, remove or modify password level access via an XML config. basically you can make it so that menus are not visible. check out MAROBHT8203131E (handling tool manual) i think that spot-tool and arc-tool should have it somewhere in there as well.

    interference check has some stuff that might work for what you want, but it based off of the TCP of the robot. i cant think of a way to do what you want though Karel without recreating the kinematics for each model. Fanuc did not release any karel built-ins to accompany DCS.

    provided that your robot is new enough, say R30iA, R30iB or the last runs of the RJ3iB. you would have access to the Ethernet I/P CIP library. this allows you to talk to other compliant devices. most modern manufacturers have some model that can handle it. (except for DMG screw those guys) It provides a single universal and flexible network that can use existing networks and can co-exist with data networks. this brings network topology into the picture as a potential problem that needs to be addressed if it is a large system. There are some scan time issues associated with using EI/P but for most devices are easily ignored, i cant give you a simple number since the problem scales with the amount of traffic that each device is dealing with. The open network allows for multicast devices that can be monitored by multiple devices at once, (normally limited by their MaxConnections/2).


    On the robot side it gives you a lot of cool things. for starters you can map your UOPs though Ethernet IP. the only things you cant map through Ethernet are DCS signals (and with SafeEthernetIP you can do that as well at the low cost of 40% of your DCS clock cycles) there is a pretty comprehensive webpage on the robot that you can access though your browser. this lets you modify vision on your PC. The robot also supports FTP and SMTP, Socket messaging, DHCP, PPP, Telnet, and SNPX. i have been able to source digital/analog I/O blocks that communicate though ethernet i/p that work great. (adc on the field device). as far as getting diagnostics off of the robot, there are some options that let you monitor some of that stuff, i believe process monitor has some of that built in. but you can get static information right off of the website. if you think of the robot as a purpose built PC then you can do whatever you imagine. with enough hard work.


    they have a industrial PC interface that i have never worked with that might have some of what you want already built into it.

    soft-float makes the robot 'adjustable', and by that i mean that once soft-float is enabled you could grab the robot by J6 and move it around by hand. The robot will continue to monitor its position and once soft-float is disabled it will take off again from its new position. this is useful if you have a robot that needs to follow a press break or center up on a chuck. some external force will move the robot within limits set up before hand.


    force sensor is a plate that is installed on the wrist between the J6 and your EOA. it has a lot of transducers on it and is very sensitive. if you engineering is done right, (check the specs on the sensor as they are very specific) the robot will be able to compensate for small alignment error. think putting a slip fit pin into a bushing. off the top of my head i want to say ~.003" clearance. this process is not super fast, but it does let the robot take over some tasks that were previously exclusively for human hands.

    servo timeout is another possible cause. if you are waiting for too long the robot will by default shut down the servo to save power, and it takes a noticeable amount of time to kick it back on again.


    try fooling around with the system variables to see if it improves your problem.


    $PARAM_GROUP[1].$SV_OFF_ALL
    $PARAM_GROUP[1].$SV_OFF_ENB[1-9]
    $PARAM_GROUP[1].$SV_OFF_TIME[1-9]


    you can try motion commands above ACC100 as well. you will need to override the default maximum from the config screen.

    since you actually have a SOP User PB#1, i assume you have a B-Cabinet R-30ib, R-30ia, or you have an Rj3iB or earlier controller. the pipeline robots now dont even have the buttons on them, or a remote/local key. you are correct the SO[5] and SO[6] do control the LEDs. as you have noted there is nothing in the mix logic that lets you set them directly. If you have an old enough robot, then you have the Karel option and you can force the I/O.


    Program PB1_ON
    %NOLOCKGROUP
    %COMMENT = 'User Led 1 ON'


    Begin
    OPOUT [5] = ON
    END PB1_on


    Program PB1_OFF
    %NOLOCKGROUP
    %COMMENT = 'User Led 1 OFF'


    BEGIN
    OPOUT [5] = Off
    END PB1_OFF

    you could use a monitor program.



    PROGRAM = MAIN


    MONITOR CH_NO_T1


    L P[1] 1000mm/sec FINE
    DO[1]=ON
    WAIT DI[1]=OFF
    DO[1]=OFF
    L P[2] 1000mm/sec FINE


    ENDMONITOR CH_NO_T1
    END



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


    PROGRAM = CH_NO_T1


    WHEN (SO[7] OR !SI[8] OR !SI[9]), CALL ALRM_T1
    END


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


    PROGRAM = ALRM_T1


    LBL[1]
    IF(!SO[7] AND SI[8] AND SI[9]),JMP LBL [999]
    UALM[1]
    MONITOR CH_NO_T1
    LBL[999]
    END

    has anyone figured out how to program around uninitialized AR[]s in TPP yet? i have been looking though system variables from time to time over the last couple of years to see if they are saved anywhere that i can access. in Karel you can check a if a variable has a value in it with the IF UNINIT(variable) built in. it would be nice to call a sub program with an argument that has a default value.

    there are a few files much like that one that are included with the WinOLPC install (roboguide as well) if you wish to use the constants included in those files simply include it in your programs header


    PROGRAM Vectr
    %NOBUSYLAMP
    %NOABORT = ERROR + COMMAND + TPENABLE
    %NOPAUSE = ERROR + COMMAND + TPENABLE
    %COMMENT = 'Vector from PR[AR1]'
    %ENVIRONMENT Regope
    %ENVIRONMENT Vectr
    %INCLUDE KLEVKEYS.KL


    VAR

    Default settings are pretty sparse. level 3-7 are exactly the same except for setting priority. if you want to change the access settings you will need to generate an XML file that has all of the permissions set it in. Mostly what password protect does is simply keep different menus from being displayed.

    we had speced out a job doing this with only two fanuc robots. the project never got off the ground as power distribution to the second robot was going to be a problem. we had the added complication of wanting to pick up and put down the small robot. with clever use of bus bars we would have been able to do it and fanuc was on board as well. it just would have cost more than the GDP of most small nations. projects i have seen to completion have had 3 robots on 1 controller with a total of 19 axis for welding. i imagine that any major robot manufacturer would be happy to have youtube videos of their robots doing this out there. i would call around.

    looks like your macro table no longer has that program on it. the macro may still exist, but in order to execute it from a program using the MACRO command it has to be mapped.


    MENU-SETUP-MACRO


    this is your macro table. go to the program column and select a macro. to the right of that is '--' click on that and it will give you a drop down of different trigger signals.


    MF - manual function (will appear in the manual function list MENU-MANUALFUNC)
    DI - digital input (only works in AUTO)
    RI - robot input (only works in AUTO)?
    UI - User Input (UI[7:Home] has not pre-programed function and can be mapped here)
    F - Flag
    M - Marker
    UK - User key
    SU - Shift User Key
    user keys are the teach pendent keys. on the handling tool ipendents: (welding ones have wire feed, i'm sure other variants exist)
    1: Tool 1
    2: Tool 2
    3: Move Menu
    4: Set Up
    5: Status
    user key and shift user key require the teach pendent be turned ON unless the variable $MACRTPDSBEX=TRUE.



    the other option is to simply use the CALL statement in your program.

    looks like a dispense tool operation combined with the NC program converter. Dispense Tool is a software suite from Fanuc that interfaces with the extruder to give the right type of motion to corner properly and maintain the right feed rates to keep the bead consistent. i have not worked with the NC converter, but it in essence allows the robot to take CNC Mcodes and convert it into a robot point cloud. there are several 3rd party versions of that software that someone else could probably fill you in on.

    prepare to get into a fight with your network administrator. Fanuc makes robots, but when it comes to webpages they couldn't program their way out of a wet paper bag. the robots pretty much exclusively work with windows explorer provided that you have disabled all of your security options. if you have iRvision on the robot and want to do your training from the PC you can find the steps required to set it up in the iRvision Operator manual.


    i want to say that since the RJ3ib controller the robots have had two ethernet ports. you can use either one, but they must be configured to different subnets. if you want to create a network for other devices you will need a switch.

    Not all devices require any header bits. a few field modules do, for example the Turk field BL20EIP blocks require 32 bits for communication and anything after that (starting on bit 33) would be the IO carried by the signal. The PRIO-230 error normally means something is setup wrong on the EthernetIP page. if you have any unused connections that you were fooling around with while trying to get this to work make sure you set them to FALSE. otherwise the robot will continue to broadcast on the network to try and establish the connections.


    another tip about the setup page:


    OFFLINE - connection is set to FALSE
    ONLINE - connection is set to TRUE but there is not communicating properly
    RUNNING - connection is set to TRUE and communicating properly
    <RUNNING> - connection is set to TRUE and communicating properly. with the auto reconnect option enabled. (advanced tab in the config)

Advertising from our partners