Revision History Revision Release Date Description of Change(s) 2.00 Oct. 7, 2015 Initial Release...
Page 3
PCIe-8154 Preface Copyright 2015 ADLINK Technology, Inc. This document contains proprietary information protected by copy- right. All rights are reserved. No part of this manual may be repro- duced by any mechanical, electronic, or other means in any form without prior written permission of the manufacturer.
Page 4
Conventions Take note of the following conventions used throughout this manual to make sure that users perform certain tasks and instructions properly. Additional information, aids, and tips that help users perform tasks. NOTE: NOTE: Information to prevent minor physical injury, component dam- age, data loss, and/or program corruption when trying to com- plete a task.
The PCIe-8154 is a completely new design. This carrier board has 4-axis pulse train output control channels. For additional functions, such as high-speed triggering or distributed I/O control, you can add on a daughter board based on requirement.
The card index value of the PCIe-8154 can be set with a DIP switch to a value between 0 and 15. This is useful for machine makers if the whole control system is very huge. 2. Emergency Input An emergency input pin can be wired to an emergency button to stop sending pulse output once activated.
Visual Basic. Sample programs are provided to illustrate the operations of the functions. 1.1 Features The following list summarizes the main features of the PCIe-8154 motion control system. PCIe bus Plug-and-Play (Universal) 4 axes of step and direction pulse output for controlling stepping or servomotor Maximum output frequency of 6.55MPPS...
Manual manual pulse generator input interface Card index selection Security protection on EERPOM Dedicated emergency input pin for wiring Software supports a maximum of up to 12 PCIe-8154 cards operation in one system Compact PCB design Includes MotionCreatorPro, a Microsoft Windows-based application development software PCIe-8154 libraries and utilities for Windows XP/7/8.1...
Slot power supply (input): +5V DC ±5%, 900mA max External power supply (input): +24V DC ±5%, 500mA max External power supply (output): +5V DC ±5%, 300mA, max PCIe-8154 Dimensions (PCB size): 185 (L) X 98.4 (H) mm 1.3 Supported Software...
Programming Library Windows XP/7/8.1 DLLs are provided for the PCIe-8154. These function libraries are shipped with the board. MotionCreatorPro The pre-loaded Windows-based utility sets up cards, motors, and systems, and can aid in debugging hardware and software prob- lems. Users can set I/O logic parameters to be loaded in their own program.
PCIe-8154 PCB Layout All dimensions shown are in millimeters (mm) unless otherwise stated. NOTE: NOTE: 98.4 Figure 1-2: PCB Layout CN2: Input / Output Signal Connector (100-pin) K1 / K2: Simultaneous Start / Stop Connector P1: Manual Pulse generator SW1: DIP switch for card index selection (0-15)
Page 20
CN2 is the main connector for motion control I/O signals. Name I/O Function Name I/O Function +5V power +5V power supply output supply output Ext. power Ext. power EXGND - EXGND - ground ground OUT0+ O Pulse signal (+) OUT2+ O Pulse signal (+) OUT0- Pulse signal (-)
Page 21
PCIe-8154 Name I/O Function Name I/O Function OUT1- Pulse signal (-) OUT3- Pulse signal (-) DIR1+ Dir. signal (+) DIR3+ Dir. signal (+) DIR1- Dir. signal (-) DIR3- Dir. signal (-) SVON1 O Servo On/Off SVON3 O Servo On/Off Dev. ctr, clr.
Name I/O Function Name I/O Function End limit signal (- End limit signal (- MEL1 MEL3 DI/LTC/PCS/SD/ DI/LTC/PCS/SD/ GDI1 GDI3 CLR1/EMG CLR3 General Output 1 96 General Output 3 ORG1 Origin signal ORG3 Origin signal Ext. power Ext. power EXGND - EXGND - ground ground...
Not Available Not Available Not Available Table 1-1: P1 Manual Pulse Generator Refer to the contents of this chapter before wiring any cable between the PCIe-8154 and any motor driver NOTE: NOTE: 1.9 CN5 Pin Assignments: TTL I/O Name Function...
Name Function Name Function EDO8 Digital Output 8 EDO9 Digital Output 9 DGND N/A Power ground Power +3.3V EDO10 Digital Output 10 EDO11 Digital Output 11 EDO12 Digital Output 12 EDO13 Digital Output 13 EDO14 Digital Output 14 EDO15 Digital Output 15 DGND N/A Power ground DGND N/A...
(I/O port locations) and IRQ channel of the PCIe card are assigned by the system BIOS. Addresses are assigned on a board-by-board basis for all PCIe cards in the system. PCIe Slot Selection The PCIe-8154 can be installed in any PCIe slot. Getting Started...
(printer, modem, monitor, etc.). Remove the cover. 3. Select a PCIe expansion slot. 4. Before handling the PCIe-8154, discharge any static buildup by touching the metal case of the computer. Hold the edge of the card and do not touch the components.
PCIe-8154 2.4 JP2 to JP8 Jumper Setting for Pulse Output J1-J8 set the type of output pulse signals (DIR and OUT), which can either be differential line driver or open collector output. Please see “Pulse Output Signals OUT and DIR on CN2” on page 16.
2.6.1 Pulse Output Signals OUT and DIR on CN2 With 4 axes pulse output signals on the PCIe-8154, each axis uses two pairs of OUT and DIR differential signals to transmit the pulse train and indicate the direction. The OUT and DIR signals can also be programmed as CW and CCW signal pairs.
PCIe-8154 CN2 Pin. Signal Name Description Axis # DIR3- Direction signal (-) Table 2-2: Pulse Output Signals on CN3 The output of the OUT or DIR signals can be configured by jump- ers as either differential line drivers or open collector output. Users...
If the pulse output is set to open collector output mode, OUT- and DIR- transmit OUT and DIR signals, with sink current not exceeding 20mA on the OUT- and DIR- pins, and default set- NOTE: NOTE: ting 1-2 shorted OUT-/DIR- can connect to a 470Ω pulse input interface COM via J2/J3.
PCIe-8154 CN2 Pin Signal Name Axis # CN2 Pin Signal Name Axis # EB0+ EB0- EZ0+ EZ0- EA1+ EA1- EB1+ EB1- EZ1+ EZ1- EA2+ EA2- EB2+ EB2- EZ2+ EZ2- EA3+ EA3- EB3+ EB3- EZ3+ EZ3- Table 2-4: EA, EB, and EZ Pin Assignments The input circuit of the EA, EB, and EZ signals is as shown.
Connection to Line Driver Output To drive the PCIe-8154 encoder input, the driver output must pro- vide at least 3.5V across the differential pairs with at least 8mA driving capacity. The grounds of both sides must be tied together.
PCIe-8154 = 8mA Figure 2-6: Device/Encoder Connection Circuit 2.6.3 Origin Signal ORG The origin signals (ORG0-ORG3) are used as input signals for the origin of the mechanism. The following table lists signal names, pin numbers, and axis numbers: CN2 Pin #...
mum. An internal filter circuit filters out any high frequency spikes, which may cause errors in the operation. EX+24V 3.3V 2.2k PCL6046 74LS14 EXGND Figure 2-7: ORG Input Circuit When the motion controller is operated in the home return mode, the ORG signal is used to inhibit the control output signals (OUT and DIR).
PCIe-8154 As shown, the external limit switch should have a minimum con- tact capacity of +24V @ 8mA. Either ‘A-type’ (normal open) or ‘B- type’ (normal closed) contact switches can be used. Figure 2-8: End-Limit Signals Circuit 2.6.5 In-Position Signal INP The in-position signal INP from a servo motor driver indicates its deviation error.
EX+5V 3.3V PCL6046 If = 12mA Max If = 5mA Min EXGND Figure 2-9: INP Signal Circuit The in-position signal is usually generated by the servomotor driver and is ordinarily an open collector output signal. An external circuit must provide at least 8mA current sink capabilities to drive the INP signal.
PCIe-8154 EX+5V 3.3V PCL6046 If = 12mA Max. If = 5mA Min. EXGND Figure 2-10: Input Alarm Circuit 2.6.7 Deviation Counter Clear Signal ERC The deviation counter clear signal (ERC) is active when: Home return is complete End-limit switch is active...
The ERC signal is used to clear the deviation counter of the servo- motor driver. The ERC output circuit is an open collector with a maximum of 35V at 50mA driving capacity. Figure 2-11: ERC Circuit 2.6.8 General-purpose Signal SVON The SVON signal can be used as a servomotor-on control or gen- eral purpose output signal.
PCIe-8154 3.3V 35V 50mA Max SVON PCL6046 SVON EXGND Figure 2-12: SVON Circuit 2.6.9 General-purpose Signal RDY The RDY signals can be used as motor driver ready input or gen- eral purpose input signals. CN2 Pin Signal Name Axis #...
Figure 2-13: RDY Circuit 2.6.10 Multi-Functional Output Pin: DO/CMP The PCIe-8154 provides multi-functional output channels DO0/ CMP0 to DO3/CMP3, corresponding to 4 axes. Each output pin can be individually configured as Digit Output (DO) or as Compar- ison Output (CMP). When configured as a Comparison Output pin, the pin generates a pulse signal when the encoder counter matches a preset value.
PCIe-8154 3.3V 35V 50mA Max DO/CMP From FPGA EXGND Figure 2-14: DO/CMP Circuit 2.6.11 Multi-Functional Input Pin: DI/LTC/SD/PCS/CLR/ Each of the 4 multi-functional input pins on CN2 can be configured as DI (Digit Input), LTC (Latch), SD (Slow down), PCS (Target position override), CLR (Counter clear), or EMG (Emergency).
Figure 2-15: DI/LTC/SD/PCS/CLR/EMG Circuit 2.6.12 Manual Pulse Generator Input Signals PA and PB The PCIe-8154 can accept differential manual pulse generator input signals through the pins of P1 listed below. The manual pulse generator acts as an encoder, with A-B phase signals gen- erating positioning information to guide the motor.
STA/STP signals for simul- taneous start and stop. If there are two or more PCIe-8154 cards, connect the K2 connec- tor on the previous card to K1 connector on the next card. K1 and K2 connectors on the same PCIe-8154 are connected internally.
Figure 2-17: STA & STP Connection External start and stop signals can initiate simultaneous cross- card motor operations, when connected to STA and STP pins on the K1 connector. PCIe-8154 #2 PCIe-8154 #3 PCIe-8154 #1 Figure 2-18: STA & STP Connection With External Start/Stop...
PCIe-8154 2.6.14 General Purpose TTL I/O EDI And EDO 32 general purpose TTL digital input/ outputs are provided on CN5. 3.3V FPGA +3.3V EDI0-15 EDI0-15 EDO0-15 EDO0-15 DGND Figure 2-19: EDI And EDO Circuit Getting Started...
Page 46
This page intentionally left blank. Getting Started...
PCIe-8154 Appendix A MotionCreatorPro After installing the hardware, it is necessary to correctly configure all cards and check the system. MotionCreatorPro provides simple yet powerful setup, configuration, testing, and debugging for motion control systems using 8154 cards. MotionCreatorPro functions under Windows XP/7/8.1. Recom- mended screen resolution is 1024x768.
A.3 MotionCreatorPro Introduction Main Menu The main menu opens after starting MotionCreatorPro. Reloads All Menus Opens Help Menus Exits MotionCreatorPro MotionCreatorPro...
PCIe-8154 Select Menu The Select menu appears after starting MotionCreatorPro and enables selection of operating card and axis. Opens Card Information Menu Opens Configuration Menu Opens Single Axis Operation Menu Opens Two-Axis Operation Menu Opens Four-Axis Operation Menu Opens 2D-Motion Menu...
PCIe-8154 Configuration Menu In the IO_Config_1 menu, users can configure ALM, INP, ERC, EL, ORG, and EZ, as follows. 1. ALM Logic and Response mode: Select logic and response modes of ALM signal. The related function call is _8154_set_alm(). 2. INP Logic and Enable/Disable selection: Select logic, and Enable/ Disable the INP signal.
Page 52
5. ORG Logic: Select the logic of the ORG signal. The related function call is _8154_set_home_config(). 6. EZ Logic: Select the logic of the EZ signal. The related function call is _8154_set_home_config(). 7. Buttons: Next Card: Change operating card. Next Axis: Change operating axis. Save Config: Save current configuration to 8154.ini and 8154MC.ini.
Page 53
PCIe-8154 1. LTC Logic: Select the logic of the LTC signal. The related function call is _8154_set_ltc_logic(). 2. LTC latch_source: Select the logic of the latch_source signal. related function call _8154_set_latch_source(). 3. SD Configuration: Configure the SD signal. The related function call is _8154_set_sd().
Page 54
In the Pulse & INT_Config menu, users can configure pulse input/output and move ratio and INT factor. 1. Pulse Output Mode: Select the output mode of the pulse signal (OUT/ DIR). The related function call is _8154_set_pls_outmode(). 2. Pulse Input: Sets the configurations of the Pulse input signal(EA/EB).
PCIe-8154 Save Config: Save current configuration to 8154.ini And 8154MC.ini. 5. I/O Status: The status of motion I/O. Light-On means Active, while Light-Off indicates inactive. The related function is _8154_get_io_status. Single Axis Operation Menu In this menu, users can change the settings for a specific axis, such as velocity mode motion, preset relative/absolute motion, manual pulse move, and home return.
Page 56
Feedback: displays the value of the feedback position counter. The related function is _8154_get_position() Pos Error: displays the value of the position error coun- ter. The related function is _8154_get_error_counter(). Target Pos: displays the value of the target position recorder. The related function is _8154_get_target_pos().
Page 57
PCIe-8154 7. Operating Mode: Select operating mode. Absolute Mode: “Position1” and “position2” is used as absolution target positions for motion. The related func- tions are _8154_start_ta_move(), _8154_start_sa_move(). Relative Mode: “Distance” is used as relative displace- ment for motion. The related function is _8154_start_tr_move(), _8154_start_sr_move().
Page 58
Manual manual pulse generator Move: Manual Pulse motion. Clicking this button will invoke the manual pulse configuration window. Home Mode: Home return motion. Clicking this button will invoke the home move configuration window. The related function is _8154_set_home_config(). If the check box “ATU”...
Page 59
PCIe-8154 Close: Click this button close this window. 8. Position: Set the absolute position for “Absolute Mode.” It is only effective when “Absolute Mode” is selected. 9. Distance: Set the relative distance for “Relative Mode.” It is only effective when “Relative Mode” is selected.
Page 60
ual pulse generator Move” is selected, since the velocity and moving distance is decided by pulse input. Start Velocity: Set the start velocity of motion in units of PPS. In “Absolute Mode” or “Relative Mode,” only the value is effective. For example, -100.0 is the same as 100.0.
Page 61
PCIe-8154 sing is effective. –5000.0 means 5000.0 in the minus direction. Accel. Time: Set the acceleration time in units of sec- ond. Decel. Time: Set the deceleration time in units of sec- ond. SVacc: Set the S-curve range during acceleration in units of PPS.
Page 62
Left play button: Causes the 8154 start to outlet pulses according to previous setting. In “Absolute Mode,” it causes the axis to move to position1. In “Relative Mode,” it causes the axis to move forward. In “Cont. Move,” it causes the axis to start to move according to the velocity setting.
PCIe-8154 18.Stop Button: Causes the 8154 to decelerate and stop. The deceleration time is defined in “Decel. Time.” The related function is _8154_sd_stop(). 19.I/O Status: The status of motion I/O. Light-On means Active, while Light-Off indicates inactive. The related function is _8154_get_io_status().
Page 64
axis operation menu are similarly, that’s because we just introduce two-axis menu. MotionCreatorPro...
Page 65
PCIe-8154 1. Motion Parameters: Set the parameters for single axis motion. This parameter is meaningless if “Manual man- ual pulse generator Move” is selected, since the velocity and moving distance is decided by pulse input. Start Velocity: Set the start velocity of motion in units of PPS.
Page 66
6. Position: Set the absolute position for “Absolute Mode.” It is only effective when “Absolute Mode” is selected. 7. Buttons: Next Card: Change operating card. Next Axis: Change operating axis. 8. I/O Status: The status of motion I/O. Light-On means Active, while Light-Off indicates inactive.
Page 67
PCIe-8154 13.Buttons: Axis0 Reset: clicking this button will set all positioning counters of selected axis to zero. The related functions are: _8154_set_position() _8154_set_command() _8154_reset_error_counter() _8154_reset_target_pos() Axis1 Reset: clicking this button will set all positioning counters of selected axis to zero.
2D_Motion Menu Press 2-D button in operating window will enter this window. This is for 2-D motion test. It includes the following topics: Linear Interpolation Circular Interpolation Incremental Jog Continuous Jog Other Control Objects MotionCreatorPro...
Page 69
PCIe-8154 1. Jog Type: Continuous Jog: Pressing a directional button directs the axis to continuously accelerate, with releasing the button stopping the axis immediately. Incremental Jog: When one directional button is pressed, the axis steps the distance entered. 2. Jog Setting: Sets parameters for single axis motion.
Page 70
3. Operating Mode: Selects operating mode. Absolute Mode: “Position” is used as absolution target position for motion when “Linear Interpolation Mode” is selected. “ABS EndPos” and “ABS Center” are used as absolution target positions for motion when “Circular Interpolation Mode” is selected. The related functions are _8154_start_ta_move(), _8154_start_sa_move().
Page 71
PCIe-8154 7. Set Distance/End Pos: Sets the absolution target posi- tions or relative distance for “Linear Interpolation Mode” . Sets the position end of arc for “Circular Interpolation Mode”. Available for “Linear Interpolation Mode” and “Circular Interpolation Mode”. 8. Set Center: Sets the position of center for “Circular Interpolation Mode”.
Page 72
14.Mode: Linear Interpolation: After motion parameters have been set in “Motion Parameters Setting Frame”, the des- tination can be entered in this frame. Run launches lin- ear interpolation motion. Circular Interpolation: Circular interpolation mode has arc degree, division axis, and optimize option parame- ters in “Motion Parameters Setting Frame”.
PCIe-8154 18.Graph Range Frame: Clear: Clears the Motion Graph. Center: Displays the Motion Graph in center position. 19.Graph Range: controls X or Y axis display range. 20.Origin Position: allows panning of display location. Help Menu Right clicking shows Help Information.
Page 74
This page intentionally left blank. MotionCreatorPro...
1.797683134862315E309 Boolean Boolean logic value TRUE, FALSE Function Naming The PCIe-8154 software drivers use full names to identify the function. Naming conventions are as follows. In a ‘C’ programming environment: _{hardware_model}_{action_name}. e.g. _8154_initial(). To differentiate between a C library and a VB library, a capital “B”...
Category Function _8154_set_gpio_output _8154_get_gpio_output General Purpose I/O _8154_get_gpio_input _8154_set_gpio_input_function _8154_disable_soft_limit _8154_enable_soft_limit Soft Limit _8154_set_soft_limit _8154_backlash_comp Backlash Compensation/ _8154_suppress_vibration Vibration Suppression _8154_set_fa_speed _8154_get_tr_move_profile _8154_get_ta_move_profile Speed Profile Calculation _8154_get_sr_move_profile _8154_get_sa_move_profile _8154_set_gpio_output_ex _8154_get_gpio_output_ex _8154_get_gpio_input_ex Extended General Purpose _8154_set_gpio_output_ex_CH TTL Input/Output _8154_get_gpio_output_ex_CH _8154_get_gpio_input_ex_CH B.3 System and Initialization @ Name _8154_initial –...
Page 81
PCIe-8154 _8154_config_from_file – Config PCIe-8154 settings from file @ Description _8154_initial: This function is used to initialize an 8154 card without assign- ing the hardware resources. All 8154 cards must be initialized by this function before calling other functions in your applica- tions.
Page 82
_8154_check_security_key _8154_set_security_key _8154_config_from_file: This function is used to load the configuration of the PCIe-8154 according to specified file. By using MotionCreatorPro, user could test and configure the 8154 correctly. After saving the configuration, the file would be existed in user’s system direc- tory as 8154.ini.
Page 83
The CardID could be decided by : 0: the sequence of PCIe slot. 1: on board DIP switch (SW1). card_id: Specify the PCIe-8154 card index. The card_id could be decided by DIP switch (SW1) or depend on slot sequence. Please refer to _8154_initial().
B.4 Pulse Input/Output Configuration @ Name _8154_set_pls_iptmode – Set the configuration for feedback pulse input. _8154_set_pls_outmode – Set the configuration for pulse command output. _8154_set_feedback_src – Enable/Disable the external feed- back pulse input @ Description _8154_set_pls_iptmode: Configure the input modes of external feedback pulses. There are 4 types for feedback pulse input.
Page 85
PCIe-8154 Visual Basic6 (Windows XP/7/8.1) B_8154_set_pls_iptmode(ByVal AxisNo As Integer, ByVal pls_iptmode As Integer, ByVal pls_logic As Integer) As Integer B_8154_set_pls_outmode(ByVal AxisNo As Integer, ByVal pls_outmode As Integer) As Integer B_8154_set_feedback_src(ByVal AxisNo As Integer, ByVal Src As Integer) As Integer @ Argument AxisNo: Axis number designated to configure the pulse input/out- put.
pls_outmode: Setting of command pulse output mode. Value Type Positive Direction Negative Direction OUT/DIR OUT/DIR OUT/DIR OUT/DIR CW / CW / Src: Counter source Value Meaning External signal feedback Command pulse B.5 Velocity mode motion @ Name _8154_tv_move – Accelerate an axis to a constant velocity with trapezoidal profile _8154_sv_move –...
Page 87
PCIe-8154 @ Description _8154_tv_move: This function is to accelerate an axis to the specified constant velocity with a trapezoidal profile. 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 the velocity parameter.
Page 88
I16 _8154_emg_stop(I16 AxisNo); I16 _8154_sd_stop(I16 AxisNo, F64 Tdec); I16 _8154_get_current_speed(I16 AxisNo, F64 *speed) Visual Basic6 (Windows XP/7/8.1) B_8154_tv_move(ByVal AxisNo As Integer, ByVal StrVel As Double, ByVal MaxVel As Double, ByVal Tacc As Double) As Integer B_8154_sv_move(ByVal AxisNo As Integer, ByVal StrVel As Double, ByVal MaxVel As Double, ByVal Tacc As Double, ByVal SVacc As Double) As Integer...
PCIe-8154 *Speed: Variable to get current speed (pulse/sec). B.6 Single Axis Position Mode @ Name _8154_start_tr_move – Begin a relative trapezoidal profile move _8154_start_ta_move – Begins absolute trapezoidal profile move _8154_start_sr_move – Begin a relative S-curve profile move _8154_start_sa_move – Begins absolute S-curve profile move _8154_set_move_ratio –...
Page 90
_8154_start_ta_move: This function causes the axis to accelerate from a starting velocity (StrVel), rotate at constant velocity (MaxVel), and decelerates to stop at the specified absolute position with trapezoidal profile. The acceleration (Tacc) and deceleration (Tdec) time is specified independently. This command does not let the program wait for motion completion, but immediately returns control to the program.
Page 92
B_8154_set_max_override_speed(ByVal AxisNo As Integer, ByVal OvrdSpeed As Double, ByVal Enable As Integer) As Integer @ Argument AxisNo: Axis number designated to move or stop. card_id Physical axis AxisNo … … Dist: Specified relative distance to move (unit: pulse) Pos: Specified absolute position to move (unit: pulse) StrVel: Starting velocity of a velocity profile in units of pulse per second MaxVel: Maximum velocity in units of pulse per second...
PCIe-8154 B.7 Linear Interpolated Motion @ Name _8154_start_tr_move_xy – Begin a relative 2-axis linear interpolation for X & Y axis with trapezoidal profile _8154_start_ta_move_xy – Begins absolute 2-axis linear interpolation for X & Y axis with trapezoidal profile _8154_start_sr_move_xy –Begin a relative 2-axis linear inter- polation for X &...
Page 94
_8154_start_tr_line4 – Begin a relative 4-axis linear interpo- lation for any 4 of 4 axes, with trapezoidal profile _8154_start_ta_line4 – Begin a absolute 4-axis linear inter- polation for any 4 of 4 axes, with trapezoidal profile _8154_start_sr_line4 – Begin a relative 4-axis linear interpo- lation for any 4 of 4 axes, with S-curve profile _8154_start_sa_line4 –...
Page 95
PCIe-8154 Velocity Relative Function Total axes Target Axes Profile Absolute _8154_start_tr_line3 Any 3 of 4 axes _8154_start_ta_line3 Any 3 of 4 axes _8154_start_sr_line3 Any 3 of 4 axes _8154_start_sa_line3 Any 3 of 4 axes Note: The target 3 axes of linear interpolation are the 3 of 4 axes on a card.
Page 98
Double, ByVal Tacc As Double, ByVal Tdec As Double) As Integer B_8154_start_sr_move_zu(ByVal Card_id As Integer, ByVal DistX As Double, ByVal DistY 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 B_8154_start_sa_move_zu(ByVal Card_id As Integer, ByVal PosX As Double, ByVal PosY As Double,...
Page 99
As Double, ByVal Tdec As Double, ByVal Svacc As Double, ByVal Svdec As Double) As Integer @ Argument card_id: Specify the PCIe-8154 card index. The card_id could be decided by DIP switch (SW1) or depend on slot sequence. Please refer to _8154_initial().
Page 100
DistX: specified relative distance of axis 0 to move (unit: pulse). DistY: specified relative distance of axis 1 to move (unit: pulse). PosX: specified absolute position of axis 0 to move (unit: pulse). PosY: specified absolute position of axis 1 to move (unit: pulse). StrVel: Starting velocity of a velocity profile in units of pulse per second.
PCIe-8154 I16 AxisArray[3] = {0,2, 3}; //axis 0, 2 & 3 F64 PosArray[3] = {200.0, 300.0, 400.0} // absolute position for axis 0, 2 & 3 B.8 Circular Interpolation Motion @ Name _8154_start_tr_arc_xy – Begin a T-curve relative circular interpolation for X & Y axis _8154_start_ta_arc_xy –...
Page 102
@ Description Those functions perform Circular interpolation motion with differ- ent profile. Detail Comparisons of those functions are described by follow table. Velocity Relative Function Total axes Target Axes Profile Absolute _8154_start_tr_arc_xy trapezoidal Axes 0 & 1 _8154_start_ta_arc_xy trapezoidal Axes 0 & 1 _8154_start_sr_arc_xy S-curve Axes 0 &...
Page 104
Double, ByVal MaxVel As Double, ByVal Tacc As Double, ByVal Tdec As Double) As Integer B_8154_start_sr_arc_xy(ByVal card_id As Integer, ByVal OffsetCx As Double, ByVal OffsetCy As Double, ByVal OffsetEx As Double, ByVal OffsetEy As Double, ByVal CW_CCW As Integer, 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...
Page 105
As Double, ByVal Tdec As Double, ByVal Svacc As Double, ByVal Svdec As Double) As Integer @ Argument card_id: Specify the PCIe-8154 card index. The card_id could be decided by DIP switch (SW1) or depend on slot sequence. Please refer to _8154_initial().
Page 106
card_id Physical axis AxisNo … … OffsetCx: X-axis (first axis of target axes) offset to center OffsetCy: Y-axis (second axis of target axes) offset to center OffsetEx: X-axis (first axis of target axes) offset to end of arc OffsetEy: Y-axis offset to end of arc Cx: X-axis (first axis of target axes) absolute position of center of Cy: Y-axis (second axis of target axes) absolute position of center of arc...
PCIe-8154 Note: SVdec = 0, for pure S-Curve. For more details, see sec- tion 4.2.4 *AxisArray: Array of axis number to perform interpolation. Example: I16 AxisArray[2] = {0, 3}; //axis 0, & axis 3 (correct) I16 AxisArray[2] = {1, 6}; //axis 1, & axis 6...
Page 108
_8154_start_ta_helical – Begin a T-curve absolute helical interpolation for X, Y and Z axis _8154_start_sr_helical – Begins S-curve relative helical interpolation for X, Y and Z axis _8154_start_sa_helical –Begins S-curve absolute helical interpolation for X, Y and Z axis @ Description These functions perform helical interpolation motion with different profiles.
Page 110
@ Argument card_id: Specify the PCIe-8154 card index. The card_id could be decided by switch (SW1) or depend on slot sequence.Please refer to _8154_initial(). AxisNo: Axis number designated to move or stop. card_id Physical axis AxisNo … … OffsetCx: X-axis (first axis of target axes) offset to center...
PCIe-8154 StrVel: Starting velocity of a velocity profile in units of pulse per second. MaxVel: Maximum velocity in units of pulse per second. Tacc: Specified acceleration time in units of seconds. Tdec: Specified deceleration time in units of seconds. SVacc: Specified velocity interval in which S-curve acceleration is performed.
Page 112
velocity parameter (MaxVel). Since the stopping condition of this function is determined by the home_mode setting, users should take care in selecting the initial moving direction. Users should also take care to handle conditions when the limit switch is touched or other conditions that are possible causing the axis to stop.
Page 113
PCIe-8154 @ Argument AxisNo: Axis number designated to move or stop. card_id Physical axis AxisNo … … home_mode: Stopping modes for home return, This value is between 0 to 12. Please refer to the operation theory section 4.2.10 org_logic: Action logic configuration for ORG...
ORGOffset: The escape pulse amounts when home search touches the ORG singal (Unit: pulse) B.11 Manual Pulse Generator Motion @ Name _8154_disable_manual pulse generator_input – Dis- able the manual pulse generator input _8154_manual pulse generator_pmove – Manual manual pulse generator p_move _8154_manual pulse generator_vmove –...
Page 115
PCIe-8154 _8154_set_manual pulse generator_ratio Set manual pulse ratio for actual output pulse rate. The formula for manual pulse output rate is: Output Pulse Count = Input manual pulse generator Count x (MultiF + 1) x DivF / 2048 The DivF = 1~2047 Divide Factor...
Page 116
Integer, ByVal Inverse As Integer) As Integer @ Argument AxisNo: Axis number designated to move or stop. card_id Physical axis AxisNo … … Disable: Disable manual pulse generator input. Disable = 1, disable manual pulse generator Disable = 0, enable manual pulse generator Dist: Specified relative distance to move (unit: pulse) For example, if SpeedLimit is set to be 100pps, then the axis can move at fastest 100pps, even the input manual pulse gen-...
PCIe-8154 Inverse: Reverse the moving direction from pulse direction Value Meaning no inverse Reverse moving direction B.12 Motion Status @ Name _8154_motion_done – Return the motion status @ Description _8154_motion_done: Return the motion status of the 8154. The return code show as...
18 SMEL 19 SEMG 20 SSTP 21 SERC Table 1: @ Syntax C/C++(Windows XP/7/8.1) I16 _8154_motion_done(I16 AxisNo) Visual Basic (Windows XP/7/8.1) B_8154_motion_done(ByVal AxisNo As Integer) As Integer @ Argument AxisNo: Axis number designated to move or stop. card_id Physical axis AxisNo …...
Page 119
PCIe-8154 _8154_set_alm – Set the logic of ALM signal and operating mode _8154_set_erc – Set the logic of ERC signal and operating mode _8154_set_erc_out – Output an ERC signal _8154_clr_erc – Clear the ERC signal _8154_set_sd – Set the logic SD signal and operating mode _8154_enable_sd –...
Page 120
_8154_set_pcs: Enable the position override when input signal PCS is turn ON. The PCS terminal status can be monitored by the “_8154_get_io_status” function. _8154_set_clr_mode CLR inputted signal can reset specified counters(command, position, error and general purpose counter). The reset action could be set by this function.
Page 121
PCIe-8154 _8154_set_limit_logic: Set the EL logic, normal open or normal closed. _8154_set_limit_mode: Set the reacting modes of the EL signal. _8154_get_io_status: Get all the I/O statuses for each axis. The definition for each bit is as follows: Bit Name Description...
Page 123
PCIe-8154 B_8154_enable_sd(ByVal AxisNo As Integer, ByVal Enable As Integer) As Integer B_8154_set_limit_logic(ByVal AxisNo As Integer, ByVal Logic As Integer) As Integer B_8154_set_limit_mode(ByVal AxisNo As Integer, ByVal limit_mode As Integer) As Integer I16 _8154_get_io_status(ByVal AxisNo As Integer, io_sts As Integer) As Integer @ Argument AxisNo: Axis number designated to move or stop.
Page 124
clr_mode: Specify a CLR input clear mode clr_mode = 0 , Clear on the falling edge (default) clr_mode = 1 , Clear on the rising edge clr_mode = 2 , Clear on a LOW level clr_mode = 3 , Clear on a HIGH level targetCounterInBit: Enable/Disable clear target counter in bit Value Meaning Description...
Page 125
PCIe-8154 erc_logic: Set the active logic for the ERC signal Value Mmeaning Negative logic Positive logic erc_pulse_width: Set the pulse width of the ERC signal Value Meaning μ μ μ 1.6 ms 13 ms 52 ms 104 ms Level output...
sd_mode: Set the reacting mode of the SD signal Value Meaning slow down only slow down then stop enable: Set the ramping-down point for high speed feed. Value Meaning Automatic setting Manual setting (default) Logic: Set the PEL/MEL logic. Value Meaning Normal low(normal open) Normal high(normal close) limit_mode:...
Page 127
PCIe-8154 This function is used to enable the Windows interrupt event to host PC. _8154_set_motion_int_factor: This function allows users to select motion related factors to ini- tiate the event int. The error can never be masked once the interrupt service is turned on by _8154_int_control().
Page 128
Integer, ByVal int_factor As Long) As Integer @ Argument card_id: Specify the index of target PCIe-8154 card. The card_id could be decided by DIP switch (SW1) or depend on slot sequence. Please refer to _8154_initial(). intFlag: Enable/Disable the Interrupt function...
PCIe-8154 Description Deceleration Start Deceleration End +Soft limit or comparator 1 is ON -Soft limit or comparator 2 is ON Error comparator or comparator 3 is ON General comparator or comparator 4 is ON Trigger comparator or comparator 5 is ON...
Page 130
_8154_get_error_counter – Get the value of position error counter _8154_reset_error_counter – Reset the position error coun- _8154_get_general_counter – get the value of general coun- _8154_set_general_counter – Set the general counter _8154_get_target_pos – Get the value of target position recorder _8154_reset_target_pos – Reset target position recorder _8154_get_res_distance –...
Page 131
PCIe-8154 _8154_set_position: This function is used to change the feedback position counter to the specified value. Note that the value to be set will be pro- cessed by the move ratio. If move ratio is 0.5, then the set value will be twice as given value.
Page 132
_8154_get_res_distance: This function is used to read the value of the residue distance recorder. The target position recorder is maintained by the 8154 software driver. It records the position to settle down for current running motion. _8154_set_res_distance: This function is used to change the value of the residue dis- tance counter _8154_get_ring_counter Acquires limitation value of ring counter.
Page 133
PCIe-8154 _8154_escape_home Leaves from the home position, with positivity of negative move set by the MaxVel @ Syntax C/C++(Windows XP/7/8.1) I16 _8154_get_position(I16 AxisNo, F64 *Pos); I16 _8154_set_position(I16 AxisNo, F64 Pos); I16 _8154_get_command(I16 AxisNo, I32 *Command); I16 _8154_set_command(I16 AxisNo, I32 Command);...
Page 134
B_8154_reset_error_counter(ByVal AxisNo As Integer) As Integer B_8154_set_general_counter(ByVal AxisNo As Integer, ByVal CntSrc As Integer, ByVal CntValue As Double) As Integer B_8154_get_general_counter(ByVal AxisNo As Integer, ByRef Pos As Double) As Integer B_8154_reset_target_pos(ByVal AxisNo As Integer, ByVal Pos As Double) As Integer B_8154_get_target_pos(ByVal AxisNo As Integer, ByRef Pos As Double) As Integer B_8154_set_res_distance(ByVal AxisNo As Integer,...
PCIe-8154 range: -134217728 to 134217727 *error: Position error counter value, range: -32768 to 32767 CntSrc: general counter source Value Meaning Command pulse EA/EB manual pulse generator input System clock÷2 CntValue, *CntValue: the counter value TargetPos, *TargetPos: Target position recorder value,...
Page 136
_8154_set_ltc_logic – Set the logic of LTC signal _8154_get_latch_data – Get the latch data from counter @ Description _8154_set_trigger_logic: This function is used to set the logic of CMP single. _8154_set_error_comparator: This function is used to set the comparing method and value for the error comparator.
Page 138
@ Argument AxisNo: Axis number designated to move or stop. card_id Physical axis AxisNo … … Logic: logic of comparing trigger Value Meaning Negative logic Positive logic CmpSrc: The comparing source counters Value Meaning Command counter Feedback counter Error counter General counter CmpMethod: The comparing methods Value Meaning...
PCIe-8154 CmpAction: Value Meaning No action Stop immediately Slow down then stop ltc_src: Value Meaning LTC pin input ORG pin input general comparator conditions are met trigger comparator conditions are met ltc_logic: LTC signal operation edge Value Meaning Negative logic...
Page 140
@ Description _8154_set_continuous_move: This function is necessary before and after continuous motion command sequences _8154_check_continuous_buffer: This function is used to detect if the command pre-register (buf- fer) is empty or not. Once the command pre-register (buffer) is empty, users may write the next motion command into it. Other- wise, the new command will overwrite the previous command in the 2nd command pre-register.
PCIe-8154 B_8154_dwell_move(ByVal AxisNo As Integer, ByVal ms As Double) As Integer @ Argument AxisNo: Axis number designated to move or stop. card_id Physical axis AxisNo … … Enable: continuous motion switch logic Value Meaning continuous motion sequence is finished (Disable) continuous motion sequence is started (Enable) millisecond: Time of dwell move.
Page 142
_8154_stop_move_all – Simultaneously stop Multi-axis motion @ Description Theses functions are related to simultaneous operations of multi- axes, even in different cards. The simultaneous multi-axis opera- tion means to start or stop moving specified axes at the same time. The axes moved are specified by the parameter “AxisArray,” and the number of axes are defined by parameter “TotalAxes”...
_8154_set_gpio_input_function – Set the signal types for any digital inputs @ Description _8154_set_gpio_output: The PCIe-8154 has 4 digital output channels. By this function, user could control the digital outputs. _8154_get_gpio_output: This function is used to get the digital output status.
Page 145
PCIe-8154 PCIe-8154 has 4 digital input channels. By this function, user can get the digital input status. _8154_set_gpio_input_function: PCIe-8154 has 4 digital input channels. By this function, user can set one of several input signals to any specific DI channels.
Select: signal types select Value Meaning General DI (default) LTC(active low) SD(active low) PCS(active low) CLR (active low) EMG (active low) Logic: input signal logic Value Meaning Not inverse (default) Inverse B.20 Soft Limit @ Name _8154_disable_soft_limit – Disable soft limit function _8154_enable_soft_limit –...
Page 147
PCIe-8154 @ Syntax C/C++(Windows XP/7/8.1) I16 _8154_disable_soft_limit(I16 AxisNo); I16 _8154_enable_soft_limit(I16 AxisNo, I16 Action); I16 _8154_set_soft_limit(I16 AxisNo, I32 PlusLimit, I32 MinusLimit); Visual Basic (Windows XP/7/8.1) B_8154_disable_soft_limit(ByVal AxisNo As Integer) As Integer B_8154_enable_soft_limit(ByVal AxisNo As Integer, ByVal Action As Integer) As Integer...
B.21 Backlash Compensation / Vibration Suppression @ Name _8154_backlash_comp – Set backlash corrective pulse for compensation _8154_suppress_vibration – Set vibration suppressing tim- _8154_set_fa_speed – Set the FA speed @ Description _8154_backlash_comp: Whenever direction change occurs, the 8154 outputs backlash corrective pulses before sending commands. This function is used to set the compensation pulse numbers.
Page 149
PCIe-8154 Visual Basic (Windows XP/7/8.1) B_8154_backlash_comps (ByVal AxisNo As Integer, ByVal CompPulse As Integer, ByVal Mode As Integer) As Integer B_8154_suppress_vibration(ByVal AxisNo As Integer, ByVal ReverseTime As Integer, ByVal ForwardTime As Integer) As Integer B_8154_set_fa_speed(ByVal AxisNo As Integer, ByVal FA_Speed As Double) As Integer @ Argument AxisNo: Axis number designated to move or stop.
B.22 Speed Profile Calculation @ Name _8154_get_tr_move_profile – Get the relative trapezoidal speed profile _8154_get_ta_move_profile – Get the absolute trapezoidal speed profile _8154_get_sr_move_profile – Get the relative S-curve speed profile _8154_get_sa_move_profile – Get the absolute S-curve speed profile @ Description _8154_get_tr_move_profile: This function is used to get the relative trapezoidal speed pro- files.
Page 152
As Double, ByVal MaxVel As Double, ByVal Tacc As Double, ByVal Tdec As Double, ByVal SVacc As Double, ByVal SVdec As Double, ByRef pStrVel As Double, ByRef pMaxVel As Double, ByRef pTacc As Double, ByRef pTdec As Double, ByRef pSVacc As Double, ByRef pSVdec As Double, ByRef pTconst As Double) As Integer @ Argument...
PCIe-8154 SVdec: S-curve region during deceleration (unit: pulse/sec) Note: SVdec = 0, for pure S-Curve. For more details, see sec- tion 4.2.4 *pStrVel: Starting velocity by calculation *pMaxVel: Maximum velocity by calculation *pTacc: Acceleration time by calculation *pTdec: Deceleration time by calculation...
Page 154
Set the on_off status for digital output pins by channel. _8154_get_gpio_output_ex_CH(): Read on_off status of all digital output pins by channel. _8154_get_gpio_input_ex_CH(): Read on_off status of all digital input pins by channel. @ Syntax C/C++(Windows XP/7/8.1) I16 _8154_set_gpio_output_ex(I16 CardNo, U16 DoValue);...
PCIe-8154 @ Argument CardNo: Axis number designated. Channel: Designated channel number 0 to 15. DoValue: All output values. DiValue: All input values. Value: On-Off value for output or input in specific channel where Value=0 or 1 B.24 Return Code The return error code is defined in “8154_err.h”. The meaning is described in following table.
Page 156
Code Meaning -10317 Error compare parameter error -10318 Error compare method -10319 Error axis already stop -10320 Error axis INT wait failed -10321 Error user code write failed -10322 Error array size exceed -10323 Error factor number -10324 Error enable range -10325 Error auto accelerate time -10326 Error dwell time -10327 Error dwell distance...
PCIe-8154 Appendix C Connection Example C.1 General Description of Wiring The following illustrates an exemplary integration of the PCIe- 8154 and DIN-814M-J3A. C.2 Terminal Board User Guide Please refer to the individual terminal board’s User Guide. Sup- ported terminal boards are as follows:...
PCIe-8154 Important Safety Instructions For user safety, please read and follow all instructions, WARNINGS, CAUTIONS, and NOTES marked in this manual and on the associated equipment before handling/operating the equipment. Read these safety instructions carefully. Keep this user’s manual for future reference.
Page 160
Never attempt to fix the equipment. Equipment should only be serviced by qualified personnel. A Lithium-type battery may be provided for uninterrupted, backup or emergency power. Risk of explosion if battery is replaced with an incorrect type; please dispose of used batteries appropriately. WARNING: Equipment must be serviced by authorized technicians when:...
Need help?
Do you have a question about the PCIe-8154 and is the answer not in the manual?
Questions and answers