In roboguide go to controller properties > serialize robot > create as a modification of the existing robot. Then select TAST as an option. However, as dha and pdl said, this won't work on a real robot unless you have the paid option installed on the real robot.
Posts by TitusLepic
-
-
I have never personally done this but from reading this forum I know there's a lot of people who have. Search for "SNPX" and you'll find a lot of info that should point you in the right direction.
-
According to FANUC this is normal behavior.
Quote from FANUC tech supportOnce you load the KAREL File you will not see it. No backup will ever
give you the KAREL file again once it is loaded. The only time it is backed up
is in an IMAGE backup and even then you cannot grab it. You cannot manipulate
the KAREL file either once loaded. -
I have the same exact issue. I just opened a ticket with Fanuc support about it, I'll share their solution as soon as I find out.
-
On my robot (RJ3-iB) I found my gear ratios in SYMOTN.VA (obviously your values would be different):
Field: $MRR_GRP[1].$GEAR_RATIO ARRAY[9] OF REAL
[1] = 4.861111e-03
[2] = 4.756677e-03
[3] = 4.975124e-03
[4] = 5.485893e-03
[5] = 5.608974e-03
[6] = 8.978676e-03
[7] = 0.000000e+00
[8] = 0.000000e+00
[9] = 0.000000e+00
Hope this helps
-
I'm trying to display a yes/no menu from Karel. From TP, it would look like this:
CALL MHPRMPTY(2,37)
I can call MHPRMPTY from Karel using CALL_PROG but I can't figure out how to pass the arguments and I can't find anything about it in the karel reference manual. Any help would be appreciated. Thanks.
-
I made separate TP programs for each trig operation. Below is the program for sin, this just makes for easier readability at the point of use.
And here's the karel code. Hope this helps with your project.
Code
Display MorePROGRAM TRIGFUNC %COMMENT = 'Trig Function' %NOLOCKGROUP %ENVIRONMENT REGOPE %ENVIRONMENT MULTI CONST EN_SIN = 1 EN_COS = 2 EN_TAN = 3 EN_ASIN = 4 EN_ACOS = 5 EN_ATAN = 6 VAR argVal : REAL returnVal : REAL returnReg : INTEGER prmType : INTEGER intVal : INTEGER operation : INTEGER realVal : REAL strVal : STRING [2] STATUS : INTEGER BEGIN --get argument GET_TPE_PRM(1,prmType,intVal,argVal,strVal,STATUS) IF prmType = 3 THEN WRITE TPERROR('TRIG ERROR', cr) abort_task('*ALL*', true, true, STATUS) ENDIF IF prmType = 1 THEN argVal = intVal ENDIF --get return register GET_TPE_PRM(2,prmType,returnReg,realVal,strVal,STATUS) IF prmType <> 1 THEN WRITE TPERROR('TRIG ERROR') abort_task('*ALL*', true, true, STATUS) ENDIF --get operation GET_TPE_PRM(3,prmType,operation,realVal,strVal,STATUS) IF prmType <> 1 THEN WRITE TPERROR('TRIG ERROR') abort_task('*ALL*', true, true, STATUS) ENDIF SELECT operation OF CASE (EN_SIN): returnVal =SIN(argVal) CASE (EN_COS): returnVal = COS(argVal) CASE (EN_TAN): returnVal = TAN(argVal) CASE (EN_ASIN): returnVal = ASIN(argVal) CASE (EN_ACOS): returnVal = ACOS(argVal) CASE (EN_ATAN): returnVal = ASIN(argVal/SQRT(1+argVal*argVal)) ENDSELECT SET_REAL_REG(returnReg,returnVal,STATUS) END TRIGFUNC
-
<argument> denotes an optional argument
{argument} denotes an optional repeatable argument
Everything else is required
Good luck learning Karel, I'm pretty new to it myself - once you get the hang of its weird idiosyncrasies it's not too bad.
-
1&2 - correct on both
The program in the manual is just a snippet. You're right that they don't show where they declared their variables, but I'm not seeing how the built-in is wrong?
-
GET_TPE_PRM requires 6 arguments. You're trying to call it with 4. Therefore the error "ROUTINE called has less arguments than ROUTINE definition"
GET_TPE_PRM(param_no, data_type, int_value, real_value, str_value, STATUS) - all arguments are required. If the parameter is INT, int_value will be the value of the parameter. If it's a real, real_value; string, str_value. Data_type tells you what type of parameter is being passed from the TP program.
-
Here's a corrected link to the post - Using a Direct Input to Control Standard Operator Inputs
Hope it helps
-
The compound rotation around the X,Y,Z axis with respect to the fixed frame is
Rotz(R).Roty(P).Rotx(W)
The transformations order is reversed because rotations are extrinsic (with respect to the fixed frame)This is correct
-
Quote
I'm not an expert but there's a few things I see - GET_REG isn't a function that returns a result to be assigned to a variable. Correct syntax is simply
GET_REG(30,RFLAG,REGISTER,RVALUE,STATUS)
This will take the contents of R[30], assign it to "REGISTER" and set RFLAG to "FALSE" if it's an integer or assign it to "RVALUE" and set RFLAG to "TRUE" if it's a real. I think what you want will look like this (I renamed "REGISTER" to "IVALUE" for clarity:
CodeGET_REG(30,RFLAG,IVALUE,RVALUE,STATUS) if RFLAG = true then a_var = RVALUE else a_var = IVALUE * 1.0 endif
You also should be using SET_REAL_REG instead of SET_INT_REG.Where you're truncating the real "target", you need to assign this to an integer instead of back to a real. Declare intTarget as an integer and use intTarget = TRUNC(target) if you want to use SET_INT_REG.
The other things I see is that you declared REGISTER as a real, it needs to be an integer. Also you declared "r_value" but you're using "rvalue"
-
SRVO-310 ABC Unexpected Motion(G:%d)
Cause: A current robot position that software calculates is abnormal.
Remedy:
1. Mastering data could be incorrect. Confirm whether incorrect backup data is restored or mastering has been executed at the wrong position. In that case, execute mastering.
2. Document the events that led to the error, and contact your FANUC technical representative.
-
Quote
So either do a joint move to change the config or a linear move with wjnt option?
Correct. I use both of these methods depending on situation.
-
Quote
How can a point with a unique definition of X, Y, Z, W, P, R be in two frames at once as the frames do not have the same origin or orientation? Which frame is actually being used here and why are two defined?
The tool frame defines the location of the tool center point (TCP) relative to the center of the faceplate. The user frame defines your coordinate system relative to the world frame. When you teach a point, what is recorded is the TCP location relative to the UF origin. There's a more thorough description of frames in this training guide: A Free Open-Source E-Book for HandlingTool TeachPendant Programming
Quote
CONF:FT - What does this mean? I cannot find a definition in the manual!This is the configuration string. This video mentioned here (Linear Motion Configuration in Fanuc Robot R2000-2101f) does a good job explaining it.
If you are wanting to move the robot in tool frame in order to teach your points, hit the "coord" button until it says "tool" and you'll be able to jog the robot relative to the tool. If you want to programmatically move in the tool frame, use the tool_offset command that PDL mentioned.
-
You can do it like this:
PR[1] = UTOOL[2]
UTOOL[1] = PR[1]
What are you trying to do?
-
Hawk, when did the search tool get added to the web server? I have a RJ3iB (Software version 6.31) and I don't see any search tool on my web server.
-
Great find. I wish I'd known about this tool sooner.
-