Anaheim Stepper CLCI2000 Users Guide
Have a look at the manual Anaheim Stepper CLCI2000 Users Guide online for free. It’s possible to download the document as PDF or print. UserManuals.tech offer 523 Anaheim manuals and user’s guides for free. Share the user manual or guide on Facebook, Twitter or Google+.
8 DIRECTION SIGNALS This output is TTL/CMOS compatible. The source current rating (Voh = 2.7 V) is 12mA. The sink current rating (Vol = 0.5 V) is 9mA. The Direction signal is +5VDC for + or clockwise motion, and 0VDC for - or counterclockwise motion. SOFT LIMIT This input will cause the motor to ramp down to the base speed. This input contains a 2.5K pullup resistor to +5VDC. It should be activated by connecting it to the 0VDC pin, or a logic level that can sink 2.0mA at TTL levels. HOME LIMIT This is similar to the Hard Limit. It will cause the motor to stop without ramping down. This input contains a 2.5K pullup resistor to +5VDC. It should be activated by connecting it to the 0VDC pin, or a logic level that can sink 2.0mA at TTL levels. See the Command Dictionary Section for more information. PIN DESCRIPTIONPINFUNCTIONDESCRIPTION FUNCTION 1 +5VDC 5 VOLT DC OUTPUT20C:SOFT-C: - SOFT LIMIT SWITCH 2 OUT6 OUTPUT 621C:HOME+C: + HOME LIMIT SWITCH 3 OUT7 OUTPUT 722C:HOME-C: - HOME LIMIT SWITCH 4 OUT8 OUTPUT 823C:HARD+C: + HARD LIMIT SWITCH 5 OUT9 OUTPUT 924C:HARD-C: - HARD LIMIT SWITCH 6 OUT10 OUTPUT 10250 VDCO VOLT DC REFERENCE 7 0VDC 0 VOLT DC 26D:CLOCKD: CLOCK 8 IN6 INPUT 627D:DIRD: DIRECTION 9 IN7 INPUT 728D:EAD: ENCODER CHANNEL A 10 IN8 INPUT 829D:EBD: ENCODER CHANNEL B 11 IN9 INPUT 930D:EZD: ENCODER CHANNEL Z 12 IN10 INPUT 1031D:SOFT+ D: + SOFT LIMIT SWITCH 13 C:CLOCK C: CLOCK32D:SOFT-D: - SOFT LIMIT SWITCH 14 C:DIR C: DIRECTION33D:HOME+D: + HOME LIMIT SWITCH 15 C:EA C: ENCODER CH. A34D:HOME-D: - HOME LIMIT SWITCH 16 C:EB C: ENCODER CH. B35D:HARD+D: + HARD LIMIT SWITCH 17 C:EZ C: ENCODER CH. Z36D:HARD-D: - HARD LIMIT SWITCH 18 C:SOFT+ C: + SOFT LIMIT SWITCH370 VDC0 VOLT DC REFERENCE 19 NC NO CONNECTION DB37 PINOUT FOR AXES C & D HARD LIMIT When a hard limit switch is encountered, all motion will stop in the given direction. Keep in mind that the motor may overshoot when this is used. The position given by the position register may not reflect where the motor ended up stopping due to the overshoot. If an encoder is used, the encoder will reflect the actual motor position. This input contains a 2.5K pullup resistor to +5VDC. It should be activated by connecting it to the 0VDC pin, or a logic level that can sink 2.0mA at TTL levels.
9 ENCODER INPUTS A Rotary Encoder is a device that measures rotation of a shaft. The encoder can be mounted on the step motor shaft, or for even greater accuracy, it can be mounted on the shaft of the load. The encoder sends signals in a format called quadrature to the controller which will take this data and use it to verify the motor position. The encoder has four or five wires: Power, Ground, Phase A, Phase B, and a Marker Pulse . The encoder can be used to form a closed loop system which will ensure the motor position. The guaranteed accuracy of the system will then be determined by the resolution of the encoder. Anaheim Automation stocks a 400 line encoder. This will produce 1600 counts per revolution, which results in accuracies of better than 0.225E. INPUTS These are general purpose inputs that can be used to integrate sensors, logic, switches, or a number of other things that will be used in coordinating the motion. They may be used to initiate a machine cycle, or allow for operator intervention, for sensing a machine condition such as out of material, or to wait for a particular temperature to be reached. These inputs contain 2.5K pullups resistor to +5VDC, and are activated when they reach a TTL/CMOS Low Level, or 0VDC. OUTPUTS These are Open-Collector Darlington type outputs. They may be used to operate coolant valves, air cylinders, relays, solenoids, external logic, or, with the right interfacing, any electrically controlled device. The Outputs will go to the 0.7 VDC level, and can sink a total of 500mA. The Maximum Voltage that can be applied to the Outputs is 50 VDC. (See Specification Section on page 3 for more information.)
10 PROGRAMMING WITH ANAHEIM AUTOMATION LIBRARIES Anaheim Automation has written Libraries that can be used to control the CLCI2000 Series Indexer Board in many different languages. These languages include QuickBASIC, VisualBasic, C, and any Windows programming language. There are two different libraries written for the BASIC languages, one library for the C users, and one library for the windows users (this Windows Library must be requested). The Libraries contain all the code necessary to control the motion with the Indexer Board. PROGRAMMING WITH QUICKBASIC OR VISUALBASIC FOR DOSProgramming the CLCI2000 Using Quick Basic is very easy. A Library with various Subroutines and Functions has been written to make the process of controlling your Step Motor Driver as painless as possible. ANAHEIM AUTOMATIONs Subroutine and Function Library CLCISUB1.BAS is found on the CLCI2000 SERIES DISK. To use this library in QuickBASIC, go to the Menu Selection File, and Choose Load File. To use this library in VISUAL BASIC go to the Menu Selection File, and Choose Add File. Be sure to have the file in the appropriate location. When you use one of the Subroutines or Functions, be sure to DECLARE that Sub or Function. You may want to copy all of the DECLARE statements from the top of the CLCISUB1.BAS programs to the top of your Program. Refer to your QuickBASIC technical manual for further explanations. The way to program a move in QuickBASIC is as simple as this. Lets say you would like these (motion) parameters. Base Speed: 400 steps/sec Max Speed: 5,000 steps/sec Ramp: 200,000 steps/sec^2 To move 1000 steps in the clockwise direction, the code for this in QuickBASIC would be: MOTION ADR, AXIS, 400, 5000, 200000 INDEX ADR, AXIS, 1000 GO.CW ADR, AXIS That is all there is to it. Using English-Like commands, you can easily control your step motors. SPEED CONSIDERATIONSThe time that it takes to process a command is sometimes very critical to a design. The majority of the time involved in communication to the CLCI2000 Series Indexer is due to the time the programming language takes to communicate with the PC expansion bus. Some languages are faster than others. For example, code written in Microsoft QuickBASIC will run slower than that same code written in Microsoft C. To get a feel for the time that is involved in communicating from the board to the PC here is an example. The time it took a 486 computer running at 33MHz to Read the Position from the CLCI2000 Series Indexer running with uncompiled code under QuickBASIC was 285usec. The same code was run after it was compiled, and it took only 153usec. To Set the Position under these same conditions, it took 341usec uncompiled, and 269usec compiled.
11 CLCISUB1.BAS LIBRARY The CLCISUB1.BAS Library is for use with QuickBASIC, VisualBasic for DOS, or any other similar BASIC based programming languages. This Library is set up to run CLCI2000 Series Indexers at any open addresses. The following is a command list for all the usable Subroutines and Functions in this Library. This is a comprehensive list that will allow complete control of the CLCI2000 Series Index Boards. To use these commands you need to LOAD the file CLCISUB1.BAS into your main program and DECLARE the Subroutines and Functions you wish to use. That is all there is to it. Refer to your QuickBASIC or VisualBasic manual for more details. In all the below descriptions, these general guidelines apply: The ADDRESS is the setting on the 5 pin dip switch (see Installation). This is always given in the Hexadecimal format. For a setting of 11000, or a Base Address of 300, the correct format would be (&H300, ...) The AXIS# applies to the axis for that particular board (1, 2, 3, or 4) BUSY (ADDRESS, AXIS#)This Function will return a 1 if the axis is Busy (clock pulses are being generated). It will return a 0 if there is no motion at all. This is a good Input to use to wait until the motion has stopped before going on in the program. GET.BASE (BASE, MAX, RAMP) Because the motor speeds are created by a digital device, the resolution is limited to the clock oscillator that is used - in this case it is 9.8304 MHz. The result is a speed that is very close to the one desired - usually within a fraction of a percent. This Function will return the actual Base Speed obtainable with the given parameters. This is used to find out the exact Base Speed that will be used for the specified numbers. For example, if the desired Base Speed was 500, Max Speed was 10,000, and Ramp was 2,000, the resulting Base Speed would actually be: 499.7963 Hz. GET.MAX (BASE, MAX, RAMP) Because the motor speeds are created by a digital device, the resolution is limited to the clock oscillator that is used - in this case it is 9.8304 MHz. The result is a speed that is very close to the one desired - usually within a fraction of a percent. This Function will return the actual Max Speed obtainable with the given parameters. This is used to find out the exact Max Speed that will be used for the specified numbers. For example, if the desired Base Speed was 500, Max Speed was 10,000, and Ramp was 2,000, the resulting Base Speed would actually be: 9999.593 Hz. GET.RAMP (BASE, MAX, RAMP) Because the motor speeds are created by a digital device, the resolution is limited to the clock oscillator that is used - in this case it is 9.8304 MHz. The result is a Ramp that is very close to the one desired - usually within a fraction of a percent. This Function will return the actual Ramp obtainable with the given parameters. This is used to find out the exact Ramp that will be used for the specified numbers. For example, if the desired Base Speed was 500, Max Speed was 10,000, and Ramp was 2,000, the resulting Ramp would actually be: 2000.784 Hz/Second. GET.INPUT (ADDRESS, INPUT#) This Function will return the values for INPUT 1. A 1 means that the input is active, or at a TTL state of 0VDC. A 0 means that the input is at a TTL state of +5VDC or there is no connection to the input. GO.CCW ADDRESS, AXIS#This Subroutine will Index in the counterclockwise direction. The distance that the motor will move depends on the distance set by the A.INDEX.NUMBER command. The motion starts at Base Speed and Ramps up to Max Speed, sustains the Max Speed, and then finishes the move by ramping down to Base Speed and stopping. GO.CW ADDRESS, AXIS#This Subroutine will Index in the clockwise direction. The distance that the motor will move depends on the distance set by the A.INDEX.NUMBER command. The motion starts at Base Speed and Ramps up to Max Speed, sustains the Max Speed, and then finishes the move by ramping down to Base Speed and stopping. HARD.INPUT.CCW (ADDRESS, AXIS#) This Function will return the value of the -Hard Limit Switch. If the Limit Switch is ACTIVE or 0VDC, the Function will return a 1. If the Limit Switch is NOT ACTIVE, the function will return a 0. HARD.INPUT.CW (ADDRESS, AXIS#)
12 This Function will return the value of the +Hard Limit Switch. If the Limit Switch is ACTIVE or 0VDC, the function will return a 1. If the Limit Switch is NOT ACTIVE, the function will return a 0. HOME.CCW ADDRESS, AXIS#This Subroutine will HOME (sometimes called SLEW) the motor in the counterclockwise direction. The motion begins at Base Speed, ramps up to Max Speed and continues moving in that direction until the software instructs it to do something different, or a hardware Limit Switch is activated. HOME.CW ADDRESS, AXIS#This Subroutine will HOME (sometimes call SLEW) the motor in the clockwise direction. The motion begins at Base Speed, ramps up to Max Speed and continues moving in that direction until the software instructs it to do something different, or a hardware Limit Switch is activated. HOME.INPUT ADDRESS, AXIS#This Function will return the value for the Home Limit Switch. The Particular switch is determined by which Home Limit Switch you chose with the OUTPUTS Subroutine. The default value for this is the -Home Limit Switch. This will return a 1 if the Home Limit Switch is active (0VDC), and a 0 if the switch is not active. INDEX ADDRESS, AXIS#, NUMBERThis Subroutine will set the Index Number Register. This command is used in conjunction with the GO.CW and GO.CCW Command. The number in this register will not change until the next INDEX or POSITION Command is issued. A typical motor that is Half-stepped will go one revolution in 400 steps. INITIALIZE ADDRESS, AXIS#This Subroutine will set the all axes with initial settings. This must be done at the beginning of every program to ensure that all the default setting are made, and that all the outputs are off. The commands below are executed for each axis: INDEX 1000 MOTION 200, 4000, 200000 LIMIT.CONTROL 1, 1, 1 SET.ENCODER 0 OUTPUT 0, 0, 0, 0, 0, 1, 1 LIMIT.CONTROL ADDRESS, AXIS#, SOFT, MARK, HOMEThis Subroutine will either Activate or Deactivate the board features: SOFT LIMIT SWITCHES, ENCODER MARKER PULSE, OR HOME LIMIT SWITCH. A 1 will activate the feature, and a 0 will deactivate the feature. This command is useful for Homing Routines and other routines that are used to ramp down to base speed or to stop the motor. The Marker pulse is generally turned off until the rotary system is on the correct revolution to activate the pulse. MOTION ADDRESS, AXIS#, BASE, MAX, RAMP This Subroutine will set the Base Speed, Max Speeds, and Acceleration. All three values must be entered. The Base Speed is the speed at which the motor starts its motion. For Half-step applications, motors can sometimes start as high as 2,000 Hz. A Half-step speed of 400 will turn 1 revolution per second. It is normally desirable to start the motor as fast as possible. This will decrease the total time it takes to make the move. The Max Speed is the speed at which the motor will reach its top speed. For Half-step applications, motors can handle speeds as high as 20,000 Hz. A Max Speed of 20,000 will turn the motor 50 revolutions per second. The Ramp time is the rate or increase in the speed when the motion is going from Base Speed to Max Speed. This value is in Hz/Sec*Sec. A ramp value of 1,000 will increase the speed 1,000 Hz every second. ONE.AT.MAX.CCW ADDRESS, AXIS#This Subroutine will go one step at the maximum speed in the CCW Direction. This is an easy way to Jog the motor. ONE.AT.MAX.CW ADDRESS, AXIS#This Subroutine will go one step at the maximum speed in the CW Direction. This is an easy way to Jog the motor. ORIGIN.INDEX.CCW ADDRESS, AXIS# This Subroutine will move in the CCW Direction at base speed until the Encoder Marker is active. When the Encoder Marker is active the motion will stop. This is a good way to home the motor to a rotary position using the encoders
13 marker pulse. The marker pulse must be enabled by the LIMIT.CONTROL Command for this Command to work properly. ORIGIN.INDEX.CW ADDRESS, AXIS# This Subroutine will move in the CW Direction at base speed until the Encoder Marker is active. When the Encoder Marker is active the motion will stop. This is a good way to home the motor to a rotary position using the encoders marker pulse. The marker pulse must be enabled by the LIMIT.CONTROL Command for this Command to work properly. POSITION ADDRESS, AXIS#, VALUEThis Subroutine will go to the position specified. This routine reads the current position and calculates the distance required to move. It affects the Index Register which is changed by the A.INDEX Command. The Position can range from 0 to 16,777,215. Negative numbers cannot be used with this command. Be sure to stay within the specified range. RAMP.TO.BASE.CCW ADDRESS, AXIS#This Subroutine will ramp the motor from Max Speed to Base Speed. The move will be continued at Base Speed. This is a useful command for Homing to a Limit Switch. RAMP.TO.BASE.CW ADDRESS, AXIS#This Subroutine will ramp the motor from Max Speed to Base Speed. The move will be continued at Base Speed. This is a useful command for Homing to a Limit Switch. RAMP.TO.STOP.CCW ADDRESS, AXIS#This Subroutine will ramp the motor from Max Speed to Base Speed and stop. Be sure to use this command only when the motor is turning in the CCW direction. RAMP.TO.STOP.CW ADDRESS, AXIS#This Subroutine will ramp the motor from Max Speed to Base Speed and stop. Be sure to use this command only when the motor is turning in the CW direction. READ.ENCODER (ADDRESS, AXIS#)This Function will read the value in the Encoder Register. The Encoder Register can read a value up to 16,777,215. If the number goes beyond this number, the Register will spill over and start back again at 0. For example, the if the encoder sent out 16,777,226 quadrature pulses, the Encoder Register would actually read 10. This register can be read at any time. READ.POSITION (ADDRESS, AXIS#)This Function will return the Value in the Position Register. The Position Register can read a value up to 16,777,215. If the number goes beyond this number, the Register will spill over and start back again at 0. For example, the if the number of steps was actually 16,777,226 - the Position Register would actually read 10. This register can be read at any time. SET.ENCODER ADDRESS, AXIS#, VALUEThis Subroutine will set the number in the Encoder Register. The values should range between 0 and 16,777,215. SET.OUTPUT1 ADDRESS, OUT5, OUT4, OUT3, OUT2, OUT1, HOME.DIR.1, HOME.DIR.2This Subroutine will set the 5 outputs and the active direction for the Home Limit Switch. The first five numbers specify what the state of the five Outputs will be. A 1 for the Outputs will turn the Output ON, and a 0 will turn the output OFF. The last two numbers will specify which home switch will be chosen HOME.DIR.1 refers to AXIS 1 (also called axis A), and HOME.DIR.2 refers to AXIS 2 (Also refered to as Axis B). Only one home switch may be chosen for each axis at a given time. A 1 will specify that the + or CW direction Home Limit Switch will be chosen. A 0 will specify that the - or CCW direction Home Limit Switch has been chosen. For Example: SET.OUTPUT.1 1,1,1,0,0,1,1 would set outputs 5,4, and 3 ON, and outputs 2 and 1 Off. It would also set the +Home Limit Switch for both axis 1 and 2 to be the Active Switch. SET.OUTPUT2 ADDRESS, OUT10, OUT9, OUT8, OUT7, OUT6, HOME.DIR.3, HOME.DIR.4This Subroutine will set the 5 outputs and the active direction for the Home Limit Switch. The first five numbers specify
14 what the state of the five Outputs will be. A 1 for the Outputs will turn the Output ON, and a 0 will turn the output OFF. The last two numbers will specify which home switch will be chosen HOME.DIR.3 refers to AXIS 3 (also called Axis C), and HOME.DIR.4 refers to AXIS 4 (Also refered to as Axis D). Only one home switch may be chosen for each axis at a given time. A 1 will specify that the + or CW direction Home Limit Switch will be chosen. A 0 will specify that the - or CCW direction Home Limit Switch has been chosen. For Example: SET.OUTPUT.2 1,1,1,0,0,1,1 would set outputs 5,4, and 3 ON (at a 0 VDC level), and outputs 2 and 1 Off (at an OPEN level). It would also set the +Home Limit Switch for both axis 3 and 4 to be the Active Switch. SET.POSITION ADDRESS, AXIS#, VALUEThis Subroutine will set the number in the Position Register. The values should range between 0 and 16,777,215. SLEW.AT.BASE.CCW (ADDRESS, AXIS#)This Subroutine will SLEW the motor at Base Speed in the counterclockwise direction and continues moving in that direction until the software instructs it to do something different, or a hardware Limit Switch is activated. SLEW.AT.BASE.CW (ADDRESS, AXIS#)This Subroutine will SLEW the motor at Base Speed in the clockwise direction and continues moving in that direction until the software instructs it to do something different, or a hardware Limit Switch is activated. SOFT.INPUT.CCW (ADDRESS, AXIS#)This Function will return the value for the -Soft Limit Switch. A 1 will mean that the switch is active, and a 0 will mean the switch is not active. SOFT.INPUT.CW (ADDRESS, AXIS#)This Function will return the value for the +Soft Limit Switch. A 1 will mean that the switch is active, and a 0 will mean the switch is not active. STOP.MOTION ADDRESS, AXIS#This Subroutine will immediately stop the pulses. WAIT.FOR.STOP (ADDRESS, AXIS#)This Subroutine will pause the execution of the program until the Axis has completed its motion. NOTE: THERE ARE OTHER SUBROUTINES AND FUNCTIONS THAT ARE CONTAINED IN THIS FILE THAT SHOULD NOT BE USED OR MODIFIED IN ANY WAY - THEY ARE USED INTERNALLY BY THE ABOVE SUBROUTINES AND FUNCTIONS, AND ANY ALTERATION MIGHT PRODUCE UNEXPECTED RESULTS.
15 SAMPLE #1 (PROGRAM SAMPLE1.BAS ON THE CLCI2000 DISK) This is a sample program written for a single axis. If Input #1 is active, then the motor will move in the clockwise direction 5000 steps. If input #2 is active then the motor will move in the counterclockwise direction 4000 steps. It continues this loop indefinitely. PROGRAM FOR QUICKBASIC OR VISUALBASIC USING CLCISUB1.BAS DECLARE ()...this representation is for all the declare statements ADDR = &H300sets up the variable for the board address AXIS = 1sets up the variable for axis 1 INITIALIZE ADDR,AXISinitializes axis1 MOTION ADDR,AXIS,500,10000,230000sets up the base speed, max speed, and ramp values TOP.OF.LOOP: IF GET.INPUT(ADDR,1) = 1 THENlooks at input #1 INDEX ADDR,AXIS,5000sets up the index number GO.CW ADDR,AXISindexes the motor WAIT.FOR.STOP ADDR,AXISwaits until the motor has stopped END IF IF GET.INPUT.2 = 1 THENlooks at input #2 INDEX ADDR,AXIS,4000sets up the index number GO.CCW ADDR,AXISindexes the motor WAIT.FOR.STOP ADDR,AXISwaits until the motor has stopped END IF GOTO TOP.OF.LOOP
16 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
17 CLCISUBS.CPP PROGRAM FUNCTION DEFINITIONS The CLCISUBS.CPP Library is for use with C or C++ programming languages. It can also be used with other versions of C or C++ with little or no modifications to the code. This Library is set up to run CLCI2000 Series Indexers at any open address. The following is a command list for all the usable Functions in this Library. This is a comprehensive list that will allow complete control of the CLCI2000 Series Index Boards. Refer to your programming manual for information on how to load this Library. In all the below descriptions, these general guidelines apply: The ADDRESS is the setting on the 5 pin dip switch (see Installation). This is always given in the Hexadecimal format. For a setting of 11000, or a Base Address of 300, the correct format would be (0x300, ...) The AXIS applies to the axis for that particular board (1, 2, 3, or 4) BUSY (ADDRESS, AXIS) This will return a 1 if the axis is Busy (clock pulses are being generated). GET_INPUT (ADDRESS, INPUT#) This will return the value for the Specified input number 1 through 10. A return of a 1 will specify that the input is active (0VDC), and a 0 will specify that the input is not active (an open circuit). GO_CCW (ADDRESS, AXIS) This will Index in the clockwise direction. GO_CW (ADDRESS, AXIS) This will Index in the counterclockwise direction. HARD_INPUT_CCW (ADDRESS, AXIS) This will return the value of the -Hard Limit Switch. If the Limit Switch is ACTIVE or 0VDC, the Function will return a 1. If the Limit Switch is NOT ACTIVE, the function will return a 0. HARD_INPUT_CW (ADDRESS, AXIS) This will return the value of the +Hard Limit Switch. If the Limit Switch is ACTIVE or 0VDC, the function will return a 1. If the Limit Switch is NOT ACTIVE, the function will return a 0. HOME_CCW (ADDRESS, AXIS) This will HOME (sometimes called SLEW) the motor in the counterclockwise direction. HOME_CW (ADDRESS, AXIS) This will HOME (sometimes call SLEW) the motor in the clockwise direction. HOME_INPUT (ADDRESS, AXIS) This will return the value of the +Home Limit or -Home Lime (determined by the LIMIT_CONTROL). If the Limit Switch is Active, the function will return a 1. If the Limit Switch is NOT ACTIVE, the function will return a 0. INDEX (ADDRESS, AXIS, NUMBER) This will set the Index Number Register. INITIALIZE (ADDRESS, AXIS) This will set the axis with initial settings. This must be done at the beginning of every program to ensure that the all the default setting are made. LIMIT_CONTROL (ADDRESS, AXIS, SOFT, MARK, HOME) This will either Activate or Deactivate the board features: SOFT LIMIT SWITCHES, ENCODER MARKER PULSE, OR HOME LIMIT SWITCH. A 1 will activate the feature, and a 0 will deactivate the feature. MOTION (ADDRESS, AXIS, BASE, MAX, RAMP) This will set the Base Speed, Max Speeds, and Acceleration. All three values must be entered.