Ok. sorry for the late answer.
I figured it out how to use it. I needed also to make the move in position to keep it active.
Many thanks as always for the help.
Ok. sorry for the late answer.
I figured it out how to use it. I needed also to make the move in position to keep it active.
Many thanks as always for the help.
Good morning.
I have a problem with torque control. I'm not sure I fully understand how to use it.
I have a KR 10 R900 with a compact KRC 4, KSS v8.6.
In my process there is a point where I go to pick up a component with the gripper of my robot. The component is held in a socket which when released rises slightly (mechanically).
When I reach the position to be picked up and close the robot gripper, I have to wait for the component to be unlocked. When unlocked, the robot is pushed a little higher than its original position by the mechanical system that held the component.
Since this process happens every cycle, I thought it would be a good idea to try using torque control so not to damage the robot in the long term.
I've tried using "SET_TORQUE_LIMITS(1,{lower "value", upper "value", monitor #off})" and "RESET_TORQUE_LIMITS(1)" in the past and it worked when I needed to move the robot to a position without force it.
But now it's the opposite situation, where an external force pushes the robot.
How should I use it in this case?
I just need, if possible, some theoretical advice on how to do it, then I'll do some testing myself.
Thanks in advance for the help.
I moved your post into a new thread since it is a new unique question.
I see. I marked as resolved the other post.
I'm not 100% sure, but I don't think it is possible to change the character limit.
Me neither at this point. I tryed to look everywhere...
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?
Display MoreSorry 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)
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?
Display MoreHi,
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
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!
Display MoreArgument 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.
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)
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.
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.
Goodmorning,
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.
Now I understand. i will do other tests but first of all i think I will have to study it a little more. A thousand thanks.
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?
ex:
SPL PointPiattina1Off[3] WITH $VEL.CP = 0.05 , $APO.CDIS=50
Goodmorning.
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:
SPLINE WITH $VEL = SVEL_CP(2.0, , LCPDAT1), $TOOL = STOOL2(FS1), $BASE = SBASE(FS1.BASE_NO), $IPO_MODE = SIPO_MODE(FS1.IPO_FRAME), $LOAD = SLOAD(2), $ACC = SACC_CP(General1), $APO = SAPO(General1), $ORI_TYPE = SORI_TYP(General1), $CIRC_TYPE = SCIRC_TYP(General1), $JERK = SJERK(General1), $COLLMON_TOL_PRO[1] = USE_CM_PRO_VALUES(0)
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]
ENDSPLINE C_SPL
You could change the properties of every module (src, dat) in read-only. In this way you can see inside it but not modify it.
By mastering tool do you mean specify the tcp of each tool?
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?