SP512;

Set the speed

PR1000;

Prepare mode of motion

BGX;

Begin motion

#LOOP;JP#LOOP;

Keep thread zero alive for #POSERR to run in

REM When error occurs, the axis will stop due to OE1. In REM #POSERR, query the status YS and the error QS, correct, REM and return to the main code.

#POSERR;

Automatic subroutine is called when YS=2

WT100;

Wait helps user see the correction

spsave=_SPX;

Save current speed setting

JP#RETURN,_YSX<>2;

Return to thread zero if invalid error

SP64;

Set slow speed setting for correction

MG”ERROR= “,_QSX

 

YRX=_QSX;

Else, error is valid, use QS for correction

MCX;

Wait for motion to complete

MG”CORRECTED, ERROR NOW= “,_QSX

WT100;

Wait helps user see the correction

#RETURN

 

SPX=spsave;

Return the speed to previous setting

REO;

Return from #POSERR

Example: Friction Correction

The following example illustrates how the SPM mode can be useful in correcting for X axis friction after each move when conducting a reciprocating motion. The drive is a 1/64th microstepping drive with a 1.8o step motor and 4000 count/rev encoder.

#SETUP;

Set the profiler to continue upon error

KS16;

Set step smoothing

MT-2,-2,-2,-2;

Motor type set to stepper

YA64;

Step resolution of the microstepping drive

YB200;

Motor resolution (full steps per revolution)

YC4000;

Encoder resolution (counts per revolution)

SHX;

Enable axis

WT50;

Allow slight settle time

YS1;

Enable SPM mode

#MOTION;

Perform motion

66 Chapter 6 Programming Motion

DMC-2X00

Page 121
Image 121
Galil DMC-2X00 user manual Example Friction Correction