Ive got a R-30iB fanuc robot with an external axis. Is it possible to use an external sensor reading to trigger remote mastering of the axis when the sensor detects the zero position on the rail doesnt match what the robot deems to be its zero position? So IF SensorZero != RobotZero, trigger mastering and calibration?
Remote Robot Mastering/Calibration?
-
MADog23 -
January 11, 2024 at 5:48 PM -
Thread is Unresolved
-
-
Nation
January 11, 2024 at 6:04 PM Approved the thread. -
For clarification since i dont see a way to edit my post, the robot is LR Mate 200iD
-
If you mean master on the fly yes it can be done. I've actually done that with some aux motors that did a threading operation.
-
If you mean master on the fly yes it can be done. I've actually done that with some aux motors that did a threading operation.
This was interesting, please do tell how you did to accomplish this.
-
This was interesting, please do tell how you did to accomplish this.
/PROG MST_AUX1
/ATTR
OWNER = MNEDITOR;
COMMENT = "MASTERS G2 A1";
PROG_SIZE = 418;
CREATE = DATE 08-04-24 TIME 05:24:24;
MODIFIED = DATE 08-04-30 TIME 03:29:32;
FILE_NAME = ;
VERSION = 0;
LINE_COUNT = 7;
MEMORY_SIZE = 798;
PROTECT = READ_WRITE;
TCD: STACK_SIZE = 0,
TASK_PRIORITY = 50,
TIME_SLICE = 0,
BUSY_LAMP_OFF = 0,
ABORT_REQUEST = 0,
PAUSE_REQUEST = 0;
DEFAULT_GROUP = *,1,*,*,*,*,*;
CONTROL_CODE = 00000000 00000000;
/MN
1: WAIT $MOR_GRP[2].$FILTER_EMPT=1 AND $MOR_GRP[2].$CARTFLTREMP=1 ;
2: R[3:FINGER NUMBER]=($MOR_GRP[2].$MACHINE_PLS[1]) ;
3: $MCR_GRP[2].$CALIBRATE=1 ;
4: $DMR_GRP[2].$MASTER_COUN[1]=R[3:FINGER NUMBER] ;
5: ;
6: !WAIT FOR COMPLETION ;
7: WAIT ($MCR_GRP[2].$CALIBRATE=1) ;
/POS
/END
depending on the group the number in the bracket will change.
This example is group 2 axis 1
/PROG MST_AUX2
/ATTR
OWNER = MNEDITOR;
COMMENT = "MASTERS AUX G3A1";
PROG_SIZE = 460;
CREATE = DATE 08-05-02 TIME 04:30:38;
MODIFIED = DATE 08-05-02 TIME 04:31:28;
FILE_NAME = MST_AUX1;
VERSION = 0;
LINE_COUNT = 7;
MEMORY_SIZE = 840;
PROTECT = READ_WRITE;
TCD: STACK_SIZE = 0,
TASK_PRIORITY = 50,
TIME_SLICE = 0,
BUSY_LAMP_OFF = 0,
ABORT_REQUEST = 0,
PAUSE_REQUEST = 0;
DEFAULT_GROUP = *,*,*,*,*,*,*;
CONTROL_CODE = 00000000 00000000;
/APPL
/MN
1: WAIT $MOR_GRP[3].$FILTER_EMPT=1 AND $MOR_GRP[3].$CARTFLTREMP=1 ;
2: R[7:MST AUX1 COUNT]=($MOR_GRP[3].$MACHINE_PLS[1]) ;
3: $MCR_GRP[3].$CALIBRATE=1 ;
4: $DMR_GRP[3].$MASTER_COUN[1]=R[7:MST AUX1 COUNT] ;
5: ;
6: !WAIT FOR COMPLETION ;
7: WAIT ($MCR_GRP[3].$CALIBRATE=1) ;
/POS
/END
group 3 axis 1
-
I forgot to add why I did the mastering on the fly. It was to prevent unwinding. So for example if I start at zero degree the motor would have to return to zero(unwind). The threading operation wasn't consistent and never knew how much the motor would have to turn. So the easiest thing to do was just remaster it. This saved cycle time because there was unthreading done first.Completed part removed new part added.