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+.
18 ONE_AT_MAX_CCW (ADDRESS, AXIS) This will go one step at the maximum speed in the CCW Direction. ONE_AT_MAX_CW (ADDRESS, AXIS) This will go one step at the maximum speed in the CW Direction. ORIGIN_INDEX_CCW (ADDRESS, AXIS) This will move at base speed until the EZ Channel of the Encoder goes active, and the pulses will stop. ORIGIN_INDEX_CW (ADDRESS, AXIS) This will move at base speed until the EZ Channel of the Encoder goes active, and the pulses will stop. POSITION (ADDRESS, AXIS, VALUE) This will go to the position specified. RAMP_TO_BASE_CCW (ADDRESS, AXIS) This will ramp the motor from Max Speed to Base Speed. RAMP_TO_BASE_CW (ADDRESS, AXIS) This will ramp the motor from Max Speed to Base Speed. RAMP_TO_STOP_CCW (ADDRESS, AXIS) This will ramp the motor from Max Speed to Base Speed and stop. RAMP_TO_STOP_CW (ADDRESS, AXIS) This will ramp the motor from Max Speed to Base Speed and stop. READ_ENCODER (ADDRESS, AXIS) This will read the value in the encoder register. READ_POSITION (ADDRESS, AXIS) This will return the Value in the Position Register. SET_ENCODER (ADDRESS, AXIS, VALUE) This will set the number in the Encoder Register. The values should range between 0 and 16777215. SET_OUTPUT1 (ADDRESS, OUT5, OUT4, OUT3, OUT2, OUT1, HOME.DIR.1, HOME.DIR.2) This will set the 5 outputs and the active direction for the Home Limit Switch. The 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 direction for the home switch (+ or -) will be chosen. Only one direction for the 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_OUTPUT1 &H300,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.1, HOME.DIR.2) This will set the 5 outputs and the active direction for the Home Limit Switch. The 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 direction for the home switch (+ or -) will be chosen. Only one direction for the 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_OUTPUT2 &H300,1,1,0,1,0,0,0,1 would set outputs 5 and 3 ON, and outputs 4,2 and 1 Off. It would also set the +Home Limit Switch for axis 3 and the -Home Limit Switch for Axis 4. SET_POSITION (ADDRESS, AXIS, VALUE) This will set the number in the Position Register.
19 SLEW_AT_BASE_CCW (ADDRESS, AXIS) This will cause the motor to move at base speed in the CCW direction. SLEW_AT_BASE_CW (ADDRESS, AXIS) This will cause the motor to move at base speed in the CW direction. SOFT_INPUT_CCW (ADDRESS, AXIS) This 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 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 (ADDRESS, AXIS) This will immediately stop the pulses. WAIT_FOR_STOP (ADDRESS, AXIS) This will pause the execution of the program until the Axis has completed its motion. NOTE: THERE ARE OTHER FUNCTIONS THAT ARE CONTAINED IN THIS FILE THAT SHOULD NOT BE USED OR MODIFIED IN ANY WAY - THEY ARE USED INTERNALLY BY THE ABOVE FUNCTIONS, AND ANY ALTERATION MIGHT PRODUCE UNEXPECTED RESULTS. SAMPLE PROGRAM #3 This program will move a distance of 400 steps in the clockwise direction, with a base speed of 100 steps/second and a Max Speed of 2000 steps/second. The ramping for both acceleration and deceleration would be 100,000 steps/second/second. //PROGRAM FOR BORLAND C++ #include CLCISUBS.CPP void main ( ) { int address = 0x300;this sets up the correct address int axis = 1;this sets up the axis number INITIALIZE (address, axis);this initializes the board MOTION (address, axis, 100, 2000, 100000);this sets up the motion INDEX (address, axis, 400);this sets up the distance to move GO_CW (address, axis);this initiates the move }
20 PROGRAMMING IN WINDOWS USING THE CLCI2000 INDEXER WITH WINDOWSTo communicate with the CLCI2000 Indexer, the programming language needs to have access to the computer bus. While running under windows, this bus can be controlled through a Dynamic Link Library, commonly called a DLL. A DLL will allow procedures to be performed that are not part of the standard Windows Instruction Set. This DLL has been extensively tested on Visual Basic for Windows, and can also be used for other Software Languages that can use a Dynamic Link Library. USING THE DLL WITH VISUAL BASIC FOR WINDOWSThe process of loading the DLL into the main application is very simple. This process will be described in this section. The first step is to choose a new project. This can be done by choosing FILE, New Project. The next step is to add the declaration file WIN2000.BAS. To do this, choose, FILE, Add File. The correct directory should be put in for the position of WIN2000.BAS. It is recommended to copy the WIN2000.BAS file into the directory C:\VB (the file WIN2000.DLL should also be in this directory). Once the file is selected, click OK and the file will be added to the Project. The project window (Window, Project) can be chosen to verify that this file has been added. This is all that needs to be done with the WIN2000.BAS file. No modifications to this file are necessary from this point on. The file should never be modified for any reason. The final step is to write the code. An example of this would be to create a Command Button. the code in the form would be: Object: Command1 Procedure: Click. Sub Command1_Click () Dim a As Integer a = INITIALIZE(&H300, 1) a = INDEX(&H300, 1, 400) a = GO_CW (&H300, 1) End Sub When the Command Button is Clicked, the Motor will index 400 steps. All the other commands can be used in this same manner. .
21 WIN2000.BAS PROGRAM LISTING Below is the file listing for the WIN2000.BAS declaration file including all the Declarations needed to use the DLL with Visual Basic for Windows. *--------------------------------------------------------------- * ANAHEIM AUTOMATION DLL LIBRARY SUPPORT * DATE: DECEMBER 22, 1993 * Function Declarations *----------------------------------------------------------*/ Declare Function BUSY Lib win2000.dll (ByVal address%, ByVal axis%) As Integer Declare Function GET_INPUT Lib win2000.dll (ByVal address%, ByVal input_number%) As Integer Declare Function GET_LO_MID_HI Lib win2000.dll (ByVal address%, ByVal axis%, ByVal setting&) As Integer Declare Function GO_CW Lib win2000.dll (ByVal address%, ByVal axis%) As Integer Declare Function GO_CCW Lib win2000.dll (ByVal address%, ByVal axis%) As Integer Declare Function HALT Lib win2000.dll (ByVal address%, ByVal axis%) As Integer Declare Function HARD_INPUT_CCW Lib win2000.dll (ByVal address%, ByVal axis%) As Integer Declare Function HARD_INPUT_CW Lib win2000.dll (ByVal address%, ByVal axis%) As Integer Declare Function HOME_CCW Lib win2000.dll (ByVal address%, ByVal axis%) As Integer Declare Function HOME_CW Lib win2000.dll (ByVal address%, ByVal axis%) As Integer Declare Function HOME_INPUT Lib win2000.dll (ByVal address%, ByVal axis%) As Integer Declare Function INDEX Lib win2000.dll (ByVal address%, ByVal axis%, ByVal setting&) As Integer Declare Function INITIALIZE Lib win2000.dll (ByVal address%, ByVal axis%) As Integer Declare Function LIMIT_CONTROL Lib win2000.dll (ByVal address%, ByVal axis%, ByVal soft%, ByVal marker%, ByVal home%) As Integer Declare Function MOTION Lib win2000.dll (ByVal address%, ByVal axis%, ByVal basespeed&, ByVal maxspeed&, ByVal rampvalue&) As Integer Declare Function ONE_AT_MAX_CCW Lib win2000.dll (ByVal address%, ByVal axis%) As Integer Declare Function ONE_AT_MAX_CW Lib win2000.dll (ByVal address%, ByVal axis%) As Integer Declare Function ORIGIN_INDEX_CCW Lib win2000.dll (ByVal address%, ByVal axis%) As Integer Declare Function ORIGIN_INDEX_CW Lib win2000.dll (ByVal address%, ByVal axis%) As Integer Declare Function POSITION Lib win2000.dll (ByVal address%, ByVal axis%, ByVal setting&) As Integer Declare Function RAMP_TO_BASE_CCW Lib win2000.dll (ByVal address%, ByVal axis%) As Integer Declare Function RAMP_TO_BASE_CW Lib win2000.dll (ByVal address%, ByVal axis%) As Integer Declare Function RAMP_TO_STOP_CW Lib win2000.dll (ByVal address%, ByVal axis%) As Integer Declare Function RAMP_TO_STOP_CCW Lib win2000.dll (ByVal address%, ByVal axis%) As Integer Declare Function READ_ENCODER Lib win2000.dll (ByVal address%, ByVal axis%) As Long Declare Function READ_POSITION Lib win2000.dll (ByVal address%, ByVal axis%) As Long Declare Function SET_ENCODER Lib win2000.dll (ByVal address%, ByVal axis%, ByVal setting&) As Integer Declare Function SET_OUTPUT_1 Lib win2000.dll (ByVal address%, ByVal out5%, ByVal out4%, ByVal out3%, ByVal out2%, ByVal out1%, ByVal a_home_dir%, ByVal b_home_dir%) As Integer Declare Function SET_OUTPUT_2 Lib win2000.dll (ByVal address%, ByVal out10%, ByVal out9%, ByVal out8%, ByVal out7%, ByVal out6%, ByVal c_home_dir%, ByVal d_home_dir%) As Integer Declare Function SET_POSITION Lib win2000.dll (ByVal address%, ByVal axis%, ByVal setting&) As Integer Declare Function SLEW_AT_BASE_CCW Lib win2000.dll (ByVal address%, ByVal axis%) As Integer Declare Function SLEW_AT_BASE_CW Lib win2000.dll (ByVal address%, ByVal axis%) As Integer Declare Function SOFT_INPUT_CCW Lib win2000.dll (ByVal address%, ByVal axis%) As Integer Declare Function SOFT_INPUT_CW Lib win2000.dll (ByVal address%, ByVal axis%) As Integer Declare Function WAIT_FOR_STOP Lib win2000.dll (ByVal address%, ByVal axis%) As Integer
22 CLCI2004 PROGRAM GENERATOR The CLCI2000 Series Indexers can be easily controlled by using the CLCI2004 Software. This software has been written to enable non programmers to easily control the indexer. The CLCI2004 Software has the capabilities to write programs using the user-friendly editor. The Software will allow control of all 4 axes of motion. If motion of the step motors needs to be combined with other computer boards or computer software there are no problems using ANAHEIM AUTOMATIONs custom libraries. Two libraries have been created to use with Microsoft QuickBASIC and Borland C++ to allow the user to write software to control the CLCI2000 Series Indexers along with any other computer boards they might need. These libraries contain all the Subroutines and Functions needed to control the Indexer. The Main Screen of the software is broken up into 3 windows - The Program Window in the upper left had corner, the Function Window in the lower left hand corner, and the Command Window on the right side of the Screen. On the left hand side of the screen, the current programming line is also displayed along with the MODE that the program is currently in. The Program Window will show 10 lines of the program at a time. When a line is added to the program, it will appear in this window. The Function Window allows the user to do various things in conjunction with the Function Keys on the keyboard. There is an OPTION MENU that can be selected by typing the function key F7. This will bring up the Option Menu which contains additional commands. Typing F7 again will return back to the original Function Window. The Command Window contains all the commands that will be used to program with. This window was made available to help the user to write programs. +)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))), * * *+)))))))))))))))))))))))))))))))))))))), +)))))))))))))))))))), * **1 NUM 400 NUMBER OF STEPS 400 * *+ CW MOTION * * **2 BASE 50 BASE SPEED 50 * *- CCW MOTION * * **3 MAX 500 MAX SPEED 500 * *G GO (INDEX) * * **4 RAMP 1000 RAMP OF 1000 * *H HOME * * **5 DIR+ CW DIRECTION * *P INDEX TO POSITION * * **6 GO INDEX * * * * **7 BASE 1000 BASE SPEED 1000 * *I IF INPUTS THEN... * * **8 MAX 20000 MAX SPEED 20000 * *L LOOP TO X,Y TIMES * * **9 RAMP 200000 RAMP OF 200000 * *O SET OUTPUTS TO * * **10 DIR- CCW * *J JUMP TO LINE * * *.))))))))))))))))))))))))))))))))))))))- *U UNTIL * * * *Q QUIT * * * * * * * LINE 3 *T UNITS/SCALE * * * MAIN MODE *S SET POSITION * * * *W WAIT X SECONDS * * * * * * *+)))))))))))0))))))))))))0)))))))))))), *C CHANGE MENU * * ** F1 INSERT * F4 TERMINAL* F7 MORE * * * * ** F2 ADD * F5 SAVE * F8 PROG RUN* .))))))))))))))))))))- * ** F3 DELETE * F6 LOAD * F9 QUIT * * *.)))))))))))2))))))))))))2))))))))))))- * .))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))- RUNNING THE SOFTWAREThe CLCI2000 was shipped with Anaheim Automations CLCI2000 SERIES DISK. This disk contains the software libraries that are needed to control the CLCI2000 Series indexers. Choose the CLCI2000 Software by typing CLCI2004.EXE at the prompt. A screen similar to what is shown above should appear on your computer monitor with sample program Sample1 loaded. THE FUNCTION WINDOWThe Function window is located in the lower left hand corner. This window shows the commands that execute many functions, including Editing a program, Running a program, Saving and Loading program, and much more. The F7 key
23 will toggle between two different windows which are shown below. The appropriate Function Window must be showing to activate that particular function. +)))))))))))))))0)))))))))))))))0))))))))))))))), * F1 INSERT * F4 TERMINAL * F7 MORE * * F2 ADD * F5 SAVE * F8 PROG RUN * * F3 DELETE * F6 LOAD * F9 QUIT * .)))))))))))))))2)))))))))))))))2)))))))))))))))- +)))))))))))))))0)))))))))))))))0))))))))))))))), * F1 PROG STOP * F4 PRINT * F7 MORE * * F2 SINGLE STEP* * * * F3 CLEAR PROG * * F9 QUIT * .)))))))))))))))2)))))))))))))))2)))))))))))))))- F1 - INSERT To insert a line into the body of the program, move the Highlighted Line to just below where the inserted information is to be placed. Type F1 and a new line will be opened up showing were the line will be entered. Enter as many lines of information as needed. To get out of this mode, type either Enter or Escape. F2 - ADD To add lines to the end of a program, type F2. This will go into ADD MODE. Enter as many lines of information as needed. To get out of ADD MODE, hit the Enter Key or Escape Key. F3 - DELETE To delete a line, place the Current Line (or Highlighted Line) on the line that is to be deleted. Press the F3 Key and the line will be deleted and the program will be readjusted. F4- TERMINAL This Mode allows the user to directly control the motion of all axes. The TERMINAL MODE screen has a section for information on each axis. The command list that is available in terminal mode is contained in a window on the right hand side. F5 SAVE To Save a File on Disk, type F5. This will go to a screen listing all the Files in the Directory the Software is running in. Enter the name for the Program you wish to Save. There is no need to include the .CL2 extension, the Software will include this when it saves the file. F6 LOAD To Load a File on Disk, type F6. This will go to a screen listing all the Files in the Directory the Software is running in. Enter the name of the Program you wish to Load. The .CL2 extension is not necessary. F7- MORE Typing the key F7 will cause the Function Window to toggle for more commands. F8- PROG RUN To Run a program, type F8. This will execute the program at line 1 until a quit command is reached. F9 - QUIT Type the F9 key to Exit the Software. Be sure to save the program before exiting the program.
24 By Pressing the F7 key, these commands will be available. F1 - PROG STOP Type the F1 Key to stop the execution of the program. If the program fails to stop, hold down the F1 key. NOTE: TheF1 key should not be used as an emergency stop for your system.F2 - SINGLE STEP Type the F2 Key to step the program one line at a time. This is a great way to check the program for any mistakes. F3 - CLEAR PROGRAM Type the F3 Key to clear the current program. F4 - PRINTING A PROGRAM Type the F4 Key to print the current program to a printer. The software will select LPT1 for the printing. F7 - MORE Typing the key F7 will cause the Function Window to toggle to the original command window. F9 - QUIT Type the F9 key to Exit the Software. Be sure to save the program before exiting the program. The software command will ask if you are sure you want to quit. THE PROGRAM WINDOWThe Program Window displays the contents of the program that is loaded. An example of how the program window looks with program SAMPLE1 is shown below. This program is shipped on the CLCI2000 SERIES DISK. +)))))))))))))))))))))))))))))))))))))), *1 AXIS A AXIS A IS ACTIVATED * *2 NUM 400 NUMBER OF STEPS 400 * *3 BASE 50 BASE SPEED 50 * *4 MAX 500 MAX SPEED 500 * *5 RAMP 1000 RAMP OF 1000 * *6 DIR+ CW DIRECTION * *7 FIN FINISH THE MOVE * *8 GO INDEX * *9 BASE 1000 BASE SPEED 1000 * *10 MAX 20000 MAX SPEED 20000 * .))))))))))))))))))))))))))))))))))))))- The first column is the program line numbers. Up to 1000 line programs can be entered. The second column shows the command. The third and fourth columns show the values for the commands. The fifth and final column is the description section. This is an area that can be used to write notes that make the program easier to read. ENTERING A PROGRAMTo enter lines in a program, type F1 for INSERT or F2 for ADD. The lower FUNCTION WINDOW will blank out and the Program will wait for a key to be pressed. The Current Line will be shown in RED, with the line number shown in the area just below the Program Window. To get out of INSERT MODE, or ADD MODE type the Enter Key. To enter a command at the Current Line, type the appropriate letter corresponding to the command shown in the Command Window. This bright white key is called the Command Key.
25 THE COMMAND WINDOWAll the Commands available are listed in the window that appears on the right half of the computer screen, called the Command Window. The information is contained in two windows toggled by typing a C for Change Menu. Below is a description for all the commands. Once the Command Key is depressed, the Function Window will be cleared and the user will be prompted for more information. All the commands will allow for user comments to be entered. +)))))))))))))))))))), +)))))))))))))))))))), * * * * *+ CW MOTION * *R RAMP * *- CCW MOTION * *B BASE SPEED * *G GO (INDEX) * *M MAX SPEED * *H HOME * *N NUMBER TO INDEX * *P INDEX TO POSITION * * * * * *E ENCODER ON/OFF * *I IF INPUTS THEN... * *V ENCODER RETRY # * *L LOOP TO X,Y TIMES * *Y ENCODER WINDOW * *O SET OUTPUTS TO * *Z ENCODER RESOLUTION* *J JUMP TO LINE * * * *U UNTIL * *A AXIS SELECT * * * *F FINISH MOVE * *Q QUIT * * * *T UNITS/SCALE * * * *S SET POSITION * * * *W WAIT X SECONDS * * * * * * * *C CHANGE MENU * *C CHANGE MENU * * * * * .))))))))))))))))))))- .))))))))))))))))))))-
26 CLCI2004 PROGRAM GENERATOR COMMAND DICTIONARY Below is a summary of the commands that are available on the CLCI2004 Program Generator. These command definitions will differ from those command available in the Libraries provided by Anaheim Automation. This program is generally used to setup a machine - and is not intended to be used in the final design of the machine. The Libraries are intended for this purpose, and therefore contain commands that allow for more flexibility and control. Use the Libraries as the basis for machine control. COMMAND SUMMARY CommandCommandDescription Key AAxis Selectselects the Active Axes BBase Speedsets the Base speed EEncoder On/Offeither enable or disables the encoder FFinish Movewaits until motion has stopped and autocorrects GGo Index Numberindexes the number to index HHomehomes the motors IIf Inputs...loops to a line number if the Inputs match the value JJump to Linejumps to another line LLoop to Lineloop to another line a specified number of times MMax Speedsets the Maximum Speed NNumber to Indexsets the number to index OSet Outputssets the outputs PGo to Positionindexes to a given position QQuitstops program execution RRampsets the ramp value SSet Positionsets the position value TUnits (Scale)sets the Scale Factor UUntil inputs...loops to a line until the Inputs match the value VRetriessets the Encoder WWaitwaits a certain time before continuing on YEncoder Windowsets the Encoder Window ZEncoder Resolutionsets the Encoder Resolution ±Directionsets the Direction COMMAND DICTIONARYAXIS SELECTION (any combination of A,B,C, OR D) To select an Axis, type the Command Key A. The Function Window will ask for the user to Enter the appropriate axes to be Active. Enter the Letters ABCD for all axes, or enter the Axis letters for any combination of Active Axes. The default value for Active Axes is A. BASE SPEED (.001 to 2,50,000) To select the Base Speed, type the Command Key B. This command will set the Base Speed. The default for this number is 50. DIRECTION (+ or -) To select the direction, type the Command Key + or -. This parameter specifies which direction the motor will turn when indexed by the Go Command. The default value for this is + or the Clockwise Direction. ENCODER ON/OFF (0 or 1)
27 To select Encoder On/Off, type the Command Key E. This parameter specifies if Encoder Correction is to be Enabled or Disabled. A 1 will Enable Encoder Correction, a 0 will Disable it. The Indexer will do all the appropriate corrections needed when the Finish Move (F) command is executed. The default value for this is 0, or no encoder correction. ENCODER RESOLUTION (any number) To select Encoder Resolution, type the Command Key Z. This parameter specifies how many lines the Encoder has. The default value for this is 400 lines. ENCODER RETRIES (any real number) To select Encoder Retries, type the Command Key V. This parameter specifies how many times the CLCI2000 will try to obtain the correct position. For a value set at 1, the CLCI2000 will move the correct distance, and then retry once if the encoder value does not match the number of steps the motor was supposed to take. When the CLCI2000 does a retry, it will always retry the move at the Base Speed. The default value for Encoder Retries is 0. ENCODER WINDOW (any integer) To select Encoder Window, type the Command Key Y. This is the allowable error the encoder might have at the end of a move without correcting. The units for this is in Quadrature Pulses. For a 400 line encoder, there will be 1600 quadrature pulses per one revolution. The default value for this is 20. FINISH MOVE (no value) To select Finish Move, type the Command Key F. This is the command that will wait until all motion is complete before continuing on in the program. This is the Command that also tells the Indexer to autocorrect at this time if the Encoder Correction is Enabled. This command is useful because it enables other operations to be done while an axis is indexing. The sample program below is a section of a larger program. It shows how a Finish command might be used. 10 AXIS A 11 N4000 12 + 13 G 14 UNTL XXXXX XXX1X 14 15 AXIS B 16 - 17 GO 18 AXIS AB 19 FNSH Line 10 chooses Axis A as the only active axis. It sets the number to index at 4000, and initiates an index in the Clockwise Direction. After the Go Command, the program will wait until input 2 becomes active (0 VDC) before it continues on. Once Input 2 is activated, the program will select Axis B and index in the Counterclockwise direction. The Finish Command then will cause the program to wait until the active axes have completed their motion before continuing on. GO (INDEX) (no value) To select Go, type the Command Key G. This is the command that will index the motor the number of steps specified by the Number To Index Command. NOTE: To halt program execution until the motion on all axes has stopped, include the Finish Command in the appropriate position.