PCI-1245/1265 Series DSP-Based SoftMotion PCI Controller User Manual Copyright This documentation and the software included with this product are copyrighted 2012 by Advantech Co., Ltd. All rights are reserved. Advantech Co., Ltd. reserves the right to make improvements in the products described in this manual at any time without notice. No part of this manual may be reproduced, copied, translated or transmitted in any form or by any means without the prior written permission of Advantech Co., Ltd. Information provided in this manual is intended to be accurate and reliable. However, Advantech Co., Ltd. assumes no responsibility for its use, nor for any infringements of the rights of third parties which may result from its use. Acknowledgments PC-LabCard is a trademark of Advantech Co., Ltd. IBM and PC are trademarks of International Business Machines Corporation. MS-DOS, Windows®, Microsoft® Visual C++ and Visual BASIC are trademarks of Microsoft® Corporation. Intel® and Pentium® are trademarks of Intel Corporation. Delphi and C++Builder are trademarks of Inprise Corporation. CE Notification The PCI-1245/1245E/1265, developed by Advantech CO., LTD., has passed the CE test for environmental specifications when shielded cables are used for external wiring. We recommend the use of shielded cables. This kind of cable is available from Advantech. Please contact your local supplier for ordering information. Part No. 2003124510 Edition 1 Printed in Taiwan PCI-1245/1265 User Manual ii March 2012 Product Warranty (2 years) Advantech warrants to you, the original purchaser, that each of its products will be free from defects in materials and workmanship for two years from the date of purchase. This warranty does not apply to any products which have been repaired or altered by persons other than repair personnel authorized by Advantech, or which have been subject to misuse, abuse, accident or improper installation. Advantech assumes no liability under the terms of this warranty as a consequence of such events. Because of Advantech’s high quality-control standards and rigorous testing, most of our customers never need to use our repair service. If an Advantech product is defective, it will be repaired or replaced at no charge during the warranty period. For out-of-warranty repairs, you will be billed according to the cost of replacement materials, service time and freight. Please consult your dealer for more details. If you think you have a defective product, follow these steps: 1. Collect all the information about the problem encountered. (For example, CPU speed, Advantech products used, other hardware and software used, etc.) Note anything abnormal and list any onscreen messages you get when the problem occurs. 2. Call your dealer and describe the problem. Please have your manual, product, and any helpful information readily available. 3. If your product is diagnosed as defective, obtain an RMA (return merchandize authorization) number from your dealer. This allows us to process your return more quickly. 4. Carefully pack the defective product, a fully-completed Repair and Replacement Order Card and a photocopy proof of purchase date (such as your sales receipt) in a shippable container. A product returned without proof of the purchase date is not eligible for warranty service. 5. Write the RMA number visibly on the outside of the package and ship it prepaid to your dealer. iii Technical Support and Assistance 1. Visit the Advantech web site at www.Advantech.com/support where you can find the latest information about the product. 2. Contact your distributor, sales representative, or Advantech's customer service center for technical support if you need additional assistance. Please have the following information ready before you call: • Product name and serial number • Description of your peripheral attachments • Description of your software (operating system, version, application software, etc.) • A complete description of the problem • The exact wording of any error messages Packing List Before setting up the system, check that the items listed below are included and in good condition. If any item does not accord with the table, please contact your dealer immediately. • PCI-1245/1245E/1265 • Companion CD-ROM (DLL driver included) • Startup Manual Safety Precaution - Static Electricity Follow these simple precautions to protect yourself from harm and the products from damage. 1. To avoid electrical shock, always disconnect the power from your PC chassis before you work on it. Don't touch any components on the CPU card or other cards while the PC is on. 2. Disconnect power before making any configuration changes. The sudden rush of power as you connect a jumper or install a card may damage sensitive electronic components. PCI-1245/1265 User Manual iv Contents Chapter 1 Introduction ......................................................2 1.1 1.2 1.3 1.4 Chapter 2 Installation ........................................................6 2.1 2.2 2.3 Chapter Features ............................................................................. 2 Applications ...................................................................... 3 Installation Guide .............................................................. 3 Accessories........................................................................ 4 Unpacking ......................................................................... 6 Driver Installation ............................................................. 7 Hardware Installation ....................................................... 8 3 Signal Connections .........................................10 3.1 I/O Connector Pin Assignments...................................... 10 Figure 3.1 I/O Connector Pin Assignments for PCI-1245/1245E/1265 ......................... 11 Figure 3.2 I/O Connector Pin Assignments for PCI-1265 (Daughter Board)................. 12 Table 3.1 I/O Connector Signal Description .......... 13 3.2 Location of DIP switch ................................................... 14 Figure 3.3 Location of Jumpers & DIP Switch........ 15 Table 3.2 BoardID Setting...................................... 15 3.3 Output Pulse [OutP+/-, OutDIR+/-] ................................ 16 Figure 3.4 Photocoupler Interface............................ 16 Figure 3.5 Line Drive Interface................................ 16 3.4 Over Traveling Limit Switch Input [ LMT+/- ] .............. 17 3.5 3.6 3.7 3.8 3.9 3.10 Position Latch [LTC] ...................................................... 17 Servo Ready Signal [RDY] ............................................. 17 Home Position [ORG]..................................................... 17 In-Position Singal [INP]................................................. 18 Servo Error & Alarm [ALM] .......................................... 18 Encoder Input [ECA+/-, ECB+/-, ENZ+/-]..................... 18 3.11 Emergency Stop Input (EMG) ........................................ 19 Figure 3.6 Circuit Diagram for Limit Input Signals 17 Figure 3.7 Circuit Diagram of Encoder Feedback ... 18 Figure 3.8 Circuit Diagram of Emergency Stop Input Signal ................................................... 19 3.12 3.13 External Power Input (VEX)........................................... 19 Position Window Output [CAM-DO] ............................. 20 Figure 3.9 Circuit Diagram of Position Window Output................................................... 20 3.14 Activate Servo ON [SVON]............................................ 20 v 3.15 3.16 3.17 3.18 Chapter Servo Error Counter Clear [ERC] ................................... 20 Position Compare Output [TrigP] ................................... 20 JOG and MPG ................................................................. 21 Simultaneous Start and Stop within Multiple Cards ....... 21 4 Common Motion API.....................................24 4.1 4.2 4.3 Introduction of Common Motion Architecture ............... 24 Device Number ............................................................... 25 Naming Rules of API and Properties .............................. 26 Table Chapter 5 Utility...............................................................30 5.1 Introduction ..................................................................... 30 5.1.1 5.2 5.3 Operate Axes................................................................. 51 Motion Params Set........................................................ 51 Motion Ends.................................................................. 52 Motion Operation.......................................................... 52 Path Status..................................................................... 59 Position ......................................................................... 60 State & Status................................................................ 60 Synchronized Motion ...................................................... 60 5.5.1 5.5.2 5.6 5.7 5.8 Operate Axis ................................................................. 35 Motion Params Set........................................................ 35 SVON............................................................................ 38 Configuration ................................................................ 38 Move Test ..................................................................... 48 Position ......................................................................... 48 Current Axis Status....................................................... 48 DI/O Status ................................................................... 49 Last Error Status ........................................................... 49 I/O Status ...................................................................... 50 Multi-Axes Motion.......................................................... 51 5.4.1 5.4.2 5.4.3 5.4.4 5.4.5 5.4.6 5.4.7 5.5 Main Form .................................................................... 31 Toolbar.......................................................................... 32 Device Tree................................................................... 34 Single-Axis Motion ......................................................... 35 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7 5.3.8 5.3.9 5.3.10 5.4 Contents ........................................................................ 30 Main Form....................................................................... 31 5.2.1 5.2.2 5.2.3 Chapter 4.1 Abbreviations and Their Meanings ........ 26 Slave Axis Operation .................................................... 61 Master Axis Operation.................................................. 68 Digital Input .................................................................... 69 Digital Output.................................................................. 69 Analog Input.................................................................... 70 6 Programming Guide ......................................72 6.1 Introduction ..................................................................... 72 PCI-1245/1265 User Manual vi 6.1.1 6.1.2 6.1.3 6.2 Getting Started................................................................. 75 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.2.6 6.3 Common API .............................................................. 120 Device Object ............................................................. 122 DAQ............................................................................ 140 Axis............................................................................. 146 Group .......................................................................... 207 Property List.................................................................. 245 6.4.1 6.4.2 6.4.3 6.4.4 6.5 PCI-1245/1245E/1265 Software architecture............... 75 Figure 6.1 PCI-1265 Software Architecture ............ 75 Flow Charts................................................................... 76 Figure 6.2 Basic Operation Flow Chart ................... 76 Figure 6.3 Single Axis Operation Flow Chart ......... 77 Figure 6.4 Multiple Axis Operation Flow Chart...... 78 Figure 6.5 Cam Operation Flow Chart..................... 79 Figure 6.6 Gear/Gantry Operation Flow Chart ........ 80 Figure 6.7 Tangent Operation Flow Chart ............... 81 Example Support List ................................................... 82 PCI-1245/1245E/1265 Support API List...................... 84 Property Support List.................................................... 91 Creating a New Application ......................................... 95 Figure 6.8 Open File to Creating a New VC Application........................................... 95 Figure 6.9 Creating a New VC Console Application........................................... 96 Figure 6.10 Setting Caling Convention...................... 97 Figure 6.11 Folder Content of This Example ............ 97 Figure 6.12 Add Head Files Path ............................... 98 Figure 6.13 Setting Lib File Path ............................... 98 Figure 6.14 Result of VC Sonsole Example ............ 102 Figure 6.15 Load VB Development Environment ... 102 Figure 6.16 Add Module Files into Project.............. 103 Figure 6.17 Design the Form ................................... 103 Figure 6.18 The Execution Result............................ 107 Function List ................................................................. 120 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.4 Data Type Redefinition................................................. 73 About Error Code.......................................................... 74 About Event .................................................................. 74 Device ......................................................................... 245 DAQ............................................................................ 258 Axis............................................................................. 266 Group .......................................................................... 357 Error Code ..................................................................... 367 Appendix A Software Function Comparison Table .......376 A.1 Software Function Comparison Table........................... 376 vii Appendix B Specifications ................................................380 B.1 B.2 B.3 B.4 Axes............................................................................... 380 Digital Input/Output ...................................................... 380 Input Pulse for Encoder Interface.................................. 381 General ...................................................................... 381 PCI-1245/1265 User Manual viii CHAPTER 1 2 Introduction This chapter introduces PCI-1245/ 1245E/1265 and lists their special features and detailed specifications. Chapter 1 Introduction PCI-1245/1245E/1265 series are DSP-based SoftMotion PCI bus controller boards which are designed for electrical machine automation and traditional machine automation wide applications. The board is equipped with high-performance DSP with SoftMotion algorithm inside to perform the motion trajectory and timing control to meet the synchronization in precise movement. The Advantech SoftMotion features synchronization control in gantry, electronic gear and electronic CAM; interpolation in linear, circular and helical (spiral) curve; continuous movement in buffering piecewise trajectory to realize; cutting movement in tangential following to ensure the Z-axes is tangent to X-Y curve; high-speed position compare and triggering with any 3rd party machine vision solution. All Advantech motion controllers are applied to "Common Motion API" architecture which is an unified user programming interface. Programmer can benefit from integrating any Advantech motion controller without changing the application code in large scale. This architecture can save the effort of application maintenance and upgrade. 1.1 Features PCI-1245/1245E/1265 are featured by the following points (The features are listed, but varied by product model name) • Encoder input is 10 MHz for 4xAB mode, 2.5 MHz for CW/CCW mode • Pulse output up to 5 Mpps • Memory buffer (10 K points) for trajectory planning which is designed in DSP • Supports E-Gear, and helical interpolation • Supports E-CAM providing 256 points to describe the CAM profiles which buffers located in DSP • Hardware emergency input • Watchdog timer • Position latch via ORG & index signal • Position compare triggering up to 100 KHz, and memory buffer is up to 100 K points in DSP PCI-1245/1265 User Manual 2 • Programmable interrupt • Supports gantry mode by semi-closed loop pulse train control • RDY/LTC-dedicated input channels & SVN/TrigP/CAM-DO/ ERC-dedicated output channels are switchable for general input and output purposes 1.2 Applications • Precise X-Y-Z position control • Precise rotation control • Semi-packaging, assembly equipment and high-speed pick-andplace testing machine • LED die bonder and wire bonder • Tube-bending machine • Wire-winding machine 1.3 Installation Guide Before you install the card, please make sure you have the following necessary components: • PCI-1245/1245E/1265 card • User manual • Driver and software • Utility • PCL-10251 wiring cable between PCI board and terminal board • ADAM-3955 terminal boards • Any PCL-10153MJ3/PCL-10153YS5/PCL-10153PA5 cable between terminal board and servo drive (Supports Mitsubishi J3, Yaskawa Sigma V and Panasonic A4/A5) • Industrial-grade PC with PCI bus slot 3 Chapter 1 1.4 Accessories Advantech offers a complete set of accessory products. These accessories include: Wiring Cables to Wiring Board • PCL-10251 - PCL-10251 is a 100-pin shielded cable. To achieve a better signal quality, the signal wires are twisted in such away as to form a "twisted-pair cable", reducing cross talk and noise from other signal sources. • PCL-10152 - PCL-10152 is a 50-pin shielded cable. To achieve a better signal quality, the signal wires are twisted in such away as to form a "twisted-pair cable", reducing cross talk and noise from other signal sources. Wiring Cable Table PCI-1245/1245E PCL-10251 PCI-1265 PCL-10251 (100-pin) and PCL-10152 (50-pin) Wiring Board • ADAM-3955 - ADAM-3955 is specially designed for servo drive connection in a convenient way. The wiring board features 2-axis design. For instance, if you use PCI-1245 board, two wiring boards are necessary for 4-axis control. The fast-to-connect transfer cable are available for Panasonic A4/A5 servo, Yaskawa Sigma V and Mitsubishi J3. Transfer Cables to Servo • PCL-10153PA5 - PCL-10153PA5 is a 50-pin cable connecting ADAM-3955 to Panasonic A4 and A5 servo. • PCL-10153YS5 - PCL-10153YS5 is a 50-pin cable connecting ADAM-3955 to Yaskawa Sigma V servo. • PCL-10153MJ3 - PCL-10153MJ3 is a 50-pin cable connecting ADAM-3955 to Mitsubishi J3 servo. PCI-1245/1265 User Manual 4 CHAPTER 2 2 Installation This chapter instructs users how to proceed step-by-step process for driver and hardware installation. Chapter 2 Installation 2.1 Unpacking After receiving your PCI-1245/1245E/1265 package, please inspect the contents first. The package should include the following items: • PCI-1245/1245E/1265 card • CD-ROM (DLL driver & user manual included) The PCI-1245/1245E/1265 card has certain electronic components vulnerable to electrostatic discharge (ESD). ESD could easily damage the integrated circuits and certain components if preventive measures are not carefully taken. Before removing the card from the antistatic plastic bag, you should take following precautions to ward off possible ESD damage: • Touch the metal part of your computer chassis with your hand to discharge static electricity accumulated on your body. Or one can also use a grounding strap. • Touch the antistatic bag to a metal part of your computer chassis before opening the bag. • Hold of the card only by the metal bracket when taking it out of the bag. After taking out the card, you should first: • Inspect the card for any possible signs of external damage (loose or damaged components, etc.). If the card is visibly damaged, please notify our service department or the local sales representative immediately. Avoid installing a damaged card into your system. Also pay extra attention to the followings to ensure a proper installation: • Avoid physical contact with materials that could hold static electricity such as plastic, vinyl and Styrofoam. • Whenever you handle the card, grasp it only by its edges. DO NOT TOUCH the exposed metal pins of the connector or the electronic components. PCI-1245/1265 User Manual 6 2.2 Driver Installation We recommend you to install the driver before you install the PCI1245/1245E/1265 card into your system. The DLL driver setup program for the card is included on the companion CD-ROM that is shipped with package. Please follow the steps below to install the driver software: 1. Insert the companion CD-ROM into your CD-ROM drive. 2. The setup program will be launched automatically if you have the autoplay function enabled on your system. Note: If the autoplay function is not enabled on your computer, use Windows Explorer or Windows Run command to execute SETUP.EXE on the companion CD-ROM. 3. Select the proper Windows OS option according to your operating system. Just follow the installation instructions step by step to complete your DLL driver setup. 4. Then setup the PCI-1245/1245E/1265 Motion Utility automatically. For further information on driver-related issues, an online version of the Device Drivers Manual is available by accessing the following path: Start\Advantech Automation\Motion \(Board Name)\ The example source codes could be found under the corresponding installation folder, such as the default installation path: \Program Files\Advantech\ Motion \(Board Name)\Examples 7 Chapter 2 2.3 Hardware Installation Note: Make sure you have installed the driver first before you install the card (please refer to 2.2 Driver Installation) After the DLL driver installation is completed, you can now go on to install the PCI-1245/1245E/1265 card in any PCI slot on your computer. But it is suggested that you should refer to the computer’s user manual or related documentations if you have any doubt. Please follow the steps below to install the card on your system. 1. Turn off your computer and remove any accessories connected to the computer. Warning!Disconnect the power supply of your computer whenever you install or remove any card, or connect and disconnect cables. 2. Disconnect the power cord and any other cables from the back of the computer. 3. Remove the cover of the computer. 4. Select an empty +3.3/+5 V PCI slot. Remove the screws that secures the expansion slot cover to the system unit. Save the screws to secure the retaining bracketof interface card . 5. Carefully grasp the upper edge of the PCI-1245/1245E/1265. Align the hole in the retaining bracket with the hole on the expansion slot and align the gold striped edge connector with the expansion slot socket. Press the card into the socket gently but firmly. Make sure the card fits the slot tightly. Use of excessive force must be avoided; otherwise the card might be damaged. 6. Fasten the bracket of the PCI card on the back panel rail of the computer with screws. 7. Connect appropriate accessories (100-pin cable, wiring terminals, etc. if necessary) to the PCI card. 8. Replace the cover of your computer and connect the cables you removed in step 2. 9. Turn on your computer. PCI-1245/1265 User Manual 8 3 CHAPTER 2 Signal Connections This chapter provides information about how to connect input and output signals. Chapter 3 Signal Connections 3.1 I/O Connector Pin Assignments The I/O connector on the PCI-1245/1245E/1265 is a 100-pin connector that enables you to connect to accessories via the PCL-10251 shielded cable. Figure 3.1 and figure 3.2 show the pin assignments for the 100-pin I/O connector on the PCI-1245/1245E/1265, and table 3-1 shows its I/O connector signal description. Note: The PCL-10251 shielded cable is especially designed for the PCI-1245/1245E/1265 series to reduce noise in the analog signal lines. Please refer to section 1.4 Accessories. PCI-1245/1265 User Manual 10 VEX EMG LMTX+ LMTXLTCX RDYX ORGX LMTY+ LMTYLTCY RDYY ORGY INPX ALMX ECA+X ECA-X ECB+X ECB-X ENZ+X ENZ-X INPY ALMY ECA+Y ECA-Y ECB+Y ECB-Y ECZ+Y ECZ-Y DIX3 DIX4 DIY3 DIY4 EGND CAM-DOX TrigPX SVONX ERCX OutPX+ OutPXOutDIRX+ OutDIRXEGND CAM-DOY TrigPY SVONY ERCY OutPY+ OutPYOutDIRY+ OutDIRY- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 VEX NC LMTZ+ LMTZLTCZ RDYZ ORGZ LMTU+ LMTULTCU RDYU ORGU INPZ ALMZ ECA+Z ECA-Z ECB+Z ECB-Z ENZ+Z ENZ-Z INPU ALMU ECA+U ECA-U EBB+U ECB-U ECZ+U ECZ-U DIZ3 DIZ4 DIU3 DIU4 EGND CAM - DOZ TrigPZ SVONZ ERCZ OutPZ+ OutPZOutDIRZ+ OutDIRZEGND CAM-DOU TrigPU SVONU ERCU OutPU+ OutPUOutDIRU+ OutDIRU- Figure 3.1: I/O Connector Pin Assignments for PCI-1245/1245E/1265 11 Chapter 3 VEX LMTV+ LTCV ORGV LMTWRDYW INPV ECA+V ECB+V ENZ+V INPW ECA+W ECB+W ENZ+W DIV3 DIW3 EGND TrigPV ERCV OutPVOutDIRVCAM-DOW SVONW OutPW+ OutDIRW+ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 NC LMTVRDYV LMTW+ LTCW ORGW ALMV ECA-V ECB-V ENZ-V ALMW ECA-W ECB-W ENZ-W DIV4 DIW4 CAM-DOV SVONV OutPV+ OutDIRV+ EGND TrigPW ERCW OutPWOutDIRW- EGND DI1 DI3 DI5 DI7 DO1 DO3 DO5 DO7 AGND 1 3 5 7 9 11 13 15 17 19 2 4 6 8 10 12 14 16 18 20 DI0 DI2 DI4 DI6 DO0 DO2 DO4 DO6 AIN0 AIN1 Figure 3.2: I/O Connector Pin Assignments for PCI-1265 (Daughter Board) PCI-1245/1265 User Manual 12 Table 3.1: I/O Connector Signal Description Signal Name Reference VEX - Direction Input Description External Power (12~24VDC) EMG LMT+ LMTLTC RDY ORG INP ALM ECA+ ECAECB+ ECBENZ + ENZ EGND DI DO CAM-DO EGND EGND EGND Input Input Input Input Input Input Input Input Input Input Input Input Input Input Input Output Output TrigP SVON ERC OutP+ OutPOutDIR OutDIR EGND EGND EGND EGND EGND EGND EGND Output Output Output Output Output Output Output Emergency Stop (for all axes) + Direction Limit - Direction Limit Position Latch Servo Ready Home Position In-Position Input Servo Error Encoder Phase A+ Encoder Phase A Encoder Phase B + Encoder Phase B Encoder Phase Z + Encoder Phase Z Ground General-purposed digital input General-purposed digital output DO during assigned position interval and vice versa Compare to Trigger Output Servo ON Error Counter Clear Output pulse CW/Pulse Output pulse CW/Pulse Output pulse CCW/DI Output pulse CCW/DI 13 Chapter 3 Note: 1. X, Y, Z,U,V and W represent for ID of each axis. 2. RDY & LTC dedicated input channels are designed to be switchable and support general purpose input channel usage. 3. SVON, TrigP, CAM-DO and ERC dedicated output channels are designed to be switchable and support general purpose output channel usage. 4. For easy to note, DO4/CAM-DO, DO5/ TrigP, DO6/SVON and DO7/ERC will be used and expressed in motion utility. 5. DIX3 has three switchable functions general purpose input, JOG+ and MPG+(Manual Pulser). 6. DIX4 has three switchblade functions general purpose input, JOG- and MPG(Manual Pulser). 3.2 Location of DIP switch Figure 3.2 shows the names and locations of DIP switch on the PCI-1245/ 1245E/1265. The switch is used to set board ID. BoardID Switch PCI-1245/1245E/1265 have a built-in DIP switch (SW1), which is used to define each card's unique identifier for Motion Utility. You can determine the BoardID identifier on the register as shown in table 3.2. When there are multiple cards in the same chassis, this BoardID setting is useful for identifying each card's unique device number. We set the BoardID switch to 0 at the factory. If you need to adjust it to another number, set SW1 by referring to table 3.2. PCI-1245/1265 User Manual 14 Figure 3.3: Location of Jumpers & DIP Switch Table 3.2: BoardID Setting Board ID Setting (SW1) Board ID (Dec.) Switch Position ID3 (1) ID2 (2) ID1 (3) ID0 (4) *0 1 14 15 = Off = On * = default : 15 Chapter 3 3.3 Output Pulse [OutP+/-, OutDIR+/-] The pulse command has two types: One is in clockwise/ counterclockwise mode; the other is in pulse/direction mode. OutP+ and OutPare differential signal pairs and OutDIR+ and OutDIR- are differential signal pairs. Default setting of pulse output mode is pulse/direction. User can change the output mode by programming. Figure 3.4: Photocoupler Interface Figure 3.5: Line Drive Interface PCI-1245/1265 User Manual 16 3.4 Over Traveling Limit Switch Input [ LMT+/- ] Over traveling limit switches are used for system protection. This input signal is connected through the connection of photo coupler and RC filter. When the limit switch is applied, the external power VEX DC 12 ~ 24 V will be the source of the photo coupler. This enables the over traveling function. Figure 3.6: Circuit Diagram for Limit Input Signals 3.5 Position Latch [LTC] It is a general purpose input pin which is used to latch the simultaneous position information. Users can read the position counter by programming. For detailed information, please refer to chapter 6. 3.6 Servo Ready Signal [RDY] It is a general purpose digital input which is used to check the servo ready status from servo drive connection. For example, you can check the status before any command is issued. Users can also use this RDY as general purpose input for other usages. 3.7 Home Position [ORG] Home position is to define the original position or home signal for each axis. Please refer to chapter 6 for programming settting. 17 Chapter 3 3.8 In-Position Singal [INP] The In-Position range (or deviation) is usually defined by servo drive. When the motor moves and converges within this range (or deviation), the servo driver will send the signal out to indicate that the motor is in the defined position. 3.9 Servo Error & Alarm [ALM] This input is from servo drive which will generate the alarm signal to indicate any operation error. 3.10 Encoder Input [ECA+/-, ECB+/-, ENZ+/-] When the feedback encoder signals arrive, connect ECA+/ECA- to phase A of encoder output. It is a differential pair. The same rule is for ECB+/and ENZ+/-. The default setting of PCI-1245/1245E/1265 is quadrature input (4xAB phase). The following diagram shows the interface circuit for one channel: Figure 3.7: Circuit Diagram of Encoder Feedback In the circuit diagram above, PCI-1245/1245E/1265 use high speed photo coupler for isolation. The source's encoder output can be differential mode or open-collector mode. And the maximum acceptable 4xAB phase feedback frequency is about 10 MHz. PCI-1245/1265 User Manual 18 3.11 Emergency Stop Input (EMG) When emergency stop input signal is enabled, the output of the drive pulse for all axes will be stopped. Figure 3.8: Circuit Diagram of Emergency Stop Input Signal This signal should be used in combination with external power DC 12 ~ 24 V. The response time of circuitry should take about 0.25 msec because of the delay of photo coupled and RC filter. 3.12 External Power Input (VEX) External power is necessary for all input signals of each axis. Please apply DC 12 ~ 24 V voltage as required. 19 Chapter 3 3.13 Position Window Output [CAM-DO] As the following figure shows, users can define the interval and level to generate a digital output with a defined duration. Figure 3.9: Circuit Diagram of Position Window Output 3.14 Activate Servo ON [SVON] This SVON is to generate a digital output to activate the servo drive to be ready for move status. 3.15 Servo Error Counter Clear [ERC] The deviation counter clear is generated by servo drive and the board can receive it as a general purpose input. The counter will be cleared by some instances: homing, emergency stop case, servo alarm and over travelling limit activated. 3.16 Position Compare Output [TrigP] This is specially designed for the customers who can use the position compare output to synchronize with other 3rd party vision devices. For PCI-1245/1245E/1265, the position compare output channel is determined by pin definition - TrigP. PCI-1245/1265 User Manual 20 3.17 JOG and MPG The JOG and MPG mode could be supported by pin assignment - DIX3 & DIX4. These two pins could be switchable. DIX3 has three functions: general purpose digital input, JOG+ and MPG_A. DIX4 also has three functions: general purpose digital input, JOG- and MPG_B. The circuit is as follow: 3.18 Simultaneous Start and Stop within Multiple Cards Simultaneous start and stop within multiple cards is supported by connecting the CN8 and CN15 on each card one by one. For the function call of simultaneous start and stop, please refer to chapter 6. 21 Chapter 3 PCI-1245/1265 User Manual 22 4 CHAPTER 2 Common Motion API This chapter introduces common motion API architecture & concept. Chapter 4 Common Motion API 4.1 Introduction of Common Motion Architecture In order to unify user interfaces of all Advantech motion devices, new software architecture is designed for all Advantech motion devices which is called “Common Motion Architecture”. This architecture defines all user interfaces and all motion functions that are implemented, including single axis and multiple axes. This unified programming platform enables users to operate devices in the same manner. There are three layers in this architecture: Device Driver Layer, Integrated Layer and Application Layer. Users do not need to know how to operate the specific driver of a specify device, but only to know the Common Motion Driver. Even though the device which supports this architecture has changed, the application does not need to be modified. Advantech Common Motion (ACM) Architecture defines three types of operation objects: Device, Axis and Group. Each type has its own methods, properties and states. To start single axis motion, you have to follow the following steps: Open device->open one axis of this device->configure instance of this axis->start motion. All operations can be done by calling corresponding ACM APIs. General calling flows of Device, Axis, Group are specified by Common Motion Architecture. For detailed information, please refer to the Calling Flow section. PCI-1245/1265 User Manual 24 4.2 Device Number Device number is composed of 32 bits: 4th byte 3rd byte 2nd H byte 2nd L byte Master/device board ID (or BaseAddr) Master/device type ID Ring 1st byte Slave Board ID • 4th byte Master/device type ID (refer to master device type ID table)) • 3rd & 2 nd H byte: Master/device board ID (or base address) • 2nd L byte: Master ring number, used by remote device, use 0 as default value for local device • 1st byte: Slave board ID, used by remote device, use 0 as default value for local device. Local Device Number 4th byte Master type ID 3rd byte 2nd H byte Board ID (or BaseAddr) 2nd L byte 0 1st byte 0 For example, one BoardID of PCI-1245 is 1, the device number (Hexadecimal) is: 27 001 0 0 So the device number is 0x27001000. 25 Chapter 4 4.3 Naming Rules of API and Properties The naming rule is based on three objects: Device Object, Axis Object and Group Object. User will find many abbreviations in APIs. Table of abbreviations and their meanings is as follow: Table 4.1: Abbreviations and Their Meanings Abbreviations Full Name Comments PPU A virtual unit of motion Pulse Per Unit Dev Device Ax Axis Gp Group Multiple axes Mas Master Master Axis or Master Board of device based on communicating mechanism Daq Common name of AI/AO/DI/DO Rel Relative Abs Absolute Cmd Command Vel Velocity Acc Accelerate Dec Decelerate Emg Emergency Sd Slow down Info Information Cmp Compare Inp In position EZ Encode Z EI Hardware Limit Mel Negative Limit Pel Positive Limit Org Origin Ext External FT Feature Feature properties CFG Configuration Configuration properties PAR Parameter Parameter properties PCI-1245/1265 User Manual Emergency stop 26 Table 4.1: Abbreviations and Their Meanings Ipo Interpolation Chan Channel Naming Rules of API The naming rules of API are as follows: • • • • Acm_DevXXX: Represents this API will implement function for device, such as device properties setting. Eg.Acm_DevSetProperty. Acm_DaqXXX: Represents this API will implement the function of DI, DO, AI or AO. Eg.Acm_DaqDiGetByte. Acm_AxXXXX: Represents this API will implement function for axis, such as single axis motion, homing. Eg. Acm_AxHome. Acm_GpXXXX: Represents this API will implement function for multiple axes. Such as interpolation motion. Eg. Acm_GpMoveLinearRel. Naming Rules of Property The properties have three types: feature, configuration and parameter. Feature: Feature properties are related to the hardware features. The naming rules are as follows: • FT_DevXXX: For device. Eg. FT_DevAxisCount. • FT_DaqXXX: For DI, DO, AI, and AO. Eg. FT_DaqDiMaxChan. • FT_AxXXX: For axis object. Eg. FT_Ax • FT_GpXXX: For group object. Configuration: The values of configuration properties may change, but not frequently. • • • CFG_DevXXX: For device. Eg. CFG_DevBoardID. CFG_AxXXXX: For axis. Eg. CFG_AxMaxVel. CFG_DaqXXX: For DI, DO, AI and AO. Eg. CFG_DaqDiMaxChan. • CFG_GpXXXX: For group object. Eg. CFG_GpAxisInGroup. Parameter: The values of parameter properties may change frequently. • • • • PAR_DevXXX: For device. PAR_AxXXXX: For axis. Eg. PAR_AxVelLow. PAR_DaqXXX: For DI, DO, AI and AO. PAR_GpXXXX: For group. Eg. PAR_GpGroupID. 27 Chapter 4 PCI-1245/1265 User Manual 28 CHAPTER 5 2 Utility This chapter is to describe the comprehensive & graphical utility Chapter 5 Utility 5.1 Introduction The utility is developed with .Net control library according to Common Motion API architecture. The .Net control library includes control Device, Axis, Group and component - AxisSetupView, AxisScopeView, AxisDiagView, GroupPathView and GroupSpeedView. The new utility is consistent and compatible with old AdvMotionUtility. The new utility supports PCI-1220U, PCI-1240U, PCI-1245/1245E/1265 series products. 5.1.1 Contents Mainly according to the order of operations, the following interfaces will be introduced: 1. Main Form: includes Main Menu, Toolbar and Device Tree. 2. Single-axis Motion: focuses on the I/O and attribute configuration, and status and movement operations (P to P/ Continue/ Homing) of single axis. 3. Multi-axis Motion: focuses on multi-axis (Group) interpolation operation, including the basic interpolation (Line/Arc /Helix), continuous interpolation (Path) and tangent follow motion. 4. Synchronized Motion: focuses on synchronized motion operations, including electronic CAM (E-CAM), electronic gear (E-Gear) and gantry (Gantry) movement. 5. Digital Input: displays device's input status. 6. Digital Output: displays device's output status. 7. Analog Input: displays device's analog input status. PCI-1245/1265 User Manual 30 5.2 Main Form 5.2.1 Main Form 5.2.1.1 File Click [Exit] to terminate this process. 5.2.1.2 Language Through this menu, language in Utility can be switched. This utility supports three languages: English, simplified Chinese and traditional Chinese. After you select a language, the corresponding menu item will be checked. When you close the Utility, the language you selected will be saved to register. When opened next time, the utility's language will be last used one. 31 Chapter 5 5.2.1.3 View This menu allow users to display/hide the toolbar, status bar and device tree. If Toolbar/Status Bar/Device Tree is visible, the corresponding menu item will be checked. 5.2.1.4 Help The [About] menu item supports the copyright notice of the driver and utility for device. Click [Check up-to-date on the web], you can link to company's website to check whether the firmware, driver and utility are the latest ones by comparing version information of Install interface. 5.2.2 Toolbar 5.2.2.1 Install Click [Install], a new window will pop up as below, which shows the version information of driver, hardware, firmware and utility. PCI-1245/1265 User Manual 32 First column is name, the second column is version number and the third column is description. ADVMOT.dll is the common interface for development. Advantech.Motion.dll is the .NET motion control library. Common Motion Utility.exe is the utility which is running now. The fourth and fifth lines are driver files (Kernal-Mode and User-Mode), which depends on device type; the sixth line is DSP firmware and the seventh line is CPLD of the hardware. Note: Only DSP-based motion control card will show the DSP and CPLD information. 5.2.2.2 Refresh This button supports refresh function. Click [Refresh], Device Tree will re-load the Device. No device is selected by default after operation. 5.2.2.3 Save This button can save all properties of the axes of the selected device. 5.2.2.4 Load This button can import configurations of all axes of the selected device. After the device is selected, click the button, an Open Dialog box will appear. Select the previously exported configuration file and click [OK], you can import the configuration file into the Device hardware. 33 Chapter 5 5.2.2.5 Download For PCI-1245/1245E/1265 series, it's DSP-based motion controller. After clicking device, you can see the interface as follows. The top of this dialog shows the current device type, name and firmware version. Click [Open File] to select lastest firmware file you have acquired. Clicking [Start Download] will activate the downloading procedure to hardware and progress bar will show the task process. Note: 1. After clicking [Start Download], the dialog cannot be terminated when downloading the firmware to hardware. 2. While downloading, due to power outages or other problems, if download process is not complete, the hardware needs to be sent back to Advantech for firmware update. 5.2.3 Device Tree Click any device of tree view; you will see the operation interface. PCI-1245/1265 User Manual 34 5.3 Single-Axis Motion 5.3.1 Operate Axis Select the operating axis. Click the check box drop-down symbol, all axes of the selected device will display as follows: 5.3.2 Motion Params Set After finishing the parameter setting for operation, click [Set Parameters] to save the values to device. 35 Chapter 5 5.3.2.1 Basic Parameter Setup It's mainly about the settings of distance(Distance) in point to point movement, initial velocity (VelLow), movement velocity (VelHigh), acceleration (Acc.) and deceleration (Dec.) in single-axis motion, movement distance (New Pos.) and velocity (New Vel) in superimposed movement (Move Impose). 5.3.2.2 Speed Pattern Set the speed pattern of movement, which can be trapezoidal pattern (Trapezi) or S-type (S-curve). 5.3.2.3 View/Set Range Click [View/Set Range] to check or set the maximum velocity, acceleration and deceleration. The dialog will show as follow. Note: VelHigh in Single-axis Motion can not be greater than the Max Velocity; Acc. can not be greater than the Max Acceleration and Dec. can not be greater than the Max Deceleration. 5.3.2.4 Move Mode Select Move Mode. There are three move modes in single-axis motion: P to P (point to point motion), Continue (constant-speed continuous motion), Homing (homing motion). PCI-1245/1265 User Manual 36 5.3.2.5 Speed Chart By clicking [Speed Chart], you can see the velocity curve. Wherein, on the right there are setting and operating buttons, on the left there is movement/speed curve in single-axis motion. 5.3.2.5.1 Setting Setting items are as follows: 1. Vertical Max Value: sets maximum vertical coordinate. 2. Time Length Value: sets maximum horizontal coordinate. 3. Spd Curve Color: setsthe color for speed curve. 4. Act Pos Curve: sets the color for actual position curve. 5. Cmd Pos Curve: sets the color for command position curve. 6. Y Source: data source for vertical coordinate. You can select any one or any combination of velocity, command position and actual position as below. 37 Chapter 5 7. H Zoom: if it is checked, it indicates horizontal zoom is enabled, you can select appropriate region by the mouse to zoom in. 8. V Zoom: if it is checked, it indicates vertical zoom is enabled, you can select appropriate region by the mouse to zoom in. After the setting item is edited, the value will become effective as the mouse leaves the edit box. 5.3.2.5.2 Start Click [Start], the graphic box will be ready to draw the curve, if the axis is in motion, you can see the trajectory. After clicked, the text on [Start] button will change into "Stop"; click [Stop], drawing the curve will stop and the text will back to "Start". 5.3.2.5.3 Clear Click [Clear], the current curve in graphic box will be cleared. 5.3.2.5.4 Save Click [Save], the specified path curve will be saved as .png, .gif, .jpg, .tif or .bmp format. 5.3.3 SVON Click [SVON], the servos of axes will be turned on and the text on it will change into "SVOFF"; click [SVOFF], the servos of axes will be turned off and the text on it will be back to "SVON". 5.3.4 Configuration It includes Home Mode configuration, External Drive mode, the property configuration and I/O status of the axis. 5.3.4.1 Home Mode Before performing home movement, you need to select the mode first. Board offers 11 modes, which are any one or combination of the ORG (back to the origin), Lmt (back to the limit point) and EZ (to find Zphase). For detailed information, please refer to the description about Home Mode in PCI-1240 or Acm_AxHome function which is listed in Common API of Programming guide. Click [Home Mode], a new form appears as below: PCI-1245/1265 User Manual 38 You can select any mode listed in the comobox, there is corresponding illustration below. You can click [OK] to select the mode in the HomeMode combobox, or click [Cancle] to cancle the operation. The default setting is "Mode1_Abs". 39 Chapter 5 5.3.4.2 External Drive Click [External Dirve], a new form will appear as below, you can select an external drive mode (JOG/MPG) to operate external drive. Select JOG or MPG and click [Set Ext Drive], the external drive mode will be set and you can operate external drive then. Click [Close], the form will be closed and the external drive is set to “Disable”. Note: For PCI-1245/1245E/1265 series, only axis 0 is available for external drive as master axis. 5.3.4.3 Axis Setup Click the button to check/set the axis's attributes and I/O as follows: PCI-1245/1265 User Manual 40 The left tree view shows the classification of axis's properties, when you click the corresponding item, the right side, Data View, will list the properties and corresponding property values in the category. For detail, please refer to the description about Feature, Configuration and Parameter of axis which are listed in property list of Programming guide.The attributes are classified as follows: Classification Name Brief Introduction Alarm Alarm Enable Enables/Disables motion Alarm function for source axis. Alarm Logic Sets the active logic for alarm signal. Alarm React Sets the reacting mode for alarm signal. AuxOut Enable Enables/Disables axis's Aux-Output in group's AddPathDwell() for source axis. AuxOut Time Sets axis's Aux-Output on time in group's AddPathDwell() for source axis. GenDo Enable Enables/Disables axis DO as general DO function for source axis. Backlash Enable Enables/Disables corrective backlash for source axis. Backlash Pulses Sets the compensation pulse numbers for source axis.Whenever direction change occurs, the axis outputs backlash corrective pulses before sending commands. Backlash Velocity Sets the velocity for backlash signal. PhyID The physical ID of source axis. PPU The pulse per unit(PPU) of source axis.It is a virtual unit.You can set PPU according to actual motor.This can mask the different precision of different motors. ModuleRange Sets the module range for this axis. Aux/Gen Output Backlash Basic Info 41 Chapter 5 Cam DO CamDO Enable Enables/Disables CAM DO function for source axis. CamDO Logic Sets the active logic for CAM DO signal. CamDO Compare Source Sets the compare source for CAM DO signal. CamDO Mode Sets the mode for CAM DO signal. CamDO Direction Sets the direction for CAM DO. Comparator ERC CamDO Low Limit Sets the low limit for CAM DO signal. CamDO High Limit Sets the high limit for CAM DO signal. Compare Enable Enables/Disables axis comparator for source axis. Compare Source Sets the source for comparator. Compare Method Sets the method for comparator. Compare Pulse Mode Sets the pulse mode for comparator. Compare Pulse Logic Sets the active logic for comparator's pulse. Compare Pulse Width Sets the pulse width for comparator. Erc Logic Sets the active logic for ERC signal. Erc On Time Sets the on-time length for ERC active. Erc Off Time Sets the off-time length for ERC active. Erc Enable Mode Enables/Disables ERC Output for source axis. PCI-1245/1265 User Manual 42 External Drive HLMT Home In Position Ext Master Src Indicates that axis is controlled by which physical axis’s external signal. Ext Sel Enable When Ext.drive is enabled, this property enables driving axis selection by digital input channel. Ext Pulse Num The number of output driving pulses when an active edge of input pulse is accept in Hand Wheel mode. Ext Preset Num The number of output driving pulses when an active edge of input pulse is accept in JOG mode. Ext Pulse In Mode Sets the pulse input mode for external drive. HLMT Enable Enables/Disables the hardware limit signal. HLMT Logic Sets the active logic for hardware limit signal. HLMT React Sets the reacting mode for hardware limit signal. Home Ex Mode Sets the stopping modes for HomeEx(). Home Cross Distance Sets the home cross distance (Unit: Pulse) for homing. Home Ex Switch Mode Sets the stopping condition for HomeEx(). ORG Logic Sets the active logic for ORG signal. EZ Logic Sets the active logic for EZ signal. Home Reset Enable Enables/Disables reset logical counter after homing for source axis. ORG React Sets the reacting mode for ORG signal. Inp Enable Enables/Disables In-Position function for source axis. Inp Logic Sets the active logic for In-Position signal. 43 Chapter 5 Latch Pulse In Latch Enable Enables/Disables latch function for source axis. Latch Logic Sets the active logic for latch signal. Pulse In Mode Sets the encoder feedback pulse input mode for source axis. Pulse In Logic Sets the active logic for encoder feedback pulse input signal. Pulse In Source Sets the source for encoder feedback pulse input signal. Pulse In Max Fre- Sets the maximum frequency of quency encoder pulse input signal. Pulse Out Pulse Out Mode Sets the command pulse output mode for source axis. SD SD Enable Enables/Disables the SD signal for source axis. SD Logic Sets the active logic for SD signal. SD React Sets the reacting mode for SD signal. SD Latch Sets the latch control for SD signal. Simulate Simulate Start Sets the simulate start source for this axis. SLMT SLMT Mel Enable Enables/Disables the minus software limit for source axis. SLMT Pel Enable Enables/Disables the plus software limit for source axis. SLMTN React Sets the reacting mode for minus software limit. SLMTP React Sets the reacting mode for plus software limit. SLMTN Value Sets the value for minus software limit. SLMTP Value Sets the value for plus software limit. PCI-1245/1265 User Manual 44 Speed Pattern Vibration Max Velocity Configures the max velocity for source axis. Max Acc Configures the max acceleration for source axis. Max Dec Configures the max deceleration for source axis. Max Jerk Configures the max jerk for source axis. Vel Low Sets the low velocity (start velocity) for source axis (Unit: PPU/S). Vel High Sets the high velocity (driving velocity) for source axis (Unit:PPU/ S). Acc Sets the acceleration for source axis (Unit: PPU/S2). Dec Sets the deceleration for source axis (Unit: PPU/S2) Jerk Sets the type of velocity profile: tcurve or s-curve for source axis. Vibration Enable Enables/Disables suppress vibration of mechanical system for source axis. Vibration Reverse Time Sets the vibration suppressing timing for source axis.This function is used to suppress vibration of mechanical system by outputting single pulse for negative direction and then single pulse for positive direction right after completion of command movement. Vibration Forward Time Sets the vibration suppressing timing for source axis. 45 Chapter 5 Note1: In the utility, if no corresponding functions of the selected device, the item will not shown in the left side Tree View. For example, if the selected device is PCI-1245/65L, and this board does not support slow down (SD) and vibration suppression function, then, you will not see the items in the Tree View. At the same time, because single axis dialog has speed parameter setting, the speed pattern item will not be shown. Note 2: When "Pulse Out" category is selected, there will be illustration of corresponding mode below the description of "Pulse Out Mode" property. After editing, the property value will become effective (already set in device) after the mouse leaves the edit box. If you want to duplicate the attributes to other axes, only activate the "Check" on the right side of check box. Then, click [Copy Config]. Click [Close] to close the form. PCI-1245/1265 User Manual 46 5.3.4.4 Axis Status Click the button; you can view the assigned axis information. For example, PhyID, PPU, and basic status (Motion Status, State, Error Status and etc.) and I/O status (Alarm, SLMTP/N and etc.). 47 Chapter 5 5.3.5 Move Test The operation is as follows: After motion mode is selected, click [<--] or [-->], the axis will do P to P/ Continue/Homing movement in negative or positive direction. After the movement velocity reaches VelHigh in point to point motion, you can click [Move Impose] to generate a superimposed movement, the distance of the imposed movement is the value of New Pos and the velocity of the imposed movement is the value of New Vel. You can observe specific movement/speed curve through clicking [Speed Chart]. Click [Stop], the motion will be stopped. 5.3.6 Position By "Position" status, users can observe the command position and feedback position while in operation. Click [Reset], you can reset the value to "0". 5.3.7 Current Axis Status You can check the current status and command speed. For details, please refer to the description about State in Acm_AxGetState function which is listed in Common API of Programming guide. PCI-1245/1265 User Manual 48 5.3.8 DI/O Status Display the current status of 4 DI and 4 DO of the selected axis. You can also operate the DO to be ON/OFF. 5.3.8.1 DI As the above figure, DI(3-0) status, from right to left is DI0 to DI3 respectively Wherein, indicates the DI is in effect and its value is 1; indicates the DI is not in effect and its value is 0. 5.3.8.2 DO As the above figure, DO(7-4) status, from right to left is DO4 to DO7 status. Wherein, indicates the DO is turned on(ON) and its value is 1; indicates the DO is truned off(OFF) and its value is 0. 5.3.9 Last Error Status You can check the latest error code and error message. If there is no any error, the error code is "0", error message is "SUCCESS". 49 Chapter 5 5.3.10 I/O Status You can visually know the I/O status from the LED bar. Wherein, indicates the device does not support the function or does not have the corresponding I/O; indicates the device support the function, but I/O is not triggered (OFF); indicates the corresponding I/O is triggered (ON). For details, please refer to the description about Status in Acm_AxGetMotionIO function which is listed in Common API of Programming guide. PCI-1245/1265 User Manual 50 5.4 Multi-Axes Motion 5.4.1 Operate Axes The checkedListBox in the form will list all axes of the selected device, check the Checkbox of corresponding axis, you can add the axis into the Group. When the number of axis added to the Group is less than 2, Group's State will be "Disable". When the number of axis added to the Group is greater than or equal to 2, Group's State will be "Ready", then after you configure appropriate parameters, you can do appropriate interpolation operation. 5.4.2 Motion Params Set The parameter set includes Group VelLow, Group VelHigh, Group Acc, Group Dec and Speed Pattern. 51 Chapter 5 5.4.3 Motion Ends Configure motion's center / end as follows. The dialog will automatically enable the edit box writable by referring to group axis and interpolation mode. As in the Figure, 1-axis and 2-axis are added to Group and Line interpolation mode is selected, thus the edit boxes writable are "1-axis" and "2-axis" Lines of the "Line End (PPU)" column, whose background color is white. The edit boxes whose background color are gray indicate they are not editable. 5.4.4 Motion Operation 5.4.4.1 SVON Click [SVON], the servos of axes in Group will be turned on. 5.4.4.2 SVOFF Click [SVOFF], the servos of axes in Group will be turned off. 5.4.4.3 Basic Interpolation Motion Basic interpolation motion includes linear interpolation (Line), circular interpolation (Arc) and helical interpolation (Helix) as follows. 5.4.4.3.1 Movement Mode Absolute: the interpolation motion will directly use the set position parameters. Relative: the interpolation motion will add initial offset to the position parameters and then use it. PCI-1245/1265 User Manual 52 5.4.4.3.2 Arc Direction CW means clockwise. CCW means counter clockwise. 5.4.4.3.3 Interpolation Mode Line: linear interpolation Arc: circular interpolation Helix: helical interpolation 5.4.4.3.4 Move After corresponding configuration, click [Move], Group will do the specified interpolation. 5.4.4.3.5 Stop While Group is in interpolation motion, click [Stop], the interpolation motion will be stopped. 5.4.4.4 Path Motion 5.4.4.4.1 Edit Path Click [Edit Path], the following form will be shown up: Wherein, the top toolbox includes Open File, Save File and movement mode. 53 Chapter 5 1. Open File : Open selected Path file from appropriate file path, which can be a binary file (.bin) or a comma-separated value file (.CSV). 2. Save File : save the edited data to a Path file, which can be a binary file (.bin) or a comma-separated value file (.CSV). CSV files can be opened in Excel, so can be checked / modified conveniently later. But if you want to run the Path through [Load Path], you need to save the data as .bin format, because currently device only supports .bin file to import through [Load Path]. 3. Movement mode: Absolute or Relative. If you select “Absolute” ‚ then commands listed in the Cmd column will be the commands related to absolute motion; Similarly, if you choose “Relative”, then commands listed in the Cmd column will be the commands related to relative motion. Note: "GPDELAY" and "EndPath" command are exceptional case. 4. Path edit items include command (Cmd), Mode (Blending/No Blending), movement velocity (vel_high), initial velocity (vel_low), center (Center), and end (EndPoint). Wherein, there are three axes (Center0/Center1/Center2) in circle interpolation by default, the number of EndPoint is according to the maximum number of axis supported in the selected device interpolation, such as in PCI-1245, the maximum number of axis supported is 4 in Direct interpolation motion, so the end point will be EndPoint0, EndPoint1, EndPoint2, and EndPoint3. 5. Add/Insert New Row(s): after clicking, the following dialog will be shown, you can edit the number of rows to be added/inserted. Click [OK], corresponding number of rows will be added after or inserted into the selected row. 6. Delete Selected Row(s): delete the selected rows. 7. Clear All Rows: clear all lines. PCI-1245/1265 User Manual 54 5.4.4.4.2 Load Path Click [Load Path], if group's state is "Ready", you can import selected Path file (. bin format) from the Open File dialog box to the Device. 5.4.4.4.3 Move Path After loading Path, if the edited Path is not wrong, The Path will be run one by one according to the serial number. You can observe movement curve and corresponding state from [Path Status], [Path Plot] and [Speed Chart]. 5.4.4.4.4 Move Sel Path Do continuous interpolation movement with path(s) selected from loaded Path file. After loading Path, click [Move Sel Path] to activate the dialog: 1. Start Index: select the starting serial number of Path 2. End Index: select the end serial number of Path 3. Times: executable times. The value is 0 to 255. If you set 0, it means an infinite loop until you click "Stop" to terminate the loop. 5.4.4.4.5 Speed Forward If the value is "Checked", the Group's speed-forward function will be enabled. For detail, please refer to the description about CFG_GpSFEnable in Group which is listed in property list of Programming guide. 5.4.4.4.6 Blending Time For detail, please refer to the description about CFG_GpBldTime in Group which is listed in property list of Programming guide. 55 Chapter 5 5.4.4.5 Tangent Follow Movement 5.4.4.5.1 Tangent In Click [Tangent In], the follow dialog will be shown. The following parameters need to be configured: 1. Tangent Follow Axis: Select tangent follow axis. As the axis can not be axes added in Group, so the axis listed in the combobox does not includes axes added in Group. 2. Start Vector: the start vector of tangent follow motion. In Utility, the default reference plane is X-Y, you only need to set X vector and Y vector. Z axis is not necessary to edit. 3. Direction: The direction of tangent follow axis in motion, which can be the same as or opposite to the direction of Group's motion. PCI-1245/1265 User Manual 56 4. ModuleRange: The module range of tangent follow axis, that is, the pulse number of tangent follow axis's one revolution (360 degrees) There are related diagram and description below the configuration.There Click [OK (Tangent In)], the tangent follow axis will establish tangent follow synchronization with the Group. After that, if the Group do interpolation motion, the following axis will move along the tangent direction of the interpolation motion.If the tangent follow axis has established tangent follow synchronization with the Group, click [Tangent In] again, the value of parameters in the form will be the configured value, and you can click [Tangent Stop] to dissolve the synchronization relationship. Click [Cancel], nothing will do but close the form. 5.4.4.5.2 Tangent Stop Click [Tangent Stop] to dissolve the synchronization relationship between tangent follow axis and the Group. 5.4.4.6 Path Plot Display the group motion curve. Click [Path Plot], the following form will appear: 57 Chapter 5 5.4.4.6.1 Setting Set the horizontal and vertical coordinates. 1. Horizontal setting a. Horizontal Source: Horizontal data source, 1st axis of group (sorted by the order being added) by default. You can choose any axis in group. b. Horizontal PosType: Horizontal position type, you can choose command or feedback position. c. Horizontal Max: Horizontal maximum coordinate. d. Horizontal Min: Horizontal minimum coordinate. 2. Vertical setting: same way as horizontal setting. 5.4.4.6.2 Set Click [Set] to activate the effectiveness. 5.4.4.6.3 Start Click [Start], the graphic box will be ready to draw the curve. If Group is in motion, you can see the trajectory. After clicked, the text on [Start] button will change into "Stop"; click [Stop], drawing the curve will be stopped and the text will back to "Start". 5.4.4.6.4 Clear Click [Clear], the current curve in graphic box will be cleared. 5.4.4.6.5 Save Click [Save], the specified path curve will be save as .png, .gif, .jpg, .tif or.bmp format. PCI-1245/1265 User Manual 58 5.4.4.7 Speed Chart The setup and operation are similar to [Speed Chart] in "Single Axis Motion". 5.4.5 Path Status To display the path status. CurIndex: The serial number of path currently running. CurCmd: The command code of path currently running. Remain: Unexecuted path number FreeCnt: The remain space of Path Buffer Path Count: The total path number in loaded Path file. 59 Chapter 5 5.4.6 Position Display the current command and feedback position for all axes of device. Click [Reset Counter] to reset to 0. 5.4.7 State & Status Group State: Show the current Group's State. For detail, please refer to the description about State in Acm_GpGetState function which is listed in Common API of Programming guide. Last Error Status: display the latest error message: Axis Name: The axis which has error. Error Code: The error code. Error Message: The specific error message. 5.5 Synchronized Motion PCI-1245/1265 User Manual 60 5.5.1 Slave Axis Operation 5.5.1.1 Slave Axis Select any one of Device's axes to be slave axis. Note: Master axis and slave axis cannot be the same one. The default slave axis is 0-axis of the selected device. 5.5.1.2 Synchronized Mode Select the synchronized mode: CAM, Gear and Gantry. You must select synchronized mode first before the configuration and establishment of synchronized motion. 5.5.1.3 CAM Motion Select CAM as Synchronized Mode, then, you can execute the CAM setup and operation. 5.5.1.4 CAM Editor Click [CAM Editor], the following dialog will show up: Left upper corner is E-CAM curve graphic box; left lower corner is Velocity curve graphic box; right upper corner is CAM Table; right lower corner is operation panel. 61 Chapter 5 1. Operation Mode a. Add Point: you can directly add CAM points on the E-CAM Curve. Whenever you add one point, CAM Curve will be redrawed. Wherein, CAM Point is espressed with a small red solid circle and CAM Curve is expressed with blue curve. In this operation mode, the shape of the mouse is cross. When the form is opened first time or the CAM curve has not been edited, the operation mode is "Add Point" mode by default. b. Select Point: you can select the corresponding CAM Point to drag and drop. At the same time, CAM Curve will be changed accordingly. In this operation mode, the shape of the mouse is arrow. When the form is opened again or the CAM curve has been edited, the default operation mode is "Select Point" mode. 2. CAM Table The CAM Table formed by edited CAM Point is shown on the top right. It is noteworthy that, the X_Pos and Y_Pos of the first row of CAM Table, that is the first CAM Point, must be zero, which means the Master axis's starting position is 0, the Slave axis's starting position is 0; The X_Pos and Y_Pos of CAM Table's last line, that is the last CAM Point, must be (ModuleRange, 0), which means the Master axis rotates a circle and the Slave axis backs to the starting position 0. a. No: CAM Point 's serial number. b. X_Pos: horizontal position coordinate (Master axis's position) c. Y_Pos: vertical position coordinate (Slave axis's position) d. Range: The distance between reference point and CAM Point. For detail, please refer to the description about PointRange in Acm_DevDownloadCAMTable function which is listed in Common API of Programming guide.The default value is the edited value of pointRange. You can change the value by editing it. When you add more CAM Points, the pointRange will be also changed. If you want to change pointRange of edited CAM Point, please directly modify it in CAM Table. e. Slope: the slope between two reference points of CAM Point. For detail, please refer to the description about PointSlope in Acm_DevDownloadCAMTable function which is listed in Common API of Programming guide. The default value is the value in Slope editing box, which can be modified by editing the value in the edit box, the slope of following added CAM Point will be the PCI-1245/1265 User Manual 62 modified value in the edit box. If you want to change the Slope of edited CAM Point, please directly edit in CAM Table. Note: 3. The range of Slope value is from -10 to 10. If the value is less than -10, it will be -10 by default. And if the value is larger than 10, it will be 10 by default. CAM Table Operation a. Delete Row: delete the selected row(s). b. Clear All: clear all CAM Points (except starting point and final point) c. Load Data: insert the selected CAM Table file. The file format can be binary (.bin) or .cvs readable by EXCEL. d. Save Data: save the CAM Table. The file format can be binary (.bin) or .cvs readable by EXCEL.But if you want to import CAMTable through [Load CAMTable File] operation, you need to save the CAM Table as.bin format, because currently the device only support .bin file to import through [Load CAMTable File]. 4. Add Point To add CAM Point, you can also edit X_Pos, Y_Pos, pointRange and Slope on the lower right and click [Add Point] to add it. 5. Change (ModuleRange) The master axis's revoluation pulse (ModuleRange) is set to be 10000 pulses by default. If you want to edit, you can edit in ModuleRange box, and then click [Change] to finish. After modified, the horizontal maximum ordinate of E-CAM Curve and Velocity Curve will be the modified value; if there are edited CAM Points before change the value, the X_Pos and pointRange of the CAM Points will become ModuleRange (after modified)/ Pre_ModuleRange (before modified) fold. 6. OK Click [OK] to save the CAM Table. You can use [Download CAMTable] to save the CAM Table into hardware. 7. Cancel Click [Cancel] to give up the editing. 63 Chapter 5 5.5.1.4.1 Load CAMTable File By clicking [Load CAMTable File] to choose binary file, the CAM Table will be saved in the hard drive. Note: Before you save, you should set up the "CAMTableID" first. The value is 0 or 1. After you execute this step, the CAMTableID cannot be changed before you dissolve the syncrhonozation relation. 5.5.1.4.2 Download CAMTable If CAM Table has edited in CAM Editor, you can use [Download CAMTable] to save the CAM Table into hard drive. Note: Before you save, you should set up the "CAMTableID" first. The value is 0 or 1. After you execute this step, the CAMTableID cannot be changed before you dissolve the syncrhonozation relation. 5.5.1.4.3 Configuration Configure cam motion and establish cam synchronization. Before the establishment of cam synchronization, you need to configure the following parameters: PCI-1245/1265 User Manual 64 1. Camming Type: a. Non periodic: non-circular pattern. If you select this mode, after the Master axis runs a complete cycle, the Slave axis will no longer follow the Master axis according to CAM curve. b.Periodic: circular pattern. If you select this mode, the Slave axis will always follow the Master axis according to CAM curve in cam motion. 2. Master Movement Mode a . Absolute: If you select this mode, the current position of the Master axis will be served by CAM curve as the starting point of horizontal coordinate. b. Relative: If you select this mode, the Master axis will serve the current Command/Actual Position as a starting point to move in relative mode. 3. Slave Movement Mode a. Absolute: If you choose this mode, the Slave axis will chase after the Y_Pos value in CAM Table with set speed from the current Command/Actual Position. b.Relative: If you choose this mode, the Slave axis will move in relative mode with the current Command/Actual Position according to CAM curve. 4. Master Offset: offset value relative to the Master axis. 5. Slave Offset: offset value relative to Slave axis. 6. Master Scaling: Master axis ratio factor. CAM Curve zoom in/out in the horizontal direction. 7. Slave Scaling: Slave axis ratio factor. CAM Curve zoom in/out in the vertical direction. 8. Reference Source: Master axis's position reference source. a. Command Position: reference source is command position. b. Feedback Position: reference source is feedback (actual) position. 65 Chapter 5 5.5.1.4.4 CAM In Click [CAM In], the Slave axis will establish CAM synchronization with the Master axis and the Slave's state will change into "Synchronous Driving". Thereafter, if the master axis is in P to P or Continue motion, the slave axis will follow the Master axis to Move with the CAM Curve and the configuration accordingly. 5.5.1.4.5 Stop Click [Stop] to dissolve the synchronization relation. The slave axis's state will be ready. 5.5.1.5 Gear Motion Select Gear in Synchronized Mode, you can configure and operate the gear movement. 5.5.1.5.1 Configuration Before the establishment of gear synchronization, you need to configure the following parameters: 1. Numerator: The numerator of gear ratio 2. Denominator: The denominator of gear ratio 3. Reference Source: The Master axis's position reference source a .Command Position: reference source is command position b .Feedback Position: reference source is feedback position. 4. Movement Mode: a. Absolute: If you select this mode, the Slave axis will chase after the Command/Actual Position of the Master axis with set speed. b. Relative: If you select the mode, the Slave axis will keep initial position difference with the Master axis. PCI-1245/1265 User Manual 66 5.5.1.5.2 Gear In Click [Gear In], the Slave axis will establish Gear synchronization with the Master axis and the Slave's state will change into "Synchronous Driving". Thereafter, if master axis is in P to P or Continue motion, the slave axis will follow master axis to move with the configuration accordingly. 5.5.1.5.3 Stop Click [Stop] to dissolve the synchronization and the slave axis's state will be "Ready" 5.5.1.6 Gantry Motion Select Gantry in Synchronized Mode, you can configure and operate the gantry movement. 5.5.1.6.1 Configuration Before the establishment of gantry synchronization, you need to configure the following parameters: 1. Reference Source: the Master axis's position reference source. a. Command Position: reference source is command position. b. Feedback Position: reference source is as feedback position. 2. Direction: The Slave axis direction relative to the Master axis a. Same: Same as the Master axis. b. Opposite: Opposite to the Master axis. 5.5.1.6.2 Gantry In Click [Gantry In] to the Slave axis will establish gantry synchronization with the Master axis and the Slave's state will change into "Synchronous Driving". Thereafter, if the Master axis is in P to P or Continue motion, the Slave axis will follow the Master axis to move with the configuration accordingly. 67 Chapter 5 5.5.1.6.3 Stop Click [Stop] to dissolve the gantry synchronization and Slave axis's state will be "Ready". 5.5.2 Master Axis Operation 5.5.2.1 Master Axis Select an axis as the Master axis from all the axes of the selected device. Note: The master and slave cannot be the same axis. The default master axis is 1st axis of selected device. 5.5.2.2 Motion Params Set It's the same setting as "Single-axis Motion" -> "Motion Params Set" 5.5.2.3 Operation 5.5.2.3.1 SVON Click [SVON], the servos of the Master axis and the Slave axis will be turn on, the text on it will change into "SVOFF", click [SVOFF], the servos of axes will be turn off, the text on it will back to "SVON". 5.5.2.3.2 Other Operation Please refer to "Single-axis Motion" -> "Move Test" for other operation. It is noteworthy that after the establishment of synchronization, the Slave axis will follow the Master axis to move accordingly. You can view the movement curve through [Path Plot]. 5.5.2.3.3 Position Show the current command (theoretical) position and the feedback (actual) position of the Master axis and the Slave axis. Click [Reset Counter] to set the value to 0. PCI-1245/1265 User Manual 68 5.5.2.4 State You can view the current state of the Master axis and the Slave axis through the status bar.For detail, please refer to the description about State in Acm_AxGetState function which is listed in Common API of Programming guide. 5.6 Digital Input Mainly shows the status of device's digital input port. In PCI-1265, there are 8 DIs. As the above figure, Bit 7 to 0 from right to left are digital inputs respectively. Wherein, indicates that the DI is in effect (ON) and the value of the bit is 1; indicates that the DI is not in effect (OFF) and the value of the bit is 0. Hex indicates the hexadecimal value of the byte composed by 8 DIs. 5.7 Digital Output Mainly shows the status of device's digital output port, and the corresponding ON/OFF operation on DO. In PCI-1265, there are 8 DOs. As the above figure, Bit 7 to 0 from right to left are digital outputs. Wherein, indicates that the DO is connected (ON) and the value of the bit is 1; indicates that the DO is not connected (OFF) and the value of the bit is 0. Hex indicates the hexadecimal value of the byte composed by 8 DOs. 69 Chapter 5 5.8 Analog Input Shows the status of device's analog input channels . In the PCI-1265, there are two AI channels. As the above, the parameters are as follows: Channel No: AI index. PCI-1265 has two analog inputs and channel index is as 0 and 1. Input Range: analog input range. 1. 2. Analog Input Value: According to the sampling period, the analog input value sampled from the input channel. Configuration a. Channel Mode: single ended channel and differential channel are available. b. Sampling period: use scrollbar to modify the value and its range is 200-10000ms. PCI-1245/1265 User Manual 70 6 CHAPTER 2 Programming Guide This chapter is to detail the programming API for each function. Chapter 6 Programming Guide 6.1 Introduction This chapter supplies the APIs for user, shows the APIs definitions and how to use them. PCI-1245/1245E/1265 device driver is based on the Common Motion Architecture. About the detail of Common Motion Architecture, see about Secton 4.3. According to this Architecture, all of functions and properties have been classified three types: Device Object, Axis Object (Simple Axis) and Group Object (Multiple Axis). There are several basic concepts which should be known before using the API functions and properties. • Naming of API and Properties: All of APIs and Properties under the Common Motion Architecture follows the uniform naming regulation. See about section 4.3.3. • Data type redefinition: For simplifying code, the common data types are redefined. • Error Code: All of APIs will return code to show success to call or failed for which error. PCI-1245/1265 User Manual 72 6.1.1 Data Type Redefinition The table of redefinition of data types and windows common data types is as follows: New Type Windows Data Type Comments U8 UCHAR 8 bit unsigned integer U16 USHORT 16 bit unsigned integer U32 ULONG 32 bit unsigned integer U64 ULONGLONG 64 bit unsigned integer I8 CHAR 8 bit signed integer I16 SHORT 16 bit signed integer I32 INT 32 bit signed integer I64 LONGLONG 64 bit signed integer F32 FLAOT 32 bit Floating point variable F64 DOUBLE 64 bit Floating point variable PU8 UCHAR * Pointer to 8 bit unsigned integer PU16 USHORT * Pointer to 16 bit unsigned integer PU32 ULONG * Pointer to 32 bit unsigned integer PU64 ULONGLONG * Pointer to 64 bit unsigned integer PI8 CHAR * Pointer to 8 bit signed integer PI16 SHORT * Pointer to 16 bit signed integer PI32 INT* Pointer to 32 bit signed integer PI64 LONGLONG * Pointer to 64 bit signed integer PF32 FLAOT * Pointer to 32 bit Floating point variable PF64 DOUBLE * Pointer to 64 bit Floating point variable The initial character F/I/U represents the data type, and the digital represents the length of data. 73 Chapter 6 6.1.2 About Error Code Every API in Common Motion Architecture will get a returned code when it is called. The returned code represents a calling result. About the detail error code, see about Appendix. User can get error message according to the returned error code by Acm_GetErrorMessage. According to error message, user can make modification properly. 6.1.3 About Event Event is the process of sending and handling message between objects. User can enable/disable event. If the event is enabled, the waiting event will get a notification when the event is triggered in driver if the condition which event needs has been met. And if it is disabled, user will not get the notification even though the event is triggered in driver. There are three types of event: Event Name Description EVT_AX_MOTION_DONE Trigger event when current motion is done. EVT_AX_COMPARED Trigger event when compare condition is meeted. (Not support in PCI-1245/ 1245E/1265) EVT_GPn_MOTION_DONE Trigger event when group motion is done. n is group_id. (Get from PAR_GpGroupID by Acm_DevGetPropety). See about Acm_EnableMotionEvent, Acm_CheckMotionEvent. PCI-1245/1265 User Manual 74 6.2 Getting Started 6.2.1 PCI-1245/1245E/1265 Software architecture The PCI-1245/1245E/1265 software architecture based on Common Motion Architecture is as follows: Figure 6.1: PCI-1265 Software Architecture All of API used to implement device functions can be acquired from ADVMOT.DLL which is a common interface for user. The AdvMotAPI.dll, ADVMOT.bas and ADVMOT.lib are created upon ADVMOT.dll for user developing application easily. AdvMotAPI.dll is used for C# application and VB.net application which includes Utility, C# examples and VB.net example. ADVMOT.bas is used to develop VB application. ADVMOT.lib is used to develop VC application. 75 Chapter 6 6.2.2 Flow Charts 6.2.2.1 Basic Flow Figure 6.2: Basic Operation Flow Chart PCI-1245/1265 User Manual 76 6.2.2.2 Single Axis Flow Figure 6.3: Single Axis Operation Flow Chart 77 Chapter 6 6.2.2.3 Multiple Axis Flow Chart Figure 6.4: Multiple Axis Operation Flow Chart PCI-1245/1265 User Manual 78 6.2.2.4 E-cam Flow Chart Figure 6.5: Cam Operation Flow Chart 79 Chapter 6 6.2.2.5 E-Gear/Gantry Flow Chart Figure 6.6: Gear/Gantry Operation Flow Chart PCI-1245/1265 User Manual 80 6.2.2.6 Tangent Flow Chart Figure 6.7: Tangent Operation Flow Chart 81 Chapter 6 6.2.3 Example Support List Example VC C# VB ARC Demonstrates how to control an interpolation group's arc motion. Change_P Demonstrates how to change the 1 axis motion position on the fly. Change_V Demonstrates how to change the 1 axis motion velocity on the fly. Cmove Demonstrates how to use the ACM API to control one axis continuous motion. Compare Demonstrates how to use the compare function. DIO Demonstrates axis digital input/output function. Event Demonstrates how to check event from driver. Home Demonstrates how to use the home function. Line Demonstrates how to control an interpolation group's line motion. MPG_JOG Demonstrates how to start external drive operation on the specified device and axis. Path Demonstrates how to control an interpolation group's path (continuous interpolation) motion. PTP Demonstrates how to control one axis point to point motion SetCardRelation VB .NET Description Demonstrates how to control relations between multi PCI-1220 devices. SimulateOpe Demonstrates how to control simultaneous movement between multi-axis. Direct Demonstrates how to control an interpolation group's direct motion. MoveImpose Demonstrates how to use Move Impose function. Latch Demonstrates how to use latch function. Helix Demonstrates how to control an interpolation group's helix motion. E-CAM Demonstrates how to use electronic cam (ECAM) function. E-Gear Demonstrates how to use electronic gear (EGear) function. PCI-1245/1265 User Manual 82 Tangent Demonstrates how to use tangent follow function. Gantry Demonstrates how to use gantry function. Device DIO Demonstrates device digital input/output function. Device AI Demonstrates device analog input function. 83 Chapter 6 6.2.4 PCI-1245/1245E/1265 Support API List Method/ Event Type Method Device Event 1265 PCI1245LT PCI1245E Description Acm_DevOp en Open device. Acm_DevCl ose Close device. Acm_DevLo adConfig Load configuration file Acm_GetPro perty Get property. Acm_SetPro perty Set property. Acm_GetLas tError Get last error. Acm_Check MotionEvent Check if EVT_AX_MOTION _DONE happened. Acm_Enable MotionEvent Enable/disable event. Acm_DevDo wnloadCAMTable X Load data in CamTable. Acm_DevCo nfigCAMTable X Configure Cam. Acm_DevLo adCAMTableFile X Load CamTable file. EVT_AX_M OTION_DO NE Event happens when axis motion is done. EVT_AX_C OMPARED X X X Event happens when compare is matched. EVT_GPn_ MOTION_D ONE Event happens when group motion is done. PCI-1245/1265 User Manual 84 Digital Input/output DAQ Analog Input/Output SYSTEM Motion I/O Axis Motion Status Velocity Motion Acm_DaqDi GetByte X X Acm_DaqDi GetBit X X Acm_DaqDo SetByte X X Acm_DaqDo SetBit X X Acm_DaqDo GetByte X X Acm_DaqDo GetBit X X Acm_DaqAi GetRawData X X Acm_DaqAi GetVoltData X X Acm_DaqAi GetCurrData X X Acm_AxOpe n Open axis. Acm_AxClos e Close axis. Acm_AxRes etError Reset error when axis is error-stop. Acm_AxSet SvOn Open Servo Driver. Acm_AxGet MotionIO Get status of motion-IO. Acm_AxGet MotionStatus Get status of current motion. Acm_AxGet State Get states of axis. Acm_AxMov eVel Command continuous motion. Acm_AxCha ngeVel Command velocity changing on current motion. Acm_AxGet CmdVelocity Get current command velocity. 85 DAQ function Chapter 6 Point-toPoint Motion Axis Simultaneous Motion Home Acm_AxMov eRel Command relative point-to-point motion. Acm_AxMov eAbs Command absolute point-to-point motion. Acm_AxCha ngePos Change end position on point-topoint motion. Acm_AxStop Dec Decelerated stop. Acm_AxStop Emg Emergency stop. Acm_AxMov eImpose X Impose new motion on current motion. Acm_AxSim StartSuspendAbs X Suspend absolute simultaneous motion. Acm_AxSim StartSuspendRel X Suspend relative simultaneous motion. Acm_AxSim StartSuspendVel X Suspend continuous motion. Acm_AxSim Start X Start suspending simultaneous motion. Acm_AxSim Stop X Stop suspending simultaneous motion. Acm_AxHo me Command home. Acm_AxHo meEx Command extended home. PCI-1245/1265 User Manual 86 Position/ Counter Compare Axis Latch Aux/Gen Output Ext-Drive Acm_AxSet CmdPosition Set command position. Acm_AxGet CmdPosition Get command position. Acm_AxSet ActualPosition Set actual position. Acm_AxGet ActualPosition Get actual position. Acm_ AxSetCmpData X Set comparison data. Acm_AxSet CmpTable X Set comparison data table. Acm_AxSet CmpAuto X Set line comparison datas. Acm_AxGet CmpData X Get current compare data. Acm_AxGet LatchData X Get latched data. Acm_AxTrig gerLatch X Trigger latch data. Acm_AxRes etLatch X Reset latch information. Acm_AxGet LatchFlag X Get latch flag. Acm_AxDoS etBit Set bit value in DO. Acm_AxDoG etBit Get bit value in DO. Acm_AxDiG etBit Get bit value in DI. Acm_AxSet ExtDrive Set external driver. 87 Chapter 6 Axis Application SYSTEM Group Motion Status Motion Stop Acm_AxCa mInAx X Command e-cam. Acm_AxGea rInAx ÷ Command e-gear. Acm_AxGan tryInAx X Command gantry. Acm_AxTan gentInGp X Command tangent motion follow group. Acm_GpAdd Axis Add axis into group. Acm_GpRe mAxis Remove axis from group. Acm_GpClo se Close group. Acm_GpRes etError Reset error when group is errorstpped. Acm_GpGet State Get current states of group. Acm_GpSto pDec Decelerated stop. Acm_GpSto pEmg Emergency stop. PCI-1245/1265 User Manual 88 Group Interpolation Motion Acm_GpMov eLinearRel Just support 2 axis Command relative linear interpolation. Acm_GpMov eLinearAbs Just support 2 axis Command absolute linear interpolation. Acm_GpMov eCircularRel X Command relative arc interpolation. Acm_GpMov eCircularAbs X Command absolute arc interpolation. Acm_GpMov eCircularRel _3P X Command relative 3-point arc interpolation. Acm_GpMov eCircularAbs _3P X Command absolute 3-point arc interpolation. Acm_GpMov eDirectAbs Just support 2 axis Command absolute direct linear interpolation. Acm_GpMov eDirectRel Just support 2 axis Command relative direct linear interpolation. Acm_GpCha ngeVel X Change velocity on current group motion. Acm_GpMov eHelixRel X Command relative helix interpolation. Acm_GpMov eHelixAbs X Command absolute helix interpolation. Acm_GpMov eHelixRel_3 P X Command relative 3-point helix interpolation. Acm_GpMov eHelixAbs_3 P X Command absolute 3-point helix interpolation. 89 Chapter 6 Group Path Acm_GpAdd Path Add one path into system buffer. Acm_GpRes etPath Reset path system buffer. Acm_GpLoa dPath Load a path file. Acm_GpUnl oadPath Unload path. Acm_GpMov ePath Move path in system buffer. Acm_GpGet PathStatus Get current path status. Acm_GpMov eSelPath Move assigned range paths. Acm_GpGet PathIndexStatus Get status of assigned index path. PCI-1245/1265 User Manual 90 6.2.5 Property Support List Type Property Feature Device Configure Feature DAQ Configure Axis System PCI1265 PCI1245 PCI1245E FT_DevIpoTypeMap FT_DevAxesCount FT_DevFunctionMap FT_DevOverflowCntr CFG_DevBoardID CFG_DevBaseAddress CFG_DevInterrupt CFG_DevBusNumber CFG_DevSlotNumber CFG_DevDriverVersion CFG_DevDllVersion CFG_DevFirmVersion CFG_DevCPLDVersion FT_DaqDiMaxChan FT_DaqDoMaxChan FT_DaqAiRangeMap FT_DaqAiMaxSingleChan FT_DaqAiMaxDiffChan FT_DaqAiResolution CFG_DaqAiChanType X X CFG_DaqAiRanges X X FT_AxFunctionMap CFG_AxPPU CFG_AxPhyID 91 Chapter 6 Speed Pattern Pulse IN Axis Pulse OUT Alarm In Position ERC SD FT_AxMaxVel FT_AxMaxAcc FT_AxMaxDec FT_AxMaxJerk CFG_AxMaxVel CFG_AxMaxAcc CFG_AxMaxDec CFG_AxMaxJerk PAR_AxVelLow PAR_AxVelHigh PAR_AxAcc PAR_AxDec PAR_AxJerk FT_AxPulseInMap FT_AxPulseInModeMap CFG_AxPulseInMode CFG_AxPulseInLogic CFG_AxPulseInMaxFreq FT_AxPulseOutMap FT_AxPulseOutModeMap CFG_AxPulseOutMode FT_AxAlmMap CFG_AxAlmLogic CFG_AxAlmEn CFG_AxAlmReact FT_AxInpMap CFG_AxInpEnable CFG_AxInpLogic FT_AxErcMap FT_AxErcEnableModeMap CFG_AxErcLogic CFG_AxErcEnableMode FT_AxSdMap PCI-1245/1265 User Manual 92 HardWare Software Limit Home Axis BackLash Vibration Compare Latch FT_AxElMap CFG_AxElReact CFG_AxElLogic CFG_AxElEnable FT_AxSwMelMap FT_AxSwPelMap CFG_AxSwMelEnable CFG_AxSwPelEnable CFG_AxSwMelReact CFG_AxSwPelReact CFG_AxSwMelValue CFG_AxSwPelValue FT_AxHomeMap CFG_AxOrgLogic CFG_AxEzLogic CFG_AxHomeResetEnable PAR_AxHomeExMode PAR_AxHomeCrossDistance PAR_AxHomeExSwitchMode FT_AxBacklashMap CFG_AxBacklashEnable CFG_AxBacklashPulses CFG_AxBacklashVel FT_AxVibrationMap FT_AxCompareMap CFG_AxCmpSrc X CFG_AxCmpMethod X CFG_AxCmpPulseMode X CFG_AxCmpPulseLogic X CFG_AxCmpPulseWidth X CFG_AxCmpEnable X FT_AxLatchMap CFG_AxLatchLogic X CFG_AxLatchEnable X 93 Chapter 6 Aux/Gen DIO Ext-Drive Axis CAM DO Module Simultaneity System Application Group Speed Pattern FT_AxGenDOMap FT_AxGenDIMap CFG_AxGenDoEnable FT_AxExtDriveMap FT_AxExtMasterSrcMap CFG_AxExtMasterSrc CFG_AxExtSelEnable CFG_AxExtPulseNum CFG_AxExtPulseInMode CFG_AxExtPresetNum FT_AxCamDOMap CFG_AxCamDOEnable X CFG_AxCamDOLoLimit X CFG_AxCamDOHiLimit X CFG_AxCamDOCmpSrc X CFG_AxCamDOLogic X CFG_AxModuleRange X FT_AxSimStartSourceMap CFG_AxSimStartSource X PAR_GpGroupID CFG_GpPPU CFG_GpAxesInGroup CFG_GpSFEnable X CFG_GpBldTime X PAR_GpRefPlane X PAR_GpVelLow PAR_GpVelHigh PAR_GpAcc PAR_GpDec PAR_GpJerk PCI-1245/1265 User Manual 94 6.2.6 Creating a New Application For creating a new application under PCI-1245/1245E/1265, user ought to install Common Motion Examples, there are many examples developed in different language in folder Advantech\Motion Common\Examples, user can follow these examples to develop a new application. After installing CommonMotion examples, user can find two folders Include and Public in folder \Advantech\Motion Common, the files in Public folder are supplied for user to create applications in different languages, the relationship between files and developing language is as figure 6.1. 6.2.6.1 Creating a New VC Console Application For creating a new console application, the procedure is as follow: 1. Click File/New from the main menu to create your application project and source code as you would for any other Visual C++ program. Figure 6.8: Open File to Creating a New VC Application 95 Chapter 6 2. Define the type of new project as "Win32 Console Application", define the platform to be "Win32" and assign a project file directory. Figure 6.9: Creating a New VC Console Application Click OK, you can chose one kind of console application to create. Then a new console application has been created. 3. Config the new project. User should add the path of head files and necessary Lib file, and config the project in Project Setting. Use can open “Project Setting” in Menu - Poject - Settings ... or right click the new Project and chose “Setting” to open. The configuration is as follows. a. In Common Motion Architecture, the Calling Convension should be “_stdcall”, so user need to config the Calling convention as follow: PCI-1245/1265 User Manual 96 Figure 6.10: Setting Caling Convention b. Set the head files path, the paths as follows contains all of head files which may be used by user. Plese pay attention the paths which must be corrective. For example, the content of folder which contains this project is as follow. Figure 6.11: Folder Content of This Example So the path setting is as follow. 97 Chapter 6 Figure 6.12: Add Head Files Path c. Set the necessary Lib file. The Lib file “ADVMOT.lib” which is corresponding to “ADVMOT.dll” in folder systemroot\ system32\ is supplied for user to develop application easily. This Lib file is in “Public” folder after installing example package. User should pay attention the path of the head files. Figure 6.13: Setting Lib File Path PCI-1245/1265 User Manual 98 When finish the project setting, user can build this project if build successfully. 4. Write the code. #include "stdafx.h" #include <wtypes.h> #include <stdio.h> #include "AdvMotApi.h" #define MAX_CNT 100 int main(int argc, char* argv[]) { ULONG errcde; HAND devHandle; HAND axHandle[MAX_CNT]; ULONG devNum , devCnt,buffLen, axisCntPerDev; USHORT i; DEVLIST devList[MAX_CNT]; //Step1. Get available devices by calling API "Acm_GetAvailableDevs" errcde = Acm_GetAvailableDevs(devList, MAX_CNT, &devCnt); if (errcde!=0) { printf("Can not find available device! \n"); getchar(); return 0; } printf("Get available devices successfully! \n"); //Step2. Open device. devNum = devList[0].dwDeviceNum; errcde = Acm_DevOpen(devNum, &devHandle); 99 Chapter 6 if (errcde!=0) { printf("Open device is failed! \n"); getchar(); return 0; } printf("Open device successfully! \n"); //Step3. After open device successfully, user can get necessary property. buffLen=sizeof(axisCntPerDev); errcde = Acm_GetProperty (devHandle,FT_DevAxesCount, axisCntPerDev, &buffLen ); if (errcde!=SUCCESS) { Acm_DevClose(&devHandle); printf("Get property is failed! \n"); getchar(); return 0; } printf("Get property successfully! \n"); //Step2. Open the axes. for (i=0; i<axisCntPerDev; i++) { errcde = Acm_AxOpen(devHandle, i, &axHandle[i]); if (errcde!=0) { printf("Open axis_0 is failed! \n"); getchar(); return 0; } } printf("Open axes successfully! \n"); PCI-1245/1265 User Manual 100 //Stp3. Move relative Axis 0 Point to Point motion. errcde = Acm_AxMoveRel(axHandle[0], 10000); if (errcde!=0) { printf("move axis_0 is failed! \n"); getchar(); return 0; } printf("Command axis 0 to move point to point successfully! \n"); // Step 4. At last, Close axis and device before application exit. for (i=0; i<axisCntPerDev; i++) { errcde = Acm_AxClose(&axHandle[i]); if (errcde!=0) { printf("Open axis_0 is failed! \n"); getchar(); return 0; } } Acm_DevClose(&devHandle); getchar(); return 0; } 101 Chapter 6 5. The execution result. Figure 6.14: Result of VC Sonsole Example 6.2.6.2 Creating a New Visual Basic Application For creating a new console application, the procedure is as follow: 1. Open the Visual Basic 6.0 development program, it will be loaded as follow: Figure 6.15: Load VB Development Environment 2. Select the Standard EXE icon and press the “Open” button. A new project is created. PCI-1245/1265 User Manual 102 3. Adding the module into project. Click on the Project Explorer in the View menu. Add ADVMOT.bas (In the Advantech\Motion Common\Public folder after installing examples package) module and general.bas (In the folder \Advantech\Motion Common\Examples after installing examples package) by clicking on Add Module in the Project menu. Figure 6.16: Add Module Files into Project 4. Design the form. Figure 6.17: Design the Form 5. Write the code. The variables definitions are as follow. 103 Chapter 6 Option Explicit Dim m_DevHand As Long Dim m_dwDevNum As Long Dim AxisPerDev As Long Dim m_AxisHand() As Long Dim m_CurAxis As Long Dim m_avaDevs() As DEVLIST When form is loaded, find the available devices by API “Acm_GetAvailableDevs”. The code is as follow: Private Sub Form_Load() Dim Result As Long Dim i, DeviceNumber As Long Dim strTemp As String ReDim m_avaDevs(16) ReDim m_AxisHand(32) //Get available devices by Acm_GetAvailableDevs Result = Acm_GetAvailableDevs(m_avaDevs(0), MAX_DEVICES, DeviceNumber) If Result <> SUCCESS Then MsgBox "no available device in system", vbOKOnly, "error" Exit Sub End If If DeviceNumber <> 0 Then m_dwDevNum = m_avaDevs(0).dwDeviceNum tx_DevNum.Text = "0x" + Hex(m_dwDevNum) Timer1.Interval = 200 Else MsgBox "no available device in system", vbOKOnly, "error" End IfEnd Sub PCI-1245/1265 User Manual 104 Click “Open Device&Axes”, the device and axes in the device will be opened. The timer is enabled. The combox will contain all of axes. The code is as follow: Private Sub btn_OpenDev_Click() Dim Result As Long, i As Long, slaveDevs() As Long Dim strTemp As String Dim buffLen As Long Dim AxisNumber As Long //Open device. Result = Acm_DevOpen(m_dwDevNum, m_DevHand) If Result <> SUCCESS Then MsgBox "Open Device Failed", vbOKOnly, "PTP" Exit Sub End If buffLen = 64 // Get Axis count by getting property. Result = Acm_GetProperty(m_DevHand, FT_DevAxesCount, AxisPerDev, buffLen) If Result <> SUCCESS Then Acm_DevClose (m_DevHand) MsgBox "get axis number error", vbOKOnly, "PTP" Exit Sub End If // Open all of axes For AxisNumber = 0 To AxisPerDev - 1 Step 1 Result = Acm_AxOpen(m_DevHand, AxisNumber, m_AxisHand(AxisNumber)) If Result <> SUCCESS Then MsgBox "Open Axis Failed", vbOKOnly, "PTP" Exit Sub End If 105 Chapter 6 Acm_AxSetCmdPosition m_AxisHand(AxisNumber), 0 If Result <> SUCCESS Then MsgBox "Set command position failed", vbOKOnly, "PTP" Exit Sub End If strTemp = AxisNumber & "-Axis" cm_Axis.AddItem strTemp Next cm_Axis.ListIndex = 0 m_CurAxis = 0 Timer1.Enabled = True End Sub Click the combox to select axis, the code is as follow: Private Sub cm_Axis_Click() m_CurAxis = cm_Axis.ListIndex End Sub The timer is used to get the command position of selected axis. The code is as follow: Private Sub Timer1_Timer() Dim CurPos() As Double Dim strTemp As String ReDim CurPos(32) // Get command position of selected axis Acm_AxGetCmdPosition m_AxisHand(m_CurAxis), CurPos(m_CurAxis) strTemp = CurPos(m_CurAxis) tx_CmdPos.Text = strTemp End Sub PCI-1245/1265 User Manual 106 Click “Close Device&Axes”, the device and axes in the device will be Closed.The timer is disabled. The code is as follow: Private Sub btn_Close_Click() Dim AxisNum As Long For AxisNum = 0 To AxisPerDev - 1 Step 1 Acm_AxClose m_AxisHand(AxisNum) Next Acm_DevClose m_DevHand cm_Axis.Clear Timer1.Enabled = False End Sub 6. The result is as follow: Figure 6.18: The Execution Result 6.2.6.3 Creating a New C# Application To use PCI-1245/1245E/1265 Series DSP-Based SoftMotion PCI Controller, ADVMOT.dll and relevant driver files are needed. Please be sure to install the driver before development. Please create a C# project as follows: 1. Create a new project Select [Microsoft Visual Studio 2005] from the Microsoft Visual Studio 2005 in Start Menu, as follows: 107 Chapter 6 The development environment of Microsoft Visual Studio 2005 is as follows: To create a new project, Select [File] ---> [New] ---> [Project] of Main menu, as follows: PCI-1245/1265 User Manual 108 In the new form, the default language is “Visual C#”, select [Windows Application] template, Configure the Name, Location and Solution Name (Same as Name by default), and then click [OK]. 2. Add relevant .dll a. Click [References] on the top right corner of development environment, as follows: b. Click [Browse] of the [Add Reference] dialog box, Select “AdvMotAPI.dll” in the “Public” file folder from search path, then click [OK], as follows: 109 Chapter 6 c. Right click on the Edit interface; select [View Code] to enter the program source code compilation interface, as follows: d. Add “using Advantech.Motion” under original referred namespaces, as follows: 3. Coding a. UI design Double click [Form1.cs] or right click to select [View Designer] on [Form1.cs], then the UI edit interface will appear, as follows: PCI-1245/1265 User Manual 110 You can drag any Control/Component you need from the left Toolbox to edit user interface, as follows: For detail, please refer to Microsoft Visual C # user manual. b. Coding Right click on Form1.cs to select [View Code], then you enter the coding interface, you can code in relevant method/event of control/ Component. For detail, please refer to C# Examples of PCI-1245/ 1245E/1265 Series DSP-Based SoftMotion PCI Controller. 111 Chapter 6 4. Test program After the programming or if you want to compile the program, you can click [Build] ---> [Build Solution]\[Build Test Advantech Motion] in the menu bar, as follows: You can directly click there is no error. in the toolbar, the program will run if If you want to debug the program, you can set breakpoint at corresponding line of code by clicking or pressing [F9], as follows: Click [Debug] ---> [Start Debugging] to debug, when run to the breakpoint, you can press [F11] or [F10] to step into/over, as follows: PCI-1245/1265 User Manual 112 6.2.6.4 Creating a New VB.net Application To use PCI-1245/1245E/1265 Series DSP-Based SoftMotion PCI Controller, ADVMOT.dll and relevant driver files are needed. Please be sure to install the driver before development. Please create a Visual Basic project as follows: 1. Create a new project Select [Microsoft Visual Studio 2005] from the Microsoft Visual Studio 2005 in Start Menu, as follows: The development environment of Microsoft Visual Studio 2005 is as follows: 113 Chapter 6 To create a new project, Select [File]--->[New]--->[Project] of Main menu, as follows: In the new form, Select [Other Languages]--->[Visual Basic], select [Windows Application] template, Configure the Name, Location and Solution Name(Same as Name by default), then click[OK]. PCI-1245/1265 User Manual 114 2. Add relevant .dll a. Click [References] on the top right corner of development environment, as follows: b. Click [Browse] of the [Add Reference] dialog box, Select “AdvMotAPI.dll” in the “Public” file folder from search path, then click [OK], as follows: 115 Chapter 6 c. Right click on the Edit interface; select [View Code] to enter the program source code compilation interface, as follows: d. Add “Imports Advantech.Motion” under original referred namespaces, as follows: PCI-1245/1265 User Manual 116 3. Coding a. UI design Double click [Form1.vb] or right click to select [View Designer] on [Form1.vb], then the UI edit interface will appear, as follows: You can drag any Control/Component you need from the left Toolbox to edit user interface, as follows: For detail, please refer to Microsoft Visual Basic user manual. 117 Chapter 6 b. Coding Right click on Form1.vb to select [View Code], then you enter the coding interface, you can code in relevant method/event of control/ Component. For detail, please refer to VB.NET Examples of PCI1245/1245E/1265 Series DSP-Based SoftMotion PCI Controller. 4. Test program After the programming or if you want to compile the program, you can click [Build] ---> [Build Solution]\[Build Test Advantech Motion(VB)] in the menu bar, as follows: You can directly click there is no error. in the toolbar, the program will run if If you want to debug the program, you can set breakpoint at corresponding line of code by clicking or pressing [F9], as follows: PCI-1245/1265 User Manual 118 Click [Debug] ---> [Start Debugging] to debug£¨when run to the breakpoint, you can press [F11] or [F10] to step into/over, as follows: 119 Chapter 6 6.3 Function List 6.3.1 Common API 6.3.1.1 Acm_GetAvailableDevs Format: U32 Acm_GetAvailableDevs (DEVLIST *DeviceList, U32 MaxEntries, PU32 OutEntries) Purpose: Get the list of available device numbers and names of devices, of which driver has been loaded successfully. Parameters: Name Type In or Out Description DeviceList DEVLIST* OUT Pointer to returned available device info list. MaxEntries U32 IN The max devices count to get. OutEntries PU32 OUT The count of available device. Return Value: Error Code. Comments: The structure of DEVLIST is: typedef struct tagPT_DEVLIST { DWORD DeviceNum; CHAR DeviceName[50]; SHORT NumOfSubDevices; } DEVLIST, *LPDEVLIST; DeviceNum: Device Number needed for Acm_DevOpen. DeviceName: Device name.Eg. 1265/PCI1245. NumOfSubDevices: Just for AMONET device. It is zero in PCI-1245 and PCI-1265. PCI-1245/1265 User Manual 120 6.3.1.2 Acm_GetErrorMessage Format: BOOL Acm_GetErrorMessage (U32 ErrorCode, LPTSTR lpszError, U32 nMaxError) Purpose: Get the error message according to error code returned from API. Parameters: Name Type In or Out Description ErrorCode U32 IN The returned error code of API. lpszError LPTSTR OUT The pointer to the string of error message. nMaxError U32 IN The max length of string to receive error message. Return Value: Nonzero if the function is successful; otherwise 0 if no error message text is available. Comments: Acm_GetErrorMessage will not copy more than nMaxError -1 characters to the buffer and it will always add a trailing null to end the string. If the buffer is too small, the error message may be truncated. 121 Chapter 6 6.3.2 Device Object 6.3.2.1 Acm_DevOpen Format: U32 Acm_DevOpen (U32 DeviceNumber, PHAND DeviceHandle) Purpose: Open a specified device to get device handle. Parameters: Name Type DeviceNumber U32 DeviceHandle In or Out Description IN Device Number PHAND OUT Return a point to the device handle Return Value: Error Code. Comments: This function should be called firstly before any operation of the device. PCI-1245/1265 User Manual 122 6.3.2.2 Acm_DevClose Format: U32 Acm_DevClose (PHAND DeviceHandle) Purpose: Close a device. Parameters: Name Type In or Out DeviceHandle PHAND IN Description A pointer to the device handle Return Value: Error Code. Comments: Last of all, the device must be closed through this function. 123 Chapter 6 6.3.2.3 Acm_DevLoadConfig Format: U32 Acm_DevLoadConfig (HAND DeviceHandle, PI8 ConfigPath) Purpose: Set all configurations for the device according to the loaded file. Parameters: Name Type In or Out Description DeviceHandle HAND IN Device handle from Acm_DevOpen. ConfigPath PI8 IN Pointer to a string that saves configuration file's path. Return Value: Error Code Comments: Configuration file can be binary or text file. If the file extension is .bin, driver reads the file in binary format. Otherwise, driver reads the file in .INI (text format). User should debug device and set necessary configuration by Utility, then save these configuration information into file. This configuration file can be loaded in user’s application by calling Acm_DevLoadConfig. If user wants to save configuration information in .bin file format, the saved data structure (MOT_DEV_CONFIG) of configuration information should be as follow: typedef struct _MOT_AX_CONFIG { ULONG PlsPerUnit; DOUBLE MaxVel; DOUBLE MaxAcc; DOUBLE MaxDec; DOUBLE MaxJerk; DOUBLE VelHigh; DOUBLE VelLow; DOUBLE Dec; DOUBLE Acc; ULONG PlsInMde; PCI-1245/1265 User Manual 124 ULONG PlsInLgc; ULONG PlsInMaxFreq; ULONG PlsOutMde; ULONG AlmEnable; ULONG AlmLogic; ULONG AlmReact; ULONG InpEnable; ULONG InpLogic; ULONG ErcLogic; ULONG ErcEnMde; ULONG ElEnable; ULONG ElLogic; ULONG ElReact; ULONG SwMelEnable; ULONG SwPelEnable; ULONG SwMelReact; ULONG SwPelReact; ULONG SwMelValue; ULONG SwPelValue; ULONG OrgLogic; ULONG EzLogic; ULONG HomeModeEx; ULONG HomeExSwitchMode; DOUBLE HomeCrossDis; ULONG HomeResetEnable; ULONG BacklashEnable; ULONG BacklashPulses; ULONG BacklashVel; ULONG CmpSrc; ULONG CmpMethod; ULONG CmpPulseLogic; ULONG CmpPulseWidth; ULONG CmpEnable; ULONG CmpPulseMode; ULONG LatchLogic; ULONG LatchEnable; 125 Chapter 6 ULONG GenDoEnable; ULONG ExtMasterSrc; ULONG ExtSelEnable; ULONG ExtPulseNum; ULONG ExtPulseInMode; ULONG ExtPresetNum; ULONG CamDoEnable; ULONG CamDOLoLimit; ULONG CamDOHiLimit; ULONG CamDoCmpSrc; ULONG CamDoLogic; ULONG ModuleRange; ULONG SimStartSource; } MOT_AX_CONFIG, *PMOT_AX_CONFIG; typedef struct _MOT_DAQ_CONFIG { ULONG AiChanType; ULONG AiRanges; } MOT_DAQ_CONFIG, *PMOT_DAQ_CONFIG; typedef struct _MOT_DEV_CONFIG { MOT_DAQ_CONFIG DaqConfig; MOT_Ax_CONFIG Axis_Cfg[Axis_Num]; } MOT_DEV_CONFIG, *PMOT_DEV_CONFIG; Axis_Num is 4 for PCI-1245/PCI-1245E, is 6 for PCI-1265. PCI-1245/1265 User Manual 126 6.3.2.4 Acm_GetProperty Format: U32 Acm_GetProperty(HAND Handle, U32 ProperyID, PVOID Buffer, PU32 BufferLength) Purpose: Get the property (feature property, configuration property or parameter property) value through assigned PropertyID. Paramter: Name Type In or Out Description Handle HAND IN Object handle. This handle may be device handle from Acm_DevOpen, or axis handle from Acm_AxOpen, or group handle from Acm_GpAddAxis ProperyID U32 IN Property ID to query. Buffer PVOI D OUT Data buffer for property. BufferLength PU32 IN/OUT IN, buffer size for the property; OUT, returned data required length. Return Value: Error Code. Comments: User should pay attention on the data type and BufferLength of Buffer to get the value of property according to PropertyID. If the Buffer is too small, the return value will be error code "InvalidInputParam". In this case, driver will return the actual size of the property in BufferLength. About the detail information of PerpertyID, see about Property List. 127 Chapter 6 6.3.2.5 Acm_SetProperty Format: U32 Acm_SetProperty (HAND Handle, U32 ProperyID, PVOID Buffer, U32 BufferLength). Purpose: Set the property (configuration property or parameter property) value through assigned PropertyID. Parameters: Name Type In or Out Description Handle HAND IN Object handle. This handle may be device handle from Acm_DevOpen, or axis handle from Acm_AxOpen, or group handle from Acm_GpAddAxis ProperyID U32 IN Property ID to set. Buffer PVOID OUT BufferLength U32 Data buffer for property. IN Buffer size for the property. Return Value: Error Code. Comments: For some properties, driver may package the value with some adjustment for precision consideration. So some properties' output value may be different from the input value. Eg. PAR_AxJerk. Not all of properties in Property List can be set new property value; only the writable properties can be reset property value. User should pay attention on data type and data length property needed. If the value of BufferLength is smaller than actual data size, error code “InvalidInputParamter” will be returned. About the detail information of PropertyID, see about Property List. PCI-1245/1265 User Manual 128 6.3.2.6 Acm_GetLastError Format: U32 Acm_GetLastError (HAND ObjectHandle) Purpose: Get device or axis or group’s last error code. Parameters: Name DeviceHandle Type In or Out Description Object handle. This handle may be device handle from Acm_DevOpen, or axis handle from Acm_AxOpen, or group handle from Acm_GpAddAxis HAND IN Return Value: Error Code. Comments: To get detail information of error code by Acm_GetErrorMessage. 129 Chapter 6 6.3.2.7 Acm_CheckMotionEvent Format: U32 Acm_CheckMotionEvent (HAND DeviceHandle, PU32 AxEvtStatusArray, PU32 GpEvtStatusArray, U32 AxArrayElements, U32 GpArrayElements, U32 Millisecond) Purpose: Check axis and groups enabled motion event status. Parameters: Name Type In or Out Description DeviceHandle HAND IN Device handle from Acm_DevOpen. Array[n]: Returned interrupt event status of each axis. n is the axis count of motion device. Each array element is 32 bits data type, each bit represents different event types: AxEvtStatusArray PU32 IN/OUT Bit n = 1: Axis Motion Done event occurred; Bit n = 0: Event not occurred or disabled. PCI-1245/1265 User Manual 130 Array[n]: Returned Interrupt event status for each group. n is just 1. GpEvtStatus is 32 bits data type array and currently the values of n can only be 1. GpEvtStatusArray PU32 IN/OUT Bit n = 1: Group Motion Done event occurred; Bit n = 0: Event not occurred or disabled. Note: EVT_GPn_MOTION_DONE, n is GroupID. It can be get form PAR_GpGroupID property. AxArrayElements U32 IN Number of AxEvtStatusArray elements. GpArrayElements U32 IN Number of GpEvtStatusArray elements. It should be 1. Millisecond U32 IN Specify the time out value in millisecond for each checking Return Value: Error Code. Comments: If you want to get event status of axis or groups, you should enable these events by calling Acm_EnableMotionEvent. User should create a new thread to check event status. 131 Chapter 6 6.3.2.8 Acm_EnableMotionEvent Format: U32 Acm_EnableMotionEvent (HAND DeviceHandle, PU32 AxEnableEvtArray, PU32 GpEnableEvtArray, U32 AxArrayElements, U32 GpArrayElements) Purpose: Enable motion event. Parameters: Name Type In or Out Description DeviceHandle HAND IN Device handle from Acm_DevOpen. Array[n], enable interrupt event for each axis, n is the axis count of motion device. Array is of 32 bits data type, each bit represents different Event types:\ AxEnableEvtArray PU32 IN Bit n = 1: Enable event; Bit n = 0: Disable event PCI-1245/1265 User Manual 132 Array[n], enable interrupt event for each group. GpEnableEvtArray is 32 bits data type array and currently the value of n can only be 1. GpEnableEvtArray PU32 IN Bit n = 1: Enable event; Bit n = 0: Disable event. Note: For EVT_GPn_MOTION_DONE, n is GroupID. It can be got form PAR_GpGroupID property. AxArrayElements U32 IN number of AxEvtStatusArray elements GpArrayElements U32 IN number of GpEvtStatusArray elements Return Value: Error Code. Comments: After enable some events of axis or groups, the event status can be get from Acm_CheckMotionEvent. 133 Chapter 6 6.3.2.9 Acm_DevDownloadCAMTable Format: U32 Acm_DevDownloadCAMTable (HAND DeviceHandle, U32 CamTableID, PF64 pMasterArray, PF64 pSlaveArray, PF64 pPointRangeArray, PF64 pPointSlopeArray, U32 ArrayElements) Purpose: This function downloads a CAM table profile which describes the ratio relationship of leading and following axis. Parameters: Name Type DeviceHandle HAND IN Device handle. This handle is device handle from Acm_DevOpen. CamTableID U32 IN Identifier of CAM table. PCI-1245 and PCI-1265 reserves 2 sets of cam table. So the ID can be 0, 1. pMasterArray PF64 IN Master position array of CAM table points. pSlaveArray PF64 IN Slave position array of CAM table points. pPointRangeArray PF64 IN Point range of CAM table point. pPointSlopeArray PF64 IN Point slope of CAM table point. IN Element count in the pMasterArray/ pSlaveArray/ pPointRangeArray/ pPointSlopeArray array. The Max. Element count is 128. ArrayElements U32 In/Out Description Return Value: Error Code. Comments: Camming is characterized by dynamic ratio between the leading and following axis, and by the phase shift. The transmission ratio is described by a CamTable. Camming is done with one table (two dimensional - describing master and slave positions together). The table should be strictly monotonic rising or falling, going both reverse and forward with the master. PCI-1245E does not support this API. PCI-1245/1265 User Manual 134 The meaning of parameters is as follow: As top-figure, Range is the needed pulse number when master axis rotates 360°. The black points in figure are composed of master values (eg. X1, X2) in MasterArray and corresponding slave values in SlaveArray, and the red points created by black points and assigned PointRange and PointSlope are called reference points. Cam curve is fitted by points in CamTable composed of MasterArray and SlaveArray. The horizontal axis is the pulse number when master axis moves at some angles. The vertical axis is the pulse number of slave axis when master moves at some angels. Range must be set into master axis by property CFG_AxModuleRange. About cam operation, see about E-Cam Flow Chart in Chapter 6.2.2. 135 Chapter 6 6.3.2.10 Acm_DevConfigCAMTable Format: U32 Acm_DevConfigCAMTable (HAND DeviceHandle, U32 CamTableID, U32 Periodic, U32 MasterAbsolute, U32 SlaveAbsolute) Purpose: This function sets the relevant parameters of the cam table. Parameters: Name Type DeviceHandle HAND IN Device handle. This handle is device handle from Acm_DevOpen. U32 IN Identifier of Cam table. It is assigned by Acm_DevDownloadCAMTable. Device reserves 2 cam tables. So the ID can be 0, 1. IN CAM curve is executed periodic or non-periodic. 0: non-periodic, 1: periodic IN Interpret cam curve relative (0) or absolute (1) to the master axis. 0: relative, 1:absolute IN Interpret cam curve relative (0) or absolute (1) to the slave axis. 0: relative, 1:absolute CamTableID Periodic U32 MasterAbsolute U32 SlaveAbsolute U32 In/Out Description Return Value: Error Code. Comments: Camming is done with one table (two dimensional - describing master and slave positions together). There are two types of Camming: PCI-1245/1265 User Manual 136 • Periodic Periodic: Once a curve is executed the camming immediately starts again at the beginning of the curve. As follow: Non-periodic: After a curve is executed the execution stops. • MasterAbsolute and SlaveAbsolute Absolute: When absolute camming is set, the control values or the slave values based on the CamTable are interpreted as being absolute.The system compensates any offset developing between the leading and following axis during synchronization. When synchronism is reached, a defined phase relationship is established between the control value and the slave value. Relative: When relative camming is set, this means that any offsets between the control value and the slave value are not compensated for during synchronization. For example, sectional drawing from Utility as follows: The intial cam curve is as follow: 137 Chapter 6 - Master axis: Absolute. Slave axis: Relative. - Master axis: Relative. Slave axis: Absolute. PCI-1245E does not support this API. PCI-1245/1265 User Manual 138 6.3.2.11 Acm_DevLoadCAMTableFile Format: U32 Acm_DevLoadCAMTableFile (HAND DeviceHandle, PI8 FilePath, U32 CamTableID, PU32 Range, PU32 PointsCount) Purpose: Load Cam Table file edited and saved by Utility into device. Parameters: Name Type In or Out Description DeviceHandle HAND IN Device handle from Acm_DevOpen. FilePath PI8 IN Pointer to a string that saves CamTable file's path. CamTableID U32 IN CamTableID: 0 or 1. Range PU32 OUT The pulse number which master needed in one period. PointsCount PU32 OUT The points number in CamTable. Return Value: Error Code. Comments: The CamTable file is saved in .bin format in utility. When it is loaded successfully by this API, the API Acm_DevDownLoadCACMTable need not be called. About E-cam operation, see about E-Cam Flow Chart in Chapter 6.2.2. PCI-1245E does not support this API. 139 Chapter 6 6.3.3 DAQ 6.3.3.1 Digital Input/ Output 6.3.3.1.1 Acm_DaqDiGetByte Format: U32 Acm_DaqDiGetByte (HAND DeviceHandle, U16 DiPort, PU8 ByteData) Purpose: Get the data of specified DI port in one byte. Parameters: Name Type In or Out Description DeviceHandle HAND IN Device handle from Acm_DevOpen. DiPort U16 IN It should be 0. ByteData PU8 OUT Pointer of returned byte data. Return Value: Error Code. Comments: PCI-1245 and PCI-1245E does not support DI. In PCI-1265, there are 8 DIs, so the DiPort should be 0. PCI-1245/1265 User Manual 140 6.3.3.1.2 Acm_DaqDiGetBit Format: U32 Acm_DaqDiGetBit (HAND DeviceHandle, U16 DiChannel, PU8 BitData) Purpose: Get the bit data of specified DI channel. Parameters: Name Type In or Out Description DeviceHandle HAND IN Device handle from Acm_DevOpen. DiChannel U16 IN DI channel. BitData PU8 OUT Returned bit data. 0 or 1. Return Value: Error Code. Comments: PCI-1245 and PCI-1245E does not support DI. In PCI-1265, there are 8 DIs, so the DiChannel should be 0 ~ 7. 141 Chapter 6 6.3.3.1.3 Acm_DaqDoSetByte Format: U32 Acm_DaqDoSetByte (HAND DeviceHandle, U16 DoPort, U8 ByteData) Purpose: Set value to specified DO port. Parameters: Name Type In or Out Description DeviceHandle HAND IN Device handle from Acm_DevOpen. DoPort U16 IN DO port. ByteData U8 IN Value to be set. Return Value: Error Code. Comments: PC-1245 and PCI-1245E does not support DO. In PCI-1265, there are 8 DOs, so the DoPort should be 0. PCI-1245/1265 User Manual 142 6.3.3.1.4 Acm_DaqDoSetBit Format: U32 Acm_DaqDoSetBit (HAND DeviceHandle, U16 DoChannel, U8 BitData) Purpose: Set the value to specified DO channel. Parameters: Name Type In or Out Description DeviceHandle HAND IN Device handle from Acm_DevOpen. DoChannel U16 IN DO channel. BitData U8 IN Value to be set. 0 or 1. Return Value: Error Code. Comments: PCI-1245 and PCI-1245E does not support DO. In PCI-1265, there are 8 DOs, so the DoChannel should be 0 ~ 7. 143 Chapter 6 6.3.3.1.5 Acm_DaqDoGetByte Format: U32 Acm_DaqDoGetByte(HAND DeviceHandle, U16 DoPort,PU8 ByteData) Purpose: Get the byte data of specified DO port. Parameters: Name Type In or Out Description DeviceHandle HAND IN Device handle from Acm_DevOpen. DoPort U16 IN DO port. ByteData PU8 OUT Returned value. Return Value: Error Code. Comments: PCI-1245 and PCI-1245E does not support DO. In PCI-1265, there are 8 DOs, so the DoPort should be 0. PCI-1245/1265 User Manual 144 6.3.3.1.6 Acm_DaqDoGetBit Format: U32 Acm_DaqDoGetBit(HAND DeviceHandle, U16 DoChannel, PU8 BitData) Purpose: Get the bit value of specified DO channel. Parameters: Name Type In or Out Description DeviceHandle HAND IN Device handle from Acm_DevOpen. DoChannel U16 IN DO channel 0 ~ 7. BitData PU8 OUT Returned value 0 or 1. Return Value: Error Code. Comments: PC-I1245 and PCI-1245E does not support DO. In PCI-1265, there are 8 DOs, so the DoChannel should be 0 ~ 7. 145 Chapter 6 6.3.4 Axis 6.3.4.1 System 6.3.4.1.1 Acm_AxOpen Format: U32 Acm_AxOpen (HAND DeviceHandle, U16 PhyAxis, PHAND AxisHandle) Purpose: Open specified axis and get this axis object's handle. Parameters: Name Type In or Out Description DeviceHandle HAND IN Device handle from Acm_DevOpen. PhyAxis U16 IN Physical Axis Number. (PCI-1265: 0, 1, 2,3,4,5. PCI-1245/1245E: 0,1,2,3) AxisHandle PHAND OUT Returns a pointer to the axis handle. Return Value: Error Code. Comments: Before any axis operation, this API should be called firstly. The physical axis number in PCI-1265: 0, 1, 2, 3, 4, 5. The physical axis number in PCI-1245: 0, 1, 2, 3. PCI-1245/1265 User Manual 146 6.3.4.1.2 Acm_AxClose Format: U32 Acm_AxClose (PHAND AxisHandle) Purpose: Close axis which has been opened. Parameters: Name Type In or Out Description AxisHandle PHAND IN Pointer to the axis handle Return Value: Error Code. Comments: After calling this API, the axis handle cannot be used again. 147 Chapter 6 6.3.4.1.3 Acm_AxResetError Format: U32 Acm_AxResetError (HAND AxisHandle) Purpose: Reset the axis' state. If the axis is in ErrorStop state, the state will be changed to Ready after calling this function. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. Return Value: Error Code. Comments: None PCI-1245/1265 User Manual 148 6.3.4.2 Motion IO 6.3.4.2.1 Acm_AxSetSvOn Format: U32 Acm_AxSetSvOn (HAND AxisHandle, U32 OnOff) Purpose: Set servo Driver ON or OFF. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. OnOff IN Setting the action of SVON signal. 0: Off; 1: On U32 Return Value: Error Code. Comments: None 149 Chapter 6 6.3.4.2.2 Acm_AxGetMotionIO Format: U32 Acm_AxGetMotionIO (HAND AxisHandle, PU32 Status) Purpose: Get the motion I/O status of the axis. Parameters: Name Type AxisHandle HAND IN Axis handle from Acm_AxOpen. PU32 Bit Description 0:RDY1---- RDY pin input; 1:ALM ---- Alarm Signal input; 2:LMT_P ---- Limit Switch+; 3:LMT_N---- Limit Switch-; 4:ORG---- Origin Switch; 5:DIR ---- DIR output; 6:EMG ---- Emergency signal input; 7:PCS ---- PCS signal input(not support in PCI-1245/1245E/1265); 8: ERC ---- Output deflection counter clear signal to a servomotor driver;(OUT7) 9: EZ ---- Index signal; 10: CLR ---- ext. input to Clear postion counter ;(not support in PCI-1245/ 1245E/1265) 11: LTC ---- Latch signal input; 12: SD ---- Slow Down signal input; (not support in PCI-1245/1245E/1265) 13: INP ---- In-Position signal input; 14: SVON ---- Servo-ON (OUT6); 15: ALRM ----Alarm Reset output status; 16:SLMT_P ---- Software Limit+; 17: SLMT_N ---- Software Limit-; 18: TRIG-----Compare signal(OUT5); 19: CAMDO ---- position window do(OUT4); Status In or Out Description OUT Return Value: Error Code. Comments: None PCI-1245/1265 User Manual 150 6.3.4.3 Motion Status 6.3.4.3.1 Acm_AxGetMotionStatus Format: U32 Acm_AxGetMotionStatus (HAND AxisHandle, PU32 Status) Purpose: Get current motions status of the axis. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. OUT Bit Description 0: Stop ---- Stop; 1: Res1 ---- Reserved; 2: WaitERC---- Wait ERC finished; 3: Res2 ---- Reserved; 4: CorrectBksh ---- Correcting Backlash; 5: Res3 ---- Reserved; 6: InFA ---- Feeding in return velocity = FA; 7: InFL ---- Feeding in StrVel speed =FL; 8: InACC ---- Accelerating; 9: InFH ---- Feeding in MaxVel speed = FH; 10: InDEC ---- Decelerating; 11:WaitINP----Wait in position. Status PU32 Return Value: Error Code. Comments: None 151 Chapter 6 6.3.4.3.2 Acm_AxGetState Format: U32 Acm_AxGetState (HAND AxisHandle, PU16 State) Purpose: Get the axis's current state. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. State Axis states: Value Description 0: STA_AxDisable ---- Axis is disabled, you can open it to active it. 1: STA_AxReady ---- Axis is ready and waiting for new command. 2: STA_Stopping ---- Axis is stopping. 3: STA_AxErrorStop ---- Axis has stopped because of error. 4: STA_AxHoming ---- Axis is executing home motion. 5: STA_AxPtpMotion ---- Axis is executing PTP motion. 6: STA_AxContiMotion ---- Axis is executing continuous motion. 7: STA_AxSyncMotion ---- Axis is in one group and the group is executing interpolation motion, or axis is slave axis in E-cam/E-gear/Gantry motion. 8: STA_AX_EXT_JOG ---- Axis is controlled by external signal and will execute JOG mode motion once external signal is active. 9: STA_AX_EXT_MPG ---- Axis is controlled by external signal and will execute MPG mode motion once external signal is active. PU16 IN Return Value: Error Code. Comments: None PCI-1245/1265 User Manual 152 6.3.4.4 Velocity Motion 6.3.4.4.1 Acm_AxMoveVel Format: U32 Acm_AxMoveVel (HAND AxisHandle, U16 Direction) Purpose: To command axis to make a never ending movement with a specified velocity. Parameters: Name Type In or Out AxisHandle HAND IN Axis handle from Acm_AxOpen. Direction U16 Direction: 0: Positive direction; 1: Negative direction. IN Description Return Value: Error Code. Comments: The speed curve is decided by properties: PAR_AxVelLow, PAR_AxVelHigh, PAR_AxAcc, PAR_AxDec, and PAR_AxJerk. 153 Chapter 6 6.3.4.4.2 Acm_AxChangeVel Format: U32 Acm_AxChangeVel (HAND AxisHandle, F64 NewVelocity) Purpose: To command axis to change the velocity while axis is in velocity motion. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. NewVelocity F64 IN New velocity. ( unit = PPU/s) Return Value: Error Code. Comments: The speed curve is decided by properties: PAR_AxVelLow, NewVelocity, PAR_AxAcc, PAR_AxDec, and PAR_AxJerk. The range of NewVelocity is: 0 ~ CFG_AxMaxVel. PCI-1245/1265 User Manual 154 6.3.4.4.3 Acm_AxGetCmdVelocity Format: U32 Acm_AxGetCmdVelocity (HAND AxisHandle, PF64 Velocity) Purpose: Get current command velocity of the specified axis. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. Velocity PF64 OUT Return the command velocity. ( unit = PPU/s) Return Value: Error Code. Comments: None 155 Chapter 6 6.3.4.5 Point-to-Point Motion 6.3.4.5.1 Acm_AxMoveRel Format: U32 Acm_AxMoveRel (HAND AxisHandle, F64 Distance). Purpose: Start single axis's relative position motion. Parameters: Name Type In or Out AxisHandle HAND IN Axis handle from Acm_AxOpen. Distance F64 Relative distance.( unit = PPU) IN Description Return Value: Error Code. Comments: The speed curve is decided by properties: PAR_AxVelLow, PAR_AxVelHigh, PAR_AxAcc, PAR_AxDec, and PAR_AxJerk. The range of Distance is: -2147483647 ~ 2147483647, if PPU is 1. PCI-1245/1265 User Manual 156 6.3.4.5.2 Acm_AxMoveAbs Format: U32 Acm_AxMoveAbs (HAND AxisHandle, F64 Position) Purpose: Start single axis's absolute position motion. Parameters: Name Type In or Out AxisHandle HAND IN Axis handle from Acm_AxOpen. Position F64 Absolute position (unit = PPU) IN Description Return Value: Error Code. Comments: The speed curve is decided by properties: PAR_AxVelLow, PAR_AxVelHigh, PAR_AxAcc, PAR_AxDec, and PAR_AxJerk. The range of Distance is: -2147483647 ~ 2147483647, if PPU is 1. 157 Chapter 6 6.3.4.5.3 Acm_AxChangePos Format: U32 Acm_AxChangePos (HAND AxisHandle, F64 NewDistance) Purpose: To command axis to change the end distance while axis is in point to point motion. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. NewDistance F64 New relative distance. (unit = PPU) IN Return Value: Error Code. Comments: This function will change the end position to specified position on current ptp motion. The range of Distance is: -2147483647~2147483647 if PPU is 1. PCI-1245/1265 User Manual 158 6.3.4.5.4 Acm_AxStopDec Format: U32 Acm_AxStopDec (HAND AxisHandle) Purpose: To command axis to decelerate to stop. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. Return Value: Error Code. Comments: If axis is in synchronous driving, eg. Slave axis in E-cam/E-gear/ tangent motion, this API can be used to stop synchronous relationship. 159 Chapter 6 6.3.4.5.5 Acm_AxStopEmg Format: U32 Acm_AxStopEmg (HAND AxisHandle) Purpose: To command axis to stop immediately without deceleration. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. Return Value: Error Code. Comments: If axis is in synchronous driving. eg. Slave axis in E-cam/E-gear/ tangent, this API can be used to stop synchronous relationship. PCI-1245/1265 User Manual 160 6.3.4.5.6 Acm_AxMoveImpose Format: U32 Acm_AxMoveImpose (HAND AxisHandle, F64 Position, F64 NewVel) Purpose: Impose a new motion on current motion. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. Position F64 IN The relative position of new motion.(unit = PPU) NewVel F64 IN The velocity of this imposed motion. (unit = PPU/s) Return Value: Error Code. Comments: This function just supports trapezoidal profile on this imposed motion. The end position when motion stops will be the original postion added/ subtracted Position. And the driver speed will be changed too. The whole speed curve is decided by NewVel of this motion, and PAR_AxVelLow, PAR_AxVelHigh, PAR_AxAcc, PAR_AxDec, PAR_AxJerk of original motion. The range of Position + original position is: -2147483647/ PPU ~ 2147483647/ PPU, and the range of NewVel + orginal FH is 0~ CFG_AxMaxVel. For example, as follow: 161 Chapter 6 Note: Can not impose new motion on imposed motion. PCI-1245/1265 User Manual 162 6.3.4.6 Simultaneous Motion 6.3.4.6.1 Acm_AxSimStartSuspendAbs Format: U32 Acm_AxSimStartSuspendAbs (HAND AxisHandle, F64 EndPoint) Purpose: Set the axis in wait state for simultaneous operation. When started by start trigger, the axis will start point-to-point absolute moving to the assigned end position. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. EndPoint F64 The absolute position to move.(unit = PPU) IN Return Value: Error Code. Comments: If more than one ax is wanted to do simultaneous operation, should call this function for each axis. The range of EndPoint is: -2147483647/ PPU ~ 2147483647/ PPU. 163 Chapter 6 6.3.4.6.2 Acm_AxSimStartSuspendRel Format: U32 Acm_AxSimStartSuspendRel (HAND AxisHandle, F64 Distance) Purpose: Set the axis in wait state for simultaneous operation. When started by start trigger, the axis will start point-to-point relative moving to the assigned end position. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. EndPoint The relative position to move.(unit = PPU) F64 IN Return Value: Error Code. Comments: If more than one ax is wanted to do simultaneous operation, should call this function for each axis. The range of EndPoint is: -2147483647/ PPU ~ 2147483647/ PPU. PCI-1245/1265 User Manual 164 6.3.4.6.3 Acm_AxSimStartSuspendVel Format: U32 Acm_AxSimStartSuspendVel (HAND AxisHandle, U16 DriDir) Purpose: Set the axis in wait state for simultaneous operation. When started by start trigger, the axis will start continuously moving. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. DriDir U16 IN Direction: 0: Positive direction; 1: Negative direction. Return Value: Error Code. Comments: If more than one ax is wanted to do simultaneous operation, should call this function for each axis. 165 Chapter 6 6.3.4.6.4 Acm_AxSimStart Format: U32 Acm_AxSimStart (HAND AxisHandle) Purpose: Simultaneous start axis and make it output simultaneous start signal to start all axis that are waiting for start trigger. Parameter: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. Return Value: Error Code. Comments: If more than one ax is waiting on start trigger, user should set the mode of simultaneous starting /stopping by CFG_AxSimStartSource before this API. PCI-1245/1265 User Manual 166 6.3.4.6.5 Acm_AxSimStop Format: U32 Acm_AxSimStop (HAND AxisHandle) Purpose: Stop the axis and make the axis output a simultaneous stop trigger to stop all axis that are waiting for the stop trigger. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. Return Value: Error Code. Comments: When doing simultaneous operation, you can do this operation on any axis to stop all axis if the Simultaneous starting mode is on STA. Or else every simultaneous axis needs to call this API to stop simultaneous motion. About simultaneous starting/stopping mode, see about CFG_AxSimStartSource. 167 Chapter 6 6.3.4.7 Home 6.3.4.7.1 Acm_AxHome Format: U32 Acm_AxHome (HAND AxisHandle, U32 HomeMode, U32 Dir) Purpose: To command axis to start typical home motion. The 11 types of typical home motion are composed of extended home. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. HomeMode U32 IN HomeMode: 0: MODE1_Abs; 1: MODE2_Lmt; 2: MODE3_Ref; 3: MODE4_Abs_Ref; 4: MODE5_Abs_NegRef; 5: MODE6_Lmt_Ref; 6: MODE7_AbsSearch; 7: MODE8_LmtSearch; 8: MODE9_AbsSearch_Ref; 9: MODE10_AbsSearch_NegRef; 10: MODE11_LmtSearch_Ref Dir U32 IN 0: Positive direction; 1: Negative direction. Return Value: Error Code. Comments: If property CFG_AxHomeResetEnable is set to be true, command position and actual position will be reset to be zero after home motion ends. Before using this method, the cross distance should be set through PAR_AxHomeCrossDistance. The speed curve is decided by PAR_AxVelLow, PAR_AxVelHigh, PAR_AxAcc, PAR_AxDec, and PAR_AxJerk. PCI-1245/1265 User Manual 168 HomeMode: : Object on rotating axis/Sliding axis. 1. MODE1_Abs: Move (Dir) ->touch ORG->Stop. Only according to origin equipment (eg.sensor) to home. The object moves continuously until the origin signal occurring. For example: Dir: Positive. Org Logic (CFG_AxOrgLogic): Active High. EL (Hard Limit switch) Logic (CFG_AxElLogic): Active High. • STATUS1: If the object is out of the field of ORG signal, when home command is written, the object will move until ORG signal occurring. • STATUS2: If the object is in the field of ORG signal or the direction is opposite with ORG switch, the object will move until ORG signal (if there are more than one ORG switch or the axis equipment is occlusive) or EL signal (axis’s states is error stop). 169 Chapter 6 2. MODE2_Lmt: Move(Dir)->touch EL->Stop Only according to limit equipment (eg.sensor) to home. The object moves continuously until the limit signal occurring. For Example: Dir: Positive. Limit Logic (CFG_AxElLogic): Active High. • STATUS1: If the object is out of the field of EL signal, when home command is written, the object will move until EL signal occurring. • STATUS2: If the object is in the field of EL signal, there will be no response. PCI-1245/1265 User Manual 170 3. MODE3_Ref: Move (Dir) ->touch EZ->Stop. Only according to EZ to home. The object moves continuously until the EZ signal occurring. For Example: Dir: Positive. EZ Logic (CFG_AxEzLogic): Active High. • STATUS1: If the object is out of the field of EZ signal, when home command is written, the object will move until EZ signal occurring. • STATUS2: If the object is in the field of ORG signal, the object will move until next EZ signal occurring. 171 Chapter 6 4. MODE4_Abs_Ref: ORG+EZ, Move(Dir) ->touch ORG ->Stop >Move(Dir)->touch EZ ->Stop This is a composed home mode. Firstly, the object moves until origin signal occurring, and then continues to move in same direction with ORG until EZ signal occurring. For Example: Dir: Positive. ORG logic: Active Logic. EZ Logic: Active Logic. • STATUS1: If the object is out of the field of EZ signal and ORG signal, when home command is written. Firstly, the object will move until ORG signal occurring, then continue to move until EZ signal occurring. • STATUS2: If the object is in the field of ORG signal, the home command is written, the object begins to move. Firstly, the ORG signal disappears, and then next ORG signal occurs. At last, motion is stopped when EZ signal occurring. • STATUS3: If the object is in the field of EZ signal, the home command is written, the object begins to move. Firstly, the EZ signal disappears, and then ORG signal occurs. At last, motion stops when EZ signal occurring. Note: Home will stop in case EL signal occurs. PCI-1245/1265 User Manual 172 5. MODE5_Abs_NegRef: ORG+EZ, Move (Dir) ->touch ORG >Stop ->Move (-Dir) ->touch EZ ->Stop. This is a composed home mode. The object moves until origin signal occurring firstly, and then continues to move in opposite direction with ORG until EZ signal is occurred. For Example: Dir: Positive. ORG logic: Active Logic. EZ Logic: Active Logic. • STATUS1: If the object is out of the field of EZ signal and ORG signal, when home command is written. Firstly, the object will move until ORG signal occurring, then continue to move in opposite direction until EZ signal occurring. • STATUS2: If the object is in the field of ORG signal, the home command is written, the object begins to move. Firstly, the ORG signal disappears, and then next ORG signal occurs, at the same time reverses motion direction. At last, motion is stopped when EZ signal occurring. • STATUS3: If the object is in the field of EZ signal, the home command is written, the object begins to move. Firstly, the EZ signal disappears, and then ORG signal occurs, at the same time reverses motion direction. At last, motion stops when EZ signal occurring. Note: Home will stop in case EL signal occurs. 173 Chapter 6 6. MODE6_Lmt_Ref: EL + NegEZ, Move (Dir) ->touch EL ->Stop > Move (-Dir) ->touch EZ ->Stop. The object moves until limit signal occurring firstly, and then continues to move in opposite direction until EZ signal is occurred. For Example: Dir: Positive. EZ Logic: Active Logic. Limit Logic: Active High. • STATUS1: If the object is out of the field of EZ signal and EL signal, when home command is written. Firstly, the object will move until EL signal occurring, then continue to move in opposite direction until EZ signal occurring. • STATUS2: If the object is in the field of EL signal, the object will move in opposite direction until EZ signal occurring. • STATUS3: If the object is in the field of EZ signal, the home command is written, the object begins to move. Firstly, the EZ signal disappears, and then EL signal occurs, at the same time reverses motion direction. At last, motion stops when EZ signal occurring. PCI-1245/1265 User Manual 174 7. MODE7_AbsSearch: Move (Dir) ->Search ORG ->Stop. This is a mode of searching transformation of ORG signal from no signal to signal occurring. For Example: Dir: Positive. ORG logic: Active high. Limit logic: Active High. • STATUS1: If there is no ORG signal occurring, the object will stop when ORG signal occurs. • STATUS2: If the object is in the field of ORG signal. The Object moves in opposite direction until the signal disappears, and then converts direction to move until ORG signal occurring. • STATUS3: If there is no ORG signal occurring. EL signal happens while moving firstly, the object reverses direction and continues to move, and then the ORG signal from happening to disappearing. Reverses direction again, and moves until ORG signal occurring. Motion stops. 175 Chapter 6 8. MODE8_LmtSearch: Move (Dir) ->Search EL ->Stop. This is a mode of searching transformation of limit signal from no signal to signal occurring. For Example: Dir: Positive. Limit logic: Active High. • STATUS1: If the Limit signal is occurred firstly while the object is moving, the home process is end. • STATUS2: If the object is in the field of limit signal. The Object moves in opposite direction until the signal disappears, and then converts direction to move until limit signal occurring. PCI-1245/1265 User Manual 176 9. MODE9_AbsSearch_Ref: Search ORG + EZ, Move (Dir) ->Search ORG ->Stop ->Move (Dir) ->touch EZ ->Stop. Firstly, object moves in the way of MODE7_AbsSearch, and then moves in same direction until EZ signal occurring. For example: Dir: Positive. Limit logic: Active High. ORG logic: Active High. • STATUS1: If the object is out of the field of EZ signal and ORG signal, when home command is written, firstly, the object will move until ORG signal occurring, then continue to move until EZ signal occurring. • STATUS2: If the object is in the field of ORG signal, the home command is written. Firstly, the object reserves direction and moves, the ORG signal disappears, then reverses direction again and continues to move, the ORG signal occurs again. At last, motion is stopped when EZ signal occurring. • STATUS3: If there is no ORG signal occurring. EL signal happens before ORG signal, the object reverses direction when EL signal happens and continues to move, and then the ORG signal from happening to disappearing. Reverses direction again, continues to move, the ORG signal will happen and disappear again. At last, motion is stopped when EZ signal occurring. 177 Chapter 6 10. MODE10_AbsSearch_NegRef: Search ORG + NegEZ, Move (Dir) ->Search ORG ->Stop ->Move (-Dir) ->touch EZ ->Stop. Firstly, object moves in the way of MODE7_AbsSearch, and then moves in opposite direction until EZ signal occurring. For example: Dir: Positive. Limit logic: Active High. ORG logic: Active High. • STATUS1: If the object is out of the field of EZ signal and ORG signal, when home command is written. Firstly, the object will move until ORG signal occurring, then reverse direction and continue to move until EZ signal occurring. • STATUS2: If the object is in the field of ORG signal, the home command is written, firstly, the object reserves direction and moves, the ORG signal disappears, then reverses direction again and continues to move, the ORG signal occurs again, reverses direction and moves. At last, motion is stopped when EZ signal occurring.\ • STATUS3: If there is no ORG signal occurring. EL signal happens before ORG signal, the object reverses direction when EL signal happens and continues to move, and then the ORG signal from happening to disappearing. Reverses direction again, continues to move, the ORG signal will happen again, then reverses direction. At last, motion is stopped when EZ signal occurring. PCI-1245/1265 User Manual 178 11. MODE11_LmtSearch_Ref: Search EL +NegEZ, Move (Dir) >Search EL ->Stop->Move (-Dir) ->touch EZ ->Stop. Firstly, object moves in the way of MODE8_LmtSearch, and then moves in opposite direction until EZ signal occurring. For example: Dir: Positive. Limit logic: Active High. • STATUS1: When object is not in field of limit signal. Firstly, the object will move until EL signal occurring, then reverse direction and continue to move until EZ signal occurring. • STATUS2: When object is in the field of limit signal. Firstly, the object reserves direction and moves, the EL signal disappears, then reverses direction again and continues to move, the EL signal occurs again, reverses direction again and moves. At last, motion is stopped when EZ signal occurring. 179 Chapter 6 6.3.4.7.2 Acm_AxHomeEx Format: U32 Acm_AxHomeEx (HAND AxisHandle, U32 DirMode) Purpose: To command axis to start extended home motion. The home mode is specified by property PAR_AxHomeExMode. Parameters: Name Type AxisHandle HAND IN Axis handle from Acm_AxOpen. U32 0: PosiDir---Always in positive direction. 1: NegDir----Always in negative direction. 2: SwitchPosi----Depends on switch status. If switch is off, direction is positive. Otherwise, direction is negative. 3: SwitchNeg----Depends on switch status. If switch is off, direction is negative. Otherwise, direction is positive. DirMode In or Out Description IN Return Value: Error Code. Comments: If property CFG_AxHomeResetEnable is set to be true, command position and actual position will be reset to be zero after home motion ends. The speed curve is decided by PAR_AxVelLow, PAR_AxVelHigh, PAR_AxAcc, PAR_AxDec, and PAR_AxJerk. If property PAR_AxHomeExMode is set to be RefPulse (EZ) mode, home motion can only execute constant velocity with PAR_AxVelLow. PCI-1245/1265 User Manual 180 6.3.4.8 Position/Counter Control 6.3.4.8.1 Acm_AxSetCmdPosition Format: U32 Acm_AxSetCmdPosition (HAND AxisHandle, F64 Position) Purpose: Set command position for the specified axis. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. Position New command position(uint:PPU) F64 IN Return Value: Error Code. Comments: None 181 Chapter 6 6.3.4.8.2 Acm_AxGetCmdPosition Format: U32 Acm_AxGetCmdPosition (HAND AxisHandle, PF64 Position) Purpose: Get current command position of the specified axis. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. Position PF64 Return the command position.(uint:PPU) OUT Return Value: Error Code. Comments: None PCI-1245/1265 User Manual 182 6.3.4.8.3 Acm_AxSetActualPosition Format: U32 Acm_AxSetActualPosition (HAND AxisHandle, F64 Position) Purpose: Set actual position for the specified axis. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. Position F64 IN New actual position(uint:PPU) Return Value: Error Code. Comments: None 183 Chapter 6 6.3.4.8.4 Acm_AxGetActualPosition Format: U32 Acm_AxGetActualPosition (HAND AxisHandle, PF64 Position) Purpose: Get current actual position of the specified axis. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. Position PF64 IN Return the actual position. (uint:PPU) Return Value: Error Code. Comments: None PCI-1245/1265 User Manual 184 6.3.4.9 Compare 6.3.4.9.1 Acm_AxSetCmpData Format: U32 Acm_AxSetCmpData (HAND AxisHandle, F64 CmpPosition) Purpose: Set compare data for the specified axis. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. CmpPosition F64 The data to be compared. (Unit: PPU) IN Return Value: Error Code. Comments: If property CFG_AxCmpMethod is set to MTD_GREATER_POSITION, the CmpPosition should be greater than current position (command position or actual position). If property CFG_AxCmpMethod is set to MTD_SMALLER_POSITION, the CmpPosition should be smaller than current position (command position or actual position). Before setting compare data, you need to set property CFG_AxCmpEnable to CMP_ENABLE first. If you want to close compare function, you only need to set property CFG_AxCmpEnable to CMP_DISABLE and nothing is necessary to clear compare data. You can set CFG_AxCmpSrc to SRC_COMMAND_POSITION or SRC_ACTUAL_POSITION. Once any function of Acm_AxSetCmpData, Acm_AxSetCmpAuto , and Acm_AxSetCmpTable is called, the previous compared data will be cleared. If property CFG_AxEnableGenDO is enabled, this function will be disabled. 185 Chapter 6 6.3.4.9.2 Acm_AxSetCmpTable Format: U32 Acm_AxSetCmpTable (HAND AxisHandle, PF64 TableArray, I32 ArrayCount) Purpose: Set compare data list for the specified axis. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. TableArray PF64 IN Compare data table. (Unit: PPU) ArrayCount I32 IN Compare data count in the table Return Value: Error Code. Comments: If property CFG_AxCmpMethod is set to MTD_GREATER_POSITION, the first data in table should be greater than current position (command position or actual position) and the compare data should be greater than last compare data in table. After setting the compare table, the first data will be loaded to comparator, and if the current position matches the comparator, pulse will be generated; the next compare data will be loaded to comparator automatically. If property CFG_AxCmpMethod is set to MTD_SMALLER_POSITION, the first data in table should be smaller than current position (command position or actual position) and the compare data should be smaller than last compare data in table. The first data will be loaded to comparator, and if the current position matches the comparator, pulse will be generated; the next compare data will be loaded to comparator automatically. PCI-1245/1265 User Manual 186 Before setting compare data, please set property CFG_AxCmpEnable to CMP_Enable first. If you want to close compare function, you only need to set property CFG_AxCmpEnable to CMP_Disable and nothing is necessary to clear compare data. You can set CFG_AxCmpSrc to SRC_COMMAND_POSITION or SRC_ACTUAL_POSITION. As long as any of the three functions, Acm_AxSetCmpData, Acm_AxSetCmpAuto , Acm_AxSetCmpTable is called, the previously compared data will be cleared. At most, there are 100,000 compare data. This function just supports X axis and Y axis currently. If CFG_AxGenDoEnable is enabled, the compare function will be disabled, so the compare signal will not be output. 187 Chapter 6 6.3.4.9.3 Acm_AxSetCmpAuto Format: U32 Acm_AxSetCmpAuto (HAND AxisHandle, F64 Start, F64 End, F64 Interval) Purpose: Set compare data for the specified axis. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. Start F64 IN First compare data. (Unit: PPU) End F64 IN Last compare data. (Unit: PPU) Interval F64 IN Compare interval. (Unit: PPU) Return Value: Error Code. Comments: If property CFG_AxCmpMethod is set to MTD_GREATER_POSITION, the Start data should be greater than current position (command position or actual position). The first data will be loaded to comparator, and if the current position matches the comparator, pulse will be generated; the next compare data will be loaded to comparator automatically. If property CFG_AxCmpMethod is set to MTD_SMALLER_POSITION, the Start data should be smaller than current position (command position or actual position). The first data will be loaded to comparator, and if the current position matches the comparator, pulse will be generated; the next compare data will be loaded to comparator automatically. Before setting compare data, please set property CFG_AxCmpEnable to CMP_Enable first. If you want to close compare function, you only need to set property CFG_AxCmpEnable to CMP_Disable and nothing is necessary to clear compare data. You can set CFG_AxCmpSrc to SRC_COMMAND_POSITION or SRC_ACTUAL_POSITION. PCI-1245/1265 User Manual 188 As long as any of the three functions Acm_AxSetCmpData, Acm_AxSetCmpAuto , Acm_AxSetCmpTable is called, the previously compared data will be cleared. At most, there are 100,000 compare data. This function just supports X axis and Y axis currently. If CFG_AxGenDoEnable is enabled, the compare function will be disabled, so the compare signal will not be output. 189 Chapter 6 6.3.4.9.4 Acm_AxGetCmpData Format: U32 Acm_AxGetCmpData (HAND AxisHandle, PF64 CmpPosition) Purpose: Get current compare data in the comparator. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. CmpPosition PF64 OUT Compare data.(Unit: PPU) Return Value: Error Code. Comments: None PCI-1245/1265 User Manual 190 6.3.4.10 Latch 6.3.4.10.1 Acm_AxGetLatchData Format: U32 Acm_AxGetLatchData (HAND AxisHandle, U32 PositionNo, PF64 Position) Purpose: Get the latch data in device after triggering latch. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. PositionNo U32 IN 0: Command position 1: Actual position. Position PF64 OUT Latch data.(uint:PPU) Return Value: Error Code. Comments: None 191 Chapter 6 6.3.4.10.2 Acm_AxTriggerLatch Format: U32 Acm_AxTriggerLatch (HAND AxisHandle) Purpose: Trigger the hardware to latch position data. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. Return Value: Error Code. Comments: None PCI-1245/1265 User Manual 192 6.3.4.10.3 Acm_AxResetLatch Format: U32 Acm_AxResetLatch (HAND AxisHandle) Purpose: Clear the latch data and latch flag in device. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. Return Value: Error Code. Comments: None 193 Chapter 6 6.3.4.10.4 Acm_AxGetLatchFlag Format: U32 Acm_AxGetLatchFlag (HAND AxisHandle, PU8 LatchFlag) Purpose: Get the latch flag in device if data is latched. Parameters: Name Type In or Out AxisHandle HAND IN Axis handle from Acm_AxOpen. LatchFlag PU8 The flag data. 1: Data is latched. 0: not latched. OUT Description Return Value: Error Code. Comments: None PCI-1245/1265 User Manual 194 6.3.4.11 Aux/Gen Output 6.3.4.11.1 Acm_AxDoSetBit Format: Acm_AxDoSetBit (HAND AxisHandle, U16 DoChannel, U8 BitData) Purpose: Output DO value to channel. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. DoChannel U16 IN Digital output channel(4~7) BitData U8 IN DO value: 0 or 1 Return Value: Error Code. Comments: If you want to use this general DO function, you must set property CFG_AxGenDoEnable to GEN_DO_EN first. When CFG_AxGenDoEnable is enabled, the function of CamDo, Erc and Compare will be disabled automatically and Acm_AxSetCmpData, Acm_AxSetCmpAuto , Acm_AxSetCmpTable will not be able to generate trigger pulse because these two functions use the same output pins(OUT4 ~ OUT7). 195 Chapter 6 6.3.4.11.2 Acm_AxDoGetBit Format: U32 Acm_AxDoGetBit (HAND AxisHandle, U16 DoChannel, PU8 BitData) Purpose: Get DO channel status. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. DoChannel U16 IN Digital output channel(4~7) BitData PU8 OUT DO value: 0 or 1 Return Value: Error Code. Comments: See about Acm_AxDoSetBit. PCI-1245/1265 User Manual 196 6.3.4.11.3 Acm_AxDiGetBit Format: U32 Acm_AxDiGetBit (HAND AxisHandle, U16 DiChannel, PU8 BitData) Purpose: Get the specified channel's DI value. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. DiChannel U16 IN Digital input channel. (0~3) BitData PU8 OUT DI value: 0 or 1 Return Value: Error Code. Comments: None 197 Chapter 6 6.3.4.12 Ext-Drive 6.3.4.12.1 Acm_AxSetExtDrive Format: U32 Acm_AxSetExtDrive (HAND AxisHandle, U16 ExtDrvMode) Purpose: Enable or disable external drive mode. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. IN 0: Disabled (stop command) 1: JOG Mode 2: MPG Mode 3: JOG Step mode(reserved) ExtDrvMode U16 Return Value: Error Code. Comments: None PCI-1245/1265 User Manual 198 6.3.4.13 Cam/Gear 6.3.4.13.1 Acm_AxCamInAx Format: U32 Acm_AxCamInAx (HAND AxisHandle, HAND MasAxisHandle, F64 MasterOffset, F64 SlaveOffset, F64 MasterScaling, F64 SlaveScaling, U32 CamTableID, U32 RefSrc) Purpose: This function starts cam synchronization with a cam table between a slave (following) axis and master (leading) axis. Camming is done with one table (two dimensional - describing master and slave positions together). The table should be strictly monotonic rising or falling, going both reverse and forward with the master. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen, this handle should be slave (following) axis handle. MasAxisHandle HAND IN Axis handle from Acm_AxOpen, this handle should be master (leading) axis handle. MasterOffset F64 IN Shifting the cam along the coordinates of the master axis. SlaveOffset F64 IN Shifting the cam along the coordinates of the slave axis. IN Scaling factor for the cam in the coordinates of the master axis. The overall master profile is multiplied by this factor.This should be Larger than zero. IN Scaling factor for the cam in the coordinates of the slave axis. The overall slave profile is multiplied by this factor. This should be Larger than zero. MasterScaling SlaveScaling F64 F64 199 Chapter 6 CamTableID RefSrc U32 U32 IN Identifier of CAM table. It is assigned by Acm_DevDownloadCAMTable. The PCI-1245 and PCI-1265 reserves 2 cam tables. So the ID can be 0, 1. IN Cam table's master position reference to command-position (0) or actual-position (1). 0: Command position. 1: Actual position. Return Value: Error Code. Comments: If this command is set successfully, salve axis will move according to cam curve fitted by CamTable when master axis is moving continuously or point to point. Can not set command/acutual position for salve aixs and master axis by Acm_AxSetCmdPosition or Acm_AxSetAcutalPosition. To terminate follow relationship of slave axis, user can call Acm_AxStopDec, Acm_AxStopEmg, and the slave axis will be readby status. The pulse number of master axis rotated 360 degree should be set by property CFG_AxModuleRange.The edited CamTable needs to set by Acm_DevDownloadCAMTable, and related E-cam configure can be set by Acm_DevConfigCAMTable. After all of above, slave axis will be synchronous status if calls Acm_AxCamInAx successfully. Then slave axis will follow mater axis to move. The parameter MasterScaling, SlaveScaling, MasterOffset, SlaveOffset are used to ajust current Camtable based on edited CamTable. The figures about scalling and offset are as follow. PCI-1245/1265 User Manual 200 About detail E-Cam operation, see E-Cam Flow Chart in Chapter 6.2.2. See Also Acm_DevDownLoadCAMTable, Acm_DevCofigCAMTable, Acm_DevLoadCAMTableFile. 201 Chapter 6 6.3.4.13.2 Acm_AxGearInAx Format: U32 Acm_AxGearInAx (HAND AxisHandle, HAND MasAxisHandle, I32 Numerator, I32 Denominator, U32 RefSrc, U32 Absolute) Purpose: This function starts gear synchronization with a ratio between a slave (following) axis and master (leading) axis. Parameters: Name Type In orOut Description AxisHandle HAND IN Axis handle from Acm_AxOpen, this handle should be slave (following) axis handle. MasAxisHandle HAND IN Axis handle from Acm_AxOpen, this handle should be master (leading) axis handle. Numerator I32 IN Gear ratio numerator. Denominator I32 IN Gear ratio denominator RefSrc IN Slave axis engages to master axis’s command-position (0) or actual-position (1). IN The synchronization is relative to start position (random position values upon reaching synchronization) or absolute. 0: relative, 1:absolute Absolute U32 U32 Return Value: Error Code. Comments: Slave axis will follow mater axis motion if this functionis called successfully. The master axis and slave axis can not be reset command/actual position by Acm_AxSetCmdPosition / Acm_AxSetActualPosition in gear motion. The relationship of master and slave can be terminated by calling the Acm_AxStopDec and Acm_AxStopEmg, the axis will return SteadBy status. PCI-1245/1265 User Manual 202 • Gear Ratio: Numerator/Denominator. If the value is positive, the slave will move at the same direction with master axis, or else it will move at the opponent direction with mater axis. • Absolute: - Absolute=1: Absolute relationship. Slave axis will compensate the offset with master axis. Absolute=0: Relative relationship. Slave axis will not compensate any offset with master axis. About the E-gear operation, see about E-Gear/gantry flow chart in Chapter 6.2.2. 203 Chapter 6 6.3.4.14 Gantry/Tangent 6.3.4.14.1 Acm_AxTangentInGp Format: U32 Acm_AxTangentInGp (HAND AxisHandle, HAND MasGroupHandle, PI16 StartVectorArray, U8 Working_plane, I16 Direction) Purpose: Command axis to move at same direction with tangent of group path. Parameters: Name Type In or Out Description AxHandle HAND IN Axis handle from Acm_AxOpen. MasGroupHandle HAND IN Group handle from Acm_GpAddAxis. StartVectorArray PI16 IN Must be 3 dimension. Working_plane U8 IN 0:XY ; 1:YZ ; 2:XZ Direction I16 IN Same:0; Opposite:1 Return Value: Error Code. Comments: The axis will be synchronous state and will follow group motion at the direction of tangent of group’s path if this function is called successfully. The axis and group can not be reset command/actual position. Using Acm_AxStopDec/Acm_AxStopEmg will terminate synchronous state of the axis, and it will return SteadBy state. The axis can not be one axis in group. StartVectorArray is the initial vector which is starting direction of axis. For example, StartVectorArray[3] = {0, 10, 0}, working plane = 0: XY plane. PCI-1245/1265 User Manual 204 Note: The start vector should be as close as possible with group’s motion starting direction, or else there may be the error of motion accelerator greater than max accelerator of device. And if the angle between two conjoint paths is too large, the error will happen too, so user should pay attention to angle between paths. The formula of calculating max angle deviation is as follow: For example: Setting: Module Range (CFG_AxModuleRange): 3600 pulse. Max Acceleration (CFG_AxMaxAcc): 10^7. Max angle of slope transformation: 10^7 X 10^-6 X 360° /3600 = 1°. 205 Chapter 6 6.3.4.14.2 Acm_AxGantryIn Format: U32 Acm_AxGantryIn (HAND AxisHandle, HAND MasAxisHandle, I16 RefMasterSrc, I16 Direction) Purpose: Command two axes to move e-gantry motion. Parameters: Name Type In or Out Description AxisHandle HAND IN Axis handle from Acm_AxOpen. MasAxisHandle HAND IN Axis handle from Acm_GpAddAxis. RefMasterSrc I16 IN The reference source: 0: Command position 1: Actual position (reserved) Direction I16 IN The direction with master axis. 0:same; 1:opposite Return Value: Error Code. Comments: The slave axis will move synchronously with mater axis. The relationship of master and slave can be terminated by calling the Acm_AxStopDec /Acm_AxStopEmg; the axis will return SteadBy status. There are some restrictions about gantry: 1. Can not set any command except Acm_AxStopDec / Acm_AxStopEmg to slave axis; 2. Slave axis can not be add in any group; 3. If the axis is already one axis in group, it can not be slave axis of ganry. If the command/actual position of master axis is reset, command/ actual position of slave axis is reset same value too. About the gantry operation, see about E-Gear/gantry flow chart in Chapter 6.2.2. PCI-1245/1265 User Manual 206 6.3.5 Group 6.3.5.1 SYSTEM 6.3.5.1.1 Acm_GpAddAxis Format: U32 Acm_GpAddAxis (PHAND GpHandle, HAND AxHandle) Purpose: Add an axis to the specified group. Parameters: Name Type In or Out Description GpHandle PHAND IN/OUT Point to group handle (NULL or not). AxHandle HAND Axis handle from Acm_AxOpen. IN Return Value: Error Code. Comments: If GpHandle points to NULL, driver will create a new group handle and add the axis to this new group. If GpHandle points to a valid group handle, driver will just add the axis to the group. At most, there are 2 groups in PCI-1245/1245E and 3 groups in PCI-1265. The same axis can not be added in different groups. The master axis in group is the minimal PhysicalID one. The parameters of group are initialized when the first axis is added. Such as, CFG_GpPPU, PAR_GpVelLow, PAR_GpVelHigh, PAR_GpAcc, PAR_GPDec and PAR_GpJerk. 207 Chapter 6 6.3.5.1.2 Acm_GpRemAxis Format: U32 Acm_GpRemAxis (HAND GpHandle, HAND AxHandle) Purpose: Remove an axis from the specified group. Parameters: Name Type In or Out Description GpHandle HAND IN Group handle from Acm_GpAddaxis. AxHandle HAND IN Axis handle from Acm_AxOpen. Return Value: Error Code. Comments: After Acm_GpRemAxis is called and no axis is in group, the GpHandle can still be used. You can use this group handle to add other axes. But if you have called Acm_GpClose to close this group handle, the group handle can't be used again. PCI-1245/1265 User Manual 208 6.3.5.1.3 Acm_GpClose Format: U32 Acm_GpClose (PHAND pGroupHandle) Purpose: Remove all axis in the group and close the group handle. Parameters: Name Type In or Out Description GpHandle PHAND IN Point to group handle to be closed Return Value: Error Code. Comments: If the group number is greater than maximal group number of device, new group can not be created. At the time, you must close one existing group if you want to create new group. 209 Chapter 6 6.3.5.1.4 Acm_GpResetError Format: U32 Acm_GpResetError (HAND GroupHandle) Purpose: Reset group states. Parameters: Name Type In or Out Description GpHandle HAND IN Group handle from Acm_GpAddAxis. Return Value: Error Code. Comments: If the group is in STA_GP_ERROR_STOP state, the state will be changed to STA_GP_READY after calling this function. PCI-1245/1265 User Manual 210 6.3.5.2 Motion Status 6.3.5.2.1 Acm_GpGetState Format: U32 Acm_GpGetState (HAND GroupHandle, PU16 pState) Purpose: Get the group's current state. Parameters: Name Type In or Out Description GpHandle HAND IN Group handle from Acm_GpAddAxis. OUT Group states: 0:STA_GP_DISABLE 1:STA_GP_READY 2:STA_GP_STOPPING 3:STA_GP_ERROR_STOP 4:STA_GP_MOTION 5:STA_GP_AX_MOTION(not support) 6:STA_GP_MOTION_PATH pState PU16 Return Value: Error Code. Comments: If an axis of group is implementing command of single-axis motion, the group’s state will be unchanged. 211 Chapter 6 6.3.5.3 MotionStop 6.3.5.3.1 Acm_GpStopDec Format: U32 Acm_GpStopDec (HAND GroupHandle) Purpose: Command axis in this group to decelerate to stop. Parameters: Name Type In or Out Description GpHandle HAND IN Group handle from Acm_GpAddAxis. Return Value: Error Code. Comments: None PCI-1245/1265 User Manual 212 6.3.5.3.2 Acm_GpStopEmg Format: U32 Acm_GpStopEmg( HAND GroupHandle) Purpose: Command axis in this group to stop immediately without deceleration. Parameters: Name Type In or Out Description GpHandle HAND IN Group handle from Acm_GpAddAxis. Return Value: Error Code. Comments: None 213 Chapter 6 6.3.5.4 Interpolation Motion 6.3.5.4.1 Acm_GpMoveLinearRel Format: U32 Acm_GpMoveLinearRel( HAND GroupHandle, PF64 DistanceArray, PU32 pArrayElements) Purpose: Command group to execute relative line interpolation. Parameters: Name Type GpHandle HAND IN Group handle from Acm_GpAddAxis. DistanceArray PF64 IN Distance array of axis in group, each value of array elements represent the axis relative position. IN/OUT Element count in the array(This count must equal to the axis count in this group, or else it will be returned axis count in group) pArrayElements PU32 In or Out Description Return Value: Error Code. Comments: The sequence of data in DistanceArray must follow the order of X axis, Y axis, Z axis, U axis. For example, if one group has two axes: Y axis and U axis. The first data in DistanceArray means Y axis' relative distance and the second data means U axis' relative distance. The unit of distance in DistanceArray is PPU of each axis in group. The difference between line interpolation and direct interpolation: line interpolation’s speed is divided into even line speed for every axis, axis moves at this even line speed. Mostly, line interpolation is applied to the axis assembled as right angle. But direct interpolation's line speed is set into master axis (The smallest Physical ID axis) and other axes in group start/stop as the same time as master axis. Mostly, direct interpolation is applied to the axis assembled as oblique-angle. At most, it just supports 3 axes linear interpolation in PCI-1245/ PCI-1265 and 2 axes linear interpolation in PCI-1245E. PCI-1245/1265 User Manual 214 6.3.5.4.2 Acm_GpMoveLinearAbs Format: U32 Acm_GpMoveLinearAbs (HAND GroupHandle, PF64 PositionArray, PU32 pArrayElements) Purpose: Command group to execute absolute line interpolation. Parameters: Name Type GpHandle HAND IN Group handle from Acm_GpAddAxis. PositionArray PF64 IN Position array of axis in group, each value of array elements represent the axis absolute position. IN/OUT Element count in the array(This count must equal to the axis count in this group, or else it will be returned axis count in group) pArrayElements PU32 In or Out Description Return Value: Error Code. Comments: The sequence of data in PositionArray must follow the order of X axis, Y axis, Z axis, U axis. For example, if one group has two axes: Y axis and U axis. The first data in PositionArray means Y axis' absolute position and the second data means U axis' absolute position. The unit of distance in PositionArray is PPU of each axis in group. The difference between line interpolation and direct interpolation: line interpolation’s speed is divided into even line speed for every axis, axis moves at this even line speed. Mostly, line interpolation is applied to the axis assembled as right angle. But direct interpolation's line speed is set into master axis (The smallest Physical ID axis) and other axes in group start/stop as the same time as master axis. Mostly, direct interpolation is applied to the axis assembled as oblique-angle. At most, it just supports 3 axes linear interpolation in PCI-1245/ PCI-1265 and 2 axes linear interpolation in PCI-1245E. 215 Chapter 6 6.3.5.4.3 Acm_GpMoveCircularRel Format: U32 Acm_GpMoveCircularRel (HAND GroupHandle, PF64 CenterArray, PF64 EndArray, PU32 pArrayElements, I16 Direction) Purpose: Command group to execute relative ARC interpolation. Parameters: Name Type In or Out Description GpHandle HAND IN Group handle from Acm_GpAddAxis. CenterArray PF64 IN Axis relative distance of center point. EndArray PF64 IN Axis relative distance of end point. pArrayElements PU32 IN/OUT Element count in the array (This count must equal to the axis count in this group, or else it will be returned axis count in group). Direction I16 IN Direction: 0: DIR_CW(clockwise) 1: DIR_CCW(counterclockwise) Return Value: Error Code. Comments: The sequence of data in CenterArray and EndArray must follow the order of X axis, Y axis, Z axis, U axis and so on. For example, if one group has Y axis and U axis, the first data in CenterArray means Y axis' center distance and the second data means U axis' center distance. The unit of distance in CenterArray and EndArray is PPU of each axis in group. At most, it just supports 2 axes arc interpolation in PCI-1245/ 1245E/1265. If the axis count in group is 3, user can chose two axes in group to move arc interpolation by PAR_GpRefPlane; the other axes has no respose. If axis count in group is greater than 3, it will be error. PCI-1245/1265 User Manual 216 6.3.5.4.4 Acm_GpMoveCircularAbs Format: U32 Acm_GpMoveCircularAbs (HAND GroupHandle, PF64 CenterArray, PF64 EndArray, PU32 pArrayElements, I16 Direction) Purpose: Command group to execute absolute ARC interpolation. Parameters: Name Type In or Out Description GpHandle HAND IN Group handle from Acm_GpAddAxis. CenterArray PF64 IN Absolute distance of center point. EndArray PF64 IN Absolute distance of end point. pArrayElements PU32 IN/OUT Element count in the array (This count must equal to the axis count in this group, or else it will be returned axis count in group). Direction I16 IN Direction: 0: DIR_CW(clockwise) 1: DIR_CCW(counterclockwise) Return Value: Error Code. Comments: The sequence of data in CenterArray and EndArray must follow the order of X axis, Y axis, Z axis, U axis. For example, if one group has Y axis and U axis, the first data in CenterArray means Y axis' center position and the second data means U axis' center position. The unit of distance in CenterArray and EndArray is PPU of each axis in group. At most, it just supports 2 axes arc interpolation in PCI-1245/ 1245E/1265. If the axis count in group is 3, user can chose two axes in group to move arc interpolation by PAR_GpRefPlane; the other axes has no respose. If axis count in group is greater than 3, it will be error. 217 Chapter 6 6.3.5.4.5 Acm_GpMoveCircularRel_3P Format: U32 Acm_GpMoveCircularRel_3P (HAND GroupHandle, PF64 RefArray, PF64 EndArray, PU32 pArrayElements, I16 Direction) Purpose: Command group to execute relative ARC interpolation by three specified points. Parameters: Name Type In or Out Description GpHandle HAND IN Group handle from Acm_GpAddAxis. RefArray PF64 IN Relative distance of reference point. EndArray PF64 IN Relative distance of end point. pArrayElements PU32 IN/OUT Element count in the array (This count must equal to the axis count in this group, or else it will be returned axis count in group). Direction I16 IN Direction: 0: DIR_CW(clockwise) 1: DIR_CCW (counterclockwise) Return Value: Error Code. Comments: The sequence of data in RefArray and EndArray must follow the order of X axis, Y axis, Z axis, U axis and so on. For example, if one group has Y axis and U axis, the first data in RefArray means Y axis' reference distance and the second data means U axis' reference distance. The unit of distance in RefArray and EndArray is PPU of each axis in group. At most, it just supports 2 axes arc interpolation in PCI-1245/ 1245E/1265. If the axis count in group is 3, user can chose two axes in group to move arc interpolation by PAR_GpRefPlane; the other axes has no respose. If axis count in group is greater than 3, it will be error. PCI-1245/1265 User Manual 218 6.3.5.4.6 Acm_GpMoveCircularAbs_3P Format: U32 Acm_GpMoveCircularAbs_3P (HAND GroupHandle, PF64 RefArray, PF64 EndArray, PU32 pArrayElements, I16 Direction) Purpose: Command group to execute absolute ARC interpolation by three specified points. Parameters: Name Type In or Out Description GpHandle HAND IN Group handle from Acm_GpAddAxis. RefArray PF64 IN Absolute position of reference point. EndArray PF64 IN Absolute position of end point. IN/OUT Element count in the array (This count must be equal to the axis count in this group, or else it will be returned axis count in group). pArrayElements PU32 Direction: Direction I16 IN 0: DIR_CW (clockwise) 1: DIR_CCW (counterclockwise) Return Value: Error Code. Comments: The sequence of data in RefArray and EndArray must follow the order of X axis, Y axis, Z axis, U axis and so on. For example, if one group has Y axis and U axis, the first data in RefArray means Y axis' reference position and the second data means U axis' reference position. The unit of distance in RefArray and EndArray is PPU of each axis in group. At most, it just supports 2 axes arc interpolation in PCI-1245/ 1245E/1265. If the axis count in group is 3, user can chose two axes in group to move arc interpolation by PAR_GpRefPlane; the other axes has no respose. If axis count in group is greater than 3, it will be error. 219 Chapter 6 6.3.5.4.7 Acm_GpMoveDirectAbs Format: U32 Acm_GpMoveDirectAbs (HAND GroupHandle, PF64 PositionArray, PU32 ArrayElements) Purpose: Command group to execute absolute direct line interpolation. Parameters: Name Type GpHandle HAND IN Group handle from Acm_GpAddAxis. PositionArray PF64 IN Distance array of axis in group, each value of array elements represent the axis absolute position. IN/OUT Element count in the array (This count must equal to the axis count in this group, or else it will be returned axis count in group). pArrayElements PU32 In or Out Description Return Value: Error Code. Comments: The sequence of data in PositionArray must follow the order of X axis, Y axis, Z axis, U axis and so on. For example, if one group has two axes: Y axis and U axis. The first data in PositionArray means Y axis' absolute position and the second data means U axis' absolute position. The unit of distance in PositionArray is PPU of each axis in group. The difference between line interpolation and direct interpolation: line interpolation’s speed is divided into even line speed for every axis, axis moves at this even line speed. Mostly, line interpolation is applied to the axis assembled as right angle. But direct interpolation's line speed is set into master axis (The smallest Physical ID axis) and other axes in group start/stop as the same time as master axis. Mostly, direct interpolation is applied to the axis assembled as oblique-angle. At most, it just supports 4 axes direct interpolation in PCI-1245, 2 axes in 1245E and 6 axes in PCI-1265. PCI-1245/1265 User Manual 220 6.3.5.4.8 Acm_GpMoveDirectRel Format: U32 Acm_GpMoveDirectRel (HAND GroupHandle, PF64 DistanceArray, PU32 ArrayElements) Purpose: Command group to execute relative direct line interpolation. Parameters: Name Type In or Out Description GpHandle HAND IN Group handle from Acm_GpAddAxis. DistanceArray PF64 IN Distance array of axis in group, each value of array elements represent the axis relative position. IN/OUT Element count in the array(This count must equal to the axis count in this group, or else it will be returned axis count in group) ArrayElements PU32 Return Value: Error Code. Comments: The sequence of data in DistanceArray must follow the order of X axis, Y axis, Z axis, U axis and so on. For example, if one group has two axes: Y axis and U axis. The first data in DistanceArray means Y axis' relative distance and the second data means U axis' relative distance. The unit of distance in DistanceArray is PPU of each axis in group. The difference between line interpolation and direct interpolation: line interpolation’s speed is divided into even line speed for every axis, axis moves at this even line speed. Mostly, line interpolation is applied to the axis assembled as right angle. But direct interpolation's line speed is set into master axis (The smallest Physical ID axis) and other axes in group start/stop as the same time as master axis. Mostly, direct interpolation is applied to the axis assembled as oblique-angle. At most, it just supports 4 axes direct interpolation in PCI-1245, 2 axes in 1245E and 6 axes in PCI-1265. 221 Chapter 6 6.3.5.4.9 Acm_GpChangeVel Format: U32 Acm_GpChangeVel (HAND GroupHandle, F64 NewVelocity) Purpose: Command group to change the velocity while group is in line-interpolation motion. Parameters: Name Type GpHandle HAND IN NewVelocity F64 In or Out Description IN Group handle from Acm_GpAddAxis. New velocity. (unit: PPU/s) Return Value: Error Code. Comments: None PCI-1245/1265 User Manual 222 6.3.5.4.10 Acm_GpMoveHelixAbs Format: U32 Acm_GpMoveHelixAbs (HAND GroupHandle, PF64 CenterArray, PF64 EndArray, PU32 pArrayElements, I16 Direction) Purpose: Command group to move absolute spiral. Parameters: Name Type In or Out Description GpHandle HAND IN Group handle from Acm_GpAddAxis. CenterArray PF64 IN Absolute distance of center point. EndArray PF64 IN Absolute distance of end point. pArrayElements PU32 IN/OUT Element count in the array (This count must be equal to the axis count in this group, or else it will be returned axis count in group). Direction I16 IN Direction: 0: DIR_CW (clockwise) 1: DIR_CCW (counterclockwise) Return Value: Error Code. Comments: This command just supports 3 axes. The elments in CenterArray and EndArray must be in order with PhysicalID of axis. User can chose two axes in group to move arc interpolation by property PAR_GpRefPlane; the other axes decides the height of helix. The unit of distance in CenterArray and EndArray is PPU of each axis in group. 223 Chapter 6 For example: Group(Y, Z, U), CenterArray(Y, Z, U), EndArray(Y, Z, U). If PAR_GpRefPlane =1(YZ_Plane), Z axis and U axis will move arc interpolation, and Y value in EndArray is the height of helix. The figure of helix is as follow. PCI-1245/1265 User Manual 224 6.3.5.4.11 Acm_GpMoveHelixRel Format: U32 Acm_GpMoveHelixRel (HAND GroupHandle, PF64 CenterArray, PF64 EndArray, PU32 pArrayElements, I16 Direction) Purpose: Command group to move relative spiral. Parameters: Name Type In or Out Description GpHandle HAND IN Group handle from Acm_GpAddAxis. CenterArray PF64 IN Relative distance of center point. EndArray PF64 IN Relative distance of end point. pArrayElements PU32 IN/OUT Element count in the array (This count must equal to the axis count in this group, or else it will be returned axis count in group). Direction IN Direction: 0: DIR_CW (clockwise) 1: DIR_CCW (counterclockwise) I16 Return Value: Error Code. Comments: See about Acm_GpMoveHelixAbs. 225 Chapter 6 6.3.5.4.12 Acm_GpMoveHelixAbs_3P Format: U32 Acm_GpMoveHelixAbs_3P (HAND GroupHandle, PF64 RefArray, PF64 EndArray, PU32 pArrayElements, I16 Direction) Purpose: Command group to move absolute spiral by three specified points. Parameters: Name Type In or Out Description GpHandle HAND IN Group handle from Acm_GpAddAxis. RefArray PF64 IN Absolute distance of reference point. EndArray PF64 IN Absolute distance of end point. pArrayElements PU32 IN/OUT Element count in the array (This count must equal to the axis count in this group, or else it will be returned axis count in group). Direction I16 IN Direction: 0: DIR_CW (clockwise) 1: DIR_CCW (counterclockwise) Return Value: Error Code. Comments: There must be 3 axes in group. Command helix motion by assigning three points.The orders of valus in parameter RefArray, CenterArray and EndArray must follow the order of axis PhysicalID. The unit of distance in RefArray and EndArray is PPU of each axis in group. User can chose two axes in group to move arc interpolation by PAR_GpRefPlane. For example: Group(Y, Z, U), RefArray(Y, Z, U), CenterArray(Y, Z, U), EndArray(Y, Z, U), PAR_GpRefPlane =1(YZ_Plane). Z axis and U axis will move arc interpolation, and Y value in EndArray is the height of helix. PCI-1245/1265 User Manual 226 6.3.5.4.13 Acm_GpMoveHelixRel_3P Format: U32 Acm_GpMoveHelixRel_3P (HAND GroupHandle, PF64 RefArray, PF64 EndArray, PU32 pArrayElements, I16 Direction) Purpose: Command group to move relative spiral by three specified points. Parameters: Name Type GpHandle HAND IN Group handle from Acm_GpAddAxis. RefArray PF64 IN Relative distance of reference point. EndArray PF64 IN Relative distance of end point. pArrayElements PU32 IN/OUT Element count in the array (This count must equal to the axis count in this group, or else it will be returned axis count in group). Direction IN Direction: 0: DIR_CW(clockwise) 1: DIR_CCW (counterclockwise) I16 In or Out Description Return Value: Error Code. Comments: See about Acm_GpMoveHelixAbs_3P. 227 Chapter 6 6.3.5.5 Path 6.3.5.5.1 Acm_GpAddPath Format: U32 Acm_GpAddPath (HAND GroupHandle, U16 MoveCmd, U16 MoveMode, F64 FH, F64 FL, PF64 EndPoint_DataArray, PF64 CenPoint_DataArray, PU32 ArrayElements) Purpose: Add an interpolation path to system path buffer. Parameters: Name Type GpHandle HAND IN PCI-1245/1265 User Manual In or Out Description 228 Group handle from Acm_GpAddAxis. MoveCmd U16 IN Move command: 0:EndPath 1: Abs2DLine; 2: Rel2DLine; 3: Abs2DArcCW; 4: Abs2DArcCCW; 5: Rel2DArcCW; 6: Rel2DArcCCW; 7: Abs3DLine; 8: Rel3DLine; 9: Abs4DLine;(not support) 10: Rel4DLine; (not support) 11: Abs2DDirect; 12: Rel2DDirect; 13: Abs3DDirect; 14: Rel3DDirect; 15: Abs4DDirect; 16: Rel4DDirect; 17: Abs5DDirect; 18: Rel5DDirect; 19: Abs6DDirect; 20: Rel6DDirect; 21: Abs3DArcCW; (not support) 22: Rel3DArcCW; (not support) 23: Abs3DArcCCW; (not support) 24: Rel3DArcCCW;(not support) 25: Abs3DHelixCW 26: Rel3DHelixCW 27: Abs3DHelixCCW 28: Rel3DHelixCCW 29: GPDELAY (uint:ms) MoveMode U16 IN Move mode: 0: No blending 1: Blending FH F64 IN High velocity / delay time for GPDELAY move command. (driving velocity) (Unit:PPU/s of group) FL F64 IN Low velocity (start velocity) (Unit:PPU/s of group) 229 Chapter 6 EndPoint_DataArray PF64 IN End points (Unit: PPU of each axis) CenPoint_DataArray PF64 IN Center points (Unit: PPU of each axis) IN/OUT Number of array element can not be less than axis count in group, or else it will be returned axis count in group. ArrayElements PU32 Return Value: Error Code. Comments: The group handle of every path in system buffer must be the same. So, if there are some unexecuted paths in system buffer and you want to add new path into it by call Acm_GpAddPath, the parameter GroupHandle must be the same with the first unexecuted path's group handle. The current status of system path buffer can be got by call Acm_GpGetPathStatus. Path data in buffer will be loaded to hardware execution registers sequentially after calling Acm_GpMovePath. The absolute commands and relative commands can not be mixed in system path buffer except EndPath and GPDELAY, or else the error will be returned. The ArrayElements parameter which is element count in EndPoint_DataArray parameter and CenPoint_DataArray can not be less than axis count in group. All of paths needed axis count according to motion command is not greater than axis count of group can be loaded in same system buffer. eg: axis count in group is 4, then the paths with Rel2DLine, Rel3DLine, 4DDirect and so on can be loaded into device. If the axis count in group is greater than needed axis count in path, the foregoing axis in group will be chosen to move; Especially for Abs2DArcCW, Abs2DArcCCW, Rel2DArcCW and Rel2DArcCCW, user can chose two axes in three foregoing axes in group by Par_GpRefPlane to move. At the last, the EndPath command must be add in path buffer. PCI-1245/1265 User Manual 230 At most, there are 10000 paths in group. User can enable/disable speed-forward function by CFG_GpSFEnable and set blending time by CFG_GpBldTime before calling Acm_GpAddPath. GPDELAY: Delay command. The group will delay some time to move next path. User can set time by FH. The path with this command cannot be added when speed-forward function is enabled by CFG_GpSFEnable. The unit of delay time is ms. MoveMode: Blending Mode and Non-Blending Mode. CFG_GpSFEnable should be disabled in Non-Blending mode. There will be three mode according to the setting of MoveMode and CFG_GpBldTime, they are: BufferMode, BlendingMode, FlyMode. 1. BufferMode: When the MoveMode is Non-Blending. At this mode, each path has the whole process of accelerating and decelerating. In this mode, the Speed Foward function can not be supported, so CFG_GpSFEnable should be disabled. 231 Chapter 6 2. BlendingMode: When MoveMode is Blending and the value of CFG_GpBldTime is greater than zero. These mode doses not support S profile acceleration. When speed forward function is enabled by CFG_SFEnable, the parameter FL and FH is useless because all of speed parameters used in path motion are of group speed setting, all of path have the same driving speed. For example, CFG_SFEnable = Disable, BlendingTime>0. The speed curves are as follows: PCI-1245/1265 User Manual 232 The path is as follow: 3. FlyMode: When MoveMode is Blending and the value of CFG_GpBldTime is 0. When speed forward function is enabled by CFG_SFEnable, the parameter FL and FH is useless because all of speed parameters used in path motion are of group speed setting, all of path have the same driving speed. The speed curve: 233 Chapter 6 The motion path: PCI-1245/1265 User Manual 234 6.3.5.5.2 Acm_GpResetPath Format: U32 Acm_GpResetPath (PHAND GroupHandle) Purpose: Clear system path buffer. If there is group executing path, the path motion will be stopped. Parameters: Name Type In or Out Description GpHandle PHAND IN Pointer to group handle from Acm_GpAddAxis. Return Value: Error Code. Comments: None 235 Chapter 6 6.3.5.5.3 Acm_GpLoadPath Format: U32 Acm_GpLoadPath(HAND GroupHandle, PI8 FilePath, PHAND PathHandle, PU32 pTotalCount) Purpose: Load path data from path file. It can load up to 600 path data one time. Parameters: Name Type In or Out Description GpHandle HAND IN Group handle from Acm_GpAddAxis. FilePath PI8 IN Point to a file path name of the motion path data to be loaded. PathHandle PHAND OUT Return the pointer to path handle pTotalCount PU32 Return actual total count of path data in the path file OUT Return Value: Error Code. Comments: The path data file (binary) is usually generated by Motion Utility's [Path Editor]. If you are familiar with Advantech motion product, you can create file by yourself. The PathHandle must be unloaded by Acm_GpUnloadPath when the PathHandle does not be used any more or application is closing, and the paths contained in PathHandle are deleted from driver at the same time. PCI-1245/1265 User Manual 236 6.3.5.5.4 Acm_GpUnloadPath Format: U32 Acm_GpUnloadPath (HAND GroupHandle, PHAND PathHandle) Purpose: Unload path data. Parameter: Name Type In or Out Description GpHandle HAND IN PathHandle PHAND IN Group handle from Acm_GpAddAxis. Pointer to path handle from Acm_GpLoadPath. Return Value: Error Code. Comments: None 237 Chapter 6 6.3.5.5.5 Acm_GpMovePath Format: U32 Acm_GpMovePath (HAND GroupHandle, HAND PathHandle) Purpose: Start continuous interpolation motion (Path). Parameters: Name Type In or Out Description GpHandle HAND IN Group handle from Acm_GpAddAxis. IN Pointer to path handle from Acm_GpLoadPath. PathHandle PHAND Return Value: Error Code. Comments: If the PathHandle is returned by Acm_GpLoadPath, the path data will be passed to system path buffer first, then driver start path motion. If the PathHandle is NULL, the path data in system path buffer will be executed directly. PCI-1245/1265 User Manual 238 6.3.5.5.6 Acm_GpGetPathStatus Format: U32 Acm_GpGetPathStatus (HAND GroupHandle, PU32 pCurIndex, PU32 pCurCmdFunc, PU32 pRemainCount, PU32 pFreeSpaceCount) Purpose: Get current status of path buffer. Parameters: Name Type In or Out Description GpHandle HAND IN Group handle from Acm_GpAddAxis. pCurIndex PU32 Return current index of path data in path buffer OUT 239 Chapter 6 pCurCmdFunc PU32 OUT Return current command function in executing. 0:EndPath 1: Abs2DLine; 2: Rel2DLine; 3: Abs2DArcCW; 4: Abs2DArcCCW; 5: Rel2DArcCW; 6: Rel2DArcCCW; 7: Abs3DLine; 8: Rel3DLine; 9: Abs4DLine;(not support) 10: Rel4DLine; (not support) 11: Abs2DDirect; 12: Rel2DDirect; 13: Abs3DDirect; 14: Rel3DDirect; 15: Abs4DDirect; 16: Rel4DDirect; 17: Abs5DDirect; 18: Rel5DDirect; 19: Abs6DDirect; 20: Rel6DDirect; 21: Abs3DArcCW; (not support) 22: Rel3DArcCW; (not support) 23: Abs3DArcCCW; (not support) 24: Rel3DArcCCW;(not support) 25: Abs3DHelixCW 26: Rel3DHelixCW 27: Abs3DHelixCCW 28: Rel3DHelixCCW 29: GPDELAY (uint:ms) pRemainCount PU32 OUT Return number of unexecuted path data in path. pFreeSpaceCount PU32 OUT Return number of free space in path buffer. Return Value: Error Code. Comments: You must input the GroupHandle, and then get path status of this group. PCI-1245/1265 User Manual 240 6.3.5.5.7 Acm_GpMoveSelPath Format: U32 Acm_GpMoveSelPath (HANDGroupHandle, HAND PathHanle, U32 StartIndex, U32EndIndex, U8Repeat) Purpose: Move path segment in system path buffer from start index and end index. Parameters: Name Type In or Out Description GpHandle HAND IN Group handle from Acm_GpAddAxis. PathHandle HAND IN Pointer to path handle from Acm_GpLoadPath. StartIndex U32 IN Start Index.(0~9999) EndIndex U32 IN End Index.(0~9999) Repeat U8 IN Repeat count. (0~255) Return Value: Error Code. Comments: Command to move paths which index is between StartIndex and EndIndex. If PathHandle is null, it will move specified paths in system path buffer; If PathHandle is not null, the paths in PathHandle will be loaded in system path buffer firstly, then move specified paths. If the value of Repeat is zero, the specified paths will be executed continuosly and repeatly until stoping group motion. If value of EndIndex is greater than path count in system path buffer, it will move paths between StartIndex path and last index path in system path buffer. 241 Chapter 6 6.3.5.5.8 Acm_GpGetPathIndexStatus Format: Acm_GpGetPathIndexStatus (HAND GroupHandle, U32 Index, PU16 CmdFunc, PU16 MoveMode, PF64 FH, PF64 FL, F64 EndPoint_DataArray, PF64 CenPoint_DataArray, PU32 ArrayElements) Purpose: Get the status of specified index path in system path buffer. Parameters: Name Type In or Out Description GpHandle HAND IN Group handle from Acm_GpAdAxis. Index U32 IN Index of path. PCI-1245/1265 User Manual 242 CmdFunc PU16 OUT Return current command function in executing. 0:EndPath 1: Abs2DLine; 2: Rel2DLine; 3: Abs2DArcCW; 4: Abs2DArcCCW; 5: Rel2DArcCW; 6: Rel2DArcCCW; 7: Abs3DLine; 8: Rel3DLine; 9: Abs4DLine;(not support) 10: Rel4DLine; (not support) 11: Abs2DDirect; 12: Rel2DDirect; 13: Abs3DDirect; 14: Rel3DDirect; 15: Abs4DDirect; 16: Rel4DDirect; 17: Abs5DDirect; 18: Rel5DDirect; 19: Abs6DDirect; 20: Rel6DDirect; 21: Abs3DArcCW; (not support) 22: Rel3DArcCW; (not support) 23: Abs3DArcCCW; (not support) 24: Rel3DArcCCW;(not support) 25: Abs3DHelixCW 26: Rel3DHelixCW 27: Abs3DHelixCCW 28: Rel3DHelixCCW 29: GPDELAY (uint:ms) MoveMode PU16 OUT Move mode: 0: No blending 1: Blending FH PF64 OUT Unit: PPU of master Axis(the minimal PhysicalID Axis) FL PF64 OUT Unit: PPU of master Axis(the minimal PhysicalID Axis) 243 Chapter 6 EndPoint_DataArray, PF64 OUT Unit: PPU of master Axis(the minimal PhysicalID Axis) CenPoint_DataArray PF64 OUT Unit: PPU of master Axis(the minimal PhysicalID Axis) ArrayElements PU32 IN/OUT Return axis count Return Value: Error Code. Comments: If you want to know the setting of a path, you can call this API. PCI-1245/1265 User Manual 244 6.4 Property List 6.4.1 Device 6.4.1.1 Feature 6.4.1.1.1 FT_DevIpoTypeMap Data Type: U32 R/W: R PropertyID: 0 Meaning: Get device supported interpolation types.1: support, 0: Not support Bits Description 0 Line interpolation, 2 axes 1 Line interpolation, 3 axes 2 Line interpolation, 4 axes 3 Line interpolation, 5 axes 4 Line interpolation, 6 axes 5~7 Not defined. 8 Arc interpolation, 2 axes 9 Arc interpolation, 3 axes 10 Spiral. 11~15 Not defined. 16 Synchronous electronic gear 17 Synchronous electronic cam 18 Synchronous gantry 19 Synchronous tangent 20~23 Not defined. 24 Select path. 25~31 Not defined. Comments: None 245 Chapter 6 6.4.1.1.2 FT_DevAxisCount Data Type: U32 R/W: R PropertyID: 1 Meaning: Get axis number of this device. Comments: None PCI-1245/1265 User Manual 246 6.4.1.1.3 FT_DevFunctionMap Data Type: U32 R/W: R PropertyID: 2 Meaning: Get device supported functions.1: support, 0: Not support. Bits Description 0 Motion 1 DI 2 DO 3 AI 4 AO 5 Timer 6 Counter 7 DAQ DI 8 DAQ DO 9 DAQ AI(1245/1245E not support) 10 DAQ AO (1245/1245E not support) 11~31 Not defined Comments: None 247 Chapter 6 6.4.1.1.4 FT_DevOverflowCntr Data Type: U32 R/W: R PropertyID: 3 Meaning: Get max value of position counter. Comments: In PCI-1245/1245E/1265, the value is 2147483647. PCI-1245/1265 User Manual 248 6.4.1.2 Configuration 6.4.1.2.1 CFG_DevBoardID Data Type: U32 R/W: R PropertyID: 201 Meaning: Get Device ID. For PCI-1245/1245E/1265, this property value will be 0~15. Comments: None 249 Chapter 6 6.4.1.2.2 CFG_DevBaseAddress Data Type: U32 R/W: R PropertyID: 203 Meaning: Return IO base address. Comments: None PCI-1245/1265 User Manual 250 6.4.1.2.3 CFG_DevInterrupt Data Type: U32 R/W: R PropertyID: 204 Meaning: Get Device interrupt number. Comments: None 251 Chapter 6 6.4.1.2.4 CFG_DevBusNumber Data Type: U32 R/W: R PropertyID: 205 Meaning: Get device bus number. Comments: None PCI-1245/1265 User Manual 252 6.4.1.2.5 CFG_DevSlotNumber Data Type: U32 R/W: R PropertyID: 206 Meaning: Get device slot number. Comments: None 253 Chapter 6 6.4.1.2.6 CFG_DevDriverVersion Data Type: char* R/W: R PropertyID: 207 Meaning: Get SYS driver's version. The format is: 1.0.0.1 Comments: None PCI-1245/1265 User Manual 254 6.4.1.2.7 CFG_DevDllVersion Data Type: char* R/W: R PropertyID: 208 Meaning: Get DLL driver's version. The format is: 1.0.0.1. Comments: None 255 Chapter 6 6.4.1.2.8 CFG_DevFwVersion Data Type: char* R/W: R PropertyID: 208 Meaning: Get the firm version, the format is: 1.0.0.1. Comments: None PCI-1245/1265 User Manual 256 6.4.1.2.9 CFG_DevCPLDVersion Data Type: char* R/W: R PropertyID: 218 Meaning: Get the CPLD version of device, the format is: 1.0.0.1. Comments: None 257 Chapter 6 6.4.2 DAQ 6.4.2.1 Feature 6.4.2.1.1 FT_DaqDiMaxChan Data Type: U32 R/W: R PropertyID: 50 Meaning: Get maximum number of DI channels. Comments: In PCI-1265, the value is 8. PCI-1245/1265 User Manual 258 6.4.2.1.2 FT_DaqDoMaxChan Data Type: U32 R/W: R PropertyID: 51 Meaning: Get maximum number of DO channels. Comments: In PCI-1265, the value is 8. 259 Chapter 6 6.4.2.1.3 FT_DaqAiRangeMap Data Type: U32 R/W: R PropertyID: 52 Meaning: Get the supported AI range. 1: support, 0: not support. Bits Description 0 +/- 10V 1 +/- 5V 2 +/- 2.5V 3 +/- 1.25V 4 +/- 0.625 5~15 Not defined. 16 0~20mA 17~31 Not defined. Comments: None PCI-1245/1265 User Manual 260 6.4.2.1.4 FT_DaqAiMaxSingleChan Data Type: U32 R/W: R PropertyID: 54 Meaning: Get the Maximum Single-Ended AI channel number of the device. Comments: In PCI-1265, the value is 2. 261 Chapter 6 6.4.2.1.5 FT_DaqAiMaxDiffChan Data Type: U32 R/W: R PropertyID: 55 Meaning: Get the Maximum Differential AI channel number of the device. Comments: In PCI-1265, the value is 2. PCI-1245/1265 User Manual 262 6.4.2.1.6 FT_DaqAiResolution Data Type: U32 R/W: R PropertyID: 56 Meaning: Get the AI resolution in bit of the device. Comments: In PCI-1265, the value is 0. 263 Chapter 6 6.4.2.2 Configuration 6.4.2.2.1 CFG_DaqAiChanType Data Type: U32 R/W: R/W PropertyID: 251 Meaning: 0: Single ended 1: Differential Bits Description 0 Channel 0 1 Channel1 2 Channel2 3 Channel3 4 Channel4 5 Channel5 ... ... 31 Channel31 Comments: None PCI-1245/1265 User Manual 264 6.4.2.2.2 CFG_DaqAiRanges Data Type: U32 R/W: R/W PropertyID: 252 Meaning: See FT_DaqAiRangeMap. Comments: None 265 Chapter 6 6.4.3 Axis 6.4.3.1 Feature 6.4.3.1.1 System 6.4.3.1.1.1 FT_AxFunctionMap Data Type: U32 R/W: R PropertyID: 301 Meaning: Get the axis supported function. 1: support, 0: not support Bits Description 0 In position. 1 Alarm 2 Clear the deflection counter in the servo driver. 3 Slow down 4 Hardware limit switch 5 Software limit switch 6 Home sensor 7 Encode Z phase sensor 8 Backlash corrective. 9 Suppress vibration. 10 Home 11 Impose 12 Compare 13 Latch 14 CAMDO 15 Ext-Drive 16 Simultaneous start/stop 17~31 Not defined. Comments: None PCI-1245/1265 User Manual 266 6.4.3.1.2 Speed Pattern 6.4.3.1.2.1 FT_AxMaxVel Data Type: F64 R/W: R PropertyID: 302 Meaning: Get axis supported max velocity. (Unit: Pulse/s) Comments: In PCI-1245/1245E/1265, the value is 4,000,000. 267 Chapter 6 6.4.3.1.2.2 FT_AxMaxAcc Data Type: F64 R/W: R PropertyID: 303 Meaning: Get axis supported max acceleration. (Unit: Pulse/s2) Comments: In PCI-1245/1245E/1265, the value is 500,000,000. PCI-1245/1265 User Manual 268 6.4.3.1.2.3 FT_AxMaxDec Data Type: F64 R/W: R PropertyID: 304 Meaning: Get axis supported max deceleration (Unit: Pulse/s2) Comments: In PCI-1245/1245E/1265, the value is 500,000,000. 269 Chapter 6 6.4.3.1.2.4 FT_AxMaxJerk Data Type: F64 R/W: R PropertyID: 305 Meaning: Get axis supported max jerk. (Unit: Pulse/S3) Comments: In PCI-1245/1245E/1265, the value is 1. PCI-1245/1265 User Manual 270 6.4.3.1.3 Pulse In 6.4.3.1.3.1 FT_AxPulseInMap Data Type: U32 R/W: R PropertyID: 306 Meaning: Get the pulse input features supported by this motion device. Bits Description 0 Mode 1 Logic 2 Source 3~31 Not defined. Comments: None 271 Chapter 6 6.4.3.1.3.2 FT_AxPulseInModeMap Data Type: U32 R/W: R PropertyID: 307 Meaning: Get axis supported pulse input mode. Bits Description 0 1X A/B 1 2X A/B 2 4X A/B 3 CW/CCW 4~31 Not defined. Comments: None PCI-1245/1265 User Manual 272 6.4.3.1.4 Pulse Out 6.4.3.1.4.1 FT_AxPulseOutMap Data Type: U32 R/W: R PropertyID: 308 Meaning: Get the pulse output features supported by this motion device. Bits Description 0 Mode 1~31 Not defined. Comments: In PCI-1245/1245E/1265, the value is 1. 273 Chapter 6 6.4.3.1.4.2 FT_AxPulseOutModeMap Data Type: U32 R/W: R PropertyID: 309 Meaning: Get pulse output modes supported by this motion device. Bits Description 0 OUT/DIR 1 OUT/DIR, OUT negative logic 2 OUT/DIR, DIR negative logic 3 OUT/DIR, OUT&DIR negative logic 4 CW/CCW 5 CW/CCW, CW&CCW negative logic 6 A/B Phase 7 B/A Phase 8 CW/CCW, OUT negative logic.(Not support) 9 CW/CCW, DIR negative logic.(Not support) 10~31 Not defined. PCI-1245/1265 User Manual 274 Comments: Bits Description 0 OUT/DIR 1 OUT/DIR, OUT negative logic 2 OUT/DIR, DIR negative logic 3 OUT/DIR, OUT&DIR negative logic 4 CW/CCW 5 CW/CCW, CW&CCW negative logic 6 A/B Phase 7 B/A Phase Positive direction Negative direction OUT output OUT output 275 DIR output DIR output Chapter 6 6.4.3.1.5 Alarm 6.4.3.1.5.1 FT_AxAlmMap Data Type: U32 R/W: R PropertyID: 310 Meaning: Get the alarm features supported by this motion axis. Bits Description 0 Enabled 1 Logic 2 React 3~31 Not defined. Comments: None PCI-1245/1265 User Manual 276 6.4.3.1.6 In Position 6.4.3.1.6.1 FT_AxInpMap Data Type: U32 R/W: R PropertyID: 311 Meaning: Get the In-Position features supported by this motion axis. Bits Description 0 Mode 1 Logic 2~31 Not defined. Comments: None 277 Chapter 6 6.4.3.1.7 ERC 6.4.3.1.7.1 FT_AxErcMap Data Type: U32 R/W: R PropertyID: 312 Meaning: Get the ERC features supported by this motion axis. Bits Description 0 Enable mode 1 Logic 2 On time(not support) 3 Off time(not support) 4~31 Not defined. Comments: None PCI-1245/1265 User Manual 278 6.4.3.1.7.2 FT_AxErcEnableModeMap Data Type: U32 R/W: R PropertyID: 313 Meaning: Get axis supported ERC mode. Bits Description 0 ERC Output when home finish 1 ERC Output when EMG/ALM/EL active 2 ERC Output when home finish or EMG/ALM/EL active 3~31 Not defined. Comments: None 279 Chapter 6 6.4.3.1.8 SD 6.4.3.1.8.1 FT_AxSdMap Data Type: U32 R/W: R PropertyID: 316 Meaning: Get the Slow-Down (SD) features supported by this motion axis. Bits Description 0 Enabled 1 Logic 2 React 3~31 Not defined. Comments: In this PCI-1245/1245E/1265, the value is 0. PCI-1245/1265 User Manual 280 6.4.3.1.9 Hardware Limit 6.4.3.1.9.1 FT_AxElMap Data Type: U32 R/W: R PropertyID: 317 Meaning: Get the hardware end limit (EL) features supported by this motion axis. Bits Description 0 Enabled 1 Logic 2 React 3~31 Not defined. Comments: None 281 Chapter 6 6.4.3.1.10 Software Limit 6.4.3.1.10.1 FT_AxSwMelMap Data Type: U32 R/W: R PropertyID: 318 Meaning: Get the software minus limit features supported by the motion axis. Bits Description 0 Enabled 1 React 2 Value 3~31 Not defined. Comments: None PCI-1245/1265 User Manual 282 6.4.3.1.10.2 FT_AxSwPelMap Data Type: U32 R/W: R PropertyID: 319 Meaning: Get the software plus limit features supported by the motion axis. Bits Description 0 Enabled 1 React 2 Value 3~31 Not defined. Comments: None 283 Chapter 6 6.4.3.1.11 Home 6.4.3.1.11.1 FT_AxHomeMap Data Type: U32 R/W: R PropertyID: 320 Meaning: Get the home features supported by this motion axis. Bits Description 0 Home mode 1 ORG logic 2 EZ logic 3 Reset Enable 4~31 Not defined. Comments: None PCI-1245/1265 User Manual 284 6.4.3.1.12 Backlash 6.4.3.1.12.1 FT_AxBackLashMap Data Type: U32 R/W: R PropertyID: 321 Meaning: Get the backlash feature supported by this motion axis. Bits Description 0 Enabled 1 Value 2~31 Not defined. Comments: None 285 Chapter 6 6.4.3.1.13 Vibration 6.4.3.1.13.1 FT_AxVibrationMap Data Type: U32 R/W: R PropertyID: 322 Meaning: Get the vibration feature supported by this motion axis. Bits Description 0 Enabled 1 Forward Value 2 Reverse Value 3~31 Not defined. Comments: In this PCI-1245/1245E/1265, the value is 0. PCI-1245/1265 User Manual 286 6.4.3.1.14 Compare 6.4.3.1.14.1 FT_AxCompareMap Data Type: U32 R/W: R PropertyID: 324 Meaning: Get axis supported compare features. Bits Description 0 Enabled 1 Logic 2 CmpSrc 3 CmpMethod 4 CmpPulseMode 5 CmpPulseWidth 6~31 Not defined. Comments: None 287 Chapter 6 6.4.3.1.15 Latch 6.4.3.1.15.1 FT_AxLatchMap Data Type: U32 R/W: R PropertyID: 325 Meaning: Get axis supported latch features. Bits Description 0 Enabled 1 Logic 2~31 Not defined. Comments: None PCI-1245/1265 User Manual 288 6.4.3.1.16 Cam DO 6.4.3.1.16.1 FT_AxCamDOMap Data Type: U32 R/W: R PropertyID: 326 Meaning: Get axis supported CamDO features. Bits Description 0 Enabled 1 CamDOLogic 2 CamDOCmpSrc 3 CamDOLoLimit 4 CamDOHiLimit 5 CamDOMode 6 CamDODir 7~31 Not defined. Comments: None 289 Chapter 6 6.4.3.1.17 Ext-Drive 6.4.3.1.17.1 FT_AxExtDriveMap Data Type: U32 R/W: R PropertyID: 327 Meaning: Get axis supported external drive features. Bits Description 0 ExtMasterSrc 1 ExtSelEnable 2 ExtPulseNum 3 ExtPulseMode 4 ExtPresetNum 5~31 Not defined. Comments: None PCI-1245/1265 User Manual 290 6.4.3.1.17.2 FT_AxExtMasterSrcMap Data Type: U32 R/W: R PropertyID: 328 Meaning: Get axis supported external drive master source. Bits Description 0 axis 0 1 axis 1 2 axis 2 3 axis 3 4~31 Not defined. Comments: None 291 Chapter 6 6.4.3.1.18 Aux/Gen DIO 6.4.3.1.18.1 FT_AxGenDOMap Data Type: U32 R/W: R PropertyID: 329 Meaning: Get axis supported general output from OUT4 to OUT7. Bits Description 0 OUT4/CAM_DO 1 OUT5/TRIG_Position 2 OUT6/SVON 3 OUT7/ERC 4~31 Not defined. Comments: None PCI-1245/1265 User Manual 292 6.4.3.1.18.2 FT_AxGenDIMap Data Type: U32 R/W: R PropertyID: 330 Meaning: Get axis supported general input from IN1 to IN4. Bits Description 0 IN1/LTC 1 IN2/RDY 2 IN3/JOG+ 3 IN4/JOG- 4~31 Not defined. Comments: None 293 Chapter 6 6.4.3.1.19 Simultaneity 6.4.3.1.19.1 FT_AxSimStartSourceMap Data Type: U32 R/W: R PropertyID: 331 Meaning: The Mode of simultaneous starting that axis supported. Bits Description 0 Start Simultaneous Starting on signal from STA Pin on device. (Default) 1~7 Not defined. 8 Start Simultaneous Starting with axis_0’s compare signal. 9 Start Simultaneous Starting with axis_1’s compare signal 10 Start Simultaneous Starting with axis_2’s compare signal 11 Start Simultaneous Starting with axis_3’s compare signal 12 Start Simultaneous Starting with axis_4’s compare signal 13 Start Simultaneous Starting with axis_5’s compare signal 14~15 Not defined. 16 Start Simultaneous Starting when axis_0 is stopped. 17 Start Simultaneous Starting when axis_1 is stopped. 18 Start Simultaneous Starting when axis_2 is stopped. 19 Start Simultaneous Starting when axis_3 is stopped. 20 Start Simultaneous Starting when axis_4 is stopped. 21 Start Simultaneous Starting when axis_5 is stopped. 22~31 Not defined. Comments: Get axis supported simultaneous starting mode. See about CFG_AxSimStartSource . PCI-1245/1265 User Manual 294 6.4.3.2 Config 6.4.3.2.1 System 6.4.3.2.1.1 CFG_AxPPU Data Type: U32 R/W: RW PropertyID: 551 Meaning: Pulse per unit (PPU), a virtual unit. This property value must be greater than 0. This property value's change will affect CFG_AxMaxVel, CFG_AxMaxAcc, CFG_AxMaxDec, PAR_AxVelHigh, PAR_AxVelLow, PAR_AxAcc, PAR_AxDec, PAR_GpVelHigh, PAR_GpVelLow, PAR_GpAcc, PAR_GpDec,PAR_HomeCrossDistance. Comments: The default value is 1. 295 Chapter 6 6.4.3.2.1.2 CFG_AxPhyID Data Type: U32 R/W: R PropertyID: 552 Meaning: Get physical ID of the axis. Value Meaning 0 0-axis 1 1-axis 2 2-axis 3 3-axis 4 4-axis 5 5-axis Comments: None PCI-1245/1265 User Manual 296 6.4.3.2.2 Speed Pattern 6.4.3.2.2.1 CFG_AxMaxVel Data Type: F64 R/W: RW PropertyID: 553 Meaning: Configure the max velocity for the motion axis (Unit: PPU/s). Comments: This property’s max value= FT_AxMaxVel / CFG_AxPPU and min value = 1/ CFG_AxPPU. In PCI-1245/1245E/1265, the default value is 4,000,000. 297 Chapter 6 6.4.3.2.2.2 CFG_AxMaxAcc Data Type: F64 R/W: RW PropertyID: 554 Meaning: Configure the max acceleration for the motion axis (Unit: PPU/S2). Comments: This property’s max value= FT_AxMaxAcc / CFG_AxPPU and min value = 1/ CFG_AxPPU. In PCI-1245/1245E/1265, the default value is 500,000,000. PCI-1245/1265 User Manual 298 6.4.3.2.2.3 CFG_AxMaxDec Data Type: F64 R/W: RW PropertyID: 555 Meaning: Configure the max deceleration for the motion axis (Unit: PPU/S2). Comments: This property’s max value= FT_AxMaxDec / CFG_AxPPU and min value = 1/ CFG_AxPPU. In PCI-1245/1245E/1265, the default value is 500,000,000. 299 Chapter 6 6.4.3.2.2.4 CFG_AxMaxJerk Data Type: F64 R/W: R PropertyID: 556 Meaning: Get max jerk configuration for the motion axis. Comments: In PCI-1245/1245E/1265, the value is 1. PCI-1245/1265 User Manual 300 6.4.3.2.3 Pulse In 6.4.3.2.3.1 CFG_AxPulseInMode Data Type: U32 R/W: RW PropertyID: 557 Meaning: Set/get encoder feedback pulse input mode. Value Description 0 1XAB 1 2XAB 2 4XAB 3 CCW/CW Comments: None 301 Chapter 6 6.4.3.2.3.2 CFG_AxPulseInLogic Data Type: U32 R/W: RW PropertyID: 558 Meaning: Set /get logic of encoder feedback pulse. Value Description 0 Not inverse direction 1 Inverse direction Comments: None PCI-1245/1265 User Manual 302 6.4.3.2.3.3 CFG_AxPulseInMaxFreq Data Type: U32 R/W: RW PropertyID: 632 Meaning: Set /get encode max pulse in frequency. Value Description 0 500KHz 1 1MHz 2 2MHz 3 4MHz Comments: None 303 Chapter 6 6.4.3.2.4 Pulse Out 6.4.3.2.4.1 CFG_AxPulseOutMode Data Type: U32 R/W: RW PropertyID: 560 Meaning: Set/get command pulse output mode. Value Description 1 OUT/DIR 2 OUT/DIR, OUT negative logic 4 OUT/DIR, DIR negative logic 8 OUT/DIR, OUT&DIR negative logic 16 CW/CCW 32 CW/CCW, CW&CCW negative logic 64 A/B Phase(PCI-1245 and PCI-1265 not support) 128 B/A Phase(PCI-1245 and PCI-1265 not support) 256 CW/CCW, OUT negative logic. 512 CW/CCW, DIR negative logic. Comments: In PCI-1245/1245E/1265, the default value is 16. See also FT_AxPulseOutMode. PCI-1245/1265 User Manual 304 6.4.3.2.5 Alarm 6.4.3.2.5.1 CFG_AxAlmLogic Data Type: U32 R/W: RW PropertyID: 562 Meaning: Set/get active logic of alarm signal. Value Description 0 Low active 1 High active Comments: In PCI-1245/1245E/1265, the default value is 1. 305 Chapter 6 6.4.3.2.5.2 CFG_AxAlmEnable Data Type: U32 R/W: RW PropertyID: 561 Meaning: Enable/disable motion alarm function. Alarm is a signal generated by motor drive when motor drive is in alarm status. Value Description 0 Disabled 1 Enabled Comments: In PCI-1245/1245E/1265, the default value is 0. PCI-1245/1265 User Manual 306 6.4.3.2.5.3 CFG_AxAlmReact Data Type: U32 R/W: RW PropertyID: 563 Meaning: Set/get the stop modes when receiving ALARM signal. Value Description 0 Motor immediately stops 1 Motor decelerates then stops Comments: In PCI-1245/1245E/1265, the default value is 1. 307 Chapter 6 6.4.3.2.6 In Position 6.4.3.2.6.1 CFG_AxInpEnable Data Type: U32 R/W: RW PropertyID: 564 Meaning: Enable/disable In-Position function. Value Description 0 Disabled 1 Enabled Comments: In PCI-1245/1245E/1265, the default value is 0. PCI-1245/1265 User Manual 308 6.4.3.2.6.2 CFG_AxInpLogic Data Type: U32 R/W: RW PropertyID: 565 Meaning: Set/get the active logic for In-Position signal. Value Description 0 Low active 1 High active Comments: In PCI-1245/1245E/1265, the default value is 1. 309 Chapter 6 6.4.3.2.7 ERC 6.4.3.2.7.1 CFG_AxErcLogic Data Type: U32 R/W: RW PropertyID: 566 Meaning: Set/get active logic for ERC signal Value Description 0 Low active 1 High active Comments: In PCI-1245/1245E/1265, the default value is 1. PCI-1245/1265 User Manual 310 6.4.3.2.7.2 CFG_AxErcEnableMode Data Type: U32 R/W: RW PropertyID: 569 Meaning: Set/get ERC out mode or diable ERC function. Value Description 0 Disabled 1 ERC Output when home finish 2 ERC Output when EMG/ALM/EL active(Not support) 3 ERC Output when home finish or EMG/ALM/EL active(Not support) Comments: In PCI-1245/1245E/1265, the default value is 1. 311 Chapter 6 6.4.3.2.8 Hardware Limit 6.4.3.2.8.1 CFG_AxElReact Data Type: U32 R/W: RW PropertyID: 576 Meaning: Set/get the reacting mode of EL signal. Value Description 0 Motor immediately stops 1 Motor decelerates then stops Comments: In PCI-1245/1245E/1265, the default value is 0. PCI-1245/1265 User Manual 312 6.4.3.2.8.2 CFG_AxElLogic Data Type: U32 R/W: RW PropertyID: 575 Meaning: Set/get active logic for hardware limit signal. Value Description 0 Low active 1 High active Comments: In PCI-1245/1245E/1265, the default value is 1. 313 Chapter 6 6.4.3.2.8.3 CFG_AxElEnable Data Type: U32 R/W: RW PropertyID: 574 Meaning: Set/ get hardware limit function enable/disable. Value Description 0 Disabled 1 Enabled Comments: In PCI-1245/1245E/1265, the default value is 1. PCI-1245/1265 User Manual 314 6.4.3.2.9 Software Limit 6.4.3.2.9.1 CFG_AxSwMelEnable Data Type: U32 R/W: RW PropertyID: 577 Meaning: Enable/Disable the minus software limit function. Value Description 0 Disabled 1 Enabled Comments: None 315 Chapter 6 6.4.3.2.9.2 CFG_AxSwPelEnable Data Type: U32 R/W: RW PropertyID: 578 Meaning: Enable/Disable the plus software limit. Value Description 0 Disabled 1 Enabled Comments: None PCI-1245/1265 User Manual 316 6.4.3.2.9.3 CFG_AxSwMelReact Data Type: U32 R/W: RW PropertyID: 579 Meaning: Set/get the reacting mode of minus software limit. Value Description 0 Motor immediately stops 1 Motor decelerates then stops Comments: In PCI-1245/1245E/1265, the default value is 1. 317 Chapter 6 6.4.3.2.9.4 CFG_AxSwPelReact Data Type: U32 R/W: RW PropertyID: 580 Meaning: Set/get the reacting mode of plus software limit. Value Description 0 Motor immediately stops 1 Motor decelerates then stops Comments: In PCI-1245/1245E/1265, the default value is 1. PCI-1245/1265 User Manual 318 6.4.3.2.9.5 CFG_AxSwMelValue Data Type: I32 R/W: RW PropertyID: 581 Meaning: Set/get the value of minus software limit. The property value's range is: -2,147,483,647 ~ +2,147,483,647. Comments: None 319 Chapter 6 6.4.3.2.9.6 CFG_AxSwPelValue Data Type: I32 R/W: RW PropertyID: 582 Meaning: Set/get the value of plus software limit. The property value's range is: -2,147,483,647 ~ +2,147,483,647. Comments: None PCI-1245/1265 User Manual 320 6.4.3.2.10 Home 6.4.3.2.10.1 CFG_AxOrgLogic Data Type: U32 R/W: RW PropertyID: 589 Meaning: Set/get the active logic for ORG signal. Value Description 0 Low active 1 High active Comments: In PCI-1245/1245E/1265, the default value is 1. 321 Chapter 6 6.4.3.2.10.2 CFG_AxEzLogic Data Type: U32 R/W: RW PropertyID: 591 Meaning: Set/get the active logic for EZ signal. Value Description 0 Low active 1 High active Comments: In PCI-1245/1245E/1265, the default value is 1. PCI-1245/1265 User Manual 322 6.4.3.2.10.3 CFG_AxHomeResetEnable Data Type: U32 R/W: RW PropertyID: 602 Meaning: Enable or Disable logical counter reset function after finish Home. Value Description 0 Disabled 1 Enabled Comments: None 323 Chapter 6 6.4.3.2.11 Backlash 6.4.3.2.11.1 CFG_AxBacklashEnable Data Type: U32 R/W: RW PropertyID: 593 Meaning: Enable/Disable corrective backlash. Value Description 0 Disabled 1 Enabled Comments: In PCI-1245/1245E/1265, the default value is 0. PCI-1245/1265 User Manual 324 6.4.3.2.11.2 CFG_AxBacklashPulses Data Type: U32 R/W: RW PropertyID: 594 Meaning: Set/get the compensation pulse numbers. (Uint: pulse) Comments: This value should be between 0 and 4095.Whenever direction change occurs, the axis outputs backlash corrective pulses before sending commands. In PCI-1245/1245E/1265, the default value is 0. 325 Chapter 6 6.4.3.2.11.3 CFG_AxBacklashVel Data Type: U32 R/W: RW PropertyID: 630 Meaning: Set /get the velocity of corrective backlash. (Uint: pulse/s) Comments: In PCI-1245/1245E/1265, the default value is 0. PCI-1245/1265 User Manual 326 6.4.3.2.12 Compare 6.4.3.2.12.1 CFG_AxCmpSrc Data Type: U32 R/W: RW PropertyID: 603 Meaning: Get/set compare source. Value Description 0 Command Position 1 Actual position Comments: In PCI-1245/1245E/1265, the default value is 0. 327 Chapter 6 6.4.3.2.12.2 CFG_AxCmpMethod Data Type: U32 R/W: RW PropertyID: 604 Meaning: Set or get compare method. Value Description 0 >= Position Counter 1 <= Position Counter 2 =Counter (Directionless)(Not support) Comments: In PCI-1245/1245E/1265, the default value is 0. PCI-1245/1265 User Manual 328 6.4.3.2.12.3 CFG_AxCmpPulseLogic Data Type: U32 R/W: RW PropertyID: 606 Meaning: Set /get the active logical of compare signal. Value Description 0 Low active 1 High active Comments: In PCI-1245/1245E/1265, the default value is 0. 329 Chapter 6 6.4.3.2.12.4 CFG_AxCmpPulseWidth Data Type: U32 R/W: RW PropertyID: 607 Meaning: Get/set the width of compare signal delay. Value Description 0 5 s 1 10 s 2 20 s 3 50 s 4 100 s 5 200 s 6 500 s 7 1000 s Comments: None PCI-1245/1265 User Manual 330 6.4.3.2.12.5 CFG_AxCmpEnable Data Type: U32 R/W: RW PropertyID: 608 Meaning: Enable/disable axis compare function. Value Description 0 Disabled 1 Enabled Comments: None 331 Chapter 6 6.4.3.2.12.6 CFG_AxCmpPulseMode Data Type: U32 R/W: RW PropertyID: 605 Meaning: Set/get axis compare mode. Value Description 0 Pulse mode 1 Toggle mode. Comments: Toggle mode: inverse DO output when compare signal happens. PCI-1245/1265 User Manual 332 6.4.3.2.13 Latch 6.4.3.2.13.1 CFG_AxLatchLogic Data Type: U32 R/W: RW PropertyID: 601 Meaning: Set/get the active logic for Latch signal. Value Description 0 Low active 1 High active Comments: When the Latch is triggered, the command position, actual position and lag distance will be latched. 333 Chapter 6 6.4.3.2.13.2 CFG_AxLatchEnable Data Type: U32 R/W: RW PropertyID: 631 Meaning: Enable/disable latch function. Value Description 0 Disabled 1 Enabled Comments: None PCI-1245/1265 User Manual 334 6.4.3.2.14 Aux/Gen DIO 6.4.3.2.14.1 CFG_AxGenDoEnable Data Type: U32 R/W: RW PropertyID: 610 Meaning: Enable/disabe the axis general DO function. Value Description 0 Disabled 1 Enabled Comments: If property CFG_AxGenDoEnable is enabled, the property CFG_AxCmpEnable, CFG_AxCamDoEnable and CFG_AxErcEnableMode is disabled automatically. Functions Acm_AxSetCmpData, Acm_AxSetCmpTable, Acm_AxSetCmpAuto will not be able to output signal. 335 Chapter 6 6.4.3.2.15 Ext-Drive 6.4.3.2.15.1 CFG_AxExtMasterSrc Data Type: U32 R/W: RW PropertyID: 611 Meaning: Set/get input pin for external drive. Value Description 0 axis 0 1 axis 1 (Not support) 2 axis 2 (Not support) 3 axis 3 (Not support) Comments: In PCI-1265/PCI-1245, just support 0. PCI-1245/1265 User Manual 336 6.4.3.2.15.2 CFG_AxExtSelEnable Data Type: U32 R/W: RW PropertyID: 612 Meaning: When Ext. drive is enable. This property enables driving axis selection by digital input channel. Value Description 0 Disabled 1 Enabled(not support) Comments: In PCI-1265/PCI-1245, just support 0. 337 Chapter 6 6.4.3.2.15.3 CFG_AxExtPulseNum Data Type: U32 R/W: RW PropertyID: 613 Meaning: Set command pulse number when axis' external drive mode is MPG and the A/B or B/A phase signal is triggered. Comments: In this PCI-1265/PCI-1245, the default value is 1. This value must be larger than zero. PCI-1245/1265 User Manual 338 6.4.3.2.15.4 CFG_AxExtPulseInMode Data Type: U32 R/W: RW PropertyID: 617 Meaning: Set/get external drive pulse input mode. Value Description 0 1XAB 1 2XAB 2 4XAB 3 CCW/CW Comments: None 339 Chapter 6 6.4.3.2.15.5 CFG_AxExtPresetNum Data Type: U32 R/W: RW PropertyID: 618 Meaning: Set/get pulse number of external drive when an active edge of input pulse is accept in JOG mode. Comments: In PCI-1245/1245E/1265, the default value is 1.This value must lager than zero. PCI-1245/1265 User Manual 340 6.4.3.2.16 Cam Do 6.4.3.2.16.1 CFG_AxCamDOEnable Data Type: U32 R/W: RW PropertyID: 622 Meaning: Set/get cam DO enable/diable. Value Description 0 Disabled 1 Enabled Comments: CamDo and OUT4 use the same pin, if the CFG_AxGenDoEnable is enabled, OUT4 isn’t able to output CamDo signal. 341 Chapter 6 6.4.3.2.16.2 CFG_AxCamDOLoLimit Data Type: U32 R/W: RW PropertyID: 623 Meaning: Set/get the low limit for CAMDO signal. Comments: If CamDo is enabled, when command/actual position is between the low limit value and high limit value, the CamDo signal will triggered. In PCI-1245/1245E/1265, the default value is 0. Range: -2147483647~2147483647 PCI-1245/1265 User Manual 342 6.4.3.2.16.3 CFG_AxCamDOHiLimit Data Type: U32 R/W: RW PropertyID: 624 Meaning: Set/get the high limit for CamDo signal. Comments: If CamDo is enabled, when command/actual position is between the low limit value and high limit value, the CamDo signal will triggered. In PCI-1245/1245E/1265, the default value is 0. Range: -2147483647~2147483647 343 Chapter 6 6.4.3.2.16.4 CFG_AxCamDOCmpSrc Data Type: U32 R/W: RW PropertyID: 627 Meaning: Set/get the compare source. Value Description 0 Command position. 1 Feedback position Comments: In PCI-1245/1245E/1265, the default value is 0. PCI-1245/1265 User Manual 344 6.4.3.2.16.5 CFG_AxCamDOLogic Data Type: U32 R/W: RW PropertyID: 628 Meaning: Set/get the active logic of CamDO. Value Description 0 Low active 1 High active Comments: In PCI-1245/1245E/1265, the default value is 1. 345 Chapter 6 6.4.3.2.17 Module 6.4.3.2.17.1 CFG_AxModuleRange Data Type: U32 R/W: RW PropertyID: 629 Meaning: Set/get pulse number when axis moves 360 degree. Comments: This value must be multiple of 4. It is used in tangent motion and E-cam motion. See about Acm_AxTangentInGp, Acm_DevDownLoadCAMTable and Acm_AxCamInAx. In PCI-1245/1245E/1265, the default value is 0. Range: 0 ~ 8,000,000 PCI-1245/1265 User Manual 346 6.4.3.2.18 Simultaneity 6.4.3.2.18.1 CFG_AxSimStartSource Data Type: U32 R/W: RW PropertyID: 633 Meaning: Set/get simultaneous starting mode for current axis. Value Description 0 Disabled 1 Start Simultaneous Starting on signal from STA Pin on device. (Default) 256 Start Simultaneous Starting with axis_0’s compare signal. 512 Start Simultaneous Starting with axis_1’s compare signal 1024 Start Simultaneous Starting with axis_2’s compare signal 2048 Start Simultaneous Starting with axis_3’s compare signal 4096 Start Simultaneous Starting with axis_4’s compare signal 8192 Start Simultaneous Starting with axis_5’s compare signal 65536 Start Simultaneous Starting when axis_0 is stopped. 131072 Start Simultaneous Starting when axis_1 is stopped. 262144 Start Simultaneous Starting when axis_2 is stopped. 524288 Start Simultaneous Starting when axis_3 is stopped. 1048576 Start Simultaneous Starting when axis_4 is stopped. 2097152 Start Simultaneous Starting when axis_5 is stopped. 347 Chapter 6 Comments: The axis will be waiting status if call Acm_AxSimStartSuspendAbs, Acm_AxSimStartSuspendRel, or Acm_AxSimStartSuspendVel successfully. The axis start motion after calling Acm_AxSimStart and stop motion afer calling Acm_AxSimStop. The simultaneous starting mode should be set by this property. If the value is 1, the waiting axis will start depending on STA signal. It just needs only one axis of waiting axis to call Acm_AxSimStart or Acm_AxSimStop. If the value is 256~8192, the simultaneous starting signal comes from compare signal. Every axis needs to assign compare signal source, but cannot assign compare signal of itself to start its simultaneous motion. And ervery simultaneous axis needs to call Acm_AxSimStop to stop motion. If the value is 65536~2097152, the wait axis will be started simultaneous motion when specified axis’s motion is stoped. Every axis needs to specify an axis, but can not be itself. And ervery simultaneous axis needs to call Acm_AxSimStop to stop motion. If the value is 0. The simultaneous motion is disabled. You can get axis supported simultaneous mode from FT_AxSimStartSourceMap. PCI-1245/1265 User Manual 348 6.4.3.3 Parameter 6.4.3.3.1 Speed Pattern 6.4.3.3.1.1 PAR_AxVelLow Data Type: F64 R/W: RW PropertyID: 401 Meaning: Set/get low velocity (start velocity) of this axis (Unit: PPU/S). Comments: This property value must be smaller than or equal to PAR_AxVelHigh. The default value is 2000 PPU. 349 Chapter 6 6.4.3.3.1.2 PAR_AxVelHigh Data Type: F64 R/W: RW PropertyID: 402 Meaning: Set/get high velocity (driving velocity) of this axis (Unit: PPU/s). Comments: This property value must be smaller than CFG_AxMaxVel and greater than PAR_AxVelLow.The default value is 8000. PCI-1245/1265 User Manual 350 6.4.3.3.1.3 PAR_AxAcc Data Type: F64 R/W: RW PropertyID: 403 Meaning: Set/get acceleration of this axis (Unit: PPU/s2). Comments: This property value must be smaller than or equal to CFG_AxMaxAcc. The default value is 10000. 351 Chapter 6 6.4.3.3.1.4 PAR_AxDec Data Type: F64 R/W: RW PropertyID: 404 Meaning: Set/get deceleration of this axis (Unit: PPU/s2). Comments: This property value must be smaller than or equal to CFG_AxMaxDec. The default value is 10000. PCI-1245/1265 User Manual 352 6.4.3.3.1.5 PAR_AxJerk Data Type: F64 R/W: RW PropertyID: 405 Meaning: Set/get the type of velocity profile: t-curve or s-curve. Value Description 0 T-curve(Default) 1 S-curve Comments: The actual jerk is calculated by driver. If PAR_AxJerk is set to be 1, the PAR_AxAcc not means acceleration but max acceleration and PAR_AxDec not means deceleration but max deceleration. 353 Chapter 6 6.4.3.3.2 Home 6.4.3.3.2.1 PAR_AxHomeExMode Data Type: U32 R/W: RW PropertyID: 406 Meaning: Set/get the extended mode of home. This property value will affect Acm_AxHomeEx. Value Define Description 0 AbsSwitch Home operation searching for an absolute switch (ORG). Supported DirMode: PosiDir, NegDir, SwitchPosi, SwitchNeg 1 LimitSwitch Home operation searching for hardware limit switch (EL). Supported DirMode: PosiDir, NegDir, SwitchPosi, SwitchNeg RefPulse Home operation searching for zero pulse in encoder (EZ). Supported DirMode: PosiDir, NegDir (If Inupt SwitchPosi, driver will treat it as PosiDir; If Inupt SwitchNeg, driver will treat it as NegDir) 2 DirMode: Value Define 0 PosiDir Always in positive direction 1 NegDir Always in negative direction 2 SwitchPosi Depends on switch status. If switch is off, direction is positive. Otherwise, direction is negative. 3 SwitchNeg Depends on switch status. If switch is off, direction is negative. Otherwise, direction is positive. PCI-1245/1265 User Manual Description 354 6.4.3.3.2.2 PAR_AxHomeCrossDistance Data Type: F64 R/W: RW PropertyID: 408 Meaning: Set the home cross distance (Unit: PPU). This property must be greater than 0. The default value is 10000. 355 Chapter 6 6.4.3.3.2.3 PAR_AxHomeExSwitchMode Data Type: U32 R/W: RW PropertyID: 407 Meaning: Setting the stopping condition of Acm_AxHomeEx.\ Value Define Description 0 LevelOn When sensor is ON(Active) 1 LevelOff When sensor is OFF(Non-active) 2 EdgeOn When OFF to ON transition in sensor 3 EdgeOff When ON to OFF transition in sensor PCI-1245/1265 User Manual 356 6.4.4 Group 6.4.4.1 Config 6.4.4.1.1 System 6.4.4.1.1.1 CFG_GpAxisInGroup Data Type: U32 R/W: R PropertyID: 806 Meaning: Get information about which axis is (are) in this group. Bits Description 0 0 axis 1 1 axis 2 2 axes 3 3 axes 4 4 axes·(PCI-1265) 5 5 axes·(PCI-1265) Comments: None 357 Chapter 6 6.4.4.1.2 Path 6.4.4.1.2.1 CFG_GpBldTime Data Type: U32 R/W: RW PropertyID: 808 Meaning: Set/get blengding time when add a path into system path buffer. Comments: It should be 0~65535 and multiple of 2.Unit: ms. See about Acm_GpAddPath. PCI-1245/1265 User Manual 358 6.4.4.1.2.2 CFG_GpSFEnable Data Type: U32 R/W: RW PropertyID: 809 Meaning: Enable/Disable speed forward function. Value Description 0 Disabled 1 Enabled Comments: It can not support S profile speed curve. In this mode, the speed parameter of Acm_AddPath is useless, just speed setting of group is used. 359 Chapter 6 6.4.4.2 Parameter 6.4.4.2.1 Speed Pattern 6.4.4.2.1.1 PAR_GpVelLow Data Type: F64 R/W: RW PropertyID: 701 Meaning: Set low velocity (start velocity) of this group (Unit: PPU/s). This property value must be smaller than or equal to Par_GpVelHigh . The default value is the first added axis' PAR_AxVelLow. PCI-1245/1265 User Manual 360 6.4.4.2.1.2 PAR_GpVelHigh Data Type: F64 R/W: RW PropertyID: 702 Meaning: Set high velocity (driving velocity) of this group (Unit: PPU/s). This property value must be smaller than first added axis' CFG_AxMaxVel and greater than Par_GpVelLow. The default value is the first added axis' PAR_AxVelHigh. 361 Chapter 6 6.4.4.2.1.3 PAR_GpAcc Data Type: F64 R/W: RW PropertyID: 703 Meaning: Set acceleration of this group (Unit: PPU/s2). This property value must be smaller than or equal to first added axis' CFG_AxMaxAcc. The default value is the first added axis' PAR_AxAcc. PCI-1245/1265 User Manual 362 6.4.4.2.1.4 PAR_GpDec Data Type: F64 R/W: RW PropertyID: 704 Meaning: Set deceleration of this group (Unit: PPU/s2). This property value must be smaller than or equal to first added axis' CFG_AxMaxDec. The default value is the first added axis' PAR_AxDec. 363 Chapter 6 6.4.4.2.1.5 PAR_GpJerk Data Type: F64 R/W: RW PropertyID: 705 Meaning: Set the type of velocity profile: t-curve or s-curve. Value Description 0 T-curve(Default) 1 S-curve Comments: If PAR_GpJerk is set to 1, the PAR_GpAcc doesn't mean acceleration but max acceleration and PAR_GpDec doesn't means deceleration but max deceleration. The default value is the first added axis jerk. PCI-1245/1265 User Manual 364 6.4.4.2.2 System 6.4.4.2.2.1 PAR_GpGroupID Data Type: U32 R/W: R PropertyID: 706 Meaning: Get the GroupID through GroupHandle. Comments: In PCI-1265, there are only three GroupID to use. They are 0, 1 and 2. You cannot handle more than three groups at the same time, you must close one group to create new group if there are already three groups. In PCI-1245, there are only two GroupID to use. They are 0, 1. You cannot handle more than two groups at the same time, you must close one group to create new group if there are already two groups. 365 Chapter 6 6.4.4.2.3 Path 6.4.4.2.3.1 PAR_GpRefPlane DataType: U32 R/W: RW PropertyID: 709 Meaning: Set/get reference plane for helix motion and arc interpolation. Value Description 0 XY PLANE 1 YZ PLANE 2 XZ PLANE Comments: See about Acm_GpMoveHelixAbs, Acm_GpMoveHelixRel, Acm_GpMoveHelixAbs_3p, and Acm_GpMoveHelixRel_3p. PCI-1245/1265 User Manual 366 6.5 Error Code Error Code Error 0x00000000 SUCCESS 0x80000000 InvalidDevNumber 0x80000001 DevRegDataLost 0x80000002 LoadDllFailed 0x80000003 GetProcAddrFailed 0x80000004 MemAllocateFailed 0x80000005 InvalidHandle 0x80000006 CreateFileFailed 0x80000007 OpenEventFailed 0x80000008 EventTimeOut 0x80000009 InvalidInputParam 0x8000000a PropertyIDNotSupport 0x8000000b PropertyIDReadOnly 0x8000000c ConnectWinIrqFailed 0x8000000d InvalidAxCfgVel 0x8000000e InvalidAxCfgAcc 0x8000000f InvalidAxCfgDec 0x80000010 InvalidAxCfgJerk 0x80000011 InvalidAxParVelLow 0x80000012 InvalidAxParVelHigh 0x80000013 InvalidAxParAcc 0x80000014 InvalidAxParDec 0x80000015 InvalidAxParJerk 0x80000016 InvalidAxPulseInMode 0x80000017 InvalidAxPulseOutMode 0x80000018 InvalidAxAlarmEn 0x80000019 InvalidAxAlarmLogic 0x8000001a InvalidAxInPEn 0x8000001b InvalidAxInPLogic 0x8000001c InvalidAxHLmtEn 367 Chapter 6 0x8000001d InvalidAxHLmtLogic 0x8000001e InvalidAxHLmtReact 0x8000001f InvalidAxSLmtPEn 0x80000020 InvalidAxSLmtPReact 0x80000021 InvalidAxSLmtPValue 0x80000022 InvalidAxSLmtMEn 0x80000023 InvalidAxSLmtMReact 0x80000024 InvalidAxSLmtMValue 0x80000025 InvalidAxOrgLogic 0x80000026 InvalidAxOrgEnable 0x80000027 InvalidAxEzLogic 0x80000028 InvalidAxEzEnable 0x80000029 InvalidAxEzCount 0x8000002a InvalidAxState 0x8000002b InvalidAxInEnable 0x8000002c InvalidAxSvOnOff 0x8000002d InvalidAxDistance 0x8000002e InvalidAxPosition 0x8000002f InvalidAxHomeModeKw 0x80000030 InvalidAxCntInGp 0x80000031 AxInGpNotFound 0x80000032 AxisInOtherGp 0x80000033 AxCannotIntoGp 0x80000034 GpInDevNotFound 0x80000035 InvalidGpCfgVel 0x80000036 InvalidGpCfgAcc 0x80000037 InvalidGpCfgDec 0x80000038 InvalidGpCfgJerk 0x80000039 InvalidGpParVelLow 0x8000003a InvalidGpParVelHigh 0x8000003b InvalidGpParAcc 0x8000003c InvalidGpParDec 0x8000003d InvalidGpParJerk PCI-1245/1265 User Manual 368 0x8000003e JerkNotSupport 0x8000003f ThreeAxNotSupport 0x80000040 DevIpoNotFinished 0x80000041 InvalidGpState 0x80000042 OpenFileFailed 0x80000043 InvalidPathCnt 0x80000044 InvalidPathHandle 0x80000045 InvalidPath 0x80000046 IoctlError 0x80000047 AmnetRingUsed 0x80000048 DeviceNotOpened 0x80000049 InvalidRing 0x8000004a InvalidSlaveIP 0x8000004b InvalidParameter 0x8000004c InvalidGpCenterPosition 0x8000004d InvalidGpEndPosition 0x8000004e InvalidAddress 0x8000004f DeviceDisconnect 0x80000050 DataOutBufExceeded 0x80000051 SlaveDeviceNotMatch 0x80000052 SlaveDeviceError 0x80000053 SlaveDeviceUnknow 0x80000054 FunctionNotSupport 0x80000055 InvalidPhysicalAxis 0x80000056 InvalidVelocity 0x80000057 InvalidAxPulseInLogic 0x80000058 InvalidAxPulseInSource 0x80000059 InvalidAxErcLogic 0x8000005a InvalidAxErcOnTime 0x8000005b InvalidAxErcOffTime 0x8000005c InvalidAxErcEnableMode 0x8000005d InvalidAxSdEnable 0x8000005e InvalidAxSdLogic 369 Chapter 6 0x8000005f InvalidAxSdReact 0x80000060 InvalidAxSdLatch 0x80000061 InvalidAxHomeResetEnable 0x80000062 InvalidAxBacklashEnable 0x80000063 InvalidAxBacklashPulses 0x80000064 InvalidAxVibrationEnable 0x80000065 InvalidAxVibrationRevTime 0x80000066 InvalidAxVibrationFwdTime 0x80000067 InvalidAxAlarmReact 0x80000068 InvalidAxLatchLogic 0x80000069 InvalidFwMemoryMode 0x8000006a InvalidConfigFile 0x8000006b InvalidAxEnEvtArraySize 0x8000006c InvalidAxEnEvtArray 0x8000006d InvalidGpEnEvtArraySize 0x8000006e InvalidGpEnEvtArray 0x8000006f InvalidIntervalData 0x80000070 InvalidEndPosition 0x80000071 InvalidAxisSelect 0x80000072 InvalidTableSize 0x80000073 InvalidGpHandle 0x80000074 InvalidCmpSource 0x80000075 InvalidCmpMethod 0x80000076 InvalidCmpPulseMode 0x80000077 InvalidCmpPulseLogic 0x80000078 InvalidCmpPulseWidth 0x80000079 InvalidPathFunctionID 0x8000007a SysBufAllocateFailed 0x80000096 SlaveIOUpdateError 0x80000097 NoSlaveDevFound 0x80000098 MasterDevNotOpen 0x80000099 MasterRingNotOpen 0x800000c8 InvalidDIPort PCI-1245/1265 User Manual 370 0x800000c9 InvalidDOPort 0x800000ca InvalidDOValue 0x800000cb CreateEventFailed 0x800000cc CreateThreadFailed 0x800000cd InvalidHomeModeEx 0x800000ce InvalidDirMode 0x800000cf AxHomeMotionFailed 0x800000d0 ReadFileFailed 0x800000d1 PathBufIsFull 0x800000d2 PathBufIsEmpty 0x800000d3 GetAuthorityFailed 0x800000d4 GpIDAllocatedFailed 0x800000d5 FirmWareDown 0x800000d6 InvalidGpRadius 0x800000d7 InvalidAxCmd 0x800000d8 InvalidaxExtDrv 0x800000d9 InvalidGpMovCmd 0x800000da SpeedCurveNotSupported 0x800000db InvalidCounterNo 0x800000dc InvalidPathMoveMode 0x800000dd PathSelStartCantRunInSpeedForwareMode 0x800000de InvalidCamTableID 0x800000df InvalidCamPointRange 0x800000d0 CamTableIsEmpty 0x800000e1 InvalidPlaneVector 0x800000e2 MasAxIDSameSlvAxID 0x800000e3 InvalidGpRefPlane 0x800000e4 InvalidAxModuleRange 0x800000e5 DownloadFileFailed 0x800000e6 InvalidFileLength 0x800000e7 InvalidCmpCnt 0x80002000 HLmtPExceeded 0x80002001 HLmtNExceeded 371 Chapter 6 0x80002002 SLmtPExceeded 0x80002003 SLmtNExceeded 0x80002004 AlarmHappened 0x80002005 EmgHappened 0x80002006 TimeLmtExceeded 0x80002007 DistLmtExceeded 0x80002008 InvalidPositionOverride 0x80002009 OperationErrorHappened 0x8000200a SimultaneousStopHappened 0x8000200b OverflowInPAPB 0x8000200c OverflowInIPO 0x8000200d STPHappened 0x8000200e SDHappened 0x8000200f AxsiNoCmpDataLeft 0x80004001 DevEvtTimeOut 0x80004002 DevNoEvt 0x10000001 Warning_AxWasInGp 0x10000002 Warning_GpInconsistRate 0x10000003 Warning_GpInconsistPPU 0x80005001 ERR_SYS_TIME_OUT 0x80005002 Dsp_PropertyIDNotSupport 0x80005003 Dsp_PropertyIDReadOnly 0x80005004 Dsp_InvalidParameter 0x80005005 Dsp_DataOutBufExceeded 0x80005006 Dsp_FunctionNotSupport 0x80005007 Dsp_InvalidConfigFile 0x80005008 Dsp_InvalidIntervalData 0x80005009 Dsp_InvalidTableSize 0x8000500a Dsp_InvalidTableID 0x8000500b Dsp_DataIndexExceedBufSize 0x8000500c Dsp_InvalidCompareInterval 0x8000500d Dsp_InvalidCompareRange 0x8000500e Dsp_PropertyIDWriteOnly PCI-1245/1265 User Manual 372 0x8000500f Dsp_NcError 0x80005010 Dsp_CamTableIsInUse 0x80005011 Dsp_EraseBlockFailed 0x80005012 Dsp_ProgramFlashFailed 0x80005101 Dsp_InvalidAxCfgVel 0x80005102 Dsp_InvalidAxCfgAcc 0x80005103 Dsp_InvalidAxCfgDec 0x80005104 Dsp_InvalidAxCfgJerk 0x80005105 Dsp_InvalidAxParVelLow 0x80005106 Dsp_InvalidAxParVelHigh 0x80005107 Dsp_InvalidAxParAcc 0x80005108 Dsp_InvalidAxParDec 0x80005109 Dsp_InvalidAxParJerk 0x8000510a Dsp_InvalidAxPptValue 0x8000510b Dsp_InvalidAxState 0x8000510c Dsp_InvalidAxSvOnOff 0x8000510d Dsp_InvalidAxDistance 0x8000510e Dsp_InvalidAxPosition 0x8000510f Dsp_InvalidAxHomeMode 0x80005110 Dsp_InvalidPhysicalAxis 0x80005111 Dsp_HLmtPExceeded 0x80005112 Dsp_HLmtNExceeded 0x80005113 Dsp_SLmtPExceeded 0x80005114 Dsp_SLmtNExceeded 0x80005115 Dsp_AlarmHappened 0x80005116 Dsp_EmgHappened 0x80005117 Dsp_CmdValidOnlyInConstSec 0x80005118 Dsp_InvalidAxCmd 0x80005119 Dsp_InvalidAxHomeDirMode 0x8000511a Dsp_AxisMustBeModuloAxis 0x8000511b Dsp_AxIdCantSameAsMasId 0x8000511c Dsp_CantResetPosiOfMasAxis 0x8000511d Dsp_InvalidAxExtDrvOperation 373 Chapter 6 0x8000511e Dsp_AxAccExceededMaxAcc 0x8000511f Dsp_AxVelExceededMaxVel 0x80005201 Dsp_InvalidAxCntInGp 0x80005202 Dsp_AxInGpNotFound 0x80005203 Dsp_AxisInOtherGp 0x80005204 Dsp_AxCannotIntoGp 0x80005205 Dsp_GpInDevNotFound 0x80005206 Dsp_InvalidGpCfgVel 0x80005207 Dsp_InvalidGpCfgAcc 0x80005208 Dsp_InvalidGpCfgDec 0x80005209 Dsp_InvalidGpCfgJerk 0x8000520a Dsp_InvalidGpParVelLow 0x8000520b Dsp_InvalidGpParVelHigh 0x8000520c Dsp_InvalidGpParAcc 0x8000520d Dsp_InvalidGpParDec 0x8000520e Dsp_InvalidGpParJerk 0x8000520f Dsp_JerkNotSupport 0x80005210 Dsp_ThreeAxNotSupport 0x80005211 Dsp_DevIpoNotFinished 0x80005212 Dsp_InvalidGpState 0x80005213 Dsp_OpenFileFailed 0x80005214 Dsp_InvalidPathCnt 0x80005215 Dsp_InvalidPathHandle 0x80005216 Dsp_InvalidPath 0x80005217 Dsp_GpSlavePositionOverMaster 0x80005219 Dsp_GpPathBufferOverflow 0x8000521a Dsp_InvalidPathFunctionID 0x8000521b Dsp_SysBufAllocateFailed 0x8000521c Dsp_InvalidGpCenterPosition 0x8000521d Dsp_InvalidGpEndPosition 0x8000521e Dsp_InvalidGpCmd 0x8000521f Dsp_AxHasBeenInInGp 0x80005220 Dsp_InvalidPathRange PCI-1245/1265 User Manual 374 A APPENDIX 2 Software Function Comparison Table Appendix A Software Function Comparison Table A.1 Software Function Comparison Table Item Single-axis motion Description PCIPCI1245E 1245 Jog move MPG move T&S-curve speed profile Prog. acc. and dec. Point to point motion Position / Speed Override Velocity motion Backlash compensation Superimposed move 2 3 groups groups up to 3 groups Multi-axes Motion Functions (Group) motion Line: up to 6 axes 2 axes 2-axes Circular Speed Override Helical Home Path table motion PCI1265 4 axes 6 axes 11 modes 3 Tables, size: 10K points Start / End motion list line trajectory: up to 6 axes Add Dwell Start/Sop/Repeat Add arc trajectory: 2 axes Auto Blending PCI-1245/1265 User Manual 376 Simultaneously Start/Stop axes stop/Group stop. Single Compare Up to 6 channels Table Compare Up to 2 channels Linear Compare (Table size: 100 K points) Gantry Application Function Velocity look ahead Velocity look ahead (Refer to function call, acm_gpmovepath) Tangential Following E-Gear E-CAM Error check Error status, Watchdog CAM DO Position window output Posi. latch Simultaneously Start/ Stop Interrupt Trigger Function 377 Appendix A PCI-1245/1265 User Manual 378 APPENDIX B 2 Specifications Appendix B Specifications B.1 Axes Axes PCI-1245/1245E: 4 axes / PCI-1265: 6 axes 2/3-Axis Linear Interpolation Range For each axis: -2,147,483,648 ~ +2,147,483,648 Speed 1 PPS ~ 5 MPPS 2-Axis Circular Interpolation Range -2,147,483,648 ~ +2,147,483,648 Speed 1 PPS ~ 5 MPPS B.2 Digital Input/Output Input Signals Over Traveling Limit Switch Input* LMT+ and LMT- Signal for Servo Motor Drives* RDY (Servo ready); INP (InPosition Complete); ALM (Servo Alarm); ERC (Error Counter Clear) Emergency Stop EMG - one emergency stop input Max. Input Frequency 4 kHz Low Input Voltage General Purpose Output Signals High 3 VDC max. 10 VDC min. 30 VDC max. Input Resistance 3200 Protection 2,500 VDC photo coupler isolation and RC filtering Output Signal DO Output Voltage Open Collector 5 ~ 40 VDC Sink Current 100 mA max./channel Protection 2,500 VDC photo coupler isolation PCI-1245/1265 User Manual 380 B.3 Input Pulse for Encoder Interface Input Signal* EC and EZ Encoder Pulse Input Type Quadrature (A/B phase) or Up/Down x1, x2, x4 (A/ B phase only) Counts per Encoder Cycle x1, x2, x4 (A/B phase only) Max. Input Frequency 2.5 MHz 2 VDC max. Low Input Voltage Protection 5 VDC min. High 15 VDC max. 2,500 VDC Isolation Protection B.4 General I/O Connector Type 100-pin SCSI-II female Dimensions 175 x 100 mm (6.9” x 3.9”) Power Consumption External Power Voltage Temperature Typical +5 V @ 850 mA Max. +5 V @ 1 A DC +12 ~ 24 V Operating 0 ~ 60°C (32 ~ 140°F) (refer to IEC 68-2-1,2) Storage -20 ~ 85°C (-4 ~ 185°F) Relative Humidity 5~95% RH non-condensing (refer to IEC 68-2-3) Certifications CE certified 381 Appendix B PCI-1245/1265 User Manual 382