'-------------- Device Params ----------------------- Params End Params '-------------- Define (dim) Global Variables -------- Dim startbutton as integer Dim targetposition as integer Dim speed1 as integer Dim accel as integer Dim decel as integer MBInfo 'map variables to user defined Modbus registers $MBMap32(5000, targetposition) 'Modbus registers 5000 and 5001 for targetposition, 32bit $MBMap16(5002, startbutton) 'Modbus register 5002 for start, 16bit $MBMap32(5003, speed1) 'Modbus registers 5003 and 5004 for speed1, 32bit End '-------------- Main Program ------------------------- Main DRV.SWENABLE = 0 'turn off software enable startbutton = 0 'initial startbutton value=0 'Set default values targetposition = 1000 'distance in user units speed1 = 200 'speed of move to targetposition, in user units accel = 1000 'acceleration of move to targetposition, in user units decel = 1000 'deceleration of move to targetposition, in user units Move.Acc = accel ' Acceleration (drive units) Move.Dec = decel ' Deceleration (drive units) DRV.SWENABLE = 1 'turn on software enable While DRV.ACTIVE = 0 : Wend 'wait for hardware and software enable While 1 = 1 'start continuous loop While DRV.HWENABLE = 0 : Wend 'wait for hardware enable to be active While startbutton = 0 : Wend 'wait for startbutton command over Modbus Move.RunSpeed = speed1 Move.TargetPos = targetposition Move.GoAbs 'Print "moving" While MOVE.MOVING = 1 : Wend 'wait for move to complete 'Print "finished moving" startbutton = 0 'reset start trigger Wend 'loop back to While 1=1 End Main '-------------- Subroutines and Functions ------------ '-------------- Interrupt Routines -------------------