PCI 8134+PCI 8134A - 50 11173 1000 - 300 - en
PCI 8134+PCI 8134A - 50 11173 1000 - 300 - en
PCI 8134+PCI 8134A - 50 11173 1000 - 300 - en
M anual Rev.:
Revision Date:
Part N o:
3 .0 0
Sept 7 , 2 0 1 2
5 0 -1 1 1 7 3 -1 0 0 0
Recycled Paper
Trademarks
NuDAQ and PCI-8134/PCI-8134A are registered trademarks of ADLINK
Technology Inc, MS-DOS & Windows 95 are registered trademarks of
Microsoft Corporation., Borland C++ is a registered trademark of Borland
International, Inc. Other product names mentioned herein are used for
identification purposes only and may be trademarks and/or registered
trademarks of their respective companies.
http://www.adlinktech.com
NuDAQ
Support
Automation
NuIPC
NuPRO/EBC
TEL
+886-2-82265877
FAX
Address
9F, No. 166, Jian Yi Road, Chungho City, Taipei, 235 Taiwan
+886-2-82265717
FAX
Web Site
Questions
Product Model
Environment to Use
Challenge Description
OS
Computer Brand
M/B:
Chipset:
Video Card:
Network Interface Card:
Other:
CPU:
Bios:
Table of Contents
Introduction ....................................................................1
1.1
1.2
1.3
Features ................................................................................. 4
Specifications ......................................................................... 4
Software Support ................................................................... 6
1.3.1
1.3.2
1.4
Installation......................................................................7
2.1
2.2
2.3
2.3.1
2.3.2
2.3.3
2.3.4
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
Operations....................................................................31
4.1
4.1.1
4.1.2
4.1.3
4.1.4
4.1.5
4.1.6
4.1.7
4.2
4.2.1
4.2.2
4.2.3
4.3
INP ......................................................................................... 53
ALM ....................................................................................... 53
ERC ....................................................................................... 54
4.3.1
4.3.2
4.3.3
4.3.4
4.4
4.5
4.6
4.7
SD .......................................................................................... 55
EL .......................................................................................... 55
ORG....................................................................................... 57
SVON and RDY ..................................................................... 57
5.3.1
5.3.2
5.3.3
5.3.4
5.3.5
5.3.6
5.3.7
5.3.8
5.3.9
ii Table of Contents
6.2
6.3
6.4
6.5
6.6
6.7
6.8
6.9
6.10
6.11
6.12
6.13
6.14
6.15
6.16
6.17
iv Table of Contents
Chapter1,
Chapter2,
Chapter3,
Chapter4,
Chapter5,
Chapter6,
Chapter7,
Chapter8,
"Another Function Library (8134A.lib) ", describes highlevel programming interface. It helps programmer to
control PCI8134 in high level language style.
Connection Example shows some typical connection
examples between PCI-8134/PCI-8134A and servo driver and
stepping driver.
Introduction
The PCI-8134/PCI-8134A is a 4-axis motion control card with PCI interface. It
can generate high frequency pulses to drive stepping motors and servo
motors. Multiple PCI-8134/PCI-8134A cards can be used in one system.
Incremental encoder interface on all four axes provide the ability to correct for
positioning errors generated by inaccurate mechanical transmissions. In
addition, mechanical sensor interface, servo motor interface and general
purpose I/O signals are provided for system integration.
Figure 1.1 shows the function block diagram of PCI-8134/PCI-8134A card.
PCI-8134/PCI-8134A uses motion ASIC to perform 4-axis motion control.
These ASICs are incorporate Nippon Pulse Motor. The motion control
functions include linear and S-curve acceleration/deceleration, interpolation
between two axes, continuous motion, in positioning and home return are
done by the ASIC. Since these functions needing complex computations are
done internally on the ASIC, the PCs CPU is free to supervise and perform
other tasks.
Motion Creator a Microsoft Windows-based application included with the PCI8134/PCI-8134A card for supporting application development. Motion Creator
is very helpful for debugging a motion control system during the design phase
of a project. The on-screen monitor shows all installed axis information and
I/O signals status of PCI-8134/PCI-8134A cards. In addition to Motion Creator,
both DOS and Windows version function library are included for programmers
using C++ and Visual Basic language. Several sample programs are given to
illustrate how to use the function library.
The following flowcharts show recommending processes for using this manual
to develop an application. Please also refer to the relative chapters for details
of each step.
Introduction 1
PCI Bus
PCI Bus
Controller
CN3
Pulser .
Input: PA,PB
CN4
PCL 5023
for axes
X&Y
PCL 5023
for axes
Z&U
Simultaneousl
y
Ext+24V Input
CN1
Isolation
DC/DC
Pulse I/O
Mechanical
Interface
OUT, DIR,
EA, EB, EZ
+EL, -EL,
+SD,-SD,
ORG
Servo
Driver
Interface
General
Purpose
I/O
INP, ALM
ERC
SVON
RDY
CN2
Introduction 3
1.1
Features
The following lists summarize the main features of the PCI-8134
motion control system.
32-bit PCI-Bus, plug and play.
4 axes of step and direction pulse output for controlling stepping or
servomotor.
Maximum output frequency of 2.4 Mpps
Pulse output options: OUT/DIR, CE/CCW
Pulse input options: CW/CCW, AB phase x1, x2, x4
2-axis linear interpolation.
28-bit up/down counter for incremental encoder feedback.
Home switch, index signal, positive and negative limit switches
interface provided for all axes
Trapezoidal and S-curve velocity profiles for all modes
Programmable interrupt sources
Change Speed on the Fly.
Simultaneous start/stop motion on multiple axes.
Manual pulser input interface.
Software supports maximum up to 12 PCI-8134/PCI-8134A cards (48
axes) operation.
Compact, half size PCB.
Motion Creator Microsoft Windows based application development
software.
1.2
Specifications
Applicable Motors:
Stepping motors.
AC or DC servomotors with pulse train input servo-drives.
Performance:
4 Introduction
I/O Signals:
General Specifications
Introduction 5
1.3
Software Support
1.3.1
Programming Library
Windows XP/7 DLLs are provided for the PCI-8134 and PCI-8134A. These
function libraries are shipped with the board.
1.3.2
Motion Creator
This Windows-based utility, also bundled with the product, is used to set up
cards, motors, and systems, and can aid in debugging hardware and
software. It allows users to set I/O logic parameters for their own programs.
1.4
ADLINK provides servos & steppers with terminal boards for easy
connection, specifically boards DIN-814M0, DIN-814M-J3A0, DIN-814Y0,
DIN-814P-A40 for connection to dedicated servo drives. Steppers or other
servo brands can be connected with general purpose terminal boards DIN814-GP and DIN-100S0. Compatible servos are as follows.
Servo
Terminal Board
Mitsubishi J2 Super
DIN-814M0
Mitsubishi J3A
DIN-814M-J3A0
Yaskawa Sigma II
DIN-814Y0
Panasonic MINAS A4
DIN-814P-A40
6 Introduction
Installation
This chapter describes how to install the PCI-8134/PCI-8134A, according to
the following procedure.
2.1
Package Contents
In addition to this User's Guide, the package includes the following items:
If any of these items are missing or damaged, contact the dealer from
whom you purchased the product. Save the shipping materials and carton
in case you want to ship or store the product in the future.
Installation 7
2.2
8 Installation
CN1
S1
CN3
CN4
CN2
J1
|
J8
2.3
Hardware Installation
2.3.1
Hardware configuration
The PCI-8134/PCI-8134A has a plug and play PCI controller on board. The
memory usage (I/O port locations) of the PCI card is assigned by system
BIOS. The address assignment is done on a board-by-board basis for all
PCI cards in the system.
2.3.2
Your computer will probably have both PCI and ISA slots. Do not force the
PCI card into a PC/AT slot. The PCI-8134/PCI-8134A can be used in any
PCI slot.
Installation 9
2.3.3
Installation Procedures
Read through this manual, and setup the jumper according to your
application
Turn off your computer, Turn off all accessories (printer, modem, monitor,
etc.) connected to computer.
Remove the cover from your computer.
Select a 32-bit PCI expansion slot. PCI slots are short than ISA or EISA
slots and are usually white or ivory.
Before handling the PCI-8134/PCI-8134A, discharge any static buildup on
your body by touching the metal case of the computer. Hold the edge and
do not touch the components.
Position the board into the PCI slot you selected.
Secure the card in place at the rear panel of the system unit using screw
removed from the slot.
2.3.4
Troubleshooting:
If your system wont boot or if you experience erratic operation with your
PCI board in place, its likely caused by an interrupt conflict (perhaps
because you incorrectly described the ISA setup). In general, the solution,
once you determine it is not a simple oversight, is to consult the BIOS
documentation that comes with your system.
2.4
Please refer to the ADLink All-in-one Compact Disc Manual to install it.
10 Installation
2.5
1)
2)
3)
Note: Please download the latest software from the ADLINK website if
necessary.
2.6
CN1 Pin No
1
2
Note:
1.
2.
3.
Name
EXGND
EX+24V
Description
Grounds of the external power.
External power supply of +24V DC 5%
The following diagram shows the external power supply system of the PCI8134/PCI-8134A. The external +24V power must be provided, an on-board
regulator generates +5V for both internal and external usage.
(External Power)
EXGND
EX+5V
I/O
SIGNALS
Internal
Power Supply
from PCI BUS
DC/DC
External
Power Supply
EX+24V
(Bus Power)
+5V
GND
(OUTPUT)
Isolation
I/O SIGNALS
Installation 11
2.7
The CN2 is the major connector for the motion control I/O signals.
No.
Name
I/O
EX+5V
EXGND
OUT1+
OUT1-
Function(axis/)
No.
Name
I/O
51
EX+5V
52
EXGND
53
OUT3+
54
OUT3-
DIR1+
55
DIR3+
DIR1-
56
DIR3-
SVON1
Multi-purpose signal,
57
SVON3
Multi-purpose signal,
ERC1
58
ERC3
ALM1
Alarm signal,
59
ALM3
Alarm signal,
10
INP1
In-position signal,
60
INP3
In-position signal,
11
RDY1
Multi-purpose signal,
61
RDY3
Multi-purpose signal,
12
EXGND
62
EXGND
13
EA1+
63
EA3+
14
EA1-
64
EA3-
15
EB1+
65
EB3+
16
EB1-
66
EB3-
17
EZ1+
67
EZ3+
18
EZ1-
68
EZ3-
19
EX+5V
69
EX+5V
20
EXGND
70
EXGND
21
OUT2+
71
OUT4+
22
OUT2-
72
OUT4-
23
DIR2+
73
DIR4+
24
DIR2-
74
DIR4-
25
SVON2
Multi-purpose signal,
75
SVON4
Multi-purpose signal,
26
ERC2
76
ERC4
27
ALM2
Alarm signal,
77
ALM4
Alarm signal,
28
INP2
In-position signal,
78
INP4
In-position signal,
29
RDY2
Multi-purpose signal,
79
RDY4
Multi-purpose signal,
30
EXGND
80
EXGND
31
EA2+
81
EA4+
32
EA2-
82
EA4-
33
EB2+
83
EB4+
34
EB2-
84
EB4-
12 Installation
Function(axis/)
35
EZ2+
85
EZ4+
36
EZ2-
86
EZ4-
37
PEL1
87
PEL3
38
MEL1
88
MEL3
39
PSD1
89
PSD3
40
MSD1
90
MSD3
41
ORG1
42
EXGND
Origin signal,
91
ORG3
92
EXGND
Origin signal,
Ext. power ground
43
PEL2
93
PEL4
44
MEL2
94
MEL4
45
PSD2
95
PSD4
46
MSD2
96
MSD4
47
ORG2
Origin signal,
97
ORG4
48
EXGND
98
EXGND
Origin signal,
Ext. power ground
49
EXGND
99
EX+24V
50
EXGND
100
EX+24V
2.8
Name
GND
PB4
PA4
PB3
PA3
+5V
GND
PB2
PA2
PB1
PA1
+5V
Function(Axis )
Bus power ground
Pulser B-phase signal input,
Pulser A-phase signal input,
Pulser B-phase signal input,
Pulser A-phase signal input,
Bus power, +5V
Bus power ground
Pulser B-phase signal input,
Pulser A-phase signal input,
Pulser B-phase signal input,
Pulser A-phase signal input,
Bus power, +5V
Note: +5V and GND pins are directly given by the PCI-Bus power.
Therefore, these signals are not isolated.
Installation 13
2.9
The signals on CN3 is for simultaneously start/stop signals for multiple axes
and multiple cards.
No.
1
2
3
4
5
6
Name
GND
STP
STA
STP
STA
+5V
Function(Axis )
Bus power ground
Simultaneous stop signal input/output
Simultaneous start signal input/output
Simultaneous stop signal input/output
Simultaneous start signal input/output
Bus power, +5V
Note: +5V and GND pins are directly given by the PCI Bus power.
1
2
3
J1
J2
J3
J4
J5
J6
14 Installation
J7
J8
Line Driver
Open Collector
J4
J3
J8
J7
3
J6
J5
J2
J1
1
Select a Contact EL Switch (Normal Open)
Installation 15
ON
Select a Contact EL Switch (Normal Open)
Select b Contact EL Switch (Normal Close)
1
16 Installation
Signal Connections
The signal connections of all the I/O signals are described in this chapter.
Please refer the contents of this chapter before wiring the cable between
the PCI-8134/PCI-8134A and the motor drivers.
This chapter contains the following sections:
Section 3.1
Section 3.2
Section 3.3
Section 3.4
Section 3.5
Section 3.6
Section 3.7
Section 3.8
Section 3.9
Section 3.10
Section 3.11
Section 3.12
Signal Connections 17
3.1
Signal Name
OUT1+
OUT1DIR1+
DIR1OUT2+
OUT2DIR2+
DIR2OUT3+
OUT3DIR3+
DIR3OUT4+
OUT4DIR4+
DIR4-
Description
Pulse signals (+)
Pulse signals (-)
Direction signal(+)
Direction signal(-)
Pulse signals (+)
Pulse signals (-)
Direction signal(+)
Direction signal(-)
Pulse signals (+)
Pulse signals (-)
Direction signal(+)
Direction signal(-)
Pulse signals (+)
Pulse signals (-)
Direction signal(+)
Direction signal(-)
Axis #
18 Signal Connections
Output
Signal
OUT1DIR1OUT2DIR2OUT3DIR3OUT4DIR4-
Inside PCI-8134/PCI-8134A
EX+5V
VCC
J1~J8
CN2
OUT+, DIR+
OUT
DIR
OUT-, DIR2631
EXGND
The default setting of OUT and DIR signals are the as differential line driver
mode.
The following wiring diagram is for the OUT and DIR signals of the 4 axes.
NOTE: If the pulse output is set to the open collector output mode, the
OUT- and DIR- are used to send out signals. Please take care
that the current sink to OUT- and DIR- pins must not exceed 20mA.
The current may provide by the EX+5V power source, however,
please note that the maximum capacity of EX+5V power is 500mA.
Signal Connections 19
3.2
The encoder feedback signals include the EA, EB, and EZ. Every axis has
six pins for three differential pairs of phase-A (EA), phase-B (EB) and index
(EZ) input. The EA and EB are used for position counting; the EZ is used
for zero position index. The relative signal names, pin numbers and the axis
number are shown in the following tables.
CN2 Pin No Signal Name Axis # CN2 Pin No Signal Name
13
EA1+
63
EA3+
14
EA1
64
EA315
EB1+
65
EB3+
16
EB1
66
EB331
EA2+
81
EA4+
32
EA2
82
EA433
EB2+
83
EB4+
34
EB2
84
EB4-
Axis #
67
EZ3+
18
EZ1
68
EZ335
EZ2+
85
EZ4+
36
EZ2
86
EZ4-
Axis #
The input circuits of the EA, EB, EZ signals are shown as follows.
Inside PCI-8134/PCI-8134A
CN2
Motion ASIC
EA, EB
EZ
R
EA+,
EZ+
EB+,
EA-, EBEZ-
Please note that the voltage across every differential pair of encoder input
signals (EA+, EA-), (EB+, EB-) and (EZ+, EZ-) should be at least 3.5V or
higher. Therefore, you have to take care of the driving capability when
connecting with the encoder feedback or motor driver feedback. The
20 Signal Connections
PCI-8134/PCI-8134A
EA+,EB+,EZ+
EA-, EB-, EZEXGND
GND
External Resistor R
0 (None)
1.8k
4.3k
For more detail operation of the encoder feedback signals, please refer to
section 4.4.
Signal Connections 21
PCI-8134/PCI-8134A
VDD
GND
EA+,
EA-,
EB+,
EB-,
A, B phase
signals
3.3
The origin signals (ORG1ORG4) are used as input signals for origin of the
mechanism. The following table lists the relative signal name, pin number,
and the axis number.
CN2 Pin No
41
47
91
97
Signal Name
ORG1
ORG2
ORG3
ORG4
Axis #
The input circuits of the ORG signals are shown as following. Usually, a
limit switch is used to indicate the origin of one axis. The specifications of
the limit switches should with contact capacity of +24V, 6mA minimum. An
internal filter circuit is used to filter out the high frequency spike, which may
cause wrong operation.
Inside PCI-8134/PCI-8134A
Filter
Circuit
EX+24V
CN2
4.7K
Motion ASIC
If=6mA Max.
ORG
EXGND
22 Signal Connections
Switch
When the motion controller is operated at the home return mode, the ORG
signal is used to stop the control output signals (OUT and DIR). For the
detail operation of the ORG, please refer to section 4.3.3
3.4
There are two end-limit signals PEL and MEL for one axis. PEL indicates
end limit signal in plus direction and MEL indicates end limit signal in minus
direction. The relative signal name, pin number and axis number are shown
in the following table.
Axis #
Axis #
The signals connection and relative circuit diagram is shown in the following
diagram. The external limit switches featuring a contact capacity of +24V,
6mA minimum. You can use either A-type (normal open) contact switch or
B-type (normal closed) contact switch by setting the DIP switch S1. The
PCI-8134/PCI-8134A is delivered with all bits of S1 set to OFF, refer to
section 2.10. For the details of the EL operation, please refer to section
4.3.2.
Inside PCI-8134/PCI-8134A
EX+24V
Filter
Circuit
Motion ASIC
CN2
4.7K
PEL
MEL
If=6mA Max.
Switch
EXGND
Signal Connections 23
3.5
There are two ramping-down (SlowDown) signals PSD and MSD for one
axis. The relative signal name, pin number and axis number are shown in
the following table.
CN2 Pin No
39
40
45
46
89
90
95
96
Signal Name
PSD1
MSD1
PSD2
MSD2
PSD3
MSD3
PSD4
MSD4
Axis #
The signals connection and relative circuit diagram is shown in the following
diagram. Usually, limit switches are used to generate the slowdown
signals to make motor operating in a slower speed. For more details of the
SD operation, please refer to section 4.3.1.
Inside PCI-8134/PCI-8134A
Filter
Circuit
Motion ASIC
EX+24V
CN2
4.7K
PSD
MSD
If=6mA Max.
Switch
EXGND
3.6
The in-position signals INP from the servo motor driver indicate the
deviation error is zero, that is the servo position error is zero. The relative
signal name, pin number and axis number are shown in the following table.
24 Signal Connections
CN2 Pin No
10
28
60
78
Axis #
Signal Name
INP1
INP2
INP3
INP4
The input circuit of the INP signals are shown in the following diagram.
Inside PCI-8134/PCI-8134A
EX+5V
CN2
R
If=12mA Max.
If=5mA Min.
Motion ASIC
INP
The in-position signals are usually from servomotor drivers, which usually
provide open collector output signals. The external circuit must provide at
least 5 mA current sink capability to drive the INP signal active. For more
details of the INP signal operating, please refer to section 4.2.1.
3.7
The alarm signal ALM is used to indicate the alarm status from the servo
driver. The relative signal name, pin number and axis number are shown in
the following table.
CN2 Pin No
9
27
59
77
Signal Name
ALM1
ALM2
ALM3
ALM4
Axis #
The input circuit of alarm circuit is shown in the following diagram. The ALM
signals are usually from servomotor drivers, which usually provide open
Signal Connections 25
CN2
R
Motion ASIC
If=12mA Max.
If=5mA Min.
ALM
3.8
2.
3.
4.
The relative signal name, pin number and axis number are shown in the
following table.
CN2 Pin No
8
26
58
76
Signal Name
ERC1
ERC2
ERC3
ERC4
Axis #
The ERC signal is used to clear the deviation counter of servomotor driver.
The ERC output circuit is in the open collector with maximum 35 V external
26 Signal Connections
Inside PCI-8134/PCI-8134A
35V 50mA Maximum
CN2
ERC
Motion ASIC
EXGND
3.9
The SVON signals can be used as servomotor-on control or generalpurpose output signals. The relative signal name, pin number and axis
number are shown in the following table.
CN2 Pin No
7
25
57
75
Signal Name
SVON1
SVON2
SVON3
SVON4
Axis #
CN2
SVON
Motion ASIC
EXGND
Signal Connections 27
CN2 Pin No
11
29
61
71
Signal Name
RDY1
RDY2
RDY3
RDY4
Axis #
EX+5V
CN2
R
If=12mA Max.
If=5mA Min.
Motion ASIC
RDY
Signal
Name
PA1
PB1
PA2
PB2
Axis #
CN3
Pin No
8
9
10
11
Signal
Name
PA3
PB3
PA4
PB4
Axis #
28 Signal Connections
VCC
PA, PB
PA,PB
Motion ASIC
If the signal voltage of pulser is not +5V or if the pulser is distantly placed, it
is recommended to put a photo coupler or line driver in between. Also, +5V
and GND power lines of CN3 are direct from the PCI bus. Please carefully
use these signals because they are not isolated.
Inside PCI-8134/PCI-8134A
VCC
VCC
CN4
Motion ASIC
4.7K
4.7K
STP
STA
STP
STA
Signal Connections 29
PCI-8134/PCI-8134A #1
CN4
STP
STA
STP
STA
30 Signal Connections
PCI-8134/PCI-8134A #2
CN4
STP
STA
STP
STA
PCI-8134/PCI-8134A #3
CN4
STP
STA
STP
STA
Operations
This chapter describes detailed operation of the PCI-8134/PCI-8134A card.
Contents of the following sections are as following.
Section 4.1: The motion control modes
Section 4.2: The motor driver interface (INP, ERC, ALM, SVON, RDY)
Section 4.3: The limit switch interface and I/O status (SD, EL, ORG)
Section 4.4: The encoder feedback signals (EA, EB, EZ)
Section 4.5: Multiple PCI-8134/PCI-8134A cards operation.
Section 4.6: Change Speed on the Fly
Section 4.7: Interrupt Control
4.1
In this section, the pulse output signals configurations, and the following
motion control modes are described.
Operations 31
4.1.1
OUT
DIR
Positive Command
Negative Command
OUT
DIR
Positive Command
and negative (minus,-) command.
OUT
DIR
Negative Command
Relative Function:
set_pls_optmode(): Refer to section 6.4
4.1.2
This mode is used to operate one axis motor at constant velocity motion.
The output pulse accelerates from a starting velocity (str_vel) to the
specified constant velocity (max_vel). The v_move() function is used to
accelerate constantly while the sv_move() function is to accelerate
according to S-curve (constant jerk). The pulse output rate will keep at
maximum velocity until another velocity command is set or stop command is
issued. The v_change() is used to change speed during moving. The
v_stop() function is used to decelerate the motion to zero velocity (stop).
The velocity profile is shown as following. Note that v_stop() function can
be also be applied to stop outputting command pulses during Preset Mode
(both trapezoidal and S-curve Motion) , Home Mode or Manual Pulser
Mode operations.
Relative Functions:
v_move( ), v_stop( ), sv_move(): Refer to section 6.5
Operations 33
Velocity(pps)
max_vel
str_vel
Time(second)
Tacc
v_move()
4.1.3
Tdec
v_stop()
Trapezoidal Motion
This mode is used to move one axis motor to a specified position (or
distance) with a trapezoidal velocity profile. Single axis is controlled from
point to point. An absolute or relative motion can be performed. In absolute
mode, the target position is assigned. In relative mode, the target
displacement is assigned. In both absolute and relative mode, the
acceleration and the deceleration can be different. The motion_done()
function is used to check whether the movement is complete.
34 Operations
The following diagram shows the trapezoidal profile. There are 9 relative
functions. In the a_move(), ta_move() and start_a_move(),
start_ta_move() functions, the absolute target position must be given in
the unit of pulse. The physical length or angle of one movement is
dependent on the motor driver and the mechanism (includes the motor).
Since absolute move mode needs the information of current actual position,
so External encoder feedback (EA, EB pins) must be enabled in
set_cnt_src() function. And the ratio between command pulses and
external feedback pulse input must be appropriately set by
set_move_ratio() function.
In the r_move(), t_move() and start_r_move(), start_t_move() functions,
the relative displacement must be given in the unit of pulse. Unsymmetrical
trapezoidal velocity profile (Tacc is not equal Tdec) can be specified in
ta_move() and t_move() functions; where symmetrical profile (Tacc = Tdec)
can be specified in a_move() and r_move() functions
The str_vel and max_vel parameters are given in the unit of pulse per
second (pps). The Tacc and Tdec parameters are given in the unit of
second represent accel./decel. time respectively. You have to know the
physical meaning of one movement to calculate the physical value of the
relative velocity or acceleration parameters. The following formula gives the
basic relationship between these parameters.
max_vel = str_vel + accel*Tacc;
str_vel = max_vel + decel *Tdec;
where accel/decel represents the acceleration/deceleration rate in unit of
pps/sec. The area inside the trapezoidal profile represents the moving
distance.
The unit of velocity setting is pulses per second (pps). Usually, the unit of
velocity in the manual of motor or driver is in rounds per minute (rpm). A
simple conversion is necessary to match between these two units. Here we
use a example to illustrate the conversion.
For example:
A servo motor with a AB phase encoder is used for a X-Y table. The
resolution of encoder is 2000 counts per phase. The maximum rotating
speed of motor is designed to be 3600 rpm. What is the maximum pulse
command output frequency that you have to set on PCI-8134/PCI-8134A?
Operations 35
Answer:
max_vel = 3600/60*2000*4
= 48000pps
The reason why *4 is because there are four states per AB phase (See
Figures in Section 4.4).
Velocity (pps)
max_vel
str_vel
str_vel
Time (second)
Tacc
Tdec
Usually, the axes need to set the move ratio if their mechanical resolution is
different from the resolution of command pulse. For example, if an
incremental type encoder is mounted on the working table to measure the
actual position of moving part. A servomotor is used to drive the moving
part through a gear mechanism. The gear mechanism is used to convert the
rotating motion of motor into linear motion.(see the following diagram). If the
resolution of motor is 8000 pulses/round. The resolution of gear mechanism
is 100 mm/round.(i.e., part moves 100 mm if motor turns one round). Then
the resolution of command pulse will be 80 pulses/mm. The resolution of
encoder mounting on the table is 200 pulses/mm. Then users have to set
the move ratio as 200/80=2.5 by the function:
set_move_ratio(axis, 2.5);
36 Operations
Moving part
Table
Motor
Gear
Encoder
If this ratio is not set before issuing the start moving command, it will cause
problems when running in Absolute Mode. Because the PCI-8134/PCI8134A cant recognize the actual absolute position during motion.
Relative Functions:
a_move(), r_move(), t_move(), ta_move(), start_a_move(), start_r_move(),
start_t_move(), start_ta_move() Refer to section 6.6.
motion_done(): Refer to section 6.13.
set_cnt_src(): Refer to section 6.4.
set_move_ratio(): Refer to section 6.10.
4.1.4
This mode is used to move one axis motor to a specified position (or
distance) with a S-curve velocity profile. S-curve acceleration profiles are
useful for both stepper and servo motors. The smooth transitions between
the start of the acceleration ramp and the transition to the constant velocity
produce less wear and tear than a trapezoidal profile motion. The smoother
performance increases the life of the motors and mechanics of a system.
There are several parameters needed to be set in order to make a S-curve
move. They are:
pos: target position in absolute mode;
dist: moving distance in relative mode;
str_vel : specify the start velocity;
max_vel : specify the maximum velocity;
Tlacc: specify the time for linear acceleration section
(constant acceleration).
Tsacc: specify the time for S-curve acceleration section
Operations 37
(constant jerk).
Tldec: specify the time for linear deceleration section
(constant deceleration).
Tsdec: specify the time for S-curve deceleration section
Tlacc
Tsacc
Tsacc
Tldec
Tsdec
Tsdec
( constant jerk).
Total time of acceleration is: Tlacc+2Tsacc. The following formula gives the
basic relationship between these parameters.
38 Operations
velocity( i.e.: the moving distance is too small to reach max_vel), the
maximum velocity is automatically lowered and
Velocity (pps)
smooth accel./decel. is made (see the following Figure). This means that
with moves that dont reach maximum velocity may cause longer than
expected move times. In such a case, the smaller the moving distance, the
shorter the linear accel./decel. section becomes and the S-curve section is
not reduced unless the linear section is decreased to 0.
Time (sec)
The following two graphs show the results of experiments after executing
the unsymmetrical absolute S-curve motion command. Graph1 is the typical
result. of S-curve velocity profile. Graph2 is obtained when the amount of
command pulses is failed to let the velocity reach the designated maximum
velocity. The PCI-8134/PCI-8134A automatically lower the maximum
velocity thus provide a smooth velocity profile.
Command of Graph1:
start_tas_move(axis, 500000, 100, 1000000, 0.05, 0.05, 0.2, 0.2);
Operations 39
Command of Graph2:
start_tas_move(axis, 200000, 100, 1000000, 0.05, 0.05, 0.2, 0.2);
Relative Functions:
s_move(), rs_move(), tas_move(),
start_tas_move() Refer to section 6.7
motion_done(): Refer to section 6.13
4.1.5
start_s_move(), start_rs_move(),
Y-Axis
P1
Y
P0
X
X-Axis
40 Operations
The axis with larger numbers of moving pulses is the main axis, and the
other axis is the secondary axis. When both axes are set at the same
amount of pulses, the X or Z is the main axis. The speed relation
between main and secondary axes is as follows:
Relative Functions:
move_xy(), move_zu(),Refer to section 6.9
set_move_speed(), set_move_accel(),set_move_ratio(): Refer to section
6.10
4.1.6
In this mode, you can let the PCI-8134/PCI-8134A output pulses until the
conditions to complete the home return is satisfied after writing the
home_move() command. Finish of home return can be checked by
motion_done() function. Or you can check finish of home return
accompanied with the interrupt function by setting bit 5 of int_factor to 1 in
set_int_factor() function.
Moving direction of motors in this mode is determined by the sign of velocity
parameter in home_move() function. A v_stop() command during returning
home can stop OUT and DIR from outputting pulses.
Before writing home_move() command, configuration must be set by
set_home_config() function. .
See also Section 4.3.3 for further
description. There are total three home return modes can be selected by
Operations 41
The
CAUTION
Due to differences between the motion chipsets of PCI-8134 and PCI8134A, behaviour of home mode 0 and 1 will be inconsistent as
performed previously. Please note differences in timing charts of
each home mode for both PCI-8134 and PCI-8134A when user
wants to use PCI-8134A instead of PCI-8134 with same home
function. To ensure the accuracy of home move process, the
motion chipset on PCI-8134A commands backward motion and
stops at the edge of ORG or EZ precisely.
PCI-8134 Home Mode 0 & Home Mode 1
The timing charts of Home Mode 0 and 1 of PCI-8134/PCI-8134A
follow.
ORG
EL
Positive
Case 1
*1
Stand still
Case 2
Case 3
Negative
Case 1
*1
Stand still
Case 2
Case 3
*1 In the case 2 of PCI-8134 Home Mode 0, The axis will stand still and reset counter to 0
and issue home interrupt after user commanded a home move operation.
42 Operations
Doesnt change
Stop at a EL position
Interrupt?
Home Int
Home Int
EL Int
Home point is at the first edge of ORG signal when home move executing.
At left or right side of edge depends on home move direction.
If axis is not at ORG, the axis will search the edge of ORG as home point.
The feedback counter of PCI-8134 will be reset to zero while the motion
is hitting the edge of ORG signal.
In Case 2, the axis will stand still and reset counter to 0 and issue home
interrupt.
After normal home finished like case 1, users have to copy to position
value to command counter and target position counter at the same time.
Operations 43
Positive
EL
Case 1
Case 2
Case 3
Negative
Case 1
Case 2
Case 3
Interrupt?
Home Int
EL Int
EL Int
Home point is at the first edge of ORG signal when home move executing.
At left or right side of edge depends on home move direction.
If axis is not on ORG, the axis will search the edge of ORG as home point.
In Case 1, the axis will be stopped immediately when axis detected the
edge of ORG signal but it might stop at anywhere within the range of
ORG signal that means the home position is inaccurate after home move
was executed many times.
44 Operations
The feedback counter of PCI-8134 will be reset to zero while the motion
is hitting the edge of ORG signal.
In Case 2 & 3, the axis will hit and then stop at the edge of EL signal
anyway because the first edge of ORG signal locates behind the start
point of axis that means the axis wont detect the edge of ORG signal
anymore.
1st EZ
2nd EZ
EZ
EL
Positive
Case 1
Case 2-1
Case 2-2
Case 3
Negative
Case 1
Case 2-2
Case 3
Operations 45
Interrupt?
Home Int
Home Int
EL Int
EL Int
In Case 1, the axis will be stopped immediately when axis detected the
edge of ORG signal but it might stop at anywhere within the range of
ORG signal that means the home position is inaccurate after home move
was executed many times.
The feedback counter of PCI-8134 will be reset to zero while the motion
is hitting the edge of ORG signal.
As Do Not Latch mode, the axis will start searching EZ signal after the
ORG signal was detected within 5 clock periods.
In Case 2-2 & 3, the axis will hit and then stop at the edge of EL signal
anyway because the edge of EZ signal locates behind the start point of
Home Move that the axis wont detect the edge of EZ signal anymore.
In Case 2-1, if there are two or more EZ signals in the system, the axis
will search next EZ signal because the ORG signal was turned ON
continuously.
After normal home finished like case 1, users have to copy to position
value to command counter and target position counter at the same time.
46 Operations
EZ
ORG latch
ORG
EL
Positive
Case 1
Case 2
Case 3
Negative
Case 1
Case 2
Case 3
Interrupt?
Home Int
EL Int
EL Int
In Case 1, the axis will be stopped immediately when axis detected the
edge of ORG signal but it might stop at anywhere within the range of
ORG signal that means the home position is inaccurate after home move
was executed many times.
The feedback counter of PCI-8134 will be reset to zero while the motion
is hitting the edge of ORG signal.
Operations 47
As Do Not Latch mode, the axis will start searching EZ signal after the
ORG signal was detected within 5 clock periods.
In Case 2 & 3, the axis will hit and then stop at the edge of EL signal
anyway because the edge of EZ signal locates behind the start point of
Home Move that the axis wont detect the edge of EZ signal anymore.
In Case 2 & 3, if there are two or more EZ signals in the system, the axis
never stop if the axis starts from first EZ signal because there is no ORG
signal was triggered prior to EZ searching.
After normal home finished like case 1, users have to copy to position
value to command counter and target position counter at the same time.
Positive
Case 1
*1
Stand still
Case 2
Case 3
Negative
Case 1
*1
Stand still
Case 2
Case 3
*1 In the case 2 of PCI-8134A Home Mode 0, The axis will stand still and reset counter to 0
But wont issue home interrupt after user issued home move command.
48 Operations
Reset to 0
Stand Still
Stop at a EL position
Interrupt?
Home Int
No Int
EL Int
Home point is at the first edge of ORG signal when home move executing.
At left or right side of edge depends on home move direction.
If axis is not at ORG, the axis will search the edge of ORG as home point.
In Case 1, the axis will slow down and reverse to search the ORG edge
again and then stop at the edge of ORG signal precisely.
The feedback counter of PCI-8134A will be reset to zero while the motion
is hitting the edge of ORG signal.
In Case 2, the axis will be standstill and reset counter to 0 but wont issue
home interrupt.
After normal home finished like case 1, users have to copy to position
value to command counter and target position counter at the same time.
Operations 49
EZ
EL
Positive
Case 1
Case 2
Case 3
Negative
Case 1
Case 2
Case 3
Interrupt?
Home Int
EL Int
EL Int
In Case 1, the axis will search the edge of EZ signal after the ORG signal
and then stop at EZ edge precisely.
50 Operations
The feedback counter of PCI-8134 will be reset to zero while the motion
is hitting the edge of EZ or EL signal.
In Case 2 & 3, the axis will hit and then stop at the edge of EL signal
anyway because the edge of EZ signal locates behind the start point of
Home Move that the axis wont detect the edge of EZ signal anymore.
After normal home finished like case 1, users have to copy to position
value to command counter and target position counter at the same time.
(3) Home_mode=2: both ORG and index signal are useful. The ORG
signal lets the PCI-8134/PCI-8134A decelerate to starting velocity
and then EZ signal stops OUT and DIR pins from outputting
pulses to complete the home return.
Velocity
accel
mvel
svel
ORG
time
EZ
Note: If the starting velocity is zero, the axis will work properly in home
mode 2.
Relative Function:
set_home_config(), home_move(), v_stop(): Refer to section 6.11
Operations 51
4.1.7
For manual operation of a device, you may use a manual pulser such as a
rotary encoder. The PCI-8134/PCI-8134A can input signals from the pulser
and output corresponding pulses from the OUT and DIR pins, thereby
allowing you to simplify the external circuit and control the present position
of axis. This mode is effective between a manu_move() command is
written and a v_stop() command.
The PCI-8134/PCI-8134A receives plus and minus pulses (CW/CCW) or 90
degrees phase difference signals(AB phase) from the pulser at PA and PB
pins. The 90phase difference signals can be input through multiplication
by 1, 2 or 4. If the AB pahse input mode is selected, the PA and PB signals
should be with 90 phase shifted, and the position counting is increasing
when the PA signal is leasding the PB signal by 90 phase.
Also, one pulser may be used for X and Y axes while internally
distributing the signals appropriately to two axes. To set the input signal
modes of pulser, use set_manu_iptmode() function. Then write
manu_move() to begin manual operation function. User must write v_stop()
command in order to end this function and begins to operate at another
mode.
The error input of PA and PB can be used to generate IRQ. The following
two situations will be considered as error input of PA and PB signals. (1)
The PA and PB signals are changing simultaneously. (2) The input pulser
frequency is higher than the maximum output frequency 2.4M pps. Set bit
14 of INT factor will enable the IRQ when error happen.
Maximum moving velocity in this mode can be limited by setting max_vel
parameter in manu_move() function.
Relative Function:
set_manu_iptmode(), manu_move(), v_stop(): Refer to section 6.12
52 Operations
4.2
The PCI-8134/PCI-8134A provides the INP, ERC and ALM signals for
servomotor drivers control interface. The INP and ALM are used for
feedback the servo drivers status. The ERC is used to reset the servo
drivers deviation counter under special conditions.
4.2.1
INP
Usually, servomotor driver with pulse train input has a deviation (position
error) counter to detect the deviation between the input pulse command and
feedback counter. The driver controls the motion of servomotor to minimize
the deviation until it becomes 0. Theoretically, the servomotor operates
with some time delay from command pulses. Accordingly, when the pulse
generator stops outputting pulses, the servomotor does not stop but keep
running until the deviation counter become zero. At this moment, the servo
driver sends out the in-position signal (INP) to the pulse generator to
indicate the motor stops running.
Usually, the PCI-8134/PCI-8134A stops outputting pulses upon completion
of outputting designated pulses. But by setting inp_enable parameter in
set_inp_logic() function, you can delay the completion of operation to the
time when the INP signal is turned on. Status of motion_done() and INT
signal are also delayed. That is, when performing under position control
start_a_move(),
start_r_move(),
mode,
the
completion
of
start_s_move() functions are delayed until INP signal is turned ON.
However, EL or ALM signal or the completion of home return does not
cause the INP signal to delay the timing of completion. The INP signal may
be a pulse signal, of which the shortest width is 5 micro seconds.
The in-position function can be enable or disable. The input logic polarity
isalso programmable by software function:set_inp_logic(). The signal
status can be monitored by software function: get_io_status().
4.2.2
ALM
The ALM pin receives the alarm signal output from the servo driver. The
signal immediately stops the PCI-8134/PCI-8134A from generating pulses
or stops it after deceleration. If the ALM signal is in the ON status at the
start, the PCI-8134/PCI-8134A outputs the INT signal without generating
Operations 53
any command pulse. The ALM signal may be a pulse signal, of which the
shortest width is a time length of 5 micro seconds.
You can change the input logic by set_alm_logic() function. Whether or not
the PCI-8134/PCI-8134A is generating pulses, the ALM signal lets it output
the INT signal.. The ALM status can be monitored by software function:
get_io_status(). The ALM signal can generate IRQ by setting the bit 2 of
INT. factor in software function: set_int_factor().
4.2.3
ERC
Since the servomotor operates with some delay from pulse generated from
the PCI-8134/PCI-8134A, it keeps operating by responding to the position
error remaining in the deviation counter of the driver if the EL signal or the
completion of home return stops the PCL5023 from outputting pulses. The
ERC signal allows you to immediately stop the servomotor by resetting the
deviation counter to zero. The ERC signal is output as an one-shot signal.
The pulsewidth is a time length of 10ms. The ERC signal will automatically
output when EL signals, ALM signal is turned on to immediately stop the
servomotor. User can set the ERC pin output enable/disable by
set_erc_enable() function. ERC pin output is set output enabled when
initializing.
OFF
ON
ERC Output
Approximate 10ms
54 Operations
CAUTION
Due to differences between the motion chipsets on the PCI-8134 and PCI8134A, ERC output pulse width with the PCI-8134A may be less than
originally output by the PCI-8134.
4.3
4.3.1
SD
The ramping-down signals are used to slow-down the control output signals
(OUT and DIR) when it is active. The signals are very useful to protect the
mechanism moving under high speed toward the mechanism limit. PSD
indicates ramping-sown signal in plus (+) direction and MSD indicates
ramping-down signal in minus (-) direction.
During varied speed operation in the home return mode or continuous
operation mode, the ramping-down signal in the moving direction lets the
output control signals (OUT and DIR) ramp down to the pre-setting starting
velocity.
The ramping-down function can be enable or disable by software function:
set_sd_logic(). The input logic polarity, level operation mode, or latched
input mode can also be set by this function. The signals status can be
monitored by get_io_status().
4.3.2
EL
Operations 55
The end-limit signals are used to stop the control output signals (OUT and
DIR) when the end-limit is active. PEL signal indicates end-limit in positive
(plus) direction. MEL signal indicates end-limit in negative (minus) direction.
When the output pulse signals (OUT and DIR) are toward positive direction,
the pulse train will be immediately stopped when the PEL signal is inserted,
while the MEL signal is meaningless in this case, and vise versa. When the
PEL is inserted and the output pulse is fully stop, only the negative (minus)
direction output pulse can be generated for moving the motor to negative
(minus) direction.
The end-limit signals can be used to generate the IRQ by setting the bit 0 of
INT. factor in software function: set_int_factor().
56 Operations
You can use either 'a' contact switch or 'b' contact switch by setting the dip
switch S1. The PCI-8134/PCI-8134A is delivered from the factory with all
bits of S1 set to OFF.
The signal status can be monitored by software function: get_io_status().
4.3.3
ORG
When the motion controller is operated at the home return mode, the ORG
signal is used to stop the control output signals (OUT and DIR).
There are three home return modes, you can select one of them by setting
home_mode argument in software function: set_home_config(). Note that
if home_mode=1 or 2, the ORG signal must be ON or latched during the EZ
signal is inserted (EZ=0). The logic polarity of the ORG signal, level input or
latched input mode are selectable by software function: set_home_config().
After setting the configuration of home return mode by set_home_config(),
a home_move() command can perform the home return function.
The ORG signal can also generate IRQ signal by setting the bit 5 of
interrupt reason register (or INT. factor) in software function:
set_int_factor().
4.3.4
Operations 57
4.4
The pattern of pulses in this mode is the same as Dual Pulse Output Mode
in Pulse Command Output section, expect that the input pins are EA and
EB.
In this mode, pulse from EA causes the counter to count up, whereas EB
caused the counter to count down.
90 phase difference signals Input Mode(AB phase Mode)
58 Operations
EA
EB
Positive Direction
EA
EB
Negative Direction
The encoder error interrupt is provided to detect abnormal situation.
Simultaneously changing of EA and EB signals will cause an encoder error.
If bit #14 of the interrupt factor register (INT factor) is set as 1, the IRQ will
be generated when detect encoder error during operation.
The index inputs (EZ) signals of the encoders are used as the ZERO
index. This signal is common on most of the rotational motors. EZ can be
used to define the absolute position of the mechanism. The input logic
polarity of the EZ signals is programmable by software function
set_home_config(). The EZ signals status of the four axis can be
monitored by get_io_status().
Relative Function:
set_cnt_src(), set_pls_iptmode(): Refer to section 6.4
4.5
The software function library support maximum up to 12 PCI-8134/PCI8134A Cards that means maximum up to 48 axes of motors can be
controlled. Since PCI-8134/PCI-8134A has the characteristic of Plug-andPlay, users do not have to care about setting the Based address and IRQ
level of cards. They are automatically assigned by the BIOS of system
when booting up. Users can utilize Motion Creator to check if the plugged
PCI-8134/PCI-8134A cards are successfully installed and see the Base
address and IRQ level assigned by BIOS.
One thing needed to be noticed by users is to identify the card number of
PCI-8134/PCI-8134A when multiple cards are applied. The card number of
one PCI-8134/PCI-8134A depends on the locations on the PCI slots. They
Operations 59
are numbered either from left to right or right to left on the PCI slots. These
card numbers will affect the corresponding axis number on the cards. And
the axis number is the first argument for most functions called in the library.
So it is important to identify the axis number before writing application
programs. For example, if 3 PCI-8134/PCI-8134A cards are plugged in the
PCI slots. Then the corresponding axis number on each card will be:
Axis No.
Card No.
1
2
3
Axis 1
Axis 2
Axis 3
Axis 4
0
4
8
1
5
9
2
6
10
3
7
11
4.6
You can change the velocity profile of command pulse ouput during
operation by v_change() function. This function changes the maximum
velocity setting during operation. However, if you operate under Preset
Mode (like start_a_move(),), you are not allowed to change the
acceleration parameter during operation because the deceleration point is
pre-determined. But changing the acceleration parameter when operating
under Constant Velocity Mode is valid. Changing speed pattern on the fly
is valid no matter what you choose Trapezoidal Velocity Profile or S-curve
Velocity Profile. Here we use an example of Trapezoidal velocity profile to
illustarte this function.
Example: There are 3 speed change sensor during an absolute move for
200000 pulses. Initial maximum speed is 10000pps. Change to 25000pps if
60 Operations
Motor
Sensor 1 Sensor 2
Sensor 3
Pos=0
Pos=200000
#include pci_8134.h
start_a_move(axis, 200000.0, 1000, 10000, 0.02);
while(!motion_done(axis))
{
// Get Sensors information from other I/O card
if((Sensor1==High) && (Sensor2==Low) && (Sensor3 == Low))
v_change(axis, 25000, 0.02);
else if((Sensor1==Low) && (Sensor2==High) && (Sensor3 == Low))
v_change(axis, 50000, 0.02);
else if((Sensor1==Low) && (Sensor2==Low) && (Sensor3 == High))
v_change(axis, 100000, 0.02);
}
Where the informations of three sensors are acquired from other I/O card.
And the resulting velocity profile from experiment is shown below.
Operations 61
Relative Function:
v_change(): Refer to section 6.5
4.7
Interrupt Control
62 Operations
Motion Creator
After installing all the hardware properly according to Chapter 2, 3,
configuring cards and checkout are required before running. This chapter
gives guidelines for establishing a control system and manually exercising
the PCI-8134/PCI-8134A cards to verify correct operation. Motion Creator
provides a simple yet powerful means to setup, configure, test and debug
motion control system that uses PCI-8134/PCI-8134A cards.
Note that Motion Creator is available only for Windows XP/7 with the screen
resolution higher than 800x600 environment and can not run on DOS
system.
Motion Creator 63
5.1
Main Menu
Main Menu will appear when executing Motion Creator. Figure 5.1 shows
the Main Menu.
64 Motion Creator
5.2
Press the Config Axis button on the Main Menu will enter the Axis
66 Motion Creator
Mechanical Signal:
Related functions:
68 Motion Creator
5.3
Press the Operate Axis button on the Main Menu or Axis Configuration
Menu will enter the Axis Configuration window. Figure 5.3 shows the
window. User can use this window to command motion, monitor all the I/O
status for the selected axis. This window includes the following displays and
controls:
5.3.1
The Motion Status display provides a real-time display of the axiss position
in the Command, Actual, Error fields. Motion Creator automatically updates
these command, actual and error displays whenever any of the values
change.
When Pulse Input Active property is Axis Configuration Window is set to
Enable, the Actual Position read will be from the external encoder inputs
(EA, EB). Else, it will display the command pulse output when set to Disable.
5.3.2
The Axis Status display provides a real-time display of the axiss status.
It displays the status (Yes (for logical True) or No (for logical False)) for In
Position or In Motion or displays there is Interrupt Events Occurs. When In
motion, you can check the motion done status in the next column. In
Position range can be specified in the Pos_Err column.
5.3.3
Use I/O Status display to monitor the all the I/O status of PCI-8134/PCI8134A. The Green Light represents ON status, Red Light represents OFF
status and BLACK LIGHT represents that I/O function is disabled. The
Motion Creator 69
70 Motion Creator
5.3.4
Use the Set Position Control to arbitrarily change the actual position of
axis.Write the position wanting to specify into the column and click the Set
Position button will set the actual position to the specified position.
5.3.5
Preset Mode:
Press Home Move button will enable Home Return motion. The home
returning velocity is specified by settings in Motion Parameters Control. The
arriving condition for Home Return Mode is specified in Axis Configuration
Motion Creator 71
72 Motion Creator
Press Manual Pulser Move button will enable motion controlled by hand
wheel pulser. Using this function, user can manually operate the axis thus
verify operation. The maximum moving velocity is limited as specified by
Maximum Velocity. Press STOP to end this mode.
Do remember to press STOP to end operation under this mode. Otherwise,
operations under other modes will be inhibited.
5.3.6
Use the Motion Parameters with the Operation Mode Control to command
motion.
5.3.7
Motion Creator 73
5.3.8
5.3.9
Repeat Mode
: Repeat mode is only for absolute and relative mode. After choosing a
operation mode and click repeat mode on, you can press play key to make
axis run between position 1 and 2 (in absolute mode) or run between a
range (relative mode). It is useful on demonstrations. Use Stop button to
stop this operation.
74 Motion Creator
6.1
List of Functions
Section 6.3
Initialization
W_8134_Initial
W_8134_InitialA
W_8134_Close
W_8134_Set_Config
W_8134_Get_IRQ_Channel
W_8134_Get_Base_Addr
Card
initialization
Card initialization type A
Card Close
Configure card according to Motion Creators
setting
Get IRQ channel
Get Base Address
set_pls_iptmode
Section 6.4
set_cnt_src
Section 6.5
v_move
sv_move
v_change
Function Library 75
v_stop
Decelerate to stop
set_sd_stop_mode
fix_max_speed
unfix_max_speed
verify_speed
start_a_move
r_move
start_r_move
t_move
start_t_move
start_ta_move
ta_move
wait_for_done
set_rdp_mode
Section 6.7
rs_move
start_rs_move
tas_move
start_tas_move
76 Function Library
Section 6.8
profile move
move_all
Section 6.9
Section 6.10
Section
6.11
Set or get the home/index
logic configuration
Start
a
home
return
actionulse command output
mode
Function Library 77
Section 6.12
set_manu_iptmode
manu_move
Motion Status
motion_done
Section 6.13
Check if the axis is in motion
Section 6.14
set_alm_logic
Set alarm logic and alarm mode
set_inp_logic
Set In-Position logic and enable/disable
set_sd_logic
Set slow down point logic and
enable/disable set_erc_enable
Set
the
ERC
output
enable/disable
Section 6.15
Position Control
Section
6.16
Interrupt Control
Section
6.17
W_8134_INT_Enable
W_8134_INT_Disable
W_8134_Set_INT_Control
set_int_factor get_int_statusg factors
Get the interrupting status of axis
link_axis_interrupt
6.2
This section gives the details of all the functions. The function prototypes and
some common data types are decelerated in PCI-8134.H. These data types
are used by PCI-8134/PCI-8134A library. We suggest you to use these data
types in your application programs. The following table shows the data type
names and their range.
78 Function Library
Type Name
U8
I16
U16
I32
U32
F32
F64
Boolean
6.3
Description
8-bit ASCII character
16-bit signed integer
16-bit unsigned integer
32-bit signed long integer
32-bit unsigned long integer
32-bit single-precision floatingpoint
64-bit double-precision floatingpoint
Boolean logic value
Range
0 to 255
-32768 to 32767
0 to 65535
-2147483648 to 2147483647
0 to 4294967295
-3.402823E38 to 3.402823E38
-1.797683134862315E308
1.797683134862315E309
TRUE, FALSE
to
Initialization
@ Name
W_8134_Initial Card Initialization
W_8134_InitialA Another Card Initialization Method
W_8134_Close Card Close
W_8134_Set_Config Configure Card according to Motion Creator
W_8134_Get_IRQ_Channel Get the cards IRQ number
W_8134_Get_ Base_Addr Get the cards base address
@ Description
W_8134_Initial:
This function is used to initialize PCI-8134 card. It has to be initialized by
this function before calling other functions. The parameter definitions of
this function are different from OS. Please pay attention it.
W_8134_InitialA:
This function is like above one. The only difference is parameter
definition. We suggest that users use this function for card
initialization because this function is OS independent.
W_8134_Close:
This function must be called before the program ends.
W_8134_Set_Config:
This function is used to configure PCI-8134 card. All the I/O
configurations and some operating modes appeared on Axis
Configuration Window of Motion Creator will be set to PCI-8134. Click
Save Configuration button on the Axis Configuration Window if you
want to use this function in the application program. Click Save
Configuration button will save all the configurations to a file call
8134.cfg. This file will appear in the Windows system directory.
W_8134_Get_IRQ_Channel :
Function Library 79
6.4
80 Function Library
@ Name
set_pls_outmode Set the configuration for pulse command output.
set_pls_iptmode Set the configuration for feedback pulse input.
set_cnt_src Enable/Disable the external feedback pulse input
@ Description
set_pls_outmode:
Configure the output modes of command pulse. There are two modes for
command pulse output.
set_pls_iptmode:
Configure the input modes of external feedback pulse. There are four
types for feedback pulse input. Note that this function makes sense only
when cnt_src parameter in set_cnt_src() function is enabled.
set_cnt_src:
If external encoder feedback is available in the system, set the cnt_src
parameter in this function to Enabled state. Then internal 28-bit up/down
counter will count according configuration of set_pls_iptmode() function.
Or the counter will count the command pulse output.
@ Syntax
C/C++ (DOS, Windows)
U16 set_pls_outmode(I16 axis, I16 pls_outmode)
U16 set_pls_iptmode(I16 axis, I16 pls_iptmode)
U16 set_cnt_src(I16 axis, I16 cnt_src)
Visual Basic (Windows)
set_pls_outmode (ByVal axis As Long, ByVal pls_outmode
As Long) As Integer
set_pls_iptmode (ByVal axis As Long, ByVal pls_iptmode
As Long) As Integer
set_cnt_src (ByVal axis As Long, ByVal cnt_src As Long)
As Integer
@ Argument
axis:axis
number
designated
to
configure
pulse
Input/Output.
pls_outmode: setting of command pulse output mode for
OUT and DIR pins.
pls_outmode=0, OUT/DIR type pulse output.
pls_outmode=1, CW/CCW type pulse output.
pls_iptmode: setting of encoder feedback pulse input
mode for EA and EB pins.
pls_iptmode=0, 1X AB phase type pulse input.
pls_iptmode=1, 2X AB phase type pulse input.
pls_iptmode=2, 4X AB phase type pulse input.
Function Library 81
6.5
@ Name
v_move Accelerate an axis to a constant velocity with trapezoidal
profile
sv_move Accelerate an axis to a constant velocity with S-curve profile
v_change Change speed on the fly
v_stop Decelerate to stop
set_sd_stop_mode Set slow down stop mode
fix_max_speed Fix maximum speed setting
unfix_max_speed Unfix maximum speed setting
get_current_speed Get axis current output pulse rate
verify_speed Get the minimum acceleration time under the speed
setting
_8134_set_sd_stop_mode Set slow down stop mode
@ Description
v_move:
This function is used to accelerate an axis to the specified constant
velocity. The axis will continue to travel at a constant velocity until the
velocity is changed or the axis is commanded to stop. The direction is
determined by the sign of velocity parameter.
sv_move:
This function is similar to v_stop() but the accelerating is S-curve.
v_change:
You can change the velocity profile of command pulse ouput during
operation by this function. This function changes the maximum velocity
setting during operation.
v_stop:
This function is used to decelerate an axis to stop anytime.
82 Function Library
set_sd_stop_mode:
Select the motion actions for slow down only or slow down then stop
when SD pin is turned on
fix_max_speed:
This function is used to fix the speed resolution multiplier. The higher it is
set, the coarser speed step is performed but the higher acceleration rate
is obtained. Once it is set, the motion function will use this multiplier
setting instead. Notice that this value will not affect the maximum speed
of the motion command.
unfix_max_speed:
This function is used to unfix the speed resolution multiplier. Once it
is unfixed, all motion command will calculate a optimized multiplier
value according to the maximum speed setting in motion function.
verify_speed:
This function is used to get the minimum acceleration under a
maximum speed setting. This function will not affect any speed or
acceleration setting. It is only for offline checking.
_8134_set_sd_stop_mode:
Select the motion actions for slow down only or slow down then stop
when SD pin is turned on
@ Syntax
C/C++ (DOS, Windows)
U16 v_move(I16 axis, F64 str_vel, F64 max_vel, F64
Tacc)
U16 sv_move(I16 axis, F64 str_vel, F64 max_vel, F64
Tlacc, F64
Tsacc)
U16 v_change(I16 axis, F64 max_vel, F64 Tacc)
U16 v_stop(I16 axis, F64 Tdec)
U16 set_sd_stop_mode(I16 axis,I16 stop_mode)
U16 fix_max_speed(I16 axis, F64 max_vel)
U16 unfix_max_speed(I16 axis)
F64 verify_speed(F64 StrVel, F64 MaxVel, F64 *minAccT, F64
*maxAccT, F64 MaxSpeed)
I16 _8134_set_sd_stop_mode(I16 AxisNo, I16 sd_mode)
Visual Basic (Windows)
v_move (ByVal axis As Integer, ByVal str_vel As Double,
ByVal max_vel As Double, ByVal Tacc As Double) As
Integer
sv_move(I16 axis, F64 str_vel, F64 max_vel, F64 Tlacc,
F64 Tsacc) As Integer
v_change(I16 axis, F64 max_vel, F64 Tacc) As Integer
Function Library 83
6.6
@ Name
start_a_move Begin an absolute trapezoidal profile motion
start_r_move Begin a relative trapezoidal profile motion
start_t_move Begin a non-symmetrical relative trapezoidal profile
motion
start_ta_move Begin a non-symmetrical absolute trapezoidal profile
motion
84 Function Library
Integer) As Integer
@ Argument
axis: axis number designated to move.
pos: specified absolute position to move
distance or dist: specified relative distance to move
str_vel: starting velocity of a velocity profile in unit of pulse per second
max_vel: starting velocity of a velocity profile in unit of pulse per second
Tacc: specified acceleration time in unit of second
Tdec: specified deceleration time in unit of second Mode: 0=Manual
Mode(default), 1=Auto Mode
@ Return Code
ERR_NoError
ERR_MoveError
6.7
@ Name
start_s_move Begin a S-Curve profile motion
s_move Begin a S-Curve profile motion and wait for completion
start_rs_move Begin a relative S-Curve profile motion
rs_move Begin a relative S-Curve profile motion and wait for
completion
start_tas_move Begin a non-symmetrical absolute S-curve profile
motion
tas_move Begin a non-symmetrical absolute S-curve profile motion
and wait for completion
@ Description
start_s_move() :
This function causes the axis to accelerate from a starting velocity, slew
at constant velocity, and decelerate to stop at the specified absolute
position, immediately returning control to the program. The acceleration
rate is equal to the deceleration rate. s_move() starts an absolute
coordinate move and waits for completion.
start_rs_move() :
This function causes the axis to accelerate from a starting velocity, slew
at constant velocity, and decelerate to stop at the relative distance,
immediately returning control to the program. The acceleration rate is
equal to the deceleration rate. rs_move() starts a relative move and waits
for completion.
start_tas_move() :
This function causes the axis to accelerate from a starting velocity, slew
at constant velocity, and decelerate to stop at the specified absolute
position, immediately returning control to the program. tas_move() starts
an absolute coordinate move and waits for completion.
Function Library 87
@ Syntax
C/C++ (DOS, Windows)
U16 start_s_move(I16 axis, F64 pos, F64 str_vel, F64
max_vel, F64 Tlacc, F64 Tsacc)
U16 s_move(I16 axis, F64 pos, F64 str_vel, F64 max_vel,
F64 Tlacc, F64 Tsacc)
U16 start_rs_move(I16 axis, F64 distance, F64 str_vel,
F64 max_vel, F64 Tlacc, F64 Tsacc)
U16 rs_move(I16 axis, F64 distance, F64 str_vel, F64
max_vel, F64 Tlacc, F64 Tsacc)
U16 start_tas_move(I16 axis, F64 pos, F64 str_vel, F64
max_vel, F64 Tlacc, F64 Tsacc, F64 Tldec, F64 Tsdec)
U16 tas_move(I16 axis, F64 pos, F64 str_vel, F64
max_vel, F64 Tlacc, F64 Tsacc, F64 Tldec, F64 Tsdec)
Visual Basic (Windows)
start_s_move(ByVal axis As Integer, ByVal pos As
Double, ByVal str_vel As Double, ByVal max_vel As
Double, ByVal Tlacc As Double, ByVal Tsacc As
Double) As Integer
s_move(ByVal axis As Integer, ByVal pos As Double,
ByVal str_vel As Double, ByVal max_vel As Double
ByVal Tlacc As Double, ByVal Tsacc As Double) As
Integer
start_rs_move(ByVal axis As Integer, ByVal distance As
Double, ByVal str_vel As Double, ByVal max_vel As
Double, ByVal Tlacc As Double, ByVal Tsacc As
Double) As Integer rs_move(ByVal axis As Integer,
ByVal distance As Double, ByVal str_vel As Double,
ByVal max_vel As Double, ByVal Tlacc As Double,
ByVal
Tsacc
As
Double)
As
Integer
start_tas_move(ByVal axis As Integer, ByVal pos As
Double, ByVal str_vel As Double, ByVal max_vel As
Double, ByVal Tlacc As Double, ByVal Tsacc As
Double, ByVal Tldec As Double, ByVal Tsdec As
Double) As Integer
tas_move(ByVal axis As Integer, ByVal pos As Double
ByVal str_vel As Double, ByVal max_vel As Double
ByVal Tlacc As Double, ByVal Tsacc As Double, ByVal
Tldec As Double, ByVal Tsdec As Double) As Integer
@ Argument
axis: axis number designated to move.
pos: specified absolute position to move
distance or dist: specified relative distance to move
str_vel: starting velocity of a velocity profile in unit of pulse per second
max_vel: starting velocity of a velocity profile in unit of pulse per second
Tlacc: specified linear acceleration time in unit of second
Tsacc: specified S-curve acceleration time in unit of second
Tldec: specified linear deceleration time in unit of second
88 Function Library
6.8
@ Name
start_move_all Begin a multi-axis trapezoidal profile motion
move_all
Begin a multi-axis trapezoidal profile motion and wait
for completion
wait_for_all Wait for all axes to finish
start_sa_move_all Begin a multi-axis S-curve profile motion
move_all
Begin a multi-axis trapezoidal profile motion and wait for
completion
@ Description
start_move_all() :
This function causes the specified axes to accelerate from a starting
velocity, slew at constant velocity, and decelerate to stop at the specified
absolute position, immediately returning control to the program. The move
axes are specified by axes and the number of axes are defined by
n_axes. The acceleration rate of all axes is equal to the deceleration rate.
move_all() starts the motion and waits for completion. Both functions
guarantee that motion begins on all axes at the same sample time. Note
that it is necessary to make connections according to Section 3.12 on
CN4 if these two functions are needed.
wait_for_done() waits for the motion to complete for all of the specified
axes. start_sa_move_all() is similar to this function.
The following code demos how to utilize these functions. This code
moves axis 0 and axis 4 to position 8000.0 and 120000.0 respectively. If
we choose velocities and acelerations that are propotional to the ratio of
distances, then the axes will arrive at their endpoints at the same time
(simultaneous motion).
#include pci_8134.h
I16 axes [2] = {0, 4};
F64
positions[2] = {8000.0, 12000.0}; F64 str_vel[2]={0.0, 0.0};
F64 max_vel[2]={4000.0, 6000.0}; F64 Tacc[2]]={0.04, 0.06};
move_all(2, axes, positions, str_vel, max_vel, Tacc);
@ Syntax
C/C++ (DOS, Windows)
U16 start_move_all(I16 len, I16 *axes, F64 *pos, F64
*str_vel, F64 *max_vel, F64 *Tacc)
Function Library 89
U16
90 Function Library
6.9
@ Name
move_xy Perform a 2-axes linear interpolated motion between X &
and wait for finish
move_zu Perform a 2-axes linear interpolated motion between Z &
and wait for finish
start_move_xy Start a 2-axes linear interpolated motion between X
Y
start_move_zu Start a 2-axes linear interpolated motion between Z
U
Y
U
&
&
@ Descriptionmove_xy, move_zu:
These two functions cause a linear interpolation motion between two axes
and wait for completion. The moving speed should be set before
performing these functions. Relations of speed between two axes are
given in Chapter 4.1.4.
start_move_xy, start_move_zu:
These two functions cause a linear interpolation motion between two
axes without waiting for completion. After issuing this function, it will
start to move and leave the function at the same time.
@ Syntax
C/C++ (DOS, Windows)
U16 move_xy(I16 cardNo, F64 x, F64 y)
U16 move_zu(I16 cardNo, F64 z, F64 u)
U16 start_move_xy(I16 cardNo, F64 x, F64 y)
U16 start_move_zu(I16 cardNo, F64 z, F64 u)
Visual Basic (Windows)
move_xy (ByVal cardno As Long, ByVal x As Double,
ByVal y As Double) As Integer
move_zu (ByVal cardno As Long, ByVal z As Double,
ByVal u As Double) As Integer
start_move_xy (ByVal cardno As Long, ByVal x As Double,
ByVal yAs Double) As Integer
start_move_zu (ByVal cardno As Long, ByVal z As
Double, ByVal u As Double) As Integer
@ Argument
cardNo: card number designated to perform interpolating function.
x, y, z, u: absolute target position of linear interpolation motion
@ Return Code
ERR_NoError
Function Library 91
U16
Bit
0
1
2
3
4
5
6
7
8
9
10
11
Name
+EL
-EL
+SD
-SD
ORG
EZ
ALM
SVON
RDY
INT
ERC
INP
Description
Positive Limit Switch
Negative Limit Switch
Positive Slow Down Point
Negative Slow Down Point
Origin Switch
Index signal
Alarm Signal
SVON of PCL5023 pin output
RDY pin input
Interrupt status
ERC pin output
In-Position signal input
@ Syntax
C/C++ (DOS)
U16 _8134_Set_SVON(I16 axis, I16 on_off)
U16 get_io_status(I16 axis, U16 *io_status)
C/C++ (Windows)
U16 W_8134_Set_SVON(I16 axis, I16 on_off)
U16 get_io_status(I16 axis, U16 *io_status)
Visual Basic (Windows)
W_8134_Set_SVON (ByVal axis As Long, ByVal on_off As
Long) As Integer
get_io_status
(ByVal axis As Integer, io_sts As
Integer) As Integer
@ Argument
axis: axis number for I/O control and monitoring
on_off: setting for SVON pin digital output
on_off=0, SVON is LOW.
on_off=1, SVON is HIGH.
*io_status: I/O status word. Where 1 is ON and
0 is OFF. ON/OFF state is read based
on the corresponding set logic.
@ Return Code
ERR_NoError
Integer
_8134_get_target_pos
(ByVal axis As Integer, pos As
Double) As Integer
_8134_reset_target_pos (ByVal axis As Integer, ByVal
pos As Double) As Integer
@ Argument
axis: axis number designated to set and get position.
pos: actual position or command position
@ Return Code
ERR_NoError
Interrupt Factor
Stop with the EL signal
Stop with the SD signal
Stop with the ALM signal
Stop with the STP signal
Should be set to 0
Completion of home return
6
7
8~12
13
14
15
16
17
18~22
23
24~31
Note: Bit 14: The interrupt is generated when pins EA and EB, or PA and PB
change simultaneously. It means there has an encoder input error.
get_int_axis:
This function allows user to identify which axis generates the INT signal to
host PC. (DOS only)
get_int_status:
This function allows user to identify what kinds of interrupt is generated.
After user gets this value, the status register will be cleared to 0. The
return value is a 32 bits unsigned integer and the definition for each bit is
as following:
Bit
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Interrupt Type
Stop with the +EL signal
Stop with the EL signal
Stop with the +SD signal
Stop with the SD signal
Stop with the ALM signal
Stop with the STP signal
Always 0
Always 0
Stop with v_stop() command
Stop with home return completed
Always 0
Stop with preset movement completed
Stop with EA/EB input error
Always 0
Stop with PA/PB input error
Function Library 101
15
16
17
18 22
Always 0
23
24~31
link_axis_interrupt:
This function is used to create a callback function in Windows for
interrupt signal receiving. Once the interrupt comes, the callback
function will be called too.
@ Syntax
C/C++ (DOS)
U16 _8134_Set_INT_ENABLE(U16 cardNo, U16 intFlag)
U16 set_int_factor(U16 axis, U32 int_factor)
U16 get_int_axis(U16 *int_axis)
U16 get_int_status(U16 axis, U32 *int_status)
C/C++ (Windows)
U16 W_8134_INT_Enable (I16 cardNo, HANDLE *phEvent)
U16 W_8134_INT_Disable (I16 cardNo)
void W_8134_Set_INT_Control(U16 cardNo, U16 intFlag)
U16 set_int_factor(U16 axis, U32 int_factor)
U16 get_int_status(I16 axis, U32 *int_status)
Additional
Function
(8134A.DLL)
Library
This chapter describes the another supporting software for PCI-8134 cards.
It is called 8134A.LIB and 8134A.DLL. Notice that this function library cant
not be mixed to use with chapter 6, 8134.DLL. Users can use these
functions to develop their application programs in C or Visual Basic or C++
language.
7.1
List of Functions
Section 7.3
Initialization
_8134_initial
_8134_close
_8134_config_from_file
_8134_get_irq_channel
_8134_get_base_addr
_8134_version_info
Card initialization
Card Close
Configure card according to Motion Creators
setting
Get IRQ channel
Get Base Address
Get cards hardware and software/driver version
Section 7.4
Section 7.5
_8134_sv_move
_8134_v_change
_8134_sd_stop
_8134_emg_stop
_8134_set_sd
_8134_fix_speed_range
_8134_unfix_speed_range
_8134_get_current_speed
_8134_verify_speed
Section 7.7
Start an absolute S-curve profile move
Start a relative S-curve profile move
Section 7.8
Section 7.9
_8134_set_pulser_iptmode
_8134_pulser_v_move
Motion Status
_8134_motion_done
Section 7.12
Check if the axis is in motion
Section 7.13
Set alarm logic and alarm mode
Set In-Position logic and enable/disable
Set the ERC output enable/disable
Section 7.14
Section 7.15
Set current position counter value
Get current position counter value
Set current command target value
Get current command target value
Get current error counter value
Reset error counter value
Set feedback error detect value
Interrupt Control
8134 int enable
_8134_int_disable
_8134_int_control
_8134_set_int_factor
_8134_get_int_status
_8134_link_axis_interrupt
7.2
Section 7.16
Set Interrupt Event enable
Set Interrupt Event enable
Enable/Disable IRQ channel
Set Interrupt generationg factors
Get the interrupting status of axis
Link a callback function for interrupt
This section gives the details of all the functions. The function prototypes and
some common data types are decelerated in PCI-8134.H. These data types are
used by PCI-8134 library. We suggest you to use these data types in your
application programs. The following table shows the data type names and their
range.
Type Name
Description
U8
8-bit ASCII character
I16
16-bit signed integer
106 Additional Function Library
Range
0 to 255
-32768 to 32767
U16
I32
U32
0 to 65535
-2147483648 to 2147483647
0 to 4294967295
7.3
Initialization
@ Name
_8134_initial Card Initialization
_8134_close Card Close
_8134_config_from_file Configure Card according to Motion
Creators save file
_8134_get_irq_channel Get the cards IRQ number
_8134_get_base_addr Get the cards base address
_8134_version_info Get the cards version information
@ Description
_8134_initial:
This function is used to initialize PCI-8134 card. It has to be
initialized by this function before calling other functions.
_8134_close:
This function must be called before the program ends.
_8134_config_from_file:
This function is used to configure PCI-8134 card. All the I/O
configurations and some operating modes appeared on Axis
Configuration Window of Motion Creator will be set to PCI-8134.
Click Save Configuration button on the Axis Configuration
Window if you want to use this function in the application program.
Click Save Configuration button will save all the configurations to a
file call 8134.cfg. This file will appear in the Windows system
directory.
_8134_get_irq_channel:
This function is used to get the PCI-8134 cards IRQ number.
_8134_get_base_addr:
This function is used to get the PCI-8134 cards base address.
_8134_version_info:
This function is used to get the PCI-8134 cards version information
including hardware, software and device driver.
@ Syntax
Additional Function Library 107
C/C++ (DOS,Windows)
I16 _8134_initial(I16 *existCards)
I16 _8134_close(void)
I16 _8134_config_from_file(U8 *fileName)
I16 _8134_get_irq_channel(I16 cardNo, U16 *irq_no )
I16 _8134_get_base_addr(I16 cardNo, U16 *base_addr)
I16 _8134_version_info(I16 CardNo, U16 *HardwareInfo, I32
*SoftwareInfo, I32 *DriverInfo)
Visual Basic (Windows)
B_8134_initial (existCards As Integer) As Integer
B_8134_close () As Integer
B_8134_config_from_file (ByVal fileName As String) As Integer
B_8134_get_irq_channel (ByVal cardno As Integer, irq_no As
Integer) As Integer
B_8134_get_base_addr (ByVal cardno As Integer, base_addr As
Integer) As Integer
B_8134_version_info (ByVal CardNo As Integer, HardwareInfo As
Integer, SoftwareInfo As Long, DriverInfo As Long)
@ Argument
existCards: numbers of existing PCI-8134 cards
cardNo: The PCI-8134 card index number.
filename: A configuration file from MotionCreator
irq_no: The cards IRQ channel number
base_addr:
The
cards
base
address
HardwareInfo:
0x1000
in
heximal
SoftwareInfo: Format=OS/YY/MM/DD in decimal
OS=00, Win32
OS=12, WinCE
OS=24,
DOS
OS=36, DOSExt
OS=48, Linux
DriverInfor: The same with SoftwareInfo
@ Return Code ERR_NoError
ERR_BoardNoInit
ERR_PCIBiosNotExist
7.4
@ Description
_8134_set_pls_outmode:
Configure the output modes of command pulse. There are two
modes for command pulse output.
_8134_set_pls_iptmode:
Configure the input modes of external feedback pulse. There are
four types for feedback pulse input. Note that this function makes
sense only when using external feedback counter source.
_8134_set_feedback_src:
If external encoder feedback is available in the system, set the src
parameter in this function to Enabled state. Then internal 28-bit
up/down counter will count according configuration of
_8134_set_pls_iptmode() function. Or the counter will count the
command pulse output.
@ Syntax
C/C++ (DOS, Windows)
I16 _8134_set_pls_outmode(I16 axis, I16 pls_outmode)
I16 _8134_set_pls_iptmode(I16 axis, I16 pls_iptmode)
I16 _8134_set_cnt_src(I16 axis, I16 src)
Visual Basic (Windows)
B_8134_set_pls_outmode (ByVal axis As Long, ByVal
pls_outmode As Long) As Integer
B_8134_set_pls_iptmode (ByVal axis As Long, ByVal pls_iptmode
As Long) As Integer
B_8134_set_feedback_src (ByVal axis As Long, ByVal src As Long)
As Integer
@ Argument
axis:axis number designated to configure pulse
Input/Output.
pls_outmode: setting of command pulse output mode
for OUT and DIR pins.
pls_outmode=0, OUT/DIR type pulse output.
pls_outmode=1, CW/CCW type pulse output.
pls_iptmode: setting of encoder feedback pulse
input
mode
for
EA
and
EB
pins.
pls_iptmode=0, 1X AB phase type pulse input.
pls_iptmode=1, 2X AB phase type pulse input.
pls_iptmode=2, 4X AB phase type pulse input.
pls_iptmode=3, CW/CCW type pulse input.
src: Feedback Counter source
cnt_src=0, counter source from command pulse
cnt_src=1, counter source from external input
EA, EB
@ Return Code
ERR_NoError
Additional Function Library 109
7.5
second
Tacc: specified
second
Tdec: specified
second
acceleration
time
in
unit
of
deceleration
time
in
unit
of
7.6
7.7
@ Syntax
C/C++ (DOS, Windows)
I16 _8134_start_sa_move(I16 axis, F64 pos, F64 str_vel, F64
max_vel, F64 Tacc, F64 Tdec, F64 SVacc, F64 SVdec)
I16 _8134_start_sr_move(I16 axis, F64 distance, F64 str_vel, F64
max_vel, F64 Tacc, F64 Tdec, F64 SVdec, F64 SVacc)
Visual Basic (Windows)
B_8134_start_sr_move(ByVal axis As Integer, ByVal pos As
Double, ByVal str_vel As Double, ByVal max_vel As Double,
ByVal Tacc As Double, ByVal Tdec As Double, ByVal SVacc
As Double, ByVal SVdec As Double) As Integer
B_8134_start_sa_move(ByVal axis As Integer, ByVal pos As
Double ByVal str_vel As Double, ByVal max_vel As Double
ByVal Tacc As Double, ByVal Tdec As Double, ByVal SVacc
As Double, ByVal SVdec As Double) As Integer
@ Argument
axis: axis number designated to move. pos:
specified absolute position to move distance:
specified relative distance to move
str_vel: starting velocity of a velocity profile in unit of pulse per
second
max_vel: starting velocity of a velocity profile in unit of pulse per
second
Tacc: specified total acceleration time in unit of second
Tdec: specified total deceleration time in unit of second
SVacc: specified S-curve acceleration range in unit of pps, default is
0
SVdec: specified S-curve deceleration range in unit of pps, default is
0
@ Return Code
ERR_NoError
ERR_MoveError
7.8
7.9
Return
Code
ERR_NoError
ERR_MoveError
2-axis
linear
@ Description
_8134_start_move_%%_xy, _8134_start_move_%%_zu:
These functions cause a linear interpolation motion between two
axes without waiting for completion. After issuing this function, it will
start to move and leave the function at the same time. Note that xy
means the first two axes of one card and zu means the last two axes
of one card. %% means speed profile combinations.
@ Syntax
C/C++ (DOS, Windows)
I16 _8134_start_tr_move_xy(I16 CardNo, F64 DistX, F64 DistY,
F64 StrVel, F64 MaxVel, F64 Tacc, F64 Tdec);
I16 _8134_start_ta_move_xy(I16 CardNo, F64 PosX, F64 PosY,
F64 StrVel, F64 MaxVel, F64 Tacc, F64 Tdec);
I16 _8134_start_sr_move_xy(I16 CardNo, F64 DistX, F64 DistY,
F64 StrVel, F64 MaxVel, F64 Tacc, F64 Tdec, F64 SVacc, F64
SVdec);
I16 _8134_start_sa_move_xy(I16 CardNo, F64 PosX, F64 PosY,
F64 StrVel, F64 MaxVel, F64 Tacc, F64 Tdec, F64 SVacc, F64
SVdec);
I16 _8134_start_tr_move_zu(I16 CardNo, F64 DistX, F64 DistY,
F64 StrVel, F64 MaxVel, F64 Tacc, F64 Tdec);
I16 _8134_start_ta_move_zu(I16 CardNo, F64 PosX, F64 PosY,
F64 StrVel, F64 MaxVel, F64 Tacc, F64 Tdec);
I16 _8134_start_sr_move_zu(I16 CardNo, F64 DistX, F64 DistY,
F64 StrVel, F64 MaxVel, F64 Tacc, F64 Tdec, F64 SVacc, F64
SVdec);
I16 _8134_start_sa_move_zu(I16 CardNo, F64 PosX, F64 PosY,
F64 StrVel, F64 MaxVel, F64 Tacc, F64 Tdec, F64 SVacc, F64
SVdec);
Visual Basic (Windows)
B_8134_start_tr_move_xy (ByVal CardNo As Integer, ByVal Dist
As Double, ByVal Dist As Double, ByVal StrVel As Double,
ByVal MaxVel As Double, ByVal Tacc As Double, ByVal Tdec
As Double) As Integer
B_8134_start_ta_move_xy (ByVal CardNo As Integer, ByVal Pos
As Double, ByVal Pos As Double, ByVal StrVel As Double,
ByVal MaxVel As Double, ByVal Tacc As Double, ByVal Tdec
As Double) As Integer
B_8134_start_sr_move_xy (ByVal CardNo As Integer, ByVal Dist
As Double, ByVal Dist As Double, ByVal StrVel As Double,
ByVal MaxVel As Double, ByVal Tacc As Double, ByVal Tdec
As Double, ByVal SVacc As Double, ByVal SVdec As Double)
As Integer
Additional Function Library 117
From the above figure, Ch1 is the input signal of the pulsers, and
Ch2 is the relative output signal from OUT and DIR pins. Obviously,
the output signal frequency satisfies the relationship,
FP(=1.978Hz) < fH(=40Hz)/[(5+1)2].
2. Dissatisfication of fP<fH/[(n+1)m]
_8134_set_pulser_iptmode(0,1,0); // set pulser input mode
_8134_set_pulser_ratio(0,15); // set pulser ratio
_8134_pulser_vmove(0,40);
3. Dissatisfication of fP<fH/[(n+1)m]
_8134_set_pulser_iptmode(0,1,0); // set pulser input mode
_8134_set_pulser_ratio(0,5); // set pulser ratio
_8134_pulser_vmove(0,20);
5: In Decelerating
6: In Start Speed
7: Waiting other axes
The following code demonstrates how to utilize this function:
// Begin a trapezoidal velocity profile motion
_8134_start_ta_move(axis_x, pos1, svel, mvel, Tacc,Tdec);
//
Wait
for
completion
while(motion_done(axis_x) !=0) ;
If the axis is running under home mode 4~7, this function will return
the homing phase. Please refer to Appendix A for details.
@ Syntax
C/C++ (DOS, Windows)
I16 _8134_motion_done(I16 axis)
Visual Basic (Windows)
B_8134_motion_done (ByVal axis As Integer) As Integer
@ Argument
axis: axis number of motion status
@ Return Code
ERR_NoError
Bit
0
1
2
3
4
5
6
7
8
9
10
11
Name
+EL
-EL
+SD
-SD
ORG
EZ
ALM
SVON
RDY
INT
ERC
INP
Description
Positive Limit Switch
Negative Limit Switch
Positive Slow Down Point
Negative Slow Down Point
Origin Switch
Index signal
Alarm Signal
SVON of PCL5023 pin output
RDY pin input
Interrupt status
ERC pin output
In-Position signal input
@ Syntax
C/C++ (DOS,Windows)
I16 _8134_set_servo(I16 axis, I16 on_off)
I16 _8134_get_io_status(I16 axis, U16 *io_status)
Visual Basic (Windows)
B_8134_set_servo (ByVal axis As Integer, ByVal on_off As Integer)
As Integer
B_8134_get_io_status (ByVal axis As Integer, io_sts As Integer)
As Integer
@ Argument
axis: axis number for I/O control and monitoring
on_off: setting for SVON pin digital output
on_off=0, SVON is LOW.
on_off=1, SVON is HIGH.
*io_status: I/O status word. Where 1 is ON and 0
is OFF. ON/OFF state is read based on the
corresponding set logic.
@ Return Code
ERR_NoError
@ Description
_8134_set_position:
Changes the current actual position to the specified position.
_8134_get_position:
Reads the current actual position. Note that when feedback signals
is not available in the system, thus external encoder feedback is
Disabled in _8134_set_feedback_src() function, the value gotten
from this function is command position.
_8134_set_command:
Changes the command position to the specified command position.
The command position is the target position of this command, not
the current command position counters value.
_8134_get_command:
Reads the current command position.
The command position is the target position of this command, not
the current command position counters value.
_8134_get_error_counter:
Read the error counter value which is calculated from command and
feedback counter.
_8134_reset_error_counter:
Reset the error counter value to 0.
_8134_set_feedback_error_detect:
Set the error counter detect value. if the error counter is greater than
this value, the out-of-step interrupt will be issued.
@ Syntax
C/C++ (DOS, Windows)
I16 _8134_set_position(I16 axis, F64 pos)
I16 _8134_get_position(I16 axis, F64 *pos)
I16 _8134_set_command(I16 axis, F64 cmd)
I16 _8134_get_command(I16 axis, F64 *cmd)
I16 _8134_get_error_counter(I16 axis, I16 *error_c)
I16 _8134_reset_error_counter(I16 axis)
I16 _8134_set_error_feedback_detect(I16 axis, I32 max_error)
Visual Basic (Windows)
B_8134_get_position (ByVal axis As Integer, pos As Double) As
Integer
B_8134_set_position (ByVal axis As Integer, ByVal pos As Double)
As Integer
B_8134_get_command (ByVal axis As Integer, cmd As Double) As
Integer
B_8134_set_command (ByVal axis As Integer, ByVal cmd As
Double) As Integer
B_8134_get_error_counter(ByVal axis As Integer, error_c As
Integer) As Integer
B_8134_reset_error_counter(ByVal axis As Integer) As Integer
B _8134_set_error_feedback_detect(ByVal axis As Integer, ByVal
Additional Function Library 127
Interrupt Factor
Stop with the EL signal
Stop with the SD signal
Stop with the ALM signal
Stop with the STP signal
Should be set to 0
Completion of home return
Completion of preset movement (PTP move)
8~12
13
14
15
16
17
18~22
23
24~31
Should be set to 0
When stop function stop the axis
EA/EB, PA/PB encoder input error
start with STA signal
Completion of acceleration
Start of deceleration
Should be Set to 0
RDY active (AP3 of PCL5023 change from 1 to 0)
Should be set to 0
Note: Bit 14: The interrupt is generated when pins EA and EB, or PA
and PB change simultaneously. It means there has an encoder
input error.
_8134_get_int_axis:
This function allows user to identify which axis generates the INT
signal to host PC. (DOS only)
_8134_get_int_status:
This function allows user to identify what kinds of interrupt is
generated.
After user gets this value, the status register will be cleared to 0. The
return value is a 32 bits unsigned integer and the definition for each
bit is as following:
Bit
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 22
Interrupt Type
Stop with the +EL signal
Stop with the EL signal
Stop with the +SD signal
Stop with the SD signal
Stop with the ALM signal
Stop with the STP signal
Always 0
Always 0
Stop with v_stop() command
Stop with home return completed
Always 0
Stop with preset move completed (PTP move)
Stop with EA/EB input error
Always 0
Stop with PA/PB input error
Start with STA signal
Acceleration Completed
Deceleration Started
Always 0
Additional Function Library 129
23
24~31
_8134_link_axis_interrupt:
This function is used to create a callback function in Windows for
interrupt signal receiving. Once the interrupt comes, the callback
function will be called too.
@ Syntax
C/C++ (DOS,Windows)
I16 _8134_get_int_axis(U16 *int_axis) (DOS only)
I16 _8134_int_enable (I16 cardNo, HANDLE *phEvent)
I16 _8134_int_disable (I16 cardNo)
I16 _8134_int_control(I16 cardNo, I16 intFlag)
I16 _8134_set_int_factor(I16 axis, U32 int_factor)
I16 _8134_get_int_status(I16 axis, U32 *int_status)
I16 _8134_link_axis_interrupt(I16 AxisNo, void ( _stdcall
*callbackAddr)(void))
Visual Basic (Windows)
B_8134_int_enable (ByVal cardNo As Integer, phEvent As Long)
B_8134_int_disable (ByVal cardNo As Integer) As Integer
B_8134_int_control (ByVal cardno As Integer, ByVal intFlag As
Integer)
B_8134_set_int_factor (ByVal axis As Integer, ByVal int_factor As
Long) As Integer
B_8134_get_int_status (ByVal axis As Integer, int_status As Long)
As Integer
Connection Example
This chapter shows some connection examples between PCI-8134/PCI-8134A
and servo drivers and stepping drivers.
8.1
CN2:
CN3:
CN4:
PCI-8134/PCI-8134A
CN 1
POWER
24 V
GND
2
CN 2
AXIS
From external
Power Supply
OUT1 +
OUT1 -
DIR +
Pulse
Output
DIR -
Machine
DI / DO
98
EX GND
Pulse
Input
99
EX +24V
Driver
DI / DO
SVON 1
Pulse
Output
ERC 1
Machine
DI / DO
ALM 1
10
INP 1
Pulse
Input
To Axis
1~4
Driver
DI / DO
11
RDY 1
Pulse
Output
12
EX GND
13
EA1 +
Machine
DI / DO
Pulse
Input
Only Axis 1
is indicated.
14
EA1 -
Driver
DI / DO
15
EB1 +
Pulse
Output
16
EB1 -
Machine
DI / DO
17
EZ1 +
Pulse
Input
18
EZ1 -
Driver
DI / DO
CN 3
MPG
PA
PB
GND
From Manual
Pulse Generator
CN 4
START
STP
STA
STP
STA
To other
PCI-8134/PCI-8134A
Cards
19
EX +5V
20
EX GND
37
PEL1
38
MEL1
39
PSD1
40
MSD1
41
ORG1
OUT1 +
OUT1 DIR +
DIR EX GND
EX +24V
SVON 1
ERC 1
ALM 1
INP 1
RDY 1
EX GND
EA1 +
EA1 EB1 +
EB1 EZ1 +
EZ1 EX +5V
EX GND
PEL1
MEL1
PSD1
MSD1
ORG1
24 V
GND
CN 1
POWER
Pulse
Output
Machine
DI / DO
Pulse
Input
CN 2
AXIS
Driver
DI / DO
2
3
4
Motion
Creator
8134.dll
Win2000/WinXP/Win7
Driver with
Pulse Input
M
B
Linear Encoder with EA/EB/EZ Output
PCI_8134/PCI-8134A to Driver
Encoder to PCI_8134/PCI8134A
Rotary Encoder
Linear Encoder
8.2
1. For convenience sake, the drawing shows connections for one axis only.
2. Default pulse output mode is OUT/DIR mode; default input mode is 4X
AB phase mode. Anyway, user can set to other mode by software
function.
3. Since most general purpose servomotor driver can operates in Torque
Mode; Velocity Mode; Position mode. For linking with PCI-8134/PCI8134A, user should set the operating mode to Position Mode. By setting
servo driver to this mode, user can use PCI-8134/PCI-8134A to perform
either Position Control or Velocity Control.
4. The Deviation Counter Clear input for Panasonic Drive is line drive type
where ERC output of PCI-8134/PCI-8134A is open collector type. So a
little circuit is required for interfacing.
Inside PCI-8134/PCI-8134A
EX+5
390
2.2K
26LS3
ER
CL+
CL2.2K
EXGN
Servo Driver
OUT1 +
OUT1 DIR +
DIR EX GND
EX +24V
SVON 1
ERC 1
ALM 1
INP 1
RDY 1
EX GND
EA1 +
EA1 EB1 +
EB1 EZ1 +
EZ1 EX +5V
EX GND
PEL1
MEL1
PSD1
MSD1
ORG1
PULS +
PULS SIGN +
SIGN COM COM +
SRV-ON
CL
ALM
COIN
SRDY
GND
OA +
OA OB +
OB OZ +
OZ -
6
5
8
7
28
11
12
13
26
25
27
3
19
20
21
22
1
2
Panasonic
MSC CNI/F
(50-200 W)
Table
MEL
OR
G
MSD
PS
D
PEL
8.3
Note:
1.
The DIN-814M provides 2 connection methods for every axis. The first
is through the CNA & CNB connectors. This is for Mitsubishi J2S series
servo driver. The second is through SJ connector. This is for stepping
driver or other servo drivers (for Panasonic MINAS MSD driver, please
use DIN-814P). Keep in mind that the signals in SJ and CNA & CNB of
4th Axis
To Mitsubishi
J2S Driver
GND
+24V
3rd Axis
To Mitsubishi
J2S Driver
CNA-(4)
CNB-(4)
B
CNB-(3)
CN1
HD-(4)
Mechanical I/O
Interface
HD-(3)
IOIF-(4)
IOIF-(3)
LED indecater
To
PCI-8134/8164
IOIF-(2)
A
IOIF-(1)
To stepping
driver
J1~J4
HD-(1)
CNA-(1)
CNB-(1)
CNB-(2)
1st Axis
To Mitsubishi
J2S Driver
2.
HD-(2)
2nd Axis
To Mitsubishi J2S
Driver
the same axis are directly shorted. DO NOT use both connectors at the
same time.
Two one-to-one 20-PIN cables are required for connection between the
CNA & CNB and the Mitsubishi J2S driver. It is available from ADLINK,
or users may contact the local dealer or distributor to get cable
information.
3.
4.
Mechanical Dimensions:
PIN
Assignment:
CNA1~CN
A4
No.
1
3
5
7
9
11
13
15
17
19
Name
IGND
OUT+
EZ+
EB+
+24V
I/O
-O
I
I
O
Function
Isolated Ground
Pulse Signal (+)
Encoder Z-phase (+)
Encoder B-phase (+)
Voltage output
OUTEZEBRDY
O
I
I
I
No.
2
4
6
8
10
12
14
16
18
20
Name
DIR+
I/O
O
Function
Direction Signal (+)
EA+
ERC
IGND
DIR-
I
O
-O
EAINP
IGND
I
I
--
Name
I/O
Function
IGND
--
Isolated Ground
IGND
ALM
IGND
-I
--
Isolated Ground
Servo Alarm
Isolated Ground
CNB1~CNB4
No.
1
3
5
7
9
11
13
15
17
19
Name
IGND
I/O
--
Function
Isolated Ground
Servo ON
Servo On
+24V
EMG
IGND
O
I
--
Voltage output
Internal EMG Signal
Isolated Ground
No.
2
4
6
8
10
12
14
16
18
20
IOIF1~IOIF4
No.
1
2
3
4
5
Name
+24V
EX_EMG
PEL
MEL
PSD
I/O
O
I
I
I
I
Function
No.
Voltage output
6
External EMG Signal
7
Positive Limit (+)
8
Negative Limit (-)
9
Positive Slow Switch (+)
Name
MSD
ORG
IGND
IGND
I/O
I
I
---
Function
Negative Slow Switch (+)
SJ1~SJ4
No.
1
2
3
4
5
Name
OUT+
OUTDIR+
DIREZ+
I/O
O
O
O
O
I
Function
Pulse Signal (+)
Pulse Signal (-)
Direction Signal (+)
Direction Signal (-)
Index Signal
No.
6
7
8
9
10
Name
ALM
+5V
Servo ON
+5V
IGND
I/O
I
O
O
O
--
Function
Servo Alarm
Voltage output
Servo On
Voltage output
Isolated Ground
CN1
No.
1
2
Name
EX+24V
EXGND
I/O
I
--
Function
External Power Supply Input (+24V DC 5%)
External Power Supply Ground.
HD1~HD4
No.
1
Name
+24V
I/O
O
Function
Voltage output
No.
4
Name
EX_EMG
I/O
I
Function
External EMG Signal
2
3
Servo ON
RDY
O
I
Servo On
Servo Ready
5
6
ALM
IGND
I
--
Servo Alarm
Isolated Ground
Jumper
J1~J4
1: GND
2: EMG4
3: EX_EMG
How to
wire
PEL, MEL, ORG, SD, PSD, MSD, Ext.EMG (in IOIF):
8.4
CN
1
LED indecater
CNIF-(4)
IOIF-(4)
CNIF-(3)
GND
+24V
To Panasonic
Driver - CN1
3rd Axis
To Panasonic
Driver - CN1
IOIF-(3)
IOIF-(2)
IOIF-(1)
1st Axis
To Panasonic
Driver - CN1
CNIF-(2)
To
PCI-8134/8164
2nd Axis To
Panasonic
Driver - CN1
CNIF-(1)
Mechanical I/O
Interface
Note:
1.
2.
The DIN-814P provides 2 connection methods for every axis. The first
is through the CNIF connector for the Panasonic MINAS MSD series
servo driver. The second is through SJ connector for stepping drivers
or other servo drivers (for the Mitsubishi J2S driver, please use DIN814M). Keep in mind that the signals in SJ and CNIF of the same axis
are directly shorted. DO NOT use both connectors at the same time.
A one-to-one 36-PIN cable is required to connect between the CNIF
and the Panasonic MINAS MSD driver. It is available from ADLINK, or
users may contact a local dealer or distributor to get cable information.
Mechanical Dimensions:
PIN Assignment:
CNIF1~CNIF4
No.
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
Name
EZ+
IGND
OUT+
DIR+
IGND
+24V
ERC
IGND
I/O
I
-O
O
-O
O
--
Function
Encoder Z-phase (+)
Isolated Ground
Pulse Signal (+)
Direction Signal (+)
Isolated Ground
Voltage output
Error counter Clear
Isolated Ground
EA+
EB+
I
I
INP
RDY
I
I
Servo In Position
Servo Ready
No.
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
Name
EZ-
I/O Function
I
Encoder Z-phase (-)
OUTDIR-
O
O
Servo ON
Servo On
EAEB-
I
I
ALM
IGND
I
--
Servo Alarm
Isolated Ground
IOIF1~IOIF4
No.
1
2
3
4
5
Name
+24V
+24V
PEL
MEL
PSD
I/O
O
O
I
I
I
Function
Voltage output
Voltage output
Positive Limit (+)
Negative Limit (-)
Positive Slow Switch (+)
No.
6
7
8
9
Name
MSD
ORG
IGND
IGND
I/O Function
I
Negative Slow Switch (+)
I
---
I/O
O
O
O
O
I
Function
Pulse Signal (+)
Pulse Signal (-)
Direction Signal (+)
Direction Signal (-)
Index Signal
No
6
7
8
9
10
Name
ALM
+5V
Servo ON
+5V
IGND
SJ1~SJ4
No.
1
2
3
4
5
Name
OUT+
OUTDIR+
DIREZ+
I/O
I
O
O
O
--
Function
Servo Alarm
Voltage output
Servo On
Voltage output
Isolated Ground
CN1
No.
1
2
Name
EX+24V
EXGND
I/O
I
--
Function
External Power Supply Input (+24V DC 5%)
External Power Supply Ground
145 Appendix A
8.5
Appendix A 146
EL
Reset
Case 1
Case 2
Case 3
ORG Offset
147 Appendix A
Reset
ORG
EZ
EL
Reset
Reset
Case 1
Case 2
Case 3
ORG Offset
Reset
Appendix A 148
EZ
EL
Case 1
Reset
Reset
Case 1
Reset
Case 2
Case 3
Reset
149 Appendix A
ORG
EZ
EL
Reset
Case 1
Reset
Case 2
Reset
Case 3
Appendix A 150
151 Appendix A
Reset
Reset
Case 1
Reset
Case 2
Case 3
ORG Offset
Reset
Appendix A 152
ORG
EZ
EL
Reset
Case 1
Reset
Case 2
Reset
Case 3
153 Appendix B
Appendix A 154
155 Appendix B
Real Case:
Hardware Recognized ( Motion Stop Active)
Switch
Active
Level
Users Software Check ( IO Status not active)
Time
Stable Time
Appendix A 156
Appendix
8134A.DLL
B:
8134.DLL
vs.
PCI8134a.h (8134a.lib)
(1)
I16 _8134_initial(I16 *existCards);
(1)
U16 W_8134_Close(I32
card_number);
I16 _8134_close(void);
U16 W_8134_Set_Config(U8
*fileName);
I16 _8134_config_from_file(U8
*fileName);
Void
W_8134_Get_IRQ_Chann
el(U16 cardNo, U16
*irq_no );
void W_8134_Get_Base_Addr(U16
cardNo, U16
*base_addr );
157 Appendix B
PCI8134a.h (8134a.lib)
I16 _8134_set_pls_outmode(I16
AxisNo, I16 pls_outmode);
I16 _8134_set_feedback_src(I16
(3)
AxisNo, I16 src);
PCI8134a.h (8134a.lib)
I16 _8134_set_sd_stop_mode(I16
AxisNo, I16 sd_mode);
I16 _8134_unfix_speed_range(I16
(3)
AxisNo);
I16 _8134_get_current_speed(I16
AxisNo, F64 *speed);
F64 _8134_verify_speed(F64
StrVel,F64 MaxVel,F64
*minAccT,F64 *maxAccT, F64
MaxSpeed);
PCI8134a.h (8134a.lib)
Appendix B 158
Obsolete
Obsolete
Obsolete
Obsolete
PCI8134a.h (8134a.lib)
Obsolete
159 Appendix B
Tsacc);
U16
rs_move(I16
axis,
F64
distance, F64 str_vel, F64
max_vel, F64 Tlacc, F64
Tsacc);
Obsolete
PCI8134a.h (8134a.lib)
Obsolete
Obsolete
PCI8134a.h (8134a.lib)
I16 _8134_start_ta_move_xy(I16
CardNo, F64 PosX, F64 PosY,
Appendix B 160
PCI8134a.h (8134a.lib)
Obsolete
Obsolete
Obsolete
PCI8134a.h (8134a.lib)
I16 _8134_set_home_config(I16
AxisNo, I16 home_mode, I16
org_logic, I16 ez_logic, I16
(1)
ez_count, I16 erc_out);
U16
home_move(I32 axis,F64
str_vel,F64 max_vel,F64
accel);
PCI8134a.h (8134a.lib)
I16 _8134_set_pulser_iptmode(I16
AxisNo, I16 InputMode, I16
(1)(3)
Indep_Com);
I16 _8134_pulser_vmove(I16
(3)
AxisNo,F64 SpeedLimit);
161 Appendix B
PCI8134a.h (8134a.lib)
PCI8134a.h (8134a.lib)
U16
U16
PCI8134a.h (8134a.lib)
PCI8134a.h (8134a.lib)
Appendix B 162
PCI8134.h (8134.lib)
PCI8134a.h (8134a.lib)
U16 W_8134_INT_Enable(I32
card_number);
I16 _8134_int_enable(I16
CardNo,HANDLE *phEvent);
U16 W_8134_INT_Disable(I32
card_number);
Void
W_8134_Set_INT_Control
(U16 cardNo, U16
intFlag );
U16 set_int_factor(U16 axis, U32
int_factor);
I16 link_axis_interrupt(I16
AxisNo,void ( stdcall
*callbackAddr)( void ));
I16 _8134_link_axis_interrupt(I16
AxisNo,void ( stdcall
*callbackAddr)( void ));
163 Appendix B
PCI8134a.h (8134a.lib)
Note:
(1) The input arguments have been changed.
(2) The arguments in motion commands are different from last library. Users
have to pay more attention to the mapping relations. The acceleration
and deceleration arguments in s-curve motion command are changed a
lot. The old ones use Tlacc, Tldec, Tsacc, and Tsdec as input arguments.
However, the motion commands in new library adopt Tacc, SVacc, Tdec,
and SVdec as input arguments.
VM
SVacc
SVacc
Vs
Tacc
(3) The library name has been changed entirely, but its function is the same
with the old one.
(4) The motion commands in left side are simplified to the ones in the right
side.
New Functions in PCI8134a.h (8134a.lib)
I16 _8134_set_org_latch(I16 AxisNo, I16 org_latch);
I16 _8134_start_move_all(I16 FirstAxisNo);
I16 _8134_stop_move_all(I16 FirstAxisNo);
I16 _8134_set_sync_option(I16 AxisNo, I16 sync_stop_on, I16
Appendix B 164
cstop_output_on);
I16 _8134_set_tr_move_all(I16 TotalAx, I16 *AxisArray, F64 *DistA,
F64 *StrVelA, F64 *MaxVelA, F64 *TaccA, F64 *TdecA);
I16 _8134_set_ta_move_all(I16 TotalAx, I16 *AxisArray, F64 *PosA,
F64 *StrVelA, F64 *MaxVelA, F64 *TaccA, F64 *TdecA);
I16 _8134_set_sr_move_all(I16 TotalAx, I16 *AxisArray, F64 *DistA,
F64 *StrVelA, F64 *MaxVelA, F64 *TaccA, F64 *TdecA, F64
*SVaccA, F64 *SVdecA);
I16 _8134_set_sa_move_all(I16 TotalAx, I16 *AxisArray, F64 *PosA,
F64 *StrVelA, F64 *MaxVelA, F64 *TaccA, F64 *TdecA, F64
*SVaccA, F64 *SVdecA);
I16 _8134_set_to_single_mode(I16 AxisX,I16 AxisY);
I16 _8134_set_org_logic(I16 AxisNo, I16 org_logic);
I16 _8134_set_feedback_error_detect(I16 AxisNo, I32 max_error);
I16 _8134_get_error_counter(I16 AxisNo, I16 *error_counter);
I16 _8134_reset_error_counter(I16 AxisNo);
I16 _8134_set_bounce_filter(I16 AxisNo, I16 Value);
165 Appendix B
Warranty Policy
Thank you for choosing ADLINK. To understand your rights and enjoy all
the after-sales services we offer, please read the following carefully.
1.
Before using ADLINKs products, please read the user manual and
follow the instructions exactly. When sending in damaged products
for repair, please attach an RMA application form.
2.
3.
g. Products with altered and damaged serial numbers are not entitled
to our service.
166 Warranty Policy
5.