Summary of Contents for ADLINK Technology PCI-8154
Page 1
PCI-8154 Advanced & Modulized 4-Axis Servo / Stepper Motion Control Card User’s Manual Manual Rev. 2.00 Revision Date: February 22, 2006 Part No: 50-11146-1000 Advance Technologies; Automate the World.
Page 2
Copyright 2007 ADLINK TECHNOLOGY INC. All Rights Reserved. The information in this document is subject to change without prior notice in order to improve reliability, design, and function and does not represent a commitment on the part of the manufacturer.
Page 3
Getting Service from ADLINK Customer Satisfaction is top priority for ADLINK Technology Inc. Please contact us should you require any service or assistance. ADLINK TECHNOLOGY INC. Web Site: http://www.adlinktech.com Sales & Service: Service@adlinktech.com TEL: +886-2-82265877 FAX: +886-2-82265717 Address: 9F, No. 166, Jian Yi Road, Chungho City,...
Page 6
General-purpose Signal RDY ..........32 3.10 Multi-Functional output pin: DO/CMP ........ 33 3.11 Multi-Functional input pin: DI/LTC/SD/PCS/CLR/EMG..34 3.12 Pulser Input Signals PA and PB (PCI-8154)...... 35 3.13 Simultaneously Start/Stop Signals STA and STP....36 4 Operation Theory .............. 39 Classifications of Motion Controller........
Page 7
Servo alarm reset switch ..........73 Mechanical switch interface..........74 Original or home signal ..........74 End-Limit switch signal ..........74 Slow down switch ............74 Positioning Start switch ..........75 Counter Clear switch ............ 75 Counter Latch switch ............ 75 Emergency stop input ...........
Page 8
6 Function Library.............. 121 List of Functions............... 122 C/C++ Programming Library ..........131 System and Initialization ..........132 Pulse Input/Output Configuration........136 Velocity mode motion............139 Single Axis Position Mode ..........142 Linear Interpolated Motion ..........146 Circular Interpolation Motion ..........155 Helical Interpolation Motion..........
List of Figures Figure 1-1: PCI-8154 Block Diagram ........... 2 Figure 1-2: Flow chart for building an application ......3 Figure 2-1: PCB Layout of the PCI-8154 ........10 List of Figures...
In this situation, you can adopt a DB-8150 to extend the function on PCI-8154. In addi- tion to motion control, sensors and actuators are key elements in machine automation.
Page 12
The card index value of the PCI-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 13
An on-screen display lists all installed axes information and I/O signal status of the PCI-8154. Windows programming libraries are also provided for C++ compil- ers and 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 PCI-8154 motion control system. 32-bit PCI bus Plug-and-Play (Universal) 4 axes of step and direction pulse output for controlling stepping or servomotor Maximum output frequency of 6.55MPPS Pulse output options: OUT/DIR, CW/CCW, AB phase Pulse input options: CW/CCW, AB phase x1, x2, x4 Maximum pulse input frequency of 3.2Mhz in CW/CCW or...
Page 15
Dedicated emergency input pin for wiring Software supports a maximum of up to 12 PCI-8154 cards operation in one system Compact PCB design Includes MotionCreatorPro, a Microsoft Windows-based application development software PCI-8154 libraries and utilities for Windows 2000/XP/Vista. Introduction...
1.2 Specifications Applicable Motors: Stepping motors AC or DC servomotors with pulse train input servo drivers Performance: Number of controllable axes: 4 Maximum pulse output frequency: 6.55MPPS, linear, trape- zoidal, or S-Curve velocity profile drive Internal reference clock: 19.66MHz 28-bit up/down counter range: 0-268, 435, 455 or –134, 217, 728 to +134, 217, 727 Position pulse setting range (28-bit): -134, 217, 728 to +134, 217, 728...
Page 17
Humidity: 5 - 85%, non-condensing Power Consumption 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 PCI-8154 Dimensions (PCB size): 185mm(L) X 100 mm(W) Introduction...
1.3 Supported Software 1.3.1 Programming Library Windows 2000/XP/Vista DLLs are provided for the PCI-8154. These function libraries are shipped with the board. 1.3.2 MotionCreatorPro This Windows-based utility is used to setup cards, motors, and systems. It can also aid in debugging hardware and software prob- lems.
Installation This chapter describes how to install PCI-8154. Please follow these steps below: Check what you have (section 2.1) Check the PCB (section 2.2) Install the hardware (section 2.3) Install the software driver (section 2.4) Understanding the I/O signal connections (chapter 3) and...
PCI cards in the system. 2.3.2 PCI slot selection Some computer system may have both PCI and ISA slots. Do not force the PCI card into a PC/AT slot. The PCI-8154 can be used in any PCI slot. 2.3.3 Installation Procedures 1.
Page 22
Check the control panel of the Windows system if the card is listed by the system. If not, check the PCI settings in the BIOS or use another PCI slot. Installation...
2.4 Software Driver Installation 1. Autorun the ADLINK All-In-One CD. Choose Driver Installation -> Motion Control -> PCI-8154. 2. Follow the procedures of the installer. 3. After setup installation is completed, restart windows. Note: Please download the latest software from ADLINK website if necessary.
Page 24
No. Name I/O Function No. Name I/O Function SVON1 Servo On/Off SVON3 Servo On/Off ERC1 Dev. ctr, clr. Signal ERC3 Dev. ctr, clr. signal ALM1 Alarm signal ALM3 Alarm signal INP1 In-position signal INP3 In-position signal RDY1 Multi-purpose Input signal RDY3 Multi-purpose Input signal EXGND...
2.6 K1/K2 Pin Assignments: Simultaneous Start/ Stop K1 and K2 are for simultaneous start/stop signals for multiple axes or multiple cards. No. Name Function PCI Bus power Output (VCC) Simultaneous start signal input/output Simultaneous stop signal input/output PCI Bus power ground Table 2-2: K1/K2 Pin Assignments: Simultaneous Start/Stop Note: +5V and GND pins are provided by the PCI Bus power.
2.8 SW1 Card Index Selection The SW1 switch is used to set the card index. For example, if 1 is set to ON and the others are OFF, that card index is 1. The index value can be from 0 to 15. Refer to the following table for details. Card ID Switch Setting (ON=1) 0000 0001...
2.9 CN4 Manual Pulsar The signals on CN4 are for manual pulsar input. Name Function (Axis) Isolated Power +5V Pulser A+ phase signal input Pulser A-phase signal input Pulser B+ phase signal input Pulser B-phase signal input EXGND External Ground Not Available Not Available Not Available...
Signal Connections Signal connections of all I/O’s are described in this chapter. Refer to the contents of this chapter before wiring any cable between the PCI-8154 and any motor driver. This chapter contains the following sections: Section 3.1 Pulse Output Signals OUT and DIR Section 3.2...
3.1 Pulse Output Signals OUT and DIR There are 4 axes pulse output signals on the PCI-8154. For each axis, two pairs of OUT and DIR differential signals are used 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 31
The default setting of OUT and DIR is set to differential line driver mode. The following wiring diagram is for OUT and DIR signals of axis. PCI-8154: NOTE: If the pulse output is set to open collector output mode, OUT- and DIR- are used to transmit OUT and DIR signals. The sink current must not exceed 20mA on the OUT- and DIR- pins.
Page 32
Suggest Usage: Jumper 2-3 shorted and connect OUT-/DIR- to a 470 ohm pulse input interface’s COM of driver. See the following figure. Choose OUT-/DIR- to connect to driver’s OUT/DIR. Warning: The sink current must not exceed 20mA or the 26LS31 will be damaged! Signal Connections...
3.2 Encoder Feedback Signals EA, EB and EZ The encoder feedback signals include EA, EB, and EZ. Every axis has six pins for three differential pairs of phase-A (EA), phase-B (EB), and index (EZ) inputs. EA and EB are used for position counting, and EZ is used for zero position indexing.
Page 34
Connection to Line Driver Output To drive the PCI-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 35
The connection between the PCI-8154, encoder, and the power supply is shown in the diagram below. Note that an external current limiting resistor R is necessary to protect the PCI-8154 input circuit. The following table lists the suggested resistor values according to the encoder power supply.
3.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: CN3 Pin No Signal Name Axis # ORG0 ORG1 ORG2 ORG3 The input circuit of the ORG signals is shown below.
3.4 End-Limit Signals PEL and MEL There are two end-limit signals PEL and MEL for each axis. PEL indicates the end limit signal is in the plus direction and MEL indi- cates the end limit signal is in the minus direction. The signal names, pin numbers, and axis numbers are shown in the table below: CN3 Pin No Signal Name Axis # CN3 Pin No Signal Name Axis #...
3.5 In-position Signal INP The in-position signal INP from a servo motor driver indicates its deviation error. If there is no deviation error then the servo’s posi- tion indicates zero. The signal names, pin numbers, and axis numbers are shown in the table below: CN3 Pin No Signal Name Axis # INP0 INP1...
3.6 Alarm Signal ALM The alarm signal ALM is used to indicate the alarm status from the servo driver. The signal names, pin numbers, and axis numbers are shown in the table below: CN3 Pin No Signal Name Axis # ALM0 ALM1 ALM2...
3.7 Deviation Counter Clear Signal ERC The deviation counter clear signal (ERC) is active in the following 4 situations: 1. Home return is complete 2. End-limit switch is active 3. An alarm signal stops OUT and DIR signals 4. An emergency stop command is issued by software (operator) The signal names, pin numbers, and axis numbers are shown in the table below:...
3.8 General-purpose Signal SVON The SVON signal can be used as a servomotor-on control or gen- eral purpose output signal. The signal names, pin numbers, and its axis numbers are shown in the following table: CN3 Pin No Signal Name Axis # SVON0 SVON1 SVON2...
3.9 General-purpose Signal RDY The RDY signals can be used as motor driver ready input or gen- eral purpose input signals. The signal names, pin numbers, and axis numbers are shown in the following table: CN3 Pin No Signal Name Axis # RDY0 RDY1 RDY2...
3.10 Multi-Functional output pin: DO/CMP The PCI-8154 provides 4 multi-functional output channels: DO0/ CMP0 to DO3/CMP3 corresponds to 4 axes. Each of the output pins can be configured as Digit Output (DO) or as Comparison Output (CMP) individually. When configured as a Comparison Out- put pin, the pin will generate a pulse signal when the encoder counter matches a pre-set value set by the user.
3.11 Multi-Functional input pin: DI/LTC/SD/PCS/CLR/ The PCI-8154 provides 4 multi-functional input pins. Each of the 4 pins can be configured as DI (Digit Input) or LTC (Latch) or SD (Slow down) or PCS (Target position override) or CLR (Counter clear) or EMG (Emergency). To select the pin function, please refer to 6.12.
3.12 Pulser Input Signals PA and PB (PCI-8154) The PCI-8154 can accept differential pulser input signals through the pins of CN4 listed below. The pulser behaves like an encoder. The A-B phase signals generate the positioning information, which guides the motor.
STA/ STP signals for simultaneous start/stop. If there are two or more PCI-8154 cards, connect the K2 connector on the previous card to K1 connector on the following card. The K1 and K2 connectors on a same PCI-8154 are connected inter- nally.
Page 47
STA and STP pins on the K1 connector of the first PCI-8154 card. Signal Connections...
Operation Theory This chapter describes the detail operation of the motion controller card. Contents of the following sections are as follows: Section 4.1: Classifications of Motion Controller Section 4.2: Motion Control Modes Section 4.3: Motor Driver Interface Section 4.4: Mechanical switch Interface Section 4.5: The Counters Section 4.6:...
4.1.2 Pulse motion control interface The second interface of motion and motor control is a pulse train type. As a trend of digital world, pulse trains represent a new con- cept to motion control. The counts of pulses show how many steps of a motor rotates and the frequency of pulses show how fast a motor runs.
4.1.4 Software real-time motion control kernel For motion control kernel, there are three ways to accomplish it: DSP, ASIC, and software real-time. A motion control system needs an absolutely real-time control cycle and the calculation on controller must provide a control data at the same cycle.
Easy Easy 4.1.8 PCI-8154 motion controller type The PCI-8154 is ASIC based, pulse type motion controller made into three blocks: motion ASIC, PCI card, software motion library. The motion ASIC can be accessed via our software motion libray under many kinds of Windows NT/2000/XP, Linux, and RTX driver.
4.2 Motion Control Modes Motion control makes the motors run according to a specific speed profile, path trajectory and synchronous condition with other axes. The following sections describe the motion control modes of this motion controller could be performed. 4.2.1 Coordinate system The Cartesian coordinate is used and pulses are in the unit of length.
pulses per 1mm and the motor will move 1mm if the motion con- troller send 1,000 pulses, It means that when we want to move 1 mm, we need to send 1,000 pulses to motor driver then we will get the encoder feedback value of 10,000 pulses.
4.2.3 Trapezoidal speed profile Trapezodial speed profile means the acceleration/deceleration area follows a 1st order linear velocity profile (constant accelera- tion rate). The profile chart is shown as below: The area of the velocity profile represents the distance of this motion.
4.2.4 S-curve and Bell-curve speed profile S-curve means the speed profile in accelerate/decelerate area fol- lows a 2nd order curve. It can reduce vibration at the beginning of motor start and stop. In order to speed up the acceleration/decel- eration during motion, we need to insert a linear part into these areas.
Page 57
If VSacc or VSdec=0, it means acceleration or deceleration use pure S-curve without linear part. The Acceleration chart of bell curve is shown below: The S-curve profile motion functions are designed to always pro- duce smooth motion. If the time for acceleration parameters com- bined with the final position don’t allow an axis to reach the maximum velocity (i.e.
4.2.5 Velocity mode Veloctiy mode means the pulse command is continuously output- ing until a stop command is issued. The motor will run without a target position or desired distance unless it is stopped by other reasons. The output pulse accelerates from a starting velocity to a specified maximum velocity.
The unit of distance or position is pulse internally on the motion controller. The minimum length of distance is one pulse. However, in PCI-8154, we provide a floating point function for users to transform a physical length to pulses. Inside our software library, we will keep those distance less than one pulse in register and apply them to the next motion function.
4.2.7 Two axes linear interpolation position mode “Interpolation between multi-axes” means these axes start simul- taneously, and reach their ending points at the same time. Linear means the ratio of speed of every axis is a constant value. Assume that we run a motion from (0,0) to (10,4). The linear inter- polation results are shown as below.
Δ Δ The speed ratio along X-axis and Y-axis is ( Y), respectively, and the vector speed is: When calling 4-axis linear interpolation functions, the vector speed needs to define the start velocity, StrVel, and maximum velocity, MaxVel. 4.2.8 Two axes circular interpolation mode Circular interpolation means XY axes simultaneously start from ini- tial point, (0,0) and stop at end point, (1800,600).
The command precision of circular interpolation is shown below. The precision range is at radius ±1/2 pulse. 4.2.9 Continuous motion Continuous motion means a series of motion command or position can be run continuously. Users can set a new command right after previous one without interrupting it.
Page 63
to set a new command into 2nd buffer before executing register is finished, the motion can run endlessly. The following diagram shows this architecture of continuous motion. Besides position command, the speed command should be set correctly to perform a speed continuous profile. For the following example, there are three motion command of this continuous motion.
Page 64
If the 2nd command’s speed value is lower than the others, the settings would be like as following diagram: For 4-axis continuous arc interpolation is the same concept. You can set the speed matched between two command speed set- tings. If the INP checking is enabled, the motion will have some delayed between each command in buffers.
4.2.10 Home Return Mode Home return means searching a zero position point on the coordi- nate. Sometimes, users use a ORG, EZ or EL pin as a zero posi- tion on the coordinate. At the beginning of machine power on, the program needs to find a zero point of this machine.
Page 66
Home mode=0: ( ORG Turn ON then reset counter ) When SD is not installed When SD is installed and SD is not latched Operation Theory...
Page 67
Home mode=1: (Twice ORG turn ON then reset counter) Home mode=2: (ORG ON then Slow down to count EZ num- bers and reset counter) Operation Theory...
Page 68
Home mode=3: (ORG ON then count EZ numbers and reset counter) Home mode=4: (ORG On then reverse to count EZ number and reset counter) Operation Theory...
Page 69
Home mode=5: (ORG On then reverse to count EZ number and reset counter, not using FA Speed) Home mode=6: (EL On then reverse to leave EL and reset counter) Home mode=7: (EL On then reverse to count EZ number and reset counter) Operation Theory...
Page 70
Home mode=8: (EL On then reverse to count EZ number and reset counter, not using FA Speed) Home mode=9: (ORG On then reverse to zero position, an extension from mode 0) Operation Theory...
Page 71
Home mode=10: (ORG On then counter EZ and reverse to zero position, an extension from mode 3) Home mode=11: (ORG On then reverse to counter EZ and reverse to zero position, an extension from mode 5) Operation Theory...
Home mode=12: (EL On then reverse to count EZ number and reverse to zero position, an extension from mode 8) 4.2.11 Home Search Function This mode is used to add auto searching function on normal home return mode described in previous section no matter which posi- tion the axis is.
4.2.12 Manual Pulser Function Manual pulser is a device to generate pulse trains by hand. The pulses are sent to motion controller and re-directed to pulse output pins. The input pulses could be multiplied or divided before send- ing out. The motion controller receives two kinds of pulse trains from man- ual pulser device: CW/CCW and AB phase.
4.2.14 Speed Override Function Speed override means that users can change command’s speed during the operation of motion. The change parameter is a per- centage of original defined speed. Users can define a 100% speed value then change the speed by percentage of original speed when motion is running.
4.2.15 Position Override Function Position override means that when users issue a positioning com- mand and want to change its target position during this operation. If the new target position is behind current position when override command is issued, the motor will slow down then reverse to new target position.
4.3 The motor driver interface We provide several dedicated I/Os which can be connected to motor driver directly and have their own functions. Motor drivers have many kinds of I/O pins for external motion controller to use. We classify them to two groups. One is pulse I/O signals including pulse command and encoder interface.
Page 77
Single Pulse Output Mode (OUT/DIR Mode) In this mode, the OUT pin is for outputting command pulse chain. The numbers of OUT pulse represent distance in pulse. The fre- quency of the OUT pulse represents speed in pulse per second. The DIR signal represents command direction of positive (+) or negative (-).
Page 78
Dual Pulse Output Mode (CW/CCW Mode) In this mode, the waveform of the OUT and DIR pins represent CW (clockwise) and CCW (counter clockwise) pulse output respectively. The numbers of pulse represent distance in pulse. The frequency of the pulse represents speed in pulse per second. Pulses output from the CW pin makes the motor move in positive direction, whereas pulse output from the CCW pin makes the motor move in negative direction.
4.3.2 Pulse feedback input interface Our motion controller provides one 28-bit up/down counter of each axis for pulse feedback counting. This counter is called position counter. The position counter counts pulses from the EA and EB signal which have plus and minus pins on connector for differential signal inputs.
Page 80
Plus and Minus Pulses Input Mode (CW/CCW Mode) The pattern of pulses in this mode is the same as the Dual Pulse Output Mode in the Pulse Command Output section except that the input pins are EA and EB. In this mode, pulses from EA pin cause the counter to count up, whereas EB pin caused the counter to count down.
4.3.3 In position signal The in-position signal is an output signal from motor driver. It tells motion controllers a motor has been reached a position within a predefined error. The predefined error value is in-position value. Most motor drivers call it as INP value. After motion controller issues a positioning command, the motion busy status will keep true until the INP signal is ON.
4.3.5 Error clear signal The ERC signal is an output from the motion controller. It tells motor driver to clear the error counter. The error counter is counted from the difference of command pulses and feedback pulses. The feedback position will always have a delay from the command position.
4.3.7 Servo Ready Signal The servo ready signal is a general digital input on motion control- ler. It has no relative purpose to motion controller. Users can con- nect this signal to motor driver’s RDY signal to check if the motor driver is in ready state.
4.4 Mechanical switch interface We provide some dedicated input pins for mechanical switches like original switch (ORG), plus and minus end-limit switch (±EL), slow down switch (SD), positioning start switch (PCS), counter latch switch (LTC), emergency stop input (EMG) and counter clear switch (CLR).
4.4.4 Positioning Start switch The positioning start switch is used to move a specific position when it is turned on. The function is shown as below. 4.4.5 Counter Clear switch The counter clear switch is an input signal which makes the counters of motion controller to reset.
4.5 The Counters There are four counters for each axis of this motion controller. They are described in this section. Command position counter: counts the number of output pulses Feedback position counter: counts the number of input pulses Position error counter: counts the error between command and feedback pulse numbers.
4.5.2 Feedback position counter The feedback position counter is a 28-bit binary up/down counter. Its input source is the input pulses from the EA/EB pins. It counts the motor position from motor’s encoder output. This counter could be set from a source of command position for an option when no external encoder inputs.
4.5.4 General purpose counter The source of general purpose counter could be any of the follow- ing: 1. Command position output – the same as a command position counter 2. Feedback position input – the same as a feedback posi- tion counter 3.
4.6 The Comparators There are 5 counter comparators of each axis. Each comparator has dedicated functions. They are: 1. Positive soft end-limit comparator to command counter 2. Negative soft end-limit comparator to command counter 3. Command and feedback error counter comparator 4.
4.6.4 Trigger comparator The trigger comparator is much like general comparator. It has an additional function, generating a trigger pulse when condition is met. Once the condition is met, the CMP pin on the connector will output a pulse for specific purpose like triggering a camera to catch picture.
4.7 Other Motion Functions We provide many other functions on the motion controller. Such as backlash compensation, slip correction, vibration restriction, speed profile calculation and so on. The following sections will describe these functions. 4.7.1 Backlash compensation and slip corrections The motion controller has backlash and slip correction functions.
4.7.3 Speed profile calculation function Our motion function needs several speed parameters from users. Some parameters are conflict in speed profile. For example, if users input a very fast speed profile and a very short distance to motion function, the speed profile is not exist for these parame- ters.
_8154_int_control() to enable if disable the interrupt service. There are three kinds of interrupt sources on PCI-8154. One is motion interrupt source and the other is error interrupt source and another is GPIO interrupt sources. Motion and GPIO interrupt sources can be maskable but error interrupt sources can’t.
Motion Interrupt Source Bit Settings Description Normally Stop Next command in buffer starts Command pre-register 2 is empty and allow new command to write Acceleration Start Acceleration End 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...
The error interrupt sources are non-maskable but the error num- ber of situation could be get from _8154_wait_error_interrupt()’s return code if it is not timeout. Error Interrupt return codes Value Description +Soft Limit is ON and axis is stopped -Soft Limit is ON and axis is stopped Comparator 3 is ON and axis is stopped General Comparator or comparator 4 is ON and axis is stopped Trigger Comparator or comparator 5 is ON and axis is stopped...
Page 96
The steps for using interrupts: 1. Use _8154_int_control(CARD_ID, Enable=1/Disable=0); 2. Set interrupt sources for Event or GPIO interrupts. 3. _8154_set_motion_int_facor(AXIS0, 0x01); // Axis0 nor- mally stop 4. _8154_wait_motion_interrupt(AXIS0, 0x01, 1000) // Wait 1000ms for normally stop interrupt 5. I16 ErrNo=_8154_wait_error_interrupt(AXIS0, 2000); // Wait 2000ms for error interrupts Operation Theory...
4.9 Multiple Card Operation The motion controller allows more than one card in one system. Since the motion controller is plug-and-play compatible, the base address and IRQ setting of the card are automatically assigned by the PCI BIOS at the beginning of system booting. Users don’t need and can’t change the resource settings.
MotionCreatorPro After installing the hardware (Chapters 2 and 3), it is necessary to correctly configure all cards and double check the system before running. This chapter gives guidelines for establishing a control system and manually testing the 8154 cards to verify correct oper- ation.
5.2 About MotionCreatorPro Before Running MotionCreatorPro, the following issues should be kept in mind. 1. MotionCreatorPro is a program written in VB.NET 2003, and is available only for Windows 2000/XP with a screen resolution higher than 1024x768. It cannot be run under DOS.
5.3.4 Configuration Menu In the IO_Config_1 menu, users can configure ALM, INP, ERC, EL, ORG, and EZ. MotionCreatorPro...
Page 105
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. The related function call is _8154_set_inp() 3.
Page 106
In the IO_Config_2 menu, users can configure LTC, SD, PCS, and Select_Input. MotionCreatorPro...
Page 107
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(). 4.
Page 108
In the Pulse & INT_Config menu, users can configure pulse input/output and move ratio and INT factor. MotionCreatorPro...
Page 109
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). related function calls _8154_set_pls_iptmode(), _8154_set_feedback_src(). 3. INT Factor: Select factors to initiate the event int. The related function call is _8154_set_int_factor().
5.3.5 Single Axis Operation Menu In this menu, users can change the settings a selected axis, including velocity mode motion, preset relative/absolute motion, manual pulse move, and home return. MotionCreatorPro...
Page 111
1. Position: Command: displays the value of the command counter. The related function is _8154_get_command(). 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 counter. The related function is _8154_get_error_counter().
Page 112
added. To close it, click the same button again. To clear data, click on the curve. 7. Operation Mode: Select operation mode. Absolute Mode: “Position1” and “position2” will be used as absolution target positions for motion. The related functions are _8154_start_ta_move(), _8154_start_sa_move().
Page 113
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” is checked, it will execute auto homing when motion starts. ERC Output: Select if the ERC signal will be sent when home move completes.
Page 114
position1<-->position2). It is only effective when “Rela- tive Mode” or “Absolute Mode” is selected. 11. Vel. Profile: Select the velocity profile. Both Trapezoidal and S-Curve are available for “Absolute Mode,” “Relative Mode,” and “Cont. Move.” 12.FA Speed/ATU: Sets the configurations of the FA Speed.
Page 115
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 116
16.Servo On: Set the SVON signal output status. The related function is _8154_set_servo(). 17.Play Key: Left play button: Clicking this button will cause the 8154 start to outlet pulses according to previous setting. In “Absolute Mode,” it causes the axis to move to position1.
Page 117
18.Stop Button: Clicking this button will cause 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().
5.3.6 Two-Axis and Four-Axis Operation Menu In two-axis and four-axis menu, users can change the settings of two or four selected axis, including velocity mode motion, preset relative/absolute motion. User can discover two-axis and four- axis operation menu are similarly, that’s because we just introduce two-axis menu.
Page 119
1. Motion Parameters: Set the parameters for single axis motion. This parameter is meaningless if “Manual Pulser Move” is selected, since the velocity and moving dis- tance is decided by pulse input. Start Velocity: Set the start velocity of motion in units of PPS.
Page 120
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 121
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. ClearPlots: Clear the Motion Graph. Save Config: Save current configuration to 8154.ini and 8154MC.ini.
5.3.7 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 123
1. Jog Type: Continuous Jog: Continuous Jog means that when you press one directional button, the axis will continuously move with an increasing speed. The longer you press, the faster it runs. When you un-press the button, the axis will stop immediately. Incremental Jog: Incremental jog means that when you click one directional button, the axis will step a distance according to the Step-Size’s setting.
Page 124
3. Operation Mode: Select operation mode. Absolute Mode: “Position” will be used as absolution target positions for motion when “Linear Interpolation Mode” is selected. “ABS EndPos” and “ABS Center” will be 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 125
7. Set Distance/End Pos: Set the absolution target posi- tions or relative distance for “Linear Interpolation Mode” . Set the position end of arc for “Circular Interpolation Mode”. It is available for “Linear Interpolation Mode” and “Circular Interpolation Mode”. 8. Set Center: Set the position of center for “Circular Inter- polation Mode”.
Page 126
14.Mode: Linear Interpolation: After setting motion parameters correctly in “Motion Parameters Setting Frame”, you can enter the destination in this frame. Then click Run button to start linear interpolation motion. Circular Interpolation: The setting for circular interpola- tion mode has three additional parameters in “Motion Parameters Setting Frame”.
Page 127
15.Motion status: Displays the returned value of the _8154_motion_done function. The related function is _8154_motion_done(). 16.Play Key: Play button: Clicking this button will cause the 8154 start to outlet pulses according to previous setting. In “Linear Mode,” it causes the axis to move to Distance. The related function is _8154_start_tr_move_xy, _8154_start_sr_move_xy.
Page 128
18.Graph Range Frame: Clear: Clear the Motion Graph. Center: Display the Motion Graph in center position. 19.Graph Range: controls X or Y axis’s display range. 20.Origin Position: let user to pan the display location. MotionCreatorPro...
Function Library This chapter describes the supporting software for the PCI-8154 card. User can use these functions to develop programs in C, C++, or Visual Basic. If Delphi is used as the programming envi- ronment, it is necessary to transform the header files, pci_8154.h manually.
_8154_set_security_key Set security the password _8154_check_security_key Check security the password _8154_reset_security_key Reset the security password to default value _8154_config_from_file Config PCI-8154 setting from file Pulse Input/Output Configuration, Section 6.4 Function Name Description _8154_set_pls_outmode Set pulse command output mode _8154_set_pls_iptmode Set encoder input mode...
Page 133
Velocity mode motion, Section 6.5 Function Name Description Accelerate an axis to a constant velocity with _8154_tv_move trapezoidal profile Accelerate an axis to a constant velocity with _8154_sv_move S-curve profile _8154_sd_stop Decelerate to stop _8154_emg_stop Immediately stop _8154_get_current_speed Get current speed(pulse/sec) _8154_speed_override Change speed on the fly _8154_set_max_override_speed Set the maximum override speed...
Page 134
Linear Interpolated Motion, Section 6.7 Function Name Description Begin a relative 2-axis linear interpolation for X & Y, _8154_start_tr_move_xy with trapezoidal profile Begin an absolute 2-axis linear interpolation for X & _8154_start_ta_move_xy Y, with trapezoidal profile Begin a relative 2-axis linear interpolation for X & Y, _8154_start_sr_move_xy with S-curve profile Begin an absolute 2-axis linear interpolation for X &...
Page 135
Function Name Description Begin a relative 4-axis linear interpolation for any 4 _8154_start_sr_line4 of 4 axes, with S-curve profile Begin an absolute 4-axis linear interpolation for any _8154_start_sa_line4 4 of 4 axes, with S-curve profile Circular Interpolation Motion, Section 6.8 Function Name Description Begin a t-curve relative circular interpolation for X &...
Page 136
Helical Interpolation Motion, Section 6.9 Function Name Description Begin a t-curve relative helical interpolation for X, Y _8154_start_tr_helical and Z Begin a t-curve absolute helical interpolation for X, _8154_start_ta_helical Y and Z Begin a s-curve relative helical interpolation for X, _8154_start_sr_helical Y and Z Begin a s-curve absolute helical interpolation for X,...
Page 137
Motion Interface I/O, Section 6.13 Function Name Description _8154_set_servo Set On-Off state of SVON signal _8154_set_pcs_logic Set PCS(Position Change Signal) signal’s logic _8154_set_pcs Enable PCS for position override _8154_set_clr_mode Set CLR signal’s mode _8154_set_inp Set INP signal’s logic and operating mode _8154_set_alm Set ALM signal’s logic and operating mode _8154_set_erc...
Page 138
Position Control and Counters, Section 6.15 Function Name Description _8154_get_position Get the value of the feedback position counter _8154_set_position Set the feedback position counter _8154_get_command Get the value of the command position counter _8154_set_command Set the command position counter _8154_get_error_counter Get the value of the position error counter _8154_reset_error_counter Reset the position error counter...
Page 139
Multiple Axes Simultaneous Operation, Section 6.18 Function Name Description _8154_set_tr_move_all Multi-axis simultaneous operation setup _8154_set_ta_move_all Multi-axis simultaneous operation setup _8154_set_sr_move_all Multi-axis simultaneous operation setup _8154_set_sa_move_all Multi-axis simultaneous operation setup _8154_start_move_all Begin a multi-axis trapezoidal profile motion _8154_stop_move_all Simultaneously stop multi-axis motion General-Purpose Input/Output, Section 6.19 Function Name Description...
Page 140
Speed Profile Calculation 6.22 Function Name Description _8154_get_tr_move_profile Get relative trapezoidal speed profile _8154_get_ta_move_profile Get absolute trapezoidal speed profile _8154_get_sr_move_profile Get relative S-curve speed profile _8154_get_sa_move_profile Get absolute S-curve speed profile Function Library...
1.797683134862315E309 Boolean Boolean logic value TRUE, FALSE Table 6-1: Data type definitions The functions of the PCI-8154 software drivers use full-names to represent the functions real meaning. The naming convention rules are: In a ‘C’ programming environment: _{hardware_model}_{action_name}. e.g. _8154_initial().
_8154_set_security_key – Set the security password _8154_check_security_key – Check the security password _8154_reset_security_key – Rest the security password to default _8154_config_from_file – Config PCI-8154 settings from file @ Description _8154_initial: This function is used to initialize an 8154 card without assign- ing the hardware resources.
Page 143
_8154_check_security_key _8154_set_security_key _8154_config_from_file: This function is used to load the configuration of the PCI-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 145
0: the sequence of PCI slot. 1: on board DIP switch (SW1). card_id: Specify the PCI-8154 card index. The card_id could be decided by DIP switch (SW1) or depend on slot sequence. Please refer to _8154_initial(). firmware_ver: The current firmware version.
6.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 147
Visual Basic6 (Windows 2000/XP) 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 148
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 Function Library...
6.5 Velocity mode motion @ Name _8154_tv_move – Accelerate an axis to a constant velocity with trapezoidal profile _8154_sv_move – Accelerate an axis to a constant velocity with S-curve profile _8154_emg_stop – Immediately stop _8154_sd_stop – Decelerate to stop _8154_get_current_speed – Get current speed _8154_speed_override –...
Page 150
preset move (both trapezoidal and S-curve motion), manual move, or home return function is performed. Note: The velocity profile is decided by original motion profile. _8154_get_current_speed: This function is used to read the current pulse output rate (pulse/sec) of a specified axis. It is applicable in any time in any operation mode.
Page 151
@ Argument AxisNo: Axis number designated to move or stop. card_id Physical axis AxisNo … … StrVel: Starting velocity in units of pulse per second MaxVel: Maximum velocity in units of pulse per second Tacc: Specified acceleration time in units of second SVacc: Specified velocity interval in which S-curve acceleration is performed.
6.6 Single Axis Position Mode @ Name _8154_start_tr_move – Begin a relative trapezoidal profile move _8154_start_ta_move – Begin an absolute trapezoidal profile move _8154_start_sr_move – Begin a relative S-curve profile move _8154_start_sa_move – Begin an absolute S-curve profile move _8154_set_move_ratio – Set the ration of command pulse and feedback pulse _8154_position_override –...
Page 153
_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 155
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...
6.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 – Begin an 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 157
_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 158
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 161
ByVal StrVel As Double, ByVal MaxVel As 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,...
Page 162
As Double, ByVal Tdec As Double, ByVal Svacc As Double, ByVal Svdec As Double) As Integer @ Argument card_id: Specify the PCI-8154 card index. The card_id could be decided by DIP switch (SW1) or depend on slot sequence. Please refer to _8154_initial().
Page 163
card_id Physical axis AxisNo … … 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 164
F64 DistArray[2] = {1000.0, 2000.0} //for axis 0 & 3 *PosArray: Array of absolute position for linear interpolation. Example: 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 Function Library...
6.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 – Begin a T-curve absolute circular interpolation for X & Y axis _8154_start_sr_arc_xy – Begin a S-curve relative circular interpolation for X & Y axis _8154_start_sa_arc_xy –Begin a S-curve absolute circular interpolation for X &...
Page 166
@ 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 168
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 169
As Double, ByVal Tdec As Double, ByVal Svacc As Double, ByVal Svdec As Double) As Integer @ Argument card_id: Specify the PCI-8154 card index. The card_id could be decided by DIP switch (SW1) or depend on slot sequence. Please refer to _8154_initial().
Page 170
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 171
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 (incorrect) *OffsetCenter: Array of the offset to center (relative to the start position)
6.9 Helical Interpolation Motion @ Name _8154_start_tr_helical – Begin a T-curve relative helical interpolation for X, Y and Z axis _8154_start_ta_helical – Begin a T-curve absolute helical interpolation for X, Y and Z axis _8154_start_sr_helical – Begin an S-curve relative helical interpolation for X, Y and Z axis _8154_start_sa_helical –Begin an S-curve absolute helical interpolation for X, Y and Z axis...
Page 174
Double, ByVal Tdec As Double, ByVal SVacc As Double, ByVal SVdec As Double) As Integer @ Argument card_id: Specify the PCI-8154 card index. The card_id could be decided by DIP switch (SW1) or depend on slot sequence.Please refer to _8154_initial().
Page 175
CW_CCW: Specified direction of arc Value Meaning Clockwise(cw) Counterclockwise(ccw) 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.
6.10 Home Return Mode @ Name _8154_set_home_config – Set the configuration for home return move motion _8154_home_move – Perform a home return move. _8154_home_search – Perform an auto search home @ Description _8154_set_home_config Configures the home return mode, origin(ORG) and index sig- nal(EZ) logic, EZ count, and ERC output options for the home_move() function.
Page 178
org_logic: Action logic configuration for ORG Value Meaning Active low Active high ez_logic: Action logic configuration for EZ Value Meaning Active low Active high ez_count: 0-15 (Please refer to section 4.2.10) erc_out: Set ERC output options. Value Meaning no ERC out ERC signal out when home-move finishing StrVel: Starting velocity of a velocity profile.
6.11 Manual Pulser Motion @ Name _8154_disable_pulser_input – Disable the pulser input _8154_pulser_pmove – Manual pulser p_move _8154_pulser_vmove – Manual pulser v_move _8154_set_pulser_ratio – Set manual pulser ratio for actual output pulse rate _8154_set_pulser_iptmode – Set the input signal modes of pulser @ Description _8154_disable_pulser_input...
Page 180
_8154_set_pulser_iptmode This function is used to configure the input mode of manual pulser. @ Syntax C/C++(Windows 2000/XP) I16 _8154_disable_pulser_input(I16 AxisNo, U16 Disable ); I16 _8154_pulser_pmove(I16 AxisNo, F64 Dist, F64 SpeedLimit); I16 _8154_pulser_vmove(I16 AxisNo, F64 SpeedLimit); I16 _8154_set_pulser_ratio(I16 AxisNo, I16 DivF, I16 MultiF);...
Page 181
@ Argument AxisNo: Axis number designated to move or stop. card_id Physical axis AxisNo … … Disable: Disable pulser input. Disable = 1, disable pulser Disable = 0, enable pulser 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 pulser signal rate is more then 100pps.
Page 182
Inverse: Reverse the moving direction from pulse direction Value Meaning no inverse Reverse moving direction Function Library...
6.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 below: Normal stopped condition Waiting for DR Waiting for CSTA input Waiting for an internal synchronous signal Waiting for another axis to stop Waiting for a completion of ERC timer Waiting for a completion of direction change timer...
Page 184
@ Syntax C/C++(Windows 2000/XP) I16 _8154_motion_done(I16 AxisNo) Visual Basic (Windows 2000/XP) B_8154_motion_done(ByVal AxisNo As Integer) As Integer @ Argument AxisNo: Axis number designated to move or stop. card_id Physical axis AxisNo … … Function Library...
6.13 Motion Interface I/O @ Name _8154_set_servo – Set the ON-OFF state of the SVON signal _8154_set_pcs_logic – Set the logic of PCS signal _8154_set_pcs – Enable the PCS for position override _8154_set_clr_mode – Set the mode of CLR signal _8154_set_inp –...
Page 186
_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 187
_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 RDY pin input Alarm Signal Positive Limit Switch Negative Limit Switch...
Page 189
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 190
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...
Page 191
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 erc_mode: Value Meaning Disable...
Page 192
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)
6.14 Interrupt Control @ Name _8154_int_control – Enable/Disable INT service _8154_set_motion_int_factor – Set the factors of motion related interrupts _8154_wait_error_interrupt – Wait error related interrupts _8154_wait_motion_interrupt – Wait motion related inter- rupts @ Description _8154_int_control: This function is used to enable the Windows interrupt event to host PC.
Page 194
Integer, ByVal int_factor As Long) As Integer @ Argument card_id: Specify the index of target PCI-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 195
AxisNo: Axis number designated to move or stop. card_id Physical axis AxisNo … … int_factor: interrupt factor motion INT factors (Value, 0: Disable, 1: Enable) Description Normal stop Next command in buffer starts Command pre-register 2 is empty and allow new command to write (Reserved) (Always set to 0) Acceleration Start Acceleration End...
Page 196
TimeOut_ms: Specifies the time-out interval, in milliseconds. If TimeOut_ms is zero, the function tests the states of the specified objects and returns immediately. If TimeOut_ms is -1, the func- tion's time-out interval never elapses (infinite). IntFactorBitNo: Specifies the bit number of the INT factor. e.g.
6.15 Position Control and Counters @ Name _8154_get_position – Get the value of feedback position counter _8154_set_position – Set the feedback position counter _8154_get_command – Get the value of command position counter _8154_set_command – Set the command position counter _8154_get_error_counter – Get the value of position error counter _8154_reset_error_counter –...
Page 198
_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. _8154_get_command: This function is used to read the value of the command position counter.
Page 199
_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 @ Syntax C/C++(Windows 2000/XP)
Page 200
B_8154_get_error_counter(ByVal AxisNo As Integer, ByRef error As Integer) As Integer 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,...
Page 201
CntSrc: general counter source Value Meaning Command pulse EA/EB Pulser input System clock÷2 CntValue, *CntValue: the counter value TargetPos, *TargetPos: Target position recorder value, range: -134217728 to 134217727 ResDistance, *ResDistance: residue distance Function Library...
6.16 Position Compare and Latch @ Name _8154_set_trigger_logic – Set the CMP signal’s logic _8154_set_trigger_comparator – Set the trigger compara- _8154_set_error_comparator – Set the error comparator _8154_set_general_comparator – Set the general compara- _8154_set_latch_source – Set the latch timing for a counter _8154_set_ltc_logic –...
Page 203
_8154_set_latch_source: There are 4 latch triggering source. By using this function, user can choose the event source to latch counters’ data. _8154_set_ltc_logic: This function is used to set the logic of the latch input. _8154_get_latch_data: After the latch signal arrived, the function is used to read the latched value of counters.
Page 204
B_8154_set_trigger_comparator(ByVal AxisNo As Integer, ByVal CmpSrc As Integer, ByVal CmpMethod As Integer, ByVal Data As Long) As Integer B_8154_set_latch_source(ByVal AxisNo As Integer, ByVal LtcSrc As Integer) As Integer B_8154_set_ltc_logic(ByVal AxisNo As Integer, ByVal StcLogic As Integer) As Integer B_8154_get_latch_data(ByVal AxisNo As Integer, ByVal CounterNo As Integer, Pos As Double) As Integer @ Argument...
Page 205
CmpMethod: The comparing methods Value Meaning No Compare(Disable) Data = Source counter (direction independent) Data = Source counter (Count up only) Data = Source counter (Count down only) Data > Source counter Data < Source counter Data: Comparing value (Position) CmpAction: Value Meaning...
Page 206
*Pos: Latch data (Position) Function Library...
6.17 Continuous motion @ Name _8154_set_continuous_move – Enable continuous motion for absolute motion _8154_check_continuous_buffer – Check if the buffer is empty _8154_dwell_move – Set a dwell move @ 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 (buffer) is empty or not.
Page 208
@ Syntax C/C++(Windows 2000/XP) I16 _8154_set_continuous_move(I16 AxisNo, I16 Enable); I16 _8154_check_continuous_buffer(I16 AxisNo); I16 _8154_dwell_move(I16 AxisNo, F64 ms); Visual Basic (Windows 2000/XP) B_8154_set_continuous_move(ByVal AxisNo As Integer, ByVal Enable As Integer) As Integer B_8154_check_continuous_buffer(ByVal AxisNo As Integer) As Integer B_8154_dwell_move(ByVal AxisNo As Integer, ByVal ms As Double) As Integer @ Argument AxisNo: Axis number designated to move or stop.
Page 211
As Double, ByRef SVdecA As Double) As Integer B_8154_set_ta_move_all(ByVal TotalAxes As Integer, ByRef AxisArray As Integer, ByRef PosA As Double, ByRef StrVelA As Double, ByRef MaxVelA As Double, ByRef TaccA As Double, ByRef TdecA As Double) As Integer B_8154_set_sr_move_all(ByVal TotalAxes As Integer, ByRef AxisArray As Integer, ByRef DistA As Double, ByRef StrVelA As Double, ByRef MaxVelA As Double, ByRef TaccA As...
_8154_set_gpio_input_function – Set the signal types for any digital inputs @ Description _8154_set_gpio_output: The PCI-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 213
Select As Integer, ByVal Logic As Integer)As Integer @ Argument card_id: Specify the PCI-8154 card index. The card_id could be decided by DIP switch (SW1) or depend on slot sequence. Please refer to _8154_initial(). DoValue, *DoValue: Digital output value. Bit 0-3: D_out 0-3.
6.20 Soft Limit @ Name _8154_disable_soft_limit – Disable soft limit function _8154_enable_soft_limit – Enable soft limit function _8154_set_soft_limit – Set soft limit @ Description _8154_disable_soft_limit: This function is used to disable the soft limit function. _8154_enable_soft_limit: This function is used to enable the soft limit function. Once enabled, the action of soft limit will be exactly the same as physical limit.
Page 215
@ Argument AxisNo: Axis number designated to move or stop. card_id Physical axis AxisNo … … Action: The reacting method of soft limit Value Meaning INT only Immediately stop slow down then stop PlusLimit: Soft limit value, positive direction MinusLimit: Soft limit value, negative direction Function Library...
6.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 217
Visual Basic (Windows 2000/XP) 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.
6.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 220
Double, ByRef pTacc As Double, ByRef pTdec As Double, ByRef pSVacc As Double, ByRef pSVdec As Double, ByRef pTconst As Double) As Integer B_8154_get_sa_move_profile(ByVal AxisNo As Integer, ByVal Pos 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, ByRef pStrVel As Double, ByRef pMaxVel As...
Page 221
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 *pSVacc: S-curve region during acceleration by calculation *pSVdec: S-curve region during deceleration by calculation *pTconst: constant speed time(maximum speed)
6.23 Return Code The return error code is defined in “8154_err.h”. The meaning is described in following table. Code Meaning No error -10000 Error Card number -10001 Error operation system version -10002 Error card’s ID conflict -10300 Error other process exist -10301 Error card not found -10302 Error Open driver failed -10303 Error ID mapping failed...
Page 223
Code Meaning -10325 Error auto accelerate time -10326 Error dwell time -10327 Error dwell distance -10328 Error new position -10329 Error motion not in running -10330 Error velocity change time -10331 Error speed target -10332 Error velocity percent -10333 Error position change backward -10334 Error counter number -10335 Error gpio input function parameter -10336 Error channel number...
This chapter shows some connection examples between the PCI- 8154 and servo drivers and stepping drivers. 7.1 General Description of Wiring Main connection between the PCI-8154 and the pulse input servo driver or stepping driver. The following figure illustrates how to integrate the PCI-8154 and DIN-814M-J3A.
Warranty Policy Thank you for choosing ADLINK. To understand your rights and enjoy all the after-sales services we offer, please read the follow- ing carefully. 1. Before using ADLINK’s products please read the user man- ual and follow the instructions exactly. When sending in damaged products for repair, please attach an RMA appli- cation form which can be downloaded from: http:// rma.adlinktech.com/policy/.
Page 228
3. Our repair service is not covered by ADLINK's guarantee in the following situations: Damage caused by not following instructions in the User's Manual. Damage caused by carelessness on the user's part dur- ing product transportation. Damage caused by fire, earthquakes, floods, lightening, pollution, other acts of God, and/or incorrect usage of voltage transformers.
Need help?
Do you have a question about the PCI-8154 and is the answer not in the manual?
Questions and answers