PCI-8102 Advanced 2-Axis Servo/Stepper Motion Control Card User’s Manual Manual Rev. 3.00 Revision Date: Jan. 31, 2012 Part No: 50-11136-1020 Advance Technologies; Automate the World.
Revision History Revision Release Date Description of Change(s) 2.01 Feb 26, 2009 Initial release 3.00 Jan.
PCI-8102 Table of Contents Revision History...................................................................... ii List of Figures ........................................................................ vi Preface .................................................................................... ix 1 Introduction ........................................................................ 1 1.1 1.2 1.3 1.4 Features...............................................................................
3.8 3.9 3.10 3.11 3.12 3.13 3.14 Deviation Counter Clear Signal ERC ................................. 29 General-Purpose Signal SVON ......................................... 30 General-Purpose Signal RDY ............................................ 31 Position Compare Output pin: CMP................................... 31 Multi-Functional Input Pin: LTC/SD/PCS/CLR ................... 33 Simultaneously Start/Stop Signals STA and STP.............. 33 General Purpose Digital Input/Output .....................
PCI-8102 4.4 4.5 4.6 4.7 4.8 4.9 Error Clear Signal ......................................................... 71 Servo ON/OFF Switch .................................................. 71 Servo Ready Signal ...................................................... 71 Servo Alarm Reset Switch ............................................ 72 Mechanical Switch Interface .............................................. 72 Original or Home Signal ................................................
2D_Motion Menu ........................................................ 107 Help Menu .................................................................. 113 6 Function Library.............................................................. 115 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10 6.11 6.12 6.13 6.14 6.15 6.16 6.17 6.18 6.19 6.20 6.21 6.22 List of Functions............................................................... C/C++ Programming Library ............................................
List of Figures Figure 1-1: PCI-8102 Block Diagram ........................................... 2 Figure 1-2: Flow Chart for Building an Application....................... 3 Figure 2-1: PCB Layout of the PCI-8102 ...................................
PCI-8102 This page intentionally left blank.
viii List of Figures
PCI-8102 Preface Copyright 2011 ADLINK Technology Inc. This document contains proprietary information protected by copyright. All rights are reserved. No part of this manual may be reproduced by any mechanical, electronic, or other means in any form without prior written permission of the manufacturer.
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: CAUTION: WARNING: x Information to prevent minor physical injury, component damage, data loss, and/or program corruption when trying to complete a task.
PCI-8102 1 Introduction The PCI-8102 is an advanced 2-axis motion controller card with a PCI interface. It can generate high frequency pulses (6.55MHz) to drive stepper or servomotors. As a motion controller, it can provide 2-axis linear and circular interpolation and continuous interpolation for continuous velocity. Also, changing position/speed on the fly is available with a single axis operation. Multiple PCI-8102 cards can be used in one system.
PCI Bus ROM CardID S1 CPLD PLX9052 DC/DC VDD ASIC 16 DI/O P2 VCC STA/STP K1&2 +24V Digital I/O Isolation SCSI 68 P1 Figure 1-1: PCI-8102 Block Diagram MotionCreatorPro is a Windows-based application development software package included with the PCI-8102. MotionCreatorPro is useful for debugging a motion control system during the design phase of a project. An on-screen display lists all installed axes information and I/O signal status of the PCI-8102.
PCI-8102 Figure 1-2: Flow Chart for Building an Application Introduction 3
1.1 Features The following list summarizes the main features of the PCI-8102 motion control system. 4 X 32-bit PCI bus Plug and Play X 2 axes of step and direction pulse output for controlling stepping or servomotor X Maximum output frequency of 6.
PCI-8102 application development software X PCI-8102 libraries and utilities for Windows 2000/XP/7 1.2 Specifications X X Applicable Motors: Z Stepping motors Z AC or DC servomotors with pulse train input servo drivers Performance: Z Number of controllable axes: 2 Z Maximum pulse output frequency: 6.55MPPS, linear, trapezoidal, or S-Curve velocity profile drive Z Internal reference clock: 19.
100 PPS to 6553500 PPS.
PCI-8102 X PCI-8102 Dimension (PCB size): 120mm(L) X 100mm(W) 1.3 Supported Software Programming Library Windows 2000/XP/7 (32bit/64bit) DLLs are provided for PCI-8102 users. These function libraries are shipped with the board. MotionCreatorPro This Windows-based utility is used to setup cards, motors, and systems. It can also aid in debugging hardware and software problems. It allows users to set I/O logic parameters to be loaded in their own program. This product is also bundled with the card.
PCI-1802 Corresponding Terminal Board Servo Driver DIN-68P-A40 Panasonic MINAS A4 and A5 series DIN-68Y-SGII0 Yaskawa Sigma II, III and V series DIN-68S0 General Purpose Board Appearance This page intentionally left blank.
PCI-8102 2 Installation This chapter describes how to install the PCI-8102 series. Please follow these steps below: X Check what you have (section 2.1) X Check the PCB (section 2.2) X Install the hardware (section 2.3) X Install the software driver (section 2.4) X Understanding the I/O signal connections (chapter 3) and their operation (chapter 4) X Understanding the connector pin assignments (the remaining sections) and wiring the connections 2.
2.
PCI-8102 2.3 PCI-8102 Hardware Installation 2.3.1 Hardware Configuration The PCI-8102 is fully Plug and Play compliant. Hence memory allocation (I/O port locations) and IRQ channel of the PCI card are assigned by the system BIOS. The address assignment is done on a board-by-board basis for all PCI cards in the system. 2.3.2 PCI Slot Selection Your computer system may have both PCI and ISA slots. Do not force the PCI card into a PC/AT slot. The PCI-8102 can be used in any PCI slot. 2.3.
2.3.4 Troubleshooting If your system doesn’t boot or if you experience erratic operation with your PCI board in place, it’s most likely caused by an interrupt conflict (possibly an incorrect ISA setup). In general, the solution, once determined it is not a simple oversight, is to consult the BIOS documentation that comes with your system. 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. 2.
PCI-8102 2.5 P1 Pin Assignments: Main connector P1 is the major connector for the motion control I/O signals. Function Axis No. 0 Name I/O Function Axis 1 35 VPP O Isolated +5V Output Ext. power ground 36 EXGND - Ext. power ground O Pulse signal (+) 37 OUT1+ O Pulse signal (+) OUT0- O Pulse signal (-) 38 OUT1- O Pulse signal (-) DIR0+ O Dir. signal (+) 39 DIR1+ O Dir. signal (+) No. Name I/O 1 VPP O Isolated +5V Output 2 EXGND - 3 OUT0+ 4 5 6 DIR0- O Dir.
Name I/O Function Axis 1 53 EXGND - Ext. power ground End limit signal (+) 54 PEL1 I End limit signal (+) I End limit signal (-) 55 MEL1 I End limit signal (-) EXGND - Ext. power ground 56 EXGND - Ext. power ground 23 LTC/SD/ PCS0/ CLR0 I Composite Funtion (Default: LTC) 57 LTC/SD/ PCS1/ CLR1 I Composite Funtion (Default: LTC) 24 ORG0 I Origin signal 58 ORG1 I Origin signal 25 N/C 59 EXGND - Ext.
PCI-8102 2.6 P2 Pin Assignment: Digital Inputs / Outputs P2 is the second connector for the additional 16 DI/O signals. No. Name I/O Function No.
No. Name I/O Function No.
PCI-8102 2.7 K1/K2 Pin Assignments: Simultaneous Start/ Stop CN4 is for simultaneous start/stop signals for multiple axes or multiple cards. No. Name Function (Axis) 1 +5V PCI Bus power Output (VCC) 2 STA Simultaneous start signal input/output 3 STP Simultaneous stop signal input/output 4 GND PCI Bus power ground Note: +5V and GND pins are provided by the PCI Bus power. 2.8 Jumper Settings for Pulse Output J8-J11 are used to set the type of pulse output signals (DIR and OUT).
2.9 CMP & EMG Interface Settings Jumpers J12 and J13 identify the CMP signal output interface as Pull-Up or OPEN-Collector, with the latter requiring pull up of the CMP signal. To reduce evaluation and debugging, the PCI-8102 provides the jumper J14 to enable or disable EMG function as the following setting.
PCI-8102 2.10 Switch Setting for card index The SW1 switch is used to set the card index. For example, if you turn 1 to ON and others are OFF. It means the card index as 1. The value is from 0 to 15. Refer to the following table for details.
This page intentionally left blank.
PCI-8102 3 Signal Connections Signal connections of all I/O’s are described in this chapter. Refer to the contents of this chapter before wiring any cables between the 8102 and any motor drivers. 3.1 Pulse Output Signals OUT and DIR There are 2 axis pulse output signals on the PCI-8102. For each axis, two pairs of OUT and DIR signals are used to transmit the pulse train and to indicate the direction. The OUT and DIR signals can also be programmed as CW and CCW signal pairs. Refer to section 4.
can select the output mode either by shorting pins 1 and 2 or 2 and 3 of jumpers J8-J11 as follows: Output Signal For differential line driver For open collector output, output, short pins 1 and 2 short pins 2 and 3 of: of: OUT0- J8 J8 DIR0- J9 J9 OUT1- J10 J10 DIR1- J11 J11 The default setting of OUT and DIR is set to differential line driver mode. The following wiring diagram is for OUT and DIR signals on the 2 axes. PCI-8102: VDD VCC 26LS31 4.
PCI-8102 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.
motor driver if it is equipped with: (1) a differential line driver or (2) an open collector output. Connection to Line Driver Output To drive the PCI-8102 encoder input, the driver output must provide at least 3.5V across the differential pairs with at least 6mA driving capacity. The grounds of both sides must be tied together. The maximum frequency will be 6.5Mhz or more depends on wiring distance and signal conditioning.
PCI-8102 Inside PCI-8102 V GND R EA+, EB+, EZ+ External Power for Encoder Motor Encoder / Driver With Open Collector Output EA-, EB-, EZ- A, B phase signals Index signal For more operation information on the encoder feedback signals, refer to section 4.4. 3.3 EMG Emergency Stop An emergency stop input channel is provided, as shown. When the EMG signal is active, all motion pulse output command is rejected until the EMG is deactivated.
3.4 Origin Signal ORG The origin signals (ORG0~ORG1) are used as input signals for the origin of the mechanism. The following table lists signal names, pin numbers, and axis numbers: P1 Pin No Signal Name Axis # 24 ORG0 1 58 ORG1 2 The input circuit of the ORG signals is shown below. Usually, a limit switch is used to indicate the origin on one axis. The specifications of the limit switch should have contact capacity of +24V @ 6mA minimum.
PCI-8102 3.5 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 indicates the end limit signal is in the minus direction. The signal names, pin numbers, and axis numbers are shown in the table below: P1 Pin No Signal Name Axis # P1 Pin No Signal Name Axis # 20 PEL0 1 21 MEL0 1 54 PEL1 2 55 MEL1 2 A circuit diagram is shown in the diagram below.
3.6 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 position indicates zero.
PCI-8102 3.7 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: P1 Pin No Signal Name Axis # 9 ALM0 1 43 ALM1 2 The input alarm circuit is shown below. The ALM signal usually is 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 ALM signal.
The signal names, pin numbers, and axis numbers are shown in the table below: P1 Pin No Signal Name Axis # 8 ERC0 1 42 ERC1 2 The ERC signal is used to clear the deviation counter of the servomotor driver. The ERC output circuit is an open collector with a maximum of 35V at 50mA driving capacity. P1 Inside 8102 3.9 General-Purpose Signal SVON The SVON signal can be used as a servomotor-on control or general purpose output signal.
PCI-8102 The output circuit for the SVON signal is shown below: Inside 8102 P1 3.10 General-Purpose Signal RDY The RDY signals can be used as motor driver ready input or general purpose input signals. The signal names, pin numbers, and axis numbers are shown as follows: P1 Pin No Signal Name Axis # 11 RDY0 1 45 RDY1 2 The input circuit of RDY signal is shown in the following diagram: P1 Inside 8102 VDD (+5V) 3.
The CMP channel is located on P1. The signal names, pin numbers, and axis numbers are shown below: P1 Pin No Signal Name Axis # 30 CMP0 1 31 CMP1 2 The following wiring diagram is of the CMP on the first 2 axes: From Motion ASIC Note: CMP trigger type can be set as normal low (rising edge) or normal high (falling edge). Default setting is normal high. Refer to function_8102_set_trigger_comparator for details.
PCI-8102 3.12 Multi-Functional Input Pin: LTC/SD/PCS/CLR The PCI-8102 provides 2 multi-functional input pins. Each of the 2 pins can be configured either as LTC(Latch) or SD(Slow down) or PCS(Target position override) or CLR(Counter clear). To select the pin function, please refer to 6.12.
The diagram below shows the onboard circuit. The STA and STP signals of the two axes are tied together respectively. The STP and STA signals are both input and output signals. To operate the start and stop action simultaneously, both software control and external control are needed. With software control, the signals can be generated from any one of the PCI-8102. Users can also use an external open collector or switch to drive the STA/ STP signals for simultaneous start/stop.
PCI-8102 3.14 General Purpose Digital Input/Output The PCI-8102 provides 20 isolated digital input channels and 18 isolated digital output channels which were set into P1 and P2 connectors accordingly as following pin assignment table.:: Signal Connections Pin No.
3.14.1 Extended DSUB 37-pin Connector 16 digital inputs and 16 digital outputs are conveniently connected with the included cable that connects to PCI-8102 P2 connector and DSUB-37p. Pin assignment of the DSUB-37p connector is as follows.
PCI-8102 Pin Name 3 DI1 4 Function Pin Name Discrete Input Channel 1 22 DO1 Discrete Output Channel 1 DI2 Discrete Input Channel 2 23 DO2 Discrete Output Channel 2 5 DI3 Discrete Input Channel 3 24 DO3 Discrete Output Channel 3 6 DI4 Discrete Input Channel 4 25 DO4 Discrete Output Channel 4 7 DI5 Discrete Input Channel 5 26 DO5 Discrete Output Channel 5 8 DI6 Discrete Input Channel 6 27 DO6 Discrete Output Channel 6 9 DI7 Discrete Input Channel 7 28 DO7 Discret
-N NPN Sinking Inputt: VCC Inside 8102 P2 E5V R = 330 To CPLD 0.5V Max.
PCI-8102 4 Operations This chapter describes the detail operation of the motion controller card. 4.1 Classifications of Motion Controller At the beginning of servo/stepper driver come to the world, people start to talk about motion control widely instead of motor control. They separate motor control into two layers: one is motor control and the other is motion control. Motor control talks much about on the PWM, power stage, closed loop, hall sensors, vector space, and so on.
users can control a servo or stepper motor more easier than analog type for positioning applications. It means that motion and motor control can be separated more easily by this way. Both of these two interfaces need to take care of gains tuning. For analog type position controller, the control loops are built inside and users must tune the gain from the controller. For pulses type position controller, the control loops are built outside on the motor drivers and users must tune the gains on drivers.
PCI-8102 takes much software effort. For sure their real-time performance, they will use a real-time software on the system. It increases the complexity of the system too. But this method is the most flexible way for a professional motion control designers. Most of these methods are on NC machines. 4.1.5 DSP Based Motion Control Kernel A DSP-based motion controller kernel solves real-time software problem on computer. DSP is a micro-processer itself and all motion control calculations can be done on it.
4.1.7 Compare Table of All Motion Control Types ASIC DSP Price Fair Cheap Expensive Functionality Highest Low Normal Maintenance Hard Easy Fair Analog Pulses Network High Low Normal Signal Quality Fair Good Reliable Maintenance Hard Easy Easy Price 4.1.8 Software PCI-8102’s Motion Controller Type The PCI-8102 is an ASIC based, pulse type motion controller. We make this card into three blocks: motion ASIC, PCI card, software motion library.
PCI-8102 The following sections describe the motion control modes of this motion controller could be performed. 4.2.1 Coordinate System We use Cartesian coordinate and pulses for the unit of length. The physical length depends on mechanical parts and motor’s resolution. For example, if users install a motor on a screw ball. The pitch of screw ball is 10mm and the pulses needed for a round of motor are 10,000 pulses. We can say that one pulse’s physical unit is equal to 10mm/10,000p =1 micro-meter.
absolute command to move a motor to 10,000 pulses position and current position read from encoder is 3500 pulses, how many pulses will it send to motor driver Δ The answer is (10000 – 3500 ) / (10,000 / 1,000)=650 pulses. The motion controller will calculate it automatically if users set “move ratio” already. The “move ratio” means the (feedback resolution/command resolution). 4.2.
PCI-8102 The area of the velocity profile represents the distance of this motion. Sometimes, the profile looks like a triangle because the desired distance from user is smaller than the area of given speed parameters. When this situation happens, the motion controller will lower the maximum velocity but keep the acceleration rate to meet user’s distance requirement.
4.2.4 S-Curve and Bell-Curve Speed Profile S-curve means the speed profile in accelerate/decelerate area follows a 2nd order curve. It can reduce vibration at the beginning of motor start and stop. In order to speed up the acceleration/deceleration during motion, we need to insert a linear part into these areas. We call this shape as “Bell” curve. It adds a linear curve between the upper side of s-curve and lower side of s-curve.
PCI-8102 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 produce smooth motion. If the time for acceleration parameters combined with the final position don’t allow an axis to reach the maximum velocity (i.e. the moving distance is too small to reach MaxVel), then the maximum velocity is automatically lowered (see the following Figure).
4.2.5 Velocity Mode Veloctiy mode means the pulse command is continuously output 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. It can be follow a linear or S-curve acceleration shape. The pulse output rate is kept at maximum velocity until another velocity command is set or a stop command is issued.
PCI-8102 Velocity (pps) MaxVel Distance StrVel StrVel Tacc Tdec Time (second) The distance is the area of the V-t diagram of this profile. 4.2.7 Two Axes Linear Interpolation Position Mode “Interpolation between multi-axes” means these axes start simultaneously, 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 interpolation results are shown as below.
The pulses output from X or Y axis remains 1/2 pulse difference according to a perfect linear line. The precision of linear interpolation is shown as below: If users want to stop an interpolation group, just call a stop function on first axis of the group. As in the diagram below, 2-axis linear interpolation means to move the XY position from P0 to P1. The 2 axes start and stop simultaneously, and the path is a straight line.
PCI-8102 between them is an arc, and the MaxVel is the tangential speed. Notice that if the end point of arc is not at a proper position, it will move circularly without stopping. Y (1800,600) (0,0) Center (1000,0) X The motion controller will move to the final point user desired even this point is not on the path of arc. But if the final point is not at the location of the shadow area of the following graph, it will run circularly without stopping.
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. The motion controller can make it possible because there are three command buffers (preregisters) inside.
PCI-8102 motion. The second one has high speed than the others. The interconnection of speed between these three motion functions should be set as the following diagram: If the 2nd command’s speed value is lower than the others, the settings would be like as following diagram: For 2-axis continuous arc interpolation is the same concept. User can set the speed matched between two command’s speed setting.
If the INP checking is enabled, the motion will have some delayed between each command in buffers. INP check enabled make the desired point be reached but reduce the smoothing between each command. If users don’t need this delay and meed the smoothing, please turn INP checking off. 4.2.10 Home Return Mode Home return means searching a zero position point on the coordinate. Sometimes, users use a ORG, EZ or EL pin as a zero position on the coordinate.
PCI-8102 procedure is finished. The counter value you see is a reference position from machine's zero point already. The following figures show the various home modes: R means counter reset ( command and position counter ). E means ERC signal output.
Home mode=0: ( ORG Turn ON then reset counter ) Home mode=1: (Twice ORG turn ON then reset counter) 56 Operations
PCI-8102 Home mode=2: (ORG ON then Slow down to count EZ numbers and reset counter) Home mode=3: (ORG ON then count EZ numbers and reset counter) Operations 57
Home mode=4: (ORG On then reverse to count EZ number and reset counter) Home mode=5: (ORG On then reverse to count EZ number and reset counter, not using FA Speed) 58 Operations
PCI-8102 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) Home mode=8: (EL On then reverse to count EZ number and reset counter, not using FA Speed) Operations 59
Home mode=9: (ORG On then reverse to zero position, an extension from mode 0) Home mode=10: (ORG On then counter EZ and reverse to zero position, an extension from mode 3) 60 Operations
PCI-8102 Home mode=11: (ORG On then reverse to counter EZ and reverse to zero position, an extension from mode 5) 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 position the axis is. The following diagram is shown the example for home mode 2 via home search function.
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 sending out. The motion controller receives two kinds of pulse trains from manual pulser device: CW/CCW and AB phase. If the AB phase input mode is selected, the multiplier has additional selection of 1, 2, or 4. The following figure shows pulser ratio block diagram.
PCI-8102 4.2.13 Simultaneous Start Function Simultaneous motion means more than one axis can be started by a Simultaneous signal which could be external or internal signals. For external signal, users must set move parameters first for all axes then these axes will wait an extern start/stop command to start or stop. For internal signal, the start command could be from a software start function. Once it is issued, all axes which are in waiting synchronous mode will start at the same time. 4.2.
4.2.15 Position Override Function Position override means that when users issue a positioning command 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. If the new target position is far away from current position on the same direction, the motion will remain its speed and run to new target position.
PCI-8102 4.3 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. The other is digital I/O signals including servo ON, alarm, INP, servo ready, alarm reset and emergency stop inputs.
be the same as motor driver. The modes vs. signal type of OUT and DIR pins are listed in the table below: Mode Output of OUT pin Output of DIR pin Dual pulse output (CW/CCW) Pulse signal in plus (or CW) direction Pulse signal in minus (or CCW) direction Single pulse output (OUT/DIR) Pulse signal Direction signal (level) Single Pulse Output Mode (OUT/DIR Mode) In this mode, the OUT pin is for outputing command pulse chain. The numbers of OUT pulse represent distance in pulse.
PCI-8102 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.
gram shows the output waveform of positive (+) commands and negative (-) commands. The command pulses are counted by a 28-bit command counter. The command counter can store a value of total pulses outputting from controller. 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.
PCI-8102 mand output counter because the feedback pulses are internal counted from command output pulses. The following diagrams show these two types of pulse feedback signal. 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.
position of the mechanism. The logic of signal must also be set correctly to get correct result. 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.
PCI-8102 will be always ON and the pulse command can never be outputted. 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. It results in pulse differences between these two positions at any moment. The differences are shown in error counter.
driver is in ready state. It lets users to check something like the motor driver’s power has been input or not. Or users can connect this pin as a general input for other purpose. It doesn’t affect motion control. 4.3.8 Servo Alarm Reset Switch The servo driver will raise an alarm signal if there is something wrong inside the servo driver. Some alarm situations like servo motor over current, over speed, over loading and so on.
PCI-8102 one of the end-limit signal, the motion controller will stop sending pulses and output an ERC signal. It can prevent machine crash when miss operation. 4.4.3 Slow Down Switch The slow down signals are used to force the command pulse to decelerate to the starting velocity when it is active. This signal is used to protect a mechanical moving part under high speed movement toward the mechanism’s limit. The SD signal is effective for both plus and minus directions. 4.4.
4.4.7 Emergency Stop Input Our motion controller provides a global digital input for emergency situation. Once the input is turned on, our motion controller will stop all axes’ motion immediately to prevent machine’s damage. Usually, users can connect an emergency stop button to this input on their machine. We suggest this input as normal closed type for safety.
PCI-8102 4.5 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. General purpose counter: The source can be configured as command position, feedback position, manual pulser, or half of ASIC clock.
could be set from a source of command position for an option when no external encoder inputs. The command output pulses and feedback input pulses will not always be the same ratio in mini-meters. Users must set the ratio if these two pulses are not 1:1. Because our motion controller is not a closed-loop type, the feedback position counter is just for reference after motion is moving. The position closed-loop is done by servo motor driver.
PCI-8102 tion and current motion command’s target position in order to calculate relative pulses of current command then send results into pre-register. Please check if the target position is the same with current command position before continuous motion. Especially after the home function and stop function. 4.6 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.
4.6.3 General Comparator The general comparator let users to choose the source to compare. It could be chosen from command, feedback position counter, error counter or general counter. The compare methods could be chosen by equal, greater than or less than with directional or directionless. Also the action when condition is met can be chosen from generating interrupt, stop motion or others. 4.6.4 Trigger Comparator The trigger comparator is much like general comparator.
PCI-8102 ing point right after previous image is captured. It can achieve continuous image capturing by this method. 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 parameters. At this situation, motion library will keep the acceleration and deceleration rate. It tries to lower the maximum speed from users automatically to reform a speed profile feasible.
PCI-8102 4.8 Interrupt Control The motion controller can generate an interrupt signal to the host PC. It is much useful for event-driven software application. Users can use this function _8102_int_control() to enable ir disable the interrupt service. There are three kinds of interrupt sources on PCI-8102. 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.
Bit Description 19 CSTA input or _8102_start_move_all() turns on 20~31 0 The error interrupt sources are non-maskable but the error number of situation could be get from _8102_wait_error_interrupt()’s return code if it is not timeout.
PCI-8102 GPIO Interrupt Source Bit Settings (1=Enable,0=Disable) Bit Description 0 DI0 falling edge 1 DI1 falling edge 2 DI2 falling edge 3 DI3 falling edge 4 DI0 raising edge 5 DI1 raising edge 6 DI2 raising edge 7 DI3 raising edge 8 Pin23 input interrupt 9 Pin57 input interrupt 10 Pin23/57 interrupt mode selection (0=falling, 1=raising) 11~14 0 15 GPIO interrupt switch (Always=1) The steps for using interrupts: 1. Use _8102_int_control(CARD_ID, Enable=1/Disable=0); 2.
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. When multiple cards are applied to a system, the number of card must be noted. The card number depends on the card ID switch setting on the board.
PCI-8102 5 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 PCI-8102 cards to verify correct operation. The MotionCreatorPro software provides a simple yet powerful means to setup, configure, test, and debug a motion control system that uses PCI-8102 cards.
windows root directory are used to save all settings and configurations. 3. To duplicate configurations from one system to another, copy 8102.ini and 8102MC.ini into the windows root directory. 4. If multiple PCI-8102 cards use the same MotionCreatorPro saved configuration files, the DLL function call _8102_config_from_file() can be invoked within a user developed program. This function is available in a DOS environment as well.
PCI-8102 5.3 MotionCreatorPro Form Introduction 5.3.1 Main Menu The main menu appears after running MotionCreatorPro.
5.3.2 Select Menu The select menu appears after running MotionCreatorPro.
PCI-8102 5.3.3 Card Information Menu In this menu, it show some Information about this card.
5.3.4 Configuration Menu In this menu, users can configure ALM, INP, ERC, EL, ORG, and EZ.
PCI-8102 1. ALM Logic and Response mode: Select logic and response modes of ALM signal. The related function call is _8102_set_alm(). 2. INP Logic and Enable/Disable selection: Select logic, and Enable/ Disable the INP signal. The related function call is _8102_set_inp() 3. ERC Logic and Active timing: Select the Logic and Active timing of the ERC signal. The related function call is _8102_set_erc(). 4. EL Response mode: Select the response mode of the EL signal.
In this menu, users can configure LTC, SD, PCS, and Select_Input.
PCI-8102 1. LTC Logic: Select the logic of the LTC signal. The related function call is _8102_set_ltc_logic(). 2. LTC latch_source: Select the logic of the latch_source signal. The related function call is _8102_set_latch_source (). 3. SD Configuration: Configure the SD signal. The related function call is _8102_set_sd(). 4. PCS Logic: Select the logic of the SelectNo signal. The related function call is _8102_set_pcs_logic(). 5. pin23_Select Axis X: Select the configurations of the Axis X.
In this menu, users can configure pulse input/output and move ratio and INT factor.
PCI-8102 1. Pulse Output Mode: Select the output mode of the pulse signal (OUT/ DIR). The related function call is _8102_set_pls_outmode(). 2. Pulse Input: Sets the configurations of the Pulse input signal(EA/EB). The related function calls are _8102_set_pls_iptmode(), _8102_set_feedback_src(). 3. INT Factor: Select factors to initiate the event int. The related function call is _8102_set_int_factor(). 4. Buttons: Z Next Card: Change operating card. Z Next Axis: Change operating axis.
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. 7 1 8 2 9 10 12 21 19 11 3 14 13 4 15 5 16 17 20 18 6 1. Position: 96 Z Command: displays the value of the command counter. The related function is _8102_get_command(). Z Feedback: displays the value of the feedback position counter.
PCI-8102 2. Position Reset: clicking this button will set all positioning counters to a specified value. The related functions are: Z _8102_set_position() Z _8102_set_command() Z _8102_reset_error_counter() Z _8102_reset_target_pos() 3. Motion Status: Displays the returned value of the _8102_motion_done function. The related function is _8102_motion_done(). 4. INT Status: Z int_factor bit no: Set int_factor bit. Z Normal INT: display of Normal INT status.
7. Operation Mode: Select operation mode. 98 Z Absolute Mode: “Position1” and “position2” will be used as absolution target positions for motion. The related functions are _8102_start_ta_move(), _8102_start_sa_move(). Z Relative Mode: “Distance” will be used as relative displacement for motion. The related function is _8102_start_tr_move(), _8102_start_sr_move(). Z Cont. Move: Velocity motion mode. The related function is _8102_tv_move(), _8102_start_sv_move().
PCI-8102 check box “ATU” is checked, it will execute auto homing when motion starts. Z ERC Output: Select if the ERC signal will be sent when home move completes. Z EZ Count: Set the EZ count number, which is effective on certain home return modes. Z Mode: Select the home return mode. There are 13 modes available. Z Home Mode figure: The figure shown explains the actions of the individual home modes. Z Close: Click this button close this window. 8.
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. The related function calls are _8102_set_fa_speed().If the check box “ATU” is checked, it will execute auto homing when motion starts. 13.Motion Parameters: Set the parameters for single axis motion.
PCI-8102 14.Speed_Profile: Profile. Clicking this button will show the Speed 15.Digital I/O: Display and set Digital I/O. The related function is _8102_get_gpio_output(),_8102_get_gpio_input(), _8102_set_gpio_output(). 16.Servo On: Set the SVON signal output status. The related function is _8102_set_servo(). 17.Play Key: Left play button: Clicking this button will cause the 8102 start to outlet pulses according to previous setting. Z In “Absolute Mode,” it causes the axis to move to position1.
Right play button: Clicking this button will cause the 8102 start to outlet pulses according to previous setting. Z In “Absolute Mode,” it causes the axis to move to position. Z In “Relative Mode,” it causes the axis to move backwards. Z In “Cont. Move,” it causes the axis to start to move according to the velocity setting, but in the opposite direction. Z In “Manual Pulser Move,” it causes the axis to go into pulse move. The speed limit is the value set by “Maximum Velocity.” 18.
PCI-8102 5.3.6 Two-Axis Operation Menu In this menu, users can change the settings two selected axis, including velocity mode motion, preset relative/absolute motion.
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 distance is decided by pulse input. Z 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. Z Maximum Velocity: Set the maximum velocity of motion in units of PPS.
PCI-8102 6. Position: Set the absolute position for “Absolute Mode.” It is only effective when “Absolute Mode” is selected. 7. Buttons: Z Next Card: Change operating card. Z Next Axis: Change operating axis. 8. I/O Status: The status of motion I/O. Light-On means Active, while Light-Off indicates inactive. The related function is _8102_get_io_status(). 9. Motion status: Displays the returned value of the _8102_motion_done function. The related function is _8102_motion_done(). 10.
106 Z Save Config: Save current configuration to 8102.ini And 8102MC.ini. Z Close: Close the menu.
PCI-8102 5.3.7 2D_Motion Menu Press 2-D button in operating window will enter this window. This is for 2-D motion test.
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 unpress 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. 2. Jog Setting: Set the parameters for single axis motion.
PCI-8102 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 _8102_start_ta_move(), _8102_start_sa_move(). Z Relative Mode: “Distance” will be used as absolution target positions for motion when “Linear Interpolation Mode” is selected. “Dis EndPos” and “Dis Center” will be used as absolution target positions for motion when “Circular Interpolation Mode” is selected.
Mode”. It is available for “Linear Interpolation Mode” and “Circular Interpolation Mode”. 8. Set Center: Set the position of center for “Circular Interpolation Mode”. It is only effective when “Circular Interpolation Mode” is selected. 9. Jog Command: Press one directional button to move. 10.Velocity: The absolute value of velocity in units of PPS. The related function is _8102_get_current_speed(). 11. Interpolation Command: Z Command: displays the value of the command counter.
PCI-8102 Circular Interpolation: The setting for circular interpolation mode has three additional parameters in “Motion Parameters Setting Frame”. They are arc degree, division axis and optimize option. Please refer to section 6.7 ,6.8 to set them. After setting these parameters, you can enter the arc center and degree in “Play Key Frame”. Click Run button to start circular interpolation motion.
Z In “Linear Mode,” it causes the axis to move to Distance. The related function is _8102_start_tr_move_xy, _8102_start_sr_move_xy. Z In “Circular Mode,” it causes the axis to move to Distance(By Pos/Dist(pulse)).The related function is _8102_start_tr_arc_xy, _8102_start_sr_arc_xy. Stop Button: Clicking this button will cause the 8102 to decelerate and stop. The deceleration time is defined in “Decel. Time.” The related function is _8102_sd_stop(). 17.Buttons: 112 Z Next Card: Change operating card.
PCI-8102 18.Graph Range Frame: Z Clear: Clear the Motion Graph. Z 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. 5.3.8 Help Menu In this menu, users can Click Mouse Right Key to show Help Information.
This page intentionally left blank.
PCI-8102 6 Function Library This chapter describes the supporting software for the PCI-8102 card. User can use these functions to develop programs in C, C++, or Visual Basic. If Delphi is used as the programming environment, it is necessary to transform the header files, pci_8102.h manually. 6.1 List of Functions Initialization Section 6.
Function Name Description _8102_sd_stop Decelerate to stop _8102_emg_stop Immediately stop _8102_get_current_speed _8102_speed_override Get current speed(pulse/sec) Change speed on the fly _8102_set_max_override_speed Set the maximum orerride speed Single Axis Position Mode Section 6.
PCI-8102 Circular Interpolation Motion Section 6.8 Function Name Description _8102_start_tr_arc_xy Begin a t-curve relative circular interpolation for X & Y _8102_start_ta_arc_xy Begin a t-curve absolute circular interpolation for X &Y _8102_start_sr_arc_xy Begin a s-curve relative circular interpolation for X &Y _8102_start_sa_arc_xy Begin a s-curve absolute circular interpolation for X &Y Home Return Mode Section 6.
Motion Interface I/O Section 6.
PCI-8102 Position Control and Counters Section 6.
Continuous Motion Section 6.16 Function Name Description _8102_set_continuous_move Enable continuous motion for absolute motion _8102_check_continuous_buffer Check if the buffer is empty _8102_dwell_move Multiple Axes Simultaneous Operation Section 6.
PCI-8102 Function Name Description _8102_set_soft_limit Set the soft limits Backlash Compensation / Vibration Suppression Section 6.20 Function Name Description _8102_backlash_comp Set backlash corrective pulse for compensation _8102_suppress_vibration Set suppress vibration idle pulse counts _8102_set_fa_speed Set FA speed for home mode Speed Profile Calculation Section 6.
Type Name Description Range 1.797683134862315E308 64-bit double-precision floating-point to 1.797683134862315E309 F64 Boolean Boolean logic value TRUE, FALSE The functions of the 8102’s 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. _8102_Initial().
PCI-8102 This function is used to close 8102 card and release its resources, which should be called at the end of your applications. _8102_get_version: Lets users read back the firmware’s, driver’s and DLL’s version information. _8102_set_user_code: Set your own codes into EEPROM. It can secure users’ applcaition to avoid plagiarism. _8102_get_user_code: Get codes that you set by the function “_8102_set_user_code” from EEPROM.
@ Syntax C/C++(Windows 2000/XP/7) I16 _8102_initial(U16 *CardID_InBit, I16 Manual_ID); I16 _8102_close(void); I16 _8102_get_version(I16 card_id, I16 *firmware_ver, I32 *driver_ver, I32 *dll_ver); I16 _8102_set_user_code(I16 card_id, I16 Length, U16 *sec_code ); I16 _8102_get_user_code(I16 card_id, I16 Length, U16 *sec_code ); I16 _8102_config_from_file(); Visual Basic 6(Windows 2000/XP/7) B_8102_initial(CardID_InBit As Integer, ByVal Manual_ID As Integer) As Integer B_8102_close() As Integer B_8102_get_ver
PCI-8102 1: on board DIP switch (SW1). card_id: Specify the PCI-8102 card index. The card_id could be decided by DIP switch (SW1) or depend on slot sequence.Please refer to _8102_initial(). firmware_ver: The current firmware version. driver_ver: The current device driver version. dll_ver: The current DLL library version. Length: Array size. Length = 1~12 *sec_code: A numerical array, the array size would be set between 1 and 12. 6.
the _8102_set_pls_iptmode() function. Else, the counter will count the command pulse output.
PCI-8102 Value Meaning 1 2X A/B 2 4X A/B 3 CW/CCW pls_logic: Logic of encoder feedback pulse. Value Meaning 0 Not inverse direction 1 inverse direction pls_outmode: Setting of command pulse output mode. Src: Counter source Value Meaning 0 External signal feedback 1 Command pulse @ Return Code ERR_NoError 6.
_8102_sv_move – Accelerate an axis to a constant velocity with S-curve profile _8102_emg_stop – Immediately stop _8102_sd_stop – Decelerate to stop _8102_get_current_speed – Get current speed _8102_speed_override – Change speed on the fly _8102_set_max_override_speed – Set the maximum orerride speed @ Description _8102_tv_move: This function is to accelerate an axis to the specified constant velocity with a trapezoidal profile.
PCI-8102 _8102_speed_override: This function is used to change motion speed on the fly. The overrided speed cannot higher than maximum motion speed. On the other hand, Users also can use the function “_8102_set_max_override_speed” to set the maximum override speed which may higher or lower than maximum motion speed before motion. _8102_set_max_override_speed: This function is used to set the max orerrided speed. This function is used before velocity motion.
B_8102_speed_override(ByVal CaxisNo As Integer , ByVal NewVelPercent as Double, ByVal Time As Interger); B_8102_set_max_override_speed(ByVal AxisNo As Integer, ByVal OvrdSpeed As Double, ByVal Enable As Integer); @ Argument AxisNo: Axis number designated to move or stop.
PCI-8102 _8102_start_sa_move – Begin an absolute S-curve profile move _8102_set_move_ratio – Set the ration of command pulse and feedback pulse _8102_position_override – Change position on the fly @ Description General: The moving direction is determined by the sign of the Pos or Dist parameter.
_8102_start_sa_move: This function causes the axis to accelerate from a starting velocity (StrVel), rotate at constant velocity, and decelerates to stop at the specified absolute position with S-curve profile. The acceleration and deceleration time is specified independently.This command does not let the program wait for motion completion but immediately returns control to the program. _8102_set_move_ratio: This function configures scale factors for the specified axis.
PCI-8102 Double, ByVal MaxVel As Double, ByVal Tacc As Double, ByVal Tdec As Double) As Integer B_8102_start_ta_move(ByVal AxisNo As Integer, ByVal Pos As Double, ByVal StrVel As Double, ByVal MaxVel As Double, ByVal Tacc As Double, ByVal Tdec As Double) As Integer B_8102_start_sr_move(ByVal AxisNo As Integer, ByVal Dist As Double, ByVal StrVel As Double, ByVal MaxVel As Double, ByVal Tacc As Double, ByVal Tdec As Double, ByVal SVacc As Double, ByVal SVdec As Double) As Integer B_8102_start_sa_move(ByVal Ax
Tdec: Specified deceleration time in units of seconds SVacc: Specified velocity interval in which S-curve acceleration is performed. Note: SVacc = 0, for pure S-Curve. For more details, see section 4.2.4 SVdec: specified velocity interval in which S-curve deceleration is performed. Note: SVdec = 0, for pure S-Curve. For more details, see section 4.2.4 Move_ratio: ratio of (feedback resolution)/(command resolution) , should not be 0 NewPos: specified new absolute position to move 6.
PCI-8102 Function Total Velocity Relative / axes profile Absolute Target axes _8102_start_ta_move_xy 2 T A Axes 0 & 1 _8102_start_sr_move_xy 2 S R Axes 0 & 1 _8102_start_sa_move_xy 2 S A Axes 0 & 1 Velocity profile : T : trapezoidal profile S : s curve profile Relative / Absolute: R: Relative distance A: Absoulte position @ Syntax C/C++(Windows 2000/XP/7) I16 _8102_start_tr_move_xy(I16 Card_id, F64 DistX, F64 DistY, F64 StrVel, F64 MaxVel, F64 Tacc, F64 Tdec); I16 _8102_start_ta_move_xy(
B_8102_start_sr_move_xy(ByVal CardNo 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_8102_start_sa_move_xy(ByVal CardNo As Integer, ByVal PosX As Double, ByVal PosY 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 @ Argument AxisNo: Axis n
PCI-8102 section 4.2.4 SVdec: specified velocity interval in which S-curve deceleration is performed. Note: SVdec = 0, for pure S-Curve. For more details, see section 4.2.4 6.
@ Syntax C/C++(Windows 2000/XP/7) I16 _8102_start_tr_arc_xy(I16 Card_id, F64 OffsetCx, F64 OffsetCy, F64 OffsetEx, F64 OffsetEy, I16 DIR, F64 StrVel,F64 MaxVel,F64 Tacc,F64 Tdec); I16 _8102_start_ta_arc_xy(I16 Card_id, F64 Cx, F64 Cy, F64 Ex, F64 Ey, I16 DIR, F64 StrVel,F64 MaxVel,F64 Tacc,F64 Tdec); I16 _8102_start_sr_arc_xy(I16 Card_id, F64 OffsetCx, F64 OffsetCy, F64 OffsetEx, F64 OffsetEy, I16 DIR, F64 StrVel,F64 MaxVel,F64 Tacc,F64 Tdec,F64 SVacc,F64 SVdec); I16 _8102_start_sa_arc_xy(I16 Card_id, F64 C
PCI-8102 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 @ Argument AxisNo: Axis number designated to move or change position.
SVacc: Specified velocity interval in which S-curve acceleration is performed. Note: SVacc = 0, for pure S-Curve. For more details, see section 4.2.4 SVdec: specified velocity interval in which S-curve deceleration is performed. Note: SVdec = 0, for pure S-Curve. For more details, see section 4.2.4 6.9 Home Return Mode @ Name _8102_set_home_config – Set the configuration for home return. _8102_home_move – Perform a home return move.
PCI-8102 This function is used to start home searching no matter the location of axis. The ORGoffset must be set to non-zero to previous miss operation.
home_mode: Stopping modes for home return, This value is between 0 to 12. Please see Section 4.2.10 org_logic: Action logic configuration for ORG Value Meaning 0 Active low 1 Active high ez_logic: Action logic configuration for EZ Value Meaning 0 Active low 1 Active high ez_count: 0~15 (Please refer to see Section 4.2.10) erc_out: Set ERC output options. Value Meaning 0 no ERC out 1 ERC signal out when home-move is complete StrVel: Starting velocity of a velocity profile.
PCI-8102 6.10 Manual Pulser Motion @ Name _8102_disable_pulser_input – Disable the pulser input _8102_pulser_pmove – Manual pulser p_move _8102_pulser_vmove – Manual pulser v_move _8102_set_pulser_ratio – Set manual pulser ratio for actual output pulse rate _8102_set_pulser_iptmode – Set the input signal modes of pulser @ Description _8102_disable_pulser_input This function is used to set the pulser input disabel or enabel.
@ Syntax C/C++(Windows 2000/XP/7) I16 _8102_disable_pulser_input(I16 AxisNo, U16 Disable ); I16 _8102_pulser_pmove(I16 AxisNo, F64 Dist, F64 SpeedLimit); I16 _8102_pulser_vmove(I16 AxisNo, F64 SpeedLimit); I16 _8102_set_pulser_ratio(I16 AxisNo, I16 DivF, I16 MultiF); I16 _8102_set_pulser_iptmode(I16 AxisNo, I16 InputMode, I16 Inverse); Visual Basic (Windows 2000/XP/7) B_8102_disable_pulser_input(ByVal AxisNo As Integer, ByVal Disable As Integer) As Integer B_8102_pulser_pmove(ByVal AxisNo As Integer, ByVal
PCI-8102 Disable: Disable pulser input. X Disable = 1, disable pulser X 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.
Return the motion status of the 8102.
PCI-8102 @ Argument AxisNo: Axis number designated to start manual move card_id Physical axis AxisNo 0 0 1 1 0 2 1 3 0 1 2 0 4 1 … 6.
You can set the ON-OFF state of the SVON signal with this function. The default value is 1(OFF), which means the SVON is open to GND. _8102_set_pcs_logic: Set the active logic of the PCS signal input _8102_set_lcr_mode CLR inputed signal can reset specified counters from counter 1 to 4. The reset action could be set by this function. The reset action mode has 4 types. For details refer to argument. _8102_set_inp: Set the active logic of the In-Position signal input from the servo driver.
PCI-8102 Set the pin 23 to the input signal SD1, LTC1 or PCS1. _8102_select_pin57_input: Set the pin 57 to the input signal SD2, LTC2 or PCS2 _8102_get_io_status: Get all the I/O statuses for each axis.
I16 _8102_set_sd(I16 AxisNo, I16 sd_logic, I16 sd_latch, I16 sd_mode); I16 _8102_enable_sd(I16 AxisNo, I16 enable); I16 _8102_set_limit_logic(I16 AxisNo, U16 Logic ); I16 _8102_set_limit_mode(I16 AxisNo, I16 limit_mode); I16 _8102_select_pin23_input(I16 card_id, U16 Select ); I16 _8102_select_pin57_input(I16 card_id, U16 Select ); Visual Basic (Windows 2000/XP/7) B_8102_set_servo(ByVal AxisNo As Integer, ByVal on_off As Integer) As Integer B_8102_set_pcs_logic(ByVal AxisNo As Integer, ByVal pcs_logic As In
PCI-8102 @ Argument AxisNo: Axis number of Target Axis.card_idPhysical axisAxisNo card_id Physical axis AxisNo 0 0 1 1 0 2 1 3 0 4 1 … 0 1 2 on_off: ON-OFF state of SVON signal Value Meaning 0 ON 1 OFF pcs_logic: PCS signal input logic Value Meaning 0 Negative logic 1 Positive logic clr_mode: Clear action mode.
Value Meaning 1 Positive logic alm_logic: Setting of active logic for ALARM signals Value Meaning 0 Negative logic 1 Positive logic alm_mode: reaction modes when receiving an ALARM signal. Value Meaning 0 motor immediately stops (default) 1 motor decelerates then stops erc_logic: Set the active logic for the ERC signal Value Meaning 0 Negative logic 1 Positive logic erc_pulse_width: Set the pulse width of the ERC signal Value Meaning 0 12 us 1 102 us 2 409 us 3 1.
PCI-8102 sd_latch: Set the latch control for the SD signal Value Meaning 0 Do not latch 1 latch sd_mode: Set the reaction mode of the SD signal Value Meaning 0 slow down only 1 slow down then stop enable: Set the ramping-down point for high speed feed. Value Meaning 0 Automatic setting 1 Manual setting (default) Logic: Set the PEL/MEL logic.
6.
PCI-8102 When user enabled the Interrupt function by _8102_int_control(). He could use this function to wait the errior interrupts. _8102_wait_motion_interrupt: When user enabled the Interrupt function by _8102_int_control() and set the interrupt factors by _8102_set_motion_int_factor(). User could use this function to wait the specific interrupt. When this function was running, the process would never stop until evens were triggered or the function was time out.
B_8102_set_motion_int_factor(ByVal AxisNo As Integer, ByVal int_factor As Long) As Integer B_8102_wait_gpio_interrupt(ByVal card_id As Integer, ByVal IntFactorBitNo As Integer, ByVal TimeOut_ms As Long) As Integer B_8102_set_gpio_int_factor(ByVal card_id As Integer, ByVal int_factor As Integer) As Integer @ Argument card_id: Specify the index of target PCI-8102 card. The card_id could be decided by DIP switch (SW1) or depend on slot sequence.Please refer to _8102_initial().
PCI-8102 Value meaning (0: Disable, 1:Enable) Bit Description 7 Deceleration end 8 When soft limit turn on (positive direction) 9 When soft limit turn on (negetive direction) 10 When error comparator conditions are met 11 When general comparator conditions are met 12 When trigger comparator conditions are met 13 When resetting the count value with a CLR signal input 14 When Latching the count value with a LTC signal input 15 When Latching the count value with an ORG signal input 16 Whe
6.
PCI-8102 This function is used to change the feedback position counter to the specified value. Note that the value to be set will be processed by the move ratio. If move ratio is 0.5, then the set value will be twice as given value. _8102_get_command: This function is used to read the value of the command position counter. The source of the command position counter is the pulse output of the 8102. _8102_set_command: This function is used to change the value of the command position counter.
This function is used to read the value of the residue distance recorder. The target position recorder is maintained by the 8102 software driver. It records the position to settle down for current running motion.
PCI-8102 B_8102_set_general_counter(ByVal AxisNo As Integer, ByVal CntSrc As Integer, ByVal CntValue As Double) As Integer B_8102_get_general_counter(ByVal AxisNo As Integer, ByRef Pos As Double) As Integer B_8102_reset_target_pos(ByVal AxisNo As Integer, ByVal Pos As Double) As Integer B_8102_get_target_pos(ByVal AxisNo As Integer, ByRef Pos As Double) As Integer B_8102_set_res_distance(ByVal AxisNo As Integer, ByVal Res_Distance As Double) As Integer B_8102_get_res_distance(ByVal AxisNo As Integer, ByRef
Value Meaning 2 Pulser input 3 System clock÷2 CntValue, * CntValue: the counter value T_pos, *T_pos: Target position recorder value, range: -134217728~134217727 Res_Distance, * Res_Distance: residue distance 6.
PCI-8102 This function is used to set the comparing source counter, comparison method and value for the general comparator. When the comparison conditions are met, there is one of the 4 reactions will be done. The detail setting, see the argument discribtion. _8102_set_trigger_comparator: This function is used to set the comparing source counter, comparison method and value for the trigger comparator.
I16 _8102_get_latch_data(I16 AxisNo, I16 CounterNo, F64 *Pos); Visual Basic (Windows 2000/XP/7) B_8102_set_trigger_logic(ByVal AxisNo As Integer, ByVal Logic As Integer) As Integer B_8102_set_error_comparator(ByVal AxisNo As Integer, ByVal CmpSrc As Integer, ByVal CmpMethod As Integer, ByVal Data As Long) As Integer B_8102_set_general_comparator(ByVal AxisNo As Integer, ByVal CmpSrc As Integer, ByVal CmpMethod As Integer, ByVal CmpAction As Integer, ByVal Data As Long) As Integer B_8102_set_trigger_compara
PCI-8102 Logic: logic of comparing trigger Value Meaning 0 Negative logic 1 Positive logic CmpSrc: The comparing source counters Value Meaning 0 Command counter 1 Feedback counter 2 Error counter 3 General counter CmpMethod: The comparison methods Value Meaning 1 Data = Source counter (direction independent) 2 Data = Source counter (Count up only) 3 Data = Source counter (Count down only) 4 Data > Source counter 5 Data < Source counter Data: comparing value CmpAction: Value Mea
Value Meaning 2 general comparator conditions are met 3 trigger comparator conditions are met ltc_logic: LTC signal operation edge Value Meaning 0 Negative logic 1 Positive logic CounterNo: Specified the counter to latch Value Meaning 0 Command counter 1 Feedback counter 2 Error counter 3 General counter *Pos: Latch data 6.
PCI-8102 This function is used to detect if the command pre-register is empty or not. Once the command pre-register is empty, users may write the next motion command into it. Otherwise, the new command will overwrite the previous command in the 2nd command pre-register. _8102_dwell_move: This function is used to start a dwell move that means the move does not cause real motion for a specific time.
@ Argument AxisNo: axis number Target Axis card_id 0 1 2 Physical axis AxisNo 0 0 1 1 0 2 1 3 0 4 1 … conti_logic: continuous motion logic Value Meaning 0 continuous motion sequence is finished 1 continuous motion sequence is started miniSecond: Time of dwell move, the unit is in ms 6.
PCI-8102 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” in _8102_set_tr_move_all(). When properly setup with _8102_set_xx_move_all(), the function _8102_start_move_all() will cause all specified axes to begin a trapezoidal relative movement, and _8102_stop_move_all() will stop them.
*MaxVelA, F64 *TaccA, F64 *TdecA, F64 *SVaccA, F64 *SVdecA); I16 _8102_set_sa_move_all(I16 TotalAx, I16 *AxisArray, F64 *PosA, F64 *StrVelA, F64 *MaxVelA, F64 *TaccA, F64 *TdecA, F64 *SVaccA, F64 *SVdecA); I16 _8102_start_move_all(I16 FirstAxisNo); I16 _8102_stop_move_all(I16 FirstAxisNo); Visual Basic (Windows 2000/XP/7) B_8102_set_tr_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 Double, ByRef TdecA
PCI-8102 *DistA: Specified distance array in units of pulse *StrVelA: Starting velocity array in units of pulse per second *MaxVelA: Maximum velocity array in units of pulse per second *TaccA: Acceleration time array in units of seconds *TdecA: Deceleration time array in units of seconds *PosA: Specified position array in units of pulse *SvaccA: Specified velocity interval array in which S-curve acceleration is performed.
PCI-8102 has 4 digital input channels. By this function, user can get the digital input status. _8102_set_gpio_output2: The PCI-8102 has 16 digital output channels on P2. By this function, user could control the digital outputs. _8102_get_gpio_output2: This function is used to get the digital output status. _8102_get_gpio_input2: PCI-8102 has 16 digital input channels on P2. By this function, user can get the digital input status.
PCI-8102 B _8102_get_gpio_output Lib "8102.dll" Alias "_8102_get_gpio_output" (ByVal card_id As Integer, do_status As Integer) As Integer B _8102_get_gpio_input Lib "8102.
@ Description _8102_disable_soft_limit: This function is used to disable the soft limit function. _8102_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. _8102_set_soft_limit: This function is used to set the soft limit value.
PCI-8102 card_id Physical axis 2 AxisNo 0 4 1 … Action: The reacting method of soft limit Value Meaning 0 INT only 1 Immediately stop 2 slow down then stop Plus_Limit: Soft limit value, positive direction Neg_Limit: Soft limit value, negative direction 6.
This function is used to specify the low speed for backlash correction or slip correction. It also used as a reverse low speed for home return operation. @ Syntax C/C++(Windows 2000/XP/7) I16 _8102_backlash_comp(I16 AxisNo, I16 CompPulse, I16 Mode); I16 _8102_suppress_vibration(I16 AxisNo, U16 ReverseTime, U16 ForwardTime); I16 _8102_set_fa_speed(I16 AxisNo, F64 FA_Speed); Visual Basic (Windows 2000/XP/7) B_8102_backlash_comp Lib "8102.
PCI-8102 Mode: Value Meaning 0 Turns off 1 enable backlash compensation 2 Slip correction ReverseTime: Specified Reverse Time, 0 ~ 65535, unit 1.6 us ForwardTime: Specified Forward Time, 0 ~ 65535, unit 1.6 us FA_Speed: fa speed (unit: pulse/sec) 6.
This function is used to get the absolute S-curve speed profiles. By this function user can get the actual speed profile before running.
PCI-8102 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 B_8102_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, ByR
4.2.4 SVdec: S-curve region during deceleration (unit: pulse/sec) Note: SVdec = 0, for pure S-Curve. For more details, section 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.
PCI-8102 Code Meaning -10212 Error position out of range -10213 Error motion busy -10214 Error speed error -10215 Error slow down point -10216 Error axis range error -10217 Error compare parameter error -10218 Error compare method -10219 Error axis already stop -10220 Error axis INT wait failed -10221 Error user code write failed -10222 Error array size exceed -10223 Error factor number -10224 Error enable range -10225 Error auto accelerate time -10226 Error dwell time -10227
This page intentionally left blank.
PCI-8102 7 Connection Example This chapter shows some connection examples between the PCI8102 and servo drivers and stepping drivers. 7.1 General Description of Wiring Main connection between the PCI-8102 and the pulse input servo driver or stepping driver. The following figure illustrates how to integrate the PCI-8102 and DIN-68M-J3A 7.
Notes: 1. Servo & Stepper: The DIN-68M-J3A provides 2 connection methods for each axis: CN1F1 & CN1F2 connectors for Mitsubishi J3A series servo drivers, and a SJ connector for stepping drivers. DO NOT use both connectors at the same time. 2. CN1F1 or CN1F2 cables: One pin-to-pin 50-PIN cables are required for connection between the CF1F1(CN1F2) and the Mitsubishi J3A driver. It is available from ADLINK, or users may contact the local dealer or distributor to get cable information. 3.
PCI-8102 7.2.1 Pin Assignments: CN1F1/CN1F2 (Mitsubishi AC Servo Driver J3A) No. Name I/O Function No. Name I/O Function 1 P15R -- 15VDC power supply 2 VLA O Analog speed limit 3 EXGND -- Ext. power ground 4 EA+ I Encoder A-phase (+) 5 EA- I Encoder A-phase (-) 6 EB+ I Encoder B-phase (+) 7 EB- I Encoder B-phase (-) 8 EZ+ I Encoder Z-phase (+) 9 EZ- I Encoder Z-phase (-) 10 OUT+ O Pulse signal (+) 11 OUT- O Pulse signal (-) 12 (Empt N. y) C.
No. Name I/O Function 35 DIR+ O Direction Signal (+) 37 (Empty) N. C. 38 (Empt N. y) C. 39 (Empty) N. C. 40 (Empt N. y) C. ERC O Dev. ctr, clr. Signal SP1 O Speed selection 1 42 EMG I External EMG Signal 43 EXGND -- Ext. power ground 44 EXG ND -- Ext. power ground 45 LOP O Control change 46 EXG ND -- Ext. power ground 47 EXGND -- Ext. power ground 48 ALM I Servo Alarm 41 49 186 RDY I Servo Ready No.
PCI-8102 IOIF1/IOIF2 (External Motion Input Signal Interface) No. Name I/O Function No. Name I/O Function 1 EXG ND -- Ext. power ground 19 EX+24 V I Ext. power supply, +24V 2 EXG ND -- Ext. power ground 20 EX+24 V I Ext. power supply, +24V 3 EXG ND -- Ext. power ground 21 EX+24 V I Ext. power supply, +24V 4 EXG ND -- Ext. power ground 22 EX+24 V I Ext. power supply, +24V 5 EXG ND -- Ext. power ground 23 EX+24 V I Ext.
No. Name I/O Function No. Name I/O Function 17 ZSP I Zero speed 35 TLC I Limiting torque 18 EXG ND -- Ext.
PCI-8102 SJ1/SJ2 (Stepping Motor Control Interface) No. Name I/O Function 1 2 OUT+ O Pulse Signal (+) OUT- O Pulse Signal (-) 3 DIR+ O Direction Signal (+) 4 DIR- O Direction Signal (-) 5 EZ+ I Index Signal 6 ALM I Servo Alarm +5V O Voltage output 7 8 Servo ON O Servo On 9 +5V O Voltage output 10 EXGND -- Ext. power ground PWC1 (External +24VDC Input Connector) No.
7.2.2 Signal Connections of Interface Circuit 1. PEL, MEL, ORG, INP, ALM, RDY 2. CMP 3. ERC, SVON 4.
PCI-8102 5. DIN, DI_COM 6. DOUT, DO_COM 7.
8. HSIN 9. HSOUT, HO_COM This page intentionally left blank.
PCI-8102 7.2.3 Mechanical Dimensions: NOTE: All dimensions are in mm.
This page intentionally left blank.
PCI-8102 Appendix 8.
This page intentionally left blank.
EOS-1200 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. X Read these safety instructions carefully. X Keep this user’s manual for future reference. X Read the specifications section of this manual for detailed information on the operating environment of this equipment.
X 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. WARNING: X 198 Risk of explosion if battery is replaced with one of an incorrect type. Dispose of used batteries appropriately.
EOS-1200 Getting Service Contact us should you require any service or assistance. ADLINK Technology, Inc. Address: 9F, No.166 Jian Yi Road, Zhonghe District New Taipei City 235, Taiwan ᄅؑקխࡉ৬ԫሁ 166 ᇆ 9 ᑔ Tel: +886-2-8226-5877 Fax: +886-2-8226-5717 Email: service@adlinktech.com Ampro ADLINK Technology, Inc. Address: 5215 Hellyer Avenue, #110, 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.
ADLINK Technology, Inc. (French Liaison Office) Address: 15 rue Emile Baudot, 91300 Massy CEDEX, France Tel: +33 (0) 1 60 12 35 66 Fax: +33 (0) 1 60 12 35 66 Email: france@adlinktech.com ADLINK Technology Japan Corporation Address: ͱ101-0045 ᵅҀ䛑गҷ⬄ऎ⼲⬄䤯 ⬎ފ3-7-4 ⼲⬄ 374 ɛɳ 4F KANDA374 Bldg. 4F, 3-7-4 Kanda Kajicho, Chiyoda-ku, Tokyo 101-0045, Japan Tel: +81-3-4455-3722 Fax: +81-3-5209-6013 Email: japan@adlinktech.com ADLINK Technology, Inc.