Posts by mts04a60

    Fanuc s430-iW industrial robot arm

    Has been used for the past 4 years as a 3d printing robot.

    As featured in the Massive Dimension MDPE2 promotional video:

    RJ3 controller:

    - 16 digital inputs

    - 16 digital outputs

    - 16 analog inputs

    Controller options/add-ons:

    - ASCII upload option (automates conversion of ascii-readable program files in .LS format into the required .TP format)

    - TCP speed prediction option

    - Remote TCP option

    - Custom KAREL script to automate loading/unloading parsed programs (for drip-feeding large program files, eg, CNC operations)


    contact if interested

    So with the RTCP being used it should calculate the speed of the tool center point across the workpiece, so it should be more controllable. It has been quite some time since I did that with Fanuc but I seem to remember you just add the RTCP tag to the move instruction.

    RTCP seems to fix the problem.

    Yes, it's just added to the motion instruction line after the termination setting, eg, "L P[1] 20mm/sec CNT100 RTCP".


    Linear speeds only affect XYZ movement, not rotation about them. For example, if you have two points with the same XYZ co-ordinates, but with a 180 degree rotation, the linear distance between them would be 0. Any adjustment made to the linear speed will be a moot point, because the robot is not moving the TCP in XYZ, only about them. It looks like from your picture that you have several hundreds or thousands of points on your path, which would mean that the linear difference between them would be very small.

    There are a few things you can do to actually get real linear speed, but the easiest place to start would be to specify the speeds in degrees per second, or as a timed move in seconds. I don't know your process, but if surface speed is important, you will need to do some calculations for this to work.

    Makes sense. I keep forgetting that there is a difference between the tool path and the robot's motion to follow such path. So yes, where the robot only needs to rotate (eg, orientation change), the linear motion speeds are moot. Where linear robot motion is required (eg, location change), linear motion speeds are followed.

    In theory I can isolate the parts of the path where rotation dominates and call out speeds in degrees per second, etc, but not without a disruption to the current workflow. So hopefully the RTCP method can solve this issue...

    You should be using RTCP.

    Fortunately J624 Remote TCP was an authorized but uninstalled option for this controller. I just now installed it, and will now go through RTCP setup. Not familiar with motion instructions using RTCP - any differences? - but hopefully can figure this part out.

    Thanks all for the help.

    Fanuc S-430iW / RJ3 controller running HandlingTool v5.30-3G.

    [Screenshot attached showing end of arm, motion path (green with white normal vectors) and the static dispenser.]

    This is an old robot being re-purposed in a dispensing application where the arm holds the part (a cylinder) so that the cylinder axis is co-linear with the J6 axis. The dispenser is static and oriented vertically. The motion path is imported from Rhino via RoboDK is assigned linear motion with speeds of 20mm/sec at each point. Where the overall motion path is predominantly linear, actual speeds seem to track with programmed motion speeds. However, where the motion path is dominated by J6 rotation, motion speeds are way too high. It seems to run at max joint speed here. The dispenser is more or less fixed output so faster motion results in under-application (or non-application) where the motion speed is too high.

    I've flipped $PARAM_GROUP[1].$spin_ctrl from 0 to 1 but didn't observe much (if any) difference.

    Any insight into how to control motion speed here is greatly appreciated.



    I am trying to set up a dispensing application where the dispenser is fixed/static (and oriented vertically) and the arm (Fanuc S-430iW with RJ3 controller running v5.30-3G) is holding the part. The part is a 6" diameter cylinder and the dispensing path is essentially a helix that wraps around the cylinder multiple times. Part/cylinder would be held so that its axis is co-axial with J6. Motion speeds are in the range of 20-30mm/sec. I am using RoboDK to simulate/program and pulling in path points and normal vectors from Rhino.

    A single turn works fine. But when trying to add points beyond a single turn the simulation fails (points not reachable). In theory just need J6 to continue turning while advancing the cylinder linearly back and forth along the axis of rotation. But in practice cannot get J6 rotations beyond 180/-180.

    Any insight to a possible solution is appreciated.


    Hello all,

    I'm looking for bids to write and compile a KAREL program that would essentially do the following:

    copy file n1 from MC
    execute file n1
    simultaneally copy file n2 from MC
    when file n1 is finish delete it
    run file n2
    simultaneally copy file n3 from MC
    and so on...

    I have an old arm + RJ3 controller with 500kb storage that has been re-purposed for 3D printing. Jobs are often 100,000+ points hence files of 5-7Mb are not uncommon. Am currently working around the storage limits by manually executing the above procedure (painful).

    If you are interested and have any questions please contact me at



    I did not officially re-license, but I did upgrade the controller and added the ASCII upload option. Now I can by-pass the maketp.exe method of converting programs to a .tp format and directly load .ls files to the controller, which is nice.

    Basically I went through a (very friendly) local integrator and they were able to leverage their relationship with Fanuc to by-pass the re-license fee.


    Anyone have experience using RoboDK with an RJ3 controller? I'm using a trial version at the moment and haven't been able to get it to create a .TP program despite following the directions in the RoboDK documentation.

    Controller is not installed with the ASCII upload option, so am leveraging the maketp.exe functionality of WinOLPC after creating a work cell in Roboguide (V8, rev M, also a trial version) for my robot (S-430iW).

    But for some reason, am getting error messages in RoboDK when trying to create a program. Screen shots attached.

    Anyone had success?



    Robot newbie here. I've essentially been given an old s-430iW that was gathering dust at my employer, and am now going through the re-license process with Fanuc.

    A couple of questions:

    1. My understanding is that all installed options on the controller are essentially lost once it's been re-licensed. Meaning if I want things that are already on there, I'd need to buy them. Correct?

    Currently installed (via STATUS/Version ID on teach pendant):

    English dictionary
    Fanuc Handling tool
    Kernel Software
    Basic Software
    Karel run-time environment
    Robot servo code
    s-430iW floor maintenance
    Macros, skip/offset
    Hour meter
    Position registers
    Program number selection
    Floppy connection
    TCP auto set
    Cycle time priority
    CE mark (pretty sure I don't need this as I'm not in Europe)
    Controller back-up
    Error recovery
    Soft limit

    Would I lose all of the above unless I specifically request they be added back on?

    2. I'm being offered a 25% discount on the first order (ie, this one). I've had them quote the ASCII upload option so I can load .LS files on the controller and have them converted to .TP files. My plan is to use 3rd-party (not Fanuc) software for offline programming (.LS files), ultimately to become a large-format 3d printer. Given the use as a fabrication-robot... any recommendations for Fanuc options I might want to add up-front so I can benefit from the discount?

    Any insight is appreciated.