1. Home
    1. Dashboard
    2. Search
  2. Forum
    1. Unresolved Threads
    2. Members
      1. Recent Activities
      2. Users Online
      3. Team Members
      4. Search Members
      5. Trophys
  3. Articles
  4. Blog
  5. Videos
  6. Jobs
  7. Shop
    1. Orders
  • Login or register
  • Search
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Blog Articles
  • Products
  • More Options
  1. Robotforum - Support and discussion community for industrial robots and cobots
  2. Forum
  3. Industrial Robot Support and Discussion Center
  4. Fanuc Robot Forum
Your browser does not support videos RoboDK Software for simulation and programming
Visit our Mainsponsor
IRBCAM
Robotics Channel
Robotics Training
Advertise in robotics
Sponsored Ads

Fanuc Robot Issues (Newbie)

  • foffulaRob
  • June 22, 2022 at 9:50 AM
  • Thread is Resolved
  • foffulaRob
    Reactions Received
    3
    Trophies
    3
    Posts
    46
    • June 22, 2022 at 9:50 AM
    • #1

    Goodmorning,

    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 :

    Config.dat

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

    ; 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

    JobDataRequest=TRUE

    REPEAT

    ; Data echo to PLC

    JobDataEcho=JobData

    Dest=JobData

    UNTIL JobDataConfirmed

    JobDataRequest=FALSE

    JobDataEcho=0

    END

    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.

  • hermann
    Reactions Received
    407
    Trophies
    9
    Posts
    2,611
    • June 22, 2022 at 12:50 PM
    • #2

    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.

  • Fabian Munoz
    Reactions Received
    133
    Trophies
    9
    Articles
    1
    Posts
    1,517
    • June 22, 2022 at 12:55 PM
    • #3

    5 I use *.IGS

    Retired but still helping

  • Online
    DS186
    Reactions Received
    200
    Trophies
    6
    Posts
    1,072
    • June 22, 2022 at 1:07 PM
    • #4
    Quote from hermann

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

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

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

  • foffulaRob
    Reactions Received
    3
    Trophies
    3
    Posts
    46
    • June 22, 2022 at 1:57 PM
    • #5

    Thank you all for the answers.

    Quote from hermann

    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

    Quote from Fabian Munoz

    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?

    Quote from DS186

    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)

    Edited 3 times, last by foffulaRob (June 22, 2022 at 2:16 PM).

  • JeffBO
    Reactions Received
    3
    Trophies
    2
    Posts
    13
    • June 22, 2022 at 2:53 PM
    • #6
    Quote from foffulaRob

    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.

    Hi,

    You can increase the limit of 200 registers :

    Controlled start > Menu > Program Setup > Numeric registers

    I set up the limit to 1000 on all my robots.

    Hope this helps.

    Jeff

  • HawkME
    Reactions Received
    568
    Trophies
    11
    Posts
    3,268
    • June 22, 2022 at 3:13 PM
    • #7

    Argument registers are local but only can be used as inputs to the called program. There are no return values.

    Points are local but PRs are global.

    Separate arrays are not possible, but it is common to reserve a block for that purpose, just make sure to comment well.

    Each file you import to RoboGuide will become a single object.

    Also you may need interested to know that Registers are dynamically typed as either 32 bit Int or 32 bit float.

    For better or worse Fanuc has chosen to keep their TP programming setup fairly basic. I would not just jump into Karel if not need, but instead suggest you get used to the Fanuc TP way.

  • foffulaRob
    Reactions Received
    3
    Trophies
    3
    Posts
    46
    • June 22, 2022 at 3:22 PM
    • #8
    Quote from JeffBO

    Hi,

    You can increase the limit of 200 registers :

    Controlled start > Menu > Program Setup > Numeric registers

    I set up the limit to 1000 on all my robots.

    Hope this helps.

    Jeff

    Display More

    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!

    Quote from HawkME

    Argument registers are local but only can be used as inputs to the called program. There are no return values.

    Points are local but PRs are global.

    Separate arrays are not possible, but it is common to reserve a block for that purpose, just make sure to comment well.

    Each file you import to RoboGuide will become a single object.

    Also you may need interested to know that Registers are dynamically typed as either 32 bit Int or 32 bit float.

    For better or worse Fanuc has chosen to keep their TP programming setup fairly basic. I would not just jump into Karel if not need, but instead suggest you get used to the Fanuc TP way.

    Display More

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

  • Online
    DS186
    Reactions Received
    200
    Trophies
    6
    Posts
    1,072
    • June 22, 2022 at 3:33 PM
    • #9
    Quote from foffulaRob

    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)

    Check this thread for more information on local registers.

  • Fabian Munoz
    Reactions Received
    133
    Trophies
    9
    Articles
    1
    Posts
    1,517
    • June 22, 2022 at 3:56 PM
    • #10

    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,

    Retired but still helping

  • foffulaRob
    Reactions Received
    3
    Trophies
    3
    Posts
    46
    • June 22, 2022 at 4:40 PM
    • #11
    Quote from DS186

    Check this thread for more information on local registers.

    Understood. Thank you.

    Quote from Fabian Munoz

    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?

  • Fabian Munoz
    Reactions Received
    133
    Trophies
    9
    Articles
    1
    Posts
    1,517
    • June 22, 2022 at 5:32 PM
    • #12

    Sorry but you have to be more specific. What is the "whole thing"

    I don't rebuild anything.

    If I want an obstacle I Add and obstacle from Single CAD file, same with parts

    If I want a tool. I just go to robot UTOOL and I loaded from a file

    If I want a part on the gripper, I select the robot tool, select Parts tab and added

    Lets say you want a conveyor with pallets. You can ask for one single object with both of them or separated and you "build" It's t your convenience. You might even want both cases (together and separated)

    Retired but still helping

  • HawkME
    Reactions Received
    568
    Trophies
    11
    Posts
    3,268
    • June 22, 2022 at 7:34 PM
    • #13

    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.

  • foffulaRob
    Reactions Received
    3
    Trophies
    3
    Posts
    46
    • June 23, 2022 at 8:26 AM
    • #14
    Quote from Fabian Munoz

    Sorry but you have to be more specific. What is the "whole thing"

    I don't rebuild anything.

    If I want an obstacle I Add and obstacle from Single CAD file, same with parts

    If I want a tool. I just go to robot UTOOL and I loaded from a file

    If I want a part on the gripper, I select the robot tool, select Parts tab and added

    Lets say you want a conveyor with pallets. You can ask for one single object with both of them or separated and you "build" It's t your convenience. You might even want both cases (together and separated)

    Display More

    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.

    Quote from HawkME

    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.

