Back to top

AKD Basic Sample Program Homing to Mechanical Hard Stop

Homing in the AKD Basic must be written into the program.  You can program the homing sequence to do whatever you want it to do.  In this example, it is homing to a mechanical hard stop.  It lowers the current limits to prevent mechanical damage and reads the position error to find home.

 

'-------------- Device Params -----------------------
Params 
End Params

'-------------- Define (dim) Global Variables --------
Dim count as integer 
'-------------- Main Program -------------------------
Main 
While 1 = 1

If DIN2.STATE = 1 Then 'start homing
    IL.LIMITN = -0.1 'lower current limits so it doesn't cause mechanical damage
    IL.LIMITP = 0.1
    MOVE.ACC = 1000
    MOVE.DEC = 1000
    MOVE.RUNSPEED = 50
    MOVE.GOVEL 
    While PL.ERR < 90 : Wend 'wait for position error to increase
    DRV.OPMODE = 1 'switch to velocity mode so drive doesn't fault
    MOVE.POSCOMMAND = 0 'set position to zero
    DRV.OPMODE = 2 'back to position mode
    IL.LIMITN = -3 'reset current limits
    IL.LIMITP = 3
    Pause (3)
End If
        
While DIN1.STATE = 1 'make some position moves
    For count = 1 To 5
        Move.Acc = 10000' Acceleration (drive units)
        Move.Dec = 10000' Deceleration (drive units)
        Move.RunSpeed = 500' Runspeed (drive units)
        Move.RelativeDist = 360' Distance to move (drive units)
        Move.GoRel 
        Pause (1)
    Next 
            
    Move.Acc = 1000' Acceleration (drive units)
    Move.Dec = 1000' Deceleration (drive units)
    Move.RunSpeed = 1000' Runspeed (drive units)
    Move.TargetPos = 0' Target position (drive units)
    Move.GoAbs 
Wend

Wend
End Main

'-------------- Subroutines and Functions ------------

'-------------- Interrupt Routines -------------------

Attachment: