You are on page 1of 97

Technical Manual of ADT-series Motion Controlling Card

A D T E C H ( S H E N Z H E N ) C N C T E C H N O L O G Y C O . , LT D

Add:36th building, Majialong Industrial Park,Nanshan District,Shenzhen City,Guangdong Province,China Post Code: 518052 Tel:+86 755 26099116 Fax: +86 755 26722718

ADT-series Servo/Stepping Motion Card

Statement about the Copyright


The book property right in this manual belongs to Adtech Digital Tech Co., Ltd only (Further it is Adtech for short). Without the permission of Atech, anyone can not willfully imitate, copy, copy out or re-translate it. The manual has no any forms of guarantee, experession of stand point or other suggestions. The Adtech and its staff have no any responsibilities if there is a information given away secret to bring about a loss of interests or stop of deeds. Besides, the sizes and data are only for reference in the manual. Its contents may be innovotaed without any further notice.

Statement about the Trade Mark


The product names involving in the manual are only used to distinguish while they may belong to other different trade marks or copyrights. Our statement is as follows: INTEL, PENTIUM are trade marks of INTEL Company. All WINDOWSMSDOS are product trade marks of DT-850 is trade mark of Adtech Company. The marks not mentioned above belong to companies registered. MICROSOFT Company.

All rights reserved


A D T E C H ( S H E N Z H E N ) C N C T E C H N O L O G Y C O . , LT D

2 http://www.adtechen.com

ADT-series Servo/Stepping Motion Card

Contents
Chapter I General Information ............................................................................................................................ 5 Chapter II Hardware Accessories Supply............................................................................................................ 6 Chapter III Electric Connection ........................................................................................................................... 7 PCI CARD ELECTRIC CONNECTION ............................................................................................................................. 7 PC104 CARD ELECTRIC CONNECTION......................................................................................................................... 8 ChapterIV Performance Introduction.................................................................................................................... 9 PCI bus type ........................................................................................................................................................... 9 ADT-856 ADVANCED 6-AXIS SERVO/STEPPER MOTION CONTROL CARD ....................................................................... 9 FEATURES .................................................................................................................................................................... 9 INPUT/OUTPUT INTERFACES DESCRIPTION ................................................................................................................... 9 ADT-8946A1 ADVANCED 4-AXIS SERVO/STEPPER MOTION CONTROL CARD .............................................................. 14 FEATURES .................................................................................................................................................................. 14 INPUT/OUTPUT INTERFACES DESCRIPTION ................................................................................................................. 14 ADT-8948A1 ADVANCED 4-AXIS SERVO/STEPPER MOTION CONTROL CARD .............................................................. 19 FEATURES ................................................................................................................................................................... 19 INPUT/OUTPUT INTERFACES DESCRIPTION ................................................................................................................. 19 ADT-8940A1 ADVANCED 4-AXIS SERVO/STEPPER MOTION CONTROL CARD .............................................................. 24 FEATURES .................................................................................................................................................................. 24 INPUT/OUTPUT INTERFACES DESCRIPTION ................................................................................................................. 24 ADT-8960A1 ADVANCED 6-AXIS SERVO/STEPPER MOTION CONTROL CARD .............................................................. 27 FEATURES .................................................................................................................................................................. 27 INPUT/OUTPUT INTERFACES DESCRIPTION ................................................................................................................. 27 ADT-8920A1 ADVANCED 2-AXIS SERVO/STEPPER MOTION CONTROL CARD .............................................................. 30 FEATURES ................................................................................................................................................................... 30 INPUT/OUTPUT INTERFACES DESCRIPTION .................................................................................................................. 30 PCI104 bus type ................................................................................................................................................... 32 ADT-836 ADVANCED 6-AXIS SERVO/STEPPER MOTION CONTROL CARD ..................................................................... 32 FEATURES .................................................................................................................................................................. 32 INPUT/OUTPUT INTERFACES DESCRIPTION ................................................................................................................. 32 SET ADDRESS: ............................................................................................................................................................ 35 ADT-860 ADVANCED 4-AXIS SERVO/STEPPER MOTION CONTROL CARD ..................................................................... 37 FEATURES .................................................................................................................................................................. 37 INPUT/OUTPUT INTERFACES DESCRIPTION ................................................................................................................. 37 SET ADDRESS ............................................................................................................................................................. 39 ADT-864 ADVANCED 4-AXIS SERVO/STEPPER MOTION CONTROL CARD ..................................................................... 40 FEATURES .................................................................................................................................................................. 40 INPUT/OUTPUT INTERFACES DESCRIPTION ................................................................................................................. 40 SET ADDRESS ............................................................................................................................................................. 42 Chapter V Installing Software ............................................................................................................................ 43 INSTALL DRIVER IN WIN2000 .................................................................................................................................... 43 INSTALL DRIVER IN WINXP ....................................................................................................................................... 44
3 http://www.adtechen.com

ADT-series Servo/Stepping Motion Card

Chapter VI Functions Introduction.................................................................................................................... 45 QUANTITATIVE DRIVING ............................................................................................................................................ 45 CONTINUOUS DRIVING............................................................................................................................................... 45 VELOCITY CURVE....................................................................................................................................................... 45 POSITION MANAGEMENT ........................................................................................................................................... 47 LOGICAL POSITION COUNTER AND ACTUAL POSITION COUNTER ................................................................................ 47 COMPARE REGISTER AND SOFTWARE LIMIT ............................................................................................................... 47 INTERPOLATION ......................................................................................................................................................... 47 INTERPOLATION OF ACCELERATION/DECELERATION DRIVING.................................................................................. 49 PULSE OUTPUT MODE................................................................................................................................................. 50 POSITION LOCK .......................................................................................................................................................... 50 AUTOMATICALLY BACK TO HOME .............................................................................................................................. 50 EXTERNAL SIGNAL DRIVING ...................................................................................................................................... 50 STEPPING INTERPOLATION ......................................................................................................................................... 51 Chapte VII Basic Library Functions List of ADT-series Motion Control Card.............................................. 52 ChapteVIII Details of Basic Library Functions .................................................................................................. 57 BASIC PARAMETERS SETTINGS ................................................................................................................................... 57 DRIVING STATUS CHECKING....................................................................................................................................... 62 MOVING PARAMETER SETTINGS................................................................................................................................. 63 MOVING PARAMETER CHECKING ............................................................................................................................... 67 LIBRARY FUNCTION VERSION CHECKING ................................................................................................................... 68 BASIC DRIVING .......................................................................................................................................................... 68 SYNCHRONIZED FUNCTION SETTING .......................................................................................................................... 72 COMPOSITE DRIVING ................................................................................................................................................. 74 SWITCH QUANTITY INPUT/OUTPUT ............................................................................................................................ 79 Chapter IX Motion Control Function Library Guide ...................................................................................... 82 Chapter X Key Points of Motion Control Development................................................................................... 84 INITIALIZE THE CARD ............................................................................................................................................. 84 SPEED SETTING .......................................................................................................................................................... 84 STOP0, STOP1 AND STOP2 SIGNAL ................................................................................................................... 85 SERVO SIGNAL ......................................................................................................................................................... 85 Chapter XI Examples of Motion Control Developing and Programming ...................................................... 86 INITIALIZATION PART ................................................................................................................................................. 86 SET SPEED PART ......................................................................................................................................................... 86 PART FUNCTION INTRODUCES..................................................................................................................................... 87 I/O OPERATION........................................................................................................................................................... 95 Chapter XII Troubleshooting.............................................................................................................................. 96 MOTION CARD DETECTION FAILED ............................................................................................................................ 96 MALFUNCTION OF MOTOR ......................................................................................................................................... 96 SWITCH QUANTITY INPUT ERROR............................................................................................................................... 96 SWITCH QUANTITY OUTPUT ERROR ........................................................................................................................... 97 CODER ERROR............................................................................................................................................................ 97

4 http://www.adtechen.com

ADT-series Servo/Stepping Motion Card

Chapter I General Information


slot type card type axis number motor max output pulse frequency ADT-856 6 16*6 ADT-89 46A1 4 16*4 4MHZ Symmetric linear acceleration/deceleration asymmetric linear acceleration/deceleration S-curve acceleration/deceleration fixed 2-6 fixed 2-4 random23 ADT-894 8A1 4 16*4 PCI ADT-894 0A1 4 16*4 ADT-8960 A1 6 16*6 2MHZ ADT-89 20A1 2 16*2 ADT-836 6 16*6 PC104 ADT-860 4 16*4 4MHZ Symmetric linear acceleration/deceleration asymmetric linear acceleration/deceleration S-curve acceleration/deceleration random 2-3 ADT-864 4 16*4

move mode

Symmetric linear acceleration/deceleration

linear interpolatio n axis number whether continuous interpolatio whether arc interpolatio

random2 -4

random26

random 2

fixed2-6

fixed2-4

available max driving frequency 2MHZ fixed axis CW,CC fixed axis CW,CC random2axis CW,CCW

unavailable

available max driving frequency 2MHZ fixed axis CW,CC W random2 -axis CW,CCW fixed axis CW,CC

unavailable the logical position counter and actual position counter are 32-bit up/down cyclic counters, no variable cyclic function 32input,16 output, with 16unoccup ied IO,you can all used them as input or ouput

counter

the logical position counter and actual position counter are 32-bit up/down cyclic counters, with variable cyclic function

the logical position counter and actual position counter are 32-bit up/down cyclic counters, with variable cyclic function

I/O

each axis has 8-in/8-out digital I/O

40 input,16 output

20 input,8 output

each axis has 8-in/8-out digital I/O

Support card number pulse mode frequency error range Note: CW is clockwise,CCW is clock against.

One system can use up to 16 motion cards Pulse+Direction ,Pulse+Pulse the frequency error is less than 0.1%

5 http://www.adtechen.com

ADT-series Servo/Stepping Motion Card In circular arc interpolation mode and continuous interpolation mode,only symmetric acceleration/deceleration and asymmetric acceleration/deceleration are available,S-curve acceleration/deceleration is unavailable.

Chapter II Hardware Accessories Supply


slot type Card type Technical Manual card number Data CD ADT-9137 ADT-9164 DB37 ADT-9162 D62GG DB64 D37GG ADT-9125 D25GG DB25 40-pin line 20-pin line 1 1 4 2 2 2 1 2 2 1 1 4 1 1 1 1 1 2 2 1 1 2 2 2 2 2 1 1 1 2 1 1 1 1 1 1 1 1 2 2 2 ADT-856 ADT-8946A1 ADT-8948A1 PCI ADT-8940A1 ADT-8960A1 1 1 1 1 2 2 2 ADT-8920A1 ADT-836 PC104 ADT-860 ADT-864

Note: ADT-9137: 37-core terminal blocks ADT-9162: 62-core terminal blocks D37GG:37-core shielded cables DB25:25-core flat cable

ADT-9164:transition board DB37:37-core flat cable D62GG:62-core shielded cables DB64:64-core flat cable ADT9125:25-core terminal blocks D25GG:25-core shielded cables

6 http://www.adtechen.com

Chapter III Electric Connection


PCI Card Electric Connection
ADT-856 card: ADT-8940A1 card:

ADT-8960A1 card:

ADT-8946A1 card:

ADT-8948A1 card:

ADT-8920A1 card:

ADT-series Servo/Stepping Motion Card

PC104 Card Electric Connection


ADT-836 card: ADT-864 card:

ADT-860 card:

Install: 1. Cut off the power supply of PC. 2. Open the back cover of computer case. 3. Select an idle PCI slot or PC104 port and insert
the motion control card.

4.Install interface cable

8 http://www.adtechen.com

ChapterIV Performance Introduction


PCI bus type ADT-856 advanced 6-axis servo/stepper motion control card

Input/output interfaces description


J1 cable marker description

Features
32-bit PCI bus, PnP 6-axis servo/stepping motor control; each axis can control independently The frequency error of pulse input is less than 0.1% Maximum pulse output frequency is 4MHz Pulse output can be either single pulse (pulse + direction) or double pulse (pulse + pulse) All the 6 axes have code feedback input; 32-bit counting; maximum counting range: -2,147,483,648~+2,147,483,647 Linear or S-curve acceleration/deceleration Asymmetric linear acceleration/deceleration 2-6 axes linear interpolation CW and CCW circular-arc interpolation Continuous interpolation is available; top driving speed: 2MHz Each axis has two 32-bit compare registers, which are used for position comparison between logical position counter and actual position counter, and software limit Receive signals from servo motor drive, e.g. coder Z-phase signal, in-position signal, alarm signal, etc Each axis has 3 STOP signals, which are used to search for home and Z-phase of coder The speed and target position can be changed in real-time in the motion process Read the logical position, real position, driving speed, acceleration/ deceleration and driving state in real-time in the motion process Position counter is integrated with variable cyclic function; the logical position counter and actual position counter are 32-bit up/down cyclic counters Each axis has 8-in/8-out digital I/O. Except two limit signals, all signals can be used as general I/O. Digital output can be used in signals of servo on and servo alarm reset The input port of every input signal is equipped with integral filter. You can select to activate/deactivate the filter of certain input signal. Select one from the 8 constants for the filter time Up to 16 motion cards can be used in one system Supported operating systems: DOS, WINDOWS95/98/NT/2000/XP, WINCE

XPU+ XPUXDR+ XDRYPU+ YPUYDR+ YDRZPU+ ZPUZDR+ ZDREXT_VCC

X pulse signal + X pulse signal X direction signal + X direction signal Y pulse signal + Y pulse signal Y direction signal + Y direction signal Z pulse signal + Z pulse signal Z direction signal + Z direction signal Positive port of internal +5V power supply; do not connect to external power supply

EXT_VCC

Positive port of internal +5V power supply; do not connect to external power supply

EXT_VCC

Positive port of internal +5V power supply; do not connect to external power supply

INCOM1 XLMT+ XLMTXSTOP0 XSTOP1

Common port of photoelectric coupling input (signals below) X positive limit signal X negative limit signal X home signal 0; can be used as universal input signal X home signal 1; can be used as

ADT-series Servo/Stepping Motion Card universal input signal YLMT+ YLMTYSTOP0 YSTOP1 ZLMT+ ZLMTZSTOP0 ZSTOP1 GND OUTCOM OUT0 OUT1 OUT2 OUT3 OUT4 OUT5 NC untapped ASTOP1 BLMT+ BLMTBSTOP0 BSTOP1 CLMT+ CLMTCSTOP0 CSTOP1 OUTCOM OUTCOM OUT6 APU+ APUADR+ ADRBPU+ A pulse signal + A pulse signal A direction signal + A direction signal B pulse signal + 10 http://www.adtechen.com OUT7 OUT8 OUT9 OUT10 OUT11 Digital output ALMT+ ALMTASTOP0 Y positive limit signal Y negative limit signal Y home signal 0; can be used as universal input signal Y home signal 1; can be used as universal input signal Z positive limit signal Z negative limit signal Z home signal 0; can be used as universal input signal Z home signal 1; can be used as universal input signal Internal power supply ground wire Common ground wire of output point of switching quantity Digital output INCOM1 EXT_VCC EXT_VCC BPUBDR+ BDRCPU+ CPUCDR+ CDREXT_VCC B pulse signal B direction signal + B direction signal C pulse signal + C pulse signal C direction signal + C direction signal Positive port of internal +5V power supply; do not connect to external power supply Positive port of internal +5V power supply; do not connect to external power supply Positive port of internal +5V power supply; do not connect to external power supply Common port of photoelectric coupling input (signals below) A positive limit signal A negative limit signal A home signal 0; can be used as universal input signal A home signal 1; can be used as universal input signal B positive limit signal B negative limit signal B home signal 0; can be used as universal input signal B home signal 1; can be used as universal input signal C positive limit signal C negative limit signal C home signal 0; can be used as universal input signal C home signal 1; can be used as universal input signal Common output

J2 cable marker description

ADT-series Servo/Stepping Motion Card NC untapped INCOM2 BINPOS BALARM BSTOP2 BIN0 CINPOS CALARM CSTOP2 CIN0 XINPOS XALARM XSTOP2 XIN0 YINPOS YALARM YSTOP2 YIN0 INCOM1 ZINPOS ZALARM ZSTOP2 ZIN0 AINPOS AALARM ASTOP2 AIN0 X servo in-position signal; can be used as universal input signal X servo alarm signal; X home signal 2; can be used as universal input signal X input signal 0;can be used as universal input signal Y servo in-position signal; can be used as universal input signal Y servo alarm signal; Y home signal 2; can be used as universal input signal Y input signal 0;can be used as universal input signal Common port of photoelectric coupling input (signals above) Z servo in-position signal; can be used as universal input signal Z servo alarm signal; Z home signal 2; can be used as universal input signal Z input signal 0;can be used as universal input signal A servo in-position signal; can be used as universal input signal A servo alarm signal; A home signal 2; can be used as universal input signal A input signal 0;can be used as 11 http://www.adtechen.com OUT12 OUT13 OUT14 OUT15 OUTCOM1 OUT16 OUT17 OUT18 OUT19 OUTCOM2 Common output Common output Digital output Digital output INCOM3 universal input signal Common port of photoelectric coupling input (signals above) B ervo in-position signal; can be used as universal input signal B servo alarm signal; B home signal 2; can be used as universal input signal B input signal 0;can be used as universal input signal C ervo in-position signal; can be used as universal input signal C servo alarm signal; C home signal 2; can be used as universal input signal C input signal 0;can be used as universal input signal Common port of photoelectric coupling input (signals above)

P1 cable marker description

P2 cable marker description

ADT-series Servo/Stepping Motion Card XECA XECA+ XECB XECB+ YECA YECA+ YECB YECB+ ZECA ZECA+ ZECB ZECB+ AECA WECA+ AECB AECB+ BECA BECA+ BECB BECB+ CECA CECA+ CECB CECB+ OUT20 OUT21 OUT22 OUT23 OUT24 OUT25 OUT26 OUT27 OUT28 OUT29 OUT30 OUT31 OUTCOM Digital output Notice: (1) To make the input signals valid, connect the common photoelectric coupling port of corresponding input signals (INCOM1, INCOM2, INCOM3, INCOM4, INCOMA, INCOMB) to the positive port of 12V or 24V power supply; connect one end of common switch or ground wire of approach switch to negative 12 http://www.adtechen.com Digital output X-axis coder phase A input X-axis coder phase A input + X-axis coder phase B input X-axis coder phase B input + Y-axis coder phase A input Y-axis coder phase A input + Y-axis coder phase B input Y-axis coder phase B input + Z-axis coder phase A input Z-axis coder phase A input + Z-axis coder phase B input Z-axis coder phase B input + A-axis coder phase A input A-axis coder phase A input + A-axis coder phase B input A-axis coder phase B input + B-axis coder phase A input B-axis coder phase A input + B-axis coder phase B input B-axis coder phase B input + C-axis coder phase A input C-axis coder phase A input + C-axis coder phase B input C-axis coder phase B input + Notice:

In open-collector connection, PU+/CW+ DR+/CCW+


cant connect with onther (electrical) appliance, or else will destroy the motion control card. The following figure shows the differential wiring of pulse/direction (this mode is recommended for its strong anti-interference performance):

Connection of input signals of coder

Connection of digital input

Connection of pulse/direction output signals


Impulse output is of differential output and can be easily connected with stepping/servo driver. Next chart shows that impulse and direction are joined up with positive electrode.

ADT-series Servo/Stepping Motion Card port (ground wire) of power supply; connect the other end of common switch or control end of approach switch to corresponding input port of terminal board. (2) The following figure shows the wiring diagram of common switch and approach switch supplying common photoelectric coupling port with external power (take J1 terminal board for example). with external power supply (take J1 terminal borad for example)

Connection of digital output

Notice: (1) To make the output signals valid, connect common output (OUTCOM) to negative end (ground wire) of external power supply; connect the ground wire (GND) of internal power supply to earth. Connect one end of relay coil to positive end of power supply and the other end to corresponding output of terminal board. (2) Do not connect positive ends of external and internal power supply. (3) The following figure shows the actual wiring diagram of relay

13 http://www.adtechen.com

ADT-8946A1 advanced 4-axis servo/stepper motion control card

Features
All the input and output are under photoelectric coupler isolation, with strong resistance to disturbance. 32-bit PCI bus, PnP 4-axis servo/stepping motor control; each axis can control independently The frequency error of pulse input is less than 0.1% Maximum pulse output frequency is 4MHz Pulse output can be either single pulse (pulse + direction) or double pulse (pulse + pulse) All the 4 axes have position feedback input; 32-bit counting; maximum counting range: -2,147,483,648~+2,147,483,647 Linear or S-curve acceleration/deceleration Asymmetric linear acceleration/deceleration 2-4 axes linear interpolation CW and CCW arc interpolation Continuous interpolation is available; top driving speed: 2MHz Each axis has two 32-bit compare registers, which are used for position comparison between logical position counter and actual position counter, and software limit Receive signals from servo motor drive, e.g. coder Z-phase signal, in-position signal, alarm signal, etc Each axis has 3 stop signals, which are used to search for home and Z-phase of coder The speed can be changed in real-time in the motion process Read the logical position, real position, driving speed, acceleration and driving state in real-time in the motion process (at acceleration, level speed and deacceleration). Handwheel and external signal operation Each axis has 8-in/8-out digital I/O. Except two limit signals, all signals can be used as general I/O. Digital output can be used in signals of servo on and servo alarm reset The input port of every input signal is equipped with integral filter. You can select to activate/deactivate the filter of certain input signal. Select one from the 8 constants for the filter time Up to 16 motion cards can be used in one system Supported operating systems: DOS, WINDOWS95/98/NT/2000/XP, WINCE

Symbol PCOM1 XPU+/CW+ XPU-/CWXDR+/CCW+ XDR-/CCWYPU+/CW+ YPU-/CWYDR+/CCW+ YXDR-/CCWPCOM2 ZPU+/CW+ ZPU-/CWZDR+/CCW+ ZDR-/CCWAPU+/CW+ APU-/CWADR+/CCW+ ADR-/CCWINCOM1 XLMT-(IN0) XLMT+(IN1) XSTOP0(IN2)

Description Used for single-port input, not available for external power supply X pulse signal + X pulse signal X direction signal + X direction signal Y pulse signal + Y pulse signal Y direction signal + Y direction signal Used for single-port input, not available for external power supply Z pulse signal + Z pulse signal Z direction signal + Z direction signal A pulse signal + A pulse signal A direction signal + A direction signal Common port of 20-27pin digital input X negative limit signal X positive limit signal X home signal 0; can be used as universal input signal X home signal 1; can be used as

Input/output interfaces description


J1 cable marker description

XSTOP1(IN3)

ADT-series Servo/Stepping Motion Card universal input signal XSTOP3(IN4) XALARM(IN5) YLMT-(IN6) YLMT+(IN7) INCOM2 YSTOP0(IN8) YSTOP1(IN9) YSTOP3(IN10) YALARM(IN11) ZLMT-(IN12) ZLMT+(IN13) ZSTOP0(IN14) ZSTOP1(IN15) INCOM3 ZSTOP3(IN16) ZALARM(IN17) ALMT-(IN18) ALMT+(IN19) ASTOP0(IN20) ASTOP1(IN21) ASTOP3(IN22) AALARM(IN23) OUT0 OUT1 OUT2 OUT3 OUTCOM1 X home signal 2; can be used as universal input signal X servo alarm signal; can be used as universal input signal Y negative limit signal Y positive limit signal Common port of 29-36pin digital input Y home signal 0; can be used as universal input signal Y home signal 1; can be used as universal input signal Y home signal 2; can be used as universal input signal Y servo alarm signal; can be used as universal input signal Z positive limit signal Z negative limit signal Z home signal 0; can be used as universal input signal Z home signal 1; can be used as universal input signal Common port of 38-45pin digital input Z home signal 2; can be used as universal input signal Z servo alarm signal; can be used as universal input signal A positive limit signal A negative limit signal A home signal 0; can be used as universal input signal A home signal 1; can be used as universal input signal A home signal 2; can be used as universal input signal A servo alarm signal; can be used as universal input signal Digital output Digital output Digital output Digital output Common port of OUT0-3 digital 15 http://www.adtechen.com Symbol XECA+ XECAXECB+ XECBYECA+ YECAYECB+ Description /MCX314 pin X-axis coder phase A input + X-axis coder phase A input X-axis coder phase B input + X-axis coder phase B input Y-axis coder phase A input + Y-axis coder phase A input Y-axis coder phase B input + GND +12V OUT8 OUT9 OUT10 OUT11 OUTCOM3 OUT4 OUT5 OUT6 OUT7 OUTCOM2 output negative Digital output Digital output Digital output Digital output Common port of OUT4-7 digital output negative Digital output Digital output Digital output Digital output Common port of OUT8-11 digital output negative Positive port of internal +12V power supply; do not connect to external power supply; Internal power supply ground wire

J2 cable marker description

ADT-series Servo/Stepping Motion Card YECBZECA+ ZECAZECB+ ZECBAECA+ AECAAECB+ AECBINCOM4 XIN(IN24) XINPOS(IN25) YIN(IN26) YINPOS(IN27) ZIN(IN28) ZINPOS(IN29) AIN(IN30) AINPOS(IN31) EXPP+ EXPPEXPM+ EXPMINCOMA EMGN INCOMB XIN1 OUT12 OUT13 OUT14 OUT15 OUT16 OUTCOM4 OUT17 OUT18 Y-axis coder phase B input Z-axis coder phase A input + Z-axis coder phase A input Z-axis coder phase B input + Z-axis coder phase B input A-axis coder phase A input + A-axis coder phase A input A-axis coder phase B input + A-axis coder phase B input Common port of OUT18-25 digital input X home signal 3; can be used as universal input signal X servo in-position signal; can be used as universal input signal Y home signal 3; can be used as universal input signal Y servo in-position signal; can be used as universal input signal Z home signal 3; can be used as universal input signal Z servo in-position signal; can be used as universal input signal A home signal 3; can be used as universal input signal A servo in-position signal; can be used as universal input signal hand wheel input positive direction + hand wheel input positive direction hand wheel input negative direction + hand wheel input negative direction the power of the emergency stop input emergency stop input use the power of the common stop input general input Digital output Digital output Digital output Digital output Digital output Common port of OUT12-16 digital output negative Digital output Digital output 16 http://www.adtechen.com Notice: GND GND +5V +12V +12V OUT27 OUT28 OUT29 OUT30 OUT31 OUTCOM7 OUT22 OUT23 OUT24 OUT25 OUT26 OUTCOM6 OUT19 OUT20 OUT21 OUTCOM5 Digital output Digital output Digital output Common port of OUT17-21 digital output negative Digital output Digital output Digital output Digital output Digital output Common port of OUT22-26 digital output negative Digital output Digital output Digital output Digital output Digital output Common port of OUT27-31 digital output negative Positive port of internal +12V power supply; do not connect to external power supply Positive port of internal +12V power supply; do not connect to external power supply Positive port of internal +5V power supply; do not connect to external power supply Internal power supply ground wire Internal power supply ground wire

Connection of pulse/direction output signals


pulse output is of differential output and can be easily connected with stepping/servo driver. Next chart shows that impulse and direction are joined up with positive electrode.

In open-collector connection, PU+/CW+DR+/CCW+


cant connect with onther (electrical) appliance, or else will destroy the motion control card. The following figure shows the differential wiring of

ADT-series Servo/Stepping Motion Card pulse/direction (this mode is recommended for its strong anti-interference performance).

Connection of input signals of coder

Connection of digital output

Connection of digital input

Notice: (1) To make the output signals valid, connect common output (OUTCOM) to negative end (ground wire) of external power supply; connect the ground wire (GND) of internal power supply Notice: (1) To make the input signals valid, connect the common photoelectric coupling port of corresponding input signals to the positive port of 12V or 24V power supply; connect one end of common switch or ground wire of approach switch to negative port (ground wire) of power supply; connect the other end of common switch or control end of approach switch to corresponding input port of terminal board. (2) The following figure shows the wiring diagram of common switch and approach switch supplying common photoelectric coupling port with external power. to earth. Connect one end of relay coil to positive end of power supply and the other end to corresponding output of terminal board (2) When J2 terminal borad use external power supply, connect the common output port (GND) of external power supply to earth, to make the output signals valid.J2 terminal borad recommend to use internal power supply. (3) Do not connect positive ends of external and internal power supply. (4) The following figure shows the actual wiring diagram of relay with external power supply

17 http://www.adtechen.com

ADT-series Servo/Stepping Motion Card

18 http://www.adtechen.com

ADT-8948A1 advanced 4-axis servo/stepper motion control card

Supported operating systems: DOS, WINDOWS95/98/NT/2000/XP, WINCE

Input/output interfaces description


J1 cable marker description

Features
32-bit PCI bus, PnP 4-axis servo/stepping motor control; each axis can control independently The frequency error of pulse input is less than 0.1% Maximum pulse output frequency is 4MHz Pulse output can be either single pulse (pulse + direction) or double pulse (pulse + pulse) All the 4 axes have position feedback input; 32-bit counting; maximum counting range: -2,147,483,648~+2,147,483,647 Linear or S-curve acceleration/deceleration Asymmetric linear acceleration/deceleration Random 2-3 axes linear interpolation Random 2 axes arc interpolation Continuous interpolation is available; top driving speed: 2MHz Each axis has two 32-bit compare registers, which are used for position comparison between logical position counter and actual position counter, and software limit Receive signals from servo motor drive, e.g. coder Z-phase signal, in-position signal, alarm signal, etc Each axis has 3 STOP signals, which are used to search for home and Z-phase of coder The speed and target position can be changed in real-time in the motion process Read the logical position, real position, driving speed, acceleration/deceleration and driving state in real-time in the motion process Position counter is integrated with variable cyclic function; the logical position counter and actual position counter are 32-bit up/down cyclic counters Each axis has 8-in/8-out digital I/O. Except two limit signals, all signals can be used as general I/O. Digital output can be used in signals of servo on and servo alarm reset The input port of every input signal is equipped with integral filter. You can select to activate/deactivate the filter of certain input signal. Select one from the 8 constants for the filter time Constant linear speed mode is available Automatic back to home in various modes Position lock triggered by external signal Synchronized motion triggered by external signal Synchronized stop triggered by external signal Synchronized motion at specified position Synchronized stop at specified position Handwheel and external signal operation Stepping interpolation function Up to 16 motion cards can be used in one system

Symbol PUCOM

Description Positive port of internal +5V power supply; do not connect to external power supply; COM for common anode wiring

XPU+/CW+ XPU-/CWXDR+/CCW+ XDR-/CCWYPU+/CW+ YPU-/CWYDR+/CCW+ YDR-/CCWPUCOM

X pulse signal + X pulse signal X direction signal + X direction signal Y pulse signal + Y pulse signal Y direction signal + Y direction signal Positive port of internal +5V power supply; do not connect to external power supply; COM for common anode wiring

ZPU+/CW+ ZPU-/CWZDR+/CCW+ ZDR-/CCWAPU+/CW+ APU-/CWADR+/CCW+ ADR-/CCWINCOM1 XLMT-/IN0

Z pulse signal + Z pulse signal Z direction signal + Z direction signal A pulse signal + A pulse signal A direction signal + A direction signal Common port of photoelectric coupling input (signals below), 12V-24V X positive limit signal

ADT-series Servo/Stepping Motion Card XLMT+/IN1 XSTOP0/IN2 XSTOP1/IN3 XSTOP2/IN4 XALM/IN5 YLMT-/IN6 YLMT+/IN7 INCOM2 YSTOP0/IN8 YSTOP1/IN9 YSTOP2/IN10 YALM/IN11 ZLMT-/IN12 ZLMT+/IN13 ZSTOP0/IN14 ZSTOP1/IN15 INCOM3 ZSTOP2/IN16 ZALM/IN17 ALMT-/IN18 ALMT+/IN19 ASTOP0/IN20 ASTOP1/IN21 ASTOP2/IN22 AALM/IN23 OUT0 X negative limit signal X home signal 0; can be used as universal input signal X home signal 1; can be used as universal input signal X home signal 2; can be used as universal input signal X servo alarm signal; can be used as universal input signal Y positive limit signal Y negative limit signal Common port of photoelectric coupling input (signals below), 12V-24V Y home signal 0; can be used as universal input signal Y home signal 1; can be used as universal input signal Y home signal 2; can be used as universal input signal Y servo alarm signal; can be used as universal input signal Z positive limit signal Z negative limit signal Z home signal 0; can be used as universal input signal Z home signal 1; can be used as universal input signal Common port of photoelectric coupling input (signals below), 12V-24V Z home signal 2; can be used as universal input signal Z servo alarm signal; can be used as universal input signal A positive limit signal A negative limit signal A home signal 0; can be used as universal input signal A home signal 1; can be used as universal input signal A home signal 2; can be used as universal input signal Z servo alarm signal; can be used as universal input signal Digital output 20 http://www.adtechen.com Symbol XECA+ XECAXECB+ XECBDescription X-axis coder phase A input + X-axis coder phase A input X-axis coder phase B input + X-axis coder phase B input GND +12V OUT8 OUT9 OUT10 OUT12 OUTCOM External power supply ground wire; common port of digital output OUT8-12 Positive port of internal +12V power supply; do not connect to external power supply Internal power supply ground wire OUT4 OUT5 OUT6 OUT7 OUTCOM External power supply ground wire; common port of digital output OUT4-7 Digital output OUT1 OUT2 OUT3 OUTCOM External power supply ground wire; common port of digital output OUT0-3 Digital output

J2 cable marker description

ADT-series Servo/Stepping Motion Card YECA+ YECAYECB+ YECBZECA+ ZECAZECB+ ZECBAECA+ AECAAECB+ AECBINCOM Y-axis coder phase A input + Y-axis coder phase A input Y-axis coder phase B input + Y-axis coder phase B input Z-axis coder phase A input + Z-axis coder phase A input Z-axis coder phase B input + Z-axis coder phase B input A-axis coder phase A input + A-axis coder phase A input A-axis coder phase B input + A-axis coder phase B input Common port of photoelectric coupling input (signals below), 12V-24V XIN/IN24 XINPOS/IN2 5 YIN/IN26 YINPOS/IN2 7 ZIN/IN28 ZINPOS/IN2 9 AIN/IN30 AINPOS/IN3 1 EXPP+ X position lock signal; can be used as universal input signal X servo in-position signal; can be used as universal input signal Y position lock signal; can be used as universal input signal Y servo in-position signal; can be used as universal input signal Z position lock signal; can be used as universal input signal Z servo in-position signal; can be used as universal input signal A position lock signal; can be used as universal input signal A servo in-position signal; can be used as universal input signal Handwheel phase A input +, can be used as common port of universal input signal (IN32) EXPPEXPM+ Handwheel phase A input -, can be used as universal input signal (IN32) Handwheel phase B input +, can be used as common port of universal input signal (IN33) EXPMINCOMA Handwheel phase B input -, can be used as universal input signal (IN33) Common port of photoelectric coupling input (signals below), 12V-24V 21 http://www.adtechen.com +5V +12V +12V OUT27 OUT28 OUT29 OUT30 OUT31 OUTCOM External power supply ground wire; common port of digital output OUT27-31 Potive port of internal +12V power supply; do not connect to external power supply Potive port of internal +12V power supply; do not connect to external power supply Potive port of internal +5V power Digital output OUT22 OUT23 OUT24 OUT25 OUT26 OUTCOM External power supply ground wire; common port of digital output OUT22-26 Digital output OUT17 OUT18 OUT19 OUT20 OUT21 OUTCOM External power supply ground wire; common port of digital output OUT17-21 Digital output EXPLSN OUT12 OUT13 OUT14 OUT15 OUT16 OUTCOM External power supply ground wire; common port of digital output OUT12-16 Digital output EMGN INCOMB Emergency stop input signal (IN34) Common port of photoelectric coupling input (signals below), 12V-24V Stepping interpolation input signal

ADT-series Servo/Stepping Motion Card supply; do not connect to external power supply GND GND Notice: XIN, YIN, ZIN and AIN are control signals of position lock and synchronous control Notice: (1) To make the input signals valid, connect the common photoelectric coupling port of corresponding input signals (INCOM1, INCOM2, INCOM3, INCOM4, INCOMA, INCOMB) to the positive port of 12V or 24V power supply; connect one end of common switch or ground wire of approach switch to negative port (ground wire) of power supply; connect the other end of common switch or control end of approach switch to corresponding input port of terminal board. (2) The following figure shows the wiring diagram of common switch and approach switch supplying common photoelectric coupling port with external power (take J1 terminal board for example). Internal power supply ground wire Internal power supply ground wire

Connection of pulse/direction output signals


Pulse output is of differential output and can be easily connected with stepping/servo driver. Next chart shows that impulse and direction are joined up with positive electrode.

Notice:

In open-collector connection, PU+/CW+DR+/CCW+


cant connect with onther (electrical) appliance, or else will destroy the motion control card. The following figure shows the differential wiring of pulse/direction (this mode is recommended for its strong anti-interference performance):

Connection of input signals of coder Connection of digital output

Connection of digital input


22

OUT0-OUT31 is photoelectric coupling isolation output; see the figure above for wiring mode; the output current of each line should be smaller than 100Ma. Notice: http://www.adtechen.com

ADT-series Servo/Stepping Motion Card (1) To make the output signals valid, connect common output (OUTCOM) to negative end (ground wire) of external power supply; connect the ground wire (GND) of internal power supply to earth. Connect one end of relay coil to positive end of power supply and the other end to corresponding output of terminal board. (2) Do not connect positive ends of external and internal power supply. (3) The following figure shows the actual wiring diagram of relay with external power supply (take J1 terminal borad for example).

23 http://www.adtechen.com

ADT-8940A1 advanced 4-axis servo/stepper motion control card

Symbol PCOM1 XPU+/CW+ XPU-/CWXDR+/CCW+ XDR-/CCWYPU+/CW+ YPU-/CWYDR+/CCW+ YDR-/CCWPCOM2 ZPU+/CW+ ZPU-/CWZDR+/CCW+ ZDR-/CCWAPU+/CW+ APU-/CWADR+/CCW+ ADR-/CCWINCOM1 IN0(XLMT-) IN1(XLMT+) IN2 (XSTOP0) IN3 (XSTOP1) IN4 (XSTOP2) IN5 (XALARM) IN6 (YLMT-) IN7 (YLMT+) INCOM2 IN8 (YSTOP0) IN9 (YSTOP1) IN10 (YSTOP2) IN11(YALARM) IN12(ZLMT-)

Description Used for single-port input, not available for external power supply X pulse signal + X pulse signal X direction signal + X direction signal Y pulse signal + Y pulse signal Y direction signal + Y direction signal Used for single-port input, not available for external power supply Z pulse signal + Z pulse signal Z direction signal + Z direction signal A pulse signal + A pulse signal A direction signal + A direction signal Common port of 20-27pin digital input X negative limit signal X positive limit signal X home signal 0; can be used as universal input signal X home signal 1; can be used as universal input signal X home signal 2; can be used as universal input signal X servo alarm signal; can be used as universal input signal Y negative limit signal Y positive limit signal Common port of 29-36pin digital input Y home signal 0; can be used as universal input signal Y home signal 1; can be used as universal input signal Y home signal 2; can be used as universal input signal Y servo alarm signal; can be used as universal input signal Z negative limit signal

Features
32-bit PCI bus, PnP All the input and output are under photoelectric coupler isolation, with strong resistance to disturbance. 4-axis servo/stepping motor control; each axis can control independently The frequency error of pulse input is less than 0.1% Maximum pulse output frequency is 2MHz Large capacity of hardware features,which can ensure the continous movement Pulse output can be either single pulse (pulse + direction) or double pulse (pulse + pulse) All the 4 axes have position feedback input; 32-bit counting; maximum counting range: -2,147,483,648~+2,147,483,647 Trapezoidal acceleration/ deceleration Random 2-4 axes linear interpolation The maximum interpolation speed: 1MHz Read the logical position, real position, driving speed, in real-time in the motion process 40-line digital input (each axis of position feedback may be used as 2 input points, altogether 8) Two limit input for each axis may be set as invalid and work as general input Up to 16 motion cards can be used in one system Supported operating systems: DOS, WINDOWS95/98/NT/2000/XP, WINCE

Input/output interfaces description


J1 cable marker description

ADT-series Servo/Stepping Motion Card IN13(ZLMT+) IN14(ZSTOP0) IN15(ZSTOP1) INCOM3 IN16(ZSTOP2) IN17(ZALARM) IN18(ALMT-) IN19(ALMT+) IN20(ASTOP0) IN21(ASTOP1) IN22(ASTOP2) IN23(AALARM) OUT0 OUT1 OUT2 OUT3 OUTCOM1 OUT4 OUT5 OUT6 OUT7 OUTCOM2 OUT8 OUT9 OUT10 OUT11 OUTCOM3 Z positive limit signal Z home signal 0; can be used as universal input signal Z home signal 1; can be used as universal input signal Common port of 38-45pin digital input Z home signal 2; can be used as universal input signal Z servo alarm signal; can be used as universal input signal A negative limit signal A positive limit signal A home signal 0; can be used as universal input signal A home signal 1; can be used as universal input signal A home signal 2; can be used as universal input signal A servo alarm signal; can be used as universal input signal Digital output Digital output Digital output Digital output Common port of OUT0-3 digital output negative Digital output Digital output Digital output Digital output Common port of OUT4-7 digital output negative Digital output Digital output Digital output Digital output Common port of OUT8-11 digital output negative Positive port of internal +12V power +12V GND supply; do not connect to external power supply; Internal power supply ground wire IN30(AIN) IN29(ZINPOS) IN28(ZIN) IN27(YINPOS) IN26(YIN) IN25(XINPOS) IN24(XIN) Symbol XECA+ XECAXECB+ XECBYECA+ YECAYECB+ YECBZECA+ ZECAZECB+ ZECBAECA+ AECAAECB+ AECBINCOM4 Description X-axis coder phase A input + X-axis coder phase A input X-axis coder phase B input + X-axis coder phase B input Y-axis coder phase A input + Y-axis coder phase A input Y-axis coder phase B input + Y-axis coder phase B input Z-axis coder phase A input + Z-axis coder phase A input Z-axis coder phase B input + Z-axis coder phase B input A-axis coder phase A input + A-axis coder phase A input A-axis coder phase B input + A-axis coder phase B input Common port of OUT18-25 digital output negative X home signal 3; can be used as universal input signal X servo in-position signal; can be used as universal input signal Y home signal 3; can be used as universal input signal Y servo in-position signal; can be used as universal input signal Z home signal 3; can be used as universal input signal Z servo in-position signal; can be used as universal input signal A home signal 3; can be used as universal input signal 25 http://www.adtechen.com

J2 cable marker description

ADT-series Servo/Stepping Motion Card IN31(AINPOS) OUT12 OUT13 OUT14 OUT15 OUTCOM4 +12V A servo in-position signal; can be used as universal input signal Digital output Digital output Digital output Digital output Common port of OUT12-15 digital output negative Positive port of internal +12V power supply; do not connect to external power supply +12V Positive port of internal +12V power supply; do not connect to external power supply +5V Positive port of internal +5V power supply; do not connect to external power supply +5V Positive port of internal +5V power supply; do not connect to external power supply GND GND GND Internal power supply ground wire Internal power supply ground wire Internal power supply ground wire

Notice: In case an encoder is used for general input signals, XECA+, XECB+, YECA+, YECB+, ZECA+, ZECB+, AECA+, and AECB+ will be respectively used as public ports of corresponding input signals. Voltage at the public ports can only be +5V; in case of using an external+12V power supply, users must serially connect a 1K resistance. The digital input connection part for wiring method, Please refer to ADT-8946A1 card and ADT-8948A1 card.

26 http://www.adtechen.com

ADT-series Servo/Stepping Motion Card

ADT-8960A1 advanced 6-axis servo/stepper motion control card

Features
32-bit PCI bus, PnP Maximum pulse output frequency is 2MHz 6-axis servo/stepping motor control; each axis can control independently Random 2-6 axes linear interpolation, multiple axes continuous motion All the 6 axes have position feedback input; 32-bit counting, frequency reach up to 2MHz; maximum counting range: -2,147,483,648~+2,147,483,647 Pulse output type: pulse + direction, pulse + pulse Photoelectric coupling isolation,32-digital input/16-digital output, including every axis contains two positive and negative limit signals, besides 16-either input/output, to make them all input signal or output signal. The speed and target position can be changed in real-time in the motion process All the 6 axes can synchronized motion and synchronized stop,and you can sudden stop by hardware Read the logical position, real position, driving speed, acceleration and driving state in real-time in the motion process Each axis has 2 STOP signals, which are used to search for home and Z-phase of coder Each axis has 8-in/8-out digital I/O. Except two limit signals, all signals can be used as general I/O. Digital output can be used in signals of servo on and servo alarm reset Receive signals from servo motor drive, e.g. coder Z-phase signal, in-position signal, alarm signal, etc Up to 16 motion cards(96 axes) can be used in one system Supported operating systems: DOS,WINDOWS95/98/NT/2000/XP, WINCE Supported C/BC++/VC/VB/C++Builder/Delphi/LabVIEW/EVC to develop

Symbol PUCOM0 XPU+/CW+ XPU-/CWXDR+/CCW+ XDR-/CCWYPU+/CW+ YPU-/CWYDR+/CCW+ YDR-/CCWPUCOM1 ZPU+/CW+ ZPU-/CWZDR+/CCW+ ZDR-/CCWAPU+/CW+ APU-/CWADR+/CCW+ ADR-/CCWPUCOM2 BPU+/CW+ BPU-/CWBDR+/CCW+ BDR-/CCWCPU+/CW+ CPU-/CW27

Description Used for single-port input, not available for external power supply X pulse signal + X pulse signal X direction signal + X direction signal Y pulse signal + Y pulse signal Y direction signal + Y direction signal Used for single-port input, not available for external power supply Z pulse signal + Z pulse signal Z direction signal + Z direction signal A pulse signal + A pulse signal A direction signal + A direction signal Used for single-port input, not available for external power supply B pulse signal + B pulse signal B direction signal + B direction signal C pulse signal + C pulse signal -

Input/output interfaces description


J1 cable marker description

http://www.adtechen.com

ADT-series Servo/Stepping Motion Card CDR+/CCW+ CDR-/CCWINCOM1 IN0(XLMT-) IN1(XLMT+) IN2(XSTOP0) IN3(XSTOP1) IN4(YLMT-) IN5(YMT+) IN6(YSTOP0) IN7(YSTOP1) IN8(ZLMT-) IN9(ZLMT+) IN10(ZSTOP0) IN11(ZSTOP1) INCOM2 IN12(ALMT-) IN13(ALMT+) IN14(ASTOP0) IN15(ASTOP1) IN16(BLMT-) IN17(BLMT+) IN18(BSTOP0) IN19(BSTOP1) IN20(CLMT-) IN21(CLMT+) IN22(CSTOP0) IN23(CSTOP1) OUTCOM1 OUT0 C direction signal + C direction signal Common port of IN0-11 digital input X negative limit signal X positive limit signal X home signal 0; can be used as universal input signal X home signal 1; can be used as universal input signal Y negative limit signal Y positive limit signal Y home signal 0; can be used as universal input signal Y home signal 1; can be used as universal input signal Z negative limit signal Z positive limit signal Z home signal 0; can be used as universal input signal Z home signal 1; can be used as universal input signal Common port of IN12-23 digital input A negative limit signal A positive limit signal A home signal 0; can be used as universal input signal A home signal 1; can be used as universal input signal B negative limit signal B positive limit signal B home signal 0; can be used as universal input signal B home signal 1; can be used as universal input signal C negative limit signal C positive limit signal C home signal 0; can be used as universal input signal C home signal 1; can be used as universal input signal Common port of OUT0-OUT7 Digital output 28 http://www.adtechen.com Symbol XECA+ XECAXECB+ XECBYECA+ YECAYECB+ YECBZECA+ ZECAZECB+ ZECBAECA+ AECAAECB+ AECBDescription X-axis coder phase A input + X-axis coder phase A input X-axis coder phase B input + X-axis coder phase B input Y-axis coder phase A input + Y-axis coder phase A input Y-axis coder phase B input + Y-axis coder phase B input Z-axis coder phase A input + Z-axis coder phase A input Z-axis coder phase B input + Z-axis coder phase B input A-axis coder phase A input + A-axis coder phase A input A-axis coder phase B input + A-axis coder phase B input OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 Digital output Digital output Digital output Digital output Digital output Digital output Digital output

J2 cable marker description

ADT-series Servo/Stepping Motion Card BECA+ BECABECB+ BECBCECA+ CECACECB+ CECBINCOM3 IN24 IN25 IN26 IN27 IN28 IN29 IN30 IN31 OUTCOM2 OUT8 OUT9 OUT10 OUT11 OUT12 OUT13 OUT14 OUT15 INCOM4 OUTCOM3 I/O0 I/O1 I/O2 I/O3 I/O4 I/O5 I/O6 I/O7 INCOM5 OUTCOM4 I/O8 I/O9 I/O10 I/O11 I/O12 I/O13 B-axis coder phase A input + B-axis coder phase A input B-axis coder phase B input + B-axis coder phase B input C-axis coder phase A input + C-axis coder phase A input C-axis coder phase B input + C-axis coder phase B input Common port of OUT24-OUT31 Digital output Digital output Digital output Digital output Digital output Digital output Digital output Digital output Common port of OUT8-OUT15 Digital output Digital output Digital output Digital output Digital output Digital output Digital output Digital output Common input port of I/O0-I/O7 Common input port of I/O0-I/O7 either input/output either input/output either input/output either input/output either input/output either input/output either input/output either input/output Common input port of I/O8-I/O15 Common input port of I/O8-I/O15 either input/output either input/output either input/output either input/output either input/output either input/output 29 http://www.adtechen.com Notice: In case an encoder is used for general input signals, XECA+ XECB+ YECA+ YECB+ ZECA+ ZECB+ AECA+ AECB+BECA+BECB+CECA+ and CECB+ will be respectively used as public ports of corresponding input signals. Voltage at the public ports can only be +5V; in case of using an external+12V power supply, users must serially connect a 1K resistance. The digital input connection part for wiring method, Please refer to ADT-8946A1 card and ADT-8948A1 card. I/O14 I/O15 either input/output either input/output

ADT-8920A1 advanced 2-axis servo/stepper motion control card

Features
32-bit PCI bus, PnP All the input and output are under photoelectric coupler isolation, with strong resistance to disturbance. 2-axis servo/stepping motor control; each axis can control independently The frequency error of pulse input is less than 0.1% Maximum pulse output frequency is 2MHz large capacity of hardware features,which can ensure the continous movement Pulse output can be either single pulse (pulse + direction) or double pulse (pulse + pulse) All the 2 axes have position feedback input; 32-bit counting; maximum counting range: -2,147,483,648~+2,147,483,647 Trapezoidal acceleration/ deceleration Random 2-axes linear interpolation The maximum interpolation speed: 1MHz Read the logical position, real position, driving speed, in real-time in the motion process 20-line digital input (each axis of position feedback may be used as 2 input points, altogether 8) Two limit input for each axis may be set as invalid and work as general input Up to 16 motion cards can be used in one system Supported operating systems: DOS, WINDOWS95/98/NT/2000/XP, WINCE

Symbol PCOM1 XPU+/CW+ XPU-/CWXDR+/CCW+ XDR-/CCWYPU+/CW+ YPU-/CWYDR+/CCW+ YDR-/CCWINCOM1 IN0(XLMT-) IN1(XLMT+) IN2 (XSTOP0) IN3 (XSTOP1) IN4 (XSTOP2) IN5 (XALARM) IN6 (YLMT-) IN7 (YLMT+) INCOM2 IN8 (YSTOP0)

Description Used for single-port input, not available for external power supply X pulse signal + X pulse signal X direction signal + X direction signal Y pulse signal + Y pulse signal Y direction signal + Y direction signal Common port of 20-27pin digital input X positive limit signal X negative limit signal X home signal 0; can be used as universal input signal X home signal 1; can be used as universal input signal X home signal 2; can be used as universal input signal X servo alarm signal; can be used as universal input signal Y positive limit signal Y negative limit signal Common port of 29-32pin digital input Y home signal 0; can be used as universal input signal

Input/output interfaces description


J1 cable marker description

ADT-series Servo/Stepping Motion Card IN9 (YSTOP1) IN10 (YSTOP2) IN11(YALARM) OUT0 OUT1 OUT2 OUT3 OUTCOM1 OUT4 OUT5 OUT6 OUT7 OUTCOM2 +12V Y home signal 1; can be used as universal input signal Y home signal 2; can be used as universal input signal Y servo alarm signal; can be used as universal input signal Digital output Digital output Digital output Digital output Common port of OUT0-3 digital output negative Digital output Digital output Digital output Digital output Common port of OUT4-7 digital output negative Positive port of internal +12V power supply; do not connect to external power supply GND Internal power supply ground wire +5V +5V +12V +12V IN27(YINPOS) IN26(YIN) IN25(XINPOS) YECAYECB+ YECBINCOM4 IN24(XIN) Y-axis coder phase A input Y-axis coder phase B input + Y-axis coder phase B input Common port of 18-21pin digital input X home signal 3; can be used as universal input signal X servo in-position signal; can be used as universal input signal Y home signal 3; can be used as universal input signal Y servo in-position signal; can be used as universal input signal Positive port of internal +12V power supply; do not connect to external power supply Positive port of internal +12V power supply; do not connect to external power supply Positive port of internal +5V power supply; do not connect to external power supply Positive port of internal +5V power supply; do not connect to external power supply GND GND GND Internal power supply ground wire Internal power supply ground wire Internal power supply ground wire

J2 cable marker description

Notice: In case an encoder is used for general input signals, XECA+, XECB+, YECA+ and YECB+will be respectively used as public ports of corresponding input signals. Voltage at the public ports can only be +5V; in case of using an external+12V power supply, users must serially connect a 1K resistance. The digital input connection part for wiring method, Please refer to ADT-8946A1 card and ADT-8948A1 card. Symbol XECA+ XECAXECB+ XECBYECA+ Description X-axis coder phase A input + X-axis coder phase A input X-axis coder phase B input + X-axis coder phase B input Y-axis coder phase A input +

31 http://www.adtechen.com

PCI104 bus type ADT-836 advanced 6-axis servo/stepper motion control card

Input/output interfaces description

J1 cable marker description

Features
6-axis servo/stepping motor control; each axis can control independently The frequency error of pulse input is less than 0.1% 4MHz Maximum pulse output frequency is 4MHz Pulse output can be either single pulse (pulse + direction) or double pulse (pulse + pulse) All the 6 axes have position feedback input; 32-bit counting; maximum counting range: -2,147,483,648~+2,147,483,647 Linear or S-curve acceleration/deceleration Asymmetric linear acceleration/deceleration 2-6 axes linear interpolation CW and CCW circular-arc interpolation Continuous interpolation is available; top driving speed: 2MHz Each axis has two 32-bit compare registers, which are used for position comparison between logical position counter and actual position counter, and software limit Receive signals from servo motor drive, e.g. coder Z-phase signal, in-position signal, alarm signal, etc Each axis has 3 STOP signals, which are used to search for home and Z-phase of coder The speed and target position can be changed in real-time in the motion process Read the logical position, real position, driving speed, acceleration and driving state in real-time in the motion process Each axis has 8-in digital I/O. Except two limit signals, all signals can be used as general DI. DI signals up to48 Digital output add up to 32,can be used for signals of servo-on and alarm reset of servo Position counter is integrated with variable cyclic function; the logical position counter and actual position counter are 32-bit up/down cyclic counters The input port of every input signal is equipped with integral filter. You can select to activate/deactivate the filter of certain input signal. Select one from the 8 constants for the filter time Supported operating systems: DOS, WINDOWS95/98/NT/2000/XP, WINCE

Symbol XPUXPU+ XDRXDR+ YPUYPU+ YDRYDR+ ZPUZPU+ ZDRZDR+ APUAPU+ ADRADR+ BPUBPU+ BDRBDR+ CPUCPU+ CDRCDR+ GND X pulse signal X pulse signal +

Description

X direction signal X direction signal + Y pulse signal Y pulse signal + Y direction signal Y direction signal + Z pulse signal Z pulse signal + Z direction signal Z direction signal + A pulse signal A pulse signal + A direction signal A direction signal + B pulse signal B pulse signal + B direction signal B direction signal + C pulse signal C pulse signal + C direction signal C direction signal + Internal power supply ground wire

J3 cable marker description

ADT-series Servo/Stepping Motion Card


DOUT0 DOUT1 DOUT2 DOUT3 DOUT4 DOUT5 DOUT6 DOUT7 DOUT8 DOUT9 DOUT10 DOUT11 DOUT12 DOUT13 DOUT14 DOUT15 DOUT16 DOUT17 DOUT18 1 20 2 21 3 22 4 23 5 24 6 25 7 26 8 27 9 28 10 29 11 30 12 31 13 32 14 33 15 34 16 35 17 36 18 37 19 DOUT19 DOUT20 DOUT21 DOUT22 DOUT23 DOUT24 DOUT25 DOUT26 DOUT27 DOUT28 DOUT29 DOUT30 DOUT31 GND GND GND GND GND

OUT28 OUT29 OUT30 OUT31 GND GND GND GND GND Internal power supply ground wire Internal power supply ground wire Internal power supply ground wire Internal power supply ground wire Internal power supply ground wire

J6 cable marker description

OUT0 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUT8 OUT9 OUT10 OUT11 OUT12 OUT13 OUT14 OUT15 OUT16 OUT17 OUT18 OUT19 OUT20 OUT21 OUT22 OUT23 OUT24 OUT25 OUT26 OUT27 33 http://www.adtechen.com YLMT+ YLMTYINCOM XINPOS XALARM XIN XSTOP0 XSTOP1 Digital output XLMT+ XLMTXSTOP2 Symbol XINCOM Description Common port of X axis photoelectric coupling input (signals below) X positive limit signal X negative limit signal X home signal 2; can be used as universal input signal X home signal 1; can be used as universal input signal X home signal 0; can be used as universal input signal X axis in-position signal X axis alarm signal X axis input signal; can be used as universal input signal Common port of Y axis photoelectric coupling input (signals below) Y positive limit signal Y negative limit signal

ADT-series Servo/Stepping Motion Card YSTOP2 YSTOP1 YSTOP0 YINPOS YALARM YIN ZINCOM ZLMT+ ZLMTZSTOP2 ZSTOP1 ZSTOP0 ZINPOS ZALARM ZIN AINCOM ALMT+ ALMTASTOP2 ASTOP1 ASTOP0 AINPOS AALARM AIN Y home signal 2; can be used as universal input signal Y home signal 1; can be used as universal input signal Y home signal 0; can be used as universal input signal Y axis in-position signal Y axis alarm signal Y axis input signal; can be used as universal input signal Common port of Z axis photoelectric coupling input (signals below) Z positive limit signal Z negative limit signal Z home signal 2; can be used as universal input signal Z home signal 1; can be used as universal input signal Z home signal 0; can be used as universal input signal Z axis in-position signal Z axis alarm signal Z axis input signal; can be used as universal input signal Common port of A axis photoelectric coupling input (signals below) A positive limit signal A negative limit signal A home signal 2; can be used as universal input signal A home signal 1; can be used as universal input signal A home signal 0; can be used as universal input signal A axis in-position signal A axis alarm signal A axis input signal; can be used as universal input signal untapped CINPOS CALARM CIN GND GND 34 http://www.adtechen.com CSTOP0 CSTOP1 CLMT+ CLMTCSTOP2 CINCOM BINPOS BALARM BIN BSTOP0 BSTOP1 BLMT+ BLMTBSTOP2 Symbol BINCOM Description Common port of B axis photoelectric coupling input (signals below) B positive limit signal B negative limit signal B home signal 2; can be used as universal input signal B home signal 1; can be used as universal input signal B home signal 0; can be used as universal input signal B axis in-position signal B axis alarm signal B axis input signal; can be used as universal input signal Common port of C axis photoelectric coupling input (signals below) C positive limit signal C negative limit signal C home signal 2; can be used as universal input signal C home signal 1; can be used as universal input signal C home signal 0; can be used as universal input signal C axis in-position signal C axis alarm signal C axis input signal; can be used as universal input signal Internal power supply ground wire Internal power supply ground wire

J7 cable marker description

ADT-series Servo/Stepping Motion Card GND VCC VCC VCC +12V Internal power supply ground wire Positive port of internal +5V power supply; do not connect to external power supply Positive port of internal +5V power supply; do not connect to external power supply Positive port of internal +5V power supply; do not connect to external power supply Positive port of internal +12V power supply; do not connect to external power supply untapped

Connection of pulse/direction output signals


The pulse output of ADT-836 control card is open-collector,pulse+pulse and pulse+direction wire connecting mode.

J8 cable marker description Connection of input signals of coder

Above example use internal +5V power supply, also connect to +5V external power supply XECA+ XECAXECB+ XECBYECA+ YECAYECB+ YECBZECA+ ZECAZECB+ ZECBAECA+ AECAAECB+ AECBBECA+ BECABECB+ BECBCECA+ CECACECB+ CECBX-axis coder phase A input + X-axis coder phase A input X-axis coder phase B input + X-axis coder phase B input Y-axis coder phase A input + Y-axis coder phase A input Y-axis coder phase B input + Y-axis coder phase B input Z-axis coder phase A input + Z-axis coder phase A input Z-axis coder phase B input + Z-axis coder phase B input A-axis coder phase A input + A-axis coder phase A input A-axis coder phase B input + A-axis coder phase B input B-axis coder phase A input + B-axis coder phase A input B-axis coder phase B input + B-axis coder phase B input C-axis coder phase A input + C-axis coder phase A input C-axis coder phase B input + C-axis coder phase B input 35 http://www.adtechen.com 0x1000 0x1040 0x1080 0x10C0 0x1800 Notice:The output circuit voltage is 12VDC only,not 24 VDC

Connection of digital input

Connection of digital output

set address:
1(A11) On On On On Off 2(A10) On On On On On 3(A9) On On On On On 4(A8) On On On On On 5(A7) On On Off Off On 6(A6) On Off On Off On

ADT-series Servo/Stepping Motion Card 0x1840 . 0x1f00 0x1f40 0x1f80 0x1fC0 Off Off Off Off Off On Off Off Off Off On Off Off Off Off On Off Off Off Off On On On Off Off Off On Off On Off

ON is resistance connect,OFF is resistance separate, default address is 0x1000

36 http://www.adtechen.com

ADT-860 advanced 4-axis servo/stepper motion control card

Features
4-axis servo/stepping motor control; each axis can control independently The frequency error of pulse input is less than 0.1% Maximum pulse output frequency is 4MHz Pulse output can be either single pulse (pulse + direction) or double pulse (pulse + pulse) All the 4 axes have position feedback input; 32-bit counting; maximum counting range: -2,147,483,648~+2,147,483,647 Linear or S-curve acceleration/deceleration Asymmetric linear acceleration/deceleration Random 2-3 axes linear interpolation Random 2 axes CW,CCW arc interpolation Continuous interpolation is available; top driving speed: 2MHz Each axis has two 32-bit compare registers, which are used for position comparison between logical position counter and actual position counter, and software limit Receive signals from servo motor drive, e.g. coder Z-phase signal, in-position signal, alarm signal, etc Each axis has 3 stop signals, which are used to search for home and Z-phase of coder The speed and target position can be changed in real-time in the motion process Read the logical position, real position, driving speed, acceleration/deceleration and driving state in real-time in the motion process Each axis has 8-in/8-out digital I/O. Except two limit signals, all signals can be used as general I/O. Digital output can be used in signals of servo on and servo alarm reset The input port of every input signal is equipped with integral filter. You can select to activate/deactivate the filter of certain input signal. Select one from the 8 constants for the filter time Supported operating systems: DOS, WINDOWS95/98/NT/2000/XP, WINCE Symbol XINCOM XLMT+ XLMTXSTOP2 XSTOP1 XSTOP0 XINPOS XALARM XIN0 YINCOM YLMT+ YLMTYSTOP2 YSTOP1 YSTOP0 YINPOS YALARM YIN0 Description Common port of X axis photoelectric coupling input X negative limit signal X positive limit signal X home signal 2; can be used as universal input signal X home signal 1; can be used as universal input signal X home signal 0; can be used as universal input signal X axis in-position signal, can be used as universal input signal X axis alarm signal, can be used as universal input signal X axis universal input signal Common port of Y axis photoelectric coupling input Y negative limit signal Y positive limit signal Y home signal 2; can be used as universal input signal Y home signal 1; can be used as universal input signal Y home signal 0; can be used as universal input signal Y axis in-position signal, can be used as universal input signal Y axis alarm signal, can be used as universal input signal Y axis universal input signal

Input/output interfaces description


J3 cable marker description

ADT-series Servo/Stepping Motion Card ZINCOM ZLMT+ ZLMTZSTOP2 ZSTOP1 ZSTOP0 ZINPOS ZALARM ZIN0 AINCOM ALMT+ ALMTASTOP2 ASTOP1 ASTOP0 AINPOS AALARM AIN0 Common port of Z axis photoelectric coupling input Z negative limit signal Z positive limit signal Z home signal 2; can be used as universal input signal Z home signal 1; can be used as universal input signal Z home signal 0; can be used as universal input signal Z axis in-position signal, can be used as universal input signal Z axis alarm signal, can be used as universal input signal Z axis universal input signal Common port of A axis photoelectric coupling input A negative limit signal A positive limit signal A home signal 2; can be used as universal input signal A home signal 1; can be used as universal input signal A home signal 0; can be used as universal input signal A axis in-position signal, can be used as universal input signal A axis alarm signal, can be used as universal input signal A axis universal input signal untapped OUT8 OUT9 OUT10 OUT11 OUT12 OUT13 OUT14 OUT15 OUTCOM2 OUTCOM2 OUTCOM2 OUTCOM2 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUTCOM1 OUTCOM1 OUTCOM1 OUTCOM1 Digital output 2 Digital output 3 Digital output 4 Digital output 5 Digital output 6 Digital output 7 Common port of 0-7 digital output Common port of 0-7 digital output Common port of 0-7 digital output Common port of 0-7 digital output untapped Digital output 8 Digital output 9 Digital output 10 Digital output 11 Digital output 12 Digital output 13 Digital output 14 Digital output 15 Common port of 8-15 digital output Common port of 8-15 digital output Common port of 8-15 digital output Common port of 8-15 digital output

J6 cable marker description

J5 cable marker description

Symbol XPU+ XPUSymbol OUT0 OUT1 Description Digital output 0 Digital output 1 38 XDR+ XDRYPU+

Description X pulse signal + X pulse signal X direction signal + X direction signal Y pulse signal +

http://www.adtechen.com

ADT-series Servo/Stepping Motion Card YPUYDR+ YDRAPU+ APUADR+ ADRZPU+ ZPUZDR+ ZDREXT_VCC EXT_VCC EXT_VCC XECA+ XECAXECB+ XECBYECA+ YECAYECB+ YECBAECA+ AECAAECB+ AECBZECA+ ZECAZECB+ ZECBY pulse signal Y direction signal + Y direction signal A pulse signal + A pulse signal A direction signal + A direction signal Z pulse signal + Z pulse signal Z direction signal + Z direction signal In open-collector mode , connection of Common port of drive X-axis coder phase A input + X-axis coder phase A input X-axis coder phase B input + X-axis coder phase B input Y-axis coder phase A input + Y-axis coder phase A input Y-axis coder phase B input + Y-axis coder phase B input A-axis coder phase A input + A-axis coder phase A input A-axis coder phase B input + A-axis coder phase B input Z-axis coder phase A input + Z-axis coder phase A input Z-axis coder phase B input + Z-axis coder phase B input untapped untapped ON is resistance connect,OFF is resistance separate, default address is 0x1000 0x1000 0x1040 0x1080 0x10C0 0x1800 0x1840 . 0x1f00 0x1f40 0x1f80 0x1fC0 On On On On Off Off Off Off Off Off On On On On On On Off Off Off Off On On On On On On Off Off Off Off On On On On On On Off Off Off Off On On Off Off On On On On Off Off On Off On Off On Off On Off On Off

Notice: Connection of pulse/direction output signals,Connection of input signals of coder,Connection of digital input, refer to ADT-836

set address
1(A11) 2(A10) 3(A9) 4(A8) 5(A7) 6(A6)

39 http://www.adtechen.com

ADT-864 advanced 4-axis servo/stepper motion control card

Features
4-axis servo/stepping motor control; each axis can control independently The frequency error of pulse input is less than 0.1% Maximum pulse output frequency is 4MHz Pulse output can be either single pulse (pulse + direction) or double pulse (pulse + pulse) All the 4 axes have position feedback input; 32-bit counting; maximum counting range: -2,147,483,648~+2,147,483,647 Linear or S-curve acceleration/deceleration Asymmetric linear acceleration/deceleration Random 2-4 axes linear interpolation CW and CCW arc interpolation Continuous interpolation is available; top driving speed: 2MHz Each axis has two 32-bit compare registers, which are used for position comparison between logical position counter and actual position counter, and software limit Receive signals from servo motor drive, e.g. coder Z-phase signal, in-position signal, alarm signal, etc Each axis has 3 STOP signals, which are used to search for home and Z-phase of coder The speed and target position can be changed in real-time in the motion process Read the logical position, real position, driving speed, acceleration/deceleration and driving state in real-time in the motion process (at acceleration, level speed and deacceleration). Each axis has 8-in/8-out digital I/O. Except two limit signals, all signals can be used as general I/O. Digital output can be used in signals of servo on and servo alarm reset The input port of every input signal is equipped with integral filter. You can select to activate/deactivate the filter of certain input signal. Select one from the 8 constants for the filter time Supported operating systems: DOS, WINDOWS95/98/NT/2000/XP, WINCE Symbol XINCOM XLMT+ XLMTXSTOP2 XSTOP1 XSTOP0 XINPOS XALARM XIN0 YINCOM YLMT+ YLMTYSTOP2 YSTOP1 YSTOP0 YINPOS YALARM YIN0 ZINCOM Description Common port of X axis photoelectric coupling input X negative limit signal X positive limit signal X home signal 2; can be used as universal input signal X home signal 1; can be used as universal input signal X home signal 0; can be used as universal input signal X axis in-position signal, can be used as universal input signal X axis alarm signal, can be used as universal input signal X axis universal input signal Common port of Y axis photoelectric coupling input Y negative limit signal Y positive limit signal Y home signal 2; can be used as universal input signal Y home signal 1; can be used as universal input signal Y home signal 0; can be used as universal input signal Y axis in-position signal, can be used as universal input signal Y axis alarm signal, can be used as universal input signal Y axis universal input signal Common port of Z axis photoelectric

Input/output interfaces description


J3 cable marker description

ADT-series Servo/Stepping Motion Card coupling input ZLMT+ ZLMTZSTOP2 ZSTOP1 ZSTOP0 ZINPOS ZALARM ZIN0 AINCOM ALMT+ ALMTASTOP2 ASTOP1 ASTOP0 AINPOS AALARM AIN0 Z negative limit signal Z positive limit signal Z home signal 2; can be used as universal input signal Z home signal 1; can be used as universal input signal Z home signal 0; can be used as universal input signal Z axis in-position signal, can be used as universal input signal Z axis alarm signal, can be used as universal input signal Z axis universal input signal Common port of A axis photoelectric coupling input A negative limit signal A positive limit signal A home signal 2; can be used as universal input signal A home signal 1; can be used as universal input signal A home signal 0; can be used as universal input signal A axis in-position signal, can be used as universal input signal A axis alarm signal, can be used as universal input signal A axis universal input signal untapped OUT8 OUT9 OUT10 OUT11 OUT12 OUT13 OUT14 OUT15 OUTCOM2 OUTCOM2 OUTCOM2 OUTCOM2 Digital output 8 Digital output 9 Digital output 10 Digital output 11 Digital output 12 Digital output 13 Digital output 14 Digital output 15 Common port of 8-15 digital output Common port of 8-15 digital output Common port of 8-15 digital output Common port of 8-15 digital output OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 OUTCOM1 OUTCOM1 OUTCOM1 OUTCOM1 Digital output 2 Digital output 3 Digital output 4 Digital output 5 Digital output 6 Digital output 7 Common port of 0-7 digital output Common port of 0-7 digital output Common port of 0-7 digital output Common port of 0-7 digital output

J6 cable marker description

J5 cable marker description

Symbol XPU+ XPUXDR+ Symbol OUT0 OUT1 Description Digital output 0 Digital output 1 41 XDRYPU+ YPU-

Description X pulse signal + X pulse signal X direction signal + X direction signal Y pulse signal + Y pulse signal -

http://www.adtechen.com

ADT-series Servo/Stepping Motion Card YDR+ YDRAPU+ APUADR+ ADRZPU+ ZPUZDR+ ZDREXT_VCC EXT_VCC EXT_VCC XECA+ XECAXECB+ XECBYECA+ YECAYECB+ YECBAECA+ AECAAECB+ AECBZECA+ ZECAZECB+ ZECBY direction signal + Y direction signal A pulse signal + A pulse signal A direction signal + A direction signal Z pulse signal + Z pulse signal Z direction signal + Z direction signal In open-collector mode , connection of Common port of drive X-axis coder phase A input + X-axis coder phase A input X-axis coder phase B input + X-axis coder phase B input Y-axis coder phase A input + Y-axis coder phase A input Y-axis coder phase B input + Y-axis coder phase B input A-axis coder phase A input + A-axis coder phase A input A-axis coder phase B input + A-axis coder phase B input Z-axis coder phase A input + Z-axis coder phase A input Z-axis coder phase B input + Z-axis coder phase B input untapped untapped ON is resistance connect,OFF is resistance separate, default address is 0x1000 0x1080 0x10C0 0x1800 0x1840 . 0x1f00 0x1f40 0x1f80 0x1fC0 On On Off Off Off Off Off Off On On On On Off Off Off Off On On On On Off Off Off Off On On On On Off Off Off Off Off Off On On On On Off Off On Off On Off On Off On Off

Application:
1 Multi-asix carving and milling system 2 Robot system 3 Coordinate measuring system 4 Numerical control system based on
PC

Notice: Connection of pulse/direction output signals,Connection of input signals of coder,Connection of digital input, refer to ADT-836

set address

1(A11) 0x1000 0x1040 On On

2(A10) On On

3(A9) On On

4(A8) On On

5(A7) On On

6(A6) On Off 42 http://www.adtechen.com

Chapter V Installing Software


To use the ADT-856 card in Win95,Win98, Win NT,Win2000,WinXP, you need to install driver first. The driver isnt necessary in DOS. The following section shows the procedures of installing driver in Win2000 and WinXP. Refer to this part to install driver in other operating systems. The driver (filename: adt856.inf) of the motion card is in the folder Development package\Drivers\Driver of motion card in the disc.

Other cards installing refer to ADT-856, except PC104 cards.

Install driver in Win2000


The following part takes Win2000 Professional Version as example to indicate installation of the drive; other versions of Win2000 are similar. After attaching the ADT-856 card to the PCI slot of a computer, a user shall log in as administrator to the computer; upon display of the initial interface, the computer shall notify Found new hardware as follows:

Click again Next to display the following dialogue:

Then select Specify a location and Click again Next and Click Browse button to select DevelopmentPackage/ Drive/ CardDrive and find the adt856.inf file, then click OK to display the following dialogue:

Just click Next to display the following dialogue:

Click Next to display the following dialogue:

ADT-series Servo/Stepping Motion Card

Finally click Finish to complete installation. Click Browse button to select Drive/ CardDrive and find

Install driver in WinXP


Install driver in WinXP as the same as above, and the following dialogue box:

the adt856.inf file, then click Next to display the following dialogue:

Click Next and the following dialogue box appears

Click Finish to complete installation.

Select Install from a list or specific position (Advanced), as shown in the figure below:

44 http://www.adtechen.com

ADT-series Servo/Stepping Motion Card signal to STOP0, STOP1 and STOP2. Set the valid/invalid and

Chapter VI Functions Introduction


Quantitative driving
Quantitative driving means to output pulse of specified amount in constant velocity or acceleration/deceleration. It is useful to move to specified position or execute specified action. The quantitative driving of acceleration/deceleration is shown in the following picture. Deceleration starts when left output pulses are less than accumulated acceleration pulses. The driving stops after the output of specified pulses. Configure the following parameters to execute the quantitative driving of acceleration/deceleration: a) Range R b) c) d) e) Acceleration/deceleration A/D Start velocity SV Driving velocity V Output pulse P

logical

electricity

of

every

signal

of

each

axis.

Acceleration/deceleration continuous driving is used in high speed searching. If the set valid signal is in activated electricity level, decelerated stop is used. Constant velocity continuous driving is used in low speed searching. If the set valid signal is in activated electricity level, sudden stop is used. To drive continuously output pulses. in acceleration/deceleration, you need to configure same parameters as quantitative driving except

Velocity curve
1Constant velocity driving
Constant velocity driving is to output driving pulses in constant speed. If the set driving velocity is lower than start velocity, there is only constant velocity driving. Only low velocity constant driving is necessary if you use home searching and coder phase Z signals and stop immediately when signals are searched. Configure the following parameters to execute constant velocity driving: Range R Start velocity SV Driving velocity V

Acceleration/deceleration quantitative driving automatically decelerates from the deceleration point as shown in the picture above. Manual deceleration is also available. In the following conditions, the automatic deceleration point cant be calculated accurately, thus the manual calculation is necessary: The velocity changes frequenctly in linear acceleration/deceleration quantitative driving. Perform arc and quantitative interpolation in acceleration/deceleration,need to change into manual deceleration mode and select deceleration point.

2Linear acceleration/deceleration driving


Linear acceleration/deceleration driving is to accelerate from start velocity to specified driving velocity linearly. In quantitative driving, the acceleration counter records the accumulated pulses of acceleration. If left output pulses are less than acceleration pulses, it will decelerate (automatically). In deceleration, it will decelerate to start velocity linearly in specified velocity. Configure the following parameters to execute linear acceleration/deceleration driving: Range R Acceleration A Acceleration and deceleration Deceleration D Deceleration if they are set separately (if necessary) Start velocity SV Driving velocity V 45 http://www.adtechcn.com

Continuous driving
In continuous driving, output driving pulse continuously until the high stop command or external stop signals are valid. It is useful in home searching, scanning and controlling of motor velocity. Two stop commands are available: decelerated and sudden. Each axis has the three external signals STOP0, STOP1 and STOP2 for decelerated/sudden stop. Every signal can be set as valid/invalid electricity. STOP0, STOP1 and STOP2 signals are decelerated stop in acceleration/deceleration driving and sudden stop in constant velocity driving. The application of continuous driving in home searching. Cinfigure home approach signal, home signal and coder phase Z

ADT-series Servo/Stepping Motion Card

Triangle prevention in quantitative driving


In quantitative driving of linear acceleration/deceleration, if the output pulses are less than the required pulses to accelerate to driving velocity, triangle waves as shown in the picture will appear, and triangle prevention is activated in this case. The triangle prevention function is to prevent triangle wave if the output pulses are less than required pulses in linear acceleration/deceleration quantitative driving. In acceleration, if the pulses consumed by acceleration and deceleration are more than 1/2 of total output pulses, acceleration stops and keeps in constant velocity field. Therefore, even if output pulses are less than 1/2 of output pulses, it is in constant velocity field. Configure the following parameters like common linear acceleration/deceleration driving: Range R Acceleration A Deceleration D Start velocity SV Driving velocity V

4S-curve acceleration/deceleration driving


When driving velocity accelerates or decelerates, the acceleration/deceleration can be increased or decreased linearly to generate S type velocity curve. S-curve acceleration/deceleration driving is shown in the picture below.

3 Asymmetrical linear acceleration/deceleration driving


When an object is moved vertically, it has the load of acceleration of gravity; therefore, youd better change the acceleration and deceleration in such asymmetrical linear acceleration/deceleration quantitative driving whose acceleration and deceleration are different. At this moment, you neednt to set manual deceleration point and automatic deceleration is used. Fig. 1 shows the example that acceleration is lower than deceleration and Fig. 2 shows the example that deceleration is lower than acceleration When the driving accelerates, the acceleration increases from zero linearity to appointed value (A) in appointed rate (K). Therefore, this velocity curve becomes secondary parabola (a-zone). When the acceleration reaches this value (A), it will retain this value. At this moment, the velocity curve is in linear mode and the velocity is accelerating (b-zone). The acceleration tends to be 0 if the difference between target velocity (V) and current velocity is less than the velocity 46 http://www.adtechcn.com

ADT-series Servo/Stepping Motion Card increased in corresponding time. The decreasing rate is same as increasing rate and decreases in appointed rate (K). At this moment, the velocity curve is in linear mode and the velocity is accelerating (c-zone). In this manual, the accelerating with partly fixed acceleration is called as partial S-curve accelerating On the other hand, b-zone will disappear if the difference between target velocity (V) and current velocity is less than the velocity increased in corresponding time before the acceleration reaches appointed value (A) in a-zone. The accelerating without fixed acceleration is called as complete S-curve accelerating. To perform S-curve acceleration/deceleration, you need to set the accelerating mode as S-curve and then configure the following parameters: Range R Change rate of acceleration/deceleration K Acceleration A Deceleration D (if necessary) Start velocity SV Driving velocity V Precautions of performing S-curve acceleration/deceleration driving: Do not change the driving velocity when performing S-curve acceleration/deceleration quantitative driving. Do not drive are interpolation or continuous interpolation when performing S-curve acceleration/deceleration. after the output of one negative pulse. Actual position counter counts the input pulses from external coder. You can select the type of input pulse A/B phase signal or independent 2-pulse up/down counting signals. The counting direction can be customized. The data of the two counters can be written or read at any time. The counting range is -2,147,483,648~+2,147,483,647.

Compare register and software limit


Each axis has two 32-bit registers (COMP+ COMP-), which can compare size with logical position counter and actual position counter. You can customize the objects of the two compare registers as logical position counter or actual position counter. COMP+ register is mainly used to detect the upper limit of logical/actual position counter and COMPregister is mainly used to detect the lower limit. When software limit is valid, deceleration stop is performed if the value of logical/actual position counter in the driving is bigger than the value of COMP+, and then only negative driving commands can be executed until the value of logical/actual position counter is smaller than the value of COMP+. Similarly, deceleration stop is performed if the value of ogical/actual position counter is smaller than the value of COMP-, and then only positive driving commands can be executed until the value of logical/actual position counter is bigger than the value of COMP-. COMP+ register and COMP- register can be written at any time.

Position management

Interpolation
ADT-856 card can perform linear interpolation of 2-6 axes and arc interpolation of 2 axes. ADT-8946A1 card can perform linear interpolation of 2-4 axes and arc interpolation of 2 axes. ADT-8948A1 card can perform linear interpolation of random 2-3 axes and arc interpolation of random 2 axes. ADT-8940A1 card can perform linear interpolation of random 2-4 axes. ADT-8960A1 card can perform linear interpolation of random 2-6 axes. ADT-8920A1 card can perform linear interpolation of 2 axes. ADT-836 card can perform linear interpolation of 2-6 axes and arc interpolation of 2 axes. ADT-860 card can perform linear interpolation of 2-3 axes and arc interpolation of 2 axes. 47 http://www.adtechcn.com

Logical position counter and actual position counter


Logical position counter is used to count the positive/negative output pulses of ADT8948A1 card. It counts up 1 after the output of one positive pulse and counts down 1

ADT-series Servo/Stepping Motion Card ADT-864 card can perform linear interpolation of 2-4 axes and arc interpolation of 2 axes. In interpolation driving process, the interpolation operation is performed in basic pulse time series of appointed axis. Before executing interpolation command, you need to set the start velocity and driving velocity of appointed axis. Threshold-crossing error in interpolation In interpolation driving, every driving axis can perform hardware limit and software limit. The interpolation driving will stop if the limit of any axis changes. Notice The interpolation will stop if the hardware limit or software limit in any direction (+/-) is activated in the arc interpolation process. Therefore, you must be careful when perform arc interpolation and can't leave limit area. In-position signal of servo motor The interpolation driving will stop once the INPOS signal of each axis is valid. The INPOS signals of all axes are in effective electricity level when the interpolation driving is finished. 1) 2-6 axes linear interpolation The linear interpolation starts when the end coordinate relative to current position is set. The coordinate range of linear interpolation is 24-bit with symbols. The interpolation range is from current position of each axis to -8,388,607~+8,388,607. CW arc interpolation draws arc from current coordinates to end-point coordinates in clockwise direction around the center coordinates. CCW arc interpolation draws arc around the center coordinates in counterclockwise direction. It will draw a complete circle if the end point is (0, 0). The arithmetic of arc interpolation is shown in the picture below. A plane is defined by X-axis and Y-axis. Devide it into 8 quadrants (0-7) around center coordinates. At the interpolation coordinates (X, Y) of quadrant 0, absolute value Y is always smaller than absolute value X. The axes with smaller absolute values are short axes. Quadrants 1, 2, 5 and 6 are X axes and quadrants 0, 3, 4 and 7 are Y axes. Short axes always output dricing pulses in these quadrants and long axes output pulses sometimes according to the result of arc interpolation operation. relative to the start point of current position, and then perform arc interpolation.

As shown in the picture above, the position precision of appointed line is 0.5LSB in the whole interpolation range. The above picture also shows the example of pulse output of linear interpolation driving. In set end-point values, the axis with maximum absolute value is long axis and this axis always outputs pulses in the interpolation driving process. Other axes are short axes and they output pulses sometimes according to the result of linear interpolation operation. The following examples show the output of a complete circle (take pulse output as an example).

2Arc interpolation
Set the center coordinates and end-point coordinates of the arc 48 http://www.adtechcn.com

ADT-series Servo/Stepping Motion Card check error before sending interpolation command. If you havent checked, the data and command will be invalid when error occurs and driving stops. If it is started from the second interpolation node at the bottom, you have to check. If any error is found, the circle of continuous interpolation should be disengaged. If there is arc interpolation in continuous interpolation, the value of short axis of arc interpolation end point might deviate one pulse from actual value. To avoid accumulating the errors of every node, you have to confirm the end point of every arc interpolation first and then determine the mode of 3Judgment of end-point For arc interpolation, set the current coordinates as (0, 0) before starting interpolation driving, then, determine the radius according to the value of center coordinates and draw a circle. The error of arc algorithmic is one pulse within the range of interpolation driving. Therefore, the appointed end-point may be not on the track of the circle. When the arc interpolation enters the quadrant of end-point, it will stop if the value of end point is same to the value of short axis of end point. continuous interpolation.

Interpolation of acceleration/deceleration driving


The interpolation is usually driven in constant velocity. But ADT-856,ADT-8946A1,ADT-8948A1,ADT-836,ADT-860 and ADT-864 cards can perform interpolation in linear acceleration/deceleration driving or S-curve acceleration/deceleration driving (for linear interpolation only) To realize acceleration/deceleration driving in continuous interpolation, you can use deceleration valid command and deceleration invalid command. In interpolation driving, deceleration valid command is used to make automatic or manual deceleration valid and deceleration invalid command is used to make them invalid. To run interpolation driving in acceleration/deceleration separately, you must select deceleration valid state before driving, otherwise, the deceleration valid command is invalid when you write it in the driving process. Acceleration/deceleration driving of linear interpolation In linear interpolation, linear acceleration/deceleration driving, S-curve acceleration/deceleration driving and automatic deceleration can be performed. Acceleration/deceleration driving of arc interpolation In bit mode arc interpolation, only manual decelerated linear acceleration/deceleration driving instead of S-curve acceleration/deceleration driving and automatic deceleration can be performed. Acceleration/deceleration driving of continuous interpolation In continuous interpolation, only manual decelerated linear acceleration/deceleration driving instead of S-curve acceleration/deceleration driving and automatic deceleration can be performed. In continuous interpolation, you need to set manual deceleration point first. This manual deceleration point is set on the final node of deceleration and the value of basic oulse from X axis is also set. To perform continuous interpolation, deactivate interpolation deceleration first and then perform 49 http://www.adtechcn.com

4Continuous interpolation
For motion card without continuous interpolation function, if you want to continue next interpolation after the previous interpolation, you have to check whether the previous interpolation is finished and then output the data of next interpolation. If the upper computer is too slow, or multi-task OS is run on the upper computer, an intermission, which has a adverse impact on effect and velocity of interpolation, occurs between interpolations. ADT-856,ADT-8946A1,ADT-8948A1,ADT-836,ADT-86 0 and ADT-864 cards is intergrated with continuous interpolation function and thus this problem is solved. It can output the data of next interpolation before previous interpolation is finished. It can get excellent effect even if the computer is slow. In continuous interpolation driving, read the writable state of continuous interpolation and interpolation driving state first, you can write the command of next interpolation if the interpolation hasnt been finished and it is writable. Therefore, in all interpolation nodes, the time from the beginning to the end of continuous interpolation driving should be more than the time of setting the data of next interpolation node and sending command. 5Errors in continuous interpolation In continuous interpolation driving process, if invalid drivings like threshold-crossing error occur, it stops immediately at current interpolation node. At stopped interpolation node, the command is invalid although the data and command of next node still exist. In addition, you need to

ADT-series Servo/Stepping Motion Card interpolation driving. At the final interpolation node to be decelerated, write allow deceleration command before writing interpolation command. Then, the deceleration is valid when the driving of final interpolation node starts. Deceleration starts when basic pulses from X axis of final interpolation node are bigger than the value of manual deceleration point. For example, in the continuous interpolation from node 1 to node 5, the procedures are as follows if manual deceleration is performed on final node 5. Set the acceleration/deceleration mode and parameters of main axis Write manual deceleration point Write deceleration invalid command Interpolation command of node 1 Detect error and wait to write next data Interpolation command of node 2 : Detect error and wait to write next data Write deceleration valid command Interpolation command of node 5 Set the manual deceleration point according to the value of basic pulses from node 5. For example, supposing that the deceleration consumes 2,000 pulses and total amount of basic pulses from node 5 is 5,000, set manual deceleration point as 5,000-2,000=3,000. The deceleration should be performed within one node from start to end. The total basic pulses from X axis to Z axis of final interpolation point of decelerated stop should be more than the pulses consumed by deceleration. Hardware limit signal Hardware limit signals (LMT+, LMT-) are used to limit the input signals of positive and negative direction driving pulses. If the limit signals and their logical level are valid, you can select decelerated stop or sudden stop with command.

Signals corresponding to servo motor


The input signals connected to servo motor drive are INPOS signal and ALARM signal. You can activate/deactivate each signal and set the logical electricity level. INPOS signal corresponds to the position end signal of servo motor. If the mode is valid, when a driving is finished, the waiting INPOS input signal is valid and the driving state is finished. ALARM input signal receives alarm signal from servo motor drive. It monitors the ALARM input signal if it is valid. If the signal is valid, the driving will be stopped immediately. You can read the status of the input signals for servo motor drive with universal I/O function. Universal output signal can be used to clear counter, reset counter or turn on servo.

Position lock
This function only in ADT-8948A1 card. Realize hardware position lock function with the IN signal on each axis. With one lock signal, the current position (either logical or actual) of all axes can be locked. The position lock is usefyl in mearsuring system.

Automatically back to home


This function only in ADT-8948A1 card. 1. Back to hone includes four steps: (1) Approach stop0 signal in high velocity; (2) Approach stop1 signal in low velocity; (3) Approach stop2 signal in low velocity; (4) Move from home to start point of processing in high velocity. 2. Process analysis You can select whether perform the above four steps or not, as well as the direction of each step; you can also use same signal in different steps.

Pulse output mode


The driving output pulse has two pulse output modes as shown in the figure below. In independent 2-pulse mode, PU/CW output driving pulse in positive driving and DR/CCW output driving pulse in negative driving. In single pulse mode, PU/CW output driving pulse and DR/CCW output direction signal.

External signal driving


This function only in ADT-8948A1 card. External signal driving is the motion controlled by external signals (handwheel or switch). It is mainly used in the manual debugging of machines and provides a lot of convenience in teaching system. To simplify the wiring, the motion card short connects the positive driving signals of the four axes and also short connects the negative driving signals of the four axes; therefore, only one 50 http://www.adtechcn.com

ADT-series Servo/Stepping Motion Card signal cable of the coder is connected to the external interface of external singals.

Stepping interpolation
This function only in ADT-8948A1 card. Stepping interpolation is to perform interpolation in single step. When one step is finished, the next interpolation motion will be performed while waiting for the command or signal of next interpolation. Stepping interpolation is mainly used in multi-axis manual debugging.

51 http://www.adtechcn.com

ADT-series Servo/Stepping Motion Card

Chapte VII Basic Library Functions List of ADT-series Motion Control Card
Function catalog Function name
adt856_initial adt8946_initial adt8948_initial adt8960_initial adt8940A1_initial set_address set_stop0_mode set_stop1_mode set_stop2_mode set_pulse_mode set_limit_mode set_suddenstop_mod e

Description
initial ADT-856 card initial ADT-8946A1 card initial ADT-8948A1 card initial ADT-8960 A1 card initial ADT-8940A1 card initial card-PC104 home signal mode home signal mode home signal mode pulse mode limit mode hardware stop delay status

Remark

Page
57 57 57 57 57

ADT-836ADT-860ADT-864

57 57 58 58 58 58

ADT-8920A1,ADT-8940A1, ADT-8960A1 ADT-8920A1,ADT-8940A1, ADT-8960A1

59 59

Basic parameters

set_delay_time

In ADT-8920A1,ADT-8940A1,ADT-8960A1 these cards,there is no the follow function set_actualcount_mode set_softlimit_mode1 set_softlimit_mode2 set_softlimit_mode3 set_inpos_mode set_alarm_mode set_ad_mode set_dec1_mode actula position counter mode soft limit mode soft limit mode soft limit mode servo in-position mode servo alarm mode acceleration/deceleration mode asymmetric acceleration/deceleration setting set_dec2_mode set_circle_mode set_input_fiilter set_filer_time disable_soft_limit enable_soft_limit set_lock_position get_status get_inp_status deceleration mode variable circle mode signal filtering signal filtering time disable software limit mode enable software limit mode set position lock mode get axis driving status get interpolation driving status get_delay_status delay status 52 http://www.adtechcn.com ADT-8920A1,ADT-8940A1,AD 62 60 61 61 61 61 61 61 62 62 60 59 59 59 60 60 60 60

the follow function only in ADT-8948A1 card

ADT-series Servo/Stepping Motion Card

Driving status checking

T-8960A1 In get_stopdata get_inp_status2 get error stop data continuous interpolation writing status the follow function only in ADT-8948A1 card get_lock_status get_home_status get_home_error set_startv set_speed set_command_pos set_actual_pos set_acc set_io_mode set_symmetry_speed get lock status get back-to-home status get back-to-home errors set start speed set driving speed set logical position counter set actual position counter set acceleration set input/output mode sets ymmetric acceleration/deceleration ADT-8960A1 ADT-8948A1,ADT-8946A1,AD T-8920A1,ADT-8940A1, ADT-8960A1 65 65 66 66 66 66 66 67 67 67 67 67 68 ADT-8948A1 ADT-8948A1 68 68 68 68 68 68 68 65 63 63 63 63 64 64 64 64 64 ADT-8920A1,ADT-8940A1, 62 ADT-8960A1 these cards,there is no this function as above 63

Driving parameters setting

In ADT-8920A1,ADT-8940A1,ADT-8960A1 these cards,there is no the follow function set_range set_acac set_dec set_comp1 set_comp2 set_dec_pos set_soft_limit set_vector_speed set_home_mode set_unsymmetry_spee d get_command_pos set range set acceleration changing rate set deceleration set COMP+ register set COMP- register set deceleration position set software limit value set speed mode set back-to-home mode set asymmetric acceleration/deceleration get logical position get actual position get driving speed get acceleration get lock position get library functions version single axis quantitative driving dec_stop sudden_stop inp_move2 decelerated stop sudden stop two axes inperpolation 53 http://www.adtechcn.com

the follow function only in ADT-8948A1 card

Driving parameters checking Version number Basic driving

get_actual_pos get_speed get_ad get_lock_position get_lib_version pmove

ADT-series Servo/Stepping Motion Card inp_move3 inp_move4 inp_move5 inp_move6 inp_clear continue_move three axes interpolation four axes interpolation five axes interpolation six axes interpolation clear interpolation errors continuous driving quantitative driving of external signals continuous driving of external signals disable external signals driving clockwise arc interpolation counterclockwise arc interpolation inp_dec_enable inp_dec_disable interpolation deceleration enabled interpolation deceleration disabled the follow function only in ADT-8948A1 card stop_axis stop_all inp_step_command2 inp_step_command3 inp_step_move inp_step_signal2 inp_step_signal3 inp_step_stop home clear_home_error set_in_move1 set_in_move2 stop axis stop all axes two axes command stepping interpolation three axes command stepping interpolation stepping interpolation driving command two axes signal stepping interpolation three axes signal stepping interpolation stepping interpolation stop command back to home clear back-to-home error single axis following signal moving two axes following signal 54 http://www.adtechcn.com 72 72 72 72 72 71 71 71 71 71 71 71 70 70 70 70 ADT-8948A1,ADT-8946A1 70 ADT-8948A1,ADT-8946A1 70 ADT-8920A1 no this function InADT-8948A1,ADT-860ADT-8 920A1 these cards,there is no this function ADT-8960A1 only ADT-836,ADT-856,ADT-8960A1 ADT-856 In ADT-8920A1,ADT-8940A1 these card, there is no this function manual_pmove manual_continue manual_disable ADT-8948A1,ADT-8946A1 70 69 69 69 69 69 69

In ADT-8920A1,ADT-8940A1,ADT-8960A1 these cards,there is no the follow function inp_cw_arc inp_ccw_arc

Synchronized function setting only in ADT-8948A1 card

ADT-series Servo/Stepping Motion Card moving set_in_move3 set_in_stop1 three axes following signal moving single axis following signal stop two axes following signal stop set_in_stop3 set_comp_pmove1 set_comp_pmove2 set_comp_pmove3 set_comp_stop1 set_comp_stop2 set_comp_stop3 three axes following signal stop position comparison single axis moving position comparison two axes moving position comparison three axes moving position comparison single axis stop position comparison two axes stop position comparison three axes stop symmetry_relative_m ove symmetry_absolute_ move symmetry_relative_lin e2 symmetry_absolute_li ne2 symmetry_relative_lin e3 symmetry_absolute_li ne3 symmetry_relative_ar single axis symmetric relative moving single axis symmetric absolute moving two axes symmetric linear interpolation relative moving two axes symmetric linear interpolation absolute moving three axes symmetric linear interpolation relative moving three axes symmetric linear interpolation absolute moving two axes symmetric arc interpolation relative moving two axes symmetric arc interpolation absolute moving symmetry_relative_lin e4 symmetry_absolute_li ne4 four axes symmetric linear interpolation relative moving four axes symmetric linear interpolation absolute 55 http://www.adtechcn.com as above 76 ADT-8940A1,ADT-8960A1 76 as above 76 ADT-8948A1,ADT-8946A1 76 ADT-8948A1,ADT-8946A1,AD T-8940A1,ADT-8960A1 as above 75 75 as above 75 as above 75 ADT-8948A1,ADT-8946A1,AD T-8920A1,ADT-8940A1, ADT-8960A1 as above 75 75 74 74 74 74 73 73 73 73 73 72

Synchronize d function setting

set_in_stop2

Composite driving

c symmetry_absolute_a rc

ADT-series Servo/Stepping Motion Card moving the follow function only in ADT-8948A1 card unsymmetry_relative_ line2 unsymmetry_absolute _line2 unsymmetry_relative_ move unsymmetry_absolute _move unsymmetry_relative_ line3 unsymmetry_absolute _line3 unsymmetry_relative_ arc unsymmetry_absolute _arc two axes asymmetric linear interpolation relative moving two axes asymmetric linear interpolation absolute moving single axis asymmetric relative moving single axis asymmetric absolute moving three axes asymmetric linear interpolation relative moving three axes asymmetric linear interpolation absolute moving two axes asymmetric arc interpolation relative moving two axes asymmetric arc interpolation absolute moving the follow function only in ADT-8960A1 card symmetry_relative_li ne5 symmetry_absolute_l ine5 symmetry_relative_li ne6 symmetry_absolute_l ine6 read_bit five axes symmetric linear interpolation relative moving five axes symmetric linear interpolation absolute moving six axes symmetric linear interpolation relative moving six axes symmetric linear interpolation absolute moving read single input bit output single bit get output status read all input switching status set all output switching status ADT-8948A1,ADT-8920A1, ADT-8940A1 ADT-836 ADT-836 80 80 79 80 80 79 78 78 78 78 78 77 77 77 76 76 76

Switch signals

write_bit get_out read_di write_do

56 http://www.adtechcn.com

ChapteVIII Details of Basic Library Functions


Basic parameters settings
Initialize card (PCI card) int adt8948_initial(void); Function: Initialize ADT-856 motion card (1) Return value>0,Return value is the quantity of ADT-856 cards in the system. Value 3 indiates that three cards have been installed and available card numbers are 0, 1 and 2; (2) Return value=0,Value 0 indicates that no ADT-856 card has been installed; (3) Return value<0,Value -1 indicates that the drivers of ADT-856 card havent been installed. ADT-856 ADT-8946A1 ADT-8948A1 motion cards Relative default status after initialization: Pulse output mode: pulse + direction Feedback input is A/B phase coding pulse input with 4 times frequency doubling STOP0, STOP1 and STOP2 are invalid Limit signals LMT+ and LMT- are low electricity level valid, sudden stop Software limit is invalid Servo nINPOS signal is invalid Servo nALARM signal is invalid Available acceleration/deceleration modes are linear, symmetric and automatic. The variable circle function of counter is invalid Input filtering is invalid ADT-8920A1ADT-8940A1ADT-8960A1 motion cards Relative default status after initialization: Pulse output mode: pulse + direction STOP0, STOP1 and STOP2 are invalid Limit signals LMT+ and LMT- are low electricity level valid sudden stop is invalid Notice: Initialization function is the premise to invoke other

functions. You need to invoke this function first to confirm available cards and initialize certain parameters. ADT-8946A1 ADT-8948A1 ADT-8920A1 ADT-8940A1ADT-8960A1 initialization as the same as the ADT-856.

Initialize card (PC104 card) int set_address(int cardno,long address); Function: Initialize ADT-864 motion card Parameter: cardno:card number address:card address Initialization functions are preliminary conditions to call other functions, thus must be called firstly so as to verify available cards and initialize some parameters. ADT-836ADT-860ADT-864 motion cards Relative default status after initialization: Pulse output mode: pulse + direction Feedback input is A/B phase coding pulse input with 4 times frequency doubling STOP0, STOP1 and STOP2 are invalid Limit signals LMT+ and LMT- are low electricity level valid, sudden stop Software limit is invalid Servo nINPOS signal is invalid Servo nALARM signal is invalid Available acceleration/deceleration modes are linear, symmetric and automatic. The variable circle function of counter is invalid Input filtering is invalid Note:ADT-836 ADT-860 ADT-864 motion cards Initialization in the same way Set stop0 signal mode int set_stop0_mode(int cardno, int axis, int value,int logic); Function: Setup of STOP0 signal valid /invalid and logic electric level Parameter: cardno axis value logic card number axis number 0:invalid 1:valid 0: low electric stop 1:high electric stop

ADT-series Servo/Stepping Motion Card Return value: 0: correct 1: wrong is certain error of initial position to make the function more high intension. STOP2 has the function only Set working mode of output pulse int set_pulse_mode(int cardno, int axis, int value,int logic,int dir_logic); Set stop1 signal mode int set_stop1_mode(int cardno, int axis, int value,int logic); Function Setup of STOP1 signal valid /invalid and logic electric level Parameter cardno axis value logic stop Return 1:wrong Default modes Signal is invalid and low electric level stops. Set stop2 signal mode int set_stop2_mode(int cardno, int axis, int value,int logic); Function Setup of STOP2 signal valid /invalid and logic electric level Parameter cardno axis value logic stop Return 1:wrong Default modes level stops. Signal is invalid and low electric value 0:correct card number axis number 0:invalid 1:valid 0: low electric stop 1:high electric Set the working mode of limit signal int set_limit_mode(int cardno, int logic); Function Set the mode of positive/negative limit input signal nLMT Parameter cardno axis value logic 58 http://www.adtechcn.com card number axis number 0:sudden stop 0:low level valid 0:correct 1:decelerated stop 1:high level valid 1:wrong int axis, int value, Return value Default modes 0:correct 1:wrong Pulse + direction; positive logical dir-logic 0: Positive direction pulse output value 0:correct card number axis number 0:invalid 1:valid 0: low electric stop 1:high electric logic 0:Positive logical pulse logical pulse 1:Negative Set working mode of output pulse Parameter cardno axis card number axis number 1:Pulse+ direction Default modes: Signal is invalid and low electric level stops. Notice: The way to stop rests on that it is A/D drive or uniform acceleration drive. For former it is A/D stop while for latter instant stop. STOP1 and STOP2 are just the same.

Function

value 0:Pulse + Pulse

1: Negative direction pulse output

pulse; Positive logic of direction output signal

Notice: When STOP2 is effective, it can delete real-position counter at the same time because of the delay of servo system or mechanic system. If after stop of drive clear counter with software, there

Return value

ADT-series Servo/Stepping Motion Card Default modes Notice The limit signal cant be set as valid or invalid Hardware stop int set_suddenstop_mode(int cardno,int v,int logical) Function: Hardware stop Parameter: cardno v logical level Return value 0:correct 1:wrong Notice:Hardware stop signals are assigned to use the 34 pin at the P3 terminal panel (IN31) Delay time int set_delay_time(int cardno,long time) Delay time Parameter: cardno time Return value card number Delay time 0:correct 1:wrong Function: card number 0:invalid 0:low level 1:valid 1:high Most position feedback devices use coder or grating scale, so you need to select A/B phase pulse input mode. The precision of this mode can be improved with frequency doubling technology. You can select 4 times or 2 times, or disable frequency doubling. For 4 times frequency doubling, if a coder of 1000 pulse per circle is used, the counter value will increase by 4000 when it rotates one circle clockwise, i.e. the precision is increased by 4 times Set COMP + register as software limit int set_softlimit_mode1(int cardno, value); Function Set COMP + register as software limit Parameter cardno axis value Return value Default modes Notice card number axis number Pulse input mode 1:Up/Down (PPIN/PMIN) Software limit always decelerate to stop, so the count value may exceed the set value, Therefore, this should be considered when setting the range. Set COMP - register as software limit Counting direction 0: A leads B or PPIN pulse input up count B leads A or PMIN pulse input down count 1:B leads A or PMIN pulse input up count A leads B or PPIN pulse input down count 59 http://www.adtechcn.com int set_softlimit_mode2(int cardno, value); Function Set COMP - register as software limit Parameter int axis, int card number axis number 0:invalid 0:correct invalid 1:valid 1:wrong int axis, int sudden stop, low level valid freq Frequency multiplication of A/B pulse 0: 4 Return value 1: 2 0:correct 2: 1 1:wrong input Invalid for Up/Down pulse input

Initialization status: A/B pulse inputdirection: 0 Frequency multiplication: 4

Notice:The time unit is 1/8us, with the maximum integer value as its maximum value. Set the working mode of actual position counter (coder input) int set_actualcount_mode(int cardno, int axis, int value,int dir,int freq); Function Set the working mode of actual position counter (coder input) Parameter cardno axis value pulse input dir

0:A/B pulse input

ADT-series Servo/Stepping Motion Card cardno axis value Return value Default modes Notice as above Set COMP+/-register as compare objects int set_softlimit_mode3(int cardno, value); Function set the compare objects of software limit Parameter cardno axis value position counter Return value Default modes software limit. Setting of servo in-position signal nINPOS int set_inpos_mode(int cardno, value, int logic); int axis, int 0:correct 1:wrong Logical position counter card number axis number 0:Logical position counter 1:Actual int axis, int card number axis number 0:invalid 0:correct invalid 1:valid 1:wrong cardno axis value card number axis number 0:invalid 0:correct 1:valid 1:wrong

logic 0:low level valid 1:high level valid Return value Default modes Notice Do not select valid if nALARM isnt connected to servo or stepping motor is used. Acceleration/deceleration setting int set_ad_mode(int cardno, Function Select linear or S-curve acceleration/deceleration. Parameter Cardno axis card number axis number 1:S-curve A/D 1:wrong 0:correct linear A/D int axis, int value); invalidlow level valid

value 0:linear A/D Return value Default modes

This function is to set the compare objects of Asymmetric ladder acceleration/deceleration setting int set_dec1_mode(int cardno, value); Function Select symmetric or asymmetric A/D Parameter Cardno card number axis number 0:invalid 0:low level valid 0:correct 1:valid 1:high level valid 1:wrong Return value Default modes axis value card number axis number acceleration/deceleration mode 0:symmetric A/D, 1:asymmetric A/D 0:correct symmetric A/D 1:wrong int axis, int

Function Setting of servo in-position signal nINPOS Parameter cardno axis value logic

Return value Default modes Notice

invalidlow level valid Deceleration mode setting of acceleration/deceleration quantitative driving int set_dec2_mode(int cardno, value); Function int setting deceleration mode Parameter cardno axis value 60 http://www.adtechcn.com card number axis number 0:automatic deceleration int axis, int

Do not select valid if nINPOS isnt connected to servo or stepping motor is used. Setting of servo alarm signal nALARM int set_alarm_mode(int cardno, value,int logic); Function Set the working mode of servo alarm signal nALARM Parameter int axis,

1:manual deceleration

ADT-series Servo/Stepping Motion Card Return value Default modes Notice Automatic deceleration is used in most cases. To use manual deceleration, it is necessary to set deceleration point. Setting of variable circle function of the counter int set_circle_mode(int cardno,int axis,int value); Function Set the variable circle mode of counter Parameter cardno axis value Return value Default modes card number axis number 0:invalid 0:correct invalid 1:valid 1:wrong 0:correct 1:wrong 0:correct 1:wrong automatic deceleration

Return value

Disable software limit int disable_soft_limit(int cardno, int axis); Function Disable software limit Parameter cardno axis Return value Notice This function is encapsulated with COMP+ and COMP- setting functions. Enable software limit int enable_soft_limit(int cardno, int axis, int value); Function Enable software limit Parameter cardno axis value card number axis number compare objects 0:correct 1:wrong card number axis number 0:correct 1:wrong

Input signal filtering function setting int set_input_filter(int cardno,int axis,int number,int value); Function Set the filtering function of input signal Parameter cardno axis number card number axis number Input types 1:LMT+LMT-STOP0STOP1 2:STOP2 3:nINPOSnALARM 4:nIN Set the filtering state of the four types input signals above value 0: Filtering invalid Return value Default modes 0:correct invalid 1: Filtering valid 1:wrong

(0: logical position counter;1:Actual position counter) Return value Notice This function is encapsulated with COMP+, COMP- and COMP+/- setting functions. Set the working mode of position lock int set_lock_position(int cardno, int axis,int regi,int logical); Function Set the working mode of position lock Parameter cardno card number axis axis number regi logical 61 http://www.adtechcn.com Counter type Electricity level logic of lock signals (0: low level lock; 1: high level lock ) (0: logical position counter;1:actual position counter)

Constant setting of filtering time of input signals int set_filter_time(int cardno,int axis,int value); Function Set the filtering time constant of input signals Parameter cardno axis value card number axis number range: 1-8, and the meanings are as follow:

ADT-series Servo/Stepping Motion Card Return value 0:correct 1:wrong Notice If single axis driving command is executed, you can send next driving instruction to the axis when the driving of corresponding axis is stopped. Otherwise, previous driving instruction stops immediately and next instruction is executed. Get the driving status of interpolation int get_inp_status(int cardno,int *value) Function Get the driving status of interpolation Parameter cardno value Return value Notice If interpolation driving command is executed, you can send next driving instruction to the axis when the interpolation driving of corresponding axis is stopped. Otherwise, previous driving instruction stops immediately and next instruction is executed. Delay status int get_delay_status(int cardno) Function: Delay status Parameter: cardno Return value card number 0: delay stop 1: delay in process card number Index of interpolation status 1: Interpolating 1:wrong 0:corre

Driving status checking


Get the driving status of single axis int get_status(int cardno,int axis,int *value) Function Get the driving status of single axis Parameter cardno axis value card number axis number Index of driving status; the meanings are: 0: Driving stopped Non-0: the value is in 2 bytes and their meanings are: D0 is the lowest position and D15 is the highest position D0: indicate the size comparison of logical/actual position counter and COMP+ register 1: logical/actual position counter >=COMP+ register 0: logical/actual position counter <COMP+ register D1: indicate the size comparison of logical/actual position counter and COMPregister 1: logical/actual position counter >=COMP- register 0: logical/actual position counter <COMPregister D2: In acceleration/deceleration driving, it is 1 in acceleration D3: In acceleration/deceleration driving, it is 1 in constant speed D4: In acceleration/deceleration driving, it is 1 in deceleration D5: In S-curve acceleration/deceleration driving, it is 1 when acceleration/deceleration is increased D6: In S-curve acceleration/deceleration driving, it is 1 when acceleration/deceleration is constant D7: In S-curve acceleration/deceleration driving, it is 1 when acceleration/deceleration is decreased D8-D15: Reserved Return value 0:correct 1:wrong 62

0: Interpolation stopped

Get the error stop data of axes int get_stopdata(int cardno,int axis,int *value) Function Get the error stop data of axes Parameter cardno axis value card number axis number Index of error status 0: No error Non-0: the value is in 2 bytes and their meanings are : D0 is the lowest position and D15 is the highest position D0: Stopped by STOP0 D1: Stopped by STOP1 D2: Stopped by STOP2

http://www.adtechcn.com

ADT-series Servo/Stepping Motion Card D3: Stopped by positive limit LMT+ D4: Stopped by negative limit LMTD5: Stopped by servo alarm D6: COMP+ register limit driving stopped D7: COMP- register limit driving stopped D8-D15: Reserved Return value 0:correct 1:wrong Function Get back-to-home error information Parameter cardno card number axis axis number err Error marker 0: :correct >0: wrong

Get the writable status of continuous interpolation int get_inp_status2(int cardno,int *value) Function Get the writable status of continuous interpolation Parameter cardno value card number Index of writing status 0: Unwritable Return value Notice If the driving is stopped, the status is 0. Threrfore, it is necessary to check whether error occurs in continuous interpolation process. Get lock status int get_lock_status(int cardno, int axis, int *status) Function Get the status of position lock Parameter cardno card number axis axis number status Return value Lock status (0: unlocked, 1: locked) 0:correct 1:wrong 0:correct 1: Writable 1:wrong

The meanings of first 7 digits of err: D0: comp+ limit D1: comp- limit D2: LMT+ limit D3: LMT- limit D4: Servo alarm D5: Emergency stop D6: Z phase signal arrives in advance Return value 0:correct 1:wrong

Moving parameter settings


The values of the following parameters are not fixed when the motion card is initialized. You need to set before using. Start velocity setting int set_startv(int cardno,int axis,long value); Function Set the value of start velocity Parameter cardno axis value Return value Notice in ADT-8920A1ADT-8940A1 ADT8960A1 these cards,the range value is (1-2,000,000) Start velocity is the velocity when the driving starts. The start velocity value is SV and the actual value of start velocity is: actual value of start velocity (PPS) = SV*M =SV*(8000000/R) If the value of start velocity is higher than that of driving speed, the drving will be performed in driving speed constantly even if the acceleration/deceleration has been set. Driving speed setting int set_speed(int cardno,int axis,long value); Function Set the value of driving speed Parameter 63 http://www.adtechcn.com card number axis number range1-8000 0:correct 1:wrong

Get back-to-home status int get_home_status(int cardno, int axis, int *status, int *err); Function Get back-to-home status Parameter cardno card number axis axis number status Whether driving is stopped (0: stopped, 1: moving) err Whether error occurs (0:Normal, 1: Error) Return value 0:correct 1:wrong

Get back-to-home error int get_home_error(int cardno, int axis ,int *err);

ADT-series Servo/Stepping Motion Card cardno axis value Return value Notice in ADT-8920A1ADT-8940A1 ADT8960A1 these cards,the range value is (1-2,000,000). Driving speed is the speed that reaches constant speed area in the moving process. The driving speed should be no lower than start velocity in principle. The driving speed is V and the actual value of driving speed is: actual value of driving speed (PPS) = V*M = V*(8000000/R) In ladder acceleration/deceleration or constant speed moving process, you can change the driving speed in real time. You cant change the driving speed in the quantitative pulse driving process of S-curve acceleration/deceleration. Besides, if the speed is changed in acceleration area or deceleration area in the continuous driving process of S-curve acceleration/deceleration, you cant run correct S-curve. Please change the speed in constant speed area In the quantitative pulse driving of linear acceleration/deceleration, if the driving speed si changed frequently, the dragging driving in start velocity will probably occur in the deceleration at the end of output pulse. Logical position counter setting int set_command_pos(int cardno,int axis,long value); Function Set the value of logical position counter Parameter Cardno axis value Return value card number axis number range(-2147483648~+2147483647) 0:correct 1:wrong Acceleration setting int set_acc(int cardno,int axis,long value); Function Set the value of acceleration Parameter cardno axis value Return value Notice in ADT-8920A1ADT-8940A1 ADT8960A1 these cards,the range value is (1-32,000) This is the acceleration and deceleration parameter in linear acceleration/deceleration driving. In S-curve acceleration/deceleration driving, the acceleration and deceleration increase linearly from 0 to set acceleration value. The set acceleration value is A and the actual acceleration is: Actual acceleration (PPS/SEC) = A*125*M = A*125*(8000000/R) The range of acceleration value is 1~8,000. If the setting is as follow: set_range(0,1,80000); the range is 800000 and magnification M=8000000/800000=10 set_acc(0,1,100); The acceleration is: 100*125* (8000000/80000) =1250000 PPS/SEC set input/output int set_io_mode(int cardno,int v1,int v2); Function: set input/output bit Parameter: 64 http://www.adtechcn.com card number axis number range1-8000 0:correct 1:wrong card number axis number range1-8000 0:correct 1:wrong int set_actual_pos(int cardno,int axis,long value); Function setting actual position counter Parameter Cardno axis value Return value Notice You can access the actual position counter in real time card number axis number range(-2147483648~+2147483647) 0:correct 1:wrong

Notice You can access the logical position counter in real time Actual position counter setting

ADT-series Servo/Stepping Motion Card v1 0:define the first 8 bit as input 1: define the first 8 bit as output v2 0: define the last 8 bit as input 1: define the last 8 bit as output Return value 0:correct 1:wrong required actual speed or acceleration/deceleration is higher than 8000, you need to set the range and adjust the magnification. If magnification is increased, the actual speed and acceleration/deceleration can be increased in same scale, but the resolution of speed and acceleration/deceleration becomes rough. Therefore, it is recommended that you set minimum value for magnification and maximum value for range within stated range of actual speed. In engineering practice, the setting of card number axis number Start speed Driving speed Acceleration time Acceleration change rate Acceleration mode reasonable range is the premise to get ideal actual speed curve. To calculate the range: Step 1: Calculate the magnification (M) according to estimated maximum actual speed (Vmax) M=Vmax/8000 (8000 is the maximum speed); Step 2: Calculate range (R) according to magnification: R = 8000000/M. For example: if required maximum speed is 40KPPS, then, M = 40*1000/8000 = 5 and R = 8000000/5 = 1600000. The range of R is 8000000-16000 and corresponding rate is 1-500. Youd better set the range in the process of system initialization. Do not change the Range setting int set_range(int cardno,int axis,long value); Function set range Parameter Cardno axis value Return value Notice Range is the rate parameter that determines the speed, acceleration/deceleration and change rate of acceleration/deceleration. If the range is R, the formula to calculate M is: M = 8000000/R. The effective range of driving speed, inialization speed and acceleration/deceleration is 1~8000. If 65 http://www.adtechcn.com card number axis number R- value range8000000-16000 0:correct 1:wrong range in the moving process; otherwise, the speed may jump. In a word, actual speed = set value of speed * magnification. Note: In ADT-8920A1ADT-8940A1 ADT-8960A1 these card no range function. Set the change rate of acceleration/deceleration int set_acac(int cardno,int axis,long value); Function Set the change rate of acceleration/deceleration Parameter cardno axis value Return value Notice card number axis number range(1-65535) 0:correct 1:wrong

Set symmetric acceleration/deceleration Int set_symmetry_speed(int cardno,int axis,long lspd,long hspd,double tacc,long vacc,int mode); Function Set the value of symmetric acceleration/deceleration Parameter cardno axis lspd hspd tacc vacc mode

(0: trapezoid 1: S-curve) Return value 0:correct 1:wrong Notice This function is composed of the function that sets acceleration/deceleration mode and the functions that set start velocity, driving speed, acceleration and change rate of acceleration/deceleration.

ADT-series Servo/Stepping Motion Card The change rate of acceleration/deceleration is the parameter that determines the change rate of acceleration and deceleration of S-curve acceleration/deceleration in unit time. If the value of acceleration/deceleration change rate is K, the actual value V (PPS/SEC2) of acceleration/deceleration change rate is V = (62500000/K)*M = (62500000/K)*(8000000/R). The range of acceleration/deceleration change rate is 1~65,535. If the setting is as follow: set_range(0,1,800000); the range is 800000 and magnification M=8000000/800000=10 set_acac(0,1,100); acceleration/deceleration change rate is 100; Then, the actual change rate of acceleration/deceleration is (62500000/100)*10=6250000 PPS/SEC2 Deceleration setting int set_dec(int cardno,int axis,long value); Function Set the value of acceleration Parameter cardno axis value Return value Notice It is the deceleration parameter in linear acceleration/deceleration driving in acceleration/deceleration fixed mode. In S-curve acceleration/deceleration driving, the deceleration increases linearly from 0 to set deceleration value. The deceleration value is D and the actual deceleration is: Actual deceleration (PPS/SEC) = D*125*M=D*125*(8000000/R) The range of deceleration value D is 1~8,000. If the setting is as follow: set_range(0,1,80000); the range is 800000 and magnification M=8000000/800000=10 set_dec(0,1,100); The deceleration is: 100*125* (8000000/80000) =1250000 66 http://www.adtechcn.com card number axis number D-value1-8000 0:correct 1:wrong Manual deceleration point setting int set_dec_pos(int cardno,int axis,long value); Function Set the value of manual deceleration point Parameter cardno axis value Return value Notice If manual deceleration mode is used, you need to set manual deceleration point first. Manual deceleration point = output pulses pulses consumed by deceleration Software limit setting int set_soft_limit (int cardno,int axis,long value1, long value2); Function card number axis number range0~268435455 0:correct 1:wrong COMP+ register setting int set_comp1(int cardno,int axis,long value); Function Set the value of COMP+ register Parameter cardno axis value card number axis number range value -2147483648~+2147483647 Return value Notice You can access the COMP+ register in real time COMP+ register setting int set_comp2(int cardno,int axis,long value); Function Set the value of COMP- register Parameter cardno axis value card number axis number range value -2147483648~+2147483647 Return value Notice You can access the COMP- register in real time 0:correct 1:wrong 0:correct 1:wrong PPS/SEC

ADT-series Servo/Stepping Motion Card Set the value of software limit Parameter cardno axis value1 value2 Return value Notice This function is encapsulated by COMP+ and COMPSet linear speed mode int set_vector_speed(int cardno, int mode); Function Linear speed mode setting Parameter cardno card number mode Speed mode (0: do not use constant linear speed; 1: use constant linear speed) Return value 0:correct 1:wrong Notice Linear speed indicates vector speed. Constant linear speed can guarantee the constant combination speed in interpolation. Set back-to-home mode int set_home_mode(int cardno, int axis,long speed,int logical0, int logical1, int logical2,int offset,int dir0, int dir1, int dir2,int offsetdir,int clear,long pulse); Function Set back-to-home mode of appointed axis Parameter cardno card number axis axis number speed Low speed (this value should be lower than start velocity of high speed) logical0 stop0 electricity level logic (0:low level stop, 1:high level stop,-1: invalid) logical1 stop1 electricity level logic (0:low level stop, 1:high level stop,-1:invalid) logical2 stop2 electricity level logic (0:low level stop, 1:high level stop,-1:invalid) offset dir0 dir1 dir2 offsetdir Offset symbol(0: do not offset from home, 1: offset from home) Direction approaching stop0 (0: positive, 1: negative) Direction approaching stop0 (0: positive, 1: negative) Direction approaching stop0 (0: positive, 1: negative) Offset direction (0: positive, 1: 67 http://www.adtechcn.com card number axis number Positive limit value negative limit value 0:correct 1:wrong negative) clear Clear counter? (0: Yes, 1: No) pulse Offset pulses Return value 0:correct 1:wrong Set asymmetric acceleration/deceleration int set_unsymmetry_speed(int cardno,int axis,long lspd,long hspd,double tacc,double tdec,long vacc,int mode); Function Set the value of asymmetric acceleration/deceleration Parameter cardno card number axis lspd hspd tacc tdec vacc mode axis number Start speed Driving speed Acceleration time deceleration time Acceleration change rate Acceleration mode

(0: trapezoid 1: S-curve) Return value 0:correct 1:wrong Notice This function is composed of the function that sets acceleration/deceleration mode and the functions that set start velocity, driving speed, acceleration, deceleration and change rate of acceleration/deceleration.

Moving parameter checking


The following functions can be invoked at any moment. Get the logical position of axes int get_command_pos(int cardno,int axis,long *pos); Function Get the logical position of axes Parameter cardno axis pos Return value Notice You can use this function to get the logical position of axes and it can represent the current position of axes if the motor is not out of step. Get the actual position of axes (i.e. coder feedback value) card number axis number index of logical position 0:correct 1:wrong

ADT-series Servo/Stepping Motion Card int get_actual_pos(int cardno,int axis,long *pos); Function Get the actual position of axis Parameter cardno axis pos Return value Notice You can use this function to get the actual position of axes and you can get the current position of axes even if the motor is out of step. Get the current driving speed of axes int get_speed(int cardno,int axis,long *speed); Function Get the current driving speed of axes Parameter cardno axis speed Return value Notice *(8000000/R) Value of actual speed = Getting speed*M = Getting speed*(8000000/R) Get the current acceleration of axes int get_ad(int cardno,int axis,long *ad); Function Get the current acceleration of axes Parameter cardno axis ad Return value card number axis number Index of current acceleration 0:correct 1:wrong card number axis number Index of current driving speed 0:correct 1:wrong Decelerated stop int dec_stop(int cardno,int axis); Function Stop current driving process in deceleration Parameter cardno axis Return value Notice This command is decelerated stop in acceleration/deceleration driving process and sudden stop in constant speed driving process. Sudden stop int sudden_stop(int cardno,int axis); Function Stop current driving process immediately Parameter cardno axis Return value Notice Stop pulse output immediately in acceleration/deceleration and constant speed driving process. Two axes linear interpolation int inp_move2(int cardno,int axis1,int axis2,long 68 http://www.adtechcn.com card number axis number 0:correct 1:wrong card number axis number 0:correct 1:wrong card number axis number index of actual position 0:correct 1:wrong Return value Version number of library function

Basic driving
Quantitative driving int pmove(int cardno,int axis,long pulse) Function Single axis quantitative driving Parameter cardno axis pulse card number axis number output pulses >0: Positive 0:correct <0: Negative 1:wrong range-268435455~+268435455 Return value Notice You need to set valid speed parameter before writing driving command.

Get lock position int get_lock_position(int cardno,int axis,long *pos); Function Get the latest lock position Parameter cardno card number axis axis number pos Return value Locked position 0:correct 1:wrong

Library function version checking


Get the version of library function int get_lib_version(int cardno); Function: Get the version number of library function

ADT-series Servo/Stepping Motion Card pulse1,long pulse2); Function Two axes linear interpolation Parameter cardno axis1,axis2 pulse1,pulse2 card number axis number Moving distance 1:wrong Six axes linear interpolation Int inp_move6(int cardno,long pulse1,long pulse2,long pulse3,long pulse4,long pulse5,long pulse6) Function: Three axes linear interpolation int inp_move3(int cardno,int axis1,int axis2,int axis3,long pulse1,long pulse2,long pulse3); Function Threeaxes linear interpolation Parameter cardno axis1,axis2,axis3 card number axis number Six axes linear interpolation Parameter: cardno card number pulse1,pulse2,pulse3,pulse4,pulse5,pulse6 Moving distance, range-8388608~+8388607 Return value 0:correct 1:wrong range-8388608~+8388607 Return value Notice The interpolation speed takes the speed of the axis with smaller axis number between axis1 and axis2 as the standard. 0:correct Function: five axes linear interpolation Parameter: cardno card number axis number axis1,axis2,axis3,axis4,axis5

pulse1,pulse2,pulse3,pulse4,pulse5 Moving distance, range-8388608~+8388607 Return value 0:correct 1:wrong

Delete interpolation error int inp_clear(int cardno); cardno card number 0:correct 1:wrong

pulse1,pulse2,pulse3 Moving distance range-8388608~+8388607 Return value Notice The interpolation speed takes the speed of the axis with smaller axis number between axis1, axis2 and axis3 as the standard. four axes linear interpolation int inp_move4(int cardno, int axis1,int axis2,int axis3,int axis4,long pulse1,long pulse2,long pulse3,long pulse4) Function: four axes linear interpolation Parameter: cardno axis1,axis2,axis3,axis4 pulse1,pulse2,pulse3,pulse4 0:correct card number axis number Moving distance 1:wrong 0:correct 1:wrong

Return value Notice

When 3- axis and 4-axis SR doesnt normally stop, Z and W are always under driving status and need making them normal with the functions above. Un-normal stop means stop order is used or takes place limited operation during drive. 2-axix has no need using Continuous driving int continue_move(int cardno,int axis,int dir) Function Single axis continuous driving Parameter cardno axis dir card number axis number Driving direction 0: Positive 1: Negative Return value Notice 0:correct 1:wrong

range-8388608~+8388607 Return value

Five axes linear interpolation int inp_move5(int cardno,int axis1,int axis2,int axis3,int axis4, int axis5,long pulse1,long pulse2,long pulse3,long pulse4,long pulse5) 69

You need to set valid speed parameter before writing driving command. Manual quantitative driving http://www.adtechcn.com

ADT-series Servo/Stepping Motion Card int manual_pmove(int cardno, int axis, long pulse); Function Quantitative driving of external signals Parameter cardno card number axis axis number pulse pulse Return value 0:correct 1:wrong Notice (1) After the command is sent, the quantitative driving can be triggered when external signal (trigger signal) drops to low electricity level; (2) In the driving process, the trigger signal isnt valid even if it drops to low electricity level; (3) The trigger signal may be triggered with handwheel or normal switch. Manual continuous driving int manual_continue(int cardno, int axis); Function continuous driving of external signals Parameter cardno card number axis axis number Return value 0:correct 1:wrong Notice (1) After the command is sent, the quantitative driving can be triggered when external signal (trigger signal) drops to low electricity level; (2) In the driving process, the trigger signal isnt valid even if it drops to low electricity level; (3) The trigger signal may be triggered with handwheel or normal switch. Disable manual driving int manual_disable(int cardno, int axis); Function Disable manual driving function Parameter cardno card number axis axis number Return value 0:correct 1:wrong Notice If this function is used, the axis wont move even if there is manual trigger signal as long as manual quantitative driving and manual continuous driving instructions are not invoked CW arc interpolation int inp_cw_arc(int cardno,int axis1,int axis2,long x,long y,long i,long j); Function Two axes CW arc interpolation 70 http://www.adtechcn.com Disable interpolation deceleration int inp_dec_disable(int cardno); Function Disable deceleration of interpolation Parameter i,j Notice The interpolation speed takes the speed of the axis with smaller axis number between axis1 and axis2 as the standard. CCW arc interpolation int inp_ccw_arc(int cardno,int axis1,int axis2,long x,long y,long i,long j); Function Two axes CCW arc interpolation Parameter cardno axis1,axis2 x,y card number Parameter Cardno x,y card number axis number End point position of arc axis1,axis2

interpolation (relative to start point) range-8388608~+8388607 i,j Circle center position of arc interpolation (relative to start point) range-8388608~+8388607 Return value 0:correct 1:wrong

axis number
End point position of arc

interpolation (relative to start point) range-8388608~+8388607 Circle center position of arc interpolation (relative to start point) range-8388608~+8388607 Return value Notice The interpolation speed takes the speed of the axis with smaller axis number between axis1 and axis2 as the standard Enable interpolation deceleration int inp_dec_enable(int cardno); Function Enable deceleration of interpolation Parameter cardno Return value card number 0:correct 1:wrong 0:correct 1:wrong

cardno Return value Notice

card number 0:correct 1:wrong

ADT-series Servo/Stepping Motion Card Set the data of three axes command stepping interpolation. Parameter cardno axis1 axis2 axis3 pulse1 pulse2 pulse3 Return value

This function and previous function are used in interpolation of acceleration/deceleration. Select Enable for single interpolation and select Disable at first and then select Enable at the last point for continuous examples. Stop single axis int stop_axis(int cardno,int axis,int mode); Function Stop the moving of singl axis in set mode. Parameter cardno axis mode card number axis number stop mode(0:sudden stop 1:decelerated stop) Return value Stop all axes int stop_all(int cardno,int mode); Function Stop the moving of all axes of appointed card in set mode. Parameter cardno mode card number stop mode (0:sudden stop 0:correct 1:wrong 0:correct 1:wrong interpolation. See the following

card number axis number1 axis number2 axis number3 moving distance of axis1 moving distance of axis2 moving distance of axis3 0:correct 1:wrong

Command stepping interpolation driving int inp_step_move(int cardno); Function Execute command stepping interpolation in single step. Parameter cardno card number Return value 0:correct 1:wrong Notice When you execute two axes or three axes command type stepping interpolation in single step, you can sned this command consecutively to execute stepping interpolation consecutively. Signal type two axes stepping interpolation int inp_step_signal2(int cardno,int axis1,int axis2,long pulse1,long pulse2); Function Set the data of two axes signal type stepping interpolation Parameter cardno card number axis1 axis number1 axis2 axis number2 pulse1 pulse2 Return value moving distance of axis1 moving distance of axis2 0:correct 1:wrong

1:decelerated stop) Return value

Command type two axes stepping interpolation Int inp_step_command2(int cardno,int axis1,int axis2,long pulse1,long pulse2); Function Set the data of two axes command stepping interpolation. Parameter cardno card number axis1 axis number1 axis2 pulse1 pulse2 Return value axis number2 Moving distance of axis1 Moving distance of axis2 0:correct 1:wrong

Signal type three axes stepping interpolation int inp_step_signal3(int cardno,int axis1,int axis2,int axis3,long pulse1,long pulse2,long pulse3); Function Set the data of three axes stepping interpolation. Parameter cardno card number axis1 axis number1 71 http://www.adtechcn.com

Command type three axes stepping interpolation int inp_step_command3(int cardno,int axis1,int axis2,int axis3,long pulse1,long pulse2,long pulse3); Function

ADT-series Servo/Stepping Motion Card axis2 axis3 pulse1 pulse2 pulse3 Return value Notice Stepping interpolation can be triggered when stepping interpolation signal is in low electricity level. Stop stepping interpolation int inp_step_stop(int cardno,int axis); Function Stop executing stepping interpolation. Parameter cardno card number axis axis number Return value Notice Once the stepping interpolation driving is started, the driving is always active state before it is stopped normally. To stop stepping interpolation moving in advance, you need to use stepping interpolation stop command, rather than sudden or decelerated stop. Automatic back-to-home int home(int cardno,int axis); Function Appointed axis executes back-to-home motion automatically. Parameter cardno card number axis axis number Return value Notice You need to select valid mode before using automatic back-to-home function. Clear back-to-home error int clear_home_error (int cardno, int axis ); Function Clear back-to-home error Parameter cardno card number axis axis number Return value 0:correct 1:wrong mode 0:correct 1:wrong 0:correct 1:wrong axis number2 axis number3 moving distance of axis1 moving distance of axis2 moving distance of axis3 0:correct 1:wrong pulse,long pulse1,int logical,int mode); Function When the IN signal of active axis is changed into set logic, the driven axis1 follows to move. The motion of active axis depends on set mode. Parameter cardno card number axis Active axis number axis1 pulse pulse1 logical mode Driven axis number1 Active axis pulses Driven axis1 pulses Electricity level logic of IN signal (0: low, 1: high) Running status of active axis (0:persistent, 1: appointed pulse) Return value 0:correct 1:wrong

Signal type two axes follow moving setting int set_in_move2(int cardno, int axis, int axis1,int axis2,long pulse,long pulse1,long pulse2,int logical,int mode); Function When the IN signal of active axis is changed into set logic, the driven axis1 and axis2 follow to move. The motion of active axis depends on set mode Parameter cardno axis axis1 axis2 pulse pulse1 pulse2 logical

card number Active axis number Driven axis number1 Driven axis number2 Active axis pulses Driven axis1 pulses Driven axis2 pulses Electricity level logic of IN signal (0: low, 1: high) Running status of active axis (0:persistent, 1: appointed pulse) 0:correct 1:wrong

Return value

Signal type three axes follow moving setting int set_in_move3(int cardno, int axis, int axis1,int axis2,int axis3,long pulse,long pulse1,long pulse2,long pulse3,int logical,int mode); Function When the IN signal of active axis is changed into set logic, the driven axis1, axis2 and axis3 follow to move. The motion of active axis 72 http://www.adtechcn.com

Synchronized function setting


Signal type single axis follow moving setting int set_in_move1(int cardno,int axis,int axis1,long

ADT-series Servo/Stepping Motion Card depends on set mode. Parameter cardno card number axis Active axis number axis1 axis2 axis3 pulse pulse1 pulse2 pulse3 logical mode Driven axis number1 Driven axis number2 Driven axis number3 Active axis pulses Driven axis1 pulses Driven axis2 pulses Driven axis3 pulses Electricity level logic of IN signal (0: low, 1: high) Running status of active axis (0:persistent, 1: appointed pulse) Return value 0:correct 1:wrong (0:low level,1:high level) mode Running status of active axis (0:stop,1: persistent) Return value 0:correct 1:wrong

Signal type three axes follow stopping setting int set_in_stop3(int cardno, int axis,int logical,int mode); Function When the IN signal of active axis is changed into set logic, the other three axes stop immediately. The motion of active axis depends on set mode. Parameter cardno card number axis Active axis number logical mode Electricity level logic of IN signal (0: low, 1: high) Running status of active axis (0:persistent, 1: appointed pulse) Return value 0:correct 1:wrong

Signal type single axis follow stopping setting int set_in_stop1(int cardno,int axis,int axis1,int logical,int mode); Function When the IN signal of active axis is changed into set logic, the driven axis1 stops immediately. The motion of active axis depends on set mode. Parameter cardno card number axis Active axis number axis1 logical mode Driven axis number1 Electricity level logic of IN signal (0: low, 1: high) Running status of active axis (0:persistent, 1: appointed pulse) Return value 0:correct 1:wrong

Position comparison single axis follow moving setting int set_comp_pmove1(int cardno, int axis, int axis1, long pulse, long pulse1, int regi, int term); Function When active axis reaches appointed position, driven axis1 moves immediately. Parameter cardno card number axis Active axis number axis1 pulse pulse1 regi Driven axis number1 Active axis pulses

Signal type two axes follow stopping setting int set_in_stop2(int cardno, int axis, int axis1,int axis2,int logical,int mode); Function When the IN signal of active axis is changed into set logic, the driven axis1 and axis2 stop immediately. The motion of active axis depends on set mode. Parameter cardno card number axis Active axis number axis1 axis2 logical Driven axis number1 Driven axis number2 Electricity level logic of IN signal 73

Driven axis1 pulses Comparison register type (0:comp+;1:comp-) term Relational operator (0:>=,1:<) Return value 0:correct 1:wrong Position comparison two axes follow moving setting int set_comp_pmove2(int cardno, int axis, int axis1,axis2, long pulse, long pulse1,long pulse2, int regi, int term); Function When active axis reaches appointed position, driven axis1 and axis2 move immediately. Parameter cardno card number axis Active axis number http://www.adtechcn.com

ADT-series Servo/Stepping Motion Card axis1 axis2 pulse pulse1 pulse2 regi Driven axis number1 Driven axis number2 Active axis pulses Driven axis1 pulses pulse regi term mode Active axis pulses Comparison register type (0:comp+;1:comp-) Relational operator (0:>=,1:<) Running status of active axis (0:persistent, 1:stop) Return value 0:correct 1:wrong

Driven axis2 pulses Comparison register type (0:comp+;1:comp-) term Relational operator (0:>=,1:<) Return value 0:correct 1:wrong Position comparison three axes follow moving setting int set_comp_pmove3(int cardno,int axis,int axis1,axis2,int axis3, long pulse,long pulse1,long pulse2,long pulse3, int regi, int term); Function When active axis reaches appointed position, driven axis1, axis2 and axis3 move immediately. Parameter cardno card number axis Active axis number axis1 axis2 axis3 pulse pulse1 pulse2 pulse3 regi term Return value Notice Position comparison driving is to compare the current position (logical and actual) of active axis with comparison register. If they satisfy the condition of relational operator, the driven axis will run appointed pulses immediately. Position comparison single axis stop setting int set_comp_stop1(int cardno, int axis, int axis1, long pulse, int regi, int term,int mode); Function When active axis reaches appointed position, driven axis1 moves immediately. The motion of active axis depends on set mode Parameter cardno card number axis Active axis number axis1 Driven axis number1 74 Driven axis number1 Driven axis number2 Driven axis number3 Active axis pulses Driven axis1 pulses Driven axis2 pulses Driven axis3 pulses Comparison register type (0:comp+;1:comp-) Relational operator (0:>=,1:<) 0:correct 1:wrong

Position comparison two axes stop setting int set_comp_stop2(int cardno, int axis, int axis1,int axis2, long pulse, int regi, int term,int mode); Function When active axis reaches appointed position, driven axis1 and axis2 move immediately. The motion of active axis depends on set mode. Parameter cardno card number axis Active axis number axis1 axis2 pulse regi term mode Driven axis number1 Driven axis number2 Active axis pulses Comparison register type (0:comp+;1:comp-) Relational operator (0:>=,1:<) Running status of active axis (0:persistent, 1:stop) Return value 0:correct 1:wrong

Position comparison three axes stop setting int set_comp_stop3(int cardno, int axis, long pulse, int regi, int term,int mode); Function When active axis reaches appointed position, driven axis1, axis2 and axis3 move immediately. The motion of active axis depends on set mode. Parameter cardno card number axis Active axis number pulse regi term mode Active axis pulses Comparison register type (0:comp+;1:comp-) Relational operator (0:>=,1:<) Running status of active axis (0:persistent, 1:stop) Return value 0:correct 1:wrong

Composite driving
To provide convenience for the customers, we encapsulated composite driving functions in the basic library functions. These functions mainly http://www.adtechcn.com

integrate speed mode setting, speed parameter setting and motion functions, while absolute motion and relative motion are also considered. Single axis symmetric relative moving int symmetry_relative_move(int cardno, int axis, long pulse, long lspd ,long hspd, double tacc, long vacc, int mode); Function Refer to current position and perform quantitative motion in symmetric acceleration/deceleration. Parameter cardno card number axis axis number pulse pulse lspd low speed hspd high speed tacc acceleration time (unit: second) vacc Change rate of acceleration mode Mode (0: trapezoid, 1: S-curve) Return value 0:correct 1:wrong Single axis symmetric absolute moving int symmetry_absolute_move(int cardno, int axis, long pulse, long lspd ,long hspd, double tacc, long vacc, int mode); Function Refer to the position of zero point and perform quantitative motion in symmetric acceleration/deceleration. Parameter cardno card number axis axis number pulse pulse lspd low speed hspd high speed tacc acceleration time (unit: second) vacc change rate of acceleration mode mode (0: trapezoid, 1: S-curve) Return value 0:correct 1:wrong Two axes symmetric linear interpolation relative moving int symmetry_relative_line2(int cardno, int axis1, int axis2,long pulse1, long pulse2, long lspd ,long hspd, double tacc, long vacc, int mode) ; Function Refer to current position and perform linear interpolation in symmetric acceleration/deceleration. Parameter cardno card number axis1 axis number1 axis2 axis number2 75

ADT-series Servo/Stepping Motion Card pulse1 axis1 pulse pulse2 axis2 pulse lspd low speed hspd high speed tacc acceleration time (unit: second) vacc change rate of acceleration mode mode (0: trapezoid, 1: S-curve) Return value 0:correct 1:wrong Two axes symmetric linear interpolation absolute moving int symmetry_absolute_line2(int cardno, int axis1, int axis2,long pulse1, long pulse2, long lspd ,long hspd, double tacc, long vacc, int mode) ; Function Refer to the position of zero point and perform linear interpolation in symmetric acceleration/deceleration. Parameter cardno card number axis1 axis number1 axis2 axis number2 pulse1 axis1 pulse pulse2 axis2 pulse lspd low speed hspd high speed tacc acceleration time (unit: second) vacc Change rate of acceleration mode Mode (0: trapezoid, 1: S-curve) Return value 0:correct 1:wrong Three axes symmetric linear interpolation relative moving int symmetry_relative_line3(int cardno, int axis1, int axis2, int axis3, long pulse1, long pulse2, long pulse3, long lspd ,long hspd, double tacc, long vacc, int mode); Function Refer to current position and perform linear interpolation in symmetric acceleration/deceleration. Parameter cardno card number axis1 axis number1 axis2 axis number2 axis3 axis number3 pulse1 axis1 pulse pulse2 axis2 pulse pulse3 axis3 pulse lspd low speed hspd high speed tacc acceleration time (unit: second) vacc change rate of acceleration mode mode (0: trapezoid, 1: S-curve) Return value 0:correct 1:wrong Three axes symmetric linear interpolation absolute moving int symmetry_absolute_line3(int cardno, int axis1, int http://www.adtechcn.com

axis2, int axis3, long pulse1, long pulse2, long pulse3, long lspd ,long hspd, double tacc, long vacc, int mode); Function Refer to the position of zero point and perform linear interpolation in symmetric acceleration/deceleration. Parameter cardno card number axis1 axis number1 axis2 axis number2 axis3 axis number3 pulse1 axis1 pulse pulse2 axis2 pulse pulse3 axis3 pulse lspd low speed hspd high speed tacc acceleration time (unit: second) vacc change rate of acceleration mode mode (0: trapezoid, 1: S-curve) Return value 0:correct 1:wrong Two axes symmetric arc interpolation relative moving int symmetry_relative_arc(int cardno, int axis1, int axis2, long x, long y, long i, long j, int dir, long lspd ,long hspd, double tacc, long vacc, int mode); Function Refer to current position and perform arc interpolation in symmetric A/D Parameter cardno card number axis1 axis number1 axis2 axis number2 x, y arc end point coordinates (refer to zero point) i, j circle center coordinates (refer to zero point) dir moving direction (0- clockwise, 1- counterclockwise) lspd low speed hspd high speed tacc acceleration time (unit: second) vacc change rate of acceleration mode mode (0: trapezoid, 1: S-curve) Return value 0:correct 1:wrong Two axes symmetric arc interpolation absolute moving int symmetry_absolute_arc(int cardno, int axis1, int axis2, long x, long y, long i, long j, int dir, long lspd ,long hspd, double tacc, long vacc, int mode); Function Refer to the position of zero point and perform arc interpolation in symmetric acceleration/deceleration. Parameter cardno card number axis1 axis number1 axis2 axis number2 76

ADT-series Servo/Stepping Motion Card arc end point coordinates (refer to zero point) i, j circle center coordinates (refer to zero point) dir moving direction (0- clockwise, 1- counterclockwise) lspd low speed hspd high speed tacc acceleration time (unit: second) vacc change rate of acceleration mode mode (0: trapezoid, 1: S-curve) Return value 0:correct 1:wrong x, y Four axes linear interpolation relative moving int symmetry_relative_line4(int cardno, long pulse1, long pulse2, long pulse3, long pulse4,long lspd ,long hspd, double tacc); Function Refer to current position and perform linear interpolation in symmetric A/D. Parameter cardno card number pulse1 axis1 pulse pulse2 axis2 pulse pulse3 axis3 pulse pulse4 axis3 pulse lspd low speed hspd high speed tacc acceleration time (unit: second) Return value 0:correct 1:wrong Four axes linear interpolation absolute moving int symmetry_absolute_line4(int cardno, long pulse1, long pulse2, long pulse3, long pulse4, long lspd ,long hspd, double tacc); Function Refer to the position of zero point and perform linear interpolation in symmetric A/D. Parameter cardno card number pulse1 axis1 pulse pulse2 axis2 pulse pulse3 axis3 pulse pulse4 axis3 pulse lspd low speed hspd high speed tacc acceleration time (unit: second) Return value 0:correct 1:wrong Single axis asymmetric relative moving int unsymmetry_relative_move (int cardno, int axis, long pulse, long lspd ,long hspd, double tacc, double tdec, long vacc, int mode); Function Refer to current position and perform quantitative motion in asymmetric A/D Parameter cardno card number http://www.adtechcn.com

ADT-series Servo/Stepping Motion Card axis pulse lspd hspd tacc tdec vacc mode Return value axis number axis pulse low speed high speed acceleration time (unit: second) deceleration time (unit: second) change rate of acceleration mode (0: ladder, 1: S-curve) 0:correct 1:wrong linear interpolation in symmetric A/D. Parameter cardno card number axis1 axis number1 axis2 axis number2 pulse1 axis1 pulse pulse2 axis2 pulse lspd low speed hspd high speed tacc acceleration time (unit: second) tdec deceleration time (unit: second) vacc change rate of acceleration mode mode (0: ladder, 1: S-curve) Return value 0:correct 1:wrong Three axes asymmetric linear interpolation relative moving int unsymmetry_relative_line3(int cardno, int axis1, int axis2,int axis3,long pulse1,long pulse2,long pulse3,long lspd,long hspd,double tacc,double tdec, long vacc, int mode); Function Refer to current position and perform linear interpolation in symmetric A/D. Parameter cardno card number axis1 axis number1 axis2 axis number2 axis3 axis number3 pulse1 axis1 pulse pulse2 axis2 pulse pulse3 axis3 pulse lspd low speed hspd high speed tacc acceleration time (unit: second) tdec deceleration time (unit: second) vacc change rate of acceleration mode mode (0: ladder, 1: S-curve) Return value 0:correct 1:wrong Three axes asymmetric linear interpolation absolute moving int unsymmetry_absolute_line3(int cardno, int axis1, int axis2, int axis3, long pulse1, long pulse2, long pulse3, long lspd ,long hspd, double tacc, double tdec, long vacc, int mode); Function Refer to the position of zero point and perform linear interpolation in symmetric A/D. Parameter cardno card number axis1 axis number1 axis2 axis number2 axis3 axis number3 pulse1 axis1 pulse pulse2 axis2 pulse pulse3 axis3 pulse lspd low speed hspd high speed tacc acceleration time (unit: second) 77 http://www.adtechcn.com

Single axis asymmetric absolute moving int unsymmetry_absolute_move (int cardno, int axis, long pulse, long lspd ,long hspd, double tacc, double tdec, long vacc, int mode); Function Refer to the position of zero point and perform quantitative motion in asymmetric A/D. Parameter cardno card number axis axis number pulse axis pulse lspd low speed hspd high speed tacc acceleration time (unit: second) tdec deceleration time (unit: second) vacc change rate of acceleration mode mode (0: ladder, 1: S-curve) Return value 0:correct 1:wrong Two axes asymmetric linear interpolation relative moving int unsymmetry_relative_line2 (int cardno, int axis1, int axis2, long pulse1, long pulse2, long lspd ,long hspd,double tacc,double tdec, long vacc, int mode) ; Function Refer to current position and perform linear interpolation in symmetric A/D. Parameter cardno card number axis1 axis number1 axis2 axis number2 pulse1 axis1 pulse pulse2 axis2 pulse lspd low speed hspd high speed tacc acceleration time (unit: second) tdec deceleration time (unit: second) vacc change rate of acceleration mode mode (0: ladder, 1: S-curve) Return value 0:correct 1:wrong Two axes asymmetric linear interpolation absolute moving int unsymmetry_absolute_line2 (int cardno, int axis1,int axis2,long pulse1,long pulse2,long lspd ,long hspd, double tacc, double tdec, long vacc, int mode) ; Function Refer to the position of zero point and perform

ADT-series Servo/Stepping Motion Card tdec vacc mode Return value deceleration time (unit: second) change rate of acceleration mode (0: ladder, 1: S-curve) 0:correct 1:wrong int symmetry_relative_line5(int cardno,int axis1, int axis2, int axis3,int axis4,int axis5,long pulse1, long pulse2, long pulse3, long pulse4,long pulse5,long lspd ,long hspd, double tacc) Function: Refer to current position and perform linear .interpolation in symmetric A/D Parameter: cardno card number axis1 axis number1 axis2 axis number2 axis3 axis number3 axis4 axis number4 axis5 axis number5 pulse1 axis1 pulse pulse2 axis2 pulse pulse3 axis3 pulse pulse4 axis4 pulse pulse5 axis5 pulse lspd low speed hspd high speed tacc acceleration time (unit: second) Return value 0:correct 1:wrong Five axes linear interpolation absolute moving int symmetry_absolute_line5(int cardno, int axis1, int axis2, int axis3,int axis4,int axis5,long pulse1, long pulse2, long pulse3, long pulse4,long pulse5,long lspd ,long hspd, double tacc) Function: Refer to the position of zero point and perform linear interpolation in symmetric acceleration/deceleration. Parameter: cardno card number axis1 axis number1 axis2 axis number2 axis3 axis number3 axis4 axis number4 axis5 axis number5 pulse1 axis1 pulse pulse2 axis2 pulse pulse3 axis3 pulse pulse4 axis4 pulse pulse5 axis5 pulse lspd low speed hspd high speed tacc acceleration time (unit: second) Return value 0:correct 1:wrong Six axes linear interpolation relative moving int symmetry_relative_line6(int cardno,long pulse1, long pulse2, long pulse3, long pulse4,long pulse5, long pulse6,long lspd ,long hspd, double tacc) Function: Refer to current position and perform linear .interpolation in symmetric A/D Parameter: cardno card number pulse1 axis1 pulse pulse2 axis2 pulse pulse3 axis3 pulse pulse4 axis4 pulse pulse5 axis5 pulse 78 http://www.adtechcn.com

Two axes asymmetric arc interpolation relative moving int unsymmetry_relative_arc(int cardno, int axis1, int axis2, long x, long y, long i, long j, int dir, long lspd ,long hspd, double tacc, double tdec, long vacc, int mode); Function Refer to current position and perform arc interpolation in asymmetric A/D. Parameter cardno card number axis1 axis number1 axis2 axis number2 x, y arc end point coordinates (refer to zero point) i, j circle center coordinates (refer to zero point) dir moving direction (0- clockwise, 1- counterclockwise) lspd low speed hspd high speed tacc acceleration time (unit: second) tdec deceleration time (unit: second) vacc change rate of acceleration mode mode (0: trapezoid, 1: S-curve) Return value 0:correct 1:wrong Two axes asymmetric arc interpolation absolute moving int unsymmetry_absolute_arc(int cardno, int axis1, int axis2, long x, long y, long i, long j, int dir, long lspd ,long hspd, double tacc, double tdec, long vacc, int mode); Function Refer to the position of zero point and perform arc interpolation in asymmetric A/D. Parameter cardno card number axis1 axis number1 axis2 axis number2 x, y arc end point coordinates (refer to zero point) i, j circle center coordinates (refer to zero point) dir moving direction (0- clockwise, 1- counterclockwise) lspd low speed hspd high speed tacc acceleration time (unit: second) tdec deceleration time (unit: second) vacc change rate of acceleration mode mode (0: trapezoid, 1: S-curve) Return value 0:correct 1:wrong Five axes linear interpolation relative moving

ADT-series Servo/Stepping Motion Card pulse6 axis6 pulse lspd low speed hspd high speed tacc acceleration time (unit: second) Return value 0:correct 1:wrong Six axes linear interpolation absolute moving int symmetry_absolute_line6(int cardno,long pulse1, long pulse2, long pulse3, long pulse4,long pulse5, long pulse6,long lspd ,long hspd, double tacc) Function: Refer to the position of zero point and perform linear interpolation in symmetric acceleration/deceleration. Parameter: cardno card number pulse1 axis1 pulse pulse2 axis2 pulse pulse3 axis3 pulse pulse4 axis4 pulse pulse5 axis5 pulse pulse6 axis6 pulse lspd low speed hspd high speed tacc acceleration time (unit: second) Return value 0:correct 1:wrong 36:BSTOP2 38:BALARM 40:CLMT+ 42:CSTOP0 44:CSTOP2 46:CALARM 0-34meanings are: 0:X LMT2:X STOP0 4:X STOP2 6:Y LMT8:Y STOP0 10:YSTOP2 12:Z LMT14:Z STOP0 16:Z STOP2 18:A LMT20:A STOP0 22:A STOP2 24:X IN 26:Y IN 28:Z IN 30:A IN 32:EXPP 34:EMGN ADT-836 input bit0-47meanings are: 0:X LMT+ 2:X STOP2 4:X STOP0 6:X ALARM 8:Y LMT+ 10:Y STOP2 12:YSTOP0 14:Y ALARM 16:Z LMT+ 18:Z STOP2 20:Z STOP0 22:Z ALARM 24:A LMT+ 26:A STOP2 28:A STOP0 30:A ALARM 32:B LMT+ 34:B STOP2 79 http://www.adtechcn.com 1:X LMT3:X STOP1 5:X INPOS 7:X IN 9:Y LMT11:Y STOP1 13:Y INPOS 15:Y IN 17:Z LMT19:Z STOP1 21:Z INPOS 23:Z IN 25:A LMT27:A STOP1 29:A INPOS 31:A IN 33:B LMT35:B STOP1 1:X LMT+ 3:X STOP1 5:X ALARM 7:Y LMT+ 9:Y STOP1 11:Y ALARM 13:Z LMT+ 15:Z STOP1 17:Z ALARM 19:A LMT+ 21:A STOP1 23:A ALARM 25:X INPOS 27:Y INPOS 29:Z INPOS 31:A INPOS 33:EXPM 37:BINPOS 39:BIN 41:CLMT43:CSTOP1 45:CINPOS 47:CIN

ADT-8946A1ADT-8948A1 input bit

Switch quantity input/output


Read single input bit int read_bit(int cardno,int number) cardno number Return value card number input bit 0:low level

1:high level -1:wrong input bit meaning are: ADT-856 input bit0-47meanings are: 0:XLMT+ 2:XSTOP0 4:XSTOP2 6:XALARM 8:YLMT+ 10:YSTOP0 12:YSTOP2 14:YALARM 16:ZLMT+ 18:ZSTOP0 20:ZSTOP2 22:ZALARM 24:ALMT+ 26:ASTOP0 28:ASTOP2 30:AALARM 32:BLMT+ 34:BSTOP0 1:XLMT3:XSTOP1 5:XINPOS 7:XIN 9:YLMT11:YSTOP1 13:YINPOS 15:YIN 17:ZLMT19:ZSTOP1 21:ZINPOS 23:ZIN 25:ALMT27:ASTOP1 29:AINPOS 31:AIN 33:BLMT35:BSTOP1

ADT-series Servo/Stepping Motion Card 36:B STOP0 38:B ALARM 40:C LMT+ 42:C STOP2 44:C STOP0 46:C ALARM are: 0:X LMT+ 2:X STOP2 4:X STOP0 6:X ALARM 8:Y LMT+ 10:Y STOP2 12:YSTOP0 14:Y ALARM 16:Z LMT+ 18:Z STOP2 20:Z STOP0 22:Z ALARM 24:A LMT+ 26:A STOP2 28:A STOP0 30:A ALARM 1:X LMT3:X STOP1 5:X INPOS 7:X IN0 9:Y LMT11:Y STOP1 13:Y INPOS 15:Y IN0 17:Z LMT19:Z STOP1 21:Z INPOS 23:Z IN0 25:A LMT27:A STOP1 29:A INPOS 31:A IN0 37:B INPOS 39:B IN 41:C LMT43:C STOP1 45:C INPOS 47:C IN value Return value cardno number card number output bit0-31 D0:OUT0 D1:OUT1 D31:OUT31 0:low 0:correct 1:high 1:wrong

ADT-860 ADT-864 input bit 0-31 meanings

Get the status of output bit int get_out(int cardno, int number); Function Get the status of output port Parameter cardno card number number Output bit0-31 Return value Get the current status of appointed port 0: OFF 1: ON -1: Parameter error Read all switch quantitative output status ADT-836 int read_di(int cardno,unsigned long *value)

Parameter
cardno value card number index of input status value the value is in 4 bytes D0 is the lowest position and D47 is the highest position,0 is the low level and 1 is the high level. D0:X LMT+ D2:X STOP2 D4:X STOP0 D6:X ALARM D8:Y LMT+ D10:Y STOP2 D12:YSTOP0 D14:Y ALARM D16:Z LMT+ D18:Z STOP2 D20:Z STOP0 D22:Z ALARM D24:A LMT+ D26:A STOP2 D28:A STOP0 D30:A ALARM Return value 0:correct D1:X LMTD3:X STOP1 D5:X INPOS D7:X IN D9:Y LMTD11:Y STOP1 D13:Y INPOS D15:Y IN D17:Z LMTD19:Z STOP1 D21:Z INPOS D23:Z IN D25:A LMTD27:A STOP1 D29:A INPOS D31:A IN 1:wrong

ADT-8920A1ADT-8940A1 ADT-8960A1 input bit0-39meanings are: 0:X LMT2:X STOP0 4:X STOP2 6:Y LMT8:Y STOP0 0:YSTOP2 12:Z LMT14:Z STOP0 16:Z STOP2 18:A LMT20:A STOP0 22:A STOP2 24:X IN 26:Y IN 28:Z IN 30:A IN Output single bit int write_bit(int cardno,int number,int value); Function Corresponding port performs output operation. Parameter 80 1:X LMT+ 3:X STOP1 5:X ALARM 7:Y LMT+ 9:Y STOP1 11:Y ALARM 13:Z LMT+ 15:Z STOP1 17:Z ALARM 19:A LMT+ 21:A STOP1 23:A ALARM 25:X INPOS 27:Y INPOS 29:Z INPOS 31:A INPOS

Setup of all switch quantitative output status int write_do(int cardno,unsigned long value)

Parameter
cardno value card number Output status value the value is in 4 bytes http://www.adtechcn.com

ADT-series Servo/Stepping Motion Card D0 is the lowest position and D31 is the highest position, 0 is the low level and 1 is the high level. D0:OUT0 D1:OUT1 D31:OUT31

Return value 0:correct

1:wrong

Note: A/D meaning is acceleration/deceleration

81 http://www.adtechcn.com

Chapter IX Motion Control Function Library Guide


1. Introduction of ADT series motion control card functions library ADT8948A1 functions library is actually the interface for users to operate motion card.Users can control the motion card and perform corresponding functions by invoking interface functions. The motion card provides motion functions library in DOS and DLL in Windows. The invoking methods of functions library in DOS and Windows are introduced below. 2. Invoking DLL in Windows The DLL adt***.dll in Windows is written with VC and locates in directory Development kits\Drivers\DLL in the CD. Common programing tools in Windows are: VB, VC, C++Builder, VB.NET, VC.NET, Delphi and configuration software LabVIEW. Invoke in VC (1) (2) Create a new project; Copy the adt***.lib and adt***.h in Development kits\VC to the directory of new project; (3) In the File view of working area of the new project, right click the mouse and select Add Files to Project. In the dialogue box, select Library Files(.lib) in file type, search and select adt***.lib and then click OK. The static library is loaded. (4) Add #include adt***.h to the declaration part of source program file or header file or global header file StdAfx.h; Then, you can invoke the functions in DLL. Note: Use same method to invoke in VC.NET. Invoke in VB (1) (2) Create a new project; Copy the adt***lib.bas in Development kits\VB to the directory of new project; (3) Select Project\Add module menu and select Existing tag in the dialogue box, then, search the adt***lib.bas module file and click Open. 3.

Then, you can invoke the functions in DLL. Note: Use same method to invoke in VB.NET. Invoke in C++Builder (1) Create a new project; (2) Copy the adt***.lib and adt***.h in Development kits\C++Builder to the directory of new project; (3) Select Project\Add to Project menu, and select Library files(*.lib) in the file type dialogue box, search and select adt***.lib and then click OK. (4) Add #include adt***.h to the declaration part of the program. Then, you can invoke the DLL in the program. Invoke in LabVIEW 8 (1) Create a new VI; (2) Copy the adt***.llb and adt***.dll in Development kits\LabVIEW to the directory of new project; (3) Right click the mouse in the blank area of the program window and the Functions Palette popup. Select Select a VI.. and select adt***.llb file in the popup window, and then select desired library function in the Select the VI to Open window and drag it into the program window. Then, you can invoke the DLL in the program. Invoking library function in DOS The functions library in DOS is written with Borland C3.1 and saved in Development kits\BC or Development kits\C of the CD. The library functions are in large model or huge model. It is suitable for standard C and Borland C3.1 or later. To invoke functions library in Borland C: (1) In Borland C, select Project\Open Project to create a new project; (2) Copy the ***dosh.lib or 8948dosl.lib and adt***.h in Development kits\BC in the CD to the directory of new project; (3) Select Project\Add Item and select

***DOSH.LIB or ***dos.lib in the dialogue box, and then click Add;

ADT-series Servo/Stepping Motion Card (4) Add #include adt***.h declaration to the program file. Then, you can invoke the library functions in the program. 4. Return values of library function and their meanings To make sure that users can monitor the normal execution while using library functions, every library function in the library will return the result after execution. Users can check whether the function is invoked successfully according to the return value. Except int adt***_initial(void),set_address(int cardno,long add) and int read_bit(int cardno, int number), the

return values of other functions are 0 (normal) and 1 (error) The meanings of return values are introduced in the following table. Function name Return value -1 -2 Adt***_initial 0 >0 0 1 read_bit -1 All other functions 0 1 Meaning Port driver isnt installed PCI slot fault Motion card isnt installed Quantity of motion cards low level high level Card No. error or input bit exceeding limit Normal Error

Note: Return value 1 error is caused by the cardno or axis error in the processs of invoking library functions. The values of card number are 0, 1 and 2, counting form small to big. If there is only one card, the card number should be 0. The axis number should be 1, 2, 3 ,4,5or 6. Remark: adt***meaning is adt856 adt8946A1 adt8948A1adt8940A1adt8960A1adt8920A1 adt836 adt860adt864.

83 http://www.adtechcn.com

ADT-series Servo/Stepping Motion Card

Chapter X Key Points of Motion Control Development


Most of the problems in the programming of the card are caused by the misunderstanding of the principle of the motion card. Refer to the following section for common problems.

Related functions: set_startv set_speed Notice: The actual speed is the result that function value multiplys magnification. 2.2 Symmetric linear acceleration/deceleration This is a common used mode and you need to set start speed, driving speed, acceleration and automatic deceleration. Related functions: set_startv set_speed set_acc (Notice:The follow function consist in ADT-8920A1 ADT-8940A1ADT-4960A1these card) set_ad_mode acceleration/deceleration) set_dec1_mode set_dec2_mode (set as symmetric mode) (set as automatic deceleration) (set as linear

Initialize the card


Invoke the adt***_initial() function and set_address()first, and make sure that the ADT8948A1 card has been installed properly. Then, set the pulse output mode and working mode of limit switch. These parameters should be set according to the PC configuration. Set only once when the program is initialized. The set_range function is usually set according to maximum pulse frequency and do not change it after this. The ranges of different axes can be different. If the maximum frequency of X axis is 100K, the maximum value of set_speed is 8000, the magnification should be 100000/8000=12.5the range R should be 8000000/12.5=640000, i.e. set_range(cardno,1, 640000); (Notice:in ADT-8920A1 ADT-8940A1 ADT-8960A1 these card no this function,neednt set range) To output 100K frequency set_speed(cardno,1,8000) To output 10K frequency set_speed(cardno,1,800) Minimum output frequency is 1*12.5=12.5Hz Confirm the R value according to maximum application frequency. Do not change the R value in the application process unless the minimum frequency cant satisfy your requirement. Notice: Library function adt***_initial and set_address is the door to ADT motion control card. The invoking of other functions is effective only when the motion card is initialized with this function.

Notice: The actual acceleration is the result that acceleration function multiplys magnification and then multiplys 125,but the actual acceleration result of ADT-8920A1ADT-8940A1 and ADT-8960A1 is that acceleration function multiplys 250. 2.3 Asymmetric linear acceleration/deceleration This mode is mainly used in moving objects in vertical direction. The acceleration time is different from deceleration time and you need to set the value of deceleration. Related functions: set_startv set_speed set_acc set_dec set_ad_mode set_dec1_mode set_dec2_mode (set as linear A/D) (set as asymmetric mode) (set as automatic deceleration)

Notice:In ADT-8920A1 ADT-8940A1 and ADT-4960A1 card there is no this function. 2.4 S-curve acceleration/deceleration For certain modes with heavy load, S-curve acceleration is used to get better acceleration. In this case, you need to set the values of acceleration/deceleration. The calculation of acceleration/deceleration has a big influence on the shape of 84 http://www.adtechcn.com

Speed setting
2.1 Constant speed moving The parameter configuration is simple. You just need to set the driving speed same as start speed.

ADT-series Servo/Stepping Motion Card S-curve. Refer to the following examples. Related functions: set_startv set_speed set_acc set_acac set_ad_mode set_dec2_mode (set as S-curve A/D) (set as automatic deceleration) use two STOP signals (one for home switch and the other for deceleration switch). You can also use one signal only. In this case, when the machine receives STOP signal, it stops in deceleration, then, moves to opposite direction in constant speed and stops when receives the signal again. STOP2 has a special function, i.e. if the setting is valid, the actual position counter will be cleared by STOP2 if you use STOP2 signal to stop. This is to ensure that the value of the counter is 0 in home position. Other motion cards reset the counter with software when the driving is stopped. In servo driving process, even if the pulse output is stopped, it will move forward a little as there are still pulses acclumulated in the servo, thus the position error occurs. With the aforesaid method of the card, it is normal if the actual position isnt 0 after resetting. It isnt necessary to invoke function and reset.

Notice: In ADT-8920A1ADT-8940A1 and ADT-4960A1 card there is no this function. 2.5 manual deceleration Manual deceleration is used only when automatic deceleration cant be used normally, e.g. acceleration/deceleration driving of arc interpolation and continuous interpolation. In this case, you need to calculate the manual deceleration point. Refer to the following examples. 2.6 Interpolation speed For interpolation speed, you just need to set the parameter of first axis. The first axis is the axis1 in the interpolation function parameters of basic library function drivings. The interpolation is usually driven in constant speed. Therefore, you just need to set start speed and driving speed. You can also use acceleration/deceleration interpolation if you set valid X axis parameter. However, S-curve interpolation cant be used in arc interpolation and continuous interpolation. The interpolation deceleration is disabled by default. If acceleration/deceleration interpolation is used, there is only acceleration process in the driving. This is suitable for continuous interpolation. If single interpolation is used, you need to enable interpolation deceleration before driving. The aforesaid settings are to exert the functions of the card. Actually, many functions are necessary only when the speed and effect requirements are very high. In this case, the setting is complicated but necessary.

Servo signal
Servo in-position signal and servo alarm signal are valid only when the signals have been connected. If servo in-position signal is activated before it is connected, the driving wont be able to stop, because the in-position signal is the symbol to stop driving. Other servo signals, e.g. servo ON signal and clear alarm signal, can be driven with general output signal. Remark: adt***_initial() meaning is adt856_initial() adt8946_initial()adt8948_initial()adt8920_initial() adt8940a1_initial()adt8960_initial().

STOP0, STOP1 and STOP2 signal


Every axis has STOP0, STOP1 and STOP2 signals, therefore, there are 12 STOP signals totally. These signals are mainly used in back-to-home operation. The back-to-home mode can use either one signal or several signals. Please note that this signal is decelerated stop. For high speed resetting, you can add one deceleration switch before home switch, i.e. 85 http://www.adtechcn.com

ADT-series Servo/Stepping Motion Card

Chapter XI Examples of Motion Control Developing and Programming


Initialization part
PCI bus card include ADT-856,ADT-8948A1,ADT-8946A1,ADT-8940A1,ADT-8960 A1 and ADT-8920A1,these cards initialize use adt_initial(),PC104 bus card include ADT-836,ADT-860 and ADT-864,these cards initialize use set_address(), example as follows: example(I) #define MAXAXIS int Init_Board() { int Result; Result =adt 8948_initial() ; if (Result <= 0) return Result; for (int i = 1; i<=MAXAXIS; i++) { set_range (0, i, 8000000 / 5); // Set the range, set the //initial ratio to be 5 set_command_pos (0, i, 0); set_startv (0, i, 100); set_speed (0, i, 100); set_acc (0, i, 0); // Reset logical counter // Set the start velocity // Set the driving speed // Set the acceleration // Set the working mode of actual //position counter } inp_dec_enable(0); return 1; } set_actual_pos (0, i, 0); // Reset actual position counter //Initialization function of } //the card,example forADT-8948A1 card } 4 // max axis number

//function of the card set_command_pos(0, 1, 1000); long pos; get_command_pos(0,1,&pos); if(pos!=1000) { return -1; } for (int i = 1; i<=MAXAXIS; i++) { set_range (0, i, 8000000 / MULTIPLE); //set range set_command_pos (0, i, 0); // Reset logical counter set_actual_pos (0, i, 0);// Reset actual position counter set_startv (0,i,1000/ MULTIPLE);//Set the start velocity set_speed (0, i, 1000/ MULTIPLE); // Set the //driving speed return 1; // initialization is successful // initialization is failed

Set speed part


(1)set range: set_range() If the range is R ,range value is R:8,000,000(ratio=1)~16,000(ratio=500) If the ratio is M,the formula to calculate M is: M = 8000000/R. Notice: Range is the rate parameter that determines the speed, acceleration/deceleration and change rate of acceleration/deceleration. The effective range of driving speed, inialization speed and acceleration/deceleration is 1~8000. If required actual speed or acceleration/deceleration is higher than 8000, you need to set the range and adjust the magnification. If magnification is increased, the actual speed and acceleration/deceleration can be increased in same scale, but the resolution of speed and acceleration/deceleration becomes rough. Therefore, it is recommended that you set minimum value for magnification and maximum

set_actualcount_mode(0,i,0,0,0);

example(II) #define MULTIPLE 10 4 // ratio // max axis number #define MAXAXIS int Init_Board() { int Result; Result = set_address(0,0x1000) ; //Initialization 86

value for range within stated range of actual speed. In engineering practice, the setting of reasonable range is the premise to get ideal actual speed curve. To calculate the range: Step 1: Calculate the magnification (M) according to estimated maximum actual speed (Vmax)

http://www.adtechcn.com

ADT-series Servo/Stepping Motion Card M=Vmax/8000 (8000 is the maximum speed); Step 2: Calculate range (R) according to magnification: R = 8000000/M. example: if required maximum speed is 40KPPS, then, M = 40*1000/8000 = 5 and R = 8000000/5 = 1600000. The range of R is 8000000-16000 and corresponding rate is 1-500. Youd better set the range in the process of system initialization. Do not change the range in the moving process; otherwise, the speed may jump. In a word, actual speed = set value of speed * magnification. Notice: In ADT-8920A1ADT-8940A1 and ADT-4960A1 these card, there is no this function. (2) Constant speed moving: Related functions: set_startv set_speed set_range (3) Symmetric linear acceleration/deceleration: Related functions: set_range set_startv set_speed set_acc (Notice:The follow function not consist in ADT-8920A1 ADT-8940A1 and ADT-4960A1these card) set_ad_mode set_dec1_mode set_dec2_mode (set as linear A/D) (set as symmetric mode) (set as automatic deceleration) void main() { int cardno; cardno=adt856_initial(); if(cardno<=0) return; // Not installing ADT-850 //Card(example as ADT-850 Card) // Next operation for 1st card only on X axis // If multiple card, i.e. cardno > 1 // Change card numbers to operate other cards set_pulse_mode(0,1,1,0,0); // Set X axis as pulse + direction set_range(0,1,8000000); // Set magnification as 8000000/8000000=1 set_startv(0,1,1000); set_speed(0,1,1000); pmove(0,1,10000); (set as linear A/D) (set as symmetric mode) (set as automatic deceleration) int s; while(1) { get_status(0,1,&s); 87 http://www.adtechcn.com // Read driving status if(s==0)break; // Drive ends and springs out. // Read the board to show position // If starting speed > or = // starting drive //driving speed, it is uniform motion Related functions: set_range set_startv set_speed set_acc set_acac set_ad_mode set_dec2_mode (set as S-curve A/D) (set as automatic deceleration)

Notice: In ADT-8920A1ADT-8940A1 and ADT-4960A1 these card, there is no this function.

part function introduces


ADT series motion control card supports multiform move function, e.g. pmove, continuous move, circle interpolation, interpolation .etc. 1.1 Single quantitative constant move Target:Make stepping generator on X axis motion 10000 steps at 1000 PPS speed:

(4):Asymmetric linear acceleration/deceleration: Related functions: set_range set_startv set_speed set_acc set_dec set_ad_mode set_dec1_mode set_dec2_mode

Notice: In ADT-8920A1ADT-8940A1 and ADT-4960A1 these card, there is no this function. (5): S-curve acceleration/deceleration

ADT-series Servo/Stepping Motion Card //and other functions } return ; } 1.2 Single axis quantitative symmetry trapezoid acceleration/deceleration motion Target: make X axis motion at following speed 20000 steps start speed: 2000pss drive speed: 20000pss acceleration/deceleration speed: 40000pss } 1.3 Single axis quantitative asymmetry trapezoid acceleration/deceleration motion Note:The ADT-8920A1ADT-8940A1 and ADT-8960A1 cards there is no this function Target: make X axis motion at following speed 30000 steps start speed:2000 PPS drive speed:20000 PPS acceleration speed:40000 PPS deceleration speed:20000 PPS return ;

acceleration time is 20000-2000 /40000=0.45 SEC acceleration pulses is0.45* 20000+2000 /2=4950PLUSE deceleration is the same as above void main() { // inialization part the same as above // Set X axis as pulse + direction set_ad_mode(0,1,0); set_dec1_mode(0,1,0); set_range(0,1,1600000); //set magnification as 8000000/1600000=5 set_startv(0,1,400); set_acc(0,1,64); //acceleration/deceleration 40000/125/5=64 pmove(0,1,20000); int s; while(1) { get_status(0,1,&s); } 88 http://www.adtechcn.com // Read driving status if(s==0)break; // Drive ends and break out // Read the board and show position //and other functions. //starting drive // start speed 2000/5=400 set_speed(0,1,4000); // drive speed 20000/5=4000 // Set trapezoid A/D // Symmetry A/D void main() { // inialization part the same as above // Set X axis as pulse + direction set_ad_mode(0,1,0); set_dec1_mode(0,1,1); set_range(0,1,1600000); set_startv(0,1,400); set_speed(0,1,4000); // Set trapezoid A/D // Asymmetry A/D // set magnification as 5 // start speed 2000/5=400 // drive speed20000/5=4000 set_pulse_mode(0,1,1,0,0); set_pulse_mode(0,1,1,0,0); 20000-2000 /40000=0.45 SEC acceleration time is acceleration pulses is 0.45*(20000+2000)/2=4950 PLUSE 20000-2000 /20000=0.9 SEC deceleration time is deceleration pulses is 0.9*(20000+2000)/2=9900 PLUSE

set_dec2_mode(0,1,0); //automatically decelerates

set_dec2_mode(0,1,0);// automatically decelerates

set_acc(0,1,64); // acceleration 40000/125/5=64 set_dec(0,1,32); //deceleration 20000/125/5=32 pmove(0,1,20000); int s; while(1) { get_status(0,1,&s); // Read driving status if(s==0)break; // Drive ends and break out // Read the board and show position //and other functions. //starting drive

ADT-series Servo/Stepping Motion Card } return ; } 1.4 Single quantitative S curve line acceleration/deceleration motion Note: The ADT-8920A1ADT-8940A1 and ADT-8960A1 cards there is no this function e.g: entire S curve lines Target: make X axis motion at S-curve line for 20000 steps start speed:1000 PPS drive speed:40000 PPS acceleration time:0.4 SEC First in computer there is no thing about initial speed (take it as 0) for it is entire S curve acceleration speed. Within 1/2 of 0.4 sec make the speed increase to 1/2 of 40KPPS (20KPPS) while within the remainder of 0.2 sec. to 40KPPS. Then acceleration speed linearly increase to 0.2 sec. integral value is equal to increase speed 20KPSS. So acceleration speed of 0.2 sec. is20000*2/0.2=200000 PPS/SEC,the rate of acceleration speed is 200000/0.2=1000000 PPS/SEC/SEC } 2.1 Single axis continuous drive Setup single axis continuous drive and quantitative drive is the same as setup of A/D, but there is no need setting pulse number. It doesnt stop continuously output driving pulse until stop instruction is put out or external stop instruction is effective. It is used for operation of seeking scanning at the initial point and controlling motor circling speed. For stop instruction and external stop signal there are two ways to stop. One is immediate stop and another is speed reducing stop. Instant stop usually is used for uniform motion while speed reducing for high speed drive. There are two external stop ways. One is position limiting signal (LMT+ and LMT-) used for protection and another is stop signal, which have respectively STOP0, STOP1 and STOP2 and can be individually set up effective/non-effective. During A/D drive it is of speed reducing stop while during uniform drive of instant stop. It is easy ta make various seek ways at initial point with continuous function. The following is an example for constantly back to home Adopt STOP0 as home signals . void main() { // inialization part the same as above //Set X axis as pulse + direction set_ad_mode(0,1,1); set_dec1_mode(0,1,0); set_range(0,1,800000); // set magnification as 8000000/800000=10 set_startv(0,1,100); // start speed 1000/10=100 set_speed(0,1,4000); // drive speed 40000/10=4000 set_acc(0,1,160); //A/D speed 200000/125/10=160 set_acac(0,1,625); pmove(0,1,20000); //62500000*10/1000000=625 // starting drive 89 http://www.adtechcn.com // Set S-curve A/D //symmetric A/D // inialization part the same as above // set magnification as 1 // drive speed 200 //Positive direction moves set_pulse_mode(0,1,1,0,0); } return ; int s; while(1) { get_status(0,1,&s); // Read driving status if(s==0)break; //Drive ends and break out // Read the board and show position //and other functions.

set_dec2_mode(0,1,0);// automatically decelerates set_stop0_mode(0,1,1,0); //STOP0 valid level stop low set_range(0,1,8000000); set_startv(0,1,200); set_speed(0,1,200); continue_move(0,1,0); //and suppose home position is at positive direction.

ADT-series Servo/Stepping Motion Card int s; while(1) { get_status(0,1,&s); if(s==0)break; } set_stop0_mode(0,1,0,0); // STOP0 is invalid. When home position is found, delete stop instruction to prevent unnecessary stop during normal operation. 2.2 Multiple axes motion Mentioned above is single operation, but as a matter of fact, it can set up the other axis data at the same time without mutual influence. For instance, when X axis is driven, set up Y axis parameter and then drive Y axis without any influence For X. Thus, it can independently operate 4 axes The following is a simple example. X axis motion1000 steps at constant speed (1000pps), Y axis motion 300000 steps at linear acceleration/deceleration(start speed 10000pps, drive speed 200000PPS, acceleration/deceleration time 0.2SEC.),Z axis continuously motion at entire S-curve line acceleration/deceleration (start speed 100pps, driving speed 4000pps, acceleration time 1.2SEC.), A axis continuously motion at constant speed (300000PPS). Press S key for stop. First calculate Y axis acceleration as (200000 10000) / 0.2 = 950000 Then calculate z axis acceleration and its change rate. The method is change rate as 6667/0.6 = 11111PPS/SEC/SEC //A axis The sequence is as follows: void main() { // inialization part the same as above // Set X axis as pulse + direction set_pulse_mode(0,2,1,0,0); // Set Y axis as pulse + direction set_pulse_mode(0,3,1,0,0); // Set Z axis as pulse + direction set_pulse_mode(0,4,1,0,0); // Set Aaxis as pulse + direction // Set Y axis acceleration/deceleration set_ad_mode(0,2,0); set_dec1_mode(0,2,0); // Set trapezoid A/D //symmetric A/D 90 http://www.adtechcn.com int s1,s2,s3,s4; while(1) { get_status(0,1,&s1); // Read X driving status get_status(0,2,&s2); // Read Y driving status get_status(0,3,&s3); // Read Z driving status set_pulse_mode(0,1,1,0,0); set_range(0,4,200000); // magnification 8000000/200000=40 set_startv(0,4,7500); set_speed(0,4,7500); pmove(0,1,1000); pmove(0,2,300000); continue_move(0,3,0); continue_move(0,4,0); // starting drive // 300000/40=7500 //Z axis set_range(0,3,8000000); set_startv(0,3,100); set_speed(0,3,4000); set_acc(0,3,53); set_acac(0,3,5625); // 6667/125=53.3 //62500000/11111=5625 set_acc(0,2,304); // acceleration speed 950000/125/25=304 //Y axis set_range(0,2,320000); // set magnification as 8000000/320000=25 set_startv(0,2,400); // set magnification as 10000/25=400 set_speed(0,2,8000); // drive speed 200000/25=8000 //X axis set_range(0,1,8000000); set_startv(0,1,1000); set_speed(0,1,1000); // set magnification as 1 //start speed 1000 // drive speed 1000 // Read driving status // Drive ends and break out // Set Z axis acceleration/deceleration set_ad_mode(0,3,1); set_dec1_mode(0,3,0); // Set trapezoid A/D //symmetric A/D set_dec2_mode(0,2,0);// automatically decelerates

set_dec2_mode(0,3,0);// automatically decelerates

ADT-series Servo/Stepping Motion Card get_status(0,4,&s4); // Read A driving status if(s1==0 && s2==0 && s3==0 &&s4==0)break;// Drive ends and break out if(kbhit()) else key=-1; if(key==s) { dec_stop(0,3); dec_stop(0,4); } } return ; } Interpolation part:ADT-856ADT-836ADT-864 and ADT-8946A1 cards support fixed 2-3 axes interpolation ,ADT-8948A1ADT-860ADT-8940A1 and ADT-8960A1 support random 2-3 axes interpolation,but ADT-8920A1 only support 2 axes interpolation. 3.1 2-axis linear interpolation(constant speed) Interpolation speed is basis on X axis speed. Before it you must set up X axis parameter (Z-A take Z axis as basis). The following is simple example for constant speed linear interpolation. Circular arc interpolation is basic the same as multi-axis constant speed linear interpolation The sequence is as follows: void main() { // inialization part the same as above // Set X axis as pulse + direction set_pulse_mode(0,2,1,0,0); // Set Y axis as pulse + direction set_pulse_mode(0,3,1,0,0); // Set Z axis as pulse + direction set_pulse_mode(0,4,1,0,0); // Set A axis as pulse + direction set_range(0,1,8000000); set_startv(0,1,1000); set_speed(0,1,1000); set_range(0,3,8000000); set_startv(0,3,2000); // set magnification as 1 //X axis start speed 1000 //X axis drive speed 1000 // set magnification as 1 //Z axis start speed 2000 91 http://www.adtechcn.com set_pulse_mode(0,1,1,0,0); { // inialization part the same as above // Set X axis as pulse + direction set_pulse_mode(0,2,1,0,0); // Set Y axis as pulse + direction set_pulse_mode(0,3,1,0,0); // Set Z axis as pulse + direction set_pulse_mode(0,4,1,0,0); // Set A axis as pulse + direction set_ad_mode(0,1,0); set_dec1_mode(0,1,0); set_dec2_mode(0,1,0); set_pulse_mode(0,1,1,0,0); The sequence is as follows: void main() } 3.2 2-axis linear interpolation(acceleration/deceleration) For 2-axis linear interpolation it is necessary to set X axis (or Z axis) as linear A/D or S-curve A/D. Notice that before drive it needs setting as deceleration valid. Make the example above as A/D drive, X-Y linear A/D, Z-A curve line A/D. } return ; int s1,s2; while(1) { get_inp_status(0,1,&s1); // Read X-Y interpolation status get_inp_status(0,2,&s2); // Read Z-A interpolation status if(s1==0 && s2==0)break; // Drive ends and break out // Read the board and show position //and other functions. // Read the board functions key=getch(); set_speed(0,3,2000); //Z axis drive speed 2000 inp_move2(0,1,10000,-20000); //X,Y axis starting interpolation // X positive motion 10000 step // Y negative motion 20000 step inp_move2(0,2,20000,-30000); // Z,A axis start interpolation //Z positive motion 20000 step //A negative motion 30000 step

ADT-series Servo/Stepping Motion Card set_range(0,1,8000000); //X axis set magnification as 1 set_startv(0,1,1000); set_speed(0,1,8000); set_acc(0,1,1000); set_ad_mode(0,3,1); set_dec1_mode(0,3,0); set_dec2_mode(0,3,0); set_range(0,3,4000000); // Z axis, set magnification as 8000000/4000000=2 set_startv(0,3,1000); set_speed(0,3,8000); set_acc(0,3,1000); ser_acac(0,3,1000); inp_move2(0,1,10000,-20000); // X,Y axis starting interpolation // X positive motion 10000 step // Y negative motion 20000 step inp_move2(0,2,20000,-30000); //Z,A axis starting interpolation //Z positive motion 20000 step //A negative motion 30000step int s1,s2; while(1) { get_inp_status(0,1,&s1); // Read X-Y interpolation status get_inp_status(0,2,&s2); // Read Z-Ainterpolation status if(s1==0 && s2==0)break; //Drive ends and break out } return ; } 3.3 3-axis linear interpolation(acceleration/deceleration) The following is a simple example for acceleration/deceleration linear interpolation and the others only need to modify parameter setup. void main() { // inialization part the same as above set_pulse_mode(0,1,1,0,0); 92 http://www.adtechcn.com // Read the board and show position //and other functions. } 3.4 Continuous interpolation Note: In ADT-8920A1 ADT-8940A1 and ADT-4960A1 these card, there is no arc interpolation function. Constant continuous interpolation is a little same as single axis interpolation. When interpolation data starts, read next write permission. If it is permitted, write next interpolation data. At the same time check driving status. If it stops for error, you must withdraw continuous interpolation circulation. Acceleration/deceleration continuous interpolation is more complicated, Only manual deceleration with linear acceleration/deceleration drive is permitted, the S-curve acceleration/deceleration and auto deceleration are forbidden. You must set up deceleration point beforehand. First set it as } return ; int s1; while(1) { get_inp_status(0,1,&s1); // Read X-Y-Z interpolation status if(s1==0 )break; // Drive ends and break out // Read the board and show position //and other functions. //Z, start speed 2000 //Z, drive speed 16000 //X start speed 1000 //X drive speed 8000 // Set X axis as pulse + direction set_pulse_mode(0,2,1,0,0); // Set Y axis as pulse + direction set_pulse_mode(0,3,1,0,0); // Set Z axis as pulse + direction set_pulse_mode(0,4,1,0,0); // Set A axis as pulse + direction set_ad_mode(0,1,0); set_dec1_mode(0,1,0); set_dec2_mode(0,1,0); set_range(0,1,8000000); // X axis set magnification as 1 set_startv(0,1,1000); set_speed(0,1,8000); set_acc(0,1,1000); inp_move3(0,5000,10000,-20000); // X,Y ,Z axis starting interpolation // X positive motion 5000 step //Y positive motion 10000 step // Z negative motion 20000 step // X start speed 1000 // X drive speed 8000

ADT-series Servo/Stepping Motion Card invalid, at the last length point set it valid. From beginning to stop operation is carried out within 1 length point for deceleration speed. The terminal interpolation point output pulse must be larger than that of wasted pulse number. // part 2 inp_ccw_arc(0,1,1500,1500,0,1500); while(1) { get_stopdata(0,1,&s1); if(s1!=0)goto err; if(s2!=0)break; } Take the chart above as example. Start speed is 500pps, driving speed is 2000pps, accelerate is 6000pps/sec, acceleration time (2000-500) / 6000 = 0.25 sec, then the wasted pulse number is 2000+500*0.25/2=313, deceleration position is 2121-313=1808. The sequence is as follows: void main() { // inialization part the same as above // Set X axis as pulse + direction set_pulse_mode(0,2,1,0,0); // Set Y axis as pulse + direction set_ad_mode(0,1,0); // linear acceleration/deceleration set_ded1_mode(0,1,0); set_dec2_mode(0,1,1); set_range(0,1,8000000); // X axis set magnification as 1 set_startv(0,1,500); set_speed(0,1,2000); set_acc(0,1,48); //X start speed 500 //X drive speed 2000 //X acceleration 6000/125 //part 5 inp_move2(0,1,-4500,0); while(1) { // part 1 inp_dec_disable(0,1); inp_move2(0,1,4500,0); while(1) { get_stopdata(0,1,&s1);// Read error information if(s1!=0)goto err; // Break out for errors //part 6 inp_ccw_arc(0,1,-1500,-1500,0,-1500); 93 http://www.adtechcn.com get_inp_status2(0,1,&s2); } get_stopdata(0,1,&s1); get_inp_status2(0,1,&s2); if(s2!=0)break; // Write is permitted // Read error infor if(s1!=0)goto err;// Break out for errors } //symmetric A/D // manual deceleration } // part 4 inp_ccw_arc(0,1,-1500,1500,-1500,0); while(1) { get_stopdata(0,1,&s1); if(s1!=0)goto err; if(s2!=0)break; get_inp_status2(0,1,&s2); // Write is permitted // Read error infor // Break out for errors set_pulse_mode(0,1,1,0,0); // part 3 inp_move2(0,1,0,1500); while(1) { get_stopdata(0,1,&s1); if(s1!=0)goto err; if(s2!=0)break; get_inp_status2(0,1,&s2); // Write is permitted // Read error infor // Break out for errors get_inp_status2(0,1,&s2); // Write is permitted //Read error infor // Break out for errors } if(s2!=0)break; // Write is permitted.

set_dec_pos(0,1,1808); // manual deceleration point

ADT-series Servo/Stepping Motion Card while(1) { get_stopdata(0,1,&s1); get_inp_status2(0,1,&s2); if(s2!=0)break; } //part 7 inp_move2(0,1,0,-1500); while(1) { get_stopdata(0,1,&s1); get_inp_status2(0,1,&s2); if(s2!=0)break; } As shows above, radius outputs 10000/1.414 = //part 8 inp_dec_enable(0,1); // deceleration permitted inp_ccw_arc(0,1,1500,-1500,1500,0); while(1) { get_stopdata(0,1,&s1); get_inp_status(0,1,&s2); if(s2==0)break; } return ; err: return ; 4 2-axis circular arc interpolation(acceleration/deceleration) ADT-8940A1 and ADT-4960A1 these Note: In ADT-8920A1 card, there is no arc interpolation function. 2-axis circular interpolation commonly adopts constant speed drive, but also acceleration/deceleration for drive. However, only manual deceleration with linear acceleration/deceleration drive,the S-curve acceleration/deceleration and auto deceleration are forbidden. It is simple for constant drive for only it needs setup of X axis (or Z axis)start speed the same as driving speed. Acceleration/deceleration drive needs setting a good deceleration point. Take the following radius as example 10000 to show drive method 94 http://www.adtechcn.com // Drive ends // Read error infor if(s1!=0)goto err;// Break out for errors 7071pusle, whose basic pulse number is 7070 x 8 = 56568. Besides, set start speed a 500pps, within 0.3 sec. speed up with linear acceleration to increase 20000 pps, acceleration will be (20000-500)/0.3=65000pps/sec. The pulse number wasted is oblique area above of 500+20000 *0.3/2=3075. If deceleration is as the same as acceleration, manual deceleration point will be set as 56568-3075=53493. If make a half circle, general pulse is 56568/2=28284, speed deceleration point is 28284-3075=25209. The others are just the same The sequence is as follows: void main() { // inialization part the same as above // Set X axis as pulse + direction set_pulse_mode(0,2,1,0,0); // Set Y axis as pulse + direction set_pulse_mode(0,3,1,0,0); // Set Z axis as pulse + direction set_pulse_mode(0,4,1,0,0); // Set A axis as pulse + direction set_ad_mode(0,1,0); set_dec1_mode(0,1,0); set_dec2_mode(0,1,1); set_range(0,1,1600000); // X axis set magnification as 8000000/1600000=5 //linear A/D //symmetric A/D // manual deceleration set_pulse_mode(0,1,1,0,0); // Write is permitted // Read error infor if(s1!=0)goto err;// Break out for errors // Write is permitted // Read error infor if(s1!=0)goto err;// Break out for errors

ADT-series Servo/Stepping Motion Card set_startv(0,1,100); //X axis start speed 500/5=100 set_speed(0,1,4000); //X axis drive speed 20000/5 set_acc(0,1,104); //X axis acceleration 65000/125/5 set_dec_pos(0,1,53493); // manual deceleration point set_ad_mode(0,3,0); set_dec1_mode(0,3,0); set_dec2_mode(0,3,1); set_range(0,3,1600000); set_startv(0,3,100); set_speed(0,3,4000); set_acc(0,3,104); set_dec_pos(0,3,25209); // manual deceleration point inp_cw_arc(0,1,0,0,0,10000); // X-Y clockwise circular interpolation // Terminal point0,0; i.e. a complete circle // centre point 0,10000 inp_ccw_arc(0,2,0,20000,0,10000); //Z-A clock against interpolation // Terminal point 0,20000; i.e. a half circle // centre point 0,10000 int s1,s2; while(1) { get_inp_status(0,1,&s1); // Read X-Y interpolation status get_inp_status(0,2,&s2); // Read Z-A interpolation status if(s1==0 && s2==0)break; // Drive ends and break out // Read the board and show position //and other functions. } return ; } //the same as above Remark: (1) PPS:pulse percentage second (2) SEC:second (3 )CW: clockwise (4 )CCW: clock against (5)A/D: acceleration/deceleration

I/O operation
Read single input bit int read_bit(); Output single bit int write_bit(); // Corresponding port performs output operation. Get output status int get_out(); // Get the status of output bit // get single input bit status

95 http://www.adtechcn.com

ADT-series Servo/Stepping Motion Card

Chapter XII Troubleshooting


Motion card detection failed
If the motion card could not be detected during its usage, refer to the following methods to rule out the problem (1) Make sure to follow the installation instructions of control card to install the driver step by step. In Win2000 and WinXp, port driver must be installed to ensure that there are dynamic library file of control card in system folders (system32 or System); (2) Check to see if the motion card is connected well with the slot. Re-insert the card or change the slot to test, besides, use the eraser to clean the golden finger of control card, then, test it again; (3) Check the system device manager to see if there is any conflict between motion card and other hardware. Take off other cards, such as sound card and network card, when the PCI card is used; PC104 card is able to adjust the DIP switch and reset the base address, the base address used in the initialization of program must be the same with the actual base address; (4) Check to see if there is any problem with the operation system, this could be done by re-installing other version of operation system; (5) Follow the above steps, if the motion card still can not be detected, it is recommended to change another motion card to test, so as to check whether the card is broken;

running, and the motor shows obviously out of step. The speed of controller is too fast, please calculate the speed of motor, 10~15 rounds/sec is normal for stepping motor; Mechanical part is blocked or the resistance of machine is too big; The selected motor is not proper, please change for a high-torque motor; Please check the current and voltage of driver, set the current to be 1.2 times of rated current and supply voltage to be within rated range; Check the start velocity of controller, generally speaking, the start velocity is about 0.5~1 and time of acceleration/deceleration is above 0.1 sec; (3) There are obvious vibration and noise when the servo and stepping motor work Position loop gain and speed loop gain of servo driver are too high, lower them on the condition that the positional accuracy allows; The rigidity of machine is too bad, adjust the structure; The selected stepping motor is not proper, please change for a high-torque motor; The speed of stepping motor is in resonance region of motor, please avoid the resonance region or enlarge the subdivision. (4) Motor is not positioned well Check the screw pitch and the pulse/rev of motor to see if they are compliance with the set parameter of practical system, viz. pulse equivalent; If it is the problem of servo motor, then, increase the position loop gain and speed loop gain; Check the screw gap of the machine, test the screw opposite gap with dial indicator, adjust the screw if there is gap; If the position is not accurate due to the uncertain time and position, then, check to see if there is external interference signal; The model of motor is not proper that it shows vibration and out of step; (5) Motor has no direction Check to see if there is any problem with the DR+ and DR-connection or if the connection is firm; Check to see if the pulse mode of the control card is compliance with actual driver mode, this card supports Pulse+Direction and Pulse+Pulse; Check the stepper motor to see if the motor wire is broken or malfunction etc.

Malfunction of motor
Motor error appears when the motion card is working well. You could follow the following situations to clear the trouble. (1) The motor does not work when the motion card sends out pulse Check whether the control card is connected well with the terminal board; Check whether the pulse and direction signal line of motor driver are correctly connected to the terminal board; Check whether the external power supply of servo driver is well connected; Check whether the servo driver and stepping motor driver are in the state of alarm, if so, check the reason according to the corresponding code of the alarm; Check whether the servo SON is well connected or whether the servo motor is in the state of magnetization etc; If it is the problem of servo motor, please check the control mode of driver, our control card supports position control; Check whether the motor or driver is broken (2) There is abnormal scream when the stepping motor is 96

Switch quantity input error


If there is malfunction in detection of some input signals during the debugging and working of the system, check according to the following methods: (1) No signal input Check the line according to the wiring diagram of normal switch and proximity switch http://www.adtechcn.com

mentioned before, to see if it is connected correctly, make sure the optical coupler common of input signal is connected with positive pole of inner/external power supply (+12V or 24V) Our input switch of I\O point is NPN type, if it is not that type, please check the type of switch and the wiring; Check whether the optical coupler is broken. When the line is well, and the input state does not change when the input point is in the state of turnoff and closure, use the universal meter to test the optical coupler to see if it is punctured, then, change the optical coupler to solve this problem; Check whether the 12V or 24V switching power supply is normal; The switch is brokenl; (2) Signal disappear from time to time Check whether there is interference, test the signal state in I\O test; if there exist interference, then, add type 104 monolithic capacitor or use the shielding conductor etc. Obvious vibration or abnormal stop during the normal runningplease check whether there is interference in limit switch signal or the performance of limit switch is reliable; Check whether the external wiring connection is connected well; (3) Inaccurate back to home The speed is too fast, slow down the speed of back to home; There is interference on external signal, please check the interference source; Direction of back to home is wrong; Installation position of back to home switch is improper or the switch is loosened; (4) Invalid limit Test the limit switch in I\O test to see if it is in effect; The speed of manual/auto processing is too fast; There is interference on external signal, please check out the interference source; Manual direction error; Installation position of limit switch is improper or the switch is loosened;

ADT-series Servo/Stepping Motion Card IN4001. (2) Judgment of bad output Cut off the outer connection on output points; instead, connect a pull-up resistor at around 10K on it to the power supply. Output earth wire should be connected to GND of power supply while the red test pen of universal meter connected to 12V positive electrode and black test pen connected to signal output end. At the same time, click the button of test menu by hand to check if there is output voltage. If there is voltage, check the outer line, otherwise, check whether the common port of card is well connected or the inner optical coupler is broken etc.

Coder error
When there is error in the use of coder, follow the methods below to check out: Check the connection of coder. Make sure the connection is compliance with the differential or open-collector mode; Check the voltage of coder. The motion card usually receives +5V signal. If the coder is +12V or +24V, make sure to serial connect a 1K(+12V) resistance between A and B phase of coder and A and B phase of terminal board. Inaccurate counting of coder. Outer wiring connection of coder must use the shielded twisted pair (STP). The line should not be tied together with wire that with strong interfere such as strong electricity. They should be put separately at a distance of 30~50MM;

Switch quantity output error


Switch quantity output error can be checked out as follow: (1) Output error Check whether the line is connected properly according to the aforesaid wiring diagram of output. Make sure the output common (earth wire ) is connected with all the earth wires of power supply; Check whether the output device is broken; Check whether the optical coupler is broken. Use the universal meter to test whether the optical coupler is punctured, then, change the optical coupler to solve this problem; For safety: make sure to parallel connect the freewheeling diode when output and use the inductive load. The diode type is IN4007 or 97 http://www.adtechcn.com

You might also like