Advertising from our partners

IRBCAM
Robotics Channel
Robotics Training
Advertise in robotics
Advertise in Robotics
Advertise in Robotics

Job Postings

  • Anyware Robotics is hiring!

    yzhou377 February 23, 2025 at 4:54 AM
  • How to see your Job Posting (search or recruit) here in Robot-Forum.com

    Werner Hampel November 18, 2021 at 3:44 PM
Your browser does not support videos RoboDK Software for simulation and programming

Tag Cloud

  • abb
  • Backup
  • calibration
  • Communication
  • CRX
  • DCS
  • dx100
  • dx200
  • error
  • Ethernet
  • Ethernet IP
  • external axis
  • Fanuc
  • help
  • hmi
  • I/O
  • irc5
  • IRVIsion
  • karel
  • kawasaki
  • KRC2
  • KRC4
  • KRC 4
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • robodk
  • roboguide
  • robot
  • robotstudio
  • RSI
  • safety
  • Siemens
  • simulation
  • SPEED
  • staubli
  • tcp
  • TCP/IP
  • teach pendant
  • vision
  • Welding
  • workvisual
  • yaskawa
  • YRC1000

Thread Tag Cloud

  • abb
  • Backup
  • calibration
  • Communication
  • CRX
  • DCS
  • dx100
  • dx200
  • error
  • Ethernet
  • Ethernet IP
  • external axis
  • Fanuc
  • help
  • hmi
  • I/O
  • irc5
  • IRVIsion
  • karel
  • kawasaki
  • KRC2
  • KRC4
  • KRC 4
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • robodk
  • roboguide
  • robot
  • robotstudio
  • RSI
  • safety
  • Siemens
  • simulation
  • SPEED
  • staubli
  • tcp
  • TCP/IP
  • teach pendant
  • vision
  • Welding
  • workvisual
  • yaskawa
  • YRC1000

Tags

  • fanuc programming
  • LR Mate 200iD
  1. Privacy Policy
  2. Legal Notice
Powered by WoltLab Suite™
As a registered Member:
* You will see no Google advertising
* You can translate posts into your local language
* You can ask questions or help the community with your knowledge
* You can thank the authors for their help
* You can receive notifications of replies or new topics on request
* We do not sell your data - we promise

JOIN OUR GREAT ROBOTICS COMMUNITY.
Don’t have an account yet? Register yourself now and be a part of our community!
Register Yourself Lost Password
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on Google Play
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on the App Store
Download