ADLINK Technology PCIe-8154 User Manual

ADLINK Technology PCIe-8154 User Manual

4-axis servo/stepper motion control card
Table of Contents

Advertisement

Quick Links

Manual Rev.:
Revision Date:
Part No:
Advance Technologies; Automate the World.
PCIe-8154
4-Axis Servo/Stepper
Motion Control Card
User's Manual
2.00
Oct. 7, 2015
50-11258-1000

Advertisement

Table of Contents
loading
Need help?

Need help?

Do you have a question about the PCIe-8154 and is the answer not in the manual?

Questions and answers

Summary of Contents for ADLINK Technology PCIe-8154

  • Page 1 PCIe-8154 4-Axis Servo/Stepper Motion Control Card User’s Manual 2.00 Manual Rev.: Oct. 7, 2015 Revision Date: 50-11258-1000 Part No: Advance Technologies; Automate the World.
  • Page 2: Revision History

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

    P1 Manual Pulse Generator ..........10 CN5 Pin Assignments: TTL I/O.......... 11 2 Getting Started ..............13 Package Contents ............. 13 PCIe-8154 Hardware Installation........13 Hardware Configuration ..........13 PCIe Slot Selection ............13 Installation Procedures ..........14 Troubleshooting: ............14 Software Driver Installation..........
  • Page 6 2.6.2 Encoder Feedback Signals EA, EB and EZ....18 2.6.3 Origin Signal ORG ............ 21 2.6.4 End-Limit Signals PEL and MEL....... 22 2.6.5 In-Position Signal INP..........23 2.6.6 Alarm Signal ALM ............. 24 2.6.7 Deviation Counter Clear Signal ERC......25 2.6.8 General-purpose Signal SVON.........
  • Page 7 PCIe-8154 System and Initialization ............ 68 Pulse Input/Output Configuration........72 Velocity mode motion ............74 Single Axis Position Mode ..........77 Linear Interpolated Motion ..........81 Circular Interpolation Motion..........89 Helical Interpolation Motion ..........95 B.10 Home Return Mode ............99 B.11 Manual Pulse Generator Motion ........
  • Page 8 This page intentionally left blank. viii Table of Contents...
  • Page 9: List Of Tables

    PCIe-8154 List of Tables Table 1-1: P1 Manual Pulse Generator ........11 Table 2-1: SW1 Card Index ............. 16 Table 2-2: Pulse Output Signals on CN3 ......... 17 Table 2-3: OUT or DIR Output by Jumper ....... 17 Table 2-4: EA, EB, and EZ Pin Assignments ......19 Table 2-5: Device/Encoder/Power Connection ......
  • Page 10 This page intentionally left blank. List of Tables...
  • Page 11: List Of Figures

    PCIe-8154 List of Figures Figure 1-1: PCIe-8154 Block Diagram .......... 2 Figure 1-2: PCB Layout ..............7 Figure 1-3: IDE 44-pin Connector Assignment ......12 Figure 1-4: DSUB 37-pin Connector Assignment ....... 12 Figure 2-1: Jumper Settings............15 Figure 2-2: OUT and DIR Axis Signals ........
  • Page 12 This page intentionally left blank. List of Figures...
  • Page 13: Introduction

    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.
  • Page 14: Figure 1-1: Pcie-8154 Block Diagram

    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.
  • Page 15: Features

    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...
  • Page 16: Specifications

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

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

    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.
  • Page 19: Pcb Layout

    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.
  • Page 22: K1/K2 Pin Assignments: Simultaneous Start/Stop

    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...
  • Page 23: Cn5 Pin Assignments: Ttl I/O

    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...
  • Page 24: Figure 1-3: Ide 44-Pin Connector Assignment

    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...
  • Page 25: Getting Started

    (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...
  • Page 26: Installation Procedures

    (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.
  • Page 27: Jp2 To Jp8 Jumper Setting For Pulse Output

    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.
  • Page 28: Signal Connections

    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.
  • Page 29: Table 2-2: Pulse Output Signals On Cn3

    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...
  • Page 30: Encoder Feedback Signals Ea, Eb And Ez

    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.
  • Page 31: Table 2-4: Ea, Eb, And Ez Pin Assignments

    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.
  • Page 32: Table 2-5: Device/Encoder/Power Connection

    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.
  • Page 33: Origin Signal Org

    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 #...
  • Page 34: End-Limit Signals Pel And Mel

    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).
  • Page 35: In-Position Signal Inp

    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.
  • Page 36: Alarm Signal Alm

    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.
  • Page 37: Deviation Counter Clear Signal Erc

    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...
  • Page 38: General-Purpose Signal Svon

    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.
  • Page 39: General-Purpose Signal Rdy

    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 #...
  • Page 40: Multi-Functional Output Pin: Do/Cmp

    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.
  • Page 41: Multi-Functional Input Pin: Di/Ltc/Sd/Pcs/Clr/Emg

    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).
  • Page 42: Manual Pulse Generator Input Signals Pa And Pb

    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.
  • Page 43: Simultaneous Start/Stop Signals Sta And Stp

    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.
  • Page 44: Figure 2-17: Sta & Stp Connection

    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...
  • Page 45: General Purpose Ttl I/O Edi And Edo

    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...
  • Page 47: A Appendix: Motioncreatorpro

    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.
  • Page 48: Motioncreatorpro Introduction

    A.3 MotionCreatorPro Introduction Main Menu The main menu opens after starting MotionCreatorPro. Reloads All Menus Opens Help Menus Exits MotionCreatorPro MotionCreatorPro...
  • Page 49: Select Menu

    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...
  • Page 50: Card Information Menu

    Card Information Menu Provides Information about the card: MotionCreatorPro...
  • Page 51: Configuration 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).
  • Page 55: Single Axis Operation Menu

    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.
  • Page 63: Two-Axis And Four-Axis Operation Menu

    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.
  • Page 68: 2D_Motion Menu

    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”.
  • Page 73: Help Menu

    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...
  • Page 75: B Appendix: Function Library Reference

    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”...
  • Page 76: List Of Functions

    B.2 List of Functions Category Function _8154_initial _8154_close _8154_get_version _8154_set_security_key System & Initialization _8154_check_security_key _8154_reset_security_key _8154_config_from_file _8154_set_pls_outmode Pulse Input/Output _8154_set_pls_iptmode Configuration _8154_set_feedback_src _8154_set_pls_outmode _8154_set_pls_iptmode _8154_set_feedback_src _8154_set_pls_outmode Velocity Mode Motion _8154_set_pls_iptmode _8154_set_feedback_src _8154_set_pls_outmode _8154_start_tr_move _8154_start_ta_move _8154_start_sr_move Single Axis Position Mode _8154_start_sa_move _8154_set_move_ratio _8154_position_override...
  • Page 77: Pcie

    PCIe-8154 Category Function _8154_start_tr_move_xy _8154_start_ta_move_xy _8154_start_sr_move_xy _8154_start_sa_move_xy _8154_start_tr_move_zu _8154_start_ta_move_zu _8154_start_sr_move_zu _8154_start_tr_line2 _8154_start_ta_line2 _8154_start_sr_line2 Linear Interpolated Motion _8154_start_sa_line2 _8154_start_tr_line3 _8154_start_ta_line3 _8154_start_sr_line3 _8154_start_sa_line3 _8154_start_tr_line4 _8154_start_ta_line4 _8154_start_sr_line4 _8154_start_sa_line4 _8154_start_tr_arc_xy _8154_start_ta_arc_xy _8154_start_sr_arc_xy _8154_start_sa_arc_xy _8154_start_tr_arc_zu _8154_start_ta_arc_zu Circular Interpolated Motion _8154_start_sr_arc_zu _8154_start_sa_arc_zu _8154_start_tr_arc2 _8154_start_ta_arc2 _8154_start_sr_arc2 _8154_start_sa_arc2...
  • Page 78 Category Function _8154_start_tr_helical _8154_start_ta_helical Helical Interpolation Motion _8154_start_sr_helical _8154_start_sa_helical _8154_set_home_config _8154_home_move Home Return Mode _8154_home_search _8154_set_pulser_iptmode _8154_disable_pulser_input Manual Pulse Generator _8154_pulser_vmove Mode _8154_pulser_pmove _8154_set_pulser_ratio _8154_motion_done Motion Status, Section _8154_set_servo _8154_set_pcs_logic _8154_set_pcs _8154_set_clr_mode _8154_set_inp _8154_set_alm _8154_set_erc Motion Interface I/O _8154_set_erc_out _8154_clr_erc _8154_set_sd _8154_enable_sd _8154_set_limit_logic...
  • Page 79 PCIe-8154 Category Function _8154_get_position _8154_set_position _8154_get_command _8154_set_command _8154_get_error_counter _8154_reset_error_counter _8154_get_general_counter Position Control and _8154_set_general_counter Counters _8154_get_target_pos _8154_reset_target_pos _8154_get_res_distance _8154_set_res_distance _8154_get_ring_counter _8154_set_ring_counter _8154_escape_home _8154_set_trigger_logic _8154_set_error_comparator _8154_set_general_comparator Position Compare and _8154_set_trigger_comparator Latch _8154_set_latch_source _8154_set_ltc_logic _8154_get_latch_data _8154_set_continuous_move _8154_check_continuous_buffer Continuous Motion _8154_dwell_move _8154_set_tr_move_all _8154_set_ta_move_all...
  • Page 80: System And Initialization

    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().
  • Page 84: Pulse Input/Output Configuration

    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.
  • Page 86: Velocity Mode Motion

    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...
  • Page 89: Single Axis Position Mode

    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 91 PCIe-8154 @ Syntax C/C++(Windows XP/7/8.1) I16 _8154_start_tr_move(I16 AxisNo, F64 Dist, F64 StrVel, F64 MaxVel, F64 Tacc, F64 Tdec); I16 _8154_start_ta_move(I16 AxisNo, F64 Pos, F64 StrVel, F64 MaxVel, F64 Tacc, F64 Tdec); I16 _8154_start_sr_move(I16 AxisNo, F64 Dist, F64 StrVel, F64 MaxVel, F64 Tacc, F64 Tdec, F64 SVacc, F64 SVdec);...
  • 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...
  • Page 93: Linear Interpolated Motion

    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 96 I16 _8154_start_sr_move_xy(I16 Card_id, F64 DistX, F64 DistY, F64 StrVel, F64 MaxVel, F64 Tacc, F64 Tdec, F64 SVacc, F64 SVdec); I16 _8154_start_sa_move_xy(I16 Card_id, F64 PosX, F64 PosY, F64 StrVel, F64 MaxVel, F64 Tacc, F64 Tdec, F64 SVacc, F64 SVdec); I16 _8154_start_tr_move_zu(I16 Card_id, F64 DistX, F64 DistY, F64 StrVel, F64 MaxVel, F64 Tacc, F64 Tdec);...
  • Page 97 PCIe-8154 I16 _8154_start_tr_line4(I16 *AxisArray, F64 *DistArray, F64 StrVel, F64 MaxVel, F64 Tacc, F64 Tdec); I16 _8154_start_ta_line4(I16 *AxisArray, F64 *PosArray, F64 StrVel, F64 MaxVel, F64 Tacc, F64 Tdec); I16 _8154_start_sr_line4(I16 *AxisArray, F64 *DistArray, F64 StrVel, F64 MaxVel, F64 Tacc, F64 Tdec, F64 SVacc, F64 SVdec);...
  • 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.
  • Page 101: Circular Interpolation Motion

    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 103 PCIe-8154 I16 _8154_start_tr_arc_zu(I16 card_id, F64 OffsetCx, F64 OffsetCy, F64 OffsetEx, F64 OffsetEy, I16 CW_CCW, F64 StrVel,F64 MaxVel,F64 Tacc,F64 Tdec); I16 _8154_start_ta_arc_zu(I16 card_id, F64 Cx, F64 Cy, F64 Ex, F64 Ey, I16 CW_CCW, F64 StrVel,F64 MaxVel,F64 Tacc,F64 Tdec); I16 _8154_start_sr_arc_zu(I16 card_id, F64...
  • 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...
  • Page 107: Helical Interpolation Motion

    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 109 PCIe-8154 I16 _8154_start_sa_helical(I16 card_id, F64 Cx, F64 Cy, F64 Ex, F64 Ey, F64 PitchPos, I16 CW_CCW, F64 StrVel, F64 MaxVel, F64 Tacc, F64 Tdec, F64 SVacc, F64 SVdec); Visual Basic6 (Windows XP/7/8.1) B_8154_start_tr_helical Lib "8154.dll" Alias "_8154_start_tr_helical" (ByVal card_id As...
  • 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...
  • Page 111: Home Return Mode

    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...
  • Page 114: Manual Pulse Generator Motion

    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-...
  • Page 117: Motion Status

    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...
  • Page 118: Motion Interface I/O

    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 122 I16 _8154_set_alm(I16 AxisNo, I16 alm_logic, I16 alm_mode); I16 _8154_set_erc(I16 AxisNo, I16 erc_logic, I16 erc_pulse_width, I16 erc_mode); I16 _8154_set_erc_out(I16 AxisNo); I16 _8154_clr_erc(I16 AxisNo); I16 _8154_set_sd(I16 AxisNo, I16 sd_logic, I16 sd_latch, I16 sd_mode); I16 _8154_enable_sd(I16 AxisNo, I16 enable); I16 _8154_set_limit_logic(I16 AxisNo, U16 Logic I16 _8154_set_limit_mode(I16 AxisNo, I16 limit_mode);...
  • 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...
  • Page 126: Interrupt Control

    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...
  • Page 129: Position Control And Counters

    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,...
  • Page 135: Position Compare And Latch

    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 137 PCIe-8154 @ Syntax C/C++(Windows XP/7/8.1) I16 _8154_set_trigger_logic(I16 AxisNo, I16 Logic); I16 _8154_set_error_comparator(I16 AxisNo, I16 CmpMethod, I16 CmpAction, I32 Data); I16 _8154_set_general_comparator(I16 AxisNo, I16 CmpSrc, I16 CmpMethod, I16 CmpAction, I32 Data); I16 _8154_set_trigger_comparator(I16 AxisNo, I16 CmpSrc, I16 CmpMethod, I32 Data); I16 _8154_set_latch_source(I16 AxisNo, I16 LtcSrc);...
  • 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...
  • Page 139: Continuous Motion

    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.
  • Page 141: Multiple Axes Simultaneous Operation

    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”...
  • Page 143 PCIe-8154 I16 _8154_set_ta_move_all(I16 TotalAx, I16 *AxisArray, F64 *PosA, F64 *StrVelA, F64 *MaxVelA, F64 *TaccA, F64 *TdecA); I16 _8154_set_sr_move_all(I16 TotalAx, I16 *AxisArray, F64 *DistA, F64 *StrVelA, F64 *MaxVelA, F64 *TaccA, F64 *TdecA, F64 *SVaccA, F64 *SVdecA); I16 _8154_set_sa_move_all(I16 TotalAx, I16 *AxisArray, F64 *PosA, F64 *StrVelA, F64 *MaxVelA, F64 *TaccA, F64 *TdecA, F64 *SVaccA, F64 *SVdecA);...
  • Page 144: General-Purpose Dio

    _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.
  • Page 146: Soft Limit

    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...
  • Page 148: Backlash Compensation / Vibration Suppression

    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.
  • Page 150: Speed Profile Calculation

    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 151 PCIe-8154 Tdec, F64 *pStrVel, F64 *pMaxVel, F64 *pTacc, F64 *pTdec, F64 *pTconst ); I16 _8154_get_ta_move_profile(I16 AxisNo, F64 Pos, F64 StrVel, F64 MaxVel, F64 Tacc, F64 Tdec, F64 *pStrVel, F64 *pMaxVel, F64 *pTacc, F64 *pTdec, F64 *pTconst ); I16 _8154_get_sr_move_profile(I16 AxisNo, F64...
  • 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...
  • Page 153: Extended General Purpose Ttl Input/Output

    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);...
  • Page 155: Return Code

    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...
  • Page 157: C Appendix: Connection Example

    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:...
  • Page 158 This page intentionally left blank.
  • Page 159: Important Safety Instructions

    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:...
  • Page 161: Getting Service

    San Jose, CA 95138, USA Tel: +1-408-360-0200 Toll Free: +1-800-966-5200 (USA only) Fax: +1-408-360-0222 Email: info@adlinktech.com ADLINK Technology (China) Co., Ltd. Address: (201203) 300 Fang Chun Rd., Zhangjiang Hi-Tech Park Pudong New Area, Shanghai, 201203 China Tel: +86-21-5132-8988 Fax: +86-21-5132-3588 Email: market@adlinktech.com...
  • Page 162 84 Genting Lane #07-02A, Cityneon Design Centre Singapore 349584 Tel: +65-6844-2261 Fax: +65-6844-2263 Email: singapore@adlinktech.com ADLINK Technology Singapore Pte. Ltd. (Indian Liaison Office) Address: #50-56, First Floor, Spearhead Towers Margosa Main Road (between 16th/17th Cross) Malleswaram, Bangalore - 560 055, India Tel: +91-80-65605817, +91-80-42246107 Fax:...

Table of Contents