ICP DAS USA I-8091 User Manual

2-axis stepping/servo motor control card
Hide thumbs Also See for I-8091:

Advertisement

Quick Links

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
purchaser
Warning: ICP DAS assumes no liability for damage consequent to the
use of this product. ICP DAS reserves the right to change this manual at
any time without notice. The information furnished by ICP DAS is
believed to be accurate and reliable. However, no responsibility is
assumed by ICP DAS for it's use, nor for any infringements of patents or
other rights of third parties resulting from it's use.
Copyright
Copyright 2001 by ICP DAS. All right are reserved
Trademark
The names used for identification only maybe registered trademarks of
their respective companies.
http://www.icpdas.com
2-1
ICPDAS

Advertisement

Table of Contents
loading

Summary of Contents for ICP DAS USA I-8091

  • 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.
  • Page 3: Table Of Contents

    04/2003 I-8091 Contents 1. Introduction 1.1 System Block Diagram 1.2 DDA technology 2. Hardware 2.1 I-8000 hardware address 2.2 Register of I-8091 board 2.3 LED indicator 2-10 2.4 Hardware configuration 2-11 2.4.1 Limit switch configuration 2-11 2.4.2 Output pulse mode configuration 2-12 2.4.3 Direction configuration...
  • Page 4: Introduction

    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.
  • Page 5: Dda Technology

    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.
  • Page 8: Hardware

    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...
  • Page 9: Register Of I-8091 Board

    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...
  • Page 10: Led Indicator

    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...
  • Page 11: Hardware Configuration

    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...
  • Page 12: Output Pulse Mode Configuration

    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...
  • Page 13: Set Limit Switch As Normal Close Condition

    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.
  • Page 14: Connection

    I-8091 User Manual Version 2.0 04/2003 2.5 Connection 2.5.1 Pin assignment of connector CN2 DB25M-90 CW_PULSE1 CW_PULSE2 CCW_DIR1 CCW_DIR2 HOLD1 HOLD2 EXT_VCC (12~24V) ORG1 ORG2 LS11 LS21 LS14 LS24 EXT_GND Fig.(8) CN2 connector Table of CN2 connector’s pin assignment pin name...
  • Page 15: The Internal Circuit Of Cw_Pulse, Ccw_Dir, Hold

    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.
  • Page 16: Example Of Connection

    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...
  • Page 18: Software

    (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.
  • Page 20: Setting Commands

    (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.
  • Page 24: Stop Commands

    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);...
  • Page 25: Simple Motion Commands

    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...
  • Page 30: Interpolation Commands

    (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.
  • Page 35: Others

    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...
  • Page 37: Start Up And End Of Program

    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);...
  • Page 38 I-8091 User Manual Version 2.0 04/2003 } i8091CardType; i8091CardType card1; //------------------------------------------------------------------------- void main () card1.address=PortAddress[i8091Slot]; card1.DDA = 10; card1.AD = 5; card1.LSP = 5; card1.HSP = 100; card1.xmode = CW_CCW; card1.ymode = CW_CCW; card1.xdir = NORMAL_DIR; card1.ydir = NORMAL_DIR; card1.xson = ON;...
  • Page 39: Example

    I-8091 User Manual Version 2.0 04/2003 4. Example 4.1 Detect I-8091 card //--------------------------------------------------- // detect i8090,i8091,i8092 card //--------------------------------------------------- #include "8000.h" #include "s8090.h" #define i8090 0x0d #define i8091 0x0e #define i8092 0x0f #define NOCARD 0x00 #define MAX_SLOT_NO 8 unsigned int PortAddress[8]={0x080, 0x0a0, 0x0c0, 0x0e0, 0x140, 0x160, 0x180, 0x1a0};...
  • Page 40: Example: Demo.cpp

    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...

Table of Contents