It seems to be used as a ToolOffset.
It set from the toolLGRoll to the Hem_Tool.
I suppose this second Tool, is used for an offset application (exemple; pick/drop with/without the part, adjust a new level, change of orientation...)
It seems to be used as a ToolOffset.
It set from the toolLGRoll to the Hem_Tool.
I suppose this second Tool, is used for an offset application (exemple; pick/drop with/without the part, adjust a new level, change of orientation...)
don't use PNS in a BG-logic.
You use the BG Logic as Auxilary Task. You will have inside all you need check always or copy/transfer I/O with PLC.
The PNS is Launched by PLC sequencielly as MAIN program but you can loop inside with LBL (as explained before) or not.
something like that but with acc data, FANUC support could provide it to you. Call them.
In the robot specifiaction documentation, don't you have this data ?
get back the .VA from your robot, you need to copy it from the MD: to your UD1 or UT1
Hello All,
I'am new in the blog and on robot.
It's possibile to change the robot payload from the PLC?
hi,
Yes you need to declare in Comm Network PLC/ROBOT a Go/Gi and link in your program the value.
In the last exemple you need to link your Gi (Group Input robot, OutPut PLC a Word or a Byte as you wish) with the AR[1] = Weight of payload (kg)
Hi
Fews paths :
1/Are you sure with your calib reference (setting 0 with your calib grid) ?
2/Are you sure the mechanical frame is ok ?
3/Do you have any change conf NUT/FUT xxx in your trajectories ?
4/Maybe you should limite the value of the W P R or/and transform them to keep in same turn (W -89.999, P +89.999 R -179.9999, in the setting of Vision Fanuc ?
good luck
do you use a DCS speed check or something ?
You need to create a specific "AutoHome" program before get back to your Main program.
For exemple, you have an E-stop, you need to known first where your robot is (tracker ID, register, bit of work area...). In this case you abort the current program, go to the Autohome (the robot go back to home ont a safety path) and you can go back to your Main program after.
You need to separate the programmation of the normal cycle and the fault cases.
It could be long to write this program (welcome in robotic world) but if you need to manage this fault case in automatic mode you don't have choice.
Oh sorry i did'nt read carefully your first message. With a .Cm i think it will be complicated because you have to be in controlled start to do it (version 9.4, for older version it's different). You can test with system variables concerned. I hope i helped you a bit. good luck
Hi,
I think you need to be in ctrl start to change the num of registers
MENU/0 NEXT/1 PROGRAM SETUP/2 NUMERIC REGISTERS
An other exemple of .cm syntax
PRINT "azertyuiop"
DELAY 1000
DEFPROG *SYSTEM*
SETVAR $FNO "E-101165"
SETVAR $HOSTENT[17].$H_ADDR "10.143.69.30"
SETVAR $TMI_SNMASK[1] "255.255.255.0"
SETVAR $HOSTENT[20].$H_ADDR "10.143.69.254"
SETVAR $HTTP_AUTH[1].$TYPE 4
SETVAR $HTTP_AUTH[2].$TYPE 4
SETVAR $HTTP_AUTH[3].$TYPE 4
SETVAR $HTTP_AUTH[4].$TYPE 4
SETVAR $HTTP_AUTH[5].$TYPE 4
SETVAR $HTTP_AUTH[6].$TYPE 4
SETVAR $HTTP_AUTH[7].$TYPE 4
SETVAR $HTTP_AUTH[8].$TYPE 4
SETVAR $HSCDMNGRP[1].$MACRO_REG 100
SETVAR $SI_UNIT_ENB 1
SETVAR $PLST_GRP1[1].$COMMENT "QSDFG"
SETVAR $PLST_GRP1[1].$PAYLOAD 52
SETVAR $PLST_GRP1[1].$PAYLOAD_X -33.07235
SETVAR $PLST_GRP1[1].$PAYLOAD_Y 0.179398
SETVAR $PLST_GRP1[1].$PAYLOAD_Z 22.64599
SETVAR $PLST_GRP1[1].$PAYLOAD_IX 54528.49
SETVAR $PLST_GRP1[1].$PAYLOAD_IY 64557.29
SETVAR $PLST_GRP1[1].$PAYLOAD_IZ 37259.31
SETVAR $PLST_GRP1[2].$COMMENT "CHARGE 22kg"
SETVAR $PLST_GRP1[2].$PAYLOAD 74.5
SETVAR $PLST_GRP1[2].$PAYLOAD_X -3
SETVAR $PLST_GRP1[2].$PAYLOAD_Y -2
SETVAR $PLST_GRP1[2].$PAYLOAD_Z 29
SETVAR $PLST_GRP1[2].$PAYLOAD_IX 106100
SETVAR $PLST_GRP1[2].$PAYLOAD_IY 147300
SETVAR $PLST_GRP1[2].$PAYLOAD_IZ 58200
SETVAR $PLST_GRP1[3].$COMMENT "CHARGE 15kg"
SETVAR $PLST_GRP1[3].$PAYLOAD 67.5
SETVAR $PLST_GRP1[3].$PAYLOAD_X -6
SETVAR $PLST_GRP1[3].$PAYLOAD_Y -1
SETVAR $PLST_GRP1[3].$PAYLOAD_Z 28
SETVAR $PLST_GRP1[3].$PAYLOAD_IX 90200
SETVAR $PLST_GRP1[3].$PAYLOAD_IY 127700
SETVAR $PLST_GRP1[3].$PAYLOAD_IZ 53100
SETVAR $PLST_GRP1[4].$COMMENT "INTERCALAIRE"
SETVAR $PLST_GRP1[4].$PAYLOAD 52
SETVAR $PLST_GRP1[4].$PAYLOAD_X -8
SETVAR $PLST_GRP1[4].$PAYLOAD_Y 0
SETVAR $PLST_GRP1[4].$PAYLOAD_Z 27
SETVAR $PLST_GRP1[4].$PAYLOAD_IX 75000
SETVAR $PLST_GRP1[4].$PAYLOAD_IY 104300
SETVAR $PLST_GRP1[4].$PAYLOAD_IZ 41700
SETVAR $PARAM_GROUP[1].$ARMLOAD[2] 3.00E+00
SETVAR $PARAM_GROUP[1].$ARMLOAD[1] 4.00E+00
SETVAR $OPWORK.$UOP_DISABLE 0
SETVAR $SHELL_CFG.$CONT_ONLY 0
SETVAR $SHELL_CFG.$USE_ABORT 1
SETVAR $SHELL_CFG.$CSTOPI_ALL 1
SETVAR $CR_AUTO_DO 37
SETVAR $CR_T1_DO 38
SETVAR $REMOTE_CFG.$REMOTE_TYPE 1
SETVAR $IO_AUTO_UOP 1
SETVAR $JINC.$JINC_ENB 1
SETVAR $SCR_GRP[1].$HBK_ENBL 0
SETVAR $IO_AUTO_CFG 0
SETVAR $IO_AUTO_UOP 0
SETVAR $SHELL_CFG.$PNS_ENABLE 0
SETVAR $SHELL_CFG.$SEL_TYPE 9
SETVAR $SHELL_WRK.$CUST_NAME "CELL"
SETVAR $SHELL_CFG.$PROD_MODE 1
SETVAR $SHELL_CHK[3].$ENABLE 1
SETVAR $SHELL_CHK[3].$RESUME 1
SETVAR $SHELL_CHK[3].$PROMPT 0
SETVAR $SHELL_CHK[3].$WARN 0
SETVAR $SHELL_CHK[3].$FORCE 1
SETVAR $SHELL_CHK[7].$ENABLE 1
SETVAR $SHELL_CHK[7].$RESUME 1
SETVAR $SHELL_CHK[7].$PROMPT 0
SETVAR $SHELL_CHK[7].$WARN 0
SETVAR $SHELL_CHK[7].$FORCE 1
SETVAR $REFPOS1[1].$COMMENT "home"
SETVAR $REFPOS1[1].$ENABLED 1
SETVAR $REFPOS1[1].$HOMEPOS 0
SETVAR $REFPOS1[1].$DOUT_INDX 3
SETVAR $REFPOS1[1].$PERCHPOS[1] -1.570796E+00
SETVAR $REFPOS1[1].$PERCHTOL[1] 1.745329E-03
SETVAR $REFPOS1[1].$PERCHPOS[2] 4.363323E-01
SETVAR $REFPOS1[1].$PERCHTOL[2] 1.745329E-03
SETVAR $REFPOS1[1].$PERCHPOS[3] 0.000000E+00
SETVAR $REFPOS1[1].$PERCHTOL[3] 1.745329E-03
SETVAR $REFPOS1[1].$PERCHPOS[4] 0.000000E+00
SETVAR $REFPOS1[1].$PERCHTOL[4] 1.745329E-03
SETVAR $REFPOS1[1].$PERCHPOS[5] -1.570796E+00
SETVAR $REFPOS1[1].$PERCHTOL[5] 1.745329E-03
SETVAR $REFPOS1[1].$PERCHPOS[6] 3.141593E+00
SETVAR $REFPOS1[1].$PERCHTOL[6] 1.745329E-03
SETVAR $REFPOS1[2].$COMMENT "home"
SETVAR $REFPOS1[2].$ENABLED 1
SETVAR $REFPOS1[2].$HOMEPOS 0
SETVAR $REFPOS1[2].$DOUT_INDX 35
SETVAR $REFPOS1[2].$PERCHPOS[1] -1.570796E+00
SETVAR $REFPOS1[2].$PERCHTOL[1] 1.745329E-03
SETVAR $REFPOS1[2].$PERCHPOS[2] 7.452556E-03
SETVAR $REFPOS1[2].$PERCHTOL[2] 1.745329E-03
SETVAR $REFPOS1[2].$PERCHPOS[3] 3.457497E-02
SETVAR $REFPOS1[2].$PERCHTOL[3] 1.745329E-03
SETVAR $REFPOS1[2].$PERCHPOS[4] 0.000000E+00
SETVAR $REFPOS1[2].$PERCHTOL[4] 1.745329E-03
SETVAR $REFPOS1[2].$PERCHPOS[5] -1.605371E+00
SETVAR $REFPOS1[2].$PERCHTOL[5] 1.745329E-03
SETVAR $REFPOS1[2].$PERCHPOS[6] 3.141593E+00
SETVAR $REFPOS1[2].$PERCHTOL[6] 1.745329E-03
SETVAR $REFPOS1[3].$COMMENT "bloblo"
SETVAR $REFPOS1[3].$ENABLED 1
SETVAR $REFPOS1[3].$HOMEPOS 0
SETVAR $REFPOS1[3].$DOUT_INDX 4
SETVAR $REFPOS1[3].$PERCHPOS[1] 1.454924E+00
SETVAR $REFPOS1[3].$PERCHTOL[1] 1.745329E-03
SETVAR $REFPOS1[3].$PERCHPOS[2] 3.458544E-01
SETVAR $REFPOS1[3].$PERCHTOL[2] 1.745329E-03
SETVAR $REFPOS1[3].$PERCHPOS[3] -6.232571E-02
SETVAR $REFPOS1[3].$PERCHTOL[3] 1.745329E-03
SETVAR $REFPOS1[3].$PERCHPOS[4] -3.438299E-03
SETVAR $REFPOS1[3].$PERCHTOL[4] 1.745329E-03
SETVAR $REFPOS1[3].$PERCHPOS[5] -1.506708E+00
SETVAR $REFPOS1[3].$PERCHTOL[5] 1.745329E-03
SETVAR $REFPOS1[3].$PERCHPOS[6] 1.167974E-01
SETVAR $REFPOS1[3].$PERCHTOL[6] 1.745329E-03
SETVAR $REFPOS1[4].$COMMENT "blabla"
SETVAR $REFPOS1[4].$ENABLED 1
SETVAR $REFPOS1[4].$HOMEPOS 0
SETVAR $REFPOS1[4].$DOUT_INDX 36
SETVAR $REFPOS1[4].$PERCHPOS[1] -1.570796E+00
SETVAR $REFPOS1[4].$PERCHTOL[1] 1.745329E-02
SETVAR $REFPOS1[4].$PERCHPOS[2] 1.144587E+00
SETVAR $REFPOS1[4].$PERCHTOL[2] 1.745329E-02
SETVAR $REFPOS1[4].$PERCHPOS[3] -5.919982E-01
SETVAR $REFPOS1[4].$PERCHTOL[3] 1.745329E-02
SETVAR $REFPOS1[4].$PERCHPOS[4] 0.000000E+00
SETVAR $REFPOS1[4].$PERCHTOL[4] 1.745329E-02
SETVAR $REFPOS1[4].$PERCHPOS[5] -9.787981E-01
SETVAR $REFPOS1[4].$PERCHTOL[5] 1.745329E-02
SETVAR $REFPOS1[4].$PERCHPOS[6] 3.141593E+00
SETVAR $REFPOS1[4].$PERCHTOL[6] 1.745329E-02
SETVAR $RSPACE1[1].$COMMENT "PALETTE"
SETVAR $RSPACE1[1].$IN_EXTERIOR 1
SETVAR $RSPACE1[1].$PRIORITY 1
SETVAR $RSPACE1[1].$DOUT_INDX 2
SETVAR $RSPACE1[1].$DIN_INDX 2
SETVAR $RSPACE1[1].$LENGTH_VTEX 1
SETVAR $RSPACE1[1].$FIRST_VTEX[1] 260.000
SETVAR $RSPACE1[1].$FIRST_VTEX[2] -2600.000
SETVAR $RSPACE1[1].$FIRST_VTEX[3] -2000.000
SETVAR $RSPACE1[1].$SECND_VTEX[1] 2460.000
SETVAR $RSPACE1[1].$SECND_VTEX[2] 3000.000
SETVAR $RSPACE1[1].$SECND_VTEX[3] 2000.000
SETVAR $RSPACE1[1].$CUR_TCP[1] 0
SETVAR $RSPACE1[1].$CUR_TCP[2] -1253.099
SETVAR $RSPACE1[1].$CUR_TCP[3] 349.928
SETVAR $RSPACE1[1].$PRE_TCP[1] 0
SETVAR $RSPACE1[1].$PRE_TCP[2] -1253.099
SETVAR $RSPACE1[1].$PRE_TCP[3] 349.928
SETVAR $RSPACE1[1].$ENABLED 1
SETVAR $THRRDITABLE[1].$DO_NO 56
SETVAR $THRRDITABLE[1].$THR_ENB 1
SETVAR $THRRDITABLE[2].$DO_NO 53
SETVAR $THRRDITABLE[2].$THR_ENB 1
SETVAR $THRSDITABLE[1].$DI_NO 289
SETVAR $THRSDITABLE[1].$DO_NO 83
SETVAR $THRSDITABLE[1].$THR_ENB 1
SETVAR $THRSDITABLE[2].$DI_NO 290
SETVAR $THRSDITABLE[2].$DO_NO 84
SETVAR $THRSDITABLE[2].$THR_ENB 1
SETVAR $RSCH_LOG.$EXP_ENB 1
SETVAR $RSCH_LOG.$DEFAULT_DEV 1
SETVAR $SCR_GRP[1].$M_POS_ENB 1
SETVAR $SCR.$MAXNUMTASK 10
SETVAR $EXTLOG_SIZ 1000
SETVAR $EXTLOG_REQ 1000
Hi,
I would try this (I'm not sure) :
1-Set a Uframe on your P0
2-Teach your first and last points oriented (ex: the z tool face the center of the uf (eq P0) )
3-You can find the second point to by trigo (a paper and a pen can be usefull ) or you can teach it
4-Set the angles (W, P, R) of your 3 points (Details point) after teaching & be care with the Config (can change)
other solution : in the program edition .LS you cut manually the all values (gr1, j7) and paste in the (gr2, J1)
Be carefull too with the program creation, group 1 & 2
Try the group excgh
Hi,
I use SRS 2022 and I think it's better than it used to be It can be improved (still some little bugs yet) but I think in few years it will be like RobotStudio ABB or equivalent software.
Buy it if you have to work now on staubli robots because you can prepare offLine very easily. If not wait the future version
I hope I helped you camarade
Can you send me your all of above Backup Please ?