Posts by foffulaRob

    Good morning.

    I tried to increase the number of USER ALARM (from Controlled start > Menu > Program Setup > User Alarms) and I succeeded. Now I would like to increase the number of characters. Is it possible?

    Sorry, i explained it bad. I do understand now what you guys mean. I was worried that if i export the part one by one, during the import in robotguide they would have fall in random position. If as HawkMe said "If the exported CAD files all share the same origin, then they will fall in place correctly", then i should not have any issues. Thank you.

    If the exported CAD files all share the same origin, then they will fall in place correctly. You must make sure they are exported from the same assembly, not individual part or sub-assemblies.

    I'll try, thanks.

    Check this thread for more information on local registers.

    Understood. Thank you.

    First of all, we work with Solidworks

    Our engineering creates a solid model of everything I ask

    Usually it a model of the tool (no part), a part, a pallet. Basically all the components separated and I put them together,

    So basically when you import, you have to "rebuild" the whole thing on robotguide?

    I don't know if i will use all 200 registers yet, but i'm pretty sure i will be close to it, at least. This is actually very useful and gives me relief. Thank you!

    Ok, that's clear now. I will try to focus sorely on TP programming. I got not enough time probably anyway ;( . Thank you very much.

    Thank you all for the answers.

    Following statements are valid for TP programming, Karel is another case.

    1. There are no local variables, you have to use registers

    2. You can use the index to a register and change this register in your subroutine.

    3. There is one big array of registers, one big array of PR...

    4. Karel can help, but has different different issues. Without source code you are screwed up if you want to change something, no way back from compiled code. You shouldn't use it for movements. Debugging is a pain.

    2. I have no other options. I will do it in that way. The only problem is that if i need more than one variable, for just that i have to burn a "Register" variable every time, and i have just 200. In the end it looks like you have to do most things with "Registers".

    3. I wanted to have separate array. I guess that is not possible

    5 I use *.IGS

    i tried to do it with a .obj. The guy that provided me the 3d cell made a file of all the cell and i tryed to load that. It was complete but it was a single big block in the robotguide (so i could not use anyting because i could not select anything but the whole thing). When you export your file do you have something to say that that file must stay split in parts like before the export?

    If you have a controller with software version v9.40 you can use local Registers, PRs and SRs.

    How do i know if it is local or not? After selecting "Registers" if i try to modify the variable and i select "List" it shows me the global variable. So how do i select local if it's enabled in my version? (v9.40 confirmed)


    I recently started programming Fanucs (specifically an LR Mate 200iD) after reading the 950 pages of the manual which gave me a lot of good information. Since I come from experiences with KUKA and ABB, the Fanuc world has left me a little perplexed about some things.

    I am going to illustrate my doubts so far. Perhaps by programming, others issues will come.

    1- There are no local variables?

    I could not understand if in the basic programming of Fanuc i cannot declare "local variables" to be used exclusively within the subroutines. Is it always necessary to use the "Registeres"?

    2-Can't you use AR [] (argument) in the output of a subroutine?

    To give an example, I would need to write this code taken from a KUKA that has done the same job that my Fanuc will have to do:

    From KUKA :



    ; INPUT

    SIGNAL JobDataConfirmed $IN[19]

    SIGNAL JobReq $IN[20]


    SIGNAL JobData $IN[41] TO $IN[48]

    ; OUTPUT

    SIGNAL JobDataRequest $OUT[19]


    SIGNAL JobDataEcho $OUT[41] TO $OUT[48]------------------------------------------------------------------

    GLOBAL DEF WaitData(Dest:OUT)

    DECL INT Dest

    WAIT FOR NOT JobDataConfirmed



    ; Data echo to PLC



    UNTIL JobDataConfirmed




    To Fanuc: ?

    Very simple but if I can't use the "Argument" in output then I am forced to use a global variable ("Registers) for my "Dest" variable? I would like to avoid that...

    How would you do it?

    3- Do array exist? Can i make array of PR (Position Reg)?

    4- I know that there is the possibility of developing in Karel and I have already read something about it. Could this help me with the problems mentioned above? The additional software package

    (R632-Karel) should be purchased or is it given as a standard?

    5-Out of topic: In robotguide, if I want to import the work cell (and the program used to create the 3d cell is "Inventor") what is the extension that I need this file to be to import it correctly and use it?

    In conclusion, I would be very grateful if you could help me with these questions. Thanks for your time.

    Fast Update about the second problem i had (load data verification do not work) . I asked to KUKA service and In the end i just needed to delete the robot and replace it with a new one in the workvisual project. Downloaded the project all works fine now. Weird, but it works.

    That's all. Have a good day.

    Goodmorning guys,

    Thank you for the answers, you made it really clear. I' ll do more test to see if i will possibly have some problem. For the second problem i think i'll ask directly to kuka, it is really weird. Many thanks both of you! Have a good day.


    I have a couple problems, maybe you can help me.

    Controller: KRC4 - 8.6.6

    Robot: KR 70 R2100

    Loaddatadetermination: 7.1.2

    1) I tryed to determinate the load data of a fully loaded tool ( product gripped in the tool ). At the end of the procedure i tryed to assign the data and i received a message saying : "Assign load data despite overload? "

    I pressed yes and it was assigned. But still i dont understand why it came out. The maximum load of the robot is 70 Kg and the data are:

    {M 61.9051704,CM {X 71.3568192,Y 28.8014107,Z 300.520,A 48.6009941,B 88.1209564,C -131.597839},J {X 4.42782593,Y 5.86921501,Z 8.46680546}}

    What could be the problem?

    Does It means that somewhere at maximum speed or extension i might have trouble? It should not be, but i have no idea.

    2) I tryed on the same robot to activate the load data verification but i can't (picture 1). Same thing for all the tools , not just the one mentioned before . I don't know what should i do. Any idea?

    Thank you In advance.

    i'm asking this because i saw that there is a variable in the default structure that come up when you create a splineblock called APO_DIST. What is it refered to?

    EX: DECL LDAT LCPDAT2={VEL 2.00000,ACC 100.000,APO_DIST 500.000

    Nevermind guys...sorry, i got it now. One more question since i'm here. To change the approximation of the single line is it correct to change the $APO_CDIS or there is something different i can use?


    SPL PointPiattina1Off[3] WITH $VEL.CP = 0.05 , $APO.CDIS=50


    i started to use Spline blocks and i have some issue when i have to control the single speed or acceleration of the single "Spline movement".

    i don't understand why when i put in the single movement a different CP speed (EX: SPL PointPiattina1Off[3] WITH $VEL = SVEL_CP(0.50, , LCPDAT4)) it doesn't take it and keep using the default speed. i also tryed to delete the default speed of the Splineblock ( SPLINE WITH $VEL = SVEL_CP(2.0, , LCPDAT1) ) but nothing changed. I tryed to figured it out with the manual but i still don't get it. Any idea?

    this is an example of the code:


    SLIN PointPiattina1Off[1]

    SLIN PointPiattina1Off[2]

    SPL PointPiattina1Off[3] WITH $VEL = SVEL_CP(0.50, , LCPDAT4)

    SLIN PointPiattina1Off[4]

    SPL PointPiattina1Off[5]

    SLIN PointPiattina1Off[6]

    SPL PointPiattina1Off[7] WITH $VEL = SVEL_CP(0.50, , LCPDAT4)

    SLIN PointPiattina1Off[8]

    SPL PointPiattina1Off[9]

    SLIN PointPiattina1Off[10]

    SPL PointPiattina1Off[11]

    SPL PointPiattina1Off[12]

    SLIN PointPiattina1Off[13]

    SPL PointPiattina1Off[14]

    SPL PointPiattina1Off[15]

    SLIN PointPiattina1Off[16]

    SPL PointPiattina1Off[17]

    SPL PointPiattina1Off[18]

    SLIN PointPiattina1Off[19]

    SPL PointPiattina1Off[20]

    SPL PointPiattina1Off[1]


    The KRC.exe looks like is still running and the robot doen't move after the HMI crash, even if i keep pushing the advance button.

    In the end this is not a problem for my application if i close all the FOLD, but i think i will ask to the support. Just to know why it can happens.

    Thx for the replies.

    I honestly never tryed on older version. I tryed today again to be sure and the only message that come up is this one "Change of program run mode not yet active". I red the manual and i think that it's not related. I put a video. This is what happens to me. The pointer doen't even move to the ptp movement because i suppose it doesn't know how to manage it or it's just like the fold is considered closed?

    WhatsApp Video 2021-07-27 at 10.06.55.mp4


    I don't know where to post it ,so i will post it here for now. This post want to be an info thread, not a request for help (for once).

    In these days i'm using a KR 70 R2100 (KRC4) with firmware v 8.6.6.

    I found an issue when i DO NOT close (;ENDFOLD) a FOLD in a routine or if i have a ;ENDFOLD without opening a ;FOLD. In my case the KUKA_HMI.EXE crashs without alarms when, during a T1 mode execution of the program i try to change from continuos movement in step by step. It happens also if you have some ;ENDFOLD without an opening ;FOLD.

    I'm not sure about the information yet ,but if i close the folds in the routine it doesn't happens.

    Obviously it was my mistake not to have closed the fold.

    If it happens to you too, try to check your folds. I hope this will help if it is needed.

    Have a good day.

    Example Not works:

    GLOBAL DEF Routine()

    ;FOLD ---------- CODE----------



    Example works:

    GLOBAL DEF Routine()

    ;FOLD ---------- CODE----------