SAMPLE #2 (PROGRAM SAMPLE2.BAS ON THE CLCI2000 DISK)

This sample shows two different homing routines that can be used to home the motors. The first routine callled Home Type 0, uses two switches - the first switch causes the motor to ramp down to base speed, and the second switch causes the motor to stop. The second routine, Home Type 1, uses only 1 switch - when the switch is activated the motor will ramp down to base speed, the mechanics need to be made in such a way that the switch will be deactivated when it reaches base speed. When base speed is reached, the motor will reverse direction and will stop once the switch is activated once again.

'PROGRAM FOR QUICKBASIC OR 'VISUALBASIC USING CLCISUB1.BAS

DECLARE ()...

'this representation is for all the declare statements

ADDR = &H300

'sets up the variable for the board address

AXIS = 1

'sets up the variable for axis 1

INITIALIZE ADDR, AXIS

'initializes axis 1

MOTION ADDR, AXIS, 500, 10000, 23000 'sets up the base speed, max speed, and acceleration

HOME.TYPE.1:

'home type 1 requires the switch to be activated and then deactivated (passed) 'while decelerating. The motor will then stop and reverse direction. When the 'switch is then activated, the motor will stop.

LIMIT.CONTROL ADDR, AXIS, 0, 0, 0

'soft is not active, mark is not active, home is not active

SET.OUTPUT1 ADDR, 0, 0, 0, 0, 0, 1, 0 'sets the HOME.DIR.1 to CW and all outputs off

IF HOME.INPUT(ADDR, AXIS) = 1 THEN END 'if we are already on the limit switch

HOME.CW ADDR, AXIS

'this will home the motor in the CW direction

WHILE HOME.INPUT(ADDR, AXIS) = 0

 

WEND

 

 

RAMP.TO.STOP.CW ADDR, AXIS

 

 

WAIT.FOR.STOP ADDR, AXIS

 

 

LIMIT.CONTROL ADDR, AXIS, 0, 0, 1

'soft is not active, mark is not active, home is active

SLEW.AT.BASE.CCW ADDR, AXIS

 

 

WHILE BUSY(ADDR, AXIS) = 1

 

 

WEND

 

 

LIMIT.CONTROL ADDR, AXIS, 0, 0, 0

'soft is not active, mark is not active, home is not active

RETURN

HOME.TYPE.0:

'home type 0 requires two switches - a soft limit switch, and a home limit 'switch. When the soft limit switch is activated, the software will ramp 'the motor down to base speed. The motor will continue traveling until the 'home limit switch is activated.

LIMIT.CONTROL ADDR, AXIS, 0, 0, 1 'soft is not active, mark is not active, home is active SET.OUTPUT1 ADDR, 0, 0, 0, 0, 0, 1, 0 'sets the HOME.DIR.1 to CW and all outputs off

HOME.CW ADDR, AXIS'this will home the motor in the CW direction WHILE SOFT.INPUT.CW(ADDR, AXIS) = 0

WEND

RAMP.TO.BASE.CW ADDR, AXIS END

16

Page 19
Image 19
Anaheim Sample #2 Program SAMPLE2.BAS on the CLCI2000 Disk, Initialize ADDR, Axis, HOME.TYPE.1, HOME.CW ADDR, Axis