{\rtf1\ansi\ansicpg1252\deff0\deftab720{\fonttbl{\f0\fswiss MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}{\f2\fmodern\fprq1 Swiss;}{\f3\fmodern\fprq1 Courier New;}{\f4\fswiss\fprq2 System;}} {\colortbl\red0\green0\blue0;\red0\green240\blue240;\red0\green0\blue255;\red0\green128\blue128;} \deflang1033\pard\plain\f3\fs20\cf2 \par \par '----------------------- \par GOSUB0\tab 'go to home subroutine \par '------------------------------------------------------------------ \par END\tab 'END OF PROGRAM \par '--------------------------------------------------------- \par C0 'HOME ROUTINE \par h=-500\tab 'This is some home offset from hard stop \par \tab \tab 'to define home as zero \par r=1 \par 'Make r a -1 to reverse home direction \par \par v=500000\tab 'some faster home speed off of hard stop \par \par PRINT("Homing motor",#13) \par MV \par V=-100000*r\tab 'HOMING VELOCITY \par A=1000\tab 'HOMING ACCEL \par E=30\tab \tab 'SETTING ERROR FOR HARD STOP LIMIT \par \tab \tab \tab 'This may need to be changed \par G\tab 'start a velocity mode move \par \par 'The following line looks at the Position error status bit. \par 'You should expect to get a position error when you hit a hard stop. \par \plain\f3\fs20\cf3 WHILE\plain\f3\fs20\cf2 Be==0 \plain\f3\fs20\cf3 LOOP\plain\f3\fs20\cf2 \par 'You will drop out of the above loop when Be equals 1 \par 'i.e. you errored on position. \par \par PRINT("Hit hard stop",#13) \par PRINT("Switching to torque mode",#13) \par T=-100*r \par MT \par WAIT=1000 \par PRINT("Setting position register",#13) \par O=h*r\tab 'Setting present position to HOME OFFSET value \par X \par E=500\tab 'setting normal running error limit \par V=v \par MP \par P=0 \par PRINT("Moving to Zero",#13) \par G \par TWAIT\tab 'do nothing until trajectory is complete \par PRINT("Motor is at Home",#13) \par RETURN \par \plain\f2\fs24\cf2 \par \par \plain\f3\fs20\cf2 \par \plain\f2\fs26\cf2 \par \pard\plain\f2\fs26\cf2 \par }