copy, photocopy or translation into other languages to this User
Manual shall be disallowed unless otherwise approved by Adtech.
Meanwhile, Adtech doesn’t provide any kind of warranty, expression
on standing or implication. Adtech and its staffs are not liable for any
direct/ indirect information disclosure, economic loss or progress
termination caused by this User Manual and the product information
inside.
All the contents in this User Manual may be changed without any
notice.
Trademark
All the product names introduced in this User Manual are only for
identification purpose, while they may belong to other various
trademarks or copyrights, such as:
※ INTEL and PENTIUM are trademarks of INTEL Company;
※ WINDOWS and MS-DOS trademarks of MICROSOFT Company;
※ ADT-8940 is the trademark of Adtech;
※ Other trademarks belong to their corresponding registered
companies.
All copyrights reserved by Adtech (Shenzhen) CNC Technology Co., Ltd
- 1 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
Version Upgrading Record
Version Revised in Descriptions
V4.0 2009/08/28 The fourth version
Remark: The three digits in the version number respectively
mean:
Hardware version number Major version number Minor version number
- 2 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
Contents
CHAPTER 1 GENERAL INFORMATION......................................... - 6 -
H INTRODUCTION .........................................................................-6-
ADT8940A1 4-axis servo/ stepping motion control card
H ABNORMALSWITCHAMOUNTINPUT .................................-99-
APPENDIX A TYPICAL WIRING FOR MOTOR DRIVER......... - 101 -
APPENDIX B INTRODUCTION ON APPLICABLE LIBRARY 错误!
未定义书签
- 5 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
Chapter 1 General information
H
INTRODUCTION
ADT8940A1 Card is a kind of high-performance 4-axis servo/ stepping control card
based on PCI bus and supporting Plug & Play, while one system can support up to
16 control cards and control up to 64 lines of servo/ stepping motors.
Pulse output method may be single pulse (pulse + direction) or double pulse
(pulse+pulse), with the maximum pulse frequency of 2MHz. Advanced technologies
are applied to ensure the frequency tolerance is less than 0.1% despite of high
output frequency.
It supports 2-4 axis of linear interpolation, with the maximum interpolation speed of
1MHz.
External signal (handwheel or general input signal) driving can be either constant or
continuous driving
With position lock, you can lock the value of logical counter or actual position
counter.
Speed can be set as contstant speed or trapezoidal acceleration/ deceleration.
Hardware caching features with a large-capacity.
I / O response time of about 500
Position management is realized through two up/ down counters, one used to
manage logical positions of internally driven pulse output, and the other used to
receive external input, with encoder or grating ruler inputted through A/ B phase as
the input signal.
Counters are up to 32 digits, specially, the range is 2,147,483,648~+2,147,483,647.
The system also provides DOS/WINDOWS95/98/NT/2000/XP/WINCE development libraries
and enable software development in VC++, VB, BC++, LabVIEW, Delphi, and C++Builder.
H
MAIN FEATURES
”
32-digit PCI bus, enabling Plug & Play
”
All the input and output are under photoelectric coupler isolation, with
strong resistance to disturbance.
”
4-axis servo/ stepping motor control, with every axis able to move
independently without mutual effects.
μs.
- 6 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
”
Frequency tolerance for pulse output is less than 0.1%.
”
The maximum pulse output frequency is 2MHz.
”
Pulse output may be single (pulse+ direction) or double(pulse+ pulse)
”
All the 4 axes have position feedback input in 32-digit counting, giving the
maximum counting range of -2,147,483,648~ +2,147,483,647.
”
Trapezoidal acceleration/ deceleration
”
2-4 axis linear interpolation.
”
Maximum interpolation speed: 1MHz.
”
I/O
response time of about 500μs.
”
Handwheel and external signal operation
h
ardware caching.
”
Real-time reading of logical, real and driving speeds during movement
”
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 Nil and work as general input
”
Up to 16 control cards supported within one system.
”
DOS/WINDOWS95/98/NT/2000/XP/WIN CE supported.
H
APPLICATIONS
Q
Multi-axis engraving system
Q
Robot system
Q
Coordinate measurement system
Q
PC-based CNC system
, position lock, large-capacity
- 7 -
www.adtechcn.com
of
ADT8940A1 4-axis servo/ stepping motion control card
Chapter 2 Hardware installation
H
PARTS
1. ADT-8940A1 User Manual (this manual)
2. ADT-8940A1 4-axis PCI bus high-performance motion control card
1. Switch off the computer power supply (for ATX supply case, switch off
the overall power)
2. Open the back cover of the computer case
3. Insert ADT-8940 into an available PCI slot
4.
Ensure the golden finger of
and then fasten card with screws
5. Connect one end of the D62GG cable to J1 interface of motion card
and the other end to terminal block ADT_9162.
6. Check whether it is necessary to install J2 interface cable. To install J2
if necessary:(1) Connect one end of
and the other end to P2 of
rear side of the enclosure;(3) Connect ADT-D37GG to P2 of the
transition board and ADT-D37GG.
ADT-8940 has been fully inserted the slot
ADT-DB37
ADT-DB37
;(2) Fix the
to J2 of motion card
ADT-DB37
on the
- 8 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
Chapter 3 Electrical connection
There are two input/ output interfaces inside an ADT8940A1 card, whereby J1 is for
62-pin socket and J2 is for 25-pin.
J1 is the signal cable for pulse output of X, Y, Z and A axis, switch amount input and
switch amount output (OUT0-OUT11); J2 is the signal cable for encoder input and
switch amount input of X, Y, Z and A axis; switch amount input and switch amount
output (OUT12-OUT15).
Signals are defined as follows:
H
J1 line
- 9 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
Line
number
10 PCOM2
Signal Introduction
1 PCOM1
2 XPU+/CW+ X pulse signal +
3 XPU-/CW- X pulse signal -
4 XDR+/CCW+ X direction signal +
5 XDR-/CCW- X direction signal -
6 YPU+/CW+ Y pulse signal +
7 YPU-/CW- Y pulse signal -
8 YDR+/CCW+ Y direction signal +
9 YDR-/CCW- Y direction signal -
Used for single-port input, not available for external
power supply
Used for single-port input, not available for external
power supply
- 10 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
11 ZPU+/CW+ Z pulse signal +
12 ZPU-/CW- Z pulse signal -
13 ZDR+/CCW+ Z direction signal +
14 ZDR-/CCW- Z direction signal -
15 APU+/CW+ A pulse signal +
16 APU-/CW- A pulse signal -
17 ADR+/CCW+ A direction signal +
18 ADR-/CCW- A direction signal -
19 INCOM1
Common for pin20-27 pin (Input points for
switch amount)
20 IN0(XLMT-) Limit- signal for X,able to work as general input signal
21 IN1(XLMT+)
22
23
24 IN4(XEXP+)
25 IN5(XEXP-)
26 IN6 (YLMT-) Limit- signal for Y, able to work as general input signal
27 IN7 (YLMT+) Limi+ signal for Y, able to work as general input signal
28 INCOM2
29 IN8 (YSTOP0)
IN2
(XSTOP0)
IN3
(XSTOP1)
Limit+ signal for X, able to work as general input
signal
STOP0- signal for X,able to work as general input
signal
STOP1- signal for X, able to work as general input
signal
Positive direction of the Manually Signal for X,able to
work as general input signal
negative direction of the Manually Signal for X, able to
work as general input signal
Common for pin29-36 (Input points for switch
amount)
STOP0- signal for Y,able to work as general input
signal
- 11 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
30 IN9 (YSTOP1)
31 IN10(YEXP+)
32 IN11(YEXP-)
33 IN12(ZLMT-) Limit_signal for Z,able to work as general input signal
34 IN13(ZLMT+)
35 IN14(ZSTOP0)
36 IN15(ZSTOP1)
37 INCOM3
38 IN16(ZEXP+)
39 IN17(ZEXP-)
STOP1- signal for Y, able to work as general input
signal
Positive direction of the Manually Signal for Y,able to
work as general input signal
negative direction of the Manually Signal for Y able to
work as general input signal
Limit+ signal for Z, able to work as general input
signal
STOP0- signal for Z,able to work as general input
signal
STOP1- signal for Z, able to work as general input
signal
Common for pin38-45 (Input points for switch
amount)
Positive direction of the Manually Signal for Z,able to
work as general input signal
negative direction of the Manually Signal for Z,able to
work as general input signal
40 IN18(ALMT-) Limit- signal for A,able to work as general input signal
41 IN19(ALMT+)
42 IN20(ASTOP0)
43 IN21(ASTOP1)
44 IN22(AEXP+)
Limit+ signal for A, able to work as general input
signal
STOP0- signal for A,able to work as general input
signal
STOP1- signal for A, able to work as general input
signal
Positive direction of the Manually Signal for A,able to
work as general input signal
- 12 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
45 IN23(AEXP-)
46 OUT0 Output points for switch amount
47 OUT1 Output points for switch amount
48 OUT2 Output points for switch amount
49 OUT3 Output points for switch amount
50 OUTCOM1
51 OUT4 Output points for switch amount
52 OUT5 Output points for switch amount
53 OUT6 Output points for switch amount
54 OUT7 Output points for switch amount
55 OUTCOM2
56 OUT8 Output points for switch amount
57 OUT9 Output points for switch amount
58 OUT10 Output points for switch amount
59 OUT11 Output points for switch amount
60 OUTCOM3
negative direction of the Manually Signal for A, able to
work as general input signal
General negative common for Output0-3 (Output
points for switch amount)
General negative common for Output4-7 (Output
points for switch amount)
General negative common for Output8-11 (Output
points for switch amount)
61 +12V
62 GND Internal power supply earthing
H
J2 line
Positive port of internal +12V power supply, not
available for external power supply
- 13 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
Line
number
1 XECA+ X-axis encoder A-phase input+
2 XECA-
3 XECB+ X-axis encoder B-phase input +
4 XECB-
5 YECA+ Y-axis encoder A-phase input+
6 YECA-
7 YECB+ Y-axis encoder B-phase input +
8 YECB-
9 ZECA+ Z-axis encoder A-phase input+
10 ZECA-
11 ZECB+ Z-axis encoder B-phase input +
12 ZECB-
13 AECA+ A-axis encoder A-phase input+
Signal
X-axis encoder A-phase input -, able to work as general input
signal 32
X-axis encoder B-phase input -, able to work as general input
signal 33
Y-axis encoder A-phase input -, able to work as general input
signal 34
Y-axis encoder B-phase input -, able to work as general input
signal 35
Z-axis encoder A-phase input -, able to work as general input
signal 36
Z-axis encoder B-phase input -, able to work as general input
signal 37
Introduction
- 14 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
14 AECA-
15 AECB+ A-axis encoder B-phase input +
16 AECB-
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Remark: In case an encoder is used for general input signals, XECA+, XECB+,
YECA+, YECB+, ZECA+, ZECB+, AECA+, and AECB+ will be respectively used as
INCOM4
IN24(XIN)
IN25(YIN)
IN26(ZIN)
IN27(AIN)
IN28
IN29
IN30
IN31
OUT12
OUT13
OUT14
OUT15
OUTCOM4
+12V
+12V
+5V
+5V
GND
GND
GND
A-axis encoder A-phase input -, able to work as general input
signal 38
A-axis encoder B-phase input -, able to work as general input
signal 39
Common for pin18-25 (Input points for switch amount)
X position lock signal; can be used as universal input signal
Y position lock signal; can be used as universal input signal
Z position lock signal; can be used as universal input signal
A position lock signal; can be used as universal input signal
General input signal
General input signal
General input signal
The signal to stop using the hardware, able to work as general
input signal
Output points for switch amount
Output points for switch amount
Output points for switch amount
Output points for switch amount
General negative common for Output12-15 (Output points for
switch amount)
Positive port of internal +12V power supply, not available for
external power supply
Positive port of internal +12V power supply, not available for
external power supply
Positive port of internal +5V power supply, not available for
external power supply
Positive port of internal +5V power supply, not available for
external power supply
Internal power supply earthing
Internal power supply earthing
Internal power supply earthing
- 15 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
public ports of corresponding input signals.
Voltage at the public ports can only be +5V
power supply, users must serially connect a 1K resistance. Please refer to the
following digital input connection part for wiring method.
; in case of using an external+12V
H
CONNECTION FOR PULSE/ DIRECTION INPUT SIGNAL
Pulse output is in differential output.
May be conveniently connected with a stepping/ servo driver
The following figure shows open-collector connection between pulse and direction.
Stepping motor driver
The following figure shows differential-output connection between pulse and direction signals;
this method is recommended as it is differential connection with strong resistance to
disturbance.
Stepping motor driver
Servo motor driver
Remark: Refer to Appendix A for wiring maps of stepping motor drivers, normal servo
- 16 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
r
p
motor driver and terminal panel.
H
CONNECTION FOR ENCODER INPUT SIGNAL
Encoder
Wiring map for an open-collect output-type encoder. For
+5V power supply, R is not required; for +12V powe
supply, R= 1KΩ; and for +24V power supply, R= 2KΩ
Encoder
Wiring map for a differential-driver output-type encoder
H
CONNECTION FOR DIGITAL INPUT
Internal circuit
Remark:
(1) Public terminal for IN0-IN7: INCOM1
K1 is for approach switch or
photoelectric switch, and K2 is for
normal mechanical switch
VEXT is anode of
external
EXT_GND is cathode
of external power
ower supply
supply
- 17 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
r
Public terminal for IN8-IN15: INCOM2
Public terminal for IN16-IN25: INCOM3
Public terminal for IN24-IN31: INCOM4
(2) To make input signals effective, users shall make sure: firstly, the photoelectric
coupling public ports for corresponding input signals (INCOM1, INCOM2, INCOM3
or INCOM4) have been connected with anodes of 12V/ 24V power supply; secondly,
one port of the normal switch or earthing cable of the approach switch has been
connected with the cathode (earthing cable); and lastly, the other port of the normal
switch or the control of the approach switch has been connected with the input port
corresponding by the terminal panel.
(3) The following is the actual wiring map of power supply from normal switch and
approach switch to photoelectric coupling public ports, through external power
supply.
ADT-9162 terminal block wiring diagram:
H
o
- 18 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
H
ADT-9112 terminal block wiring diagram:
Remark:
- 19 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
When the jumper cap T1, T2 used in parallel, the four INCOM ports were
connected to the
connecte the pin181522 which are on P2 Wiring terminals to the +24 power.
unified 24V power when the jumper cap connected. Do not need to
HEncoder signals used as the general-purpose input signals wiring diagram
Remark: 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
supply, users must serially connect a 1K resistance. Please refer to the following digital
input connection part for wiring method.
; in case of using an external+12V power
H
CONNECTION FOR DIGITALOUTPUT
- 20 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
12-24V
power
supply
For inductive loading such as relay, add continuous dioxide
at the two ends of the loading, as shown in J4
Remark:
(1) Public terminal for OUT0-OUT5: OUTCOM1
(2) To make output signals effective, users must make sure of connection between the
output public port OUTCOM1 and cathode of external power supply (earthling cable)
if using external power supply, or connection between internal power supply earthling
(GND) and the ground if using internal power supply. Relay coils must have one side
connected with the power supply anode and the other side connected with the
corresponding output port of the terminal panel.
(3) The following picture is the actual wiring map for power supply by external power
supply.
ADT-9162 terminal block wiring diagram:
H
- 21 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
ADT-9112 terminal block wiring diagram:
H
Remark:
General negative common for pin1, 5,9,13 on P4 has been grounded.
users can also connect them to ground.
supply and output contact.
The load can be resistive, inductive or capacitive.The digital
Please connect the loadbetween the power
- 22 -
www.adtechcn.com
Additionally,
ADT8940A1 4-axis servo/ stepping motion control card
output part of ADT-9112 terminal used power amplifier circuit design; output currents up
to 500MA.
need to
It can be direct-drive cylinders, solenoid valves and other devices, do not
connecte it to the external +24 power.
Chapter 4 Software installation
ADT8940A1
Win2000/ WinXP, but in case of DOS, no drive is required to be installed.
The following part takes Win2000 and WinXP for example, and users may refer to other
operating systems.
Drive for the control card is located in the Drive/ ControlCardDrive folder within the CD,
and the drive file is named as ADT8940A1.INF.
H
DRIVE INSTALLATION IN WIN2000
card must be used with drive installed under Win95/ Win98/ NT/
The following part takes Win2000 Professional Version as example to indicate
installation of the drive; other versions of Win2000 are similar.
After attaching the ADT8940A1 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:
- 23 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
Just click “Next” to display the following picture:
Click again “Next” to display the following picture:
- 24 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
Then select “Specify a location” and Click again “Next” and
select DevelopmentPackage/ Drive/ CardDrive and find the ADT8940A1.INF file, then
click “OK” to display the following interface:
Click “Browse” button to
Click
“Next” to display the following picture:
- 25 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
Finally click “Finish” to complete installation.
H
DRIVE INSTALLATION UNDER WINXP
Installation under
WinXP is similar to that under Win2000, specifically:
- 26 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
- 27 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
Click “Browse” button to select Drive/ CardDrive and find the ADT8940A1.INF file, then
click “Next” to display the following interface:
Then click “Finish” to complete installation.
Chapter 5 Functions
- 28 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
H
Pulse output method
Pulse output may be realized through either independent 2-pulse or 1-pulse. In case
of independent 2-pulse, the positive direction drive has PU/CW outputting drive
pulses, and the negative direction drive has DR/CCW outputting drive pulses. In
case of 1-pulse, PU/CW outputs drive pulse and DR/CCW outputs direction signals.
Pulse output type
Independent 2-pulse
1-pulse 1-direction
Pulse/ direction is set on the positive logical level
Drive direction
+Direction
-Direction
+Direction
-Direction
Output signal waveform
PU/CW signal
Low level
DR/CCW signal
Low level
Low level
Hi level
H
Hardware Limit signal
Hardware limit signals LMT+ and LMT- are respectively to limit the input signals
outputted by drive pulse along positive and negative directions, able to be set as
“effective, “ineffective” with high/ low levels.—Actually “effective” or “ineffectivey” can
be set for positive limit and negative limit individually; in case “ineffective” is selected,
they may work as ordinary input points.
Hardware limit signals STOP0 and STOP1 are input signals that may realize
hardware termination for all axis drive and may be set as “effective”, “ineffective” as
well as the termination method for high/ low levels. In case “ineffective” is selected,
they may work as generl input points. Besides, they, when working as drive for
interpolation, are effective for the minimum interpolation axis only.
H
Linear interpolation
This card may work for 2-4 axes linear interpolation and support any 2 axes or 3 axes
linear interpolation, under the modified method of point-by-point comparison, which can
ensure uniform pulse along the long axis, giving the precision within one pulse.
Firstly, take the axis outputting the maximum pulses among the axes joining interpolation
as the long axis, and proportionally distribute for the rest axes. Speed control applies
only to speed of the long axis, for example: (1-X axis, 2-Y axis, 3-Z axis, and
- 29 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
4-W axis)
Take four axes for linear interpolation, while Axis 1 outputs 1000 pulses, Axis 2 outputs
500, Axis 3 outputs 250 and Axis outputs 2000.
X axis
From the above figure, W axis (Axis 4) shall be the long axis, and the rest axes
proportionally share the pulses.
Setting of interpolation speed takes the minimum speed of an axis among the joined
axes as the benchmark, for example, if Axis 2 and Axis 3 join linear interpolation, the
interpolation speed will be determined by speed of Axis 2. Moreover, speed of
interpolation is only half of the single axis. Example in more details:
Axis 2 and Axis 3 work for two-axis linear interpolation, with Axis 2 outputs 10000
pulses along positive direction and Axis 3 outputs 5000 pulses along negative direction,
which means Axis 2 is the long axis.
set_startv(0,2,1000);
set_speed(0,2,1000);
inp_move2(0,2,3,10000,-5000);
After execution of the above program, Axis 2 will send 10000 pulses in the frequency of
1000/2=500Hz, while frequency of Axis 3 shall be 500*5000/10000=250Hz.
If speed of Axis 2 realizes trapezoidal acceleration/ deceleration, interpolation will also
follow such trapezoidal acceleration/ deceleration.
H
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
- 30 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
pulses.
Configure the following parameters to execute the quantitative driving of
acceleration/deceleration:
a) Acceleration/deceleration A/D
b) Start velocity SV
c) Driving velocity V
d) Output pulse P
Acceleration/deceleration quantitative driving automatically decelerates from the
deceleration point as shown in the picture above.
H
Velocity curve
1) Constant velocity 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
” Deceleration D Deceleration if they are set separately (if necessary)
” Start velocity SV
” Driving velocity V
Acceleration and deceleration
- 31 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
2) Linear 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
” Deceleration D Deceleration if they are set separately (if necessary)
” Start velocity SV
” Driving velocity V
Acceleration and deceleration
- 32 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
H
Position lock
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.
H
External signal driving
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 signal cable of the coder is connected to the external interface of
external singals.
Chapter 6 List of ADT8940A1 basic library functions
List of V110 library functions
Function type Function name Function description Page
ADT8940A1_initial Initialize card 37
Basic
parameters
Check for
get_lib_version
set_pulse_mode
set_limit_mode
set_stop0_mode
set_stop1_mode
set_delay_time
set_suddenstop_mode
get_status Get status of single-axis drive40
Get version 37
Set pulse mode 37
Set limit mode 38
Set stop mode 38
Set stop mode 39
Delay status 39
Hardware stop 39
- 33 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
get_inp_status Get status of interpolation 40
Movement
parameter
setting
Check for
motion
parameters
get_delay_status
get_hardware_ver Hardware version 40
set_acc Set acceleration 41
set_startv Set starting speed 41
set_speed Set drive speed 41
set_command_pos Set logical position counter 41
set_actual_pos Set real position counter 42
set_symmetry_speed Set symmetry speed 42
get_command_pos Get logical position 42
get_actual_pos Get real position 43
get_speed Get drive speed 43
get_out Get output status 43
Delay status 40
Drive
category
pmove Single-axis quantitative drive43
dec_stop Deceleration stop 44
sudden_stop Sudden stop 44
Inp_move2
inp_move3 3-axis linear interpolation 45
- 34 -
2-axis linear interpolation 45
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
inp_move4 4-axis linear interpolation 45
Switch
amount
category
Composite
driving
manual
driving
read_bit Read single input point 46
write_bit Output single output point 46
symmetry_relative_move
symmetry_absolute_move
symmetry_relative_line2
symmetry_absolute_line2
symmetry_relative_line3
symmetry_absolute_line3
symmetry_relative_line4
symmetry_absolute_line4
manual_pmove
manual_continue
manual_disable
Symmetrical relative
movement of single-axis
Symmetrical absolute
movement of single-axis
Relative movement of two-axis
symmetrical linear interpolation
Two axes symmetric linear
interpolation absolute moving
Three axes symmetric linear
interpolation relative moving
Three axes symmetric linear
interpolation absolute moving
Four axes symmetric linear
interpolation relative moving
Four axes symmetric linear
interpolation absolute moving
Quantitative drive function of
external signal
Continuous drive function of
external signal
Shut down the enabling of
external signal drive
46
47
47
47
48
48
49
49
50
50
50
position lock
set_lock_position set lock mode
- 35 -
www.adtechcn.com
50
ADT8940A1 4-axis servo/ stepping motion control card
hardware
cache
get_lock_status get lock status
get_lock_position get lock position
clr_lock_status clean lock position
fifo_inp_move1 single axis FIFO
fifo_inp_move2 two axes FIFO
fifo_inp_move3 three axes FIFO
fifo_inp_move4 four axes FIFO
reset_fifo reset FIFO
read_fifo_count read FIFO
read_fifo_empty read FIFO
53
53
53
51
51
51
51
52
52
53
read_fifo_full read FIFO
54
Chapter 7 Details of ADT8940A1 basic library functions
H
CATEGORY OF BASIC PARAMETER SETTING
1.1 Initialize card
int ADT8940A1_initial(void);
(1) Return >0 means amount of installed ADT8940A1 cards; in case the Return is 3,
the available card numbers shall be 0, 1, and 2;
- 36 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
g
p
g
(2) Return =0 means no installation of ADT8940A1 card;
(3) Return <0 means no installation of service if the value is -1 or PCI bus failure is
the value is -2.
Remark: Initialization functions are preliminary conditions to call other
functions, thus must be called firstly so as to verify available cards and
initialize some parameters.
1.2 Get current library version
int get_lib_version();
Here return are combination of hardware and library version number.
1.3 Set output pulse mode
int set_pulse_mode(int cardno, int axis, int value,int logic,int dir_logic);
cardno
axis
value 0:Pulse + Pulse method 1:
Card number
Axis number (1-4)
Pulse + direction method
Pulse output method
Independent 2-pulse
1-pulse method
logic 0:Positivelogic pulse1:Negativelogic pulse
Positive logic
ulse
dir-logic 0: Positive logic direction input signal 1: Negative logic direction
input signal
Positive direction logic pulse
Pulse/ direction are both of positive logic settin
Drive direction
Positive drive output
Negative drive output
Positive drive output
Negative drive output
Negative
lo
Output signal waveform
Low level
ic pulse
Negative direction logic pulse
DR/CCW signal
Low level
Low level
Hi level
- 37 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
Return 0: Correct 1: Wrong
Default mode: Pulse + direction, with positive logic pulse and positive
logic direction input signal
1.4 Set mode of nLMT signal input along positive/ negative direction
int set_limit_mode(int cardno, int axis, int v1,int v2,int logic);
cardno Card number
axis Axis number (1-4)
v1 0: positive limit is effective 1: positive limit is ineffective
v2 0: negative limitis effective1: negative limit is ineffective
logic 0: low level is effective 1: high level is effective
Return 0: Correct 1: Wrong
Default mode: positive and negative limits with low level
are effective
1.5 Set mode of stop0 input signal
int set_stop0_mode(int cardno, int axis, int v,int logic);
cardno Card number
axis Axis number (1-4)
v 0: stop0 is ineffective 1: stop0 is effective
logic 0: low level is effective 1: high level is is effective
Return 0: Correct 1: Wrong
Default mode:
stop0 is ineffective
1.6 Set mode of stop1 input signal
int set_stop1_mode(int cardno, int axis, int v,int logic);
Cardno Card number
Axis Axis number (1-4)
v 0: stop1 is ineffective 1: stop1 is effective
logic 0: low level is effective 1: high level is effective
Return 0: Correct 1: Wrong
Default mode:
stop1 is ineffective
- 38 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
1.7 Set mode of stop1 input signal
int set_delay_time(int cardno, long time)
cardno Card number
time delay time (Uint:1/8us)
Return 0: Correct 1: Wrong
Remark
maximum
1.8 Set stop using the hardware
int set_suddenstop_mode(int cardno, int v, int logical)
cardno Card number
v 0: ineffective 1: effective
logical 0
Return 0: Correct 1: Wrong
Remark:
(IN31)
: The time unit is 1/8us, with the maximum integer value as its
:
low level effective 1:high level effective
Hardware stop signals are assigned to use the 34 pin at the P3 terminal panel
H
CATEGORY OF DRIVE STATUS CHECK
2.1 Get status of single-axis drive
int get_status(int cardno,int axis,int *value)
cardno Card number
axis Axis number (1-4)
value Indicator of drive status
0:Drive completed
Non-0: Drive in process
Return 0: Correct 1: Wrong
2.2 Get status of
int get_inp_status(int cardno,int *value)
cardno Card number
value Indicator of i Interpolation:
Interpolation
- 39 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
0: Interpolation completed 1: Interpolation in process
Return 0: Correct 1: Wrong
2.3 Get status of
int get_delay_status(int cardno)
cardno Card number
Return 0: delay completed 1: delay in process
2.4 Get hardware version
int get_hardware_ver(int cardno)
cardno Card number
Return 256: version 1.0 257: version 1.1
H
CATEGORY OF MOVEMENT PARAMETER SETTING
O
Remark: The following parameters are not determined after
initialization thus must be set before use.
3.1 Set acceleration
int set_acc(int cardno,int axis,long value);
cardno Card number
axis Axis number
value Acceleration(0-32000)
Return 0: Correct 1: Wrong
3.2 Set starting speed
int set_startv(int cardno,int axis,long value);
cardno
axis
value
Return 0: Correct 1: Wrong
3.3 Set drive speed
int set_speed(int cardno,int axis,long value);
Delay
Card number
Axis number
Speed(0-2M)
- 40 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
cardno Card number
axis
value
Return 0: Correct 1: Wrong
3.4 Set logical position counter
This is to set values for the logical position counter
int set_command_pos(int cardno,int axis,long value);
cardno Card number
axis
value
Return 0: Correct 1: Wrong
A logialc position counter can read and write at any time.
3.5 Set real position counter
This is to set values for the real position counter
int set_actual_pos(int cardno,int axis,long value);
cardno Card number
axis
value
Return 0: Correct 1: Wrong
An real position counter can read and write at any time.
3.6 Set symmetry speed
This is to set values for the
int set_symmetry_speed(int cardno, int axis,long lspd,long hspd,double tacc);
cardno Card number
axis Axis number
lspd start speed
hspd running speed
tacc acceleration time
Return 0: Correct 1: Wrong
Axis number
Speed(0-2M)
Axis number
Range (-2147483648~+2147483647)
Axis number
Range (-2147483648~+2147483647)
symmetry speed
- 41 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
Remark: This function is a combination of multiple functions,
such as set_acc,set_startv,set_speed etc.
H
CATEGORY OF MOTION PARAMETER CHECK
The following functions can be called at any time
4.1 Get logic position of each axis
int get_command_pos(int cardno,int axis,long *pos)
cardno Card number
axis
pos
Return 0: Correct 1: Wrong
This function can get the logic position of the corresponding axis at any time, and in
case of no out-step by motor, pos values just indicate the current position of the
axis.
4.2 Get real position of each axis (i.e., encoder feedback input)
int get_actual_pos(int cardno,int axis,long *pos)
cardno Card number
axis
pos
Return 0: Correct 1: Wrong
This function can get the real position of the corresponding axis at any time, and
even though in case of out-step by motor; pos values still indicate the real position
of the axis.
4.3 Get motion speed
int get_speed(int cardno,int axis,long *speed)
cardno Card number
axis
speed
Axis number
Indicator of logic position value
Axis number
Indicator of actual position value
Axis number
Indicator of current drive speed
- 42 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
Return 0: Correct 1: Wrong
Its data unit is same as that for motion speed setting value V.
This function can get the axis drive speed at any time.
4.4 Get status of output
int _stdcall get_out(int cardno, int number)
cardno Card number
axis Axis number
Return Current output point status -1: Wrong
H
CATEGORY OF DRIVE
5.1 Single-axis quantitative drive
int pmove(int cardno,int axis,long pulse)
cardno Card number
axis
pulse
>0: move along positive direction
<0: move along negative direction
Range (-268435455~+268435455)
Return 0: Correct 1: Wrong
Remark: Users must correctly set the parameters required by speed curve
before making drive commands.
5.2 Deceleration stop
int dec_stop(int cardno,int axis)
cradno Card number
axis
Return 0: Correct 1: Wrong
During drive pulse output, this command will make deceleration stop. Users
may also use this command to stop when the drive speed is lower than the
Axis number
Outputted pulses
Axis number
- 43 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
starting speed.
Remark: During linear interpolation, if requiring deceleration stop, users
shall make command only for the earliest interpolation axis, otherwise
may fail to achieve expected results.
5.3 Sudden stop
int sudden_stop(int cardno,int axis)
cardno Card number
axis
Return 0: Correct 1: Wrong
This command will suddenly stop the pulse output in process, even though it is
in acceleration/ deceleration drive.
Remark: During linear interpolation, if requiring sudden stop, users shall
make command only for the earliest interpolation axis, otherwise may fail
to achieve expected results.
5.4 2-axis i
int inp_move2(int cardno,int axis1,int axis2,long pulse1,long pulse2)
cardno Card number
axis1 ,axis2
pulse1,pulse2
Range (-8388608~+8388607)
Return 0: Correct 1: Wrong
5.5 3-axis i
int inp_move3(int cardno,int axis1,int axis2,int axis3,long pulse1,long
pulse2,long pulse3)
cardno Card number
axis1 ,axis2,axis3
pulse1,pulse2,pulse3
axis2/ axis3)
Axis number
nterpolation
nterpolation
Axis number joining
Relative distance of movemen
Axis number joining
Relative distance of moiotn along specified axis (axis1/
i
nterpolation
i
nterpolation
- 44 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
Range (-8388608~+8388607)
Return 0: Correct 1: Wrong
5.6 4-axis i
cardno Card number
pulse1,pulse2,pulse3,pulse4
H
CATEGORY OF SWITCH AMOUNT INPUT/ OUTPUT
nterpolation
int inp_move4(int cardno,long pulse1,long pulse2,long pulse3,long pulse4)
Relative distance of movement along X-Y-Z-W axis
Range (-8388608~+8388607)
Return 0: Correct 1: Wrong
6.1 Read single input point
int read_bit(int cardno,int number)
cardno Card number
number
Return 0: low level 1: high level -1: error
6.2 Output single output point
int write_bit(int cardno,int number,int value)
cardno Card number
number
value
Return
Input point (0-39)
Output point (0-15)
0: low 1: high
0: correct
1: wrong
A number corresponding to the output number
H
CATEGORY OF COMPOSITE DRIVING
To provide convenience for the customers, we encapsulated composite driving
- 45 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
functions in the basic library functions. These functions mainly integrate speed
mode setting, speed parameter setting and motion functions, while absolute
motion and relative motion are also considered.
7.1 Single axis symmetric relative moving
int symmetry_relative_move(int cardno, int axis1, long pulse1, long lspd ,long
hspd, double tacc)
cardno-card number
axis1---axis number1
pulse1-- pulse of axis 1
lspd --- Low speed
hspd --- High speed
tacc--- Time of acceleration (Unit: sec)
Return 0: Correct 1: Wrong
7.2 Single axis symmetric absolute moving
int symmetry_absolute_ move (int cardno, int axis1, int axis2, long pulse1, long
pulse2, long lspd ,long hspd, double tacc)
cardno-card number
axis1---axis number1
pulse1-- pulse of axis 1
lspd --- Low speed
hspd --- High speed
tacc--- Time of acceleration (Unit: sec)
Return 0: Correct 1: Wrong
7.3 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)
cardno-card number
axis1---axis number1
axis2---axis number2
- 46 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
pulse1-- pulse of axis 1
pulse2-- pulse of axis 2
lspd --- Low speed
hspd --- High speed
tacc--- Time of acceleration (Unit: sec)
Return 0: Correct 1: Wrong
7.4 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)
cardno-card number
axis1---axis number1
axis2---axis number2
pulse1-- pulse of axis 1
pulse2-- pulse of axis 2
lspd --- Low speed
hspd --- High speed
tacc--- Time of acceleration (Unit: sec)
Return 0: Correct 1: Wrong
7.5 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)
cardno-card number
axis1---axis number1
axis2---axis number2
axis3---axis number3
pulse1-- pulse of axis 1
pulse2-- pulse of axis 2
pulse3-- pulse of axis 3
lspd --- Low speed
- 47 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
hspd --- High speed
tacc--- Time of acceleration (Unit: sec)
Return 0: Correct 1: Wrong
7.6 Three axes symmetric linear interpolation absolute moving
int symmetry_absolute_line3(int cardno, int axis1, int axis2, int axis3, long pulse1,
long pulse2, long pulse3, long lspd ,long hspd, double tacc)
cardno-card number
axis1---axis number1
axis2---axis number2
axis3---axis number3
pulse1-- pulse of axis 1
pulse2-- pulse of axis 2
pulse3-- pulse of axis 3
lspd --- Low speed
hspd --- High speed
tacc--- Time of acceleration (Unit: sec)
Return 0: Correct 1: Wrong
7.7 Four axes symmetric linear interpolation relative moving
int symmetry_ relative _line4(int cardno, long pulse1, long pulse2, long pulse3,
long pulse4,long lspd ,long hspd, double tacc)
cardno-card number
pulse1-- pulse of axis 1
pulse2-- pulse of axis 2
pulse3-- pulse of axis 3
pulse4-- pulse of axis 4
lspd --- Low speed
hspd --- High speed
tacc--- Time of acceleration (Unit: sec)
Return 0: Correct 1: Wrong
- 48 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
7.8 Four axes symmetric linear interpolation absolute moving
int symmetry_absolute _line4(int cardno, long pulse1, long pulse2, long pulse3,
long pulse4,long lspd ,long hspd, double tacc);
cardno-card number
pulse1-- pulse of axis 1
pulse2-- pulse of axis 2
pulse3-- pulse of axis 3
pulse4-- pulse of axis 4
lspd --- Low speed
hspd --- High speed
tacc--- Time of acceleration (Unit: sec)
Return 0: Correct 1: Wrong
H
CATEGORY OF EXTERNAL SIGNAL DRIVING
8.1 Quantitative drive function of external signal
int manual_pmove(int cardno, int axis, long pos)
cardno-- card number
axis
pulse
Note: (1) Send out quantitative pulse, but the drive does not start immediately until
(2)Ordinary button and handwheel are acceptable.
8.2 Continuous drive function of external signal
cardno-- card number
axis
Note: (1) Send out quantitative pulse, but the drive does not start immediately until
--
axis number
--
pulse
Return 0
the external signal level changes.
int manual_continue(int cardno, int axis)
--
axis number
Return 0:Correct 1:Wrong
the external signal level changes.
:
Correct 1:Wrong
- 49 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
(2)Ordinary button and handwheel are acceptable.
8.3 Shut down the enabling of external signal drive
int manual_disable(int cardno, int axis)
cardno-- card number
axis
H
9.1 lock the logical position and real position for all axes
axis —reference axis
mode —set lock mode 0:inefficacy 1:efficiency
regi —register mode 0:logical position 1:real position
logical—level signal 0: from high to low 1:from low to high
int set_lock_position(int cardno, int axis,int mode,int regi,int logical)
cardno —card number
Return 0:Correct 1:Wrong
int get_lock_status(int cardno, int axis, int *v)
cardno card number
axis axis number(1-4)
status Lock status (0: unlocked, 1: locked)
Return 0:Correct 1:Wrong
int get_lock_position(int cardno,int axis,long *pos)
cardno card number
axis axis number
pos lock position
Return 0:Correct 1:Wrong
- 50 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
9.4 Clr_lock_status(int cardno, int axis)
int clr_lock_position(int cardno,int axis,long *pos)
cardno card number
axis axis number
Return 0:Correct 1:Wrong
H
CATEGORY OF HARDWARE CACHE
10.1 Single axis FIFO
Int fifo_inp_move1(int cardno,int axis1,long pulse1,long speed)
cardno card number
axis1 axis number(1-4)
pulse1 pulses in FIFO cache
speed FIFO speed
Return 0:Correct 1:Wrong
10.2 Two axes FIFO
Int fifo_inp_move2(int cardno,int axis1, ,int axis2,long pulse1, long pulse2,long
speed)
cardno card number
axis1 axis number(1-4)
axis2 axis number(1-4)
pulse1 pulses in FIFO buffer
pulse2 pulses in FIFO buffer
speed FIFO speed
Return 0:Correct 1:Wrong
10.3 Three axes FIFO
int fifo_inp_move3(int cardno,int axis1,int axis2,int axis3,long pulse1,long
pulse2,long pulse3,long speed)
cardno card number
- 51 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
axis1 axis number(1-4)
axis2 axis number(1-4)
axis3 axis number(1-4)
pulse1 pulses in FIFO buffer
pulse2 pulses in FIFO buffer
pulse3 pulses in FIFO buffer
speed FIFO speed
Return 0:Correct 1:Wrong
10.4 Four axes FIFO
int fifo_inp_move4(int cardno,long pulse1,long pulse2,long pulse3,long pulse4,long
speed)
cardno card number
axis1 axis number(1-4)
axis2 axis number(1-4)
axis3 axis number(1-4)
axis4 axis number(1-4)
pulse1 pulses in FIFO buffer
pulse2 pulses in FIFO buffer
pulse3 pulses in FIFO buffer
pulse4 pulses in FIFO buffer
speed FIFO speed
Return 0:Correct 1:Wrong
10.5 Reset FIFO Cache
int reset_fifo(int cardno)
cardno card number
:
Return 0
10.6 Read FIFO cache To determine FIFO
int read_fifo_count(int cardno,int *value)
Correct 1:Wrong
- 52 -
command havn't been implemented
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
cardno card number
value space(bytes) of commands that havn't been implemented
Return 0
10.7 Read FIFO cache To determine whether it is empty
int read_fifo_empty(int cardno)
cardno card number
Return 0
10.8 Read FIFO cache To determine whether it is full
int read_fifo_full(int cardno)
cardno card number
Return 0:non-full 1:full
:
Correct 1:Wrong
:
non -empty 1:empty
Chapter 8 Guide to motion control function library
1. Introduction on ADT8940A1 function library
ADT8940A1 function library is actually the interface for users to operate the
movement control card; users can control the movement control card to execute
corresponding functions simply by calling interface functions.
The movement control card provides movement function library under DOS and
dynamic link library under Windows; the following part will introduce the library
calling method under DOS and Windows.
2. Calling dynamic link library under Windows
The dynamic link library ADT8940A1.dll under Windows is programmed in VC,
applicable for general programming tools under Windows, including VB, VC,
C++Builder, VB.NET, VC.NET, Delphi and group software LabVIEW.
2.1 Calling under VC
(1) Create a new project;
(2) Copy the ADT8940A1.lib and ADT8940A1.h files from
- 53 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
DevelopmentPackage/VC in the CD to the routing of the newly created item;
(3) Under File View of the Work Area of the new item, right click mouse to select
“Add Files to Project” and then in the pop-up file dialogue select the file type
to be “Library Files(.lib)”, then search out “ADT8940A1.lib” and select it, finally
click “OK” to finish loading of the static library;
(4) Add #include “ADT8940A1.h“ in the declaim part of the source file, header or
overall header “StdAfx.h”.
After the above four steps, users can call functions in the dynamic link library.
Remark: The calling method under VC.NET is similar.
2.2 Calling under VB
(1) Create a new project;
(2) Copy the ADT8940A1.h file from DevelopmentPackage/VB in the CD to the
routing of the newly created item;
(3) Select the menu command Engineering/Add module and subsequently Save
Current in the dialogue to search out the ADT8940A1.bas module file, finally
click the Open button.
After the above three steps, users can call functions in the dynamic link library.
Remark: The calling method under VB.NET is similar.
2.3 Calling under C++Builder
(1) Create a new project;
(2) Copy the ADT8940A1.lib and ADT8940A1.h files from DevelopmentPackage/
C++Builder in the CD to the routing of the newly created item;
(3) Select the menu command “Project\Add to Project”, and in the pop-up
dialogue select the file type to be “Library files(*.lib)”, then search out the
“ADT8940A1.lib” file and click Open button;
(4) Add #include “ADT8940A1.h“ in the declaim part of the program file.
After the above four steps, users can call functions in the dynamic link library.
2.4 Calling under LabView 8
(1) Create a new VI;
(2) Copy the ADT8940A1.lib and ADT8940A1.dll files from DevelopmentPackage/
LabVIEW in the CD to the routing of the newly created item;
- 54 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
(3) Right click mouse in the blank area of the program interface to display the
Function Palette, select “Select a VI..” and subsequently in the pop-up window
select the ADT8940A1.llb file, finally select the required library function in the
“Select the VI to Open” window and drag into the program interface.
After the above three steps, users can call functions in the dynamic link library.
3. Calling library functions under DOS
Function libraries under DOS are edited in Borland C3.1 and saved in the
DevelopmentPackage/C++ (or C) folder. Library functions may be categorized into
large and huge modes, applicable for standard C and Borland C3.1or above
versions.
The method of calling function library with Borland C is as follows:
(1) Under the development environment of Borland C, select the “Project\Open
Project” command to create a new project;
(2) Copy the ADT8940A1H.LIB or ADT8940A1L.LIB file and ADT8940A1.H file
from DevelopmentPackage/ C (or C++) in the CD to the path of the newly
created project;
(3) Select the “Project\Add Item” command and further in the dialogue select
“ADT8940A1H.LIB” or “ADT8940A1L.LIB”, finally click the Add button;
(4) Add #include “ADT8940A1.h statement in the user program file.
After the above four steps, users can call functions in the dynamic link library.
4. Returns of library functions and their meanings
To ensure users will correctly know execution of library functions, each library
function in the function library after completion of execution will return to execution
results of the library functions. Users, based on such Returns, can conveniently
judge whether function calling has succeeded.
Except “int ADT8940A1_initial(void)” and “int read_bit(int cardno, int number)”
with special Returns, other functions have only “0” and “1” as the Returns, where
“0” means successful calling and “1” means failed calling.
The following list introduces meanings of function Returns.
Function name Return Meaning
ADT8940A1_initial
-1 No installation of service
- 55 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
-2 PCI slot failure
0 No installation of control card
>0 Amount of control card
0 Low level
Read_bit
Other functions
Remark: Return 1 means calling error, and the normal cause is wrong cardno
(Card Number) or axis (Axis Number) passed during the process of calling library
functions. Card number have their values starting as 0, 1, and 2, thus in case
there is only one card, the card number must be 0; similarly values of axis
number can only be 1, 2, 3 and 4, other values are all wrong.
1 High level
-1 Card number or input point out of limit
0 Correct
1 Wrong
Chapter 9 Briefing on motion control development
This card will encounter some problems during programming, but most problems are
due to failure in understanding the methods of this control card. The following part
will give explanation on some unusual and easy-to-misunderstand scenarios.
H
CARD INITIALIZATION
At the beginning users shall call the ADT8940A1_initial() function and ensure the
ADT8940A1 card has been correctly installed, then set pulse output mode and limit
switch mode. The above parameters shall be set for individual machine, and
normally only one setting is required during program initialization, instead of any
later setting.
Remark: Library function ADT8940A1_initial is the door to ADT8940A1 card,
thus calling other functions are of sense only after successful card
initialization with calling to this function.
H
SPEED SETTING
2.1 Constant speed motion
- 56 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
Parameter setting is so simple that users just set the drive speed equal to the
starting speed; other parameters need no setting.
Relevant functions:
set_startv
set_speed
O
Remark: values used by functions will give the actual speed only after
multiplying by the multiple rate.
2.2 Interpolation speed
ADT8940A1 card can take any 2 axes, any 3 axes or all the 4 axes for linear
interpolation.
For speed of interpolation, speed parameter for the earliest axis will apply as
speed of the long axis, for example,
inp_move2 (0,3,1,100,200) is to apply the speed parameters of the first axis,
i.e., X axis, independent of parameter sequence.
inp_move3 (0,3,4,2,100,200,500) is to apply the speed parameters of the
second axis, i.e., Y axis, independent of parameter sequence.
Remark: speed multiple rate during interpolation is half of that during
single-axis movement, which means under the same parameters speed of
interpolation is only half of that of single-axis movement.
H
STOP0, STOP1 signal
Every axis has STOP0, STOP1 .therefore, there are 8 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. 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
- 57 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
Chapter 10 Programming samples in motion control
development
All movement control functions return immedietly; once a drive command is made,
the movement process will be controlled by the movement control card until
completion; then the host computer software of users can real-time monitor the
whole movement process or force to stop the process.
Remark: Axis during motion are not a llowed to send new drive commands to
motion axis, otherwise the previous drive w ill be given up so as to execute
the new drive.
Although programming languages vary in types, they can still be concluded as Three
Structures and One Spirit. Three Structures refer to sequential structure, cycling
structure and branch structure emphasized by all the programming languages, and
One Spirit refer to calculation and module division involved in order to complete
design assignments, which is also the key and hard point in whole programming
design.
To ensure a program is popular, standard, expandable and easy for maintenance, all
the later samples will be divided into the following modules in terms of project design:
movement control module (to further seal library functions provided by the control
card), function realization module (to cooperate code phase of specific techniques),
monitoring module and stop processing module.
Now let’s brief application of ADT8940A1 card function library in VB and VC; users
using other programming languages may take reference.
H
VB PROGRAMMING SAMPLES
1.1 PREPARATION
(1) Create a new item and save as “test.vbp”;
- 58 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
(2) Add the ADT8940A1.bas module in the item following the above-introduced
method;
Movement control module
1.2
(1) Add a new module in the project and save as “ctrlcard.bas”;
(2) At first, within the motion control module self-define initialization functions of
the motion control card and initialize library functions to be sealed into
initialization functions;
(3) Further self-define relevant motion control functions such as speed setting
function, single-axis motion function, and iinterpolation function;
(4) Source code of ctrcard.bas is:
'/*********************** Motion control module ********************
' For developing an application system of great generality,
' extensibility and convenientmaintenance easily and swiftly,
' we envelop all the library functions by category basing on
' set the time of delay,if hareware-version is 1 ,motion-card havn't this function
' para: time - time of delay(unit is us)
' Return 0:Correct 1: Wrong
1.3.4 Interpolation codes are inside the click event of InterpMove button, whereby
various selected objects send corresponding drive commands. The four check
boxes (to select objects) are respectively named as X, Y, Z and A, subject with the
following code:
Private Sub InterpMove_Click()
'*****************judge speed whether is out of range************************'
' The range of start-speed and run-speed(1~2M)
' The range of add (1×125~64000×125)
'*****************************************************
'***************************inpterpolation***************************
'*********************************4-axis
linear-inpterpolation**********************************
If m_bX.value = vbChecked And m_bY.value = vbChecked And m_bZ.value = vbChecked
And m_bA.value = vbChecked Then
Setup_Speed 1, m_nStartV(0).Text, m_nSpeed(0).Text, m_nAdd(0).Text,
m_dTacc(0).Text
Interp_Move4 m_nPulse(0).Text, m_nPulse(1).Text, m_nPulse(2).Text,
m_nPulse(3).Text
'*********************************3-axis
linear-inpterpolation**********************************
'********************************XYZ********************************
ElseIf m_bX.value = vbChecked And m_bY.value = vbChecked And m_bZ.value =
vbChecked Then
- 77 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
Setup_Speed 1, m_nStartV(0).Text, m_nSpeed(0).Text, m_nAdd(0).Text,
m_dTacc(0).Text
Interp_Move3 1, 2, 3, m_nPulse(0).Text, m_nPulse(1).Text, m_nPulse(2).Text
'********************************XYW********************************
ElseIf m_bX.value = vbChecked And m_bY.value = vbChecked And m_bA.value =
vbChecked Then
Setup_Speed 1, m_nStartV(0).Text, m_nSpeed(0).Text, m_nAdd(0).Text,
m_dTacc(0).Text
Interp_Move3 1, 2, 4, m_nPulse(0).Text, m_nPulse(1).Text, m_nPulse(3).Text
'********************************XZW********************************
ElseIf m_bX.value = vbChecked And m_bZ.value = vbChecked And m_bA.value =
vbChecked Then
Setup_Speed 1, m_nStartV(0).Text, m_nSpeed(0).Text, m_nAdd(0).Text,
m_dTacc(0).Text
Interp_Move3 1, 3, 4, m_nPulse(0).Text, m_nPulse(2).Text, m_nPulse(3).Text
'********************************YZW********************************
ElseIf m_bY.value = vbChecked And m_bZ.value = vbChecked And m_bA.value =
vbChecked Then
Setup_Speed 2, m_nStartV(1).Text, m_nSpeed(1).Text, m_nAdd(1).Text,
m_dTacc(1).Text
Interp_Move3 2, 3, 4, m_nPulse(1).Text, m_nPulse(2).Text, m_nPulse(3).Text
'********************************2-axis
linear-inpterpolation********************************
'********************************XY********************************
ElseIf m_bX.value = vbChecked And m_bY.value = vbChecked Then
Setup_Speed 1, m_nStartV(0).Text, m_nSpeed(0).Text, m_nAdd(0).Text,
m_dTacc(0).Text
Interp_Move2 1, 2, m_nPulse(0).Text, m_nPulse(1).Text
'********************************XZ********************************
ElseIf m_bX.value = vbChecked And m_bZ.value = vbChecked Then
Setup_Speed 1, m_nStartV(0).Text, m_nSpeed(0).Text, m_nAdd(0).Text,
m_dTacc(0).Text
Interp_Move2 1, 3, m_nPulse(0).Text, m_nPulse(2).Text
'********************************XW********************************
ElseIf m_bX.value = vbChecked And m_bA.value = vbChecked Then
Setup_Speed 1, m_nStartV(0).Text, m_nSpeed(0).Text, m_nAdd(0).Text,
m_dTacc(0).Text
Interp_Move2 1, 4, m_nPulse(0).Text, m_nPulse(3).Text
'********************************YZ********************************
ElseIf m_bY.value = vbChecked And m_bZ.value = vbChecked Then
- 78 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
Setup_Speed 2, m_nStartV(1).Text, m_nSpeed(1).Text, m_nAdd(1).Text,
m_dTacc(1).Text
Interp_Move2 2, 3, m_nPulse(1).Text, m_nPulse(2).Text
'********************************YW********************************
ElseIf m_bY.value = vbChecked And m_bA.value = vbChecked Then
Setup_Speed 2, m_nStartV(1).Text, m_nSpeed(1).Text, m_nAdd(1).Text,
m_dTacc(1).Text
Interp_Move2 2, 4, m_nPulse(1).Text, m_nPulse(3).Text
'********************************ZW********************************
ElseIf m_bZ.value = vbChecked And m_bA.value = vbChecked Then
Setup_Speed 3, m_nStartV(2).Text, m_nSpeed(2).Text, m_nAdd(2).Text,
m_dTacc(2).Text
Interp_Move2 3, 4, m_nPulse(2).Text, m_nPulse(3).Text
Else
MsgBox "please choose the axis", , "Notice"
End If
End Sub
1.4 Monitoring module
The monitoring module is used to real-time get motion information of all the axes
and display motion information, at the same time of controlling them in motion
process without any new motion commands. This module is completed by the timer
event, with the following codes:
Private Sub Timer1_Timer()
Dim nLogPos As Long 'logic pos
Dim nActPos As Long 'real pos
Dim nSpeed As Long 'run-speed
Dim nStatus(4) As Long 'status of motion
For i = 1 To 4
Get_CurrentInf i, nLogPos, nActPos, nSpeed
m_nLogPos(i - 1).Caption = nLogPos
m_nActPos(i - 1).Caption = nActPos
m_nRunSpeed(i - 1).Caption = nSpeed
Get_MoveStatus i, nStatus(i - 1), 0
'Check signal of limitstop0 and stop1
'LMT+(XLMT-: 0,YLMT- :6,ZLMT-:12,WLMT- :18)
If Read_Input((i - 1) * 6) = 0 Then
m_bPLimit(i - 1).value = 1
- 79 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
Else
m_bPLimit(i - 1).value = 0
End If
'LMT-(XLMT+ : 1,YLMT+ :7,ZLMT+ :13,WLMT+ :19)
If Read_Input((i - 1) * 6 + 1) = 0 Then
m_bNLimit(i - 1).value = 1
Else
m_bNLimit(i - 1).value = 0
End If
'stop0(XSTOP0 : 2,YSTOP0 :8,ZSTOP0 :14,WSTOP0 :20)
If Read_Input((i - 1) * 6 + 2) = 0 Then
m_bStop0(i - 1).value = 1
Else
m_bStop0(i - 1).value = 0
End If
'stop1(XSTOP1 : 3,YSTOP1 :9,ZSTOP1 :15,WSTOP1 :21)
If Read_Input((i - 1) * 6 + 3) = 0 Then
m_bStop1(i - 1).value = 1
Else
m_bStop1(i - 1).value = 0
End If
Next i
If nStatus(0) = 0 And nStatus(1) = 0 And nStatus(2) = 0 And nStatus(3) = 0 Then
'is running
AxisPmove.Enabled = True
InterpMove.Enabled = True
BaseparaSet.Enabled = True
ClearPos.Enabled = True
ComeMove.Enabled = True
LineInpMove.Enabled = True
IOTest.Enabled = True
Else
'motion is finished or stopped
AxisPmove.Enabled = False
InterpMove.Enabled = False
BaseparaSet.Enabled = False
ClearPos.Enabled = False
ComeMove.Enabled = False
LineInpMove.Enabled = False
IOTest.Enabled = False
- 80 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
End If
End Sub
1.5 Stop module
This module is mainly used to control unexpected events during drive process and
will immediately stop drive of all the axes. Codes of this stop module are within the
click event of CmdStop button, with the following codes:
Private Sub CmdStop_Click()
For i = 1 To 4
StopRun i, 0
Next i
End Sub
H
VC PROGRAMMING SAMPLES
2.1 Preparation
(1) Create a new item and save as “VCExample.dsw”;
(2) Load the static library ADT8940A1.lib into the item following the
above-introduced method;
2.2 Movement control module
(1) Add a new category in the item and save the header as “CtrlCard.h” and
source file as “CtrlCard.cpp”;
(2) At first, within the movement control module self-define initialization
functions of the movement control card and initialize library functions to be
sealed into initialization functions;
(3) Further self-define relevant movement control functions such as speed
setting function, single-axis motion function, and interpolation function;
(4) Source codes of the header CtrlCard.h are as follows:
# ifndef __ADT8940A1__CARD__
# define __ADT8940A1__CARD__
/*********************** Motion control module ********************
For developing an application system of great generality,
extensibility and convenient maintenance easily and swiftly,
we envelop all the library functions by category basing on
the card function library
- 81 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
class CCtrlCard
{
public:
int Get_DelayStatus();
int Setup_Delay(long time);
int Setup_HardStop(int value, int logic);
int Setup_Stop1Mode(int axis, int value, int logic);
int Setup_Stop0Mode(int axis, int value, int logic);
int Setup_LimitMode(int axis, int value1, int value2, int logic);
int Setup_PulseMode(int axis, int value);
void Get_Version(float &LibVer, float &HardwareVer);
int Setup_Pos(int axis, long pos, int mode);
int Write_Output(int number, int value);
int Read_Input(int number);
int Get_CurrentInf(int axis, long &LogPos, long &ActPos, long &Speed);
int Get_Status(int axis, int &value, int mode);
int StopRun(int axis, int mode);
int Interp_Move4(long value1, long value2, long value3, long value4);
int Interp_Move3(int axis1, int axis2, int axis3, long value1, long value2, long value3);
int Interp_Move2(int axis1, int axis2, long value1, long value2);
int Axis_Pmove(int axis ,long value);
int Setup_Speed(int axis ,long startv ,long speed ,long add);
int Init_Board();
int Sym_RelativeMove(int axis, long pulse, long lspd ,long hspd, double tacc);
int Sym_AbsoluteMove(int axis, long pulse, long lspd ,long hspd, double tacc);
int Sym_RelativeLine2(int axis1, int axis2, long pulse1, long pulse2, long lspd ,long hspd,
double tacc);
int Sym_AbsoluteLine2(int axis1, int axis2, long pulse1, long pulse2, long lspd ,long hspd,
double tacc);
int Sym_RelativeLine3(int axis1, int axis2, int axis3, long pulse1, long pulse2, long pulse3,
long lspd ,long hspd, double tacc);
int Sym_AbsoluteLine3(int axis1, int axis2, int axis3, long pulse1, long pulse2, long pulse3,
long lspd ,long hspd, double tacc);
int Sym_AbsoluteLine4(long pulse1, long pulse2, long pulse3, long pulse4,long lspd ,long
hspd, double tacc);
- 82 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
int Sym_RelativeLine4(long pulse1, long pulse2, long pulse3, long pulse4,long lspd ,long
hspd, double tacc);
int Get_OutNum(int number);
int Manu_Pmove(int axis, long pulse);
int Manu_Continue(int axis);
int Manu_Disable(int axis);
int Setup_LockPosition(int axis,int mode,int regi,int logical);
int Get_LockStatus(int axis,int &v);
int Get_LockPosition(int axis,long &pos);
int Clr_LockPosition(int axis);
CCtrlCard();
int Result; //return value
}
;# endif
(5) Source codes of the source file CtrlCard.cpp are as follows:
# include "stdafx.h"
# include "ADT8940A1.h"
# include "CtrlCard.h"
# include "VCExample.h"
extern int g_CardVer;
CCtrlCard::CCtrlCard()
{
}
/*******************
'This function contain those library functions frequently used in control card
initialization, which is the foundation to call other functions and must be firstly called
in this example program.
'Return <=0 means initialization failure and >0 means initialization success
Result = adt8940a1_initial() ; //intiial motion-card
if (Result <= 0) return Result;
for (int i = 1; i<=MAXAXIS; i++)
{
Initialization function ************************************************
- 83 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
//set limit modepositive limit and negative limit is effective,low level is effective
set_limit_mode (0, i, 0, 0, 0);
set_command_pos (0, i, 0); //set logic pos as 0
set_actual_pos (0, i, 0); //set real pos as 0
set_startv (0, i, 1000); //set start-speed
set_speed (0, i, 1000); //set motion-speed
set_acc(0, i, 625); //set acceleration
}
int CCtrlCard::Get_Status(int axis, int &value, int mode)
{
if (mode==0) //Get single-axis motion status
Result=get_status(0,axis,&value);
Else //Get motion status of interpolation
Result=get_inp_status(0,&value);
return Result;
}
2.3 Function realization module
2.3.1 Interface design
- 87 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
Remark:
(1) Speed setting part—used to set starting speed, drive speed and acceleration
of every axis; position setting—used to set drive pulse for every axis; motion
information—used to real-time display logical position, real position and
motion speed of every axis;
Drive object—users determine axis joining simultaneous movement or
(2)
interpolation by selecting drive objects;
Simultaneous movement—Used to send single-axis drive commands to all
(3)
the axis of the selected drive object; interpolation –Used to send interpolation
command to all the axis of the selected drive object; stop—stop all the pulse
outputs of all axis.
All the above data take pulse as the unit.
2.3.2 Initialization codes for the movement control card are inside window
initialization, while users shall supplement the following codes:
int i=g_CtrlCard.Init_Board();
//*************initial 8940A1 motion-card**************
if (i <= 0)
{
- 88 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
MessageBox( "Fail to initial motion-card!");
if (i==0)
{
MessageBox( "NO installation of ADT8940A1!");
}
if(i==-1)
{
MessageBox( "no installation of service!");
}
if(i==-2)
{
MessageBox( "PCI bus failure!");
}
}
else
MessageBox ("Succeed in initial motion-card!");
This module is mainly used to control unexpected events during drive process
and will immediately stop drive of all the axes. Codes of this stop module are
within the click messages of Stop button, with the following codes:
void
CDEMODlg::OnButtonStoprun()
{
for (int i = 1; i<= MAXAXIS; i++){
g_CtrlCard.StopRun(i,0);
}
}
Chapter 11 Normal failures and solutions
H
Movement control card detection failure
During use of control card, if encountering failure to detect the control card, users may
follow the following items to check:
(1) Check whether drive program for the control card has been installed step by step
following installation guide and whether there is the dynamic library file for the
control card under the system menu (System32 or System);
(2) Check touch between the movement control card and the slot; users may test it by
re-inserting or changing the slot, alternatively, use a rubber to clean dirt on the
golden finger of the control card and re-insert;
(3) Under the system equipment manager, check whether there is conflict between
the movement control card and other hardware. In case of use of PCI card, users
may remove other cards or boards first, such as sound card and network card; in
- 96 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
case of PC104 card, users may adjust the dialing switch and reset the base
address, while the base address used during card initialization must be same as
the actual base address;
(4) Check whether there are any problems with the operating system; users may test
it through re-installing other versions of operating systems;
(5) If failing to find the control card after the above steps, users may change the
control card for further detection so as to discover whether there is damage with
the control card.
MOTOR SERVICE FAILURE
In case the motor breakdowns while the movement control card works normally, users
may follow the following points for troubleshooting.
(1) Motor makes no reaction when the movement control card outputs pulses
Ü Check cable between the control card and the terminal panel;
Ü Check whether the pulse and direction signal wire of the motor driver has
been correctly connected to the terminal panel;
Ü Check connection of the external power supply for the servo driver;
Ü Check whether there is alarming status in the servo/ stepping motor driver;
in case of any alarm there, follow codes corresponding to alarms to check
the reason.
ÜCheck connection to the servo SON and whether there is excitation status
in the servo motor ;
ÜIn case of servo motor, check control method of the driver; control card of
our company support the Position Control Method.
ÜDamage to the motor/ driver
(2) Stepping motor makes abnormal noise during service and motor makes obvious
out-steps.
ÜCalculate motor speed and make sure the stepping motor is under 10-15
rounds per second instead of faster speed;
ÜCheck internal obstruction in the mechanical part or resistance to the
machine;
- 97 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
Ü Change to large-moment motors if the current motor is not sufficient;
Ü Check current and voltage of the driver; current shall be set as 1.2 of the
nominated current and supply voltage shall be within the nominated range;
ÜCheck the starting speed of the controller; normal starting speed shall be
0.5-1 and the acceleration/ deceleration time shall be over 0.1 second.
(3) Servo/ stepping motor makes obvious vibration or noises during processing
ÜReduce the position ring gain and speed ring gain of the driver while
allowed by the positioning precision, if the cause is such ring gains are too
big;
Ü Adjust machine structure if the cause is poor machine rigidity;
Ü Change to large-moment motors if the current motor is not sufficient;
Ü Avoid the co-vibration area of the motor or increase partitions so as not to
have the speed of stepping motor within the co-vibration area of the motor.
(4) Motor positions inaccurately
ÜCheck whether the mechanic screw pitch and pulses per round comply
with the parameters set in the actual application system, i.e., pulse
equivalent;
Ü Enlarge position ring gain and speed ring gain in case of servo motor;
Ü Check screw gap of the machine in the way of measuring the backward
gap of a screw through a micrometer and adjust the screw if there is any
gap;
ÜIn case of inaccurate positioning out of regular time or position, check
external disturbance signals;
ÜCheck whether it is due to non-powerful motor that there is shaking or
out-step.
(5) Motor makes no direction
Ü Check DR+ DR- cable for connection error or loose connection;
Ü Make sure the pulse mode applied in the control card comply with the
actual driver mode; this control card support either “pulse + direction” or
“pulse + pulse” mode.
ÜCheck broken cable or loose connection along the motor cable, in case of
stepping motor.
- 98 -
www.adtechcn.com
ADT8940A1 4-axis servo/ stepping motion control card
H
ABNORMAL SWITCH AMOUNT INPUT
In case some input signals give unusual detection results during system adjusting and
running, users may check in accordance with the following methods:
(1) No signal input
ÜCheck whether the wiring is correct according to the above-introduced
wiring maps for normal switch and approach switch and ensure the public
port for photoelectric coupling of input signals have been connected with
anode of internal or external power supply (+12V or 24V);
ÜCheck switch model and wiring method; the input switch for I/O points of
our company is of NPN model.
ÜCheck whether there is damage with the photoelectric coupler. In case of
normal wiring, input status will not change no matter the input point is
broken or closed; users may use multi-use meter to check whether the
photoelectric coupler has been broken, and if yes, replace with a new one;
Ü Check the 12V or 24V power supply to the switch;
Ü Check whether there is damage to the switch.
(2) Non-continuous signals
ÜCheck whether there is disturbance by detecting signal status in the I/O
test interface; in case of disturbance, increase with Model 104 multiple
layer capacitor or apply blocking cables;
ÜIf the machine makes obvious shaking or unusual work stop during normal
service, check whether there is disturbance to the limit switch signals or the
limit switch work reliably;
ÜCheck connection of external cables.
(3) Inaccurate reset
Ü Too high speed decreases reset speed ;
Ü Check disturbance source if the problem is there is external disturbance to
signals;
Ü Wrong resetting direction;
Ü Improper installation position of the reset switch or loose switch
- 99 -
www.adtechcn.com
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.