you can contact FANUC SWITZERLAND, i think they have some training session
Posts by pyrioun
-
-
This is an example to save actual position in csv file
TPE : CALL LOG_POS(AR[1])
AR[1] = GROUP numberPROGRAM LOG_POS
--**************************************************************************************
%COMMENT = 'SAVE POSITION'
%ALPHABETIZE
%NOPAUSE = ERROR + COMMAND + TPENABLE
%NOABORT = ERROR + COMMAND + TPENABLEVAR
coord_cart : XYZWPREXT
coord_joint : JOINTPOS
data_typ : INTEGER
data_int : INTEGER
data_real : REAL
data_str : STRING[1]
status : INTEGER
num_group,entry,i_ut_num : INTEGER
cf : CONFIG
pos_cart_x : REAL
pos_cart_y : REAL
pos_cart_z : REAL
pos_cart_w : REAL
pos_cart_p : REAL
pos_cart_r : REAL
pos_joint : ARRAY[9] OF REAL
Log_file : FILE
--************************************************************************************
--************************************************************************************
ROUTINE CONV_INTSTR(int_to_conv : INTEGER ):STRING
VAR
str_tmp : STRING[127]
BEGIN
CNV_INT_STR(int_to_conv,1,10,str_tmp)
IF int_to_conv < 0 THEN
RETURN(str_tmp)
ELSE
RETURN(SUB_STR(str_tmp,2,STR_LEN(str_tmp)))
ENDIF
END CONV_INTSTR
--**************************************************************************************
--**************************************************************************************--**************************************************************************************
ROUTINE SET_FRMS(i_uf_num,i_ut_num: INTEGER)
-------------------------------------------------------------------------------------------------------------------------------------------------------------
VAR
str_temp : STRING[2]
sysvar : STRING[50]
status,entry : INTEGER
uf_pos,ut_pos : POSITION
BEGIN
IF i_uf_num <> 0 THEN
str_temp=CONV_INTSTR(i_uf_num)
sysvar = '$MNUFRAME['+CHR(48+num_group)+','+str_temp+']'
GET_VAR(entry,'*SYSTEM*', sysvar, uf_pos,status)
ELSE
GET_VAR(entry,'*SYSTEM*','$MOR_GRP['+CHR(48+num_group)+'].$NILPOS', uf_pos,STATUS)
ENDIF
IF i_ut_num <> 0 THEN
str_temp=CONV_INTSTR(i_ut_num)
sysvar = '$MNUTOOL['+CHR(48+num_group)+','+str_temp+']'
GET_VAR(entry,'*SYSTEM*', sysvar, ut_pos,STATUS)
ELSE
GET_VAR(entry,'*SYSTEM*','$MOR_GRP['+CHR(48+num_group)+'].$NILPOS', ut_pos,STATUS)
ENDIFSET_VAR(entry,'*SYSTEM*', '$GROUP['+CHR(48+num_group)+'].$UFRAME' , uf_pos,STATUS)
SET_VAR(entry,'*SYSTEM*', '$GROUP['+CHR(48+num_group)+'].$UTOOL' , ut_pos,STATUS)
END SET_FRMS
--**************************************************************************************
--**************************************************************************************--**************************************************************************************
--**************************************************************************************
BEGINGET_TPE_PRM(1,data_typ,data_int, data_real, data_str, status)
IF ((status = 0) AND (data_typ = 1)) THEN
num_groupe = data_int
ELSE
POST_ERR(38091, 'Pb routine config', 0, 2) -- ==> ABORT
ENDIF
GET_VAR(entry,'*SYSTEM*', '$MNUTOOLNUM['+CHR(48+num_group)+']' , i_ut_num,STATUS)
SET_FRMS(0,i_ut_num)
coord_cart = CURPOS(0,0,num_group)
coord_joint = CURJPOS(0,0,num_group)
UNPOS (coord_cart, pos_cart_x, pos_cart_y, pos_cart_z, pos_cart_w, pos_cart_p, pos_cart_r, cf)
CNV_JPOS_REL (coord_joint, pos_joint, status)
OPEN FILE Log_file ('AP','FR:\Log_coord.csv')
WRITE Log_file(pos_joint[1]::1::3,';',pos_joint[2]::1::3,';',pos_joint[3]::1::3,';',pos_joint[4]::1::3,';',pos_joint[5]::1::3,';',pos_joint[6]::1::3,';',pos_cart_x::1::3,';',pos_cart_y::1::3,';',pos_cart_z::1::3,';',pos_cart_w::1::3,
';',pos_cart_p::1::3,';',pos_cart_r::1::3,CR)
CLOSE FILE Log_fileEND LOG_POS
-
Collision message without real collision, usually it could be , motor, internal cable, servo amplifier or reducer
_ to know if reducer is good, open reducer bleed hole and grease nipple to take a little bit of grease, if you can see some iron dust in the grease --> reducer is dead.
_ control brake, put your hand on J3 motor and move a little bit robot and release deadman , you must heard brake ON/OFF, if you don't heard it, you have motor or cable problem.
_ to know if motor is good, replace it with J2 motor (if it's the same reference), be careful you need to do robot mastering if you dismount motor, after if error is on J2 your motor is dead.
_ to know if servo amplifier is good, replace it with another one with same reference -
put your vision result in a position register PR[X]
now depend how you are using your vision system
_if you are using master part and vision return only the offset from this master part
use in your program "L P[1] 100mm/s CNT0 OFFSET PR[X]"
_if you are using direct cartesian position
use in your program "L PR[X] 100mm/s CNT0 " -
-
without fanuc vision system, robot uframe must be at the same position to the camera calibration frame
i think it's not your case but if you need to combine results of two camera(stationary and robot mounted), it's necessary to do vector calculation (in Karel) -
what did you tried? replacing e-stop unit?
do you have something connect to crma74?
-
For init start you must going to boot monitor, boot monitor is accessible when you lost the software.
in RJ2, boot monitor is : prev+next+power on
(Rj3 and later is F1+F5+power on) -
Are you sure your robot is RJ3iB? for me ethernet IP is not available in RJ3iB(in japan software), only in R30iA/B
in RJ3iB we could be used SNPX protocol for exchange with HMI -
did you try "INIT START"?
problem in RJ2 maybe you need some file from the loader software, it depend of your software version
only Fanuc have these loader software. -
before use GI/GO you need to configure DI/DO through I/O link, go to MENU-->5:I/O-->F1:type-->link device
you can set inpout/outpout size for IOadapter in F3:detail, assignment is Rack0 slot1
GI/GO could be set in rack0 slot1 -
ok sorry
For jhk, you can find some informations about acceleration in Fanuc Karel controler manual
-
is to hard to calculate duration of movement, and not accurate, if you need accuracy duration you must use Roboguide
Hi, your second post has been removed due to Fanuc copyright, please avoid such posts.
Rgds-Moderator -
_program shift is permanent(but save in a new program name)
_program adjust is not permanent -
If no effect with "edit" key, press "Select" key and F4 Monitor