Page 1
I-8091 User Manual Version 2.0 04/2003 I-8091 2-axis stepping/servo motor control card User Manual Version 1.0 06/2001 Edition Warranty: All products manufactured by ICP DAS are warranted against defective materials for one year from the date of delivery to the original...
Page 2
04/2003 I-8091 2-axis Stepping/Servo Motor Control Card The I-8091 card is a 2-axis command-type stepping motor control card on I-8000 platform, it also can be used as servo motor control (pulse input type). This card has an embedded CPU which performs motion commands transfered from I-8000 main system to increase the system performance.
04/2003 1. Introduction 1.1 System Block Diagram The I-8091 stepping motor control card is a micro-computer controlled, 2-axis pulse generation card. It includes a 2Kbytes-FIFO to receive motion command from host, a micro-computer for profile generation and protection, 2-axis DDA chip to execute DDA function when interpolation command is used, 2500Vrms optical isolation inserted for industrial application.
Version 2.0 04/2003 1.2 DDA Technology The DDA chip is the heart of I-8091 card, it will generate equal-space pulse train corresponding to specific pulse number during a DDA period. This mechanism is very useful to execute pulse generation and interpolation function.
Page 6
I-8091 User Manual Version 2.0 04/2003 (1) The required max. output pulse rate. PRmax = Vmax*N/60 2047 DDAcycle 1 1 024 PRmax = PRmax : max. output pulse rate. Vmax : max. speed (rpm). : the pulse number of stepping motor per revolution.
Page 7
High Speed = 247 pulse (4166.67*58*0.001024) The above results means that maximum speed is 500rpm when send command i8091_SET_VAR(0, 58, 2, 2, 247) to I-8091 card. Example: Pulse type input Servo Motor The specification of servo motor is 8000 pulse/rev, max. speed 3000 rpm, speed resolution 2 rpm.
I-8091 User Manual Version 2.0 04/2003 2 Hardware 2.1 I-8000 hardware address The hardware address of I-8000 main system is fixed as following table. There are 4 slots I-8000 and 8 slots I-8000. Slot 1 Slot 2 Slot 3 Slot 4 Slot 5 Slot 6 Slot 7 Slot 8...
Bit 1 Bit 0 0x00 0x0E The ID register is read only and its value is fixed as 0x0E. User can check this register to identify I-8091 card or not. Register Add. R/W Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1...
Bit 0 WRFF 0x01 W Command port I-8091 driver will send motion command by way of this register. Please do not use this register to write any thing, or I-8091 will not operate properly. Register Add. R/W Bit 7 Bit 6...
04/2003 2.4 Hardware Configuration 2.4.1 Limit switch configuration Because the profile generation and protection is executed by the CPU on I-8091 card, the limit switches must configure as following diagram. The motion command just can work properly. CCW/BW CW/FW Motor...
ON(OFF) state, the command i8091_SET_SERVO_ON(cardNo, sonX, sonY) provide parameters ON (1) and OFF (0) to turn ON or OFF. 2.4.5 Automatic protection The I-8091 card has a automatic protected system. (a) If X-aixs command is executing and moving toward CW/FW direction, http://www.icpdas.com...
I-8091 User Manual Version 2.0 04/2003 X-axis will immediately stop when LS14 is touched. To release this protection as long as X-axis move toward CCW/BW direction. (b) If X-aixs command is executing and moving toward CCW/BW direction, X-axis will immediately stop when LS11 is touched. To release this protection as long as X-axis move toward CW/FW direction.
Fig.(9) internal circuit of pulse output pin 2.5.3 The internal circuit of limit switch input Initially, the limit switch inputs of I-8091 board are normal open (N.O.), the I-8091 board will automatic protect when limit switch pin connect to EXT_GND. The user can use the command i8091_SET_NC (cardNo, YES) to let those limit switch input as normal close condition at the beginning of the user’s program.
I-8091 User Manual Version 2.0 04/2003 2.5.4 Example of connection CW_PULSE1 CW + CW - CCW_DIR1 CCW + CCW - HOLD1 HOLD + HOLD - DGND FAN-OUT TYPE (VEXTA) DRIVER Fig.(11) fan-out type driver (VEXTA's motor driver) CW_PULSE1 CW/PULSE CCW_DIR1...
Page 17
HOLD2 SGND EXT_VCC EXT_VCC (12V~24V) PHOME1 PHOME2 PLS11 EGND PLS21 PLS14 PLS24 PEMG EGND EXT_GND EGND S8091 card S8090 card Fig.(13) The connection between I-8090 and I-8091 for function testing or pulse feedback by I-8090 encoder card. http://www.icpdas.com 2-17 ICPDAS...
(execute 7188x.exe), and then run the target execution file as under PC system. About the I-8000’s resource or environment, please refer to the manual of I-8000 system or its software programming guide. The following section will introduce the I-8091’s functions and examples. 3.1 Functions Constants...
Page 19
I-8091 User Manual Version 2.0 04/2003 (b) If X-aixs command is executing and moving toward CCW/BW direction, X-axis will immediately stop when LS11 is touched. To release this protection as long as X-axis move toward CW/FW direction. (c) If Y-aixs command is executing and moving toward CW/FW direction, Y-axis will immediately stop when LS24 is touched.
(1) unsigned char i8091_REGISTRATION(unsigned char cardNo, unsigned int address); In order to distinguish more than one I-8091 card in I-8000 platform, the I-8091 cards should be registrated before using it. This command will assign a card number=“cardNo” to I-8091 card address=”address” . If there is not I-8091 at the given address, this command will return “NO”.
Page 21
I-8091 User Manual Version 2.0 04/2003 Restriction: ≤ ≤ DDA cycle ≤ ≤ Acc Dec ≤ ≤ Low Speed ≤ ≤ Low Speed High Speed 2047 Low_Speed >= Acc_Dec default value DDA_cycle = 10 Acc_Dec = 1 Low_Speed = 10...
Page 22
1 : REVERSE_DIR (5) i8091_SET_MODE(unsigned char cardNo, unsigned char modeX, unsigned char modeY) I-8091 card provide two kind output method. cardNo : board number 0~19. modeX : X axis output mode modeY : Y axis output mode 0 : CW_CCW...
Page 23
I-8091 User Manual Version 2.0 04/2003 set as N.C., those limit switches are active high. The auto-protection will automatically change the judgement whatever it is N.O. or N.C.. Limit switches: ORG1, LS11, LS14, ORG2, LS21, LS24, EMG. cardNo : card number 0~19.
This command will clear all of commands pending in the FIFO. The i8091_RESET_SYSTEM can be used as software emergency stop. The i8091_RESET_SYSTEM command will terminate the running command and clear all of setting, so, all I-8091 card’s parameter should be set again after call i8091_RESET_SYSTEM command. (11) i8091_EMG_STOP(unsigned char cardNo);...
I-8091 User Manual Version 2.0 04/2003 3.1.3 Simple motion commands (12) i8091_LSP_ORG(unsigned char cardNo, unsigned char DIR, unsigned char AXIS) Low speed move , and stop when ORG1/ORG2 limit switch is touched. cardNo : board number 0~19. Low speed Example: i8091_LSP_ORG(1, CCW, X_axis);...
Page 26
I-8091 User Manual Version 2.0 04/2003 i8091_LSP_PULSE_MOVE(1, X_axis, -2000); i8091_LSP_PULSE_MOVE(1, Y_axis, 20000); i8091_LSP_PULSE_MOVE(1, Y_axis, -2000); where when pulseN>0, move toward CW/FW direction when pulseN<0, move toward CCW/BW direction (15) i8091_HSP_PULSE_MOVE(unsigned char cardNo, unsigned char AXIS, long pulseN, unsigned int speed) move #pulseN.
Page 27
(18) i8091_CSP_MOVE(unsigned char cardNo, unsigned char dir, unsigned char axis, unsigned int move_speed) This command will accelerate/decelerate the selected axis’s motor to the “move_speed”. This command can be continuously send to I-8091 to dynamicly change speed. The rotating motor can be stop by the http://www.icpdas.com...
Page 28
I-8091 User Manual Version 2.0 04/2003 command i8091_STOP_X(), i8091_STOP_Y(), i8091_STOP_ALL(), or i8091_SLOW_STOP(). cardNo : board number 0~19. axis : selected axis. 1 : X axis 2 : Y axis dir : moving direction. 0 : CW 1 : CCW 0 < move_speed <= 2040...
Page 29
I-8091 User Manual Version 2.0 04/2003 getch( ); i8091_SLOW_DOWN(1, X_axis); getch( ); i8091_STOP_X(1); (20) i8091_SLOW_STOP(unsigned char cardNo, unsigned char AXIS) to decelerate to stop. cardNo : board number 0~19. SLOW_STOP Example: i8091_HSP_MOVE(1, CW, Y_axis); getch( ); i8091_SLOW_STOP(1, Y_axis); http://www.icpdas.com 2-29...
(22) i8091_INTP_LINE(unsigned char cardNo, long Xpulse, long Ypulse) This command will move a long distance (interpolation line) in X-Y plane. The CPU on I-8091 card will generate a trapezoidal speed profile of X-axis and Y-axis, and execute interpolation by way of DDA chip.
Page 31
I-8091 User Manual Version 2.0 04/2003 Restriction: − ≤ ≤ 524287 # Xpulse 524287 − ≤ ≤ 524287 #Ypulse 524287 Example: i8091_INTP_LINE(1,2000,-3000); i8091_INTP_LINE(1,-500,200); (23) i8091_INTP_LINE02(unsigned char cardNo, long x, long y , unsigned int speed , unsigned char acc_mode) This command will move a long interpolation line in X-Y plane. Host will automaticly generate a trapezoidal speed profile of X-axis and Y-axis by state-machine-type calculation method.
Page 32
I-8091 User Manual Version 2.0 04/2003 automaticly generate a trapezoidal speed profile of X-axis and Y-axis by state-machine-type calculation method. The i8091_INTP_CIRCLE02() only set parameters into the driver. User can directly call the do { } while (i8091_INTP_STOP( ) !=READY) to execute the computing entity.
Page 33
I-8091 User Manual Version 2.0 04/2003 x, y : end point of arc relate to present position. : radius of arc. if R>0 , the arc < 180degree if R<0 , the arc > 180 degree dir : moving direction.
Page 34
I-8091 User Manual Version 2.0 04/2003 Example: i8091_INTP_ ARC02(1,2000,-2000,2000,CW,100,0); do { } while( i8091_INTP_STOP()!=READY) ; //call state machine (26) unsigned char i8091_INTP_STOP() The above 3 state-machine-type interpolation commands i8091_INTP_LINE02(), i8091_INTP_CIRCLE02() and i8091_INTP_ARC02() must use i8091_INTP_STOP() simultaneously. The state-machine-type interpolation commands are only set parameters into the driver.
I-8091 User Manual Version 2.0 04/2003 3.1.5 Others (27) unsigned char i8091_LIMIT_X(unsigned char cardNo) to request the condition of X-axis limit switches cardNo : board number 0~19. MSB 7 0 LSB /EMG /FFFF /FFEF /LS14 /LS11 /ORG1 /ORG1 : original point switch of X-axis, low active.
Page 36
I-8091 User Manual Version 2.0 04/2003 (30) i8091_WAIT_Y(unsigned char cardNo) to wait Y-axis going to STOP state. cardNo : board number 0~19. (31) unsigned char i8091_IS_X_STOP(unsigned char cardNo) To check whether X axis is STOP or not. Return value 0 (NO) : not yet stop...
I-8091 User Manual Version 2.0 04/2003 3.2 Start up and end of program Start up program When you are going to use I-8091 card, there are some commands must be implement in previous. i8091_REGISTRATION(CARD1,0x80) set CARD1 address, (where CARD1=1) i8091_RESET_SYSTEM(CARD1);...
5 3.4 0 2 : Y-axis encoder value 1 0 0.1 0 : Z-axis encoder value the dot(.) stands for which axis. //-------------------------------------------------------------------- 4.3 Example:DEMO1.cpp //-------------------------------------------------------------------- // demo1.cpp for I-8091 card // This a simple program to test I-8091 command i8091_INTP_LINE() i8091_INTP_LINE02() //-------------------------------------------------------------------- http://www.icpdas.com 2-40 ICPDAS